在Atmel AVR架构中,寄存器和SRAM位于相同的数据存储空间(例如0x0000,0x001F为寄存器,0x300为内部SRAM)。这是如何实施的?它与虚拟内存的原理相同吗?
答案 0 :(得分:1)
它可能是或者它们可以是单独的公羊或它们可以是几个单独的公羊块。它从处理器内核开始,然后,特别是该核心是哈佛架构,指令取数与数据,分成至少两个总线,然后你进入数据总线,然后你有一些地址解码器来隔离外围设备ram,也许是来自sram的注册。
很可能它们只是通用sram的一部分。或者可能是他们是靠近处理器的他们自己的ram银行,但这恰好是可以解决的。并且该地址解码可能发生在核心中,而不是进入处理器的边缘,在那里将发生sram和外设解码。
如果拆分,那么它可能感觉有点像虚拟内存,因为在一个地址空间中有一个空间可以映射到其他东西。但与虚拟内存不同的是,你没有mmu这样做,尤其是你可以重新编程或者可以检查权限等。
这个寻址寄存器的东西是其他8位处理器的一个特性,我想说8051,所以AVR可能也设计了这样的功能。但是就像BCD数学指令一样,这个功能已经被淘汰了。更有可能看不到它而不是看到它。