片上计算机系统05-存储器_第1页
片上计算机系统05-存储器_第2页
片上计算机系统05-存储器_第3页
片上计算机系统05-存储器_第4页
片上计算机系统05-存储器_第5页
已阅读5页,还剩167页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机组成原理

第五章存储器姓名:杨慧晶单位:软件学院Email:yanghuijing@第五章存储器概述主存储器高速缓冲存储器虚拟存储器辅助存储器概述存储器的地位不断上升1、存储器的运行速度对计算机运行速度有很大影响。2、DMA方式提高了存储器的地位。3、存储器是多处理机系统信息交换的重要渠道。一、存储器分类1、按存储介质分类半导体存储器:TTL、MOS

体积小、功耗低、存取时间短、易失性。磁表面存储器:磁盘、磁带、磁鼓磁芯存储器:硬磁材料的环状元件光盘存储器:激光、磁光易失非易失2、按数据保存方式分类随机存储器(RandomAccessMemory)易失性静态随机存储器、动态随机存储器只读存储器(ReadOnlyMemory)非易失性掩膜型只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪速存储器(FlashMemory)2、按数据保存方式分类随机存储器(RandomAccessMemory)易失性静态随机存储器、动态随机存储器只读存储器(ReadOnlyMemory)非易失性掩膜型只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪速存储器(FlashMemory)可擦除可编程只读存储器紫外线接收窗2、按数据保存方式分类随机存储器(RandomAccessMemory)易失性静态随机存储器、动态随机存储器只读存储器(ReadOnlyMemory)非易失性掩膜型只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪速存储器(FlashMemory)Flash存储器3、按数据存取方式分类直接访问:访问时间不随访问位置而变化。内存串行访问:访问时间随访问位置而变化。磁带(顺序访问)部分串行访问:介于上述二者之间磁盘4、按在计算机中的作用主存储器辅助存储器高速缓冲存储器Cache主存辅存4、按在计算机中的作用主存储器辅助存储器高速缓冲存储器Cache主存辅存为什么要采取金字塔型层次结构呢?磁盘、磁带、光盘高速缓冲存储器(Cache)FlashMemory存储器主存储器辅助存储器MROMPROMEPROMEEPROMRAMROM静态RAM动态RAM存储器分类总结二、存储器的层次结构1、存储器各层位置及特点低CPU主存硬盘光盘磁带控制器运算器寄存器cache低CPU主存硬盘光盘磁带控制器运算器寄存器cache二、存储器的层次结构1、存储器各层位置及特点高低小大快慢辅存寄存器缓存主存磁盘光盘磁带光盘磁带速度容量价格位/CPUCPU主机二、存储器的层次结构1、存储器各层位置及特点高低小大快慢辅存寄存器缓存主存磁盘光盘磁带光盘磁带速度容量价格位/CPUCPU主机目标:高速度、大容量、低成本。具体来说:接近高速缓存的速度、接近辅存的容量、接近辅存的平均每位成本。2、两个主要层次缓存——主存层次

主要解决速度匹配和成本问题主存——辅存层次

主要解决速度、容量、成本问题缓存CPU主存辅存10ns20ns200nsms地址空间虚地址(逻辑地址):程序员编程时采用的地址(相对地址),地址空间大于实际主存。实地址(物理地址):主存的实际地址虚地址实地址硬件:MMU软件:OS地址空间虚地址(逻辑地址):程序员编程时采用的地址(相对地址),地址空间大于实际主存。实地址(物理地址):主存的实际地址虚地址实地址硬件:MMU软件:OS0MOVAX,#41MOVBX,#22MOVCX,#63JMP64ANDAX,#235ANDBX,#226MOVDX,#37SUBDX,AX20MOVAX,#421MOVBX,#222MOVCX,#623JMP2624ANDAX,#2325ANDBX,#2226MOVDX,#327SUBDX,AX硬件:MMU软件:OS逻辑地址物理地址主存储器一、概述1、主存的基本结构存储体驱动器译码器MAR控制电路读写电路MDR地址总线数据总线读写……………MARMDRCPU主存存储器ABDBCBReadready读操作2、主存和CPU的联系主存存储器CPU主存存储器MARMDRCPU主存存储器ABDBCBWriteready写操作2、主存和CPU的联系CPU主存存储器主存存储器CPUMARMDRCPU主存存储器ABDBCBWriteready写操作2、主存和CPU的联系MDR、MAR实际在CPU内部。3、主存单元地址设地址线24根按字节寻址按字寻址若字长为16位按字寻址若字长为32

位字地址字节地址11109876543210840224=16M8M4M通常计算机可按字节寻址,也可按字寻址数据存储模式:大端vs小端小端存储方式2143658722H23H24H25H26H27H28H24H0x87654321数据的低位存储于内存地址的低位读取小端数据32位系统,入口参数为字符指针int

