APP下载

8位模型机的设计与实现

2011-03-16谭小兰陈华光

关键词:累加器指令部件

谭小兰 ,陈 多,陈华光

(湖南工程学院计算机与通信学院,湘潭 411101)

8位模型机的设计与实现

谭小兰 ,陈 多,陈华光

(湖南工程学院计算机与通信学院,湘潭 411101)

为了帮助学生理解计算机组成原理整机实验教学内容,我们设计了一种8位模型机,并用VHDL实现它.它具有模块化、开放性和经济实用的特点,学生通过使用QuartusII可以调试模型机并观察模型机内部信息流动的过程,从而便于学生理解计算机的工作原理.学生反映通过调试模型机后,觉得计算机组成原理整机实验不再抽象难懂.

模型机;设计与实现;VHDL

0 引 言

计算机组成原理是计算机科学专业的一门重要的专业基础课,内容包括计算机部件和整机的组成与工作原理.由于课程的专业性很强、概念繁杂抽象,计算机组成原理实验的难度很大,特别在整机实验教学中,学生很难理解教学内容.因此为了帮助学生理解计算机整机的工作原理,我们设计了一种8位模型机,让学生从设计角度来理解计算机的结构与工作原理.

1 8位模型机的设计

1.1 8位模型机的逻辑结构与数据通路

8位模型机主要由运算器ALU、控制器、地址寄存器AR、数据寄存器DR、指令寄存器IR、存储器RAM、程序计数器PC和累加器A八大部件组成,这八大部件是通过总线连结起来的,它们的逻辑结构和数据通路如图1所示.控制器是整个模型机的中心,由它来控制计算机指令的执行.模型机执行指令的具体过程为:首先控制器从指令寄存器取得指令,编译指令,再输出微控制信号,控制ALU的运算,PC加1,并且从RAM 中取出数据运算,运算后再把结果通过数据总线存到RAM,再从指令寄存器读取下一条指令,依次循环.

图1 8位模型机的逻辑结构与数据通路

1.2 指令系统与寻址方式

指令系统是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,而且直接影响到系统软件,影响到机器的适用范围.为了便于教学,使学生易于理解其工作原理,模型机采用了8位字长指令,每条指令的低4位用于保存立即数或存储单元等操作数,高4位用于保存指令操作码,模型机的指令格式如图2所示.模型机指令系统包括数据传送类指令、算术逻辑运算类指令、转移类指令、停机指令4类指令,共10条指令.每条指令的助记符、指令格式、机器码和指令功能如表1所示.

图2 8位模型机的指令格式

寻址方式就是寻找操作数或操作数地址的方式,它也是影响计算机性能的一个重要因素.由文献[2]可知直接寻址和立即寻址在现代程序中占绝对多数,是现代RICS计算机倡导的主要寻址方式.而且,这两种方式的指令执行流程比较简单,可以简化模型机的设计与实现.同时,学生掌握了这两种寻址方式后,要掌握其它类型的寻址方式(间接寻址等)就比较容易了.又由于我们设计模型机的主要目的是为了使学生掌握计算机的工作原理及指令在计算机中执行的流程,而不是真正要实现一台计算机产品,所以我们只在模型机中实现这两种寻址方式.

表1 8位模型机的指令系统

1.3 指令执行流程

设计好了模型机的逻辑结构、数据通路和指令系统后,我们就可以对指令系统中每一条指令的执行流程进行设计了.我们由文献[2]可知,计算机每条指令的执行过程可以分为取指令、指令译码、取操作数和执行指令四个阶段.在每个阶段控制器会调用不同部件来完成每个阶段的功能,如取指令阶段的主要功能是把要运行的指令从存储器中取到译码器中,在这一个过程中主要用到了程序计数器PC、地址寄存器AR、数据寄存器DR、存储器RAM 和指令寄存器IR等部件.指令译码阶段则主要是对所要执行的指令进行译码以产生相应指令的控制信号,主要用到了指令寄存器IR和控制器.取操作数阶段则是把指令运算的操作数取到运算器中,主要用到了地址寄存器AR、数据寄存器DR和存储器RAM等,执行指令阶段则执行指令所规定的功能,如算术运算、转移或停机等功能.根据前面的设计好的数据通路和指令系统,我们设计了模型机的指令执行流程如图3所示.

图3 8位模型机的指令执行流程

