通过对 【计算机与UNIX汇编原理 ① ~ 】的学习,我们早已大致把握了汇编程序设计的相关知识
接下来,我将其页脚名改为 【计算机原理与插口技术(UNIX) 】,重点将置于 “计算机原理与插口技术” 上
文章目录
总线的英语:Bus
上一篇文章链接:【计算机原理与插口技术(UNIX)】——总线概述【总线与总线标准、总线结构、ISA、PCI、IDE】.
下一篇文章链接:【计算机原理与插口技术(UNIX)】——输入/输出系统【位、字扩充法 + 详细例题】.
一、存储系统的重要知识点
● 学习之前,需备考关于存储器的前驱知识:【计算机与UNIX汇编原理②】——存储器系统【RAM ROM 高速缓冲存储器Cache】
● 关键字:存储元、存储单元、存储体、单元地址、存储器、RAM、ROM 、高速缓冲存储器Cache、存储器发展、分类和应用、存储器地址与读写操作
● “存储程序” 的核心是将编号的程序和要加工处理的程序预先存入主存储器,然后启动计算机工作,计算机在不需人工干预的情况下地址译码信号有什么用,高速手动地从主存储器取出指令,从而完成估算和处理。
● 在现代计算机中,存储器处于全机中心地位。
● 存储容量:指存储器可以储存的二进制信息量。公式:存储容量 = 字数 × 字长
例如:一个存储器能储存1024个字,字长8位,则存储器容量可用1024×8表示
● 微机中的存储器通常都是以字节(8位)进行编址,即总是觉得一个字节是 “基本” 的字长。常用B表示。
● 存储体:存储单元的集合,是储存二进制信息的地方。常用的存储体如下:
将各个字的 同一位 组织在一个芯片中,如:8118 16K × 1(DRAM)
将各个字的 4位 组织在一个芯片中,如:2114 1K × 4 (SRAM)
将各个字的 8位 组织在一个芯片中,如:6116 2K × 8 (SRAM)
● 外围电路:为了区别不同的储存单元,以地址号来选择不同的储存单元。于是电路中要有地址译码器、I/O电路、片选控制端CS、输出缓冲器等外围电路。
二、层次化储存系统
● 现代计算机中的存储器处于全机中心地位,现代对存储器的要求是:容量大,速度快,成本低。
● 为解决两者之间的矛盾,目前一般采用多级存储器体系结构,即使用高速缓冲存储器、主存储器和外存储器。
● 与 CPU 的联接的主要有:地址线、控制线、数据线。
● 设计的存储器容量与实际提供的存储器多有不符。实际使用时,需进行字和位扩展(多个芯片联接),组成所须要的实际的存储器。需要的片数估算公式如下:
总片数=总容量M容量m/片总片数=\frac{总容量M}{容量m/片}总片数=容量m/片总容量M
● 例如:存储器容量为8K × 8,若选用 2114 芯片(1K × 4),则须要:
8K×81K×4=8×2=16片\frac{8K\times8}{1K\times 4}=8\times 2=16片1K×48K×8=8×2=16片
三、位扩展法
● 这是一个8K × 4的简单储存存储器。【这是一张对比图,用于和旁边的位扩充得到的图进行对比】
● 位扩充法:只在位数方向进行扩充(加大字长),而存储器的字数与存储器芯片字数一致。连接时将各芯片地址线的相应位及各控制线并联,而数据线分别接到数据总线的诸位。
● 用8K × 1位芯片组成8K × 8位的存储器须要8个芯片,各芯片地址线、CS(片选讯号) 和 WE(读写讯号) 分别联接在一起,数据线各自独立(每片1位)。
四、字扩充法
● 这是一个8K × 4的简单储存存储器。【这是一张对比图,用于和前面的字扩充得到的图进行对比】
● 字扩充法:仅扩充存储容量(单元数),而位数不变。连接时将各芯片同名地址线、数据线、读/写线并联,而使用片选讯号分辨各个芯片。
● 如用16K × 8位的芯片组成64K × 8位的存储器须要4个芯片,所以地址线——共需16根,片内(214=16384)14根,选片:2根,【所需地址线(图中的A0、…、A15) = 片内地址线(图中的A0、…、A13) + 片选地址线(图中的A14、A15)】数据线——8根,控制线——WE,如下图所示:
五、字位同时扩充法
● 用1k × 4的存储器芯片 2114 组成2k × 8的存储器,结果如下:
● 不同的扩充方式可以得到不同容量的存储器。在选择存储芯片时,一般应尽可能使用集成度高的存储芯片来满足总的储存容量的要求,这样可以降低成本,还可以减少系统的负载,缩小存储器模块的规格。
六、存储器地址解调方式
● CPU 与存储器联接时,特别是在扩充存储容量情况下,主存的地址分配就是一个重要的问题。
● CPU 对储存单元的访问流程:
① 系统首先会选存储芯片,即进行片选。
② 然后再从选中的芯片中根据地址码选择出相应的储存单元,以进行数据的存取,即进行字选。
● 实现片选的方式的方式有 3 种:线选法、全译码法和部份解调法。
6.1 线选法
● 线选法:用除片内选址外的低位地址线直接分别接至各个存储芯片的片选端(CS\overline{CS}CS),当某地址线的讯号为 0 时,就表示选中与之联接的存储芯片。
● 如下图所示,该存储器是由4片2K × 8b用线选法构成的8K × 8b存储器的联接图。片选地址线(图中的A11、…、A14)
● 使用线选法得到的该存储器地址分布表如下:
● 说明:在上表中,“1110” 中的 0 表示选中对应的A11。“1101” 中的 0 表示选中对应的A12。
● 线选法的优点:它不需要地址译码器,线路简单地址译码信号有什么用,选择芯片时不需要加逻辑电路,但仅适用于联接存储芯片较少的场合。
6.2 全译码法
● 全译码法不仅将地址总线的高位地址直接与芯片的地址线相连之外,其余低位地址全部接入译码器,由译码器的输出作为各芯片的片选讯号。
● 例:某微机地址线16位,存储容量为64KB,由8KB的芯片构成,其片内地址为13位(即 A0、A1、…、A12),其片外的地址为3位(即A13、A14、A15构成的38译码器)。
6.3 部分译码法
● 将低位地址线中的一部分进行解调,产生片选讯号(即为线选法和全译码法相结合的方式)。该方式适用于不需要全部地址空间的轮询能力,但采用线选法地址线又不够用的情况。(下图为4个8K × 8b芯片构成32K × 8b的存储器的情况。拥有的条件是 A13、A14、A15,但直接用线选法不够,就只用其中两个即可)
七、存储器地址解调电路设计步骤
● 存储器地址解调电路设计步骤:
① 根据系统中实际存储器容量,确定存储器在整个主存空间中的位置。
② 根据所选用存储器芯片的容量,画出地址分配图或列举地址分配表。
③ 根据地址分配图或分配表确定解调方式并画出相应的地址位图。
④ 选用合适元件,画出解调电路图。
● 存储器地址解调举例 一一>设计要求:要求微机系统地址总线为16位(A15—A0);双向数据总线8位(D7—D0),控制总线中与寻址有关的讯号有:MREQ\overline{MREQ}MREQ(存储器恳求),R/WR/\overline{W}R/W(读/写控制)。
● 设计步骤如下:
① 实际存储器地址空间分配如下:
0000H—1FFFH 为系统程序区(8KB),由 EPROM 组成;
2000H—7FFFH 为用户程序区(24KB),由 SRAM 组成.
最高的2K地址空间为系统程序工作区(2KB),由 SRAM 组成。
② 现选用如下存储器芯片,据此画出地址分配图:
EPROM:8K × 8位(控制端仅有CS),需1片
SRAM:8K × 8位,需3片;2K × 8位,需1片
③ 画出地址位图如下:
④ 选用 3-8 译码器和基本门电路设计电路:
八、练习题
(1)有若干片1K×8位的 SRAM 芯片,采用字扩充方式构成4KB存储器,问:需要 ______ 片 SRAM ?该存储器须要多少 _______ 根地址线?参与片选的地址位起码须要 _______ 位?
(2)有若干片128KB的 SRAM 芯片,如要构成512KB存储器,问:需要 ______ 片 SRAM ?如该512KB存储器的起始地址是10000H,最后一个单元的地址是 ______ H 。
(3)如显存按字节编址,用存储容量为32K×8b的存储芯片构成地址为A0000H至EFFFFH的储存空间,则 ______ 片?
(4)已知如下电路,问第6个芯片的轮询范围从 ______ 到 ______ 。
九、练习题的解析与答案
(1)有若干片1K×8位的 SRAM 芯片,采用字扩充方式构成4KB存储器,问:需要 ______ 片 SRAM ?该存储器须要多少 _______ 根地址线?参与片选的地址位起码须要 _______ 位?
● 第一个空:4\underline{\quad4\quad}4,因为 4KB / 1KB = 4。第二个空:12\underline{\quad12\quad}12,因为 212B = 4KB。第三个空:2\underline{\quad2\quad}2,因为 22 = 4,底数 2 为地址位数, 22 表示能形成的地址数。
(2)有若干片128KB的 SRAM 芯片,如要构成512KB存储器,问:需要 ______ 片 SRAM ?如该512KB存储器的起始地址是10000H,最后一个单元的地址是 ______ H 。
● 第一个空:4\underline{\quad4\quad}4,因为 512KB / 128KB = 4。第二个空:8FFFH\underline{\quad8FFFH\quad}8FFFH,因为 10000H+512KB1B=10000H+10000000000000000000B1B=10000H+1111111111111111111B=10000H+7FFFH=8FFFH10000H + 512KB - 1B = 10000H + 1000\,\, 0000\,\, 0000\,\, 0000\,\, 0000B - 1B \\ \quad \quad \quad\quad\quad\quad\quad\quad= 10000H + 111\,\, 1111\,\, 1111\,\, 1111\,\, 1111B \\ \quad\quad\quad\quad\quad = 10000H + 7FFFH = 8FFFH10000H+512KB1B=10000H+10000000000000000000B1B=10000H+1111111111111111111B=10000H+7FFFH=8FFFH
◆ 说明:减1B是因为,我们要把虽然地址的 “那一个” 去掉,因为我们只须要 “10000H” 这个地址就行。【比如说,班主任开家长会,告诉李华,他的妈妈、妈妈、舅舅、姑妈共 4 人从第五排开始往前坐,那么他的祖母坐在:5 + 4 - 1 = 8(排),即 “最后一个单元” 】
(3)如显存按字节编址,用存储容量为32K × 8b的存储芯片构成地址为A0000H至EFFFFH的储存空间,则须要 ______ 片?
● 答案:10\underline{\quad10\quad}10,因为EFFFFHA0000H+1B=4FFFFH+1B=01001111111111111111B+1B=1010000000000000000B=320KB。那么320K/32K=10EFFFFH - A0000H + 1B = 4FFFFH + 1B \\ \quad \quad \quad\quad \quad \quad \quad\quad \quad \quad \quad\quad \quad \quad \quad\quad \quad \quad \quad= 0100\,\,1111\,\,1111\,\,1111\,\,1111B + 1B \\ \quad \quad \quad\quad \quad \quad \quad\quad \quad \quad \quad\quad \quad \quad \quad\quad = 101\,\,0000\,\,0000\,\,0000\,\,0000B \\ \quad \quad \quad\quad \quad \quad \quad\quad \quad \quad \quad\quad \quad \quad \quad\quad \quad \quad \quad= 320KB。那么320K/32K = 10EFFFFHA0000H+1B=4FFFFH+1B=01001111111111111111B+1B=1010000000000000000B=320KB。那么320K/32K=10
(4)已知如下电路,问第6个芯片的轮询范围从 ______ 到 ______ 。
● 答案:A000H\underline{\quad A000H\quad}A000H、BFFFH\underline{\quad BFFFH\quad}BFFFH,因为 A12∽A0A_{12} \backsim A_{0}A12∽A0 ——> 片内寻址范围: 0 0000 0000 0000B ~ 1 1111 1111 1111B。对于第6片而言,即将 “110”(片外轮询)加到片内寻址的后面即可:1100 0000 0000 0000B ~ 1101 1111 1111 1111B ——> A000H ~ BFFFH。
十、学习重点与小结
① 掌握存储器的基本概念(分类,主要性能指标,容量)
② 区别存储器地址和储存单元的内容,掌握存储器读写操作过程
③ 掌握存储器的扩充技术(位扩充、字扩充)
④ 掌握片选解调方式(线选法、全译码法)
十一、参考附表
[1]《微型计算机原理与接口技术(慕课板)》
清华大学出版社
上一篇文章链接:【计算机原理与插口技术(UNIX)】——总线概述【总线与总线标准、总线结构、ISA、PCI、IDE】.
下一篇文章链接:【计算机原理与插口技术(UNIX)】——输入/输出系统【位、字扩充法 + 详细例题】.