readint_little(char*data){

inta0,a1,a2,a3;

a0=*(data++);a1=*(data++);a2=*(data++);a3=*(data++);returna0|(a1<<8)|(a2<<16)|(a3<<24);}2143658722H23H24H25H26H27H28H0x87654321数据存储模式:大端vs小端大端存储方式8765432122H23H24H25H26H27H28H24H0x87654321数据的低位存储于内存地址的高位读取大端数据32位系统,入口参数为字符指针0x87654321int

readint_big(char*data){

inta0,a1,a2,a3;

a0=*(data++);a1=*(data++);a2=*(data++);a3=*(data++);return(((((a0<<8)|a1)<<8)|a2)<<8)|a3;}8765432122H23H24H25H26H27H28H问题:如何用程序判断一个机器是大端还是小端类型?解法1intmain(){

inta=0x44434241;

int*pa=&a;

printf("%c\n",*((char*)pa));return0;}解法2uniontest{

inta;charc;};intmain(){uniontestt={0x41424344};

printf("%c\n",t.c);return0;}4、主存的技术指标存储容量:主存能存放的二进制数的总位数存储器容量=存储单元个数×存储字长存储速度:存取时间:启动一次存储器操作到完成操作的时间。也叫做访问时间。分为读出时间和写入时间。存取周期:进行两次连续存储器操作间的最小间隔。MOS型为100ns,TTL型为10ns。存储器带宽:单位时间内存储器存取的信息量(字节/秒、字/秒、位/秒)。4、主存的技术指标存储容量:主存能存放的二进制数的总位数存储器容量=存储单元个数×存储字长存储速度:存取时间:启动一次存储器操作到完成操作的时间。也叫做访问时间。分为读出时间和写入时间。存取周期:进行两次连续存储器操作间的最小间隔。MOS型为100ns,TTL型为10ns。存储器带宽:单位时间内存储器存取的信息量(字节/秒、字/秒、位/秒)。如存取周期是500ns每个存取周期可访问16位则带宽是32M位/秒译码驱动存储矩阵读写电路片选线读/写控制线地址线…数据线…片选线读/写控制线(低电平写高电平读)(允许读)CSCEWE(允许写)WEOE二、半导体存储芯片简介1、半导体存储芯片的基本结构译码驱动存储矩阵读写电路片选线读/写控制线地址线…数据线…片选线读/写控制线(低电平写高电平读)(允许读)CSCEWE(允许写)WEOE二、半导体存储芯片简介1、半导体存储芯片的基本结构地址线(单向)数据线(双向)存储容量

10 41K×4位

14116K×1位

1388K×8位用16K×1位的存储芯片组成64K×8位的存储器

32片分4组,由片选信号决定哪一组工作。

8片16K×1位

8片16K×1位

8片16K×1位

8片16K×1位存储芯片片选的作用用16K×1位的存储芯片组成64K×8位的存储器

8片16K×1位

8片16K×1位

8片16K×1位

8片16K×1位2-4译码器A15A14A0A13存储芯片片选的作用用16K×1位的存储芯片组成64K×8位的存储器

8片16K×1位

8片16K×1位

8片16K×1位

8片16K×1位2-4译码器A15A14A0A1300存储芯片片选的作用用16K×1位的存储芯片组成64K×8位的存储器

8片16K×1位

8片16K×1位

8片16K×1位

8片16K×1位2-4译码器A15A14A0A1301存储芯片片选的作用用16K×1位的存储芯片组成64K×8位的存储器

8片16K×1位

8片16K×1位

8片16K×1位

8片16K×1位2-4译码器A15A14A0A1310存储芯片片选的作用用16K×1位的存储芯片组成64K×8位的存储器

8片16K×1位

8片16K×1位

8片16K×1位

8片16K×1位2-4译码器A15A14A0A1311存储芯片片选的作用2、半导体芯片的译码驱动线选法重合法描述如何由地址信息选中某存储单元0,015,015,70,7

读/写控制电路

地址译码器

字线015……16×8矩阵………07D07D位线读/写选通A3A2A1A0……00000,00,7…0…07…D07D读/写选通

读/写控制电路

线选法0,015,015,70,7

读/写控制电路

地址译码器

字线015……16×8矩阵………07D07D位线读/写选通A3A2A1A0……0000线选法用一根字选择线直接选中存储单元的各位(如一个字节)。A3A2A1A0A40,310,031,031,31

Y地址译码器

X地址译码器

32×32

矩阵……A9I/OA8A7A56AY0Y31X0X31D读/写……00000000000,031,00,31……I/OD0,0读重合法A3A2A1A0A40,310,031,031,31

