简化CPU模型中微指令的分析和设计方法
王道计组第五章中央处理器思维导图脑图
处理取指周期、间址周期、中断周期的微指令序列通常是公用的。执行周期的微 指令序列各不相同
工作原理
取指周期的微指令序列固定从#0 开始存放。执行周期的微指令序列的存放根据指 令操作码确定
程序vs微程序﹔指令vs微指令;主存储器vs控制器存储器(CM);MAR vs CMAR;MDR vsCMDR;PCvs uPC;lR vs ulR
1.后一相关指令暂停一周期 2.资源重复配置:数据存储器+指令存储器
解决办法
1.结构因素(资源冲突)
数据相关指在一个程序中,存在必须等前一条指令执行完才能执行后一条指令的 情况,则这两条指令即为数据相关
1.把遇到数据相关的指令及其后续指令都暂停一至几个时钟周期,直到数据相关 问题消失后再继续执行。可分为硬件阻塞(stall)和软件插入“NOP”两种方法。
取指周期
将MAR所指主存中的内容经数据总线送入MDR,记做M(MAR)→MDR
将MDR中的内容(此时是指令)送入IR,记做:(MDR)→IR
CU发出控制信号,形成下一条指令地址,记做(PC)+1→PC
垂直型微指令
微指令的格式
优点:微指令短,简单,规整,便于编写微程序
缺点:微程序长,执行速度慢,工作效率低
在垂直型基础上增加一些不太复杂的并行操作 微指令较短,仍便于编写;微程序也不长,执行速度加快
CPU-与简单模型机设计实验
评语: 课中检查完成的题号及题数:课后完成的题号与题数:成绩: 自评成绩: 85实验报告实验名称:CPU 与简单模型机设计实验日期:2015.11.17 班级: 2 学号:13 姓名:周小多一、实验目的:1. 掌握一个简单CPU 的组成原理。
2. 在掌握部件单元电路的基础上,进一步将其构造一台基本模型计算机。
3. 为其定义五条机器指令,编写相应的微程序,并上机调试掌握整机概念。
二、实验内容:1.要实现一个简单的CPU,并且在此CPU 的基础上,继续构建一个简单的模型计算机。
CPU 由运算器(ALU)、微程序控制器(MC)、通用寄存器(R0),指令寄存器(IR)、程序计数器(PC)和地址寄存器(AR)组成,如图2-1-1 所示。
这个CPU 在写入相应的微指令后,就具备了执行机器指令的功能,但是机器指令一般存放在主存当中,CPU 必须和主存挂接后,才有实际的意义,所以还需要在该CPU 的基础上增加一个主存和基本的输入输出部件,以构成一个简单的模型计算机。
2.本模型机和前面微程序控制器实验相比,新增加一条跳转指令JMP,共有五条指令:IN(输入)、ADD(二进制加法)、OUT(输出)、JMP(无条件转移),HLT(停机),其指令格式如下(高4位为操作码):助记符机器指令码说明IN 0010 0000 IN→R0ADD 0000 0000 R0 + R0→R0OUT 0011 0000 R0→OUTJMP addr 1100 0000 addr→ PCHLT 0101 0000 停机3. 设计一段机器程序,要求从IN 单元读入一个数据,存于R0,将R0 和自身相加,结果存于R0,再将R0 的值送OUT 单元显示。
根据要求可以得到如下程序,地址和内容均为二进制数。
地址内容助记符说明00000000 00100000 ; START: IN R0 从IN 单元读入数据送R000000001 00000000 ; ADD R0,R0R0 和自身相加,结果送R000000010 00110000 ; OUT R0R0 的值送OUT 单元显示00000011 11100000 ; JMP START跳转至00H 地址00000100 0000000000000101 01010000 ; HLT停机三、项目要求及分析:1. 试修改现有的指令系统,将加法指令的功能修改为R0的内容和某个存储单元的内容相加;增加存数、取数和减法三条机器指令,指令助记符分别为STA、LAD 和SUB,指令操作码分别为十六进制的60、70和80。
简单模型机的微程序设计
微指令000001001110000000001010
执行的操作是:存储器CE有效,存储器读,LDAR,转微地址:0A
微指令000001001010000000001011
执行的操作是:存储器CE有效,存储器读,LDDR1,转微地址:0B
微指令000001110000101000000001
执行的操作是:算术:A,数码管LEDB有效,写LED,ALU→B,转微地址:01
异或指令XOR RD,RS:(RS)异或(RD)→(RD)
四.进度安排
共1.5周11天的时间,具体安排如下:
1~2天:对整个课程设计的内容做详细的讲解,并辅导学生完成课程设计指导书的学习,使其掌握和理解课程设计的核心内容;
3 ~5天:学生在机房学习熟悉课程设计所使用的仿真软件,并深入了解该仿真软件所实现 的模型机的指令系统(原有的5条指令)和微程序设计方法;
6~9天:在原有5条机器指令的基础上增加实现下述各功能的机器指令,试设计相应的机器指令的格式并改写原来的微程序使其可以运行所有的机器指令;
10~11天:根据自己设计的微程序系统写出相应的课程设计实验报告;
五.成绩评定
六.正文
一、模型机的CPU及系统硬件
基本模型机的CPU及系统硬件组成如图1所示
图1 模型机的CPU及系统硬件组成
课程设计报告
《简化CPU设计》-
电子科技大学通信学院简化CPU设计2013年9月一、课程设计要求1.设计16位精简指令集CPU指令系统;2.完成精简指令集CPU的结构设计和所有模块的代码编写,并仿真验证;3.编写能够完成加法器﹑流水灯等功能的汇编程序,并翻译成二进制机器码;4.设计CPU外围模块如分频器,存储器和IO接口,并在软件平台上仿真CPU执行程序的完整过程;5.下载工程到FPGA芯片,在硬件资源上实现。
二、设计思路1、CPU指令集系统设计本课程设计所设计的RISC_CPU指令长度为16位,能够处理16位数据,指令中需要操作符,寄存器地址和立即数等字段。
完成立即数数据载入操作需要如下指令:mil:将立即数放在低8位mih:将立即数放在高8位因为一条指令无法载入完整16比特立即数数据,设计指令格式中用于存放立即数的字段为8bits,将16bits数据传递到通用寄存器需要2条指令,“mil R1,I(低8位)”将立即数I 的低8位传递给通用寄存器R1,“mih R1,I(高8位)”将立即数I的高8位传递给通用寄存器R1。
完成存储器或I/O数据载入与存储的操作需要如下指令:lda:载入指定地址数据sta:储存数据到指定地址inp:从端口输入oup:输出到端口因为存储器中有些地址的数据可能是有工程意义的,对这些地址上的数据的处理是必不可少的。
“lda Rd Rs”将通用寄存器Rs的数据作为指定地址,将存储器中该地址上的数据载入到通用寄存器Rd中,“sta Rd Rs”将通用寄存器Rd的数据作为指定地址,将通用寄存器Rs的数据储存到存储器该地址上。
完成通用寄存器阵列内数据运算操作需要如下指令:and:寄存器数据与操作orr:寄存器数据或操作not:寄存器数据非操作shl:左移shr:右移add:寄存器数据相加sub:寄存器数据相减mul:寄存器数据相乘cmp:寄存器数据相比较这些是本CPU设计能够完成的数据处理操作,有3点需要注意:1、所有操作的数据必须储存于通用寄存器中2、乘法运算只能进行8比特数据相乘,溢出则取其低8位数据相乘3、cmp指令的结果会影响标志位,该标志位可作为分支操作的条件,但执行cmp指令之前建议先清除相关标志位。
计算机体系结构实验CPU设计与指令集实现
计算机体系结构实验CPU设计与指令集实现在计算机科学领域中,计算机体系结构是指计算机硬件和软件之间的接口规范,决定了计算机的性能和功能。
CPU作为计算机体系结构的核心组件之一,负责执行计算机指令和处理数据。
本文将介绍计算机体系结构实验中CPU的设计与指令集的实现。
一、CPU设计CPU设计是计算机体系结构实验的重要内容之一,它包括了处理器的内部结构、寄存器的设计和控制逻辑的实现等多个方面。
1. 内部结构CPU的内部结构一般包括运算器(ALU)、控制器、寄存器组和数据通路等部件。
其中,运算器负责进行算术和逻辑运算,控制器负责解码指令和控制CPU的操作,寄存器组用于存储临时数据和结果,数据通路则负责将数据在各个部件之间传递。
在CPU设计过程中,需要根据实验要求和设计目标,合理选择这些部件的结构和功能,并进行适当的组合和优化。
2. 寄存器设计寄存器是CPU中用于存储和操作数据的重要部件,常见的寄存器有通用寄存器、程序计数器(PC)、指令寄存器(IR)等。
在CPU设计中,需要确定寄存器的位数和数量,并根据需求设计合适的读写接口。
同时,寄存器的位宽和数量也决定了CPU的数据处理能力和存储容量。
3. 控制逻辑实现控制逻辑是CPU中决定指令执行流程和控制信号传递的关键部分。
它通过解码指令,生成相应的控制信号,控制数据通路的运行和寄存器的读写。
在CPU设计中,需要实现与指令集对应的控制逻辑,并确保指令的执行顺序和操作正确无误。
二、指令集实现指令集是计算机体系结构中的重要组成部分,它决定了计算机的操作方式和可执行的指令。
在计算机体系结构实验中,实现一个类似于RISC指令集的简化指令集是常见的任务。
1. 指令格式指令格式是指令在计算机中的二进制表示形式,通常由操作码(Opcode)、寄存器编号和立即数等字段组成。
在指令集实现中,需要确定指令格式的结构和位数,并考虑操作码和操作数的编码方式,以便正确解码和执行指令。
2. 指令执行指令执行是指计算机按照指令进行相应的操作,包括算术运算、逻辑运算、存储器读写等。
cpu组成与机器指令的执行 微程序控制器方法
cpu组成与机器指令的执行微程序控制器方法摘要:1.微程序控制器的概念和作用2.机器指令与微指令的关系3.构建基于微程序控制的CPU模型4.执行简单程序,理解机器指令与微指令的执行过程5.总结与展望正文:一、微程序控制器的概念和作用微程序控制器是计算机系统中的一种重要组成部分,它负责解析和执行机器指令。
通过将一条机器指令编写成一段微程序,微程序控制器能够实现对计算机系统的精确控制。
微程序包含若干条微指令,每一条微指令对应一条或多条微操作。
在有微程序的系统中,CPU内部有一个控制存储器,用于存放各种机器指令对应的微程序段。
当CPU执行机器指令时,会在控制存储器里寻找与该机器指令对应的微程序,取出相应的微指令来控制执行各个微操作,从而完成该程序语句的功能。
二、机器指令与微指令的关系机器指令是计算机能够直接执行的指令,它们是计算机程序的基本构成单位。
而微指令是微程序控制器的指令,它们之间是一一对应的关系。
每条机器指令都对应一个唯一的微程序,而每个微程序由若干条微指令组成。
通过执行微指令,我们可以实现对计算机系统的底层控制,从而完成机器指令所规定的功能。
三、构建基于微程序控制的CPU模型要构建一个基于微程序控制的CPU模型,我们需要掌握以下几个步骤:1.设计微程序控制器:微程序控制器是整个系统的核心,它负责解析和执行机器指令。
我们需要设计一个能够正确解析和执行机器指令的微程序控制器。
2.编写微程序:针对每条机器指令,我们需要编写相应的微程序。
微程序需要根据机器指令的操作码和操作数来确定微操作的执行顺序和方式。
3.实现数据通路:数据通路是计算机系统中用于传输数据的通道,它包括寄存器、内存和输入/输出设备等。
我们需要确保微程序能够正确地读取和写入数据通路中的数据。
四、执行简单程序,理解机器指令与微指令的执行过程为了更好地理解机器指令与微指令的执行过程,我们可以编写一个简单的程序,并通过微程序控制器来执行。
以下是一个简单的例子:1.编写机器指令:```ADD R0, [R1]MOV [R0], R2```2.编写微程序:```微程序1:IN R0, IOL(将I/O输入的数据存入R0)IN R1, IOL(将I/O输入的数据存入R1)ADD R0, R1(将R0和R1的数据相加)STA [R0], R0(将结果存入R0指向的内存单元)微程序2:IN R0, IOL(将I/O输入的数据存入R0)MOV [R0], R2(将R2的数据存入R0指向的内存单元)```3.执行程序:通过微程序控制器,我们可以依次执行微程序1和微程序2。
电子科技大学CPU设计:精简指令集(RISC)32位单周期cpu设计
精简指令集(RISC)32位单周期cpu设计电气513摘要:该作品为一个精简指令集的32位单周期cpu,具有18条基本的指令,可以实现数据的存取、运算等基本功能。
测试程序执行过程中,CPU各部件的具体数据可以显示到FPGA的数码管上。
目录1.CPU的整体电路设计;2.CPU的指令格式;3.基本功能部件的设计;4.主要功能部件的设计;5.CPU的封装;6.FPGA测试。
1.CPU的整体电路设计CPU主要组成部分有:运算器(ALU)、控制器(Control Unit)、寄存器堆(Register Files)、取指电路及相关基础部件(如选择器)等构成。
下图为cpu的电路图。
CPU的电路包括数据路径(Data path)和控制部件(Control Unit)两大部分。
下面介绍路径的设计。
1.1 下一条指令地址的选择下一条指令的地址有3种情况:1.程序不转移时下一条指令的地址为PC+4;2.执行beq和bne指令发生转移时,下一条指令的地址是PC加4,再加上符号扩展的偏移量左移2位的和;3.执行j指令时转移的目标地址是指令中的低26位地址左移2位,再与PC+4的高4位拼接在一起。
下一条指令地址的产生和选择电路如图所示。
图中控制器(Control Unit)根据op、func和zero(对于beq和bne指令)信号产生相应的转移控制选择信号pcsource。
1.2 ALU的输入端ALU的输入端有2个:A输入端和B输入端。
A、B输入端分别有2种输入情况。
对于A输入端,有寄存器堆的A_data和移位数sa输入。
对于B输入端,有寄存器堆的B_data和符号扩展后的立即数imm输入。
其输入数据路径如图所示。
ALU的A、B端具体输入哪路数据由控制器(Control Unit)根据指令译码产生控制信号shift和aluimm 来选择。
1.3寄存器堆的输入端寄存器堆的A_addr和B_addr的输入来自指令,分别只有一种输入,W_addr有2种,而Data有4种输入。
计算机原理与汇编微 程序
微程序:微指令序列,完成一条机器指令 功能。一段微程序 一条机器命令。 控制存储器CM:特殊ROM,存放微程序, 核心部件 微指令的组成:
{
微操作控制字段:微 命令对应功能 微地址字段:下条微 指令地址
模型机节拍宽度:访内操作所需时间(最长微 操作所需的时间)
节拍发生器:T=0,继续发T+1,否则T恢复0
(3)工作脉冲 同步定时脉冲:在模型机 T 中每个节拍末尾给一个工 作脉冲P,作为各种同步脉 P 冲来源
打入R 下 一 个T开始
二、指令流程与微操作时间表
拟定指令流程通常有两种方式
以工作周期为线索,拟定各类指令在本工作周 期操作流程—易于优化
8、堆栈压入与弹出指令
P121 图 4 — 16图 4 — 17
9、中断响应周期IC 10、DMAC — DMA传送周期
11、键盘操作
复位信号,PC 0,转OS入口
系统命令, PC
n,转系统程序首址
三、微命令综合
微命令的逻辑表达式: PC IB=FC • T0+MOV •(R+ [RBI]) •SC•T1+MOV [RBI] • DC • T0+…. CPMAR= FC • T0 • P +MOV •R•SC •T1 •P+ MOV [RBI] • DC • T0+…. T+1= FC • T0 +MOV •SC •T0 +MOV •R•SC •T1 +…..
(5)MAR和MDR及控制信息CPMAR,
3CPU-6设计模型机.解答
双操作数指令格式:
4
3
3
3
3
操作码 寄存器号 寻址方式 寄存器号 寻址方式
目的地址
单操作数指令格式:
4
6
操作码 (可扩展)
源地址
3
3
寄存器号 寻址方式
转移指令格式: 15 12 11 9 8
目的地址
6 5432 1 0
操作码 寄存器号 寻址方式 方式 N′Z′V′C′
3.7.3 组合逻辑控制器设计
1.时序系统
(1)工作周期
取指周期FT 源周期ST 目的周期DT 执行周期ET 中断周期IT DMA周期DMAT
用于指令正常执行 用于I/O传送控制
设置6个触发器分别 1 工作周期开始 作为各周期状态标志 0 工作周期结束 在整个指令周期中,任何时候必须、且只能有一
个工作周期状态标志为“1”。
内总线
移位器
R0
ALU
R1
AB DB CB
MAR
MDR
M I/O
A
B
R2
R3
R0~R3 R0~R3
C
CD CD
SP PC PSW MDR D
与系统总线 的连接通过 MDR MAR、MDR实现。
IR
PC
控制
逻辑
SP
PSW
从内总线输入(打入) 输入 从DB输入 (置入)
输出
输出至DB 输出至ALU的B门
R0~R3 R0~R3
C
CD CD
IR
PC
控制
逻辑
SP
SP PC PSW MDR D
PSW
3)转移地址
寄存器寻址:R0 B ALU 移 内 打入 PC
处理器(CPU)设计
第5章 处理器(CPU)设计5.1 CPU的结构5.1.1 CPU的功能CPU:中央处理器指令控制—— 程序的顺序控制操作控制—— 指令的操作信号时间控制—— 操作信号的时序数据加工—— 数据处理,CPU的根本任务 中断处理 —— 相应中断(异常)其它处理 —— 相应DMA、RESET等5.1.2 构成CPU的主要部件1.CPU的基本组成�控制器:协调和处理计算机系统的操作 ---- 控制部件�运算器:数据处理---- 执行部件�通用寄存器组�(cache高速缓存、内部总线、总线接口、中断系统、浮点运算器……)2.CPU中的主要寄存器�DR 数据缓冲寄存器�IR 指令寄存器�PC程序计数器�AR 地址寄存器�AC 累加寄存器(AX、BX、CX、DX、…)�PSW状态寄存器3.CPU的数据通路•概念数据通路是指数据在CPU各功能部件之间传送的路径。
�描述信息从什么地方出发,中间经过什么部件,最后传送到哪个部件�实现CPU内部各功能部件间(运算器、寄存器、控制器等)的数据传递•基本结构�总线结构�专用数据通路5.3 CPU执行指令的过程5.3.1 指令时序1、指令执行的基本过程•取指、执行•取指、取操作数、执行•取指、取操作数、执行、写结果2、时序系统�时序系统的作用将各种控制信号严格定时,在时间上相互配合完成某一功能。
�时序信号通常划分为几级指令周期机器周期(CPU周期、总线周期)时钟周期(节拍周期)[ 时钟脉冲、节拍脉冲 ]3、时序控制方式�同步控制指令执行或指令中每个控制信号都由事先确定的统一的时序信号进行统一控制。
①定长的机器周期,定长的指令周期②定长的机器周期,变长的指令周期③变长的机器周期,变长的指令周期④折中方案� 异步控制当控制器发出某一操作控制信号后,等待执行部件完成操作后发回“回答”信号,再开始新的操作。
�没有统一的时钟对信号进行同步�每条指令的指令周期可由多少不等的机器周期数组成� 联合控制 同步控制和异步控制相结合的方式。
CPU与简单模型机设计实验
CPU与简单模型机设计实验
有指令准确无误。
⑤亦可重复①、②两步,完成对指令码的校验。
如果校验出指令码写入错误,重新写入、
校验,直至确认指令码的输入无误为止。
2) 联机写入和校验
联机软件提供了微程序和机器程序下载功能,以代替手动读写微程序和机器程序,但是微
程序和机器程序得以指定的格式写入到以TXT 为后缀的文件中,微程序和机器程序的格式如下:
本次实验程序如下,程序中分号‘;’为注释符,分号后面的内容在下载时将被忽略掉:
选择联机软件的“【转储】—【装载】”功能,在打开文件对话框中选择上面所保存的文件,
软件自动将机器程序和微程序写入指定单元。
选择联机软件的“【转储】—【刷新指令区】”可以读出下位机所有的机器指令和微指令,
并在指令区显示,对照文件检查微程序和机器程序
图5-1-5 实验接线图。
简述单总线结构cpu微程序控制器的设计方法
简述单总线结构cpu微程序控制器的设计方法单总线结构CPU微程序控制器的设计方法概述单总线结构CPU微程序控制器是一种常见的计算机体系结构,它采用微程序控制器来管理指令的执行。
在这种体系结构中,所有的指令都通过同一个总线传输,因此需要一个高效的控制器来管理指令的执行。
本文将详细介绍单总线结构CPU微程序控制器的设计方法。
设计步骤1. 确定指令集在设计单总线结构CPU微程序控制器之前,首先需要确定所支持的指令集。
不同的指令集对应着不同的操作码和操作数,因此需要根据实际需求来确定所支持的指令集。
一般来说,常见的指令集包括MIPS、ARM和x86等。
2. 制定微程序在确定了所支持的指令集之后,就需要制定相应的微程序。
微程序是一种特殊的代码,用于管理CPU执行各种操作。
在编写微程序时,需要考虑到各种情况下CPU要执行哪些操作以及如何进行转移等问题。
3. 设计控制器当微程序编写完成后,就可以开始设计控制器了。
在设计控制器时,需要考虑到以下几个方面:(1)指令译码:控制器需要对指令进行译码,将操作码和操作数解析出来。
(2)时序控制:控制器需要根据微程序的要求来控制CPU的时序,确保各个部件能够按照正确的时序进行工作。
(3)数据通路控制:控制器需要对数据通路进行控制,确保数据能够正确地在各个部件之间传输。
4. 实现设计当控制器设计完成后,就可以开始实现设计了。
在实现设计时,需要考虑到以下几个方面:(1)硬件实现:需要根据设计要求来选择相应的硬件器件,并将其连接起来。
(2)软件实现:需要编写相应的程序来支持微程序的执行,并将其烧录到ROM中。
5. 调试测试当实现设计完成后,就可以进行调试测试了。
在调试测试过程中,需要注意以下几个方面:(1)功能测试:需要对CPU的各项功能进行测试,并确保其能够正常工作。
(2)性能测试:需要对CPU的性能进行测试,并评估其性能是否达到预期要求。
(3)稳定性测试:需要对CPU的稳定性进行测试,并评估其是否具有足够的稳定性和可靠性。
CPU与简单模型机设计实验
CPU与简单模型机设计实验CPU(中央处理器)是计算机中的核心部件,负责执行指令和处理数据。
而简单模型机设计实验是指通过设计和实现一个简单的模型机,来体验计算机工作原理和计算机体系结构。
在这样一个实验中,我们可以从以下几个方面来详细讨论CPU与简单模型机设计实验。
1.CPU的基本组成CPU是由控制单元(CU)和算术逻辑单元(ALU)两个主要部分组成。
控制单元负责解析指令、获取数据和控制数据的流动,而算术逻辑单元则负责执行算术和逻辑运算。
在简单模型机设计实验中,我们需要设计和实现这两个组件,同时还需要考虑其他辅助组件,如寄存器和存储器等。
这些组件的设计和实现将直接影响CPU的性能和功能。
2.指令集架构设计CPU的指令集架构是指CPU所支持的指令集合和指令的格式。
指令集架构的设计需要考虑到计算机的功能需求、指令的执行效率以及编程的便利性等因素。
在简单模型机设计实验中,我们可以定义一些基本的指令,如加载数据、执行运算、存储数据等。
指令的编码格式可以采用二进制或者其他适合的方式。
通过设计和实现这些指令,我们可以模拟CPU对指令的解析和执行。
3.流水线设计流水线是指将CPU的指令和数据处理过程划分成若干个阶段,并同时在不同阶段处理多条指令。
流水线设计可以提高CPU的性能和效率。
在简单模型机设计实验中,我们可以考虑将指令执行过程划分为取指、解码、执行、访存和写回等阶段,并同时处理多条指令。
通过设计和实现这样的流水线,可以提高CPU的吞吐量和并行处理能力。
4.性能评估和优化在CPU和简单模型机设计实验中,我们可以进行性能评估和优化。
性能评估可以通过测量CPU的时钟周期、执行指令的速度和吞吐量等指标来进行。
而优化则可以通过改进指令设计、优化算法和增加硬件资源等方式来完成。
在简单模型机设计实验中,我们可以通过调整指令的执行顺序、使用更高效的算法和增加硬件资源来优化设计。
这些优化将直接影响CPU的性能和效率。
第3讲—简单模型机设计(微程序实现)解析
INPUT VCC
OUTPUT
PRN
CLRN inst1
DFF
D6 D Q
INPUT VCC
OUTPUT
PRN
Q6
CLRN inst3
DFF
D5 D Q
INPUT VCC
OUTPUT
PRN
Q5
CLRN inst4
DFF
D4 D
INPUT VCC
PRN
Q
OUTPUT
Q4
CLRN inst5
DFF
D3
操作码OP共4位,最多可定义16条指令。
寻址方式
当寻址方式位为0,是寄存器寻址,操作数在指定的寄存
器中,相应的寄存器号位为0是R0,为1是寄存器 R1; 当寻址方式位为1时,寻址方式位和寄存器号位组合,
10:是立即数寻址,操作数在指令的下一个单元; 11:是直接寻址,操作数地址在指令的下一个单元。
2、 确定总体结构
CPR0 CPR1 CPPC CPIR CPMAR
A B
R0
R1
RE
RAM
A-BUS D-BUS
RB MA RA PB
RD WR
三 态 门
C
图1
寄存器组的设置
R0、R1为通用寄存器,8位。 IR为指令寄存器,8位。 PC程序计数器,8位。 MAR为地址寄存器,8位。
送指令地址
PB
B直传
CPMAR
PC → 选择器B →∑ → Bus → MAR
指令计数器+1
PB
A加B加1 (A为0) cppc
PC → 选择器B → ∑→ Bus → PC
计算机组成原理课程设计(中央处理器--微程序控制器设计)
“计算机组成原理”课程设计报告微程序控制器的设计一、设计思路按照要求设计指令系统,该指令系统能够实现数据传送,进行加、减运算和无条件转移,具有累加器寻址、寄存器寻址、寄存器间接寻址、存储器直接寻址、立即数寻址等五种寻址方式。
从而可以想到如下指令: (1)24位控制位分别介绍如下:位控制位分别介绍如下: XRD XRD :: 外部设备读信号,当给出了外设的地址后,输出此信号,从指定外设读数据。
定外设读数据。
EMWR EMWR:: 程序存储器EM 写信号。
写信号。
EMRD EMRD:: 程序存储器EM 读信号。
读信号。
PCOE PCOE:: 将程序计数器PC 的值送到地址总线ABUS 上。
上。
EMEN EMEN:: 将程序存储器EM 与数据总线DBUS 接通,由EMWR 和EMRD 决定是将DBUS 数据写到EM 中,还是从EM 读出数据送到DBUS DBUS。
IREN IREN:: 将程序存储器EM 读出的数据打入指令寄存器IR 和微指令计数器uPC uPC。
EINT EINT:: 中断返回时清除中断响应和中断请求标志,便于下次中断。
中断返回时清除中断响应和中断请求标志,便于下次中断。
ELP ELP:: PC 打入允许,与指令寄存器的IR3IR3、、IR2位结合,控制程序跳转。
转。
MAREN MAREN:将数据总线:将数据总线DBUS 上数据打入地址寄存器MAR MAR。
MAROE MAROE:将地址寄存器:将地址寄存器MAR 的值送到地址总线ABUS 上。
上。
OUTEN OUTEN:将数据总线:将数据总线DBUS 上数据送到输出端口寄存器OUT 里。
里。
STEN STEN:: 将数据总线DBUS 上数据存入堆栈寄存器ST 中。
中。
RRD RRD:: 读寄存器组读寄存器组R0-R3R0-R3,寄存器,寄存器R?R?的选择由指令的最低两位决定。
的选择由指令的最低两位决定。
的选择由指令的最低两位决定。
实验六_CPU_微程序控制器实验
CPU__微程序控制器实验实验目的1.理解微程序控制器的控制原理2.进一步掌握指令流程和功能3.了解掌握微程序控制器的设计思路和方法实验原理微程序控制器的设计思想是由英国剑桥大学的威尔克斯(Wilkes)教授于1951年提出来的, 即将机器指令的操作(从取指令到执行)分解成若干个更基本的微操作序列, 并将有关的控制信号(微命令)按照一定的格式编成微指令, 存放到一个只读存储器中, 当机器运行时, 一条一条地读出这些微指令, 从而产生全机所需要的各种操作控制信号, 使相应部件执行所规定的操作。
微指令格式:N _µA 0N _µA 1N _µA 2N _µA 3N _µA 4P 0P 1P 2P C _i n cl j _i n s t r u c tc _z _j _f l a gl d _I Ro p _c o d e 0o p _c o d e 1o p _c o d e 2c h a n g e _zc h a n g e _cD R W rs e l _m e m d a t aM e m _W r i t e1234567891011121314151617181920D W _i n s t r u c t实验步骤(1)实验台设置成FPGA-CPU 独立调试模式, REGSEL=0、CLKSEL=1.FDSEL=0.使用实验台上的单脉冲, 即STEP_CLK 短路子短接, 短路子RUN_CLK 断开;(2)将设计在Quartus II 下输入, 编译后下载到TEC-CA 上的FPGA 中;(3)按复位键后, 拨动实验台上的开关SD5~SD0, 改变IR[15…12]、进位标志C 和结果为0标志Z, 观察指示灯R15~R0、A4~A0、A12~A8、A14和A15显示的信号, 追踪每条指令的执行过程并把相应数据填在表6-1中。
(4)观察每条指令的执行过程, 每个节拍进行的微操作和微操作控制信号。
简单模型机的微程序设计
《计算机组成原理课程设计》简单模型机的微程序设计学生姓名:学号:系别:班级:专业:指导教师:一. 课程设计的目的1.计算机的硬件基本组成2.计算机中机器指令的设计3.计算机中机器指令的执行过程4.微程序控制器的工作原理5.微指令的格式设计原则在此基础上设计可以运行一些基本机器指令的微程序的设计二. 课程设计的内容和要求1.通过使用作者开发的微程序分析和设计仿真软件,熟悉介绍的为基本模型机而设计的微程序的执行过程。
必须充分理解并正确解释下些问题:(1)微程序中的微指令的各个字段的作用。
哪些字段是不译码的,哪些字段是直接译码的,哪些字段又可以看成是字段间接编码的。
答:直接译码的是A、B、C字段;不译码的是S3~B0字段;而间接编码的是uA6~uA1。
(2)微程序中的微指令是否是顺序执行的,如果不是,那么次地址是如何产生的。
什么情况下,次地址字段才是将要执行的微指令的地址。
答:微程序中的微指令不是顺序执行的,如果遇到P(1)~P(4)测试时,则根据机械指令,uA5~uA其他有关部件的内容,产生下一条微指令在空存中的微地址,是微程序转入相应的微地址入口,从而实现微程序的顺序、分支、循环运行等。
例如遇到P(1)测试,则下一条微指令在空存中的微地址的4~1位是用次地址字段NA(4~1位)或指令寄存器IR(8~5位)所产生,下一条微指令的微地址仍为 NA字段的6~5位。
如果没有遇到P(1)~P(4)测试的话,那么次地址即为该微指令地址字段所指向的微地址。
(3)在微程序中如何根据机器指令中的相关位实现分支,据此,在设计机器指令时应如何避免和解决与其它指令的微指令的微地址冲突。
答:微程序中是根据测试程序的机器指令中的8~5位和微程序中后六位进行“或”运算来实现分支的。
避免和解决与其它指令的微指令的微地址冲突的方法就是不用已经被其它微指令用过的微地址。
(4)哪些微指令是执行所有指令都要用到的。
答:00:00000101111011011000000101:000001001100000001000000(5)解释一条机器指令的微程序的各条微指令的微地址是否连续?这些微指令的微地址的安排的严重原则是什么?答:不连续。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
( 安庆师范学院 计算机与信息学院 安徽 安庆 246011 )
摘 要 : 简化 CPU 模型中主要包括算逻单元 ALU, 程序计数器 PC, 指令寄存器 IR, 数据寄存器 DR, 地 址寄存器 AR 和指令译码器 , 这些部件对于微指令的执行起着至关重要的作用 , 而微指令流的顺序执行又 导致了指令的执行 , 因此微指令如何构成以及如何执行就成了程序运行的硬件基础 , 从这个意义上说 , 微 指令的分析与设计对于理解整个 CPU 的结构和功能至关重要。 关键词 : 指令 ; 控制器 ; 控制信号 ; 微指令 中图分类号 : TP391 文献标识码 : A 文章编号 : 1007- 4260 ( 2006 ) 01- 0073- 03
An Analysis and Programming of CPU Microinstructions
SONG Jing
( School of Computer and Information ,Anqing Teachers College,Anqing 246011,China)
Abstr act : A simplified CPU model consists of ALU,PC,IR,DR,AR and Instruction Decoder, which play an important role in the exexution of microinstructions, while several microinstructions make an instruction. As a result, a programme is based on the construction and execution of microinstructions. Therefore, the analysis and designming of microinstructions are very important to learn and understand the structure and function of CPU. Key wor ds : instruction;control unit;control signal;microinstruction
ALU 进行运算 , 那么很显然控制信号 1~ 3 都应该
是运算操作 , 而 4~ 根据前面的 12 则是数据传送。 分析, 可以很快得出( 下面的箭头都表示数据流 向) :
1、 + 2、 - 3、 M 4、 R1→A
图3
5、 R2→A 8、 R2→B
6、 R3→A 9、 R3→B
7、 R1→B
第1期
图1
例 1 CP U 逻辑框图
17 13 12 0 OP X 加法指令可写为“ , 其功能是 ADD X ( Ri) “
收稿日期 : 2005- 11- 29 作者简介 : 宋静( 1975-
) , 男 , 安徽安庆人 , 安庆师范学院计算机与信息学院讲师。研究方向是计算机体系结构与仿真。
2006 年 2 月
第 12 卷第 1 期
安庆师范学院学报 (
自然科学版 )
Feb.2006 Vol.12 No.1
J ourna l of Anqing Te a che rs Colle ge ( Na tura l S cie nce Edition )
简化 CPU 模型中微指令的分析和设计方法
1~ 12 表示的运算器操作的控制信号 , ( 2 ) 指出互斥性微操作 , ( 3 ) 设计适合此运算器的微指令格式 ( 下址
位长 10 位 ) 分析 : 要设计 , 首先要把图读懂。该运算器包 含 三 个 寄 存 器 R1 、 R2 和 R3 , 多路开关 送往两个锁 存 器 , 运算。 ( 1 ) 写出 12 个控制 信号 : 在上面 这个简化模 型中, 从 总 线 到 ALU 之 间 都 是 数 据 的 传 送 , 而 通过数据总线 ( BUS) 将 数 据 送 到 寄 存 器 ห้องสมุดไป่ตู้ 再 通 过 两 个 三 选 一 的 进 而 送 到 ALU 进 行
宋静 : 简化 CPU 模型中微指令的分析和设计方法
・ 75 ・
10 、 BUS→R1
11 、 BUS→R2
12 、 BUS→R3
( 2 ) 写出互斥性微操作 : 这里的微操作指的就是前述控制信号。针对这个问题来看 , ALU 的三种操 作 +、 -、 M 显然是不能同时进行的 , 因此它们是互斥的 ; 多路开关只能选通其中的一路 , 也就是三个寄存 因此 , 综合以上的分 器无法同时将数据打入锁存器 ; 而总线 BUS 也不能同时完成数据送往三个寄存器。 析 , 可以得到四组互斥微操作 : 第一组 : 1 、 2、 3 第二组 : 4 、 5、 6 第三组 : 7 、 8、 9 第四组 : 10 、 11 、 12
!"# 2 ! !"# 2 ! !"# 2 ! !"# 2 ! 00 1 4 7 10 10 2 5 8 11 11 3 6 9 12
!" 10 !
( 3 ) 设计微指令格式 : 微指令的格式包括两部分 : 控制信号和下址。前者表明该条微指令需发出并 执行几个微操作 , 后者指明该条微指令之后的微指令地址。题目已明确说明了下址 10 位 , 因此此题就 集中于控制信号的设计。 综合考虑三种方法以及此题的特点 , 决定采用字段直接编译法。 四组互斥微操作 , 分别用两位来表 示 , 具体见图 4 :
・ 74 ・
安庆师范学院学报 ( 自然科学版 )
2006 年
( AC0) +( ( Ri) +X) →AC1, 其 中 ( ( Ri) +X) 部 分 通 过 寻 址 方 式 指 向 数 据 存 储 器 DM。 现 取 Ri 为 R1 。 分 析 数据通路” 和相应的微操作控制信号。 ADD 指令的指令周期流程 , 写明“ 分析 : 该题中的加法指令“ 是一条隐含指令 , 其中一个操作数来自 AC0, 另一个操作数 ADD X( Ri) ” 在 DM 中 , 寻址方式是变址寻址 , 其地址由通用寄存器的内容 ( Ri) 加上指令格式中的偏移量 X 决定。另 外根据所学知识应该可判断出 IAR 是指令地址寄存器 , IDR 是指令缓冲寄存器 , DAR 是数据地址 寄存 器 , DDR 是数据缓冲寄存器 , 而 IM 和 DM 实际可看作是现代 CPU 中的高速缓存 Cache 。 那么接下来就要分析指令流程了 , 也就是微指令序 列。此加法指令的流程是 : 首先取指令 , 通过 PC 指出指 令 地 址 , 并 从 IM 读 指 令 进 入 IDR 和 IR ; 第 二 步 计 算 变 址寻址的操作数地址 , 将 ( Ri ) 和 X 送入 ALU 进行计算 , 并 将 该 地 址 送 入 AC1 暂 存 ; 第 三 步 读 取 该 操 作 数 , 将
计算机的核心部件 CPU 包含两大部分 , 运算器和控制器。在进行运 算时 , 控制 器给出相关 的微指 令 , 并发出控制信号给运算器 , 运算器相应的完成运算功能。若干条微指令按顺序执行可完成一条机器 指令的功能。 在此过程中 , 控制信号和微指令起着至关重要的作用。 下面通过一些简化的 CPU 模型来讨 论一下其分析和设计方法。 微指令流的分析 1、 在这里 , 分析问题的理论基础是控制器结构和指令执行过程。 控制器构成 有这样几个 重要寄存器 : 程序计数器 , 存储指令地 址 : 指令寄 存器 , 存放正 在 执 行 的 指 令 ; 指令译码器 ; 地址寄存器 , 存放数据地址 ; 数据寄存器。 指令执行过程大体上分为三步 : 取指令 , 分析指令和执行指令。 取指令阶段 : 首先当然从 PC 中读取 指令地址 , 接 着发出访存 命令 , 通过总 线将指令寄 存器 ; 分析指 令阶段没 有太多需要 解决的问题 ; 执 行 取操作数、 计算以及存数等 , 各种 指令阶段要根据各种不同指令具体分析 , 一般来说 , 有计算数据地址、 操作如何完成都要清楚掌握。比如计算数据地址 , 首先要将指令中提供的基址寄存器数据读入数据寄 存器 , 再将该数据和指令中 提供的地址 偏移量同时 送入 ALU( 算术 逻辑单元 ) 进 行加法运算 , 其结果送 入地址寄存器。这些步骤 务必清晰透 彻的掌握 , 否则微指令流分析无从进行。 例 1. 图 1 所 示 的 CPU 逻 辑 框 图 中 , 有 两 条 独立的总线和两个独立的存储器。已知指令存储 器 IM 最大容器为 16384 字 ( 字长 18 位 ) , 数据存 储器 DM 最大容器是 65536 字 ( 字 长 16 位 ) 。 各 寄存器均有“ 打入” ( Rin) “ 送出” ( Rout) 控制命令 , 但 图中未标出。 ( 清华大学考研模拟题 ) 设计器指令格式为
[参考文献 ]
[1] [2] [3] [4] William Stallings.Computer Organization and Architecture- Designing for Performance ( fourth edition ) [M].Prentive Hall,1996.
白中英 , 等 . 计算机组成原理题解、 题库、 实验 ( 第三版 ) [M]. 科学出版社 , 2001. 王爱英 . 计算机组成与结构 ( 第三版 ) [M] . 清华大学出版社 , 2001. 杨晨宜 . 计算机组成与结构 [M]. 东南大学出版社 , 2005.
AC1 的地址送往 DAR , 并根据该地址将操作数通过 DM
读入 DDR ; 第四步 完成加法运 算 , 两个操 作 数 都 已 准 备 好 , 直接送到 ALU 相加 , 并将结果暂存入 AC1 。 综上所述 , 可给出指令流程如图 2 : 微指令格式的设计 2、 设计的关健是有两个 : 一是互斥控制信号的辨别 , 二是采用什么样的控制字段编译方法。 控制信号指的就是控制器发出的指示计算机各部 件执行动作的电信号。一般来说 , 控制信号无非两种形 式 , 一种指示数据传送方向 , 另一种指示执行的操作。 前 一种直接用数据传送的源端和目的端 , 中间加上箭头表 示即可。后一种例如运算器的运算类型。而互斥控制信 号就是不能同时存在的控制信号 , 例如运算器同时只能 进行一种运算。 控制信号格式的设计有三种 : 图 2 指令流程图 ( a ) 直接控制法 , 即一位表示一个控制信号。 这种方法简 单明了 , 但缺点是微指令太长 , 执行效率低 , 因此很少采用。 ( b ) 字段直接编译法 , 将一组互斥信号编为一组 , 用若干位二进制来表示。这种方法可以 大幅缩短微 指 令的长度 , 具有很高的效率 , 但只能用于互斥控制信号。 ( c ) 字段间接编译法 , 在前者的基础上进一步缩短指令长度的方法 , 但给微指令的译码造成困难。 例 2. 图 3 所示为 某运算器简 化结构图 , 具 有 +( 加 ) 、 - ( 减) 、 M( 数据 传送 ) 三种操 作。 ( 1 ) 写 出 图 中