深入理解计算机存储器:从基础到高级技术
在现代计算机系统中,存储器扮演着至关重要的角色。随着处理器速度的飞速提升,"存储墙"问题日益凸显——CPU经常需要等待数据从内存中加载,造成算力浪费。本文将带你全面了解计算机存储器的工作原理、类型、性能指标以及提高存储器性能的先进技术。
存储器基础概念
存储器的基本单位是二进制位(bit),多个存储元组成存储单元,多个存储单元又构成存储体——存储器的核心部分。每个存储单元都有唯一的地址标识,可以按字或字节编址。
主存储器的主要技术指标包括:
- 存储容量:主存能容纳的二进制信息总量
- 存取速度:包括存取时间和存取周期
- 主存带宽:每秒可读写的数据量
- 可靠性:以平均无故障时间衡量
- 性能/价格比和功耗
存储器的发展与分类
从ENIAC时代的电子管触发器,到磁芯存储器,再到如今主流的半导体存储器,存储技术经历了长足发展。目前,半导体存储器已成为绝对主流,从小型单片机到巨型计算机都采用这种技术。
按功能分类,存储器可分为:
- 主存储器:直接与CPU交换信息
- 辅助存储器:不能直接与CPU交换信息
- 高速缓冲存储器:位于CPU和内存之间
- 控制存储器:存放微程序的只读存储器
半导体随机存储器(RAM)
RAM主要分为两类:静态RAM(SRAM)和动态RAM(DRAM)。
SRAM(静态存储器)
- 由触发器存储信息
- 非破坏性读出
- 不需要刷新
- 速度快但集成度低、成本高
- 主要用于高速缓存
DRAM(动态存储器)
- 利用MOS管栅极电容存储信息
- 需要定期刷新(通常2ms内)
- 集成度高、成本低
- 速度较慢但功耗小
- 主要用于主存储器
DRAM的刷新方式有三种:
- 集中式:在固定时间段内集中刷新,存在"死区"
- 分散式:每次读写后立即刷新,无死区但降低系统速度
- 异步式:前两种方式的结合,使用较多
存储系统的层次结构
为解决容量、速度和价格之间的矛盾,现代计算机采用多级存储层次结构:
- Cache-主存层次:解决主存速度不足问题,全部由硬件调度,对程序员透明
- 主存-辅存层次(虚拟存储系统):解决主存容量不足问题,需要操作系统支持
这种层次结构使系统具有接近最快存储器的速度、接近最大存储器的容量和接近最低价格的位成本。
提高存储器性能的技术
1. 双端口存储器
允许两个独立端口同时访问存储器,当地址相同时会设置BUSY标志避免冲突。
2. 多体交叉存储器
将大容量主存分成多个独立个体,交叉编址,可在不改变存取周期的前提下增加存储器带宽。
3. 高速缓冲存储器(Cache)
基于程序局部性原理(时间局部性和空间局部性),Cache能显著提高系统性能。
Cache的关键指标是命中率,即CPU在Cache中取到有效信息的次数与访问总次数的比率。
Cache与主存的地址映射方式有三种:
- 全相联映射:主存块可映射到Cache任意块,灵活但电路复杂
- 直接映射:主存块i映射到Cache块j=(i mod G),硬件简单但冲突率高
- 组相联映射:前两种方式的折中,将Cache分组,主存块映射到特定组内的任意块
4. 虚拟存储器
当程序太大无法完全装入内存时,虚拟存储器技术允许只加载部分程序到内存,其余部分留在外存,需要时再调入。
虚拟存储器的管理方式包括:
- 段式管理:以程序段为单位,便于程序管理和共享
- 页式管理:以固定大小的页为单位,减少空间浪费
- 段页式管理:结合前两者优点,先分段再分页
结语
存储器技术是计算机系统性能的关键因素。通过理解存储器的基本原理、类型特点以及各种优化技术,我们可以更好地把握计算机系统的工作机制,为系统优化和程序设计提供理论基础。随着存算一体等新架构的探索,未来存储技术有望突破"存储墙"的限制,为计算性能带来新的飞跃。