Y地址译码器

X地址译码器

32×32

矩阵……A9I/OA8A7A56AY0Y31X0X31D读/写……0000000000重合法被选中单元由X、Y两个方向决定A3A2A1A0A40,310,031,031,31

Y地址译码器

X地址译码器

32×32

矩阵……A9I/OA8A7A56AY0Y31X0X31D读/写……0000000000重合法重合法有什么好处呢?A3A2A1A0A40,310,031,031,31

Y地址译码器

X地址译码器

32×32

矩阵……A9I/OA8A7A56AY0Y31X0X31D读/写……0000000000重合法能够大量减少地址译码线数目,简化芯片设计。三、随机存储器(RAM)静态随机存储器(SRAM)基本单元电路(一个二进制存储位)举例读写时序动态随机存储器(DRAM)基本单元电路(一个二进制存储位)举例读写时序刷新静态随机存储器和动态随机存储器比较MOS管工作在开关状态:饱和导通&截止预备知识漏极Drain源极Source栅极Gate开关电路vccoutputinputT1T2NMOS反相器

(1)静态RAM基本单元电路1、静态随机存储器(SRAM)互锁的触发器,A和A’点的电位总相反,A点电位定义为此二进制位的值。A’VccAT1T2T4T6T3T5位线A位线A’六管触发器假设T5、T6导通

(1)静态RAM基本单元电路1、静态随机存储器(SRAM)扩展:T5、T6相当于一把锁,T7、T8相当于另一把锁,两把锁都打开,方可与外界交换信息A’VccAT1T2T4T6T3T5位线A位线A’T7T8

(1)静态RAM基本单元电路1、静态随机存储器(SRAM)T5、T6相当于一把锁,T7、T8相当于另一把锁,两把锁都打开,方可与外界交换信息A’VccAT1T2T4T6T3T5位线A位线A’T7T8互锁触发器T5、T6T7、T8两把锁都打开,互锁的触发器可以和外界通信。

(1)静态RAM基本单元电路A´触发器非端1T4T~触发器5TT6、行开关7TT8、列开关7TT8、一列共用A

触发器原端T1~T4T5T6T7T8A´A写放大器写放大器DIN写选择读选择DOUT读放位线A位线A´列地址选择行地址选择T1~T41、静态随机存储器(SRAM)A´T1

~T4T5T6T7T8A写放大器写放大器DIN写选择读选择读放位线A位线A´列地址选择行地址选择DOUT行选

T5、T6开T7、T8开列选读放DOUTVAT6T8DOUT读选择有效读操作T1~T4T5T6T7T8A´ADIN位线A位线A´列地址选择行地址选择写放写放读放DOUT写选择读选择行选T5、T6开两个写放DIN列选T7、T8开(左)

反相T5A´(右)

T8T6ADINDINT7写选择有效T1~T4写操作存储容量1K×4

