type
status
date
slug
summary
tags
category
icon
password
能力模型
能力分类
省赛
全球总决赛
学习进度
中国总决赛
8.1 三种典型的半导体存储芯片
8.1.1 存储器的分类
1、按存储介质分类——半导体、磁、光
- 半导体存储器:TTL(双极性存储器),MOS(单极性存储器),SSD——需通电,断电后信息即消失的存储器。(速度快、集成化、飞破坏性读出)
- 磁表面存储器:磁头、载磁体——非易失,断电后仍能保存信息的存储器。
- 磁芯存储器:硬磁材料、环状原件——非易失
- 光盘存储器:激光、磁光材料——非易失
2、按存储方式划分
- 随机存储器:任何存储单元的内容都能被随机存取,且存取时间和存储单元的物理位置无关。
- 顺序存储器:只能按某种顺序来存取,存取时间和存储单元的物理位置有关。
3、按读写功能划分
- 只读存储器(ROM):存储的内容是固定不变的,只能读出而不能写入的半导体存储器。
- 随机读写存储器(RAM):既能读出又能写入的存储器。
4、按用途划分
- 主存储器:主存储器内存存放计算机运行期间的大量程序和数据存取速度较快,存储容量不大。
- 辅助存储器(外存):外存存放系统程序和大型数据文件及数据库存储容量大,单位成本低。
- 高速缓冲存储器:高速缓冲存储器Cache 高速存取指令和数据存取速度快,但存储容量小。
8.1.2 半导体存储器的分类
- 内存RAM
- SRAM:静态随机存取存储器(Static RAM),具有静态存取功能。不需要刷新电路就能保存它内部存储的数据,特点是高性能、低集成度(占地面积大)、功耗大、速度可以非常快,但价格高、容量小。利用触发器的两个稳定状态标识“0”和“1”,至少需要6个晶体管才能标识一个二进制位。
- PSRAM:伪静态存储器,内部自带刷新机制。
- SSRAM:同步静态随机存取存储器(Synchronous SRAM),有时钟线,读写以时钟信号为基准。
- DRAM:动态随机存取存储器(Dynamic RAM),每隔一段时间固定对 DRAM 刷新充电一次,否则内部数据会消失。现在电脑用的 DDR 内存条都属于 DRAM。
- DARAM:双口 RAM,一个时钟周期可访问两次。
- SDRAM:同步动态随机存取存储器(Synchronous DRAM),数据的收发以时钟信号为基准。
- SDR SDRAM:单倍速率(Single-Data-Rate)SDRAM,采用单端(Single-Ended)时钟信号,在时钟上升沿采样。
- DDR SDRAM:双倍速率(Double-Data-Rate)SDRAM,在时钟上升下降沿采样,工作频率比 SDR 翻倍,采用差分的时钟信号以加强抗干扰。工作电压 2.5V/2.6V。
- DDR2 SDRAM:内存时钟 200~533MHz,工作电压 1.8V。
- DDR3 SDRAM:8bit 预取机制,内存时钟 400~1066MHz,工作电压 1.5V/1.35。
- DDR4 SDRAM:16bit 预取机制,工作电压 1.2V。
- DDR5 SDRAM:工作电压 1.1V。
- GDDR SDRAM:图形 DDR,目前有 GDDR2~6。
- LPDDR SDRAM:低功率 DDR,时钟 166MHz,LPDDR2 其工作电压 1.2V,时钟 100~533MHz。
内存 RAM(random access memory)是随机存取存储器,存储单元的内容可以按照需要随机取出或者存入(不需要线性依次存储),存取数据比较快,掉电会丢失数据,容量相对小。一般 CPU(MCU)运行时会把程序从 ROM 拷贝到 RAM 里面执行,所以一般 RAM 是作为和 CPU(MCU) 直接交换数据的内部存储器,也叫主存或者内存。
内存有以下的类别:
- 外存ROM
- PROM:可编程 ROM,内部是行列式熔断丝,可以自己写入一次,写错了,只能再换一片。
- EPROM:紫外线可擦除,写入时需要用编程器产生高压脉冲信号。
- OTP-ROM:一次可编程 ROM,写入原理与 EPROM 相同。
- EEPROM:电可擦除可编程只读存储器(Electrically Erasable Programmable),在 EPROM 的基础上进一步发展形成,可电擦除,可以按照字节操作,但是集成度不高、价格比较贵。
外存 ROM(Read Only Memory)也称为辅助存储器,不能与 CPU 之间直接进行信息交换。它的储存速度相对慢得多、但容量相对大,在简单的系统上常与内存配合使用,作为储存程序与其他文件的空间。
ROM 最开始是一次性的,只能写入一次,后续只能读取操作,数据掉电不会消失,如 CD-ROM、DVD-ROM,后面出现的 PROM、EPROM、EEPROM 可有条件地写入。
外存有以下的类别(按时间推进):
- 闪存Flash
- NOR Flash:数据线和地址线分开,可以实现像 RAM 的随机寻址 / 读取功能,也就是说程序可以在 NOR Flash 上直接运行,不需要拷贝到 RAM 中。但容量小,分为 Parallel/Serial NOR Flash。
- Nand Flash:数据线和地址线复用,不能利用地址线随机寻址,不能直接运行程序,容量大,有 SLC、MLC、TLC、QLC
- MMC:MMC 接口、NAND Flash、主控制器
- eMMC Flash:嵌入式存储解决方案,带有 MMC 接口(并行数据总线)、NAND Flash、主控制器
- UFS:串行数据总线、Nand Flash、主控制器
闪存 Flash 是一种长寿命的非易失性(掉电保存)的存储器,算是广义的 EEPROM,因为它也是可电擦除的 ROM,它与 EEPROM 最大的区别就是,只能按照扇区(block)操作读写,但其成本比 EEPROM 低。FALSH 分为 NOR FLASH 和 NAND FLASH。
闪存有以下的类别(按时间推进):
8.1.3 半导体存储器的结构框图
1、半导体存储器的基本结构
2、存储器中的数据组织
- “小数端”存放:小数端存放即低地址对应存放低位字节数据。例如,IntelX86处理器的32位存储字12345678H存放在内存中的情况如图所示,占有24300H~24303H四个地址的字节单元,其中最低字节78H存放在24300H中。
- “大数端”存放:在Motorola的680X0系统中,32位存储字12345678H存放在内存中的情况如图所示,最高8位信息12H存放在最低地址24300H,称为“大数端(big endian)存放。32位存储字的地址24300H指向最高8位的存储单元。
8.1.4 主要技术指标
- 存储容量:指存储器可以容纳的二进制信息量,以存储器中存储地址寄存器MAR的编址数与存储字位数的乘积表示。
- 存储速度:可以用两个时间参数表示,一个是“存取时间”TA,定义为从启动一次存储器操作到完成该操作所经历的时间;另一个是“存储周期”TMC,定义为启动两次独立的存储操作之间所需的最小时间间隔。
- 可靠性:用MTBF,即平均故障间隔时间来衡量,MTBF越长,可靠性越高。
- 性能/价格比
8.2 内存储器接口的基本技术
8.2.1 8位微机系统中的存储器接口
如图是一个8位微机系统中的存储器子系统。该子系统中有4片2732EPROM组成16KB的ROM区,4片6116SRAM组成8KB的RAM区。该存储器子系统共占有24KB的内存空间,采用8088CPU。
从图可见,在内存芯片选定后,内存芯片同CPU的连接是构筑存储器子系统的主要工作,有三部分内容:
(1)地址线的连接。可以根据所选用的半导体存储器芯片地址线的多少,把CPU的地址线分为芯片外(指存储器芯片)地址和芯片内的地址,片外地址经地址译码器译码后输出,作为存储器芯片的片选信号,用来选中CPU所要访问的存储器芯片;片内地址线直接接到所要访问的存储器芯片的地址引脚,用来直接选中该芯片中的一个存储单元。图中,对2732而言,片外地址线为A19~A12,片内地址线为A11~A0;对6116而言,片外地址线为A19~A11,片内地址线为A10~A0。
(2)数据线的连接。图5—16中,2732为4K X 8位芯片,6116为2K X 8位芯片,两者都有8条数据线,可直接同8088CPU的8位数据线相连。如果采用Intel2164芯片,因该芯片为64KXl位芯片,内部只有一位数据线,必须由8片2164芯片才能构成64K字节的内存,因此8片2164的数据线必须分别同8088CPU的8条数据线相连。
(3)控制线的连接。即如何用CPU的存储器读写信号同存储器芯片的控制信号线连接,以实现对存储器的读写操作,
(一)集成译码器及其应用
CPU要对存储单元进行读写,首先要选择存储器芯片,即进行“片选”,然后在被选中的芯片中选择所要读写的存储单元,即进行“字选”——选择存储字。片选是通过地址译码方法来实现的。
1.74LSl38译码器
在微机系统中,常采用中规模集成电路芯片74LSl38作为地址译码器,其引脚及逻辑电路如图所示。
74LSl38是3—8线译码器/分配器,有三个“选择输入端”C、B、A,三个“使能输人端”(又称为“允许端”或“控制端”)G1、 ,以及8个输出端Y0—Y7。其功能表见下图所示所示。
2.74LSl38的应用
以1中的存储器子系统为例,地址译码器74LSl38的“使能输入端” 经与非门同系统的地址总线A15、A16、A17和A18相连, G2B同I0/M相连,G1与A19,相连,而三个选择输入端C、B、A分别与A14、A13、A12相连。这样,74LSl38译码器能工作的必要条件是:
①存储器操作——包括存储器读或写;
②A19A18A17A16A15为‘11111’。而A14A13A12的8种不同的地址组合(从‘000’到‘111’),分别对应于与输出端相连的8个半导体存储器芯片的地址范围。
据此分析,4片2732芯片的编号为EPROMl、EPROM2、EPROM3和EPROM4,4片6116芯片的编号为SRAMl、SRAM2、SRAM3和SRAM4,其地址范围的计算如下表:
可得8片存储器芯片的地址范围为
EPROMl:F8000H—F8FFFH
EPROM2:F9000H~F9FFFH
EPROM3:FA000H—FAFFFH
EPROM4:FB000H—FBFFFH
SRAMl:FC000H~FC7FFH
SRAM2:FC800H~FCFFFH
SRAM3:FD000H~FD7FFH
SRAM4:FD800H—FDFFFH
在上述计算中,注意片内地址与片外地址的划分。对2732EPROM而言,其存储容量为4KX8位,有12条地址线,因此CPU的20条地址线中低12位A1l—A0作为存储器芯片的片内地址,直接与2732芯片的12条地址线相连,而高8位A19~A12为片外地址,同译码器的选择输入端C、B、A以及使能输入端相连。对6116SRAM而言,其存储容量为2KX8位,有11条地址线,则片内地址为11位,同CPU的A10~A0相连,而A19~A1l为片内地址,参与译码器译码。在图5—16中, 和 两个译码输出端同地址线All或 (A11取反)经或门后作为6116的片选信号。
(二)实现片选控制的三种方法
在存储器系统中.实现片选控制的方法有三种,即全译码、部分译码和线选。
1.全译码法
图5—16所示的存储器译码电路中,CPU的全部地址总线A19~A0都参与地址译码,因此对应于存储器芯片中的任意单元都有唯一的确定的地址,这种片选控制方法称为“全译码”。
2.部分译码法
如果在图5—16的存储器译码电路中,A19,不参加译码,即74LSl38的G1端接+5V,则Al9,不论是“0”还是“1”,只要A18~A1:满足1111000都能选中EPROMl,则E-PROMl的地址范围为78000H~78FFFH和F8000H—F8FFFH,那么一个存储单元可以由两个地址码来选中.这种片选控制方式称为“部分译码”。
3.线选法
如果在一个微机应用系统中,所要求的存储器容量较小.而且以后也不要求扩充系统的存储容量,例如,只要求4KB的EPROM区和4KB的SRAM区,则可不采用译码器芯片74LSl38。而采用如图所示的线选控制电路。
(三)控制信号的连接
在存储器系统中,SRAM通常有三条控制信号线——片选信号CE、写允许信号 WE和输出允许信号OE(都带非)。
EPROM芯片常采用双线控制,片选信号CE用来选择芯片、输出允许信号CE用来允许数据输出。只有这两条控制线同时有效时,才能从输出端得到要读出的数据。当CE为高电平时,EPROM处于待用状态(静止等待状态),输出呈现高阻抗,芯片处于低功耗状态且不受OE的影响。
建议OE同地址译码器输出相连,以控制对各器件的选择,而OE同系统控制总线中的读信号RD相连,这样可以保证所有未被选中的器件处于低功耗状态。
最后还要特别指出的是,在存储器芯片同CPU连接时要注意:
①CPU总线的负载能力问题。通常CPU的总线负载能力为一个TTL器件或20个MOS器件,当总线上挂接的器件超过上述负载时,应考虑总线的驱动问题。在总线上加接缓冲器和驱动器,以增加CPU的负载能力。常用的驱动器和缓冲器有单向的74LS244,74LS367以及Intel的8282等,用于单向传输的地址总线和控制总线的驱动;对双向传输的数据总线通常采用数据收发器74LS245或Intel的8286、8287等。
②CPU的时序同存储器芯片的存取速度的配合问题。存储器芯片同CPU连接时,要保证CPU对存储器的正确、可靠的存取,必须考虑存储器的工作速度是否能同CPU速度的匹配问题。如果存储器的速度跟不上CPU的速度,就必须在正常的CPU总线周期中插入等待周期Tw。
8.2.2 动态存储器的连接
(一)16位微机系统中的奇偶分体
在16位微机系统中,CPU除了可以对字节寻址外,还必须能进行整字(16位)的读写,因此要求存储器系统组织的设计能保证一次能访问一个整字,但也能允许一次只访问一个字节。
以8086系统为例,8086CPU有20条地址线,可直接寻址1M字节的内存储器地址空间,由于8086CPU的数据总线是16位的,而这1M字节的存储器地址空间是按字节顺序排列的,为了能满足一次访问一个整字又能访问一个字节的要求,8086系统中1M字节的存储器地址空间实际上分成两个512K字节的存储体——“偶存储体”和“奇存储体”,偶存储体同8086的低8位数据总线D7~D0相连接,奇存储体同8086的高8位数据总线D15~D8相连接,地址总线的A19~A1同两个存储体中的地址线A18~A0相连接,最低位地址线A0和8086的”总线高允许”信号 用来选择存储体。
(二)8088/8086的存储器访问操作
1.字节访问和字访问
8088是准16位微处理器,其外部数据总线为8位,内部寄存器和运算器为16位,一个总线周期只能访问一个字节,要进行字操作,必须用两个总线周期,第一个总线周期访问低位字节、第二个总线周期访问高位字节。
8086是16位微处理器,其外部数据总线为16位,每个存储周期可以访问存储器中的8位或16位信息。当8086访问一个整字(16位)变量时,如该变量的地址为偶地址(即字变量的低字节在偶地址单元,高字节在奇地址单元),则8086将用一个总线周期访问该字变量;如果该字变量的地址为奇地址(即字变量的低字节在奇地址单元,高字节在偶地址单元),则8086要用两个连续的总线周期才能访问该字变量,每个周期访问一个字节。
图5-20 字节变量与宇变量的传送
2.“对准的”字与“未对准的”宇
8086CPU能同时访问奇存储体和偶存储体中的一个字节,以组成一个存储字,要访问的16位字的低8位字节存放在偶存储体中,称为“对准的”字(aligned,又称为“对界的”),这是一种规则的存放字。
对于“对准的”字,8086CPU只要一个总线周期就能完成对该字的访问;当要访问的16位字的低8位字节存放在奇存储体中,称该字为“未对准的”字(unaligned,又称为“未对界的”),这是一种非规则的存放字。必须用两个总线周期才能访问该宇。
下面分析一个“未对准的”字的写入过程。
在第一个总线周期中,如同对奇存储体写入字节一样,送出奇地址(A0=1),并发出 信号,然后由8086CPU把该字的低8位传送到数据总线的高8位(注意,发生了字节交换),写入存储器的奇存储体(低8位字节);然后,8086CPU又发出一个由该奇地址加1的偶地址,此时A0=0, ,8086CPU把该字的高8位传送到数据总线的低8位(注意,又发生了字节交换),写入存储器的偶地址区(偶存储体)。这样,经过两次存储器访问周期,把一个“未对准的”字写入存储器的两个存储体中。注意,上述操作对程序员而言是完全透明的。
📎 参考文章——第8章
有关问题,欢迎您在底部评论区留言,一起交流~
- Author:Koreyoshi
- URL:https://Koreyoshi1216.com/article/149c7b13-c6a7-8019-9f4b-c1d0021fb3fd
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts