计组与微机控制
4.3 SRAM6264 和 DRAM 2164A
4.3 SRAM6264 ? DRAM 2164A
SRAM6264
1. 芯片概览:8K x 8 的存储空间
· 容量:6264 能存储 8K × 8 bit = 64 Kbit,即 8192 个字节。
· 结构:内部存储阵列通常组织为 256 行 × 256 列 × 8 位(或类似)。
· 寻址:需要 13 根地址线(A12 ~ A0),因为 2^{13} = 8192。
· 数据:8 根双向数据线 I/O7 ~ I/O0。
· 工艺:CMOS 静态 RAM,低功耗,无需刷新。
· 封装:常用 28 引脚 DIP 或 SOP 封装。
2. 引脚详解:地址、数据与多控制线
6264 与 6116 最大的不同是多了几个控制引脚,以适应更复杂的系统。

· 地址线 (A12 ~ A0, 13 根):输入,选择 8192 个单元之一。
· 数据线 (I/O7 ~ I/O0, 8 根):双向三态,读写数据。
· 核心控制线:
· 片选1 (CE1):低电平有效。必须为 0 才能选中芯片。
· 片选2 (CE2):高电平有效。必须为 1 才能选中芯片。
(注:两个片选同时有效才选中,这为地址译码提供了灵活性。)
· 输出使能 (OE):低电平有效。读数据时需为 0。
· 写使能 (WE):低电平有效。写数据时需为 0。
· 电源与地:Vcc(典型 5V),GND。
· 未使用引脚:部分封装可能有多余的 NC(No Connect)引脚。
3. 功能真值表
模式 CE1 CE2 OE WE I/O 状态
未选中 1 (H) X X X 高阻态
未选中 X 0 (L) X X 高阻态
输出 (读) 0 (L) 1 (H) 0 (L) 1 (H) 输出数据
输入 (写) 0 (L) 1 (H) X 0 (L) 输入数据
输出禁用 0 (L) 1 (H) 1 (H) 1 (H) 高阻态
注意:写操作时 OE 通常设为高电平(或任意,但为避免总线冲突,常将其置为1)。
4. 读写时序流程