位I/O1I/O2I/O3I/O4A0A8A9WECSVCCGNDIntel2114…(2)静态RAM举例:2114A3A4A5A6A7A8A0A1A2A915…031…1647…3263…48150311647326348读写电路读写电路读写电路读写电路……………………0163015……行地址译码列地址译码I/O1I/O2I/O3I/O4WECS第一组第二组第三组第四组64×64方框矩阵,分4组。每个方框都是一个六管存储单元,行线控制T5、T6,列线控制T7、T8。图中竖线是位线。每组是个64行,16列的矩阵,共1024位。行线:T5、T6,列线:T7、T8。竖线是两位线读过程A3A4A5A6A7A8A0A1A2A915…031…1647…3263…48150311647326348读写电路读写电路读写电路读写电路……………………0163015……行地址译码列地址译码I/O1I/O2I/O3I/O4WECS第一组第二组第三组第四组15…031…1647…3263…48150311647326348读写电路读写电路读写电路读写电路……………………0163015……行地址译码列地址译码I/O1I/O2I/O3I/O4WECS第一组第二组第三组第四组0000000000行线:T5、T6,列线:T7、T8。竖线是两位线第一组第二组第三组第四组15…031…1647…3263…48150311647326348读写电路读写电路读写电路读写电路……………………0163015……行地址译码列地址译码I/O1I/O2I/O3I/O4WECS0000000000150311647326348…………行线:T5、T6,列线:T7、T8。竖线是两位线第一组第二组第三组第四组15…031…1647…3263…48150311647326348读写电路读写电路读写电路读写电路……………………0163015……行地址译码列地址译码I/O1I/O2I/O3I/O4WECS0000000000150311647326348…………0…164832………行线:T5、T6,列线:T7、T8。竖线是两位线15…031…1647…3263…48150311647326348读写电路读写电路读写电路读写电路……………………0163015……行地址译码列地址译码I/O1I/O2I/O3I/O4WECS0000000000150311647326348…………0…164832………第一组第二组第三组第四组0163248CSWE行线:T5、T6,列线:T7、T8。竖线是两位线15…031…1647…3263…48150311647326348读写电路读写电路读写电路读写电路……………………0163015……行地址译码列地址译码I/O1I/O2I/O3I/O4WECS0…164832………第一组第二组第三组第四组150311647326348…………01632480000000000…………行线:T5、T6,列线:T7、T8。竖线是两位线15…031…1647…3263…48150311647326348读写电路读写电路读写电路读写电路……………………0163015……行地址译码列地址译码I/O1I/O2I/O3I/O4WECS0000000000…………第一组第二组第三组第四组150311647326348…………01632480…164832………行线:T5、T6,列线:T7、T8。竖线是两位线15…031…1647…3263…48150311647326348读写电路读写电路读写电路读写电路……………………0163015……行地址译码列地址译码I/O1I/O2I/O3I/O4WECS0000000000…………第一组第二组第三组第四组150311647326348…………0163248读写电路读写电路读写电路读写电路0…164832………行线:T5、T6,列线:T7、T8。竖线是两位线15…031…1647…3263…48150311647326348读写电路读写电路读写电路读写电路……………………0163015……行地址译码列地址译码I/O1I/O2I/O3I/O4WECS0000000000…………第一组第二组第三组第四组150311647326348…………0163248读写电路读写电路读写电路读写电路0…164832………I/O1I/O2I/O3I/O4行线:T5、T6,列线:T7、T8。竖线是两位线行线:T5、T6,列线:T7、T8。竖线是两位线A3A4A5A6A7A8A0A1A2A915…031…1647…3263…48150311647326348读写电路读写电路读写电路读写电路……………………0163015……行地址译码列地址译码I/O1I/O2I/O3I/O4WECS第一组第二组第三组第四组写过程15…031…1647…3263…48150311647326348读写电路读写电路读写电路读写电路……………………0163015……行地址译码列地址译码I/O1I/O2I/O3I/O4WECS第一组第二组第三组第四组0000000000行线:T5、T6,列线:T7、T8。竖线是两位线第一组第二组第三组第四组15…031…1647…3263…48150311647326348读写电路读写电路读写电路读写电路……………………0163015……行地址译码列地址译码I/O1I/O2I/O3I/O4WECS0000000000150311647326348…………行线:T5、T6,列线:T7、T8。竖线是两位线第一组第二组第三组第四组15…031…1647…3263…48150311647326348读写电路读写电路读写电路读写电路……………………0163015……行地址译码列地址译码I/O1I/O2I/O3I/O4WECS0000000000150311647326348…………WECS0…164832………行线:T5、T6,列线:T7、T8。竖线是两位线第一组第二组第三组第四组I/O1I/O2I/O3I/O4WECS15…031…1647…3263…48150311647326348读写电路读写电路读写电路读写电路……………………0163015……行地址译码列地址译码0000000000150311647326348…………I/O1I/O2I/O3I/O40…164832………行线:T5、T6,列线:T7、T8。竖线是两位线第一组第二组第三组第四组I/O1I/O2I/O3I/O4WECS15…031…1647…3263…48150311647326348读写电路读写电路读写电路读写电路……………………0163015……行地址译码列地址译码0000000000150311647326348…………I/O1I/O2I/O3I/O4读写电路读写电路读写电路读写电路0…164832………行线:T5、T6,列线:T7、T8。竖线是两位线第一组第二组第三组第四组I/O1I/O2I/O3I/O4WECS15…031…1647…3263…48150311647326348读写电路读写电路读写电路读写电路……………………0163015……行地址译码列地址译码0000000000150311647326348…………I/O1I/O2I/O3I/O4读写电路读写电路读写电路读写电路0…164832………行线:T5、T6,列线:T7、T8。竖线是两位线第一组第二组第三组第四组I/O1I/O2I/O3I/O415…031…1647…3263…48150311647326348读写电路读写电路读写电路读写电路……………………0163015……行地址译码列地址译码WECS0000000000150311647326348…………读写电路读写电路读写电路读写电路I/O1I/O2I/O3I/O40…164832………行线:T5、T6,列线:T7、T8。竖线是两位线第一组第二组第三组第四组I/O1I/O2I/O3I/O415…031…1647…3263…48150311647326348读写电路读写电路读写电路读写电路……………………0163015……行地址译码列地址译码WECS0000000000150311647326348…………I/O1I/O2I/O3I/O4读写电路读写电路读写电路读写电路01632480…164832………行线:T5、T6,列线:T7、T8。竖线是两位线ACSDOUT地址有效地址失效片选失效数据有效数据稳定高阻tAtCOtOHAtOTDtRC片选有效(3)静态RAM读时序ACSDOUT地址有效地址失效片选失效数据有效数据稳定高阻tAtCOtOHAtOTDtRC片选有效(3)静态RAM读时序tRC:读周期。两次读的最小间隔。ACSDOUT地址有效地址失效片选失效数据有效数据稳定高阻tAtCOtOHAtOTDtRC片选有效(3)静态RAM读时序tA:读时间。从地址有效到数据稳定所需的时间ACSDOUT地址有效地址失效片选失效数据有效数据稳定高阻tAtCOtOHAtOTDtRC片选有效(3)静态RAM读时序tCO:从片选有效到输出稳定的时间。ACSWEDOUTDINtWCtWtAWtDWtDHtWR(3)静态RAM写时序ACSWEDOUTDINtWCtWtAWtDWtDHtWR(3)静态RAM写时序tWC:写周期。连续两次写操作的最小间隔。ACSWEDOUTDINtWCtWtAWtDWtDHtWR(3)静态RAM写时序tAW:滞后时间。此时数据线内容为上一次操作的内容,因此cs与we信号不能立刻施加。ACSWEDOUTDINtWCtWtAWtDWtDHtWR(3)静态RAM写时序tDW:在cs和写信号失效前的tDW时间前,必须提供写入数据。ACSWEDOUTDINtWCtWtAWtDWtDHtWR(3)静态RAM写时序tDH:为保证数据可靠写入,在cs和写信号失效之后,写入数据还需要维持一段时间。DD预充电信号读选择线写数据线写选择线读数据线VCgT4T3T2T11读出与原存信息相反读出时数据线有电流为“1”数据线CsT字线DDV010110写入与输入信息相同写入时CS充电为“1”放电为“0”T3T2T1T无电流有电流2、动态RAM(1)基本单元电路单元电路读写控制电路列地址译码器………读选择线写选择线D行地址译码器001131311A9A8A7A6A531A4A3A2A1A0刷新放大器写数据线读数据线……………0…00000000000D…00单元电路读写控制电路…(2)DRAM芯片举例(intel1103)读三管DRAMA9A8A7A6A5读写控制电路列地址译码器………读选择线写选择线D单元电路行地址译码器00113131131A4A3A2A1A0刷新放大器写数据线读数据线……………0…写11111A9A8A7A6A5读写控制电路列地址译码器………读选择线写选择线D单元电路行地址译码器00113131131A4A3A2A1A0刷新放大器写数据线读数据线……………0…写A9A8A7A6A5读写控制电路列地址译码器………读选择线写选择线D单元电路行地址译码器00113131131A4A3A2A1A0刷新放大器写数据线读数据线……………0…11111…写A9A8A7A6A5读写控制电路列地址译码器………读选择线写选择线D单元电路行地址译码器00113131131A4A3A2A1A0刷新放大器写数据线读数据线……………0……0100011111写A9A8A7A6A5读写控制电路列地址译码器………读选择线写选择线D单元电路行地址译码器00113131131A4A3A2A1A0刷新放大器写数据线读数据线……………0……1111110100011…写A9A8A7A6A5读写控制电路列地址译码器………读选择线写选择线D单元电路行地址译码器00113131131A4A3A2A1A0刷新放大器写数据线读数据线……………0……D11111010001…写A9A8A7A6A5读写控制电路列地址译码器………读选择线写选择线D单元电路行地址译码器00113131131A4A3A2A1A0刷新放大器写数据线读数据线……………0……D11111010001读写控制电路…写A9A8A7A6A5读写控制电路列地址译码器………读选择线写选择线D单元电路行地址译码器00113131131A4A3A2A1A0刷新放大器写数据线读数据线……………0……D11111010001读写控制电路…写A9A8A7A6A5读写控制电路列地址译码器………读选择线写选择线D单元电路行地址译码器00113131131A4A3A2A1A0刷新放大器写数据线读数据线……………0……D11111010001读写控制电路…写时序与控制行时钟列时钟写时钟

