微程序控制器综合设计
微程序控制器的设计与实现
微程序控制器的设计与实现一、引言微程序控制器是一种用于指令执行的高级控制器,它通过微指令序列来控制计算机的操作。
本文将介绍微程序控制器的设计与实现方法,包括微程序的设计原理、控制存储器的组织结构、微指令的编码和执行过程等。
二、微程序设计原理微程序设计是一种将指令的操作码映射为一系列微指令的方法。
每个微指令对应着计算机的一条基本操作,例如存储器读取、算术运算等。
微指令序列通过微程序计数器来控制,实现指令的顺序执行。
三、控制存储器的组织结构控制存储器是存储微指令序列的重要组成部分。
它通常采用的是RAM (Random Access Memory)的结构,以实现对微指令的随机读取。
控制存储器的地址由微程序计数器提供,通过地址译码器来选择对应的微指令。
四、微指令的编码微指令的编码是将指令的操作码映射为一系列控制信号的过程。
常见的编码方式有水平编码和垂直编码两种。
水平编码将每个控制信号独立编码,占用较多的位数;垂直编码则将多个控制信号合并编码,占用较少的位数。
根据具体的设计需求,可以选择适合的编码方式。
五、微指令的执行过程微指令的执行过程包括指令的获取、解码和执行三个阶段。
指令的获取是通过微程序计数器提供的地址从控制存储器中读取相应的微指令;指令的解码是将微指令中的控制信号解码为具体的操作;指令的执行是根据解码后的控制信号执行相应的操作,例如读取存储器、进行算术运算等。
六、实现微程序控制器的步骤实现微程序控制器的步骤包括微指令的设计、控制存储器的编程、控制信号的生成等。
首先,根据指令集的要求设计微指令的格式和编码方式;然后,根据微指令的格式编程控制存储器,将微指令序列存储其中;最后,根据微指令的编码生成相应的控制信号,控制计算机的操作。
七、实例分析以一个简单的加法指令为例,介绍微程序控制器的实现过程。
首先,设计微指令的格式,包括操作码、源操作数、目的操作数等字段;然后,编程控制存储器,将微指令序列存储其中;最后,根据微指令的编码生成相应的控制信号,例如读取源操作数、读取目的操作数、进行加法运算等。
微程序控制器组与微程序设计实验报告
微程序控制器组与微程序设计实验报告实验目的:1.了解微程序控制器组的组成和工作原理;2.掌握微程序设计的基本方法;3.学习使用微程序设计语言进行微程序编写;4.验证微程序的功能和正确性。
实验仪器:1.微程序控制器组;2.计算机。
实验原理:实验步骤:1.设计微指令集:根据实验要求,设计微指令的功能,并确定每个微指令的格式和编码方式。
2.设计微程序地址译码器:根据微指令的编码方式,设计地址译码器,将微指令的编码转化为实际的地址。
3.设计微程序存储器:根据微指令的格式和编码方式,设计存储器,存储微指令。
可以选择使用只读存储器或者随机存储器。
4.设计微指令执行器:根据微指令的格式和编码方式,设计执行器,执行微指令的功能操作。
可以使用组合逻辑电路或者微控制器实现。
5.进行微程序编写:使用微程序设计语言,根据微指令集的功能要求,编写微程序,并存储到微程序存储器中。
6.连接实验仪器:将微程序控制器组和计算机连接起来,确保数据传输的正确性。
7.运行实验程序:根据实验要求,执行微程序,并通过计算机输出结果。
实验结果:经过实验,微程序控制器组成功控制了计算机的各个部件的操作和数据流。
微程序设计也能够正确的控制计算机的运行,并输出了预期的结果。
实验总结:通过本次实验,我对微程序控制器组的组成和工作原理有了更深入的了解。
微程序设计是一种灵活、可扩展的指令级程序设计方法,可以根据需求设计出各种功能强大的微程序。
通过实验,我学会了使用微程序设计语言进行微程序编写,并验证了微程序的功能和正确性。
微程序控制器组的应用范围广泛,不仅可以用于计算机中,还可以应用于其他各种控制系统中。
本次实验让我对计算机控制系统的理论和实践有了更深入的了解,提高了我在计算机控制领域的专业技能。
微程序控制器的组成与微程序设计实验报告
微程序控制器的组成与微程序设计实验报告1.实验目的了解微程序控制器的组成和工作原理,掌握微程序设计方法。
2.实验器材和仪器-计算机-开发板-逻辑门集成电路3.实验过程a.程序设计首先,需要设计微程序控制器所使用的指令集。
本实验选取了一个简单的指令集,包括加载寄存器、存储器和输入输出操作等指令。
b.微指令设计根据指令集的要求,设计相应的微指令。
每个微指令包含了控制信号的信息,用于控制计算机的不同部件。
c.微程序设计根据微指令的设计,设计相应的微程序。
微程序是一系列的微指令的有序序列,用于控制计算机的指令执行。
d.实验搭建根据设计好的微程序,搭建微程序控制器的电路,并将电路与开发板连接。
e.实验验证将编写好的程序加载到存储器中,并通过控制信号监测计算机的运行情况。
验证微程序控制器的设计是否正确。
4.实验结果与分析经过实验验证,微程序控制器能够正常工作,并且能够按照设计好的微程序执行指令集中的各项操作。
通过观察控制信号的变化,可以得出微程序控制器是否正常工作的结论。
5.实验结论本实验以设计一个简单的微程序控制器为目标,通过设计微指令和微程序,并搭建相应的电路,成功实现了微程序控制器的功能。
通过本实验,我对微程序控制器的组成和设计原理有了更深入的了解。
6.实验总结微程序控制器是计算机中的重要组成部分,通过控制信号的变化,实现了对指令执行的控制。
本实验通过设计微指令和微程序,搭建相应的电路,成功实现了微程序控制器的功能。
通过本实验,我不仅对微程序控制器有了更深入的理解,还提高了我对计算机原理的理解能力和动手实践能力。
计组-微程序控制器设计报告
实验10 微程序控制器设计实验报告姓名:X XX 学号:X XX 专业:计算机科学与技术课程名称:计算机组成同组学生姓名:无实验时间:实验地点:指导老师:XXX一、实验目的和要求1.掌握微程序控制原理2.掌握微程序控制器的设计方法二、实验内容和原理实验内容:1.设计一个微程序控制单元并进行仿真实验原理:1.微程序的原理:●在多时钟CPU设计的实验中,所有的控制信号均根据操作码以及所处的时钟周期,由组合逻辑的方式产生各个状态下的控制信号。
●微程序是将CPU每条指令和所有时钟的控制信号,预先以二进制形式写在控制存储器中。
●多时钟周期的每个状态都对应一组控制信号。
●每条指令都有若干个状态对应若干组控制信号。
●微指令按一定顺序存放在控制存储器中。
2.工作原理图3.微程序控制逻辑图4.微指令及其控制码5.控制存储器内容三、主要仪器设备1.Spartan-III开发板1套2.装有ISE的PC机1台四、操作方法与实验步骤实验步骤:1.创建新的工程和新的源文件2.编写verilog代码(包括以下模块top,MicroCtrl,pbdebounce,time_1ms)3.对程序进行波形仿真4.编写UCF引脚文件,通过编译。
5.. 生成FPGA代码,下载到实验板上并调试,看是否与实现了预期功能实验代码:Top.vmodule top(input system_clk,input clk_i,input rst_i,output [3:0] anode4,output [7:0] segment4,output reg [7:0] led);wire clk;wire rst;reg [2:0] pc;reg [5:0] opcode;wire [17:0] rom_out;pbdebounce p0(system_clk, clk_i, clk);pbdebounce p1(system_clk, rst_i, rst);initial beginpc=0;endalways @ (posedge clk or posedge rst) beginif (rst==1)pc=0;else if (rom_out[1:0]==0)pc=pc+1;endalways @ * begincase (pc)0: opcode = 6'b000000; //R-type1: opcode = 6'b100011; //LW2: opcode = 6'b101011; //SW3: opcode = 6'b000100; //BEQ4: opcode = 6'b000010; //Jdefault: opcode = 6'b000000;endcaseendMicroCtrl MicroCtrl(clk, rst, opcode, rom_out);display display(system_clk, rom_out[17:2], anode4, segment4); always @ * beginled[1:0] = rom_out[1:0];led[2]=0;case (pc)0: led[7:3] = 5'b10000; //R-type1: led[7:3] = 5'b01000; //LW2: led[7:3] = 5'b00100; //SW3: led[7:3] = 5'b00010; //BEQ4: led[7:3] = 5'b00001; //Jdefault: led[7:3] = 5'b11111;endcaseendendmodulempc=0;endalways @ * begincase (mpc)0: rom_out={16'h0851,2'b11};1: rom_out={16'h1800,2'b01};2: rom_out={16'h3000,2'b10};3: rom_out={16'h00C0,2'b11};4: rom_out={16'h0300,2'b00};5: rom_out={16'h00A0,2'b00};6: rom_out={16'hA000,2'b11};7: rom_out={16'h0500,2'b00};8: rom_out={16'h6006,2'b00};9: rom_out={16'h0009,2'b00};default: rom_out=0;endcaseendalways @ (posedge clk or posedge rst) begin if (rst==1)mpc=0;else begincase (rom_out[1:0])0: mpc=0;3: mpc=mpc+1;1: case (opcode)6'b000000: mpc=6; //R-type6'b100011: mpc=2; //LW6'b101011: mpc=2; //SW6'b000100: mpc=8; //BEQ6'b000010: mpc=9; //Jdefault: mpc=0;endcase2: case (opcode)6'b100011: mpc=3; //LW6'b101011: mpc=5; //SWdefault: mpc=0;endcaseendcaseendendendmoduleDisplay.vmodule display(input wire clk,input wire [15:0] digit,//显示的数据output reg [ 3:0] node, //4个数码管的位选output reg [ 7:0] segment);//七段+小数点reg [3:0] code = 4'b0;reg [15:0] count = 15'b0;always @(posedge clk) begincase (count[15:14])//与(count[1:0])的不同?起到分频的作用2'b00 : beginnode <= 4'b1110;code <= digit[3:0];end2'b01 : beginnode <= 4'b1101;code <= digit[7:4];end2'b10 : beginnode <= 4'b1011;code <= digit[11:8];end2'b11 : beginnode <= 4'b0111;code <= digit[15:12];endendcasecase (code)4'b0000: segment <= 8'b11000000;4'b0001: segment <= 8'b11111001;4'b0010: segment <= 8'b10100100;4'b0011: segment <= 8'b10110000;4'b0100: segment <= 8'b10011001;4'b0101: segment <= 8'b10010010;4'b0110: segment <= 8'b10000010;4'b0111: segment <= 8'b11111000;4'b1000: segment <= 8'b10000000;4'b1001: segment <= 8'b10010000;4'b1010: segment <= 8'b10001000;4'b1011: segment <= 8'b10000011;4'b1100: segment <= 8'b11000110;Timer_1ms.vmodule timer_1ms(input wire clk,output reg clk_1ms);reg [15:0] cnt;initial begincnt [15:0] <=0;clk_1ms <= 0;endalways@(posedge clk)if(cnt>=25000) begincnt<=0;clk_1ms <= ~clk_1ms;endelse begincnt<=cnt+1;endendmodule五、实验结果与分析1. 仿真结果如下(仿真时间较长,分2张图展示):Ox00c00 0x0300 2’b003.程序运行成功后,将代码下载到实验板spartan3上验证按动按钮,发现数码管上显示的数值即仿真输出码的[17:2]位,且出现顺序一致,说明程序成功。
基于微程序控制器的《计算机系统综合设计》课程设计指导书
基于微程序控制器的《计算机系统综合设计》课程设计指导书计算机科学与技术学院计科教研室基于微程序控制器的简单机器指令的设计是在TEC-8实验箱上完成的,因此,要求学生必须深刻理解TEC-8实验箱所包含的主要硬件模块的工作原理:算术逻辑单元ALU、双端口寄存器组、数据开关SD7~SD0、双端口RAM、程序计数器PC、地址寄存器AR、指令寄存器IR、微程序控制器、控制信号切换电路、2选1选择器以及与这些模块相对应的指示灯等,详细内容参见TEC-8实验箱实验指导书。
下面就与课程设计相关的重点内容扼要介绍一下。
一、基于微程序控制器的机器指令的执行原理指令周期:取指周期+执行周期,无论是取指周期还是执行周期,都包含了多个微操作,即多个微控制信号。
对所有指令来说,指令的取指周期所包含的控制信号是完全一样的,而执行周期中的控制信号,则因指令而异。
二、TEC-8实验箱电路逻辑图三、指令格式1、TEC-8实验箱原有的指令2、课程设计拟新增加的指令四、TEC-8实验箱的控制信号根据机器指令功能、格式和数据通路所需的控制信号,TEC-8采用如上图所示的微指令格式。
微指令字长40位,顺序字段11位(判别字段P4~P0,后继微地址NµA5~NµA0),控制字段29位,微命令直接控制。
判别字段P4~P0的功能如下表。
下面分析根据后继微地址NµA5~NµA0、判别位P1和指令操作码如何实现微程序分支的。
微地址01H中的微指令是一条功能为取指令的微指令,在T3的上升沿,从双端口存储器中取出的指令写入指令寄存器IR。
在这条微指令中,后继微地址为20H,判别位P1为1、其他判别位均为0。
因此根据微地址转移逻辑,很容易就知道,下一条微指令的微地址是:NµA5-T = NµA5NµA4-T = NµA4NµA3-T = NµA3 or P1 and IR7-INµA2-T = NµA2 or P1 and IR6-INµA1-T = NµA1 or P1 and IR5-INµA0-T = NµA0 or P1 and IR4-I新产生的微地址NµA5-T~NµA0-T在T3的下降沿写入微地址寄存器µAR,实现了微程序流程图图所要求的根据指令操作码进行微程序分支。
微程序控制器的设计与实现
微程序控制器的设计与实现微程序控制器的设计原理是基于指令的操作码来进行控制的。
在计算机系统中,每个指令都有一个唯一的操作码,微程序控制器根据这个操作码来判断下一步应该执行的动作。
因此,微程序控制器的首要任务是建立一套指令操作码和对应控制动作的映射关系。
微程序控制器的设计可以分为两个阶段,即微程序的编写和微程序控制器的实现。
在微程序编写阶段,需要根据计算机系统的指令集架构和系统的需求来编写每一条指令的微程序。
在微程序控制器的实现阶段,先将每条指令的微程序编码成微指令,然后将这些微指令存储在微程序存储器中。
当执行一条指令时,微程序控制器会根据指令的操作码在微程序存储器中找到对应的微指令,并执行相应的控制动作。
微程序控制器的实现方法有多种,其中最常见的是使用ROM(只读存储器)作为微程序存储器。
ROM的每个地址存储一个微指令,可以根据操作码的位数确定ROM的大小。
此外,还可以使用RAM(随机存储器)作为微程序存储器,以便在微程序运行中修改微指令。
为了提高微程序控制器的执行效率,还可以采用流水线技术,将微程序的执行过程划分为多个阶段,并在流水线中同时执行多条指令的微程序。
微程序控制器的设计与实现对计算机系统的性能有着重要的影响。
首先,微程序控制器可以将指令执行过程分解成多个微指令,使得每个微指令只包含一个简单的控制动作,从而提高了指令执行的精确性和可靠性。
其次,微程序控制器对指令执行的控制粒度更细,可以实现更灵活的指令调度和并行处理,提高了指令级并行性。
此外,微程序控制器还可以根据指令的类型、频率和资源需求等特点,进行自适应的指令调度和资源分配,进一步提高系统的性能。
在评价微程序控制器的效果时,需要考虑其控制精确性、执行效率、资源利用率等方面的指标。
控制精确性是指微程序控制器是否能够准确执行指令的操作,以及是否能够正确处理异常情况和中断请求。
执行效率是指微程序控制器每秒钟能够执行多少条指令,衡量了微程序控制器的性能优劣。
第一章微控器应用系统综合设计的目的及任务
第一章微控制器应用系统综合设计的目的及任务1.1 设计目的近几年来,全自动洗衣机已经成了人们日常生活中不可缺少的好帮手。
全自动洗衣机为人们的生活提供了极大的方便。
虽然目前市场上的洗衣机种类很多,但它的控制器部分的原理比较相似。
本次课程设计旨在通过设计一个微机控制的洗衣机控制系统,达到以下目的:l.了解洗衣机的工作原理及控制系统的组成。
2.掌握微机洗衣控制系统的设计思路与实现方法。
3.初步了解水位传感器和电机驱动的原理与结构。
4.熟悉微控制器(单片机)及其接口芯片在家用电器中的应用。
1.2 课程在教学计划中的地位和作用本课程的学习目的在于使学生掌握单片机的基本概念,基本原理和应用方法。
要求学生在牢固掌握单片机基本概念的基础上,具备对简单系统的硬件原理的分析与设计,接口芯片的应用和汇编语言软件编写的能力,把课堂中所学的理论应用于具体实践,补充课堂教学和实验教学中的不足,为进一步的专业课学习打下必要的基础。
在设计过程中,根据自己的兴趣选择相应的课题、写出课程设计的说明书、设计出硬件电路原理图并说明其工作原理、设计相应的软件系统及软件流程图。
整个设计过程需要查阅大量的资料、编写相关汇编语言程序,并要通过上机调试验证自己的设计是否可行,在调试的过程中发现问题、分析并解决问题,并不断完善自己的设计,同时也可以提高自我学习的能力。
1.3洗衣机控制系统设计内容及要求1.3.1洗衣机控制系统设计内容随着科技的发展,洗衣机的控制日益趋于全自动化,结束了以往繁琐的操作,单一的洗衣功能。
本设计的洗衣控制系统使得洗衣机的控制更为简单化。
此设计的洗衣步骤为:洗衣机上电后,使得系统初始化,等待用户选择洗涤的模式(羊毛物质,纯棉物质等不同洗涤物选择相应的洗衣模式),选择完模式后就设定所需洗衣的时间,利用键盘输入,当发现时间输入错误后可以按“取消键”对时间重新设定,设定完后按下“确认键”,此刻洗衣机控制进水阀进水,并判断水位(不同模式的标准水位不同),当水位达到标准水位是进入洗衣状态,电机启动,设定时间递减,当到达设定时间时,电机停止工作,洗衣机自动启动排水阀进行排水,当水位为“0”的时候进行甩干状态,甩干的时间也与选择的洗衣模式相对应。
微程序控制器的设计与实现
微程序控制器的设计与实现微程序控制器是一种基于微程序的控制器,它通过微指令序列来控制计算机的执行流程。
本文将详细介绍微程序控制器的设计与实现。
一、引言微程序控制器是计算机中重要的控制单元之一,它负责将指令转换为微指令序列,并控制计算机的执行流程。
微程序控制器的设计与实现是计算机体系结构中的关键问题之一,本文将从微程序控制器的设计原理、设计方法和实现步骤等方面进行详细介绍。
二、微程序控制器的设计原理1. 微程序控制器的基本原理微程序控制器是一种通过微指令序列来控制计算机的执行流程的控制器。
它将指令的操作码作为输入,通过查找微程序存储器中的微指令序列,生成控制信号,控制计算机的各个部件进行相应的操作。
2. 微程序控制器的工作原理微程序控制器的工作原理是将指令的操作码作为输入,通过查找微程序存储器中的微指令序列,生成控制信号,控制计算机的各个部件进行相应的操作。
微程序存储器中存储了一系列微指令,每个微指令对应一个操作,通过顺序执行这些微指令,实现对计算机的控制。
三、微程序控制器的设计方法1. 微程序控制器的设计流程微程序控制器的设计流程包括以下几个步骤:(1)确定指令集和操作码:根据计算机的需求确定指令集和操作码。
(2)设计微指令格式:根据指令集和操作码设计微指令的格式,包括操作类型、操作数等。
(3)设计微指令序列:根据指令集和操作码设计微指令序列,确定每个微指令对应的操作。
(4)设计微程序存储器:根据微指令序列设计微程序存储器,将微指令序列存储在微程序存储器中。
(5)生成控制信号:根据微指令序列和输入的操作码,通过查找微程序存储器,生成相应的控制信号。
(6)验证和调试:对设计的微程序控制器进行验证和调试,确保其正常工作。
2. 微程序控制器的设计方法微程序控制器的设计方法包括水平微程序控制器和垂直微程序控制器两种。
(1)水平微程序控制器:水平微程序控制器将微指令序列分为多个水平层次,每个水平层次对应一个微指令。
计算机组成原理课程设计(中央处理器--微程序控制器设计)
计算机组成原理课程设计:中央处理器-微程序控制器设计摘要本文档介绍了一个针对计算机组成原理课程的设计项目,即中央处理器的微程序控制器设计。
在设计中央处理器的微程序控制器时,我们将考虑指令的执行、数据的处理以及控制信号等关键方面。
通过这个设计项目,学生将深入了解计算机系统的核心组件并掌握微程序控制器的设计方法。
引言计算机组成原理课程旨在帮助学生理解计算机硬件系统的基本原理和组成部分。
其中,中央处理器是计算机系统中最核心的部分之一。
微程序控制器是中央处理器的关键组件,它通过微指令序列控制着处理器的各个部件。
本设计项目旨在实践计算机组成原理的理论知识和设计方法,使学生能够了解中央处理器的内部结构和工作原理,并掌握微程序控制器的设计技术。
设计目标本次设计的目标是: 1. 使用合适的指令集设计一个完整的微程序控制器。
2. 实现基本的指令执行功能,包括算术逻辑单元(ALU)操作、内存读写、条件分支和跳转等。
3. 考虑控制信号与数据通路之间的兼容性和时序关系。
4. 考虑指令的效率和性能,实现合理的指令编码和微指令生成策略。
设计内容1. 指令集设计在设计微程序控制器时,首先需要确定适合该设计的指令集。
指令集应该包括基本的算术、逻辑、移位和控制指令,以及内存读写指令。
根据实际需求,可以添加其他合适的指令。
2. 微指令设计为了实现指令集中的每个指令,需要设计相应的微指令。
微指令是一系列控制信号的序列,用于控制中央处理器中各个部件的操作。
每个微指令应该包含控制信号、操作码、寄存器的选择和数据通路的选择等信息。
3. 数据通路设计数据通路连接了CPU中各个部件,包括寄存器、ALU、控制器等。
在设计数据通路时,需要考虑指令的执行顺序、数据的传递和处理,以及控制信号的生成等。
数据通路应该支持指令的执行和数据操作。
4. 控制信号设计控制信号是微程序控制器中最关键的部分,它确定了中央处理器中各个部件的操作方式和时序。
在设计控制信号时,需要考虑不同指令的差异性和并行性,确保指令的正确执行。
微程序控制器的设计与实现
微程序控制器的设计与实现
微程序控制器是一种用于控制微程序的硬件设备,它通常由控制存储器、控制
逻辑和时序电路组成。
微程序控制器的设计与实现可以分为以下几个步骤:
1. 确定微指令的格式:微指令是微程序的最小执行单位,包含了一系列控制信号,用于控制计算机的各个部件。
在设计微程序控制器之前,需要确定微指令的格式,包括控制信号的位数和编码方式。
2. 设计控制存储器:控制存储器用于存储微程序,每一个微指令对应一个存储
单元。
在设计控制存储器时,需要确定存储单元的数量和位数,以及存储单元的编址方式。
3. 设计控制逻辑:控制逻辑用于根据当前微指令和计算机的状态生成控制信号。
在设计控制逻辑时,需要根据微指令的格式和计算机的功能要求,确定各个控制信号的生成方式和逻辑关系。
4. 设计时序电路:时序电路用于控制微程序的执行顺序和时序要求。
在设计时
序电路时,需要考虑微指令的执行时间和时序要求,确保微程序的执行顺序和时序满足计算机的功能要求。
5. 实现微程序控制器:根据上述设计结果,可以开始实现微程序控制器。
实现
过程包括选择适当的集成电路、设计电路图、布线和焊接等步骤。
6. 调试和测试:完成微程序控制器的实现后,需要进行调试和测试,确保其功
能和性能符合设计要求。
调试和测试过程包括功能验证、时序分析和性能评估等步骤。
总之,微程序控制器的设计与实现需要进行微指令格式的确定、控制存储器的
设计、控制逻辑的设计、时序电路的设计、微程序控制器的实现以及调试和测试等步骤。
这些步骤需要根据计算机的功能要求和设计约束进行综合考虑和实现。
基于微程序控制器的《计算机系统综合设计》课程设计指导书
基于微程序控制器的《计算机系统综合设计》课程设计指导书计算机科学与技术学院计科教研室基于微程序控制器的简单机器指令的设计是在TEC-8实验箱上完成的,因此,要求学生必须深刻理解TEC-8实验箱所包含的主要硬件模块的工作原理:算术逻辑单元ALU、双端口寄存器组、数据开关SD7~SD0、双端口RAM、程序计数器PC、地址寄存器AR、指令寄存器IR、微程序控制器、控制信号切换电路、2选1选择器以及与这些模块相对应的指示灯等,详细内容参见TEC-8实验箱实验指导书。
下面就与课程设计相关的重点内容扼要介绍一下。
一、基于微程序控制器的机器指令的执行原理指令周期:取指周期+执行周期,无论是取指周期还是执行周期,都包含了多个微操作,即多个微控制信号。
对所有指令来说,指令的取指周期所包含的控制信号是完全一样的,而执行周期中的控制信号,则因指令而异。
二、TEC-8实验箱电路逻辑图三、指令格式1、TEC-8实验箱原有的指令2、课程设计拟新增加的指令四、TEC-8实验箱的控制信号根据机器指令功能、格式和数据通路所需的控制信号,TEC-8采用如上图所示的微指令格式。
微指令字长40位,顺序字段11位(判别字段P4~P0,后继微地址NµA5~NµA0),控制字段29位,微命令直接控制。
判别字段P4~P0的功能如下表。
下面分析根据后继微地址NµA5~NµA0、判别位P1和指令操作码如何实现微程序分支的。
微地址01H中的微指令是一条功能为取指令的微指令,在T3的上升沿,从双端口存储器中取出的指令写入指令寄存器IR。
在这条微指令中,后继微地址为20H,判别位P1为1、其他判别位均为0。
因此根据微地址转移逻辑,很容易就知道,下一条微指令的微地址是:NµA5-T = NµA5NµA4-T = NµA4NµA3-T = NµA3 or P1 and IR7-INµA2-T = NµA2 or P1 and IR6-INµA1-T = NµA1 or P1 and IR5-INµA0-T = NµA0 or P1 and IR4-I新产生的微地址NµA5-T~NµA0-T在T3的下降沿写入微地址寄存器µAR,实现了微程序流程图图所要求的根据指令操作码进行微程序分支。
微程序控制器设计
1.拟定指令系统
字长:定字长,8位
指令的格式:
操作码的位数:3位
寻址方式:直接寻址
load 4
add 5
store 6
bne 7
2.确定数据通路
P98
含有哪些部件,部件的功能,及其它们之间的连接
指令信息、地址信息、数据信息传送的路径,从而,得到所需的微命令(15个)。
3.采用微程序的控制器,设计微指令的格式P106
操作控制字段:采用直接控制法,位数与设计的微命令的个数一致。
如果下地址为:01111时,下条微指令的地址为:
01 OP的编码。
如:load指令,开始的下地址为:01000
如果下地址为:10000时, 依据ZF标志位产生分支。
下条微指令的地址为
其它,下条微指令的地址为就是微指令中提供的下地址。
注意:微地址要连续。
4.绘微程序的流程图P108
5.依据微程序的流程图给出微程序的编码P110
vhdl 代码的编写
1.定义存储器,存放验证的指令及操作数
2.定义控制存储器,存放微程序
3.定义进程。
进程中完成的操作为:如果reset='0',初始化工作。
包含PC=0,微地址为0。
否则在时钟上升沿时,取出微指令,获得下址,且依据有效的微命令,执行相应的微操作。
微程序控制器设计与实现
微程序控制器设计与实现一、引言微程序控制器是一种用于实现计算机指令执行的控制单元,它通过微指令的方式来控制计算机的操作。
本文将详细介绍微程序控制器的设计与实现,包括设计原理、实现步骤和性能评估等方面的内容。
二、设计原理微程序控制器的设计原理主要包括微指令的编码和解码、微指令存储器的设计、微指令的执行等方面。
1. 微指令的编码和解码微指令是对计算机指令进行细化和抽象的表示形式,它由一系列控制信号组成。
在微程序控制器中,需要将每个微指令编码为一个唯一的二进制码,并通过解码器将二进制码转换为相应的控制信号。
2. 微指令存储器的设计微指令存储器是存储微指令的关键组件,它通常由一组存储单元组成,每个存储单元存储一个微指令。
微指令存储器的设计需要考虑存储容量、读写速度和可靠性等因素。
3. 微指令的执行微指令的执行是微程序控制器的核心功能,它通过控制信号的传递和处理来实现计算机指令的执行。
在执行过程中,需要根据当前指令的操作码和操作数,从微指令存储器中读取相应的微指令,并按照微指令的要求执行相应的操作。
三、实现步骤微程序控制器的设计与实现可以按照以下步骤进行:1. 确定指令集和指令格式根据计算机的需求和应用场景,确定需要支持的指令集和指令格式。
指令集和指令格式的确定将直接影响微程序控制器的设计和实现。
2. 编码和解码微指令根据指令集和指令格式,设计并实现微指令的编码和解码逻辑。
编码和解码逻辑需要将指令转换为相应的微指令,并将微指令转换为控制信号。
3. 设计微指令存储器根据微指令的数量和存储要求,设计并实现微指令存储器。
微指令存储器的设计需要考虑存储容量、读写速度和可靠性等因素。
4. 实现微指令的执行逻辑根据微指令的要求,设计并实现微指令的执行逻辑。
执行逻辑需要根据当前指令的操作码和操作数,从微指令存储器中读取相应的微指令,并按照微指令的要求执行相应的操作。
5. 验证和调试微程序控制器在实现过程中,需要对微程序控制器进行验证和调试。
微程序控制器设计与实现
微程序控制器设计与实现微程序控制器是一种用于控制计算机指令执行的重要组件,它通过微指令序列来实现对计算机硬件的控制。
本文将探讨微程序控制器的设计和实现。
一、微程序控制器的概念和作用微程序控制器是一种基于微指令的控制方式,它将复杂的指令执行过程分解成一系列微操作,并通过微指令序列来控制计算机硬件的工作。
微程序控制器的主要作用是实现指令的解码和执行,并且具有高度的灵便性和可扩展性。
二、微程序控制器的设计原理微程序控制器的设计主要包括微指令的编码和微指令存储器的设计。
微指令的编码可以采用二进制编码或者是一种更高级的编码方式,如微指令格式。
微指令存储器可以采用ROM或者RAM的形式,其中ROM存储的是固定的微指令序列,而RAM则可以根据需要进行动态修改。
三、微程序控制器的实现方法微程序控制器的实现可以采用硬连线方式或者微指令存储器方式。
硬连线方式是将微指令的编码直接与控制信号相连,实现对硬件的控制。
而微指令存储器方式则是将微指令存储在微指令存储器中,通过读取存储器中的微指令来实现对硬件的控制。
四、微程序控制器的优点和局限性微程序控制器相对于硬连线方式的控制具有以下优点:首先,微程序控制器可以实现指令的动态修改,从而提高了计算机的灵便性和可扩展性;其次,微程序控制器可以将复杂的指令执行过程分解成一系列微操作,使得指令的执行更加高效。
然而,微程序控制器也存在一些局限性,如微指令存储器的容量限制和微指令的执行速度较慢等。
五、微程序控制器的应用领域微程序控制器广泛应用于计算机系统的控制单元中,如CPU、GPU等。
它可以实现对指令执行的精确控制,并且可以根据不同的应用需求进行灵便的定制。
六、微程序控制器的发展趋势随着计算机技术的不断发展,微程序控制器也在不断演化。
未来的微程序控制器可能会采用更高级的编码方式和更快的存储器技术,以提高指令的执行效率和系统的性能。
总结:微程序控制器是一种重要的计算机控制方式,它通过微指令序列来实现对计算机硬件的控制。
微程序控制器设计
微程序控制器设计1.指令译码:首先,需要对指令进行译码,将机器指令转化为对应的微指令。
这一步骤通常使用逻辑门电路进行实现,其中每个指令对应一个逻辑门电路。
2.微指令设计:设计微指令的具体内容,包括指令的操作码以及对应的控制信号。
3.状态机设计:微程序控制器中使用状态机来控制指令的执行。
状态机设计需要明确每个状态的过渡条件和对应的执行操作。
状态机通常使用状态转换表或状态转换图进行表示。
4.控制存储器设计:控制存储器存储微指令,每个微指令对应一个控制存储器单元。
控制存储器的设计需要考虑容量和访问速度等因素。
5.控制信号发生器设计:控制信号发生器根据微指令产生对应的控制信号,用于控制计算机硬件的操作。
设计微程序控制器的过程可以简化为以下几个步骤:1.确定指令集:根据计算机体系结构的需求,确定设计所需要支持的指令集。
2.指令译码:对所支持指令进行译码,将机器指令转化为对应的微指令。
3.微指令设计:设计每个微指令的操作码和对应的控制信号。
每个微指令应当包含所有需要执行的操作,如读取数据、运算、存储结果等。
4.状态机设计:设计状态机的状态和状态之间的过渡条件。
每个状态应当对应一个微指令。
5.控制存储器设计:设计控制存储器的结构和容量。
每个控制存储器单元存储一个微指令。
6.控制信号发生器设计:根据当前微指令产生对应的控制信号。
这可以通过逻辑门电路来实现。
7.仿真和验证:使用计算机仿真软件对微程序控制器进行仿真和验证,确保设计的正确性和稳定性。
8.硬件实现:将设计好的微程序控制器转化为实际的硬件电路。
这一步需要进行电路设计和布线等工作。
总结起来,微程序控制器设计是一个复杂且关键的过程,需要深入了解计算机体系结构和指令集。
设计过程中需考虑指令译码、微指令设计、状态机设计、控制存储器设计和控制信号发生器设计等关键因素。
在设计完成后需要进行仿真和验证,并最终实现为实际的硬件电路。
通过合理的设计和实现,可以实现高效的微程序控制器,提升计算机整体性能。
课程设计任务书5微程序控制器的设计
课程设计任务书
2013~2014学年第 1 学期
学生姓名:专业班级:
指导教师:高芹工作部门:计算机学院
一、课程设计题目微程序控制器的设计
二、课程设计内容(含技术指标)
1.利用QUARTUS软件设计一个微程序控制器。
微指令格式如下:
该控制器可识别的机器指令有13条,如下:
微程序控制器
......总体框图参考下图:
执行单元
....总体框图如下:(不必设计)
2. 画出所有机器指令的微程序流程图。
3. 写出所有微指令代码,并写入控存ROM中,ROM由“参数可设置模块”LPM_ROM 实现。
4. 每输入一条机器指令代码打入IR中,由微程序控制器读出24位微指令代码,在发光二极管上显示每一位的值。
三、进度安排
1.2013年12月23日,课题讲解,布置任务
2.2013年12月24日到12月29日,分析、讨论、进行各子模块的设计设计
3.2013年12月30日,完成各模块联调,进行测试
4.2013年12月31日,成果验收,进行答辩
四、基本要求
1.能够熟练掌握计算机中微程序控制器的工作原理;
2.掌握硬件描述语言VHDL及原理图设计方法;
3.熟练掌握Quartus II软件平台;
4.各小组按模块分工,每人独立完成自己负责的模块;
5.合作完成最终的硬件下载及调试;
6.独立撰写符合要求的课程设计报告。
微程序控制器的CPU设计课程设计
微程序控制器的CPU设计课程设计一、引言微程序控制器是一种基于微指令的控制器,它通过微指令序列来控制CPU的操作。
在计算机体系结构中,CPU是整个计算机系统的核心部件,对于计算机专业的学生来说,学习和掌握微程序控制器的CPU设计是非常重要的。
本文将介绍微程序控制器的CPU设计课程设计的相关内容,包括设计目标、设计原理、设计步骤等。
二、设计目标微程序控制器的CPU设计课程设计的设计目标是培养学生对微程序控制器的CPU设计的理解和实践能力。
通过本课程设计,学生应该能够掌握以下能力:1. 理解微程序控制器的工作原理和设计思想;2. 掌握微程序控制器的CPU设计的基本方法和步骤;3. 能够使用相应的设计工具进行微程序控制器的CPU设计;4. 能够分析和评估设计方案的性能和可行性。
三、设计原理微程序控制器的CPU设计是基于微指令的控制器设计。
微指令是一种比机器指令更高级的指令,它由多个微指令组成,每个微指令对应着CPU的一条操作。
微程序控制器通过执行微指令序列来控制CPU的操作。
微程序控制器的CPU设计包括以下几个关键步骤:1. 确定指令集和指令格式:根据设计需求,确定CPU的指令集和指令格式,包括操作码、操作数等。
2. 设计微指令集:根据指令集和指令格式,设计微指令集,包括微指令的位数、格式、编码等。
3. 设计微指令控制存储器:设计微指令控制存储器,用于存储微指令序列。
4. 设计微程序控制器的控制逻辑:设计微程序控制器的控制逻辑,包括微指令的执行顺序、条件判断等。
5. 设计数据通路:设计CPU的数据通路,包括寄存器、运算器、存储器等。
6. 进行仿真和验证:使用相应的设计工具进行仿真和验证,检查设计方案的正确性和性能。
四、设计步骤微程序控制器的CPU设计课程设计的设计步骤如下:1. 确定设计需求:根据实际需求,确定设计的目标和要求,包括指令集、指令格式、性能要求等。
2. 设计微指令集:根据指令集和指令格式,设计微指令集,确定微指令的位数、格式、编码等。
微程序控制器模型计算机设计
基于微程序控制器的模型计算机设计目录1.课程设计的目的 (1)2.课程设计要求 (1)3.课程设计报告内容 (1)1)、系统主要功能 (1)2)、总体设计 (2)3)、微程序控制器 (3)4.汇编语言测试程序 (6)5.机器语言测试程序 (6)6、详细设计原理图 (7)7、机器指令运行波形 (7)9.设计总结及体会 (8)参考文献 (8)1.课程设计的目的:1)、融会贯通教材各章的内容,通过知识的综合运用,加深对计算机系统各模块的工作原理及相互联系的认识,从而清晰地建立计算机的整机概念。
2)、学习设计和调试计算机的基本步骤和方法,培养科学研究的独立工作能力,取得工程设计的实践和经验。
2.课程设计要求:根据给定的数据格式和指令系统,一台微程序控制的8 位模型计算机,并运行能完成一定功能的机器语言程序进行验证。
课程设计完成的内容1) 系统的总体设计,画出模型机数据通路框图;2) 微程序控制器的设计,包括设计所有机器指令的微程序流程图;设计微指令格式(建议采用全水平型微指令),设计微程序代码表(根据微程序流程图和微指令格式来设计);3) 根据设计的指令格式,将汇编语言源程序手工转换成机器语言源程序4) 画出模型机的原理图;5) 画出模型计算机指令执行波形图3.课程设计报告内容:1)、系统主要功能A、数据格式数据字规定采用定点整数补码表示法,字长8 位,其中最高位为符号位,其格式如下:7 6 5 4 3 2 1 0符号位尾数B、指令格式本设计CPU 指令系统中使用5 条机器指令,其格式与功能说明如下:表1 模型机指令系统及指令编码形式助记符机器指令码Addr地址码功能说明IN 20H “INPUT”中的数据→R0 ADD addr 40H XXH R0+[addr]→R0STA addr 60H XXH R0→[addr]OUT addr 80H XXH [addr]→BUSJMP addr A0H XXH add r→PCIN 指令为单字长(字长为8bits)指令,其功能是将数据开关的8 位数据输入到R0 寄存器。
计算机组成原理课程设计(中央处理器--微程序控制器设计)
“计算机组成原理”课程设计报告微程序控制器的设计一、设计思路按照要求设计指令系统,该指令系统能够实现数据传送,进行加、减运算和无条件转移,具有累加器寻址、寄存器寻址、寄存器间接寻址、存储器直接寻址、立即数寻址等五种寻址方式。
从而可以想到如下指令: (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?的选择由指令的最低两位决定。
的选择由指令的最低两位决定。
的选择由指令的最低两位决定。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机组成原理课程设计设计名称:微程序控制器综合设计系部名称:国际合作教育中心专业班级:计算机11-5班学生姓名:班欣茹学号: 20113298指导教师:日期:2013.6.17-2013.6.28一、实验目的:1、掌握程序控制器的组成,工作过程及调试方法;2、明确微程序的概念,学会微指令及微程序的设计;3、通过单步方式执行若干条微指令深入理解微程序控制器的工作原理。
二、实验线路器件和所需实验设备:1、实验线路的主要器件:数据输入开关SW(DIP);二片74LS374(R4,R5);二片74LS273(DR1,DR2);二片74LS245;二片74LS181(ALU);一片6116静态存贮器(RAM);二片74LS161(PC);一片74LS273(AR);4片2764(CM);5片74LS273(UIR,IR);三片74LS08;一片74LS10;一片74LS244。
2、实验设备:(1)SACT3C计算机组成原理实验仪一台。
(2 )双踪示波器一台。
(3)万用表一块。
三、实验原理线路:1、数据通路部分原理线路图(图1);图12、微程序控制器原理线路框图,如图2所示。
D7-D0P(1)T4图2四、实验原理(一)数据通路的基本概念数字系统中,各个子系统通过数据总线连接形成的数据传送路径称为数据通路。
数据通路的设计直接影响到控制器的设计,同时也影响到数字系统的速度指标和成本。
一般来说,处理速度快的数字系统,它的独立传送信息的通路较多。
但是独立数据传送通路一旦增加,控制器的设计也就复杂了。
因此,在满足速度指标的前提下,为使数字系统结构尽量简单,一般小型系统中多采用单一总线结构。
在较大系统中可采用双总线或三总线结构。
(二)微程序控制器的设计思想:控制器在计算机中的分工是取指令,分析指令,执行指令,再取下一条指令,循环往复以完成程序设定的功能。
微程序控制器的设计思想是将每一条微指令用一段程序来描述,微程序由若干条微指令组成,而每一条微指令又由若干微命令及一条微指令地址组成,每一条微命令对应于逻辑电路的一个控制操作。
微程序放在控制存储器中,取指令和分析指令属公用的微程序段,执行指令则不同指令对应不同的微程序字段,到控制器的那个单元取指令,其地址在uPC中,而uPC的内容则由指令码结果或上条微指令的下地址字段决定,从控存取出的微指令放在微指令寄存器中。
微指令的基本格式(三)微程序控制单元1、控制存储器:存放实现计算机指令系统的所有微程序由ROM(EPROM)实现。
控制存储器的字长是微指令字的长度。
控制存储器的容量取决于指令的数量和每条指令的微程序长度,也取决于微指令代码的利用率。
2、微指令寄存器:微指令寄存器(CMIR)存放由控制存储器读出的一条微指令信息3、微地址寄存器(CMAR):存放将要访问的下一条微指令的微地址。
4、微地址形成部件:能测试执行中的状态信息,修改微地址寄存器的内容,以便按修改后的内容去读下一条指令。
(四)微程序控制单元的工作原理:1、取指阶段(1)将取指微程序首地址置于CMAR中。
(2)读微指令。
(3)产生微操作命令。
(4)形成下一条微指令地址。
(5)取下一条微指令。
…………重复(1)~(4)过程,直到该机器指令送入IR为止。
2、执行阶段(1)当指令存入IR后,由指令的OP部分送到微地址形成部件,形成该指令对应的微程序的首地址。
(2)读出微指令。
(3)产生微操作命令。
(4)形成下一条微指令地址。
…………重复(1)~(4)过程,直到该机器指令执行完为止。
五、实验任务根据已知的微指令的操作码,自主设计微程序,按照设置好的微程序执行出来。
微程序控制器综合设计日志2013年6月17日由于微程序控制器设计这个实验是对以前做过实验的一个综合,需要回顾运算器组成原理、存储器原理、数据通路实验。
因此,首先我们再一次的完成了前三个实验的操作。
熟悉掌握了实验原理,为之后微程序控制器设计做初期准备。
随后,查找资料进一步了解微程序控制器的组成及工作原理。
1.微程序控制器的组成微程序控制器原理框图如下图所示,它主要由控制存储器、微指令寄存器和地址转移逻辑三大部分组成,其中微指令寄存器分为微地址寄存器和微命令寄存器两部分。
图3控制存储器简称控存,用来存放实现全部指令系统的所有微程序,它是一种只读型存储器。
控制存储器的字长就是微指令字的长度,其存储容量视机器指令系统而定,即取决于微程序的数量。
微指令寄存器用来存放由控制存储器读出的一条微指令信息,其中微地址寄存器决定将要访问的下一条微指令的微地址,而微命令寄存器则保存一条微指令的操作控制字段和判别测试字段的信息。
当P字段的取值不全为0,即需要进行判别或测试时,地址转移逻辑电路根据指令的操作码OP、寻址方式X、执行部件的“状态条件”反馈信息,去强制修改微地址寄存器的内容,并按修改好的微地址去读取下一条微指令,从而实现微程序的分支。
2.微程序控制器的工作原理串行方式的微程序控制器工作过程如下图所示。
计算机开机时,一方面通过硬件设置程序计数器PC的初值,另一方面通过硬件设置微地址寄存器的初值。
PC的初值为系统初始化程序中第一条指令在ROM BIOS中的地址,微地址寄存器的初值为取指微指令在控制存储器中的微地址。
根据微地址寄存器的内容经地址译码后选中控制存储器的某一存储单元,从控制存储器中读出一条微指令,这条微指令便是取指微指令。
取指微指令的操作控制字段和P字段被送往微命令寄存器,在接下来的一个CPU周期内根据操作控制字段输出的微命令信号,控制执行部件完成取指操作。
取指过程为PC 的内容经地址译码后选中指令Cache、二级Cache或主存储器中的某一存储单元,并将从内存中取出的指令代码送往指令寄存器IR,同时PC加1,形成下一条指令在内存中的地址。
取指微指令的直接微地址字段被送往微地址寄存器,由于微指令完成的是取指操作,不同的指令实现不同的功能,需用不同的微程序来解释,因此在取指微指令设计时,P字段中包含有对指令操作码测试的编码。
在执行该条微指令的最后一个T周期到来时,根据P字段和指令的操作码经地址转移逻辑电路强制修改微地址寄存器的内容,从而实现微程序的分支,不同的指令操作码将形成不同的分支微地址。
接着又按修改后的微地址从控制存储器中读取下一条微指令,又执行这一条微指令。
当读出的微指令中P字段的取值不全为0时,地址转移逻辑电路根据指令的寻址方式、执行部件的“状态条件”反馈信息,强制修改微地址寄存器的内容,并按修改好的微地址从控制存储器中读下一条微指令。
当读出的微指令中P字段的取值为全0,即不需要进行任何判别或测试时,直接根据微地址寄存器的内容,即当前微指令的直接微地址去读下一条微指令。
当实现一条机器指令功能的微程序执行完毕后,又返回取指微指令,如此反复。
图43.机器指令与微指令的关系①一条机器指令的功能由若条微指令组成的序列来实现;②机器指令存放在内存储器中,微指令固化在控制存储器中;③每一个CPU周期对应一条微指令。
2013年6月18-20日这次实验的主要任务是要自主设计微程序并执行。
因此从教材出发,寻找微程序设计实例。
根据实例分析从中获取信息设计自己的微程序。
1.微程序的设计步骤①根据CPU结构图,设计微指令格式;②根据CPU结构图、指令格式和功能,画出机器指令解释的微程序流程图,并确定每条微指令在控制存储器中的微地址,以及直接微地址;③设计微程序。
2.微程序设计举例微程序设计的步骤及具体的设计方法,这里在举例时写得非常详细,在实际解题时,只需写出微指令格式、微程序流程图及微地址分配和微程序即可。
[例1]以教材上图5.1所示的CPU结构图,设计条件转移指令“JNZ addr”的微程序,假设JNZ指令的操作码编码为0111,直接微地址为6位。
解:①根据CPU结构图,设计微指令格式如下所示:②根据CPU结构图、指令格式和功能,画出机器指令解释的微程序流程图如下所示:由于在计算机开机时是由硬件设置微地址寄存器的初值,即取指微指令的微地址,因此在设计取指微指令的微地址时,考虑到为方便硬件实现,该微地址一般设置为全0,这里设计为000000。
取指微指令中直接微地址的确定与操作码的位数有关,这里题目中给出的操作码为4位二进制,则取指微指令中直接微地址至少有4位必须为0,以便于在P1测试,即指令操作码测试时,根据指令的操作码修改微地址寄存器的内容,形成分支微地址。
这里我们假定根据指令的操作码修改的是微地址寄存器中的低4位,并且取指微指令的直接微地址为000000,那么在P1测试后,JNZ指令在执行周期中第一条微指令的微地址为000111。
同样的道理,我们可以设计出其它微指令在控制存储器中的微地址和微指令的直接微地址。
设计微地址时要注意,第一条微指令的微地址和微程序中最后一条微指令的直接微地址相同,一般设计为全0。
菱形框前面一条微指令的直接微地址和菱形框后面一条微指令的微地址不能随便确定,它与测试的操作码位数、测试的状态条件位数、测试的寻址方式位数,以及它们将修改哪一位或哪几位微地址有关。
其它微指令的微地址只要不和上述微地址重复,可以任意设置。
③设计微程序。
在机器指令解释的微程序流程图描述中,一个方框表示一个CPU周期,一个CPU 周期对应一条微指令。
只要清楚了每个方框完成的功能,以及微指令格式中各个控制信号的含义和高低电平的定义,就可以顺利地编写出每个框对应的微指令。
由JNZ指令的微程序流程图可知,JNZ指令的解释需要三个CPU周期,因此对JNZ指令的解释需要三条微指令,由这三条微指令组成了对JNZ指令解释的一段微程序。
第一条微指令为取指微指令,按微程序流程图确定的微地址,它存放在控制存储器的000000微地址,该条微指令的二进制编码为:该条微指令完成的功能是根据程序计数器PC的值,访问指令Cache,从相应存储单元取出一条指令并送往指令寄存器IR,同时PC加1。
要实现上述功能,在微指令的操作控制字段中,对应的有效微命令依次为:CS_I’为“0”,RD_I’为“1”完成读指令Cache 功能;LDIR’为“1”完成将指令总线IBUS上的指令代码打入指令寄存器IR的功能;LOAD 为“1”,LDPC’为“1”完成PC加1功能;其它微命令信号均无效,即高电平有效的微命令编码为“0”,低电平有效的微命令编码为“1”。
由于ALU的输出控制信号ALU_B无效,S2、S1、S0的编码任意,这里编码为000,下面两条微指令中S2、S1、S0的编码与之相同。
在微程序设计时,微程序流程图的判别测试框(菱形框)完成的功能与它所在的前一个方框放在同一个CPU周期内执行,即判别测试操作与它所在的前一个方框完成的操作设计在同一条微指令内。
根据微程序流程图,由于要进行P1测试,因此该条微指令的P字段中P1的编码为“1”,P2的编码为“0”,微指令的直接微地址字段指明了下一条微指令的微地址是000000。