[Principle of Postgraduate Computer Composition] Class Notes 3 Chapter 3 Storage System Memorv Processing Unit

Article directory:

1: Similarities and differences between virtual memory and CACHE

Two: the memory hierarchy

1. Classification of memory

2. Memory performance indicators

3. Hierarchical structure of memory

Three: the basic composition of the main memory

Four: semiconductor random access memory

1. Semiconductor memory chip

2. SRAM and DRAM

3. ROM read only memory

Five: the connection between the main memory and the CPU

Six: Dual-port RAM and multi-module memory

Seven: The basic concept and principle of cache cache memory

Eight: virtual memory (focus on learning in the operating system)


1: Similarities and differences between virtual memory and CACHE

1.相同之处
    目的为了提高系统性能
    数据分为小信息块,作为基本的传递单位
    都存在地址映射,替换算法,更新策略
    按照局部性原理,将活跃的数据放到高速部件中


2.不同之处
    Cache解决系统速度问题苏尼存储器解决主存容量问题
    Cache 全部由硬件实现,是硬件存储器虚拟存储器有OS和硬件共同实现,是逻辑上的存储器
    Cache对所有程序员透明,虚拟存储器对应用程序员透明,对系统程序员不透明
    虚拟存储器不命中对系统性能影响更大
    CPU只能与Cache和主存直接交互︰虚拟存储系统只能先将数据从硬盘调入主存,不能与CPU直接通信

Two: the memory hierarchy

1. Classification of memory

1.层次分类 
    1.1 主存储器 主存、内存:可直接被CPU读写
        存放计算机运行时的程序与数据
        可以被CPU直接访问,也可以与Cache和辅存进行交换数据
        容量小,速度快,价格高
    1.2 辅助存储器 辅存、外存:
        存储当前暂时不用的程序和数据,以及一些永久保留数据
        不可以与CPU直接交互
        容量大,速度慢,价格低
    1.3 高速缓冲存储器(cache):可直接被CPU读写
        位于主存与CPU之间,缓解CPU与主存之间速度差距问题
        CPU可以直接访问
        容量小,速度与CPU相匹配,价格高高档计算机将他们放在CPU中


2.存储介质分类
    2.1 磁表面存储器︰磁盘磁带(非易失)、磁头、载磁体、磁盘
    2.2 磁芯存储器半导体存储器(MOS型存储器双极型存储器):硬磁材料、环状元件 (非易失)
    2.3 光存储器∶光盘
    2.4 半导体存储器:TTL、MOS,体积小、功耗低、速度快
    2.5 光盘存储器:激光、磁光材料 (非易失)


3.存取方式分类
        rom与ram都是随机存取,广义上的只读存储器可以通过电擦除写入的,写入速度比读速度慢
    3.1 随机存储器(RAM )
        随机存取,读写方便,使用灵活
        用途:主存高速缓冲存储器
        类型∶静态RAM(触发器原理)    动态RAM(电容充电原理)
    3.2 串行访问存储器:读写某个存储单元所需要时间与存储单元的物理位置有关
        3.2.1 顺序存储器(SAM)
            读写一个存储单元所需时间取决于存储单元所在的物理位置
        3.2.2 直接存取存储器(DAM)
            既有随机存取特性,也有顺序存取特性。先直接选取信息所在区域,然后按顺序方式存取
    3.3 相联存储器(Associative Memory) ,即可以按内容访问的存储器(ContentAddressed Memory,CAM)
        可以按照内容检索到存储位置进行读写,“快表”就是一种相联存储器


4.信息可保存性
    4.1 易失性存储器
        RAM、断电后,仍然可以保持信息
    4.2 非易失性存储器存储器
        ROM、磁表面存储器、光存储器
    4.3 读出类型:
        4.3.1 破坏性读出:读出后需要对存储信息再生
            如DRAM芯片,读出数据后要进行重写
        4.3.2 非破坏性读出:不会对原存储信息破坏    
            如SRAM芯片、磁盘、光盘