WERASCAS

A'6A'0存储单元阵列基准单元行译码列译码器再生放大器列译码器读出放大基准单元存储单元阵列行译码

I/O缓存器数据输出驱动数据输入寄存器

DINDOUT~行地址缓存器列地址缓存器DINDOUTA'6A'0~(3)DRAM芯片举例(4116)16K×1单管DRAM

读放大器

读放大器

读放大器………………………06364127128根行线Cs01271128列选择读/写线数据输入I/O缓冲输出驱动DOUTDINCs

读放大器

读放大器

读放大器……63000I/O缓冲输出驱动OUTD读

读放大器

读放大器

读放大器………………………06364127128根行线Cs01271128列选择读/写线数据输入I/O缓冲输出驱动DOUTDINCs…数据输入I/O缓冲I/O缓冲DIN读出放大器

读放大器630写

行、列地址分开传送写时序行地址RAS有效写允许WE有效(高)数据

DOUT

有效数据

DIN

有效读时序行地址RAS有效写允许WE有效(低)列地址CAS有效列地址CAS有效(4)读写时序按行刷新①集中刷新(存取周期为0.5

s

)“死时间率”为128/4000×100%=3.2%“死区”为0.5

s

×128=64

s

周期序号地址序号tc0123871387201tctctctc3999VW01127读/写或维持刷新读/写或维持3872个周期(1936

s)

