第七章 微序列控制单元设计
计算机组成原理实验报告 微程序控制单元实验(整理).pptx
程序的运行,学习了指令的执行流程 ,我觉得这次实验的原理比较容易理解,实施起来也不 难,但是在实验过程中,不知道是因为接线的问题还是仪器的问题一度不能成功,录入了数 据还是跳转不到要去的地方。我们小组以为是输入数据时出错,重新输了好多遍,但是都还 是一样的结果。在老师的指导下终于得到了正确的结果。顺利的完成了实验。这次实验使我 懂得要认真弄清楚每一步实验的原理和所需要的知识点,这样才可以有速度完成实验,同时 也知道做实验需要持之以恒的恒心、信心与耐心。
(M0~M23)。 3. 按脉冲单元中的 PLS2 脉冲按键,在 MOCK 上产生一个上升沿,把当前微程序存储器
输出的微指令打入微指令锁存器。可在 CPT-B 上的微指令指示灯显示出当前微指
第 页 3共 4 页
学海无涯
令,应为 11H、11H、11H。
4.置 MLD=1,微代码的地址 MD0~MD7(对应二进制开关 H0~H7)为 05H(对应开关如
五总结通过本次实验我掌握了微程序控制器的原理同时也掌握了微程序的编制写入观察微程序的运行学习了指令的执行流程我觉得这次实验的原理比较容易理解实施起来也不难但是在实验过程中不知道是因为接线的问题还是仪器的问题一度不能成功录入了数据还是跳转不到要去的地方
学海无 涯
西华大学数学与计算机学院实验报告
课程名称:计算机组成原理 指导教师:祝昌宇 实验名称:微程序控制单元实验
完毕后按“NEXT”键,在地址 06H 处输入 66H、66H、66H 三个字节,完毕后
按“ENTER”键。输入完毕。
(二)微地址打入操作
1. 按启停单元中的停止按钮,置实验机为停机状态,此时微地址寄存器被请零。 2. 按启停单元中的运行按钮,置实验机为运行状态。此时微程序存储器为读状态,微
微程序控制器的设计与实现
微程序控制器的设计与实现一、引言微程序控制器是一种用于指令执行的高级控制器,它通过微指令序列来控制计算机的操作。
本文将介绍微程序控制器的设计与实现方法,包括微程序的设计原理、控制存储器的组织结构、微指令的编码和执行过程等。
二、微程序设计原理微程序设计是一种将指令的操作码映射为一系列微指令的方法。
每个微指令对应着计算机的一条基本操作,例如存储器读取、算术运算等。
微指令序列通过微程序计数器来控制,实现指令的顺序执行。
三、控制存储器的组织结构控制存储器是存储微指令序列的重要组成部分。
它通常采用的是RAM (Random Access Memory)的结构,以实现对微指令的随机读取。
控制存储器的地址由微程序计数器提供,通过地址译码器来选择对应的微指令。
四、微指令的编码微指令的编码是将指令的操作码映射为一系列控制信号的过程。
常见的编码方式有水平编码和垂直编码两种。
水平编码将每个控制信号独立编码,占用较多的位数;垂直编码则将多个控制信号合并编码,占用较少的位数。
根据具体的设计需求,可以选择适合的编码方式。
五、微指令的执行过程微指令的执行过程包括指令的获取、解码和执行三个阶段。
指令的获取是通过微程序计数器提供的地址从控制存储器中读取相应的微指令;指令的解码是将微指令中的控制信号解码为具体的操作;指令的执行是根据解码后的控制信号执行相应的操作,例如读取存储器、进行算术运算等。
六、实现微程序控制器的步骤实现微程序控制器的步骤包括微指令的设计、控制存储器的编程、控制信号的生成等。
首先,根据指令集的要求设计微指令的格式和编码方式;然后,根据微指令的格式编程控制存储器,将微指令序列存储其中;最后,根据微指令的编码生成相应的控制信号,控制计算机的操作。
七、实例分析以一个简单的加法指令为例,介绍微程序控制器的实现过程。
首先,设计微指令的格式,包括操作码、源操作数、目的操作数等字段;然后,编程控制存储器,将微指令序列存储其中;最后,根据微指令的编码生成相应的控制信号,例如读取源操作数、读取目的操作数、进行加法运算等。
第七章微序列控制单元设计
第七章 微序列控制单元设计
7.1 微序列控制器设计基础
用来产生存储到寄存器中的下一个地址,
这些位连同指令的操作码和标志值一起输入
到组合逻辑以产生下一条微指令的地址。
同济大学 软件学院
3. 微程序控制器的工作过程 ① 启动取指令微程序 (PC)→MAR,读出机器指令→IR,PC增量 ② 根据IR中的操作码,通过微地址形成电路产生该指令 的微程序的起始微地址,并送入μMAR中。 ③ μMAR中的微地址经译码、驱动,从被选的控存单元 中取出一条微指令。 ④ 微指令的操作控制字段经译码或直接产生一组微操作 控制信号并送往有关的功能部件,控制其完成所规定 的微操作。
同济大学 软件学院
4.下址的产生 四种常用方法:
◆ 当前地址加1:微代码存储器中的下一地址,
即当前地址加1。
微代码程序在微代码存储器中顺序存放。
(提高可读性、微程序易于调试)
同济大学 软件学院
◆ 绝对地址:由微代码存储器提供。 ◆ 映射逻辑
每个微序列控制器必须能够访问正确的执
行周期,这功能可用映射逻辑来实现。 (1)已读取指令的操作码输入到一个映射硬件, 此硬件将该操作码转换或映射成该指令执行 周期的第一条微指令所在的地址;
同济大学 软件学院
2.非常简单微序列控制器初步的水平微代码
同济大学 软件学院
3.非常简单微序列控制器优化后的水平微代码
优化微代码:
◆ 在所有的状态中,ARDR和IRDR的值是相同的。
第七章微程序控制单元设计
第七章微序列控制单元的设计1. 修改非常简单微序列控制器,将其状态分配给下列地址。
给出这些分配所需的映射逻辑。
2. 根据习题1状态分配,重写非常简单微序列控制器优化后的水平微代码。
3. 一个CPU由下面的RTL代码指定。
把微操作分配到几个域中使总的位数最少,每个微操作OP**2返回到FETCH1。
FETCH1: AR←PCFETCH2: DR←M,PC←PC+1FETCH3: IR,AR←DROP001: DR←MOP002: AC←AC⊕DROP011: AC←AC’,PC←PC+1OP012: AC←AC+1OP101: DR←M,AC←AC+1OP102: DR←DR+1OP111: DR←MOP112: PC←PC+DR[5..0]4. 用水平微代码验证非常简单CPU的功能。
5.用垂直微代码验证非常简单CPU的功能。
6.用直接生成控制信号的方法验证非常简单CPU的功能。
7.像第六章习题6那样,我们希望修改非常简单CPU,使之包含一条新指令CLEAR,它设置AC←0。
CLEAR指令的操作码是111X XXXX,而INC指令的操作码改为110X XXXX,其余指令的操作码都不变。
试给出新的状态图、RTL代码、寄存器部分所要作的修改、微序列控制器的改动以及它的水平微代码,并验证新指令的功能。
8.采用垂直微代码重作习题7的微序列控制器,列出微代码域重新分配的情况。
9.采用直接产生控制信号重作习题7的微序列控制器。
10.像第六章习题10那样,我们希望修改非常简单CPU,使之包含一个新的8位的寄存器R和两条新指令。
指令MV AC完成R←AC的传送,其指令代码是1110 XXXX;指令MOVR完成操作AC←R,指令代码是1111 XXXX;而INC指令的新代码是110X XXXX;其它的指令代码保持不变。
试给出新的状态图、RTL代码、寄存器部分所要作的修改、微序列控制器的改动以及它的水平微代码,并验证新指令的功能。
计组-微程序控制器设计报告
实验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]位,且出现顺序一致,说明程序成功。
微控制单元简介介绍
行项目管理和代码调试。
02
IAR Embedded Workbench
IAR Embedded Workbench是一款专业的微控制单元开发环境,支持
多种微控制单元型号和多种编程语言。它提供了高效的编译器和调试器
,以及强大的项目管理工具。
03
Eclipse
Eclipse是一款开源的集成开发环境,通过安装相应的插件可以用于微
微控制单元简介介绍
汇报人: 2024-01-09
目录
• 微控制单元的定义与特性 • 微控制单元的历史与发展 • 微控制单元的架构与工作原理 • 微控制单元的编程与开发 • 微控制单元的优势与挑战 • 微控制单元的应用实例
01
微控制单元的定义与特性
定义
• 微控制单元(MCU)是一种集成电路芯片,它集成了处理器、存储器、输入输出接口等核心组件,用于实现特定的控制功 能。MCU是微控制器的一种,其特点是具有高度的集成度和低功耗性能。
Assembly语言
Assembly语言是一种低级编程语言,直接与硬件交互。 在微控制单元编程中,Assembly语言常用于底层驱动和 性能敏感的代码部分。
开发环境
01
Keil uVision
Keil uVision是一款流行的微控制单元开发环境,支持多种微控制单元
型号和多种编程语言。它提供了丰富的工具和调试功能,方便开发者进
医疗设备
1 2 3
监护仪
微控制单元可以用于监护仪的信号处理和控制模 块,实现实时监测和报警功能,保障患者的生命 安全。
医学影像设备
微控制单元可以用于医学影像设备的图像采集、 处理和传输等功能,提高医学影像的质量和诊断 准确率。
植入式医疗器械
计算机组成原理课程设计(中央处理器--微程序控制器设计)
计算机组成原理课程设计:中央处理器-微程序控制器设计摘要本文档介绍了一个针对计算机组成原理课程的设计项目,即中央处理器的微程序控制器设计。
在设计中央处理器的微程序控制器时,我们将考虑指令的执行、数据的处理以及控制信号等关键方面。
通过这个设计项目,学生将深入了解计算机系统的核心组件并掌握微程序控制器的设计方法。
引言计算机组成原理课程旨在帮助学生理解计算机硬件系统的基本原理和组成部分。
其中,中央处理器是计算机系统中最核心的部分之一。
微程序控制器是中央处理器的关键组件,它通过微指令序列控制着处理器的各个部件。
本设计项目旨在实践计算机组成原理的理论知识和设计方法,使学生能够了解中央处理器的内部结构和工作原理,并掌握微程序控制器的设计技术。
设计目标本次设计的目标是: 1. 使用合适的指令集设计一个完整的微程序控制器。
2. 实现基本的指令执行功能,包括算术逻辑单元(ALU)操作、内存读写、条件分支和跳转等。
3. 考虑控制信号与数据通路之间的兼容性和时序关系。
4. 考虑指令的效率和性能,实现合理的指令编码和微指令生成策略。
设计内容1. 指令集设计在设计微程序控制器时,首先需要确定适合该设计的指令集。
指令集应该包括基本的算术、逻辑、移位和控制指令,以及内存读写指令。
根据实际需求,可以添加其他合适的指令。
2. 微指令设计为了实现指令集中的每个指令,需要设计相应的微指令。
微指令是一系列控制信号的序列,用于控制中央处理器中各个部件的操作。
每个微指令应该包含控制信号、操作码、寄存器的选择和数据通路的选择等信息。
3. 数据通路设计数据通路连接了CPU中各个部件,包括寄存器、ALU、控制器等。
在设计数据通路时,需要考虑指令的执行顺序、数据的传递和处理,以及控制信号的生成等。
数据通路应该支持指令的执行和数据操作。
4. 控制信号设计控制信号是微程序控制器中最关键的部分,它确定了中央处理器中各个部件的操作方式和时序。
在设计控制信号时,需要考虑不同指令的差异性和并行性,确保指令的正确执行。
微程序控制器的设计与实现
微程序控制器的设计与实现
微程序控制器是一种用于控制微程序的硬件设备,它通常由控制存储器、控制
逻辑和时序电路组成。
微程序控制器的设计与实现可以分为以下几个步骤:
1. 确定微指令的格式:微指令是微程序的最小执行单位,包含了一系列控制信号,用于控制计算机的各个部件。
在设计微程序控制器之前,需要确定微指令的格式,包括控制信号的位数和编码方式。
2. 设计控制存储器:控制存储器用于存储微程序,每一个微指令对应一个存储
单元。
在设计控制存储器时,需要确定存储单元的数量和位数,以及存储单元的编址方式。
3. 设计控制逻辑:控制逻辑用于根据当前微指令和计算机的状态生成控制信号。
在设计控制逻辑时,需要根据微指令的格式和计算机的功能要求,确定各个控制信号的生成方式和逻辑关系。
4. 设计时序电路:时序电路用于控制微程序的执行顺序和时序要求。
在设计时
序电路时,需要考虑微指令的执行时间和时序要求,确保微程序的执行顺序和时序满足计算机的功能要求。
5. 实现微程序控制器:根据上述设计结果,可以开始实现微程序控制器。
实现
过程包括选择适当的集成电路、设计电路图、布线和焊接等步骤。
6. 调试和测试:完成微程序控制器的实现后,需要进行调试和测试,确保其功
能和性能符合设计要求。
调试和测试过程包括功能验证、时序分析和性能评估等步骤。
总之,微程序控制器的设计与实现需要进行微指令格式的确定、控制存储器的
设计、控制逻辑的设计、时序电路的设计、微程序控制器的实现以及调试和测试等步骤。
这些步骤需要根据计算机的功能要求和设计约束进行综合考虑和实现。
微程序控
11
12 13
0
0 1
0
0 0
0
0 0
0
0 0
0
0 0
0
0 0
0
0 1
0
0 0
0
0 0
0
0 0
0
0 0
1
1 0
1
1 0
0
0 0
0
0 0
00111
10000 00000
微地址03的下地址位01111,说明应该是根据指令操作码来形 成。即下地址的低3位是指令操作码 。高2位为01因此LOAD指 令的开始地址是01000(也可以用其他形成方式) Load 01 000 store 01 001 Add 01 010 Sub 01 011 Bne 01 100 地址12的下地址,也要根据运算器的结果是否位“0”来判断, 所以其下地址设为10000,以决定下地址是13还是14 至于控制信号何时为“1”
--CPU 头文件 cpu_defs LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; PACKAGE cpu_defs IS --定义程序包,包头,包体 TYPE opcode IS (load, store, add, sub, bne);--这个语句适合于定义一些用 std_logic 等不方便定义的类型,综合器自动实现枚举类型元素的编码,一般将第一个枚 举量(最左边)编码为0 CONSTANT word_w: NATURAL :=8; CONSTANT op_w: NATURAL :=3; CONSTANT rfill: STD_LOGIC_VECTOR(op_w-1 downto 0):=(others =>'0'); --FUNCTIOn slv2op(slv:IN STD_LOGIC_VECTOR) RETURN opcode; FUNCTION op2slv(op:in opcode) RETURN STD_LOGIC_VECTOR; END PACKAGE cpu_defs; PACKAGE BODY cpu_defs IS TYPE optable IS ARRAY(opcode) OF STD_LOGIC_VECTOR(op_w-1 DOWNTO 0);--数组有5个元素,其他均0 CONSTANT trans_table:optable :=("000", "001", "010", "011", "100"); FUNCTION op2slv(op:IN opcode) RETURN STD_LOGIC_VECTOR IS BEGIN RETURN trans_table(op); END FUNCTION op2slv;
计算机组成原理—微程序控制器组成实验
3.4 常规型微程序控制器组成实验一、实验目的1. 掌握时序发生器的组成原理。
2. 掌握微程序控制器的组成原理。
二、实验电路1. 时序发生器本实验所用的时序电路见图3.4。
电路由一个500KHz晶振、2片GAL22V10、一片74LS390组成,可产生两级等间隔时序信号T1-T4、W1-W3,其中一个W由一轮T1-T4组成,相当于一个微指令周期或硬连线控制器的一拍,而一轮W1-W3可以执行硬连线控制器的一条机器指令。
另外,供数字逻辑实验使用的时钟由NF经一片74LS390分频后产生。
图3.4 时序信号发生器本次实验不涉及硬连线控制器,因此时序发生器中产生W1-W3的部分也可根据需要放到硬连线控制器实验中介绍。
产生时序信号T1-T4的功能集成在图中左边的一片GAL22V10中,另外它还产生节拍信号W1-W3的控制时钟CLK1。
该芯片的逻辑功能用ABEL语言实现。
其源程序如下:MODULE TIMER1TITLE 'CLOCK GENERATOR T1-T4'CLK = .C.;"INPUTMF, CLR, QD, DP, TJ, DB PIN 1..6;W3 PIN 7;"OUTPUTT1, T2, T3, T4 PIN 15..18 ISTYPE 'REG';CLK1 PIN 14 ISTYPE 'COM';QD1, QD2, QDR PIN ISTYPE 'REG';ACT PIN ISTYPE 'COM';S = [T1, T2, T3, T4, QD1, QD2, QDR];EQUATIONSQD1 := QD;QD2 := QD1;ACT = QD1 & !QD2;QDR := CLR & QD # CLR & QDR;T1 := CLR & T4 & ACT # CLR & T4 & ! (DP # TJ # DB & W3) & QDR;T2 := CLR & T1;T3 := CLR & T2;T4 := !CLR # T3 # T4 & !ACT & (DP #TJ# DB& W3) # !QDR;CLK1 = T1 # !CLR& MF;S.CLK = MF;END节拍电位信号W1-W3只在硬连线控制器中使用,产生W信号的功能集成在右边一片GAL22V10中,用ABEL语言实现。
微程序控制单元实验、指令部件模块实验、时序与启停实验
《计算机组成原理》实验报告实验名称微程序控制单元实验、指令部件模块实验、时序与启停实验实验室实验楼418 实验日期2012-12-12、2012-12-14、2012-12-19图7-1微控制器原理其中控制存储器采用4片6116静态存储器,微程序寄存器32位,用三片(273)和一片4D(175)触发器组成。
微地址寄存器6位,用三片正沿触发的双器(74)组成,它们带有清零端和置位端。
在不判别测试的情况下,T2时刻打入微地址寄图7-2微程序流程图实验原理分析:1.在“H”状态下,即按键状态下编写程序,四片锁存器是微指令寄存器,UA0~UA5为微地址触发器,8位LED显示时,6位二进制代码能表示图7-3微程序控制原理图(2)微地址控制输入单元的实验连线控制线于控制信号“”连接:用双头实验导线连接上图中所有标明“图8-1程序计数器单元2片74LS163组成了PC程序计数器,它有LDPC、LOAD信号,脉冲装载和加1操作。
在“L”状态下,由8位数据开关装入起始地址,当图8-2指令寄存器单元指令数据寄存器IR(74LS273)的LDIR为电平正跳变时,把来自数据总线的数据打入寄存图8-3 CY、零标志锁存原理图控制线于控制信号“”连接:用双头实验导线连接上图中所有标明“图9-1时序、启停、单次脉冲原理图(一)时序启停实验所用的时序与启停电路原理如图所示,其中时序电路由 1/2 片74LS7474LS175及6个二输入与门、2个二输入与非门和3个反向器构成。
可产生4个等间隔的时序信号T1~T4,其中“时钟”信号由“脉冲源”提供。
为了便于控制程序的运行,时序电。
微程序控制器设计
微程序控制器设计1.指令译码:首先,需要对指令进行译码,将机器指令转化为对应的微指令。
这一步骤通常使用逻辑门电路进行实现,其中每个指令对应一个逻辑门电路。
2.微指令设计:设计微指令的具体内容,包括指令的操作码以及对应的控制信号。
3.状态机设计:微程序控制器中使用状态机来控制指令的执行。
状态机设计需要明确每个状态的过渡条件和对应的执行操作。
状态机通常使用状态转换表或状态转换图进行表示。
4.控制存储器设计:控制存储器存储微指令,每个微指令对应一个控制存储器单元。
控制存储器的设计需要考虑容量和访问速度等因素。
5.控制信号发生器设计:控制信号发生器根据微指令产生对应的控制信号,用于控制计算机硬件的操作。
设计微程序控制器的过程可以简化为以下几个步骤:1.确定指令集:根据计算机体系结构的需求,确定设计所需要支持的指令集。
2.指令译码:对所支持指令进行译码,将机器指令转化为对应的微指令。
3.微指令设计:设计每个微指令的操作码和对应的控制信号。
每个微指令应当包含所有需要执行的操作,如读取数据、运算、存储结果等。
4.状态机设计:设计状态机的状态和状态之间的过渡条件。
每个状态应当对应一个微指令。
5.控制存储器设计:设计控制存储器的结构和容量。
每个控制存储器单元存储一个微指令。
6.控制信号发生器设计:根据当前微指令产生对应的控制信号。
这可以通过逻辑门电路来实现。
7.仿真和验证:使用计算机仿真软件对微程序控制器进行仿真和验证,确保设计的正确性和稳定性。
8.硬件实现:将设计好的微程序控制器转化为实际的硬件电路。
这一步需要进行电路设计和布线等工作。
总结起来,微程序控制器设计是一个复杂且关键的过程,需要深入了解计算机体系结构和指令集。
设计过程中需考虑指令译码、微指令设计、状态机设计、控制存储器设计和控制信号发生器设计等关键因素。
在设计完成后需要进行仿真和验证,并最终实现为实际的硬件电路。
通过合理的设计和实现,可以实现高效的微程序控制器,提升计算机整体性能。
计算机组成原理微程序控制单元实验
计算机组成原理微程序控制单元实验微程序控制单元是计算机系统中的一种控制方式,它通过存储在存储器中的一组微指令序列来完成对计算机操作的控制。
微程序控制的特点是将指令解码操作交给微程序控制器来完成,使得计算机系统更加模块化,易于维护和升级。
在本文中,我们将介绍计算机组成原理微程序控制单元实验相关参考内容,包括实验原理、实验步骤和实验结果分析等。
实验原理微程序控制单元实验的目的是了解微程序控制器的工作原理,熟悉微指令的生成和调用过程。
实验中,我们需要使用一个可编程逻辑器件(如FPGA)来实现微程序控制单元。
具体的实验原理可分为以下几个方面:1.微程序控制单元的基本结构微程序控制单元的基本结构由微程序存储器、微指令计数器、数据线、地址线和状态寄存器等组成。
微程序存储器用于存储微指令序列,微指令计数器用于计数微指令的执行次数,数据线用于传输数据信息,地址线用于传输地址信息,状态寄存器用于存储各个状态的标志位。
2.微指令的生成方式微指令可以通过硬布线方式生成,也可以通过微程序存储器生成。
本实验中,我们将采用微程序存储器生成的方式。
微程序存储器的结构类似于一个ROM,存储着各个微指令的操作码。
通过地址线和控制信号的组合,我们可以选择需要执行的微指令操作。
3.微指令的调用过程在执行一条指令时,首先要将指令解码,得到该指令的操作码和操作数。
接着,通过微控制器的微程序存储器,查找并执行对应的微指令操作。
微指令的执行可能涉及到内存、寄存器、算术逻辑单元等各个部分,最终完成指令的执行。
实验步骤下面是计算机组成原理微程序控制单元实验的具体步骤:步骤一:设计微程序控制器的硬件电路根据FPGA开发板的型号和实验要求,设计微程序控制单元的硬件电路,并且将其烧录到FPGA芯片中。
在设计电路时要考虑到各种指令和相应的微指令,分析指令的执行流程,进而推导出各种情况下微指令的生成方式。
步骤二:编写微指令程序利用软件编写微指令程序,将每条指令拆分成组合微命令的形式,生成微程序。
第7章 微位移技术
第一节 概述
3.微调
精密仪器中的微调是经常遇到的间题,如图(c)所示, 左图表示磁头与磁盘之间的浮动间隙的调整,右图为 照相物镜与被照乾版之间焦距的调整。
第一节 概述
4.微执行机构
主要用于生物工程、医疗、微型机电系统、微型机器 人等,用十夹持微小物体。如图(d)所示,微型器件装 配系统的微夹持器。
第一节 概述
如图(a)所示粗工作台完成高速度大行程而高精度由 微动工作台来实现,通过微动工作台对粗动工作台运 动中带来的误差进行精度补偿,以达到预定的精度。
第一节 概述
2.微进给
主要用于精密机械加工中的微进给机构以及精密仪器 中的对准微动机构,如图(b)所示金刚石车刀车削镜而 磁盘,车刀的进给量为5μm,就是利用微位移机构实 现的。
第三节 精密致动技术
名称 工作原理
1、 压电微位移器件是用逆压电效应工作的,广泛用于激光稳频、精 压 密微动及进给等。对压电器件要求其具有压电灵敏度高、行程大、 电 线性好、稳定性好和重复性好等。 压电器件的主要缺点是变形量小,为获得需要的驱动量常要加较 器 件 高的电压,一般大于800V。当无电致伸缩效应时,压电陶瓷长度方 向变形量 l l dU (7-2) b 式中,U为施加于压电器件上的电压;b为压电陶瓷厚度;l为压电陶 瓷长度;d为压电系数。由式(4-72)可以看出,增大压电陶瓷所用 方向的长度,减少压电陶瓷厚度,增大外加电压,选用压电系数大 的材料,可以增大应变。通常d33要比d31大3倍,因此应该用极化方 向的变形来驱动。也可用多个压电陶瓷组成压电堆,采用并联接法, 总变型量△L = n△l。
特别是到 20 世纪 70 年代后期,微电子技术向大规模集成电路 (LSI)和超大规模集成电路(VLSI)方向发展,随着集成度 的提高,线条越来越微细化, “向22nm进军”。 256K 动态 RAM 线宽已缩小到 1.25 μm 左右。目前已小于 0.1 μm ,对与之相应的工艺设备(如图形发生器、分步重复照相 机、光刻机、电子束、和X射线曝光机及其检测设备等)提出 了更高的要求,要求这些设备的定位精度为线宽的1/3~1/5,即 亚微米甚至纳米级的精度。
试验七微程序控制器的实现试验
实验七微程序控制器的实现实验一、实验目的和要求1、掌握时序信号发生电路组成原理。
2、掌握微程序控制器的设计思想和组成原理。
3、掌握微程序的编制、写入,观察微程序的运行。
二、实验内容1、实验原理实验所用的时序电路原理如图7-1所示,可产生4个等间隔的时序信号TS1~TS4,其中SP为时钟信号,由实验机上时钟源提供,可产生频率及脉宽可调的方波信号。
学生可根据实验要求自行选择方波信号的频率及脉宽。
为了便于控制程序的运行,时序电路发生器设计了一个启停控制触发器UN1B,使TS1~TS4信号输出可控。
图中“运行方式”、“运行控制”、“启动运行”三个信号分别是来自实验机上三个开关。
当“运行控制”开关置为“运行”,“运行方式”开关置为“连续”时,一旦按下“启动运行”开关,运行触发器UN1B的输出QT一直处于“1”状态,因此时序信号TS1~TS4将周而复始地发送出去;当“运行控制”开关置为“运行”,“运行方式”开关置为“单步”时,一旦按下“启动运行”开关,机器便处于单步运行状态,即此时只发送一个CPU周期的时序信号就停机。
利用单步方式,每次只运行一条微指令,停机后可以观察微指令的代码和当前微指令的执行结果。
另外,当实验机连续运行时,如果“运行方式”开关置“单步”位置,也会使实验机停机。
2、微程序控制电路与微指令格式①微程序控制电路微程序控制器的组成见图7-2,其中控制存储器采用3片E2PROM 2816芯片,具有掉电保护功能,微命令寄存器18位,用两片8D触发器74LS273(U23、U24)和一片4D触发器74LS175(U27)组成。
微地址寄存器6位,用三片正沿触发的双D触发器74LS74(U14~U16)组成,它们带有清“0”端和预置端。
在不进行判别测试的情况下,T2时刻打入微地址寄存器的内容即为下一条微指令地址。
当T4时刻进行测试判别时,转移逻辑满足条件后输出的负脉冲通过强置端将某一触发器置为“1”状态,完成地址修改。
微程序控制器实验原理
微程序控制器实验原理一、微程序控制器简介微程序控制器是计算机中一个重要的控制单元,它负责解析和执行计算机指令。
在计算机中,指令是由一系列操作码组成的二进制序列,微程序控制器通过对这些操作码进行解析和执行,指导计算机完成各种操作。
本文将详细介绍微程序控制器的实验原理。
二、微程序控制器的工作原理微程序控制器的工作原理主要包括以下几个方面:1. 存储和解析指令微程序控制器首先将存储在存储器中的指令读取到指令寄存器中,然后对指令进行解析。
指令解析过程中,微程序控制器会将指令的操作码和操作数从指令寄存器中提取出来,并根据不同的操作码进行相应的操作。
2. 控制信号的生成微程序控制器根据解析得到的操作码生成相应的控制信号,控制信号通常包括时钟信号、数据写入信号、数据读取信号等。
这些控制信号会被发送给计算机的其他部件,控制其按照指令的要求进行相应的操作。
3. 微指令的执行微程序控制器根据解析得到的操作码和相应的操作数,执行相应的微指令。
微指令是微程序控制器中的最小指令单位,它可以完成一些基本的操作,如数据传输、逻辑运算、算术运算等。
微程序控制器通过执行一系列的微指令来完成整个指令的操作。
4. 微程序的存储和调用微程序控制器中的微指令是存储在微存储器中的,微存储器作为微程序控制器的核心组成部分,它负责存储和调用微指令。
微程序控制器在执行指令时,会根据微指令的地址从微存储器中读取相应的微指令,然后执行。
三、微程序控制器的实验原理微程序控制器的实验原理主要包括以下几个方面:1. 环境准备进行微程序控制器的实验需要准备相应的实验环境。
首先需要搭建一个实验平台,包括微程序控制器、指令存储器、数据存储器等。
同时还需要准备实验所需的指令和数据,可以通过编程的方式生成指令和数据。
2. 设计微程序在进行微程序控制器的实验前,需要先设计相应的微程序。
微程序设计是指根据具体的指令集和指令执行流程,将指令分解为微指令,并确定微指令之间的执行顺序和相互之间的依赖关系。
计算机组成原理课程设计(中央处理器--微程序控制器设计)
“计算机组成原理”课程设计报告微程序控制器的设计一、设计思路按照要求设计指令系统,该指令系统能够实现数据传送,进行加、减运算和无条件转移,具有累加器寻址、寄存器寻址、寄存器间接寻址、存储器直接寻址、立即数寻址等五种寻址方式。
从而可以想到如下指令: (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. 学生能了解控制单元与传感器、执行器的关系,理解整个控制系统的构成。
技能目标:1. 学生能运用所学知识,设计简单的控制单元电路;2. 学生能通过编程,实现对控制单元的控制;3. 学生能分析控制单元在实际应用中出现的问题,并提出相应的解决方案。
情感态度价值观目标:1. 学生培养对控制单元及电子技术的兴趣,激发创新意识;2. 学生在学习过程中,培养团队合作精神和解决问题的能力;3. 学生能认识到控制单元在日常生活和国家发展中的重要作用,增强社会责任感。
本课程针对学生年级特点,注重理论与实践相结合,以实际应用为导向。
通过本课程的学习,使学生掌握控制单元的基本知识和技能,培养他们在实际情境中发现问题、分析问题、解决问题的能力,同时激发学生对电子技术的兴趣,提高他们的创新意识和团队合作精神。
课程目标具体、可衡量,便于教学设计和评估。
二、教学内容1. 控制单元基础理论:- 控制单元的定义与功能;- 控制单元的分类及特点;- 控制单元的基本工作原理。
2. 控制单元的硬件组成:- 传感器的工作原理与应用;- 执行器的工作原理与应用;- 控制单元与传感器、执行器的连接方式。
3. 控制单元的软件设计:- 控制算法的基本概念;- 编程语言及编程环境介绍;- 控制单元编程实例分析。
4. 控制单元的应用案例:- 温度控制系统的设计与实现;- 灯光控制系统的设计与实现;- 其他常见控制单元应用案例分析。
5. 控制单元的故障分析与维护:- 常见故障现象及原因;- 故障排查方法;- 控制单元的日常维护与保养。
教学内容根据课程目标进行科学、系统地组织,以教材相关章节为基础,结合实际应用案例,注重理论与实践相结合。
教学大纲明确教学内容的安排和进度,使学生在学习过程中逐步掌握控制单元的基础知识和技能,培养实际应用能力。
微程序设计和微控制器组成
对应 STA 操作的微程序
• 控制存储器 控制存储器用来存放实现全部指令系统的微程序, 它是一种只读存储器。一旦微程序固化,机器运行时 则只读不写。其工作过程是:每读出一条微指令,则 执行这条微指令;接着又读出下一条微指令,又执行 这一条微指令……。读出一条微指令并执 行微指令的 时间总和称为一个微指令周期。通常,在串行方式的 微程序控制器中,微指令周期就是只读存储器的工作 周期。控制存储器的字长就是微指令字的长度,其存 储容量视机器指令系统而定,即取决于微程序的数量。 对控制存储器的要求是速度快,读出周期要短。
7. 后续微指令地址形成方式原理图
OP 微地址 形成部件
分支 逻辑
IR
微程序入口 标志 …
地址 选择
多路选择 +1
控制信号 … CMDR
转移方式 下地址
CMAR
控制存储器
地址译码
实验箱微控制器的地址转移逻辑
微控制器的组成及工作原理
• 微程序控制器原理框图
存放实现 全部指令 系统的微 程序,是 一种只读 型存储器。 主要由控制存储器、微指令寄 存器和地址转移逻辑三大部分 组成。微指令寄存器包括:微 地址和微命令寄存器。
控制信号
…
下地址
操作控制
速度最快
某位为 “1” 表示该控制信号有效
2. 字段直接编码方式
将微指令的控制字段分成若干 “段”, 每段经译码后发出控制信号
控制信号 … 译码 … 译码 … 译码
显式编码 微程序执行速度较慢
下地址
操作控制
每个字段中的命令是 互斥 的
缩短 了微指令 字长,增加 了译码 时间
• 微指令寄存器 微指令寄存器用来存放由控制存储器读出的一条微 指令信息。其中微地址寄存器决定将要访问的下一条 微指令的地址,而微命令寄存器则保存一条微指令的 操作控制字段和判别测试字段的信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
◆ 选择域:指明下一条微指令地址的来源
◆ 地址域:指明一个绝对地址
◆ 微操作域:一个或多个
同济大学 软件学院
2.微操作的三种编码方法
◆ 水平微代码
列出CPU所要执行的每一个微操作 将微指令微操作域中的一位分配给每个微操作
例如:一个CPU需要执行50个微操作, 它的每一条微指令的微操作域将占用50位。 微指令太长,大部分微操作位不是有效的。
存储单元内容。所有微指令集中组成CPU的微代
码或微程序。
◆ 下址产生模块产生所有可能的下一地址或下址,
然后从中选择一个正确的下址送入寄存器中。
同济大学 软件学院
典型微序列控制器的组成
同济大学 软件学院
2.微指令的组成 微指令由几个域组成,其bit位可分为两组。
◆ 微操作(微序列控制器的微序列部分)
同济大学 软件学院
◆ 垂直微代码
所有微操作组合成组,组中的每个微操作 被分配一个唯一的编码值。 例如:16个微操作 —— 四位二进制来编码 微指令位数少,但需要译码器。
◆ 控制信号的直接生成
微代码将微操作组合在一起,不同的是,它 把控制信号值直接存储在微指令中。 代码的可读性差,调试困难。
同济大学 软件学院
微操作是有效的,然后域中的每个微操作被赋予
一个唯一的域值。 例如:8种不同的微操作 —— 3位二进制 (从000到111之间的任何一个值)
同济大学 软件学院
微操作域位从微代码存储器输出到一个译 码器,译码器的输出就是在水平微代码中直接
产生的微操作。
同济大学 软件学院
同济大学 软件学院
二、为非常简单CPU设计垂直微代码 任务:给各种微操作分配不同的域 1. 指导性原则 (1) 对于同一状态下发生的两个不同的微操作,
微序列控制器:把控制信号存储在一个查找表
ROM,即微代码存储器中。按照正确的次序访问 ROM中的内容,查找表ROM就可以以适当的顺序发 出控制信号,从而实现处理器指令集中的指令。
同济大学 软件学院
几个基本概念 1. 微操作控制信号: 如:PCLOAD、ACINC 2. 微操作:由微操作控制信号控制实现的最基本操作。 一个微操作是在一组微操作控制信号的控制下实现的。 如:AR←PC ARLOAD、PCBUS
或者输入到组合逻辑以生成CPU 的控制信号,或者直接产生控制信号。
◆ 下一个地址(微序列控制器的序列控制部分)
用来产生存储到寄存器中的下一起输入
到组合逻辑以产生下一条微指令的地址。
同济大学 软件学院
3. 微程序控制器的工作过程 ① 启动取指令微程序 (PC)→MAR,读出机器指令→IR,PC增量 ② 根据IR中的操作码,通过微地址形成电路产生该指令 的微程序的起始微地址,并送入μMAR中。 ③ μMAR中的微地址经译码、驱动,从被选的控存单元 中取出一条微指令。 ④ 微指令的操作控制字段经译码或直接产生一组微操作 控制信号并送往有关的功能部件,控制其完成所规定 的微操作。
同济大学 软件学院
4.产生所需的控制信号
A R ← P C ; AR←DR[5..0]
PC←PC+1; PC←DR[5..0] DR←M IR←DR[7..6]
AC←AC + DR ; AC←AC ∧ DR ; AC←AC+1
同济大学 软件学院
7.2.4 用垂直微代码生成微操作
一、从垂直微代码中生成微操作的一般情况 在垂直微代码中,所有的微操作被分组到不 同的域中,使得任何状态一个域中最多只有一种
同济大学 软件学院
除了FETCH3,状态图中的每一种状态都可以这么设臵。 FETCH3必须映射到正确的执行周期,所以要求 SEL=1,表示采用映射地址。
同济大学 软件学院
同济大学 软件学院
7.2.3 用水平微代码生成微操作
1.非常简单CPU的微操作及它们的助记符
1 -- 微操作发生
0 -- 不发生
◆ DRM和PCIN都在FETCH2状态下发生,那么
这两种微操作必须被分配到不同的域中。
则该CPU的微操作至少需要两个域,把它
同济大学 软件学院
标记为M1和M2。 包括NOP操作在内每个域的微操作如下: M1 NOP M2 NOP
DRM
PCIN
( FETCH2: DR←M,PC←PC+1)
◆ PCIN和PCDR都能修改PC值,所以我们现在把PCDR
◆ 剩余的每一状态都必须转到一个具体的次态,
可以通过绝对跳转来实现。
同济大学 软件学院
必须确定CPU的几件事情: 从微代码存储器输出的绝对地址宽度有几位?
◆ CPU的状态图中共有九种状态,每种状态代表
一条微指令,从中选择的话最少需要4位绝对
地址。既然映射硬件也生成同样宽度的地址,
那么输出的地址就是4位宽度。
同济大学 软件学院
2.非常简单微序列控制器初步的水平微代码
同济大学 软件学院
3.非常简单微序列控制器优化后的水平微代码
优化微代码:
◆ 在所有的状态中,ARDR和IRDR的值是相同的。
用一个输出AIDR来驱动这两个微操作。
◆ AIDR组合了两个微操作AR←DR[5..0]和
IR←DR[7..6]
同济大学 软件学院
3. 微指令:控制完成一组微操作的二进制编码字。
4. 微程序或微代码:一系列微指令的有序集合。 每一条机器指令对应着一段微程序,通过解释 执行这段微程序,完成指令规定的操作功能。
同济大学 软件学院
一段微程序
(在控制存储器ROM中)
FETCH1(0) 100000000 微指令
FETCH2(1)
机器指令ADD (在主存中) FETCH3(2) ADD1(8) ADD2(9)
同济大学 软件学院
4.下址的产生 四种常用方法:
◆ 当前地址加1:微代码存储器中的下一地址,
即当前地址加1。
微代码程序在微代码存储器中顺序存放。
(提高可读性、微程序易于调试)
同济大学 软件学院
◆ 绝对地址:由微代码存储器提供。 ◆ 映射逻辑
每个微序列控制器必须能够访问正确的执
行周期,这功能可用映射逻辑来实现。 (1)已读取指令的操作码输入到一个映射硬件, 此硬件将该操作码转换或映射成该指令执行 周期的第一条微指令所在的地址;
同济大学 软件学院
四、增加硬件把这些位值转换为所代表的微操作
M1:把这个域输入到一个3-8译码器中
例如:输出2 → 微操作ARPC
M2:只有1位,不需要用译码器,直接驱动PCIN。
同济大学 软件学院
同济大学 软件学院
实践视角:毫微指令
毫微存储器与毫微指令
同济大学 软件学院
用毫微存储器可以减少微序列控制器中存储器的
同济大学 软件学院
程序、指令、微程序、微指令、微操作控制信号、微 操作的关系
1 1、微命令2、 微命令n) 微指令(微命令 完成一组微操作 指令1微程序1微指令2 程序 微指令n 微程序2 指令2 微程序n 指令n
操作控制部分:微操作域
3.产生微操作控制信号
同济大学 软件学院
7.2.1 基本布局
1.非常简单微序列
控制器的基本结构
同济大学 软件学院
2. 只用到两种可能的下址方式
操作码映射 绝对跳转
为什么可以这样做?
考虑第六章所示的该CPU的状态图。
◆ 取指令周期的最后一个状态FETCH3可以转到
四个执行周期中的一个,这必须通过映射输 入来实现。
也加到M2中。
同济大学 软件学院
◆ 把剩下的微操作任意分配给这两个域,但要注意
把那些改变同一个寄存器值的微操作放到同一个域中。
◆ 产生如下的分配
M1 NOP DRM ACIN
M2 NOP PCIN PCDR
PLUS
AND
同济大学 软件学院
ARPC
AIDR
(2) 每个域有五种微操作,因此每个域需要3位。 (3) 对这种分配进行一些调整,减少总的位数。
微指令需要一个4位的域来指向毫微存储器中的一个
正确的模式。
◆ 毫微存储器
16*32=512位
◆ 微代码存储器
额外的128*4=512位的指针
共512位+512位 = 1,024位
同济大学 软件学院
7.2.5 从微代码直接产生控制信号
1. 直接输出控制信号
微序列控制器为每个控制信号保留一位,以 代替水平微代码设计中的微操作和垂直微代码 设计中的M1和M2。 对微代码存储器的每个字来说,如果信号
有效,则相应的控制位臵1,否则臵0。
同济大学 软件学院
例如: FETCH2:DR←M和PC←PC+1
同济大学 软件学院
⑤ 微指令的地址控制字段及有关状态条件送往微地址
形成电路,产生下条微指令的地址,再去读取并执
行下条微指令。如此循环,直到一条机器指令的微 程序全部执行完毕。 ⑥ 一条指令的微程序执行结束,再启动取指令微指令 或微程序,读取下条机器指令。根据该指令码形成 起始微地址,又转入执行它的一段微程序。
◆ 多路选择器输出到寄存器的输入、以及寄存器
输出到微代码存储器的输入,也都是4位宽度。
同济大学 软件学院
7.2.2 生成正确序列并设计映射逻辑
设计控制有限状态机状态转换的微代码。 1.给有限状态机的每种状态分配一个微代码地址 着重考虑:每一执行周期的第一个状态的地址分配
(它决定了实现映射功能的逻辑)
(2)把这一地址装载到寄存器,微序列控制器就
能转入到正确的执行过程。
同济大学 软件学院
在取指令周期的末端使用一次。
◆ 微子程序