存储器
- CPU执行指令,存储器系统为CPU存放指令和数据
- cpu ======寄存器======
- cache memory 高速缓存存储器 -小的,快速的
main memeory 主存储器(主存)-大的,慢速的
随机访问存储器:(random-access memory,RAM)
- 静态的(SRAM),作为高速缓存存储器和;
- 动态的(DRAM),作为主存或者帧缓冲区;
- SRAM>DRAM。
- 非易失性存储器:ROM(read-only memory,只读存储器)
总线:
- 数据流是通过总线(bus)的共享电路在cpu和DRAM主存之间来回,他们之间的步骤称为总线事务,
- 从内存–>CPU 称为读事务;
- 从CPU–>内存 称为写事务
- mov A %eax(读事务)
- cpu将地址A放到存储器总线;
- 主存从总线读出A,接收字x,然后将x放到总线上
- cpu从总线上读出字x,并将它拷贝到寄存器%eax中。
- mov %eax A(写事务)
- cpu将地址A放到存储器总线上,主存读出这个地址,并等待数据;
- cpu将数据字y放到总线上;
- 主存从总线上读取数字y,并将他存储在地址A;
磁盘
- I/O总线上连接有USB控制器,用来控制鼠标和键盘,打印机,CD-ROM驱动器;图形适配器,用来代表CPU在显示器上画像素;磁盘控制器,用来代表CPU读写磁盘数据;还有网络适配器,
- 这里描述简单描述一下CPU是怎么和磁盘合作的,
- cpu通过命令,逻辑块号和目的存储器地址,写到与磁盘关联的存储器映射地址;(cpu—>磁盘控制器)
- 磁盘控制器读扇区,并执行到主存的DMA(direct memory access,直接存储器访问)传送;(磁盘控制器—>主存)
- 当DMA传送完成时,磁盘控制器以一个中断通知CPU;(磁盘控制器—通知—->CPU)
局部性原理
具有良好的局部性的程序倾向于一次又一次的访问相同的数据集合,或倾向于访问临近的数据项集合。
- 时间局部性:在一个具有良好时间局部性的程序中,被引用过一次的存储器位置很可能在不久的将来再次被引用;
- 空间局部性:在一个具有良好空间局部性的程序中,如果一个存储器的位置被访问了一次,那么程序很可能在不久的将来引用附近的一个存储器位置
存储器层次结构
- 不同的存储器设备的访问时间差异很大,速度较快的设备没字节的成本要比速度加满的设备高;
- 而且容量较小。CPU和主存之间的速度差异在增大。
- 一个编写良好的程序倾向于展示出良好的局部性。
- 缓存命中和缓存不命中;
- 缓存策略:最近最少;随机策略;