百科问答小站 logo
百科问答小站 font logo



32位的cpu只能寻址4GB的内存空间,那么硬盘,flash这些存储设备是如何寻址的的?cpu怎样读取其中某个地址的数据? 第1页

  

user avatar   bei-ji-85 网友的相关建议: 
      

感觉好像答过类似的问题(32位最大内存利用只能是4G吗,但是8位的单片机他是用2Byte做地址的啊,可以寻址64K的,? - 知乎

1. 寻址范围=寻址单元大小*寻址字长 2. 寻址字长与CPU字长无直接关系

存储设备(比如SATA)的寻址字长都能达到48位,寻址单元大小是512字节,算下来就是2^48*512=131072TB,足够访问设备用了。

跟MMU没关系。

---------------------------------

题主看来想知道读的细节:存储设备访问一般都是发SCSI命令,对于读命令来说,有READ6/READ10/READ12/READ16/READ32这些SCSI命令,这些命令有一定格式,其中包含有要访问的设备块号(LBA:Logical Block Address)。

READ10命令里的LBA长度是4字节,最大寻址范围是4G,乘以512字节的扇区长度的话,就可以访问2T以内的磁盘空间:

超过2T的话,就要用更新一点的指令了,比如READ16:


块号范围是2^64,乘以512字节扇区长度的话,其表示范围最大是2^73字节(9,444,732,965,739,290,427,392),就目前来看,已经足够用了。

发送命令的时候,还顺便会告诉设备要读多少东西,以及读的东西放到什么内存位置,有了这些信息以后,磁盘控制器会把正确的数据放到指定的位置上,然后CPU就可以访问了。

SCSI命令参考:seagate.com/files/stati


user avatar   ZgblKylin 网友的相关建议: 
      

因为intel换酷睿系列商标了:




  

相关话题

  如果世界上某种操作系统马上消失,消失哪种操作系统对世界的冲击最大? 
  00 后计算机学生的最优解在哪里? 
  禁止使用sqrt等返回浮点数的函数,如何最高效的得到最小的不小于给定正整数的完全平方数? 
  生物信息博士如果刷完leetcode,计算机水平够用吗? 
  如何看待显卡吧玩家为对抗黄牛囤积抬价,纷纷在二手平台上架低价显卡一事? 
  精通 C++ 是种怎样的体验? 
  石头和塑料袋对于计算机传感器的差别在于什么?为什么无人驾驶系统会依然存在对周围环境的误判? 
  石头和塑料袋对于计算机传感器的差别在于什么?为什么无人驾驶系统会依然存在对周围环境的误判? 
  这套配置能不能打市面上所有游戏? 
  斯诺登称 iPhone 关机也能被监听,这个说法可靠吗? 

前一个讨论
如何看待天舟一号货运飞船入轨高度误差 0.014 km?
下一个讨论
电脑如何在进行高速下载的情况下,还可以流畅的运行其他程序?





© 2024-12-22 - tinynew.org. All Rights Reserved.
© 2024-12-22 - tinynew.org. 保留所有权利