128个周期(64

s)

刷新时间间隔(2ms)刷新序号••••••tcXtcY••••••以128×128矩阵为例(5)刷新tC=tM

+tR读写刷新无“死区”(存取周期为0.5

s+0.5

s

)以128

×128矩阵为例W/RREF0W/RtRtMtCREF126REF127REFW/RW/RW/RW/R刷新间隔128个存取周期…②分散刷新(存取周期为1

s)对于128×128的存储芯片(存取周期为0.5

s

)将刷新安排在指令译码阶段,不会出现“死区”“死区”为0.5

s

若每隔15.6

s

刷新一行每行每隔2ms

刷新一次③异步刷新DRAMSRAM存储原理集成度芯片引脚功耗价格速度刷新电容触发器高低少多小大低高慢快有无主存缓存3、静态RAM和动态RAM比较四、只读存储器(ROM)掩模ROMPROMEPROMEERPOMFLASHP88-P91请大家自己阅读1、掩模ROM(MROM)行列选择线交叉处有MOS管为“1”,无MOS管为“0”。A0A1A2A3A401…31VccA5A6A7A8A9输出读放(反相)Y地址译码X地址译码VCC行线列线熔丝熔丝断为“0”为“1”熔丝未断2、PROM(一次性编程)N型沟道浮动栅MOS电路G栅极S源D漏紫外线全部擦洗D端加正电压形成浮动栅S与D不导通为“0”D端不加正电压不形成浮动栅S与D导通为“1”SGDN+N+P基片GDS浮动栅

SiO2+++++___

3、EPROM(多次编程)…控制逻辑Y译码X译码数据缓冲区Y控制128×128存储矩阵……PD/ProgrCSA10A7…A6A0……DO0…DO7112…A7A1A0VSSDO2DO0DO1…27162413…VCCA8A9VPPCSA10PD/ProgrDO3DO7…PD/ProgrPD/Progr功率下降/编程输入端

读出时为低电平2716逻辑框图及引脚

4.EEPROM(多次性编程)电可擦写局部擦写全部擦写5.FlashMemory(闪速型存储器)比EEPROM快EPROM价格便宜集成度高EEPROM电可擦洗重写具备RAM功能五、存储器与CPU的连接存储器扩展字扩展位扩展字、位扩展存储器与CPU的连接数据线、地址线、片选线、读写控制用1K×4位存储芯片组成1K×8位的存储器DD……D0479AA0•••21142114CSWE1、位扩展增加存储字长地址线数目数据线数目用1K×8位存储芯片组成2K×8位的存储器1K×8位1K×8位D7D0•••••••••••••••WEA1A0•••A9CS0A10

1CS12、字扩展增加存储字的数量地址线数目/数据线数目用1K×4位存储芯片组成4K×8位的存储器WEA8A9A0...D7D0…A11A10CS0CS1CS2CS3片选译码……………………1K×41K×41K×41K×41K×41K×41K×41K×43、字/位扩展地址线数目/数据线数目4、存储器与CPU的连接芯片选型地址线数据线读写命令线片选其他实际问题:时序、负载。。。例4.1设CPU有16根地址线,8根数据线,并用MREQ作为访存控制信号(低电平有效),用WR作为读/写控制信号(高电平读,低电平写)。现有下列存储芯片:1K×4位RAM;4K×8位RAM;8K×8位RAM;2K×8位ROM;4K×8位ROM;8K×8位ROM及74LS138译码器和各种门电路,如下图。画出CUP与存储器的连接图,要求:(1)主存地址空间分配:

6000H~67FFH为系统程序区

6800H~6BFFH为用户程序区(2)合理选用上述存储芯片,说明各选几片?(3)详细画出存储芯片的片选逻辑图G1CBAG2BG2AY7Y6Y074LS38译码器&1&门电路G1,G2A,G2B为控制端口C,B,A为变量输入端Y0…Y7为变量输入端例1

