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




  

相关话题

  家里不争气的弟弟整天打lol,如何把电脑弄坏? 
  如果不考虑漏水问题,在电子设备或处理器上滴水抹匀并用风扇吹让水蒸发的散热方法是否可行? 
  为什么大厂猝死屡现不止? 
  为什么中国有超级计算机,但是中国的 CPU 不行? 
  2018年底装机 2080 vs 1080ti? 
  为什么基于汉字的编程语言没有流行? 
  数十年前的一台电脑,是否真售 10000 元人民币? 
  有没有计算机大哥帮我看看电脑指令为什么不能运行ipconfig? 
  如何将ThinkPad键盘上的PrtSc修改为Application键(菜单键)? 
  老电脑还能发挥余热么? 

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





© 2025-05-09 - tinynew.org. All Rights Reserved.
© 2025-05-09 - tinynew.org. 保留所有权利