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




  

相关话题

  什么显卡这个? 
  计算机未来应该纳入高考学科吗? 
  程序员职业生涯真的很短吗? 
  如何零基础入门 Python? 
  体验最好的 PE 系统是什么? 
  为什么有人愿意给品牌机洗白? 
  30系列显卡算不算最惨的一代? 
  在中国中小学计算机课堂中,推广 Linux 系统而不用 Windows ,可能吗? 
  2021 年,为何说 DIY 电脑已死? 
  配电脑在网上买零件再请师傅上门组装好还是找网上那些博主配好? 

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





© 2024-11-21 - tinynew.org. All Rights Reserved.
© 2024-11-21 - tinynew.org. 保留所有权利