5.信息的可更改性
    5.1 只读存储器(ROM )
        只能读出不能写入
        用途:与随机存储器构成主存存储固定不变的程序(甚至操作系统的固化)
        ROM也派生出可以反复重写的类型
    5.2 读写存储器(Read/Write Memory)
        即可读、也可写(如:磁盘、内存、Cache)

2. Memory performance indicators

1.计算机追求目标:大容量,低成本,高速度(联系自身买电脑)


2.存储容量=存储字数*字长


3.单位成本/价格=总成本/总容量


4.存储速度:数据传输率=数据宽度/存储周期
    4.1 存取时间Ta:存储器启动到完成操作,分为读出时间与写入时间
    4.2 存取周期Tm(读写周期、访问周期)︰存储器进行一次完整读写操作需要时间
    4.3 主存带宽Bm(数据传输率):每秒主存进出信息的最大数量
            单位为字/秒、字节/秒(B/s)或位/秒(b/s)
    4.4 存储周期:一般大于存取时间(读写操作后需要内部复原时间)
            存储周期=存取时间+恢复时间

3. Hierarchical structure of memory

存储系统目标:更大更快更便宜
    主存----辅存层次不断发展,衍生出虚拟存储器系统


Cache-----主存层次(高速缓冲存储器)    解决CPU和主存速度不匹配问题
主存------辅存层次                     解决存储系统容量问题

Three: the basic composition of the main memory

1.基本元件
    MOS管,作为通电“开关”
    电容,存储电荷(即存储二进制0/1)


2.存储芯片的结构
    2.1 译码驱动电路:译码器将地址信号转化为字选通线的高低电平
    2.2 存储矩阵(存储体):由多个存储单元构成,每个存储单元又由多个存储元构成
    2.3 读写电路:每次读/写一个存储字
    2.4 地址线、数据线、片选线、读写控制线(可能分开两根,也可能只有一根)


3.寻址
    现代计算机通常按字节编址(每个字节),即每个字节对应一个地址
    按字节寻址、按字寻址、按半字寻址、按双字寻址

Four: semiconductor random access memory

1. Semiconductor memory chip

1.存储矩阵:大量相同的位存储单元阵列构成

2.译码驱动:地址信号翻译成对应存储单元的选通信号

3.读写电路︰完成读写操作

4.读/写控制线:决定芯片是读还是写

5.片选线:确定那个芯片被选中

6.数据线数与地址线数共同反映存储芯片容量大小
    地址线:单项输入,位数与存储字的个数有关
    数据线:双向的,位数与读出或写入的数据位数有关

7.半导体随机存储器分类(存储原理不同)
    SRAM∶高速缓存
    DRAM:主存
74138译码器

2. SRAM and DRAM

RAM chip - one is volatile, data disappears after power off 

1.SRAM用于Cache(使用双稳态触发器存储信息)
    使用双稳态触发器(六管MOS)记忆信息
    非破坏性读出,易失性存储器
    存取速度快,集成度低,功耗大,成本高,常用来组成高速缓冲存储器
    同时送行列地址


2.DRAM用户主存(使用栅极电容存储信息)
    2.2 利用电荷存储信息,破坏性读出,易失性存储器
        存取速度慢,集成度高,功耗低,容量大,成本低,常用来组成主存系统
        分两次送行列地址

    2.3 刷新方法(DRAM特有)    死区∶在刷新的时候,停止对存储器的读写操作,称为死时间
            刷新单位是行
        2.3.1 集中刷新
            刷新时间固定存在死区
            读写不受刷新影响,存取速度快
            死区不能访问存储器
        2.3.2 分散刷新
            将每行刷新分散到各个工作周期中
            没有死区
            存取周期边长,降低整机速度
        2.3.3 异步刷新
            集中刷新和异步刷新结合
            缩短了死时间,又提高了整机速度
        2.3.4 透明刷新:刷新安排在译码阶段,不存在死时间


3.存储器的读写周期
    RAM读周期︰存储芯片进行两次连续读操作时,必须间隔的时间,读周期总是大于等于读出时间
    RAM写周期∶数据总线上的信息能够可靠的写入存储器