解:

(1)写出对应的二进制地址码(2)确定芯片的数量及类型0110000000000000A15A14A13A11A10…A7…

A4A3…

A0…01100111111111110110100000000000…01101011111111112K×8位1K×8位RAM2片1K×4位ROM1片2K×8位(3)分配地址线A10~A0接2K

×

8位ROM的地址线A9~A0接1K

×

4位RAM的地址线(4)确定片选信号CBA0110000000000000A15A13A11A10…A7…A4A3…

A0…01100111111111110110100000000000…01101011111111112K

×

8位1片ROM1K

×

4位2片RAM

2K

×8位ROM

1K

×4位

RAM1K

×4位

RAM………&PD/ProgrY5Y4G1CBAG2BG2A……MREQA14A15A13A12A11A10A9A0…D7D4D3D0WR…………例1CPU与存储器的连接图………

2K

×8位ROM

1K

×4位

RAM1K

×4位

RAM………&PD/ProgrY5Y4G1CBAG2BG2A……MREQA14A15A13A12A11A10A9A0…D7D4D3D0WR…………例1CPU与存储器的连接图………要点总结:注意芯片布局注意高低有效电平注意辨别地址线的条数注意译码器的输入和输出注意rom和ram的数据线箭头方向会写各个芯片的地址范围例4.2-1

假设CPU有16根地址线,8根数据线,并用MREQ作为访存控制信号(低电平有效),用WR作为读/写控制信号(高电平读,低电平写)。现有下列存储芯片:1K×4位RAM;4K×8位RAM;8K×8位RAM;2K×8位ROM;4K×8位ROM;8K×8位ROM及74LS138译码器和各种门电路,画出CPU与存储器的连接图,要求:要求最小8K为系统程序区,相邻16K为用户程序区。最大4K地址为系统程序工作区。详细画出存储芯片的种类以及片数(1)写出对应的二进制地址码例4.2-2

假设同前,现有下列存储芯片:1K×4位RAM;4K×8位RAM;8K×16位RAM;2K×8位ROM;4K×8位ROM;8K×8位ROM要求最小4K为系统程序区,相邻8K为用户程序区。

(2)确定芯片的数量及类型(3)分配地址线(4)确定片选信号1片

4K

×

8位ROM2片

4K

×

8位RAMA11~A0接ROM和RAM的地址线例4.3

设CPU有20根地址线,8根数据线。并用

IO/M作访存控制信号。RD为读命令,

WR为写命令。现有2764EPROM(8K×8位),

外特性如下:用138译码器及其他门电路(门电路自定)画出CPU和2764的连接图。要求地址为F0000H~FFFFFH,

并写出每片2764的地址范围。…D7D0CEOECE片选信号OE允许输出PGM可编程端PGM…A0A12六、提高访存速度的措施调整主存结构单体多字多体并行采用高速存储器部件采用高速缓冲存储器构成cache-主存层次W位W位W位W位W位

地址寄存器

主存控制器......单字长寄存器数据寄存器存储体增加存储器的字长1、单体多字系统W位W位W位W位W位

地址寄存器

主存控制器......单字长寄存器数据寄存器存储体增加存储器的字长1、单体多字系统有问题吗?单体多字的缺点取值冲突:转移指令读操作数冲突:需要的操作数不一定在一个存储字中写数据冲突:凑齐了n个字才能写,或者读-改-写2、多体并行系统高位交叉编址低位交叉编址M0地址01……n-1M1nn+1……2n-1M22n2n+13n-1M33n3n+14n-1…………地址译码体内地址体号体号(1)高位交叉顺序编址M0地址01……n-1M1nn+1……2n-1M22n2n+13n-1M33n3n+14n-1…………地址译码体内地址体号体号(1)高位交叉顺序编址特点:不同请求源可同时对各体发出请求,各体同时工作;便于存储器扩充M0地址04……4n-4M115……4n-3M2264n-2M3374n-1…………地址译码

体号体内地址

体号(2)低位交叉轮流编址在不改变存取周期的前提下,增加存储器的带宽时间单体访存周期单体访存周期启动存储体0启动存储体1启动存储体2启动存储体3低位交叉的特点设四体低位交叉存储器,存取周期为T,总线传输周期为τ,为实现流水线方式存取,应满足T=4τ。连续读取4个字所需的时间为

T+(4

-1)τA00A01A02A03A10A11A12A13A20A21A22A23charA[3][4]A00A01A02A03A10A11A12A13A20A21A22A23A00A01A02A03A13A10A11A12A22A23A20A21除此之外。。。。易发生代码丢失的请求源,优先级最高严重影响CPU工作的请求源,给予次高优先级控制线路排队器节拍发生器QQCM来自各个请求源

