8086存储系统扩展设计.docx
《8086存储系统扩展设计.docx》由会员分享,可在线阅读,更多相关《8086存储系统扩展设计.docx(16页珍藏版)》请在冰豆网上搜索。
8086存储系统扩展设计
8086存储系统扩展设计
摘要
8086CPU是使用广泛的16位微处理器。
存储器是组成计算机系统的重要成分,按在计算机中作用分类,存储器可分为主存储器(内存)、辅助存储器(外村)、高速缓冲存储器等在8086最小模式系统和最大模式系统中,8086CPU可寻址的最大存储空间为1MB。
存储器的容量是指一块存储芯片上能存放的二进制位数,而微机的存储容量是指由多片存储芯片组成的存储容量,本实验是基于8086CPU工作在最小模式下将存储系统的扩充到最大即1MB,使用的内存芯片为621024(128K*8位)静态RAM。
关键词:
8086CPU存储系统最小模式
绪论
进入21世纪,信息社会发展的脚步越来也快,对人才的需求也呈现出新的变化趋势。
计算机也得到了迅猛的发展,科学家实现了计算机一代接一代的跨越性发展。
作为自动化专业本科生,微机原理与接口技术是十分重要的课程。
它是我们学习生活中不可或缺的一部分,计算机更是我们需要掌握的“第二语言”。
所以对微机原理与接口技术的学习也显得十分重要。
本设计是基于8086CPU上的内存扩充。
8086项目起始于1976年5月,是英特尔公司当时更为看重的16位的iAPX432微处理器的备份项目。
8086一方面要与Motorola,Zilog,NationalSemiconductor等公司的16位、32位微处理器竞争市场份额,另一方面也是对ZilogZ80在8位微处理器市场上的成功的回击。
由于采用了与8085微处理器近似的微体系结构与物理实现工艺,8086项目进展相当快。
8086微处理器被设计为在汇编源程序上向前兼容8008,8080,8085等微处理器。
指令集与编程模式是基于8080微处理器,但指令集做了扩展以完全支持16位计算。
1存储器扩展设计原理及方案选择
1.1原理介绍
设计要求将8086的存储系统扩展到最大,在8086最小系统和最大系统中,8086CPU可寻址的最大存储空间为1MB,随机读写存储器在计算机系统中的功能主要是存储程序、变量等,在计算机运行过程中程序锁处理的变量可能要随时更新,甚至运行的程序都可能被系统动态删除以腾出空间给其他进程这类信息用ROM来存储是不行的。
通过RAM的扩展电路将8086的存储系统内存扩展到1MB,在CPU中设置两个寄存器来实现存储器和CPU之间的数据传输:
存储器地址寄存器(MAR)和存储器缓冲寄存器(MBR)。
最后,编写测试程序,向扩展的存储单元写入数据并读出进行比较。
1.2方案选择
RAM的扩展分为位扩展和字扩展。
位扩展是指存储芯片的字数满足要求而位数不够需要对每个存储单元的位数进行扩展,将地址线、控制线并联,数据线对应接到8086的数据线上。
字扩展即地址扩展,用于存储芯片的位数满足要求而字数不够的情况,是对存储单元数量的扩展。
根据片选信号产生的方法不同,字扩展分为线选法、局部译码法和全译码法。
线选法是地址线与存储器的地址线连接,余下的高地址分别作为各个存储器的片选。
局部译码法是将高地址的一部分进行译码,产生哥哥存储器的片选。
全译码法是高地址全部进行译码产生各个存储器的片选。
本次设计要求将存储器扩展到1MB,选择芯片为621024(128K*8位),它的位数为8位,需要地址线17根,所以选择方案为字扩展全译码法进行实验设计。
2存储系统扩展设计
2.1CPU系统设计
2.1.1CPU系统原理框图
图1CPU系统电路图
以8086CPU构成的微型计算机系统,有最小模式和最大模式两种配置。
最小模式是单机系统,系统中所需要的控制信号全部由8086CPU本身直接提供;最大系统可以构成多处理系统,系统中所需要的控制信号由总线控制器8288提供,本次设计CPU工作在最小模式下。
图1为8086CPU构成的最小模式系统配置图,整个CPU系统以8086微处理器为核心,经过地址锁存器74LS373后形成三种线(地址总线,数据总线,控制总线)结构。
通过在总线上挂接上ROM,PAM和I/O接口,就构成微机了。
该系统中,74LS373为地址锁存器。
在8086系统中,地址线和数据线是复用的,这些复用的管脚在某时刻只能体现地址线或者数据线之一,所以在对存储器访问时,首先要将地址输出。
此时,复用的管脚是地址线,然后利用地址锁存器保存这些地址。
之后,这些管脚才是数据线,将数据读出或者写入到存储器。
在某一时刻,处理器把某个存储单元的地址发送到地址总线上,经锁存器将这些地址保存起来,只有这样,处理器才能把数据通过某些共享的管脚送到数据总线上,完成对存储器的读/写操作。
所以,在8086最小模式系统中,数据缓冲器是不必要的。
2.1.2芯片74LS373介绍
74LS373为三态输出的八D透明锁存器,373的输出端Q0~Q7可直接与总线相连,管脚图如图2所示。
当三态允许控制端OE为低电平时,Q0~Q7为正常逻辑状态,可用来驱动负载或总线。
当OE为高电平时,Q0~Q7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。
当锁存允许端LE为高电平时,Q随数据D而变。
当LE为低电平时,D被锁存在已建立的数据电平。
当LE端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善400mV。
它的真值表见表1。
引出端符号:
D0~D7数据输入端
OE三态允许控制端(低电平有效)
LE锁存允许端
Q0~Q7输出端
图274LS373管脚图
图374LS373内部结构图
表174LS373真值表
DN
LE
OE
QN
H
H
L
H
L
H
L
L
X
L
L
Q0
X
X
H
高祖态
2.2存储器扩展电路
2.2.1存储扩展电路原理图
图4存储电路电路图
试验中共用了8个621024(128K*8位)芯片,每行两个为一组,其中一片存储第八位信息,接CPU数据线的D0~D7;另一片存储高八位信息,接CPU数据线的D8~D15,如图连接,十七根地址线(A1~A17)分别与八个SRAM连接,片选信号由A18,A19产生,由A0和
选择偶片或者奇片RAM工作,表2给出了A0和
逻辑组合所对应的8086CPU不同类型的数据操作。
表2A0和
编码含义
A0
总线使用情况
0
0
16位数据总线上进行行字传送
0
1
高8位数据总线上进行字节传送
1
0
低八位数据总线上进行字节传送
1
1
无效
2.2.2芯片621024介绍
静态RAM是由MOS管组成的触发电路,每个触发器可以存放一位信息只要不掉电所储存的信息就不会丢失。
因此,SRAM工作稳定,不必外加刷新电路,使用方便。
621024RAM有131072个存储单元,每个单元为8位字长。
621024的引脚图如图1所示:
图5621024管脚图
表3621024管脚意义
管脚符号
A0~A16
I/O0~I/O7
意义
地址线
双向数据线
片选线1
片选线2
写允许线
读允许线
、
、
、
的共同作用决定了芯片的运行方式,如表4所示。
表4621024运行方式
方式
输出
H
未选中
高阻态
L
未选中
高阻态
L
H
H
H
输出禁止
高阻态
L
H
L
H
读
OUT
L
H
L
写
IN
2.2.474LS139译码电路
译码电路作用是将输入的一组二进制编码转换成为一个特定的输出信号,即:
输入的一组高位地址信号通过转换,产生一个有效的输出信号,用于选中某一个存储芯片,聪而确定了该存储芯片在内存中的地址范围,设计中我们选择74LS139构成译码电路
74LS139为两个2线-4线译码器,共有54/74S139和54/74LS139两种线路结构型式,它的引脚图如图5所示。
当选通端(G1)为低电平,可将地址端(A、B)的二进制编码在一个对应的输出端以低电平译出。
若将选通端(G1)作为数据输入端时,139还可作数据分配器。
真值表如表4所示。
图674LS139引脚图
图774LS139内部结构图
表574LS139真值表
输入
输出
G
B
A
Y0
Y1
Y2
Y3
H
X
X
H
H
H
H
L
L
L
L
H
H
H
L
L
H
H
L
H
H
L
H
L
H
H
L
H
L
H
H
H
H
H
L
2.2.5存储器地址分配
用八片SRAM621024(128K*8)组成1MB的存储器,各存储器地址的分配情况如表5所示:
表5存储器地址分配
组别
偶地址
奇地址
A19,A18
A17~A1
地址范围
第一组
A0=0
Ao=1
00
00000000000000000
11111111111111111
00000H
3FFFFH
第二组
A0=0
A0=1
01
00000000000000000
11111111111111111
400000H
7FFFFH
第三组
A0=0
A0=1
10
00000000000000000
11111111111111111
80000H
BFFFFH
第四组
A0=0
A0=1
11
00000000000000000
11111111111111111
C0000H
FFFFFH
根据各存储器的地址分配可以得到该存储系统是从00000H开始到FFFFFH的1MB的存储空间。
2.3存储器读写程序
2.3.1存储器读写分析
存储器“读”操作工作过程:
(1)送地址——CPU通过地址总线将地址送入地址总线寄存器,并进行译码;
(2)发出“读”命令——CPU通过控制总线将“存储器读”信号送入读/写控制电路;
(3)从存储器读出数据——读/写控制电流根据“读”信号和片选信号选中存储体中的某一个存储单元,从该单元读出数据,送到数据缓存器,再经过数据总线送到CPU。
存储器“写”操作工作过程:
(1)送地址——CPU通过地址总线将地址送入地址总线寄存器,并进行译码;
(2)发出“写”命令——CPU通过控制总线将“写”信号送入读/写控制电路;
(3)写入数据到存储器——读/写控制电流根据“写”信号和片选信号选中存储体中的某一个存储单元,将数据总线上的数据送到数据缓存器,在写入到选中的存储单元。
2.3.2读写内存流程图
图6读写程序流程图
2.3.3存储扩展电路电路读写程序
DATASEGMENT
MESSAGEDB‘ENTERAKEYTOSHOWTHECONTENS’,ODH,OAH,’$’
DATAENDS
STACKSEGMENT
STADW50DUP(?
)
TOPEQULENGTHSTA
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,ES:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAX,STACK;段寄存器及指针初始化
MOVSS,AX
MOVSP,TOP
MOVAX,0000H;附加段寄存器指向扩充内存区域
MOVES,AX
MOVBX,0000H;偏移地址
MOVCX,100H;显示的字符数
MOVDL,40H;以‘A’字符开始显示
REP1:
INCDL
MOVES:
[BX],DL;字符存入扩充内存区域
INCBX
CMPDL,5AH;是否超过‘Z’字符
JNZSS1;超过则重置DL的值
MOVDL,40H
SS1:
LOOPREP1;循环256次
MOVDX,OFFSETMESSAGE
MOVAH,09;显示提示信息
INT21H
MOVAH,01H;等待按键
INT21H
MOVAX,00000H
MOVES,AX
MOVBX,0000H
MOVCX,0100H
REP2:
MOVDL,ES:
[BX];取出扩充内存的内容并显示
MOVAX,02H
INT21H
INCBX
LOOPREP2
MOV4COOH;返回DOS
INT21H
CODEENDS
ENDSTART
执行程序后屏幕上依次显示存入扩充内存的内容‘A~Z’。
3小结
通过这次将8086存储系统扩展到最大课程设计,对于8086CPU的内部结构、8086系统的结构配置、存储器结构、8086CPU最小和最大模式下的读写总线周期以及汇编语言程序设计、存储器原理都有了更加深刻的认识,尤其通过对程序一步一步跟踪可以更加生动、清楚的看到数据在内存中的存储情况。
虽然存储器扩展在课程进行中已经接触到,但实验一开始遇到了一些瓶颈,尤其是对于芯片的选择以及读写程序汇编等,在通过查阅资料后终于克服了这些困难,最后得以按时完成课程设计。
参考文献
[1]彭虎、周佩玲、傅忠谦,微机原理与接口技术,电子工业出版社(第二版),2010
[2]周明德,微机原理与接口技术实验指导,人民邮电出版社,2001
[3]何晓明,微机原理及应用,机械工业出版社,1999
[4]史家全,微机原理与技术,清华大学出版社,1988
[5]贾金玲,微机原理与接口技术课程设计指导,重庆大学出版社,2009
附件:
存储系统扩展电路图