1.多久需要刷新一次?
    刷新周期:一般为2ms


2.每次刷新多少存储单元?    以行为单位,每次刷新一行存储单元
   为什么要用行列地址?    减少选通线的数量


3.如何刷新?
    有硬件支持,读出一行的信息后重新写入,占用1个读/写周期


4.在什么时刻刷新?
    假设DRAM内部结构排列成128×128的形式,读/写周期(存取周期)0.5us,2ms共2ms/0.5us = 4000个周期

3. ROM read only memory

ROM chip - a non-volatile, data will not be lost after power off 

1.ROM特点:
    随机存取,非易失性存储器
    结构简单,位密度比可读写存储器高


2.ROM类型
    2.1 掩膜式只读存储器(MROM):可靠性高,集成度高,价格便宜、灵活性差
                          在芯片生产过程中直接写入信息,之后任何人不可重写(只能读出)
    2.2 一次性可编程只读存储器(PROM):写入内容无法更改,可编程只读存储器
                                用户可用专门的PROM写入器写入信息,写一次之后就不可更改            
    2.3 可擦除可编程只读存储器(EPROM):可擦除可编程只读存储器
                                可以对内容进行多次改写、紫外线擦除UVEPROM、电擦除E^2PROM
        2.3.1 紫外线擦除UVEPROM (ultraviolet rays) —―用紫外线照射8~20分钟,擦除所有信息
        2.3.2 电擦除EEPROM(也常记为EPROM,第一个E是Electrically)一一可用“电擦除”的方式,擦除特定的字
    2.4 闪速存储器(Flash Memory):如U盘,写入速度较快
                                可长期保存信息可重写、价格便宜,集成度高、擦写速度快
                                注意:由于闪存需要先擦除在写入,因此闪存的“写”速度要比“读”速度更慢
    2.5 固态硬盘(SSD):控制单元+FLASH芯片
                      可以长期保存信息,快速擦除,重写、相对于传统硬盘,读写速度快,低功耗、价格高
                      由控制单元+存储单元(Flash芯片)构成

Five: the connection between the main memory and the CPU

1.连接原理:主存储器与CPU连接(数据总线、地址总线、控制总线)


2.存储器芯片的基本结构:译码驱动电路、存储矩阵、读写电路
                    地址线、数据线、片选线、读写控制线


3.主存容量扩展:位扩并字扩串
    3.1 位扩展:将多个存储芯片并联、8片8Kx1位—>8Kx8位存储器
    3.2 字扩展:多个存储芯片串联、4片16Kx8位->64Kx8位
        字扩展法(存储芯片的地址分配和片选)
            3.2.1 线选法:
                通过地址线直接对芯片进行选择
                优点:不需要地址译码器线路简单
                缺点:地址空间不连续,不能充分利用系统存储空间,造成地址资源浪费
            3.2.2 译码片选法:
                通过使用地址译码器对芯片进行选择
                优点:每片芯片的地址范围是唯━确定的,而且是连续的,也便于扩展
                缺点∶对译码电路要求过高
    3.3 字位同时扩展法:增加存储字数量,增加存储字长、并联与串联结合在一起
            选择存储器芯片与CPU进行连接


4.存储器与CPU的连接
    4.1 选择合理存储芯片:
        RAM∶为用户编程设置的
        ROM:存放系统程序
    4.2 地址线的选择:芯片容量不同地址线也不同
        CPU地址线低位与存储芯片的地址线连接
        CPU地址线高位用于扩充芯片使用
    4.3 数据线的连接
        CPU数据线数与存储芯片线数相等时可以直接连接
        CPU数据线数与存储芯片线数不等时∶必须对存储芯片进行扩位,使其相等
    4.4 读/写命令线的连接:高电平为读,低电平为写
    4.5 片选线的连接:片选线的作用在于选择那一片存储芯片被选中(是CPU与存储芯片连接的关键)

Six: Dual-port RAM and multi-module memory