…主脉冲存控标记触发器(3)存储器控制部件(存控)写高于读,读数据高于读指令3、高性能存储芯片EDRAM–ExtendedDRAMCDRAM–CacheDRAMEDODRAM–ExtendedDataOutDRAMSDRAM–SynchronyDRAM(168脚)RDRAM–RambusDRAMDDRSDRAM(双倍速率同步动态随机存储器,184脚)DDR2SDRAM(240脚,4Bit

Prefetch技术)DDR3SDRAM(8Bit

Prefetch技术)IRAM–IntegratedRAMASICRAM/diy/salon/cncd/study_cpu/0509/704650.html高速缓冲存储器一、概述

1、问题的提出解决CPU和存储器速度差异的矛盾 理论基础:局部性原理时间局部性原理空间局部性原理2、cache工作原理主存和缓存的编址命中与未命中cache的命中率cache主存系统的效率主存和缓存按块存储块的大小相同B

为块长~~~~……主存块号主存储器012m-1字块0字块1字块M-1主存块号块内地址m位b位n位M块B个字缓存块号块内地址c位b位C块B个字~~~~……字块0字块1字块C-1012c-1标记Cache缓存块号(1)主存和缓存的编址缓存共有C

块主存共有M

块M>>C主存块已调入缓存主存块与缓存块建立了对应关系用标记来记录与某缓存块建立了对应关系的主存块号命中未命中主存块与缓存块未建立对应关系主存块未调入缓存(2)命中与未命中CPU欲访问的信息在Cache中的比率命中率与Cache的容量与块长有关一般每块可取4~8个字块长取一个存取周期内从主存调出的信息长度

CRAY_116体交叉块长取16个存储字

IBM370/1684体交叉

块长取4个存储字(64位×4

=

256位)(3)cache的命中率效率e

与命中率有关则

e=×100%

tc

h

×

tc+(1-h)×tm

访问Cache的时间

平均访问时间

e=×100%(4)cache-主存系统的效率平均访存时间h

×

tc+(1-h)×tm3、cache的工作流程

访问Cache取出信息送CPU

访问主存取出信息送CPU将新的主存块调入Cache中执行替换算法腾出空位

结束命中?Cache满?CPU发出访问地址

开始是否是否4、cache的访问写直达法(Write–

through)写回法(Write–

back)写操作时数据既写入Cache又写入主存

写操作时只把数据写入Cache而不写入主存当Cache数据被替换出去时才写回主存

写操作时间就是访问主存的时间,读操作时不涉及对主存的写操作,更新策略比较容易实现写操作时间就是访问Cache的时间,读操作Cache失效发生数据替换时,被替换的块需写回主存,增加了Cache的复杂性cache的一致性问题写直达法(Write–

through)写回法(Write–

back)写操作时数据既写入Cache又写入主存

写操作时只把数据写入Cache而不写入主存当Cache数据被替换出去时才写回主存

写操作时间就是访问主存的时间,读操作时不涉及对主存的写操作,更新策略比较容易实现写操作时间就是访问Cache的时间,读操作Cache失效发生数据替换时,被替换的块需写回主存,增加了Cache的复杂性cache的一致性问题多处理机系统中这个问题更加严重(1)增加Cache的级数片载(片内)Cache片外Cache(2)统一缓存和分立缓存指令Cache数据Cache与主存结构有关与指令执行的控制方式有关是否预取、流水Pentium8K指令Cache8K数据CachePowerPC62032K指令Cache

32K数据Cache5、cache的改进二、cache的地址映像直接映像全相联映像组相联映像

字块2m-1

字块2c+1

字块2c+1-1

字块2c

+1

字块2c

字块2c-1

字块1字块0………主存储体字块1

标记字块0

标记字块2c-1标记Cache存储体t位012c-1…字块字块地址主存区块标记t

位c

位b

位主存地址比较器(t位)=≠不命中有效位=1?*m位Cache内地址否是命中每个缓存块

i

可以和若干个主存块对应每个主存块

j

只能和一个缓存块对应i=j

mod

C

字块2c+1

字块2c字块0字块01、直接映像

字块2m-1

字块2c+1

字块2c+1-1

字块2c

+1

字块2c

字块2c-1

字块1字块0………主存储体字块1

标记字块0

标记字块2c-1标记Cache存储体t位012c-1…字块字块地址主存字块标记t

位c

位b

位主存地址比较器(t位)=≠不命中有效位=1?*m位Cache内地址否是命中每个缓存块

i

可以和若干个主存块对应每个主存块

j

只能和一个缓存块对应i=j

mod

C

字块2c+1

字块2c字块0字块

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论