1、1.4.1 微型机存储器结构微型机存储器结构 1.4 存储器存储器存储器是计算机中的记忆设备,用来存放程序和数据。随着计算机的发展,存储器的地位越来越重要。存储器有三个主要指标:速度、容量和价格/位(简称位价)。1 微型机存储器结构微型机存储器结构(1)CPU内可以有十几个、几十个寄存器,它们的速度最快、位价最高、容量最小。(2)在主存与CPU间,插入了比主存速度更快,容量更小的缓存,显然其价位要高于主存。主存与缓存之间的数据调动是由硬件自动完成的。(3)主存储器(内存)用来存放将要参与运行的程序和数据,并能由CPU直接随机存取,其速度与CPU速度差距较大。(4)辅助存储器容量比主存大得多,大
2、都用来存放暂时未用到的程序和数据文件。CPU不能直接访问辅存,辅存只能与主存交换信息。2 存储器的组织 存储器容量单位 位(bit)是二进制数的最基本单位,也是存储器存储信息的最小单位。字节(Byte)是计算机中数据处理的基本单位,一个字节由8位构成,即1B=8bit。字(Word)可以表示两个字节,即16位。存储器的组成存储器的组成 存储器芯片由存储体、地址译码驱动电路、I/O和读写电路构成 存储体。存储体是存储器的核心,程序和数据都存放在存储体中。地址译码。地址译码驱动电路实际上包含译码器和驱动器两部分。译码器将地址总线输入的地址码转换成与之对应的译码输出线上的有效电平,以表示选中了某一存
3、储单元,然后由驱动器提供驱动电流去驱动相应的读写电路,完成对被选中存储单元的读写操作。I/O和读写电路。I/O和读写电路包括读出放大器、写入电路和读写控制电路,用以完成被选中存储单元中各位的读出和写入操作。随机读取存储器(随机读取存储器(Random Access Memory-RAM)随机存取存储器中的内容即可以读出,也可以写入。读出时并不损坏原来存储的内容,只有写入时才修改原来所存储的内容。断电后,存储内容立即消失,即具有易失性。只读存储器(只读存储器(Read Only Memory-ROM)ROM是只读存储器。顾名思义,它的特点是只能读出原有的内容,不能由用户再写入新内容。ROM中存储
4、的内容不会因断电而丢失,即具有非易失性。常用的存储芯片分为两种:常用的存储芯片分为两种:RAMROM动态RAM(Dynamic RAM)集成度高、芯片引脚数少,封装尺寸小、功耗低、需要实时刷 静态RAM(Static RAM)存取速度快 PROMEPROMEEPROMFlash Memory只允许数据写入一次 需要用紫外线照射擦除 不能对个别需要改写的单元进行单独擦除 用电气方法将存储内容擦除,既可局部擦写,又可全部擦写 具有擦除、重写速度快的特点,而且至少可以擦写/编程上万次 8K8位的静态RAM 6264 012AA18I/OI/OCS1CS2WEOE为地址输入为数据输入/输出分别为片选信
5、号为写允许信号为读允许信号 8K=21332K的的EPROM 27256 Vcc接+5V Vpp平时接+5V,当其接+25V时用来完成编程的需要 Vss为地 CS为片选端 OE为输出允许端 32K=215512k FLASH 29C0403条控制线5V编程电压19条地址线(A0A18)8条数据线(D0D7)(OE,CE,WE)总结存储器件的引脚分类地址引脚 一个存储器件的地址线条数由存储器的容量决定。=2地址线条数容量数据引脚 用来选择存储器件中的一个存储单元 通过数据线能够输入数据(存储),也能够提取数据(读出)被标为从A0(最低有效地址输入)到An 被标为D0Dm 控制引脚控制引脚 ROM
6、通常只有一个控制输入OEG输出允许()或是输出选通()RAM通常有一个或两个控制输入一个控制输入,则常称为R/W 两个控制输入 通常标为 选择引脚选择引脚 每个存储器件都有一个输入(有时不止一个)用来选择或允许存储器件 CSCE常称为片选(),片允许()选择线通常由地址译码电路的译码线给出的信号控制。如果一个容量为32 KB的存储器件选择线被译码,其首地址为10000H,则它的最后一个单元地址为17FFFH。3 存储器与CPU的连接 读操作是指从CPU送来的地址所指定的存储单元中取出信息,再送给CPU,其操作过程是:写操作是指将要写入的信息存入CPU所指定的存储单元中,其操作过程是:4 地址译
7、码地址译码 解决CPU的地址引脚数与存储器的地址引脚数不匹配问题 简单的门电路译码器简单的门电路译码器 1111 1XXX XXXX XXXX XXXX 无关项A14A0被写为逻辑0,确定最低地址1111 1000 0000 0000 0000=F8000H无关项A14A0被写为逻辑1,确定最高地址。1111 1111 1111 1111 1111=FFFFFH专用译码集成电路译码专用译码集成电路译码 A19 A18 A17 A16 A15 A0 1 1 1 1 X X无关项A15A0被写为逻辑0,确定最低地址。1111 0000 0000 0000 0000=F0000H无关项A15A0被写
8、为逻辑1,确定最高地址。1111 1111 1111 1111 1111=FFFFFH如果需要与译码器的输出如果需要与译码器的输出Y0相连相连 如果需要与译码器的输出如果需要与译码器的输出Y6相连相连 可编程逻辑器件译码 A19 A18 A17 A16 A15 A0 0 0 0 X X X无关项A16A0被写为逻辑0,确定最低地址。0000 0000 0000 0000 0000=00000H无关项A16A0被写为逻辑1,确定最高地址。0001 1111 1111 1111 1111=1FFFFH当当A19、A18、A17都是都是逻辑逻辑0时,时,ROM为逻辑为逻辑0 A19 A18 A17
9、A16 A15 A0 0 1 1 X X X无关项A16A0被写为逻辑0,确定最低地址。0110 0000 0000 0000 0000=60000H无关项A16A0被写为逻辑1,确定最高地址。0111 1111 1111 1111 1111=7FFFFH当当A19=0、A18=1、A17=1时,时,RAM为逻辑为逻辑0 译码方式 线选法 线选法就是用除片内寻址外的高位地址线直接(或经反相器)分别接至各个存储芯片的片选端,当某地址线信息为“0”时,就选中与之对应的存储芯片。注意,这些片选地址线每次寻址时只能有一位有效,不允许同时有多位有效,这样才能保证每次只选中一个芯片(或组)。线选法的优点是
10、不需要地址译码器,线路简单,选择芯片无须外加逻辑电路,但仅适用于连接存储芯片较少的场合。同时,线选法不能充分利用系统的存储器空间,且把地址空间分成了相互隔离的区域,给编程带来了一定的困难。假设4片2K8用线选法构成8K8存储器 译码方式 部分译码 部分译码只用除片内寻址外的高位地址的一部分来译码产生片选信号。如用4片2K8的存储芯片组成8K8存储器,需要4个片选信号,因此只要用两根地址线来译码产生。地址重叠 选用A12和A11译码 A12=0,A11=0,而无论A19A13取何值,均选中第一片 A12=0,A11=1,而无论A19A13取何值,均选中第二片 A12=1,A11=1,而无论A19
11、A13取何值,均选中第四片 A12=1,A11=0,而无论A19A13取何值,均选中第三片 8K RAM中的任一个存储单元,都对应有2(2013)=27个地址这种一个存储单元出现多个地址的现象称为地址重叠。地址重叠区示意 基本地址为00000H01FFFH 令未用到的高位地址全为0,这样确定的存储器地址称为基本地址译码方式 全译码 全译码法将除片内寻址外的全部高位地址线都作为地址译码器的输入,译码器的输出作为各芯片的片选信号,将它们分别接到存储芯片的片选端,以实现对存储芯片的选择。全译码法的优点是每片(或组)芯片的地址范围是唯一确定的,而且是连续的,也便于扩展,不会产生地址重叠的存储区,但全译
12、码法对译码电路要求较高。1.4.5 容量扩展与数据存储容量扩展与数据存储 总容量总片数容量/片例如,存储器容量为128K16,若选用8K8的存储芯片,则需要:128K16162=328K8片片1.4.5 容量扩展与数据存储 位扩展位扩展 将多片组合起来常采用位扩展法、字扩展法、字和位同时扩展法。字扩展字扩展 将存储器芯片外的地址线都作为地址译码器的输入,即全译码字位同时扩展字位同时扩展 图1-4-19 字和位同时扩展连接举例采用字节编址的存储器。数据在主存中有3种不同存放方法。边界对齐边界对齐 某CPU字长为64位(8个字节)即一个存取周期最多能够从主存读或写64位数据。假设,读写的数据有4种
13、不同长度,它们分别是 字节(8位)半字(16位)单字(32位)双字(64位)。字节存储地址特征字存储地址特征 双字的存储地址特征边界对齐边界对齐 存在两个问题 不浪费存储器资源的存放方法 访问一个双字、一个单字或一个半字时都有可能需要花费两个存取周期 存储器的读写控制比较复杂 字节存储地址特征 字存储地址特征 要存放的是字节、半字、单字或双字,都必须从最末3个二进制位必须为000的地址起始位置开始存放 克服上面的两个缺点 浪费了存储器资源 双字的存储地址特征 折衷方案 双字(64位)数据的起始地址的最末3个二进制位必须为000(8的整倍数)单字(32位)数据的起始地址的最末两位必须为00(4的
14、整倍数)半字(16位)数据的起始地址的最末一位必须为0(偶数)无论访问双字、单字、半字或字节,都能在一个存取周期内完成 又称为边界对齐的数据存放方法 空间和时间博弈的结果 端模式 一个基本存储单元可以保存一个字节,每个存储单元对应一个地址。对于大于十进制255(16 进制0 xff)的整数,需要多个存储单元。顺序特征指的是多字节(如字、双字等)数据的存放形式。对于跨越多个字节的数据,一般它所占的字节都是连续的。在计算机业界,用端模式(Endian)表示数据在存储器中的存放顺序。将数据的最低有效字节(least significant byte-LSB)存储在最低地址存储单元中的形式称为小端模式(Little Endian)。将最高有效字节(Most Significant Byte-MSB)存储在最低地址存储单元中的形式称为大端模式(Big Endian)。51系列单片机编程语言Keil C51采用大端模式存储数据Intel的x86系列CPU则采用小端模式存储数据