1.目的︰为了提高CPU访问存储器的速度采用双端口存储器(空间并行)、多模块存储器(时间并行)


2.双端口RAM
        一个存储器有左,右两个独立端口,分别具有两组相互独立的地址线,数据线,读写控制线
        支持两个CPU同时访问RAM
        可同时读/写不同的存储单元;可同时读同一个存储单元;不能同时写(或者一读一写)同一个单元
        若发生“冲突”,则发出“BuSY"信号,其中一个CPU的访问端口暂时关闭
    2.1 冲突:
        对同一地址单元,两个端口同时写入数据
        对于同一个地址单元一个端口写一个端口读
    2.2. 无冲突:
        对同一个地址单元,两个端口同时读
        对于同一个地址单元,两个端口不同时写


3.多模块存储器:多体低位交叉编制可以有效的提高存储速度
        目的:为了提高访问速度
    3.1 单体多字存储器
        按照地址顺序读出数据,存储单元存储m个字,总线宽度也为m个字,一次性并行读出m个字,总线宽度也要扩展为m个字
        优点:增大了存储器带宽,提高单体存储器工作速度
    3.2 多体并行存储器
            多个模块构成,每个模块有着相同的容量和存取速度,各模块独既可并行工作又可以交叉工作
        3.2.1 高位交叉编址:本质上仍然是顺序存储器
                     理论上多个存储体可以被并行访问,但是由于通常会连续访问,因此实际效果相当于单纯的扩容
        3.2.2 低位交叉编址:可以在不改变每个模块的存取周期的前提下,采用流水线的方式并行存储,可以提高存储器的带宽


4.存取周期T:可以连续读/写的最短时间间隔=存取时间r +恢复时间
         当存储模块数m≥T/r时,可使流水线不间断
         每个存储周期内可读写地址连续的m个字
         微观上, m个模块被串行访问;宏观上,每个存取周期内所有模块被并行访问

Seven: The basic concept and principle of cache cache memory

1.工作原理:将某些主存块复制到Cache中,缓和CPU与主存之间的速度矛盾


2.基本概念
    主存与Cache之间以“块"为单位进行数据交换
    主存的“块”又叫“页/页框/页面”;Cache的“块”又叫“行”
    主存地址可拆分为(主存块号,块内地址)的形式
    每次被访问的主存块,一定会被立即调入cache


3.局部性原理
    时间局部性:现在访问的地址,不久之后也很可能被再次访问
    空间局部性:现在访问的地址,其附近的地址也很可能即将被访问


4.性能分析
    理解Cache命中率、缺失率
    两种方式:
        先访问Cache,发现未命中再访问主存
        同时访问Cache和主存,若Cache命中则停止访问主存


