关于内存的一点疑问,求解惑

u011424330 2013-11-21 10:57:21
以nand flash 分页为 2k+64 为例,在ARM嵌入式中,用32位中的低12位表示页内偏移量
但,12位最多可以表示的4096位数字,即4096个页内地址,32位数字最多表示4G,我们也说32位的处理器支持4G,而如果一页为2k+64 ,不就只利用了一半多一点吗?32位数字表示的4个G的数字不都是唯一的吗(地址应该,不,肯定是唯一的),这只利用一半多,是不是浪费了珍贵的地址了么?地址(就是那代表存储空间的32位数字)不就不连续了么?
(刨除MMU,说物理地址)
当然,我知道浪费不是我们嵌入式IT人的作风。也有些猜想:1、我的思想被51单片机禁锢了,它的地址不是用一个字或指令(32位)决定的,而是先用一条独立指令去决定片选,再用32位用做地址(分5个周期)发过去。虽然每片NAND 最大只能是4g 但可以控制的片选多,地址大大增加了。。但又感觉,似乎影响了效率,地址数据还是不连续。还有些猜想。自己都觉的不靠谱,就不说了。

表达很凌乱,想法思维不成熟,还请指点一二。
先谢过了
...全文
149 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
u011424330 2013-11-23
  • 打赏
  • 举报
回复
引用 2 楼 curious_cat 的回复:
32位处理器能够线性寻址4G内存空间,都是针对内存空间而言; Nandflash不是线性寻址的,而是靠命令寻址的,命令里面有页地址,一页是2k(你举的例子),只有读到内存以后,才可以被线性寻址。
谢谢~经楼上提醒,经过搜索等方法。对此又了解深入了一番。。。感谢~
curious_cat 2013-11-22
  • 打赏
  • 举报
回复
线性寻址的意思是根据地址就可以直接读写到内容,不需要任何中间过程。
curious_cat 2013-11-22
  • 打赏
  • 举报
回复
32位处理器能够线性寻址4G内存空间,都是针对内存空间而言; Nandflash不是线性寻址的,而是靠命令寻址的,命令里面有页地址,一页是2k(你举的例子),只有读到内存以后,才可以被线性寻址。
pathletboy 2013-11-21
  • 打赏
  • 举报
回复
地址会转换,会从虚拟地址转为实际的物理地址,所以虚拟的32位地址是连续的。

6,125

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 硬件设计
社区管理员
  • 硬件设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