2 8位模型机的VHDL实现

VHDL是一种被美国国防部和IEEE确定为标准的硬件描述语言,它支持模块化设计,在基于FPGA和ASIC的数位系统设计中有着广泛的应用.为了实现模型机,我们把图1中的每一个部件用一个VHDL文件来实现它.在每一个VHDL文件中,我们在entity结构中定义部件的接口(端口接口),在architecture部分定义部件的功能.而模型机则由一个顶层模块VHDL文件来定义,在顶层模块中调用已定义好的八大部件模块,并通过端口映射从而使这八大部件组合成一个模型机.下面以累加器A为例介绍模型机部件的实现.累加器A的实现如图4所示:

图4 累加器A的实现

我们在entity accumulator的port部分定义累加器的端口.clk为时钟输入信号线,en-D为累加器选择线,ld为选择从数据总线装入累加器控制线,selAlu为ALU输入累加器控制线,reset为复位线,aluD接ALU数据线,dbus接数据总线,q为输出线.累加器A的功能则是由architecture部分来实现的.累加器主要功能是运算器做运算时为运算器的一个输入端和运算器运算完成以后用于保存运算结果.由图4可知它主要通过AluD、q与运算器ALU连接起来.通过dBus与ram连接起来.

其它七大部件和顶层模型机的实现方法类似,在这里就不再详述了.

3 8位模型机在QuartusII中仿真

QuartusII是Altera公司生产的专门针对他们公司生产的FPGA和CPLD的开发软件.为了验证模型机的功能,我们用模型机的指令系统编写了一段计算10H+08H和的简单程序.程序如表2所示,然后在Quartus II中对模型机进行仿真.仿真结果如图5所示

表2 计算10H+08H的模型机器程序

图5 8位模型机仿真结果图

从图5可以看出,把程序输入到存储单元以后,从clk输入时钟信号,同时从reset输入复位信息以后,模型机首先执行07号存储单元的指令,然后依次执行08号、09号存储单元的指令,最后执行0A号存储单元停机指令并停机.

4 结束语

本文介绍了8位模型计算机的设计与VHDL的实现.采用了参数化和层次化的设计方法,使得设计易于修改,能够让学生通过修改与扩展指令系统的指令而参与设计、从设计的角度深入理解计算机的内部结构和工作原理,适合现代教学原则.通过近二年教学实践,学生反映通过调试8位模型机后,觉得计算机组成原理整机实验不再抽象难懂了.当然8位模型机还有许多不完善的地方,如模型机指令数偏少,不支持流水线工作方式等,我们将在下一个版本中克服这些弱点.

[1]陈华光.计算机组成原理(第2版)[M].北京:机械工业出版社,2004.

[2]D.A.Patterson and J.L.Hennessy.Computer organization and design:the hardware/software in terface[M].New York:Morgan Kaufmann Pub,2006.

[3]张宇华,周 莹.计算机组成原理综合性、设计性实验的开发与实现[J].现代计算机,2004,(9):98-100.

The Design and Realization for 8-bit Model Computer

TAN Xiao-lan,CHEN Duo,CHEN Hua-guang
(College of Computer and Communication,Hunan Institute of Engineering,Xiangtan 411101,China)

In order to assist students with understanding the experiment content of complete computer in computer organization and architecture class,an 8-bit model computer is designed and realized with VHDL.It has the characteristics of modularization,opening and practicality.Students can debug the model computer and observe the information flow in the instruction process through Quartus II,which can assist students to understand the operational principle of computer.Students feel that the experiment of complete computer in computer organization and architecture is no longer difficult to understand after debugging the model computer.

model computer;design and realization;VHDL

TP303

A

1671-119X(2011)01-0071-03

2010-06-10

谭小兰(1973-),女,实验师,研究方向:计算机网络.

猜你喜欢

累加器指令部件
密码累加器研究进展及应用
ARINC661显控指令快速验证方法
基于Siemens NX和Sinumerik的铣头部件再制造
Fpga的信号发生器设计原理
部件拆分与对外汉字部件教学
基于霍夫变换的工位点识别算法设计与实现
杀毒软件中指令虚拟机的脆弱性分析
水轮机过流部件改造与节能增效
用于时间延迟积分型图像传感器的流水采样列级运放共享累加器*
中断与跳转操作对指令串的影响