如何区分Cache 与主存的数据块对应关系?
5.CACHE与主存的映射方式
        按照一定的规则将主存中的某些数据存入到Cache中
        有效位(O/1)+标记+整块数据
        其中“标记"用于指明对应的内存块,不同映射方式,“标记”的位数不同
    5.1 直接映射:
        主存块只能放到特定的某个Cache行,行号=主存块号%总行数
        主存地址结构:标记(主存块号前几位)+行号(主存块号末几位)块内地址
        优点∶对于任意一个地址,只需对比一个“标记”,速度最快﹔缺点:Cache存储空间利用不充分,命中率低
    5.2 全相联映射:
        主存块可以放到Cache的任意位置
        主存地址结构:标记(整个主存块号)+块内地址
        优点:Cache存储空间利用充分,命中率高;{缺点〉查找“衫记"最慢,有可能需要对比所有行的标记
    5.3 组相邻映射
        主存块可以放到特定分组中的任意位置,所属组号=主存块号%总组数
        主存地址结构:标记(主存块号前几位)+组号(主存块号末几位)块内地址
        优点:另外两种方式的折中,综合效果较好
        术语:n路组相联映射——每n个Cache行为一组


Cache很小,主存很大。如果cache满了怎么办?
6.CACHE中的替换算法
    6.1 随机算法RAND:随机确定替换的Cache块
        优点﹔实现简单
        缺点∶没有依据局部性原理,命中率低
    6.2 先进先出算法FIFO:最早调入的行进行替换
        优点:容易实现
        缺点:没有依据局部性原理
    6.3 近期最少使用算法LRU:根据局部性原理,选择近期内最久没有访问的存储行(堆栈类篁法)
        优点:平均命中率高的
        缺点:需要设置计数器比较存储行
    6.4 最不经常使用算法LFU:一段时间内访问次数最少的存储行换出
        将被访问次数最少的主存块替换。每个Cache行设置一个“计数器",用于记录被访问过多少次
        曾经被经常访问的主存块在未来不一定会用到,LFU实际运行效果不好

CPu修改了Cache中的数据副本,如何确保主存中数据母本的一致性?
7.CACHE写策略:非写分配法与全写法搭配写分配法与写回法搭配
    7.1 写命中:
        7.1.1 全写法(写直通法.write-through ) :对Cache写命中后,数据同时写入Cache和主存
            实现简单,随时保持主存数据正确性
            增加了访存次数,降低了效率
        7.1.2 写回法( write-back): 对Cache命中时,只修改Cache内容,不立即写入主存
            减少了访存次数
            存在数据不一致的隐患,同时需要设置一个脏位
    7.2 写不命中:
        7.2.1 写分配法( write-allocate):加载主存中的块到Cache中,然后更新Cache块
            试图使用空间局部性原理
            每次不命中都要从主存中调块
        7.2.2 非写分配法( not-write-allocate):只写入主存,不进行调块
    7.3 多级Cache(通常为3级):可以有效避免频繁写时造成的写缓冲饱和和溢出
        现代计算机通常采用多级Cache结构,各级Cache间常采用“全写法+非写分配法”,Cache和主存间常采用“写回法+写分配法”

Eight: virtual memory (focus on learning in the operating system)

1.基本概念
    将主存或者辅存的地址空间统一编址
    实地址对应的是主存地址空间
    使用虚地址需要辅助硬件找出虚地址和实地址之间的关系,并对其对应存储单元装入状态进行判断
    实际情况:需要使用的先送入主存,暂时不用的放在磁盘中
    逻辑地址(虚地址):程序员视角看到的地址
        逻辑地址=逻辑页号+页内地址(虚地址=虚页号+页内地址)
    物理地址(实地址):实际在主存中的地址
        物理地址=主存块号+页内地址(实地址=实页号+页内地址)


2.页式虚拟存储器
    优点∶页面长度固定调入方便
    缺点:零头浪费对页的处理、保护共享不是特别方便
    以页为基本单位的虚拟存储器称为页式虚拟存储器
    计算过程:
        虚拟地址=虚页号+页内地址
        虚页号+页表起始地址=页表地址    根据页表地址查找实页号
        实页号+页内地址=实地址


3.段式虚拟存储器
    优点∶段分界与程序分界相对应易于编译、管理、修改、保护、共享
    缺点∶段长分配不便存在段间碎片
    按照程序的逻辑结构划分
    计算过程:    
        虚地址=段号+段内地址
        段号+段表起始地址=段表地址    查询段表数据
        实地址=段表所得数据+段内地址


4.段页式存储器
    优点:可以按段实现共享和保护,同时也有着页的调用方便
    缺点∶地址变换要两次查表,开销较大
    先将程序按逻辑分段,再将每段分为固定大小页
    段长必须是页的整数倍
    虚地址=段号+段内页号+页内地址


5.快表(TLB)
    根据局部性原理,将一些经常访问的页放入高速缓冲器中构成快表,可以极大提高查询的效率
    采用相联存储器构成,可以按照内容查询
    访问顺序:TLB--->页表--->Cache--->主存
    命中情况:只要抓住存储数据的来源就可以推导出命中情况
        Cache命中,page必然命中,TLB不一定命中
        Cache不命中,无法退出TLB与page命中情况
        Page不命中,Cache和主存不会命中,此时要执行调页策略

 

Guess you like

Origin blog.csdn.net/liu17234050/article/details/124087608