与 6116 几乎一致,只是控制信号多了一个 CE2。
读操作:
1. 地址建立:CPU 将 13 位地址放到 A12~A0 上。
2. 选中芯片:CE1 = 0,CE2 = 1,同时满足。
3. 配置模式:WE = 1(禁止写),OE = 0(允许输出)。
4. 数据输出:芯片将选中单元的数据驱动到 I/O 线上。
5. 读取数据:CPU 锁存数据。
6. 结束:CE1 = 1 或 CE2 = 0,总线高阻。
写操作:
1. 地址建立:同上。
2. 选中芯片:CE1 = 0,CE2 = 1。
3. 数据准备:CPU 将要写的数据放到 I/O 线上。
4. 写入脉冲:WE = 0(保持一段时间),数据在 WE 上升沿被锁存。
5. 结束:WE = 1,CE1 = 1 或 CE2 = 0。
5. 系统集成与地址译码
6264 的 13 根地址线需要连接 CPU 的低位地址总线(如 8086 的 A0~A12)。
高位地址线(如 A13~A19)通过译码器产生满足 CE1=0 且 CE2=1 的信号。
示例:用两片 6264 组成 16KB 内存(8086 系统)。
· 将 CPU 的 A0~A12 并联到两片 6264 的地址脚。
· 用 A13 作为片选:
· A13 = 0 时,第一片 CE1 有效(还需配合 CE2 固定接高电平)。
· A13 = 1 时,第二片 CE1 有效。
· CE2 可直接接 Vcc(常高),或接系统控制信号防止冲突。
· 这样第一片地址范围:0x0000 ~ 0x1FFF,第二片:0x2000 ~ 0x3FFF(假设 A19~A14 全为 0)。
如果 CPU 是 8 位数据总线(如 8088),一片 6264 就满足;如果是 16 位(如 8086),则需要两片 6264 分别处理高 8 位和低 8 位数据,此时 BHE 和 A0 用于体选。
总结
· 6264 是一个 8K×8 的静态 RAM,需要 13 根地址线。
· 控制信号包含 两个片选(CE1 低有效,CE2 高有效)、输出使能 OE 和 写使能 WE。
· 读操作:芯片选中后,WE=1,OE=0,数据被读出。
· 写操作:芯片选中后,WE=0(OE 通常置 1),数据被写入。
· 在系统中,用 高位地址译码 产生 CE1 和 CE2,低位地址 直接连 A12~A0,从而实现内存地址空间的分配。
番外:像是做大题一样,我也是初次接触分享经历
8086 + 两片 6264(8KB×8)构成 16 位内存系统 的连接图画出来,并解释每根线的去向。
一、整体逻辑结构
· CPU:8086(最小模式)
· 存储器芯片:2 片 6264,每片 8KB×8 位,共 16KB。
· 数据总线分配:
· 高位片(奇地址体):连接 8086 的 D15 ~ D8(高 8 位数据线)。
· 低位片(偶地址体):连接 8086 的 D7 ~ D0(低 8 位数据线)。
· 地址范围:假设从 00000H 开始,两片并联,地址线 A0~A12 并联,A13 作为片选(区分两片),更高地址线(A14~A19)全部接地(假设只用最低 16KB 空间)。
实际系统中高位地址线通常通过译码器,这里为了简化,直接固定 A14~A19=0,地址范围 00000H~03FFFH(16KB)。
· 字节/字访问控制:
· 当 CPU 写一个字节到偶地址(A0=0) → 只选通低 8 位片。
· 写一个字节到奇地址(A0=1) → 只选通高 8 位片。
· 写一个字(16 位) → 两片同时选通。
为此,除了地址译码,还需要用 A0 和 BHE(高字节使能)信号来分别控制两片的片选或写使能。下面提供两种常见连接法:方法一(片选加字节使能) 更标准。
二、引脚连接图(ASCII )
+-------------------+
| 8086 CPU |
+-------------------+
| |
地址总线 A19..A0 ------+-- (A19..A0 输出) |
| |
数据总线 D15..D0 ----+-+-- (D15..D0 双向) |
| |
控制总线 | | |
RD ---------------+-------------------> (读信号)
WR ---------------+-------------------> (写信号)
BHE --------------+--------------------> (高字节使能)
A0 --------------+--------------------> (地址最低位)
|
|
+----------------+----------------+
| |
v v
(低位片:偶地址体) (高位片:奇地址体)
6264 (低8位) 6264 (高8位)
+-------------+ +-------------+
| A12..A0 |<---- A12..A0 (并联) | A12..A0 |
| I/O7..I/O0 |<--> D7..D0 | I/O7..I/O0 |<--> D15..D8
| CE1 (低有效)|<--- 片选信号 (由地址 | CE1 (低有效)|<--- 片选信号 (由地址
| CE2 (高有效)| + A13 产生) | CE2 (高有效)| + A13 产生)
| OE |<--- RD (读信号) | OE |<--- RD
| WE |<--- 写控制逻辑 | WE |<--- 写控制逻辑
+-------------+ (由 WR+A0+...产生) +-------------+
三、详细信号线连接列表
1. 地址线
· 8086 的低 13 位地址 A12~A0 直接连接到两片 6264 的 A12~A0 引脚(并联)。
2. 数据线
· 低位 6264 的 I/O0~I/O7 接 8086 的 D7 ~ D0。
· 高位 6264 的 I/O0~I/O7 接 8086 的 D15 ~ D8。
3. 片选信号(CE1 和 CE2)
· 每片 6264 有两个片选:CE1(低有效)、CE2(高有效)。
· 我们将 CE2 直接接 高电平(Vcc)(始终有效),只使用 CE1 作为片选。
· 用 A13 和 地址译码 产生 CE1 低有效的信号:
· 令 A13 = 0 时,选中低位片。
· 令 A13 = 1 时,选中高位片。
· 但为了支持字节/字写操作,实际片选还要与 WR、BHE、A0 组合,见下一节。
为了简化,这里用 3-8 译码器 74LS138 的 Y0 和 Y1 输出分别接两片的 CE1,输入为 A13、A14、A15(A14=A15=0)。这样:
· A13=0 → Y0 有效 → 低位片 CE1=0,高位片 CE1=1(无效)。
· A13=1 → Y1 有效 → 高位片 CE1=0,低位片 CE1=1(无效)。
4. 读写控制(OE 和 WE)
· OE:两片的 OE 都直接接 8086 的 RD 信号(低有效)。
· WE:写信号不能简单直接接 WR,因为写字节时需要只写其中一片。
· 低位片 WE = WR 与 ( A0=0 或 BHE=0 当写字时?实际上更常用:)
正确组合:
· 写偶地址字节 (A0=0, BHE=1):只写低位片。
· 写奇地址字节 (A0=1, BHE=0):只写高位片。
· 写字 (A0=0, BHE=0):两片同时写。
因此:
· 低位片 WE = WR 与 ( A0=0 ) (即低电平有效时,偶地址才写低位)
· 高位片 WE = WR 与 ( BHE=0 ) (即高字节使能有效时,写高位)
· 可以用 与门 实现:WR 信号与 A0(经反相或直接)组合,WR 与 BHE 组合。
5. 其他控制
· READY 接高电平(默认就绪),或由等待电路产生。
· 复位等信号略。
四、地址范围与译码真值表
假设 A19~A14 全为 0,只使用 A13 区分两片:
A19..A14 A13 选中的芯片 地址范围 (16 进制)
000000 0 低位片 00000H ~ 01FFFH
000000 1 高位片 02000H ~ 03FFFH
但因为两片同时访问时构成 16 位字,字地址 A0=0,所以一个字访问的物理地址是:
· 偶地址(如 00000H)的低位字节在低位片,高位字节在高位片,对应同一 A13 值(0)。
· 因此实际上 A13 决定了 16KB 的块,每块内部由 A12..A0 寻址 8KB,高 8KB 和低 8KB 分别在不同芯片。
更常见的做法是:将两片 6264 的 CE1 并联,用 A0 和 BHE 控制 WE 来实现字节/字写,而地址线 A12..A1 并联,A0 不连到 6264(因为 6264 没有 A0 这回事,我们连的是 A12..A0,所以 A0 直接连到 6264 的 A0),这样 6264 内部地址范围就是连续的,但两片的数据线分别接高位和低位。这样,对于写操作,通过 WE 的门控实现选择性写入。
五、最终建议
在实际画原理图时,步骤是:
1. 将 8086 的 A12..A0 接到两片 6264 的 A12..A0。
2. 将 8086 的 D15..D8 接高位片 I/O0~7,D7..D0 接低位片 I/O0~7。
3. 将两片的 OE 接 RD。
4. 将两片的 CE2 接 Vcc。
5. 用 74LS138 将 A15、A14、A13 译码,Y0 接低位片 CE1,Y1 接高位片 CE1(确保 A14=A15=0)。
6. 用与门产生 WE:
· 低位片 WE = WR & (~A0) (即 WR 与 A0 取反)
· 高位片 WE = WR & (~BHE) (即 WR 与 BHE 取反)
7. 可选:将 A0 和 BHE 也接入译码器,但通常按上述方法足够。
DRAM

