百科问答小站 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换酷睿系列商标了:




  

相关话题

  国外名校计算机女博士生的生活是怎样的? 
  cpu 5950x 主板微星迫击炮b550,会供电不足吗? 
  i7-12700k搭配什么显卡比较合适? 
  「杀毒软件之父」75 岁约翰·迈克菲死于西班牙监狱中,他做出了哪些贡献,如何评价他的一生? 
  你经历过的最难修的电脑是什么样的? 
  59款中国 APP 在印度被禁用,会对行业带来哪些影响,互联网公司应当如何应对? 
  禁止使用sqrt等返回浮点数的函数,如何最高效的得到最小的不小于给定正整数的完全平方数? 
  有哪些比 Macbook 性价比高的笔记本? 
  Linux下有什么真正断电可靠的文件系统? 
  最流氓的软件可以流氓到什么程度? 

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





© 2025-06-27 - tinynew.org. All Rights Reserved.
© 2025-06-27 - tinynew.org. 保留所有权利