课程设计报告计算机组成原理分解.docx
《课程设计报告计算机组成原理分解.docx》由会员分享,可在线阅读,更多相关《课程设计报告计算机组成原理分解.docx(21页珍藏版)》请在冰豆网上搜索。
课程设计报告计算机组成原理分解
课程设计(大作业)报告
一、题目分析
本次课程设计课题是设计基于微程序控制器的简单计算机设计与实现,宏观上利用CPU、cache、存储器以及一些外设设备来组成一台简单计算机,微观上由运算器、译码电路、和存储器指令用的控制存储器构成。
此次设计要求完成各个指令的格式以及编码的设计,实现各个机器指令的微代码。
本计算机实现的功能有:
IN(输入),OUT(输出),ADD(加法),SUB(减法),STA(存数),JMP(跳转)。
设计进行开始,在了解微程序的基本格式,及各个字段值的作用后,按微指令格式参照指令流程图,设计出程序以及微程序,将每条微指令代码化,译成二进制代码表,并将二进制代码转换为联机操作时的十六进制格式文件。
根据机器指令系统要求,设计微程序流程图及确定微地址。
设计的加法和减法中,被加数和被减数都由调试人员输入,而加数和减数都从存储器中读取.最后上机调试,各个功能运行结果正确。
二、基本理论
计算机原理图
(一)、ALU
1、功能及组成
它是数据加工处理部。
执行所有的算术运算执行所有的逻辑运算,并进行逻辑测试,通常,一个算术操作产生一个运算结果,而一个逻辑操作则产生一个判决。
2、设计图
(二)、CPU
1、如何执行指令
(1)MOV指令
a.程序计数器PC中装入第一条指令地址101
b.PC的内容被放到指令总线ABUS上,对指存进行译码,并启动读命令。
c.从101号地址读出的MOV指令通过指令总线IBUS装入指令寄存器IR。
d.程序计数器内容加1,变成102,为取下一条指令做好准备。
e.指令寄存器中的操作码被译码。
f.CPU识别出是MOV指令。
至此,取值周期结束。
g.操作控制(OC)器送出控制信号到通用寄存器,选择R1作源寄存器,选择R0作目标寄存器。
h.OC送出控制信号到ALU,制定ALU做传送操作。
i.OC送出控制信号,打开ALU输出三态门,将ALU输出送到数据总线DBUS上。
(任何时候DBUS上只能有一个数据)
j.OC送出控制信号,将DBUS上的数据打入到数据缓冲寄存器DR。
k.OC送出控制信号,将DR中的数据打入到目标寄存器R0,R0的内容由00变为10。
至此,MOV指令执行结束。
(2)LAD指令
a.取指周期与MOV指令取指周期一样,只是PC提供的指命令地址为102,按此地址从指令存储器读出指令放入IR中,然后将PC+1,使PC内容变为103,为取下一条ADD指令做好准备。
b.操作控制器OC发出控制命令打开IR输出三态门,将指令中的直接地址码6放到数据总线DBUS上。
c.OC发出读命令,将地址码6装入数存地址寄存器AR。
d.OC发出命令,将数存6号单元中的数100读出到DBUS上。
e.OC发出命令,将DBUS上的数据100装入缓冲寄存器DR。
f.OC发出命令,将DR中的数100装入通用寄存器R,原来R1中的数10被冲掉,至此,LAD指令执行周期结束。
(3)ADD指令
a.取指周期和MOV指令一样。
b.操作控制器OC送出控制命令道通用寄存器,选择R1做源寄存器,R2做目标寄存器。
c.OC送出控制命令,打开ALU输出三态门,运算结果120放到DBUS上。
e.OC送出控制命令,将DBUS上数据打入缓冲寄存器DR,ALU产生的进位信号保存状态字寄存器在PSW中。
f.OC送出控制命令,将DR(120)装入R2,R2中原来的内容20被冲掉。
至此,ADD指令执行结束。
(4)STO指令
a.取指周期和MOV指令一样。
b.操作控制OC送出操作命令到通用寄存器,选择(R3)=30做数据存储器的地址单元。
c.OC发出操作命令,打开通用寄存器输出三态门,将地址30放到DBUS上。
d.OC发出操作命令,将地址30打入AR,并进行数存地址译码。
e.OC发出操作命令到通用寄存器,选择(R2)=120,做为数存的写入数据。
.
f.OC发出操作命令,打开通用寄存器输出三态门,将数据120放到DBUS上。
g.OC发出操作命令,将数据120写入数存30号单元,它原先的数据40被冲掉。
至此,STO指令执行结束。
(5)JMP指令
a.取指周期和MOV指令一样
b.OC发生操作控制命令,打开指令寄存器IR的输出三态门,将IR中的地址码101发送到DBUS上。
c.CC发出操作控制命令,将DBUS上的地址码101地打入到程序计数器PC中,PC中的原先内容106被更换。
下一条指令不是从106号单元取出,而是转移到101号单元取出。
至此,JMP指令执行结束。
2.如何设计
(1)CPU的硬件结构设计
(2)分析构成CPU硬件的各部件的控制信号
(3)设计指令系统和指令格式
(4)分析指令在所设计的CPU硬件结构中的执行流程,画出指令周期流程图和各步的控制信号
(5)对指令周期流程图中的控制信号进行优化
(6)设计微指令格式
(7)将控制信号以微指令的形式存放在控制存存储器中
(8)对控制型信号进行同步控制
(9)将经过同步后的控制信号与构成CPU的各功能部件的相应控制端相连接。
3.指令系统
一条指令就是机器语言的一个语句,由一组二进制代码来表示。
一条指令由两部分构成。
一条指令必须有一个操作码,可能包含几个地址码。
指令涉及指令长度、操作码结构、地址码结构等问题。
操作码:
指明指令的操作性质及功能。
地址码:
指明操作数的地址。
(a)指令长度
指令长度是指一条指令中所包含的二进制代码的位数,它取决于操作码字段的长度、操作数地址的个数及长度。
一般希望指令长度短一些。
指令长度与机器字长没有固定的关系。
指令长度可以等于机器字长,也可以大于或小于机器字长。
在一个指令系统中,若所有指令的长度都相等,称为定长指令字结构;若各种指令的长度随指令功能不同而不同,称为变长指令字结构。
(b)寻址方式
所谓寻址就是寻找操作数的地址或下一条要执行的指令的地址,而形成操作数或指令地址的方式,称为寻址方式。
寻址方式分为两类,即指令寻址方式和数据寻址方式。
下图几种PowerPC寻址方式:
(c)ARM汇编语言
汇编执行指令是机器指令的符号化表示,其操作码用记忆符表示,地址码直接用标号、变量名字、常数等表示。
汇编执行指令经汇编程序翻译为机器指令,二者之间基本上保持一一对应的关系。
汇编伪指令又称作汇编指示,用于向汇编程序提供用户自定义的符号、数据的类型、数据空间的长度,以及目标程序的格式、存放位置等提示性信息,其作用是指示汇编程序如何进行汇编。
S1.分类
存储介质:
半导体存储器、磁表面存储器
存取方式:
随机存储器、顺序存储器
存储器存储内容可变性:
只读存储器、随机读写存储器
信息易失性:
易失性存储器…….
系统中的作用:
内部存储器、外部存储器…….
2.分级
3.组成
一个半导体触发器由于有0和1两个状态,可以记忆一个二进制代码。
通常,在存储器中把保存一个数的16个触发器称为一个存储单元。
存储器是由多个存储单元组成的。
每个存储单元都有编号,称为地址。
向存储器中存数或者从存储器中取数,都要按给定的地址来寻找所选的存储单元。
存储器所有存储单元的总数称为存储器的存储容量。
4.扩展
(1)字长位数扩展
给定的芯片字长位数较短,不满足设计要求的存储器字长,此时还需要用多片给定芯片扩展字长位数。
三组信号线中,地址线和控制总线公用而数据线单独分开连接,所需芯片计算公式为:
(
)
(2)字存储量扩展
给定的芯片存储容量较小,不满足设计要求的总存储容量,此时需要用多片给定芯片来扩展字数。
三组信号组中给定芯片的地址总线和数据公用,控制总线中R/W公用,使能端EN不能公用,它由地址总线的高位段译码来决定片选信号。
所需芯片数仍由式(
)决定。
(3)存储器模块条
存储器通常以插槽用模块条形式供应市场。
这种就是内存条,它们是在一条状形的小印制电路板上,用一定数量的存储器芯片,组成一个存储容量固定的存储模块。
然后通过它下部的插脚插到系统板的专用插槽中,从而使存储器的总容量得到扩充。
5.如何与CPU链接
(1)地址线的连接
一般将CPU地址线的低位地址与存储器芯片对应的低位地址相连接。
CPU的高位地址线用作存储器芯片扩展,或者其他用途。
(2)数据线的连接
存储器数据线的数量与存储器芯片的内部结构有关。
(3)读/写命令线的连接
一般情况下,存储器的读/写命令线可以直接连接到CPU的读/写控制器,通常高电平为读,低电平为写。
注意:
当CPU和存储器的读/写控制端是分开的,需要单独连接:
当CPU和存储器的读/写控制端有一个是分开的,另一个是复用的,需要设计相应的逻辑电路来连接。
(4)片选信号线的连接
指CPU与存储器芯片之间能够准确工作的关键,一般通过设计一个译码电路来实现。
(5)合理的芯片选择
指ROM和RAM的配合及其选择。
6.存储器技术综述
主存储器的性能指标主要是存储容量、存储时间、存储周期和存储器带宽。
存储容量:
字一个存储器中可以容纳的存储单元总数。
存储容量越大,能存储的信息就越多。
存储容量的单位:
B、GB、TB。
它反应了存储空间的大小。
存储时间:
指一次度操作命令发出到该操作完成,将数据读出到总线上所经历的时间。
存储周期:
指连续启动两次操作所需间隔的最小时间,单位为ns。
存储器带宽:
单位时间里存储器所存储的信息量,通常以位/秒或字节/秒做度量单位。
带宽是衡量数据传输速率的重要技术指标。
1.分类
(1)内部总线:
CPU内部连接各寄存器及运算部件之间的总线。
(2)系统总线:
CPU同计算机系统的其它高速功能部件,如存储器、通道等互相连接的总线。
(3)I/O总线:
中、低速I/O设备之间互相连接的总线。
2如何与CPU连接
1.磁盘存储器结构与原理
(1)结构图
(2)原理
写操作:
当写线圈中通过一定方向的脉冲电流时,铁芯内就产生一定方向的磁通。
读操作:
当磁头经过载磁体的磁化元时,由于磁头铁芯是良好的导磁材料,磁化元的磁力线很容易通过磁头而形成闭合磁通回路。
不同极性的磁化元在铁芯里的方向是不同的。
通过电磁变换,利用磁头写线圈中的脉冲电流,可把一位二进制代码转换成载磁体存储元的不同剩磁状态;反之,通过磁电变换,利用磁头读出线圈,可将由存储元的不同剩磁状态表示的二进制代码转换成电信号输出。
这就是磁表面存储器存取信息的原理。
磁层上的存储元被磁化后,它可以供多次读出而不被破坏。
当不需要这批信息时,可通过磁头把磁层上所记录的信息全部抹去,称之为写“0”。
通常,写入和读出是合用一个磁头,故称之为读写磁头。
每个读写磁头对应着一个信息记录磁道。
2光盘
(1)分类
CD-ROM、WORM、CD-R、CD-RW、DVD-ROM。
(2)原理
光盘上的信息以坑点形式分布,有坑点表示为“1”,无坑点表示为“0”,一系列的坑点(存储元)形成信息记录道。
对数据存储用的CDROM光盘来讲,这种坑点分布作为数字“1”、“0”代码的写入或读出标志。
为此必须采用激光作为光源,并采用良好的光学系统才能实现。
光盘的记录信息以凹坑方式永久性存储。
读出时,当激光束聚焦点照射在凹坑上时将发生衍射,反射率低;而聚焦点照射在凸面上时大部分光将返回。
根据反射光的光强变化并进行光电转换,即可读出记录信息。
3.磁带
磁带机的记录原理与磁盘机基本相同,只是它的载磁体是一种带状塑料,叫做磁带。
写入时可通过磁头把信息代码记录在磁带上。
当记录有代码的磁带在磁头下移动时,就可在磁头线圈上感应出电动势,即读出信息代码。
磁带存储设备由磁带机和磁带两部分组成,它通常用作为海量存储设备的数据备份。
磁带速度比磁盘速度慢,原因是磁带上的数据采用顺序访问方式,而磁盘则采用随机访问方式。
4.键盘
键盘是字符和数字的输入装置,无论字符输入还是图形输入,它是一种最基本的常用设备。
当需要输入坐标数据建立显示文件时,要利用键盘。
另外,利用键盘上指定的字符与屏幕上的光标结合,可用来移动光标,指定绘图命令等。
5.显示器
(1)分类
器件:
CRT、LCD、等离子体
显示内容:
字符、图象
CRT中又可以分类:
扫描方式:
光栅扫描和随机扫描
分辨率:
高分辨率和低分辨率
显示颜色:
单色和彩色
显示屏幕大小:
14、15、17、19等
(2)字符显示器原理
显示系统由显示卡和和显示器组成
显示字符的方法以点阵为基础
字符点阵存放于字符发生器(ROM)中
字符窗口:
字符点阵和字符间隔
屏幕上所有字符窗口的ASCII均存放于VRAM中字符发生器的高位地址来自于ASCII码,低位地址来自于光栅地址计数器的输出。
(3)图形显示器工作原理
将所显示图形的一组坐标点和绘图命令组成显示文件存放在缓冲存储器,缓存中的显示文件送矢量(线段)产生器,产生相应的模拟电压,直接控制电子束在屏幕上的移动。
6.打印机
打印输出是计算机最基本的输出形式。
与显示器输出相比,打印输出可产生永久性记录。
下图是激光打印机的结构示意图:
激光打印机是激光技术和电子照相技术结合的产物,其基本原理与静电复印机相似。
如图所示,激光器输出的激光束经光学透镜系统被聚焦成一个很细小的光点,沿着圆周运动的滚筒进行横向重复扫描,滚筒是记录装置,表面镀有一层具有光敏特性的感光材料,通常是硒,因此也称为硒鼓。
硒鼓在未被激光束扫描之前,首先在黑暗中充电,使鼓表面沉积一层电荷。
此后根据控制电路输出的字符或图形,变换成数字信号来驱动激光器的打开与关闭。
鼠标是一种手持的坐标定位部件,分为两种类型。
第一种是机械式的,在底座上装有一个金属球,在光滑的表面上摩擦,使金属球转动,球与四个方向的电位器接触,就可以测量出上下左右四个方向的相对移量。
另一种是光电式的鼠标器,需要一小块画满小方格的长方形金属板配合使用。
当鼠标器在板上移动时,安装在鼠标器底部的光电转换装置可以定位坐标。
系统有两种外部I/O设备,一种是二进制代码开关,它作为输入设备(INPUTDEVICE);另一种是数码块,它作为输出设备(OUTDEVICE)。
例如:
输入时,二进制开关数据直接经过三态门送到总线上,只要开关状态不变,输入的信息也不变。
输出时,将输出数据送到数据总线上,当写信号(W/E)有效时,将数据打入输出锁存器,驱动数码块显示。
机器指令程序
$P0000
$P0110
$P020A
$P0320
$P040B
$P0530
$P060B
$P0740
$P080A
$P0920
$P0A01
$P0C30
$P0D0B
$P0E50
$M00018110
$M0101ED82
$M0200C048
$M0300E004
$M0400B005
$M0501A206
$M06959A01
$M0700E016
$M08001001
$M0901ED83
$M0A01ED87
$M0B01ED8E
$M0C01ED99
$M0D31821D
$M0E00E00F
$M0F00A015
$M1001ED92
$M1101ED94
$M1200A017
$M13018001
$M14002018
$M15070A01
$M16028201
$M17070A10
$M18068A11
$M1900E01A
$M1A00B01B
$M1B01A21C
$M1C619A1F
$M1D19881E
$M1E01981F
$M1F01A215
1.接口概述
它是一个高速智能接口,可以混接各种磁盘、光盘、磁带机、打印机、扫描仪、条码阅读器以及通信设备。
一般分为并行I/O标准接口、串行I/O标准接口两种。
2.各类接口功能,工作原理,怎样与主机连接,怎样与外设连接
串行接口:
是一种可以将接收来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接收的串行数据流变换为并行的数据字符供给CPU的器件,完成这种功能的的电路称为串行接口电路。
并行接口:
是在多根数据线上,数据以字节或字为单位与输入/输出设备或控制对象传送信息的。
与此相对的串行接口是在一根数据线上以1位数据位为单位与I/O设备或通信设备传送信息。
实际应用中,凡是在CPU与外设之间同时需要两位以上信息传送时,主要采用并行接口,并行接口适用于近距离、高速度的场合。
三、总体设计
部件实验过程中,各部件单元的控制信号是人为模拟产生的,而本次实验将能在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能,这里,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
本实验采用六条机器指令:
IN,OUT,STA,加ADD,减SUB,循环左移RLC其指格式如下:
地址 内容 助记符 说明
00 00 IN ;输入开关数据→R0,采集数据
01 10 ADD[0AH] ;R0+[0AH]→R0
02 0A ;地址
03 20 STA[0BH] ; R0→[0BH]
04 0B ;地址
05 30 OUT[0BH] ;[0BH] →BUS,输出显示
06 0B ;地址
07 40 SUB[0AH] ;R0-[0AH] →R0
08 0A ;地址
09 50 RLC
0A 01
0B
为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,还必须设计三个控制台操作微程序.
存储器读操作:
拨动总清开关CLR后,控制台开关SWB,SWA为”00”时,按START微动开关,可对RAM连续手动读操作.
存储器写操作:
拨动总清开关CLR后,控制台开关SWBSWA置为”01”时,按START微动开关可对RAM进行连续手动写入.
启动程序:
拨动总清开关CLR后,控制台开关SWBSWA置为“11”时,按START微动开关,既可转入到第01号“取址”微指令,启动程序运行.
上述三条控制台指令用两个开关SWBSWA的状态来设置,其定义如下
表1读写变化
SWB
SWA
控制台指令
0
0
1
0
1
1
读内存(KRD)
写内存(KWE)
启动程序(RP)
根据以上要素设计数据通路框图:
微代码定义如表所示:
表微代码的定义
微程序
24
23
22
21
20-
19
18
17
16
15
14
13
控制信号
S3
S2
S1
S0
M
CN
RD
M17
M16
A
12
11
10
9
8
7
6
5
4
3
2
1
B
P
uA5
uA4
uA3
uA2
uA1
uA0
表A,B,P字段内容
A字段B字段P字段
15
14
13
控制信号
12
11
10
控制信号
9
8
7
控制信号
0
0
0
.0
0
0
0
0
0
0
0
1
LDRI
0
0
1
RS_G
0
0
1
P1
0
1
0
LDDR1
0
1
0
0
1
0
0
1
1
LDDR2
0
1
1
0
1
1
1
0
0
LDIR
1
0
0
1
0
0
P4
1
0
1
LOAD
1
0
1
ALU_G
1
0
1
1
1
0
LDAR
1
1
0
PC_G
1
1
0
LDPC
当拟定“取指令”微指令时,该微指令的判别测试字段为P1测试。
由于“取指”微指令是所有微程序都使用的公用微指令,因此P1测试结果出现多路分支。
本次课程设计用指令寄存器的前4位(I7-I4)作为测试条件,出现6路分支,占用6个固定微地址单元。
控制台操作为P4测试,它以控制台开关SWB,SWA作为测试条件,出现了3路分支,占用3个固定微地址单元。
当分支微地址单元固定后,剩下的其他地方就可以一条微指令占用控存一个微地址单元随意填写。
模型计算机微程序流程图
二进制微代码表
微地址
S3~CN
RD
M17M16
A
B
P
uA5~uA0
00
000000
0
11
000
000
100
010000
01
000000
0
11
110
110
110
000010
02
000000
0
01
100
000
001
001000
03
000000
0
01
110
000
000
000100
04
000000
0
01
011
000
000
000101
05
000000
0
11
010
001
000
000110
06
100101
0
11
001
101
000
000001
07
000000
0
01
110
000
000
010110
10
000000
0
00
001
000
000
000001
11
000000
0
11
110
110
110
000011
12
000000
0
11
110
110
110
000111
13
000000
0
11
110
110
110
001110
14
000000
0
11
110
110
110
011001
15
001100
0
11
000
001
000
011101
16
000000
0
01
110
000
000
001111
17
000000
0