当前位置: 首页 > news >正文

CSAPP 存储器层次结构

目录
  • 存储器层次结构
    • 存储技术
      • RAM
        • DRAM的读写
        • 内存模块
      • ROM
      • 主存的访问
      • 磁盘的存储
        • 磁盘的构造
        • 磁盘的存储
        • 磁盘的读写
        • 逻辑磁盘块

存储器层次结构

存储器系统是一个具有不同容量,成本和访问时间的存储设备的层次系统
整体效果是一个大的储存器池,但却以接近最便宜存储设备的成本,做到了接近顶层存储设备的读写效率
存储器层次由快到慢分别为寄存器,高速缓存存储器,主存储器,慢速磁盘

存储技术

RAM

随机访问存储器(Random Access Memory)可分为DRAM(Dynamic)和SRAM(Static)两类
SRAM 使用六晶体管电路实现,具有双稳态性,只要有电就会保持它的值,在干扰结束时,也会回到稳定状态
RRAM 对干扰十分敏感,易漏电,必须周期性重写或者使用纠错码避免漏电的影响

DRAM的读写

每个DRAM单元存储一位信息,\(w\)个DRAM单元组成一个超单元,再由\(d\)个超单元组成一个DRAM芯片
\(d\)个超单元构成一个\(r \times c\)的二维阵列,每个超单元有由行列构成的二元组地址\((i, j)\)
DRAM芯片通过引脚\(pin\)与外部传递信息,具体来说,DRAM芯片存在一个地址引脚和一个数值引脚,通过两次在地址引脚传入确定要读写的超单元地址,通过数值引脚传递具体数据。将超单元设计为二维,减少了需要的地址引脚个数,代驾是地址需要分两次传入,降低了效率

内存模块

内存模块中封装了多个DRAM芯片,我们以8个8M的DRAM芯片,每个超单元存储1个字节为例
当需要访问一个地址为A的字的时候,内存控制器将A翻译成超单元地址\((i,j)\)并发送到内存模块中,内存模块再将\((i,j)\)广播到每一个DRAM芯片,8个芯片都取出它地址为\((i,j)\)的超单元中存储的字节,再将这八个字节合并起来,传送到内存控制器中
将一个字存储在不同的DRAM芯片内的好处:通过提高并行性提高了访问效率,同时减少整个字丢失的可能,提高了可靠性

ROM

只读存储器(Read Only Memory) 部分的ROM读写都支持,但是所有的ROM都是非易失性的

PROM (Programmable ROM) 可编程ROM只能使用高电流编程一次
EPROM(Erasable PROM) 可擦写可编程ROM 与 EEPROM(Electrically EPROM) 电子可擦除ROM都能使用特殊手段擦除数据重新编程
flash memory 闪存基于EEPROM,如固态硬盘

ROM中的程序被称为固件(firmware),在通电下运行,如PC的BIOS

主存的访问

数据流通过总线(bus)在处理器和主存之间传送,读事务中数据从主存传送到处理器,写事务中数据从处理器传送到主存
处理器通过系统总线与I/O桥接器连接,主存通过内存总线与I/O桥接器连接,I/O桥接器通过将系统总线和内存总线传入的信号进行翻译
我们以读事务为例

磁盘的存储

磁盘的构造

每个磁盘包含了一个或多个盘片,每个盘片有着两个盘面,盘片绕着中心的主轴,以固定的角速度旋转
每个盘片包含了多个被称为磁道的同心圆,每个磁道上都有着多个用来存储信息的扇区,每个扇区存储的信息量大小相同,扇区间由用来标记格式化位的间隙分开
我们用柱面称呼到主轴间距相等的磁道构成的集合

磁盘的存储

磁盘存储的信息量取决于其面密度,即磁道数与磁道能存储的位数的乘积

为了简化控制,磁道的扇区数需要尽量保持相等
在技术不发达,面密度比较低的时期,每个磁道的扇区数完全相同,这导致外围的扇区间隙相比内围大了很多,造成了不必要的浪费
现代磁盘使用多区记录的技术,在每个记录区中保存了一段连续的柱面,每个记录区中的磁道扇区数相同,记录区间的扇区数不同。通过多区记录,达到了存储空间和控制难度的平衡

为什么标注1TB大小的硬盘电脑显示只有931GB?
标准不一样,硬盘制造商生产时按照1000进制计算和标注,而计算机操作系统按1024进制计算和显示

磁盘的读写

磁盘中的读/写头连接到外围的传动臂上,通过绕着传动臂转动,进行寻道以定位到某个给定的磁道上,当磁道上的某个扇区旋转到读写头正下方时,就可以对其进行读写操作

对一个扇区的访问时间,取决于一下三个部分:
1.寻道时间:传动臂将读写头移动到指定磁道的时间,这个值取决于读写头之前的位置和传动臂移动的速度
2.旋转时间:等待需要操作的扇区旋转到读写头的正下方,这取决于盘片旋转的角速度和此时目标扇区的位置
3.传送时间:这个扇区从头到尾经过读写头需要的时间,这取决于盘片旋转的角速度

计算的一个示例

可见读写的时间主要取决于寻道时间和旋转时间

逻辑磁盘块

在逻辑上,我们可以将扇区看成一个大小为\(B\)的一位结构,使用一个逻辑块号进行寻址,磁盘控制器从操作系统接收这个逻辑块号,将其翻译成一个(盘面,磁道,扇区)的三元组,再对其进行寻址并进行操作

http://www.jsqmd.com/news/67609/

相关文章:

  • WPS免费版(会员功能永久可用)
  • P1030 求先序序列
  • 2025年真空滚揉机厂家口碑排行:本地用户真实体验分享,市场上专业的滚揉机品牌优质企业盘点及核心优势详细解读
  • 第49天(中等题 数据结构)
  • 谷歌反重力 Google Antigravity 常见问题
  • windows11同时安装mysql8和mysql5.7数据库
  • 2025年午餐肉罐头机优质生产商口碑榜发布,行业内罐头机产品博锐发展迅速,实力雄厚
  • 每日反思(2025年12月8日)
  • JavaEE 和 JavaWeb的关系
  • 倍增
  • pwn入门记录
  • 2025-12-9
  • Maven 下载 Spigot 依赖失败问题排查:Could not find artifact org.spigotmc:spigot-api…
  • 12.8每日总结
  • 2025/12/08 分享
  • frp
  • 深刻理解HTTP和RPC的区别
  • linux 中 socket 文件是什么?和 socket 编程有什么关系?和 TCP/IP 协议栈又有什么关系?
  • 智能座舱的下一站:从“车内大屏”到“全域协同” - 智慧园区
  • 硬件电子知识(基础篇)
  • stable diffusion
  • 每日的小开心
  • 揭秘业务逻辑滥用:API安全中“利用游戏规则”的攻击手法
  • 放弃原容器建立新容器,保存留数据卷且映射
  • CommonUI-学习记录
  • 银行反欺诈day1
  • Hikvision 考勤机数据提取(3)
  • 2025年数控折弯机模具选购参考
  • Hikvision 考勤机数据提取(3)
  • 12306爬取基本车次信息(需下载chromedriver)