百科问答小站 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)大概比国内便宜多少呢? 
  CPU不满载的时候,晶体管在干什么? 
  笔记本升级内存后反而变慢,原因在哪? 
  为什么内存不叫运存? 
  计算机系如何写出优雅的实验报告? 
  用python如何写网页?有好的教程码? 
  为什么很多计算机系的学生一点不会电脑的基本操作? 
  为什么总有一些人推荐计算机学生把重点放在高数和线代? 
  如何评价英伟达在 2020 年 9 月 2 日凌晨发布的 RTX 30 系列新显卡? 
  r9000p 3060野兽模式只有80w功耗不知道为什么功耗被锁死了?已经更新最新的bios独显直连? 

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





© 2025-04-11 - tinynew.org. All Rights Reserved.
© 2025-04-11 - tinynew.org. 保留所有权利