1. 芯片概览:64K x 1bit的设计哲学
· 与SRAM的差异:现代存储器更常被设计成每个芯片提供多位数据(如 x8, x16)来简化系统,但在2164A诞生的年代,为了最大化良率,将存储阵列设计得更紧凑的 x1 结构是主流选择。
· 核心区别:2164A的数据输入(Din)和数据输出(Dout)是分离的,而SRAM的数据线是双向的:
· Din: 数据输入
· Dout: 数据输出
· 独特的控制逻辑:讲解Intel 2164A芯片没有专门的片选(CS)引脚,其工作由RAS和CAS信号直接控制。只有 RAS 信号可以真正让芯片开始工作,其上升沿标志一个操作周期的结束;高电平时芯片处于待机状态,低电平时被激活。而 CAS 只在芯片被RAS激活后才起作用,用于锁存列地址并控制数据的输出。
2. 引脚详解
它采用16引脚封装,相比于SRAM,引脚数大幅减少。
· 地址线 (A0-A7, 8根):分时复用的地址输入引脚,用于接收8位的行地址和列地址,共同构成16位的完整地址。
· 数据线 (Din, Dout, 2根):
· Din: 数据输入。在写操作中,数据通过此引脚输入。
· Dout: 数据输出。在读操作中,数据通过此引脚输出。
· 核心控制线:
· RAS (Row Address Strobe, 行地址选通):用于锁存行地址,也充当芯片的总使能信号。其下降沿标志着操作周期的开始。
· CAS (Column Address Strobe, 列地址选通):用于锁存列地址,并控制数据的输出。其下降沿标志着地址输入的完成和内部读/写操作的启动。
· WE (Write Enable, 写使能):高电平时为读操作,低电平时为写操作,决定了Din/Dout引脚的方向。
3. 存储单元结构与寻址原理
2164A内部将64K个存储单元排列成一个256×256的矩阵,并由4个相同的128×128阵列构成,每个矩阵有128行×128列,并由专门的读出放大器和地址锁存器管理寻址和数据读出。由于采用地址复用技术,它通过以下两步完成16位地址(A0-A15)的传输:
1. 行地址:先通过8根地址线(A0-A7)发送行地址(高8位,对应行地址RA8-RA15)。在RAS信号的下降沿,这个行地址被锁存到芯片内部。
2. 列地址:随后通过相同的8根地址线发送列地址(低8位,A0-A7)。在CAS信号的下降沿,这个列地址被锁存。
4. 读写时序流程
一个完整的操作周期由RAS信号的低电平区间定义,在此期间进行行、列地址的锁存及数据的读写。
读操作
当WE引脚为高电平时,芯片执行读操作。
1. 行地址锁存:CPU将行地址放在A0-A7上,随后RAS信号变为低电平,其下降沿将行地址锁存到芯片内部。
2. 列地址锁存:CPU将列地址放在A0-A7上,随后CAS信号变为低电平,其下降沿将列地址锁存。
3. 数据输出:经过存取时间(tRAC, tCAC)后,选中存储单元的数据会出现在Dout引脚上并保持,直到CAS或RAS变为高电平。CPU在此阶段读取Dout上的数据。
写操作
当WE引脚为低电平时,芯片执行写操作。
1. 前两步与读操作相同:行地址锁存和列地址锁存。
2. 数据写入:在CAS信号有效期间,CPU将要写入的数据置于Din引脚,并在WE有效时将其写入选中的存储单元。
5. 刷新机制 (Refresh)(刷新速度快所以做动态内存)
由于存储单元是电容器,其存储的电荷会泄露,必须定期(典型为2ms或4ms)进行刷新(读出后再写回)以维持数据。
· 刷新方式:刷新是逐行进行的。只需提供行地址,芯片内部读出放大器会将这一行所有列的数据读出并重新写入,从而恢复电荷。
· 刷新地址来源:RAS Only Refresh刷新模式只用RAS信号控制,由外部刷新计数器自动生成行地址。而CAS Before RAS Refresh刷新模式则是在CAS信号先于RAS变为有效时进入,芯片内部的刷新计数器会自动提供被刷新的行地址。
· 刷新周期:2164A的刷新计数器通常为7位,需在4ms内完成全部128行(因为芯片内部被组织成了4个128x128的矩阵,所以刷新一个行地址信号可刷新4行数据)的刷新。
· 系统实现:在PC/XT等老系统中,常通过DMA控制器(如8237A)的通道0,用片内的刷新计数器产生行地址,并配合RAS Only时序控制2164A刷新。
(片选位选下节讲吧太多了)
