微程序控制器实验原理
实验六微程序控制单元实验

实验六 微程序控制单元实验一、实验目的1. 熟悉微程序控制器的工作原理。
2. 掌握微程序编制及微指令格式。
二、实验要求按照实验步骤完成实验项目,熟悉微程序的编制、写入、观察运行状态。
三、实验原理⒈ 微程序控制电路微程序控制器的组成见图6-1,其中控制存储器采用4片6116静态存储器 ,微命令寄存器32位,用三片8D 触发器(273)和一片4D(175)触发器组成。
微地址寄存器6位,用三片正沿触发的双D 触发器(74)组成,它们带有清零端和置位端。
在不判别测试的情况下,T2时刻打入微地址寄存器的内容即为下一条微指令地址。
当T4时刻进行测试判别时,转移逻辑满足条件后输出的负脉冲通过置位端将某一触发器输出端置为“1”状态,完成地址修改。
⒉ 微指令格式表6-1A 字段B 字段A 、B 二译码字段,分别由6个控制位译码输出多位。
B 段中的PX3、PX2、PX1 三个测试字位。
其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的微地址入口,从而实现微程序的顺序、分支、循环运行。
⒊微程序流程与代码图6-2为几条机器指令对应的参考微程序流程图,将全部微程序按微指令格式变成二进制代码,可得到模型机(一)所例举的8位指令代码。
图6-2微程序流程图四、实验内容(一)微程序的编写为了解决微程序的编写,本装置设有微程序读写命令键,学生可根据微地址和微指令格式将微指令代码以快捷方式写入到微程序控制单元。
具体的操作方法是按动位于本实验装置右中则的红色复位按钮使系统进入初始待令状态。
再按动【增址】命令键使工作方式提示位显示“H”。
微程序存贮器读写的状态标志是:显示器上显示8个数字,左边1、2位显示实验装置的当前状态,左边3、4位显示区域号(区域的分配见表7-2),左边5、6位数字是微存贮单元地址,硬件定义的微地址线是ua0~ua5共6根,因此它的可寻址范围为00H~3FH;右边2位数字是该单元的微程序,光标在第7位与第8位之间,表示等待修改单元内容。
实验四---微程序控制器原理实验

2015 年 5 月 24 日课程名称:计算机组成原理实验名称:微程序控制器原理实验班级:学号:姓名:指导教师评定:_________________ 签名:_____________________一、实验目的:1.掌握微程序控制器的组成及工作过程;2.通过用单步方式执行若干条微指令的实验,理解微程序控制器的工作原理。
二、预习要求:1.复习微程序控制器工作原理;2.预习本电路中所用到的各种芯片的技术资料。
三、实验设备:EL-JY-II型计算机组成原理实验系统一台,连接线若干。
四、电路组成:微程序控制器的原理图见图4-1(a)、4-1(b)、4-1(c)。
图4-1(a)控制存储器电路图4-1(b)微地址形成电路图4-1(c)微指令译码电路以上电路除一片三态输出8D触发器74LS374、三片EFPROM2816和一片三态门74LS245,其余逻辑控制电路均集成于EP1K10内部。
28C16、74LS374、74LS245芯片的技术资料分别见图4-2~图4-4.图4-2(a)28C16引脚图4-2(b) 28C16引脚说明工作方式/CE /OE /WE输入/输出读后备字节写字节擦除写禁止写禁止输出禁止L L HH ××L H LL12V L××H× L ×× H ×数据输出高阻数据输入高阻高阻高阻高阻图4-2(c)28C16工作方式选择图4-5(a)74LS374引脚图4-5(b)74LS374功能图4-8(a)74LS245引脚图4-8(b)74LS245功能五、工作原理:1.写入微指令在写入状态下,图4-1(a)中K2须为高电平状态,K3必须接至脉冲/T1端,否则无法写入。
MS1-MS24为24位写入微代码,由24位微代码开关(此次实验采用开关方式)。
uA5-uA0为写入微地址,采用开关方式则由微地址开关提供。
K1须接低电平使74LS374有效,在脉冲T1时刻,uAJ1的数据被锁存形成微地址(如图4-1(b)所示),同时写脉冲将24位微代码写入当前微地址中(如图4-1(a)所示)。
微程序控制器设计

EDA第六次实验日志微程序控制器实验实验预习:1.微程序控制器的组成和工作原理是什么?2.微程序、微指令、微命令之间有什么关系?3.微指令、微程序如何设计与调试?预习解答:1. 微程序控制器的组成和工作原理是什么?微程序控制器的原理图如图所示。
微程序控制器主要由控制存储器、微指令寄存器和地址转移逻辑三大部分组成,其中微指令寄存器分为微地址寄存器和微命令寄存器两部分。
(1)控制寄存器控制寄存器用来存放实现全部指令系统的所有微程序,它是一种只读型存储器。
一旦微程序固化,机器运行时则只读不写。
其工作过程是:读出一条微指令并执行;重复上面动作知道微程序结束。
读出一条微指令并执行微指令的时间总和称为一个微指令周期。
通常在串行方式的微程序控制器中,微指令周期就是只读寄存器是的工作周期。
控制存储器的字长就是微指令字的长度,其存储容量视机器指令系统而定,即取决于微程序的数量。
对控制寄存器的要求是读出周期要短,因此通常采用双极型半导体只读寄存器。
(2)微指令寄存器微指令寄存器用来存放由控制器读出的一条微指令信息。
其中微指令寄存器决定将要访问的下一条微指令的地址,而微命令寄存器则保存一条微指令的操作控制字段和判别测试字段的信息。
(3)地址转移逻辑在一般情况下,微指令由控制存储器读出后直接给出下一条微指令的地址,通常简称为微地址,这个微地址信息就存放在微地址寄存器中。
如果微程序不出现分支,那么下一条微指令的地址就直接由微地址寄存器给出,当程序出现分支时,意味着微程序出现条件转移,在这种情况下,通过判别测试字段P和执行内部的“状态条件”反馈信息,去修改微地址寄存器的内容;并按照改好的内容去读下一条微指令。
地址转移逻辑就承担自动完成修改微地址的任务。
其工作原理分为:一、将程序和数据通过输入设备送入存储器;二、启动运行后,从存储器中取出程序指令送到控制器去识别,分析该指令要求什么事;三、控制器根据指令的含义发出相应的命令(如加法、减法),将存储单元中存放的操作数据取出送往运算器进行运算,再把运算结果送回到存储器指定的单元中;四、运算任务完成后,就可以根据指令将结果通过输出设备输出。
微程序控制器原理实验报告

微程序控制器原理实验报告一、引言微程序控制器作为计算机系统的重要组成部分,扮演着指挥和控制计算机操作的关键角色。
本实验报告将对微程序控制器的原理进行探讨,并描述相关实验的设计、步骤、结果和分析。
二、微程序控制器的原理2.1 微程序控制器的概念微程序控制器是一种控制计算机操作的技术,通过将指令集中的每个指令分解为一系列微操作,并以微指令的形式存储在控制存储器中,从而实现指令的执行控制。
2.2 微指令的组成和格式微指令由多个字段组成,每个字段代表一个微操作控制信号。
常见的微指令格式包括微地址字段、条件码字段、操作码字段等。
2.3 微指令的执行过程微指令的执行过程包括指令的取指、译码、执行和写回等阶段。
每个阶段对应微指令的不同部分,通过控制信号的转换和传递,完成相应的操作。
三、微程序控制器的设计与实验3.1 设计思路在进行微程序控制器实验前,需要明确实验的目标和设计思路。
实验通常包括以下几个步骤:确定指令集、确定微指令格式、设计控制存储器、设计控制逻辑电路等。
3.2 实验步骤1.确定指令集:根据实验需求,确定需要支持的指令集。
2.确定微指令格式:根据指令集的要求,设计适合的微指令格式。
3.设计控制存储器:根据微指令格式,设计控制存储器的结构和内容。
4.设计控制逻辑电路:根据微指令的执行过程,设计控制逻辑电路,实现指令的控制和转换。
5.构建实验平台:将设计的控制存储器和控制逻辑电路构建成实验平台,并与计算机系统相连。
6.进行实验:在实验平台上执行指令,观察和记录实验结果。
3.3 实验结果与分析根据实验步骤中的设计和操作,得到了相应的实验结果。
通过比对实验结果和预期效果,可以对微程序控制器的设计和实验进行分析和评估。
四、总结与展望微程序控制器作为计算机系统的关键组成部分,通过微操作的方式实现指令的执行控制。
本实验报告对微程序控制器的原理进行了探讨,并描述了相关实验的设计、步骤、结果和分析。
通过实验,我们深入理解了微程序控制器的工作原理和设计方法。
微程序控制器实验报告

一、实验目的1、通过实验,进一步理解微程序控制器的组成结构。
理解微程序控制器的控制原理2、加深理解微程序控制器的工作原理。
掌握指令流程与功能3、理解掌握微程序控制器的设计思路与方法二、实验内容与步骤1、微程序控制器的组成原理控制存储器:实现整个指令系统的所有微程序,一般指令系统是规定的由高速半导体存储器构成,容量视机器指令系统而定,取决于微程序的个数,其长度就是微指令字的长度。
微指令寄存器:存放从控存读出的当前微指令。
微操作控制字段将操作控制信号送到控制信号线上,微地址字段指出下一条微地址的形成。
微地址寄存器:存放将要访问的下一条微指令地址地址转移逻辑:形成将要执行的微指令地址,形成方式:取指令公操作所对应的微程序一般从控存的0地址开始,所以微程序的人口地址0是由硬件控制的。
当出现分支时,通过判别测试字段、微地址字段、和执行部件的反馈信息形成后即微地址。
Cpu设计步骤:1.拟定指令系统2.确定总体结构(数据通路)3.安排时序4.拟定指令流程。
根据指令系统,写出对应所有机器指令的全部微操作机器节拍安排,然后列出操作时间表5.确定微指令的控制方式、下地址形成方式、微指令格式及微指令字长,编写全部的微指令的代码,最后将编写的微指令放入控制存储器中。
微程序控制器的设计步骤(1)设计微程序确定微程序流程图,也就是控制算法流程图。
(2)确定微指令格式微指令格式中的操作控制字段取决于执行部件的子系统需要多少微指令。
假定采用直接控制方式,执行部件需要10个微命令,则操作控制字段需要10位。
测试判别字段取决于微程序流程图中有多少处分支转移。
假定有3处分支,则测试判别字段需要3位。
下址字段取决于微程序流程图的规模。
假定微程序共用50条微指令,则下址字段至少需要6位。
这是因为ROM地址译码时,26=64,6位地址可容纳64条微指令。
(3)将微程序编译成二进制代码(4)微程序写入控制存储器(5)设计硬件电路三、实验现象--CPU 头文件cpu_defsLIBRARY 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 ISTYPE optable IS ARRAY(opcode) OF STD_LOGIC_VECTOR(op_w-1 DOWNTO 0);--数组有5个元素,其他均0CONSTANT trans_table:optable :=("000", "001", "010", "011", "100");FUNCTION op2slv(op:IN opcode) RETURN STD_LOGIC_VECTOR ISBEGINRETURN trans_table(op);END FUNCTION op2slv;END PACKAGE BODY cpu_defs;--实验7-8 微程序控制器实验LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL,IEEE.NUMERIC_STD.ALL;USE WORK.CPU_DEFS.ALL;--使用自己定义的程序包ENTITY CPU ISPORT( clock : IN STD_LOGIC;--时钟reset : IN STD_LOGIC;--复位mode : IN STD_LOGIC_VECTOR(2 DOWNTO 0); --查看用mem_addr : INUNSIGNED(word_w-op_w-1 DOWNTO 0);--地址output : OUT STD_LOGIC_VECTOR(word_w-1 DOWNTO 0);data_r_out : OUT STD_LOGIC_VECTOR(19 DOWNTO 0);--微指令Rop_out : OUT STD_LOGIC_VECTOR(op_w-1 DOWNTO 0);--操作码add_r_out : OUT UNSIGNED(4 DOWNTO 0) --微地址R);END ENTITY;ARCHITECTURE rtl OF CPU ISTYPE mem_array IS ARRAY (0 TO 2**(word_w-op_w)-1) OF STD_LOGIC_VECTOR(word_w-1DOWNTO 0);--定义RAMSIGNAL mem : mem_array;CONSTANT prog : mem_array:=(0=> op2slv(load) & STD_LOGIC_VECTOR(TO_UNSIGNED(4,word_w-op_w)),1=> op2slv(add) & STD_LOGIC_VECTOR(TO_UNSIGNED(5,word_w-op_w)),2=> op2slv(store) & STD_LOGIC_VECTOR(TO_UNSIGNED(6,word_w-op_w)),3=> op2slv(bne) & STD_LOGIC_VECTOR(TO_UNSIGNED(7,word_w-op_w)), --TO_UNSIGNED转换函数将4转换为5位“00100”4=> STD_LOGIC_VECTOR(TO_UNSIGNED(2,word_w)),5=> STD_LOGIC_VECTOR(TO_UNSIGNED(3,word_w)),OTHERS => (OTHERS =>'0'));TYPE microcode_array IS ARRAY (0 TO 14) OF STD_LOGIC_VECTOR(19 DOWNTO 0); CONSTANT code : microcode_array:=(--控制存储器0=> "00010100010000000001",1=> "00000000000110000010",2=> "00001010000000000011",3=> "00000100001000001111",4=> "00100010000000000000",5=> "00000000000100000000",6=> "00000010100001000000",7=> "00000010100000100000",8=> "00000000000110000100",9=> "01000001000000000101",10=> "00000000000110000110",11=> "00000000000110000111",12=> "00000000000110010000",13=> "10000010000000000000",14=> "00000000000000000000");SIGNAL count : UNSIGNED(word_w-op_w-1 DOWNTO 0);SIGNAL op : STD_LOGIC_VECTOR(op_w-1 DOWNTO 0);SIGNAL z_flag : STD_LOGIC;SIGNAL mdr_out : STD_LOGIC_VECTOR(word_w-1 DOWNTO 0);SIGNAL mar_out : UNSIGNED(word_w-op_w-1 DOWNTO 0);SIGNAL IR_out : STD_LOGIC_VECTOR(word_w-1 DOWNTO 0);SIGNAL acc_out : UNSIGNED(word_w-1 DOWNTO 0);SIGNAL sysbus_out : STD_LOGIC_VECTOR(word_w-1 DOWNTO 0);EGINPROCESS(reset,clock)VARIABLE instr_reg : STD_LOGIC_VECTOR(word_w-1 DOWNTO 0);VARIABLE acc : UNSIGNED(word_w-1 DOWNTO 0);CONSTANT zero : UNSIGNED(word_w-1 DOWNTO 0):=(OTHERS =>'0')VARIABLE mdr : STD_LOGIC_VECTOR(word_w-1 DOWNTO 0);VARIABLE mar : UNSIGNED(word_w-op_w-1 DOWNTO 0);VARIABLE sysbus : STD_LOGIC_VECTOR(word_w-1 DOWNTO 0);VARIABLE microcode : microcode_array;VARIABLE add_r : UNSIGNED(4 DOWNTO 0);VARIABLE data_r : STD_LOGIC_VECTOR(19 DOWNTO 0);VARIABLE temp : STD_LOGIC_VECTOR(4 DOWNTO 0);BEGINIF reset='0' THENadd_r:=(OTHERS =>'0');count <= (OTHERS =>'0');instr_reg := (OTHERS =>'0');acc := (OTHERS =>'0');mdr := (OTHERS =>'0');mar := (OTHERS =>'0');z_flag <='0';mem <= prog;sysbus :=(OTHERS =>'0');ELSIF RISING_EDGE(clock) THEN--microprogram controllerdata_r := code(TO_INTEGER(add_r));IF data_r(4 DOWNTO 0)="01111" THEN --判断下地址temp:="01" & op(2 DOWNTO 0);add_r := UNSIGNED(temp);ELSIF data_r(4 DOWNTO 0)="10000" THENIF z_flag='1' THENadd_r:="01110";ELSEadd_r :="01101";END IF;ELSEadd_r := UNSIGNED(data_r(4 DOWNTO 0));END IF;data_r_out <=data_r;add_r_out <= add_r;--PCIF data_r(16)='1' THEN --PC_bus='1'sysbus := rfill & STD_LOGIC_VECTOR(count);END IF;IF data_r(19)='1' THEN --load_PC='1'count <= UNSIGNED(mdr(word_w-op_w-1 DOWNTO 0));ELSIF data_r(10)='1' THEN --INC_PC='1'count <= count+1;ELSEcount <= count;END IF;--IRIF data_r(15)='1' THEN --load_IRinstr_reg := mdr;END IF;IF data_r(9)='1' THEN --Addr_bus='1'sysbus := rfill & instr_reg(word_w-op_w-1 DOWNTO 0);END IF;op <= instr_reg(word_w-1 DOWNTO word_w-op_w);IR_out <= instr_reg;op_out <=op;--ALUIF data_r(17)='1' THEN --load_ACC='1'acc:=UNSIGNED(mdr);END IF;IF data_r(11)='1' THEN --ALU_ACC='1'IF data_r(6)='1' THEN --ALU_add='1'acc := acc + UNSIGNED(mdr);ELSIF data_r(5)='1' THEN --ALU_sub='1'acc := acc - UNSIGNED(mdr);END IF;END IF;IF data_r(18)='1' THEN --ACC_bus='1'sysbus := STD_LOGIC_VECTOR(acc);END IF;IF acc=zero THENz_flag <='1';ELSEz_flag <='0';END IF;acc_out<= acc;--RAMIF data_r(14)='1' THEN --load_MAR='1'mar := UNSIGNED(sysbus(word_w-op_w-1 DOWNTO 0));ELSIF data_r(12)='1' THEN --load_MDR='1'mdr := sysbus;ELSIF data_r(8)='1' THEN --CS='1'IF data_r(7)='1' THEN --R_NW='1'mdr := mem(TO_INTEGER(mar));ELSEmem(TO_INTEGER(mar))<=mdr;END IF;END IF;IF data_r(13)='1' THEN --MDR_bus='1'sysbus:=mdr;END IF;mdr_out <= mdr;mar_out <= mar;END IF;sysbus_out <=sysbus;END PROCESS;PROCESS(mode,mem_addr)BEGIN--mode=0 -> sysbus--mode=1 -> PC--mode=2 -> result of ALU--mode=3 -> IR--mode=4 -> MAR--mode=5 -> MDR--mode=6 -> memoutput <= (OTHERS =>'0');CASE mode isWHEN "000" =>output<=sysbus_out;WHEN "001" =>output(word_w-op_w-1 DOWNTO 0)<= STD_LOGIC_VECTOR(count);WHEN "010" =>output <= STD_LOGIC_VECTOR(acc_out);WHEN "011" =>output <= IR_out;WHEN "100" =>output(word_w-op_w-1 DOWNTO 0) <= STD_LOGIC_VECTOR(mar_out);WHEN "101" =>output <= mdr_out;WHEN "110" =>output <= mem(TO_INTEGER(mem_addr));WHEN others =>output <= (OTHERS =>'Z');END CASE;END PROCESS;END ARCHITECTURE;现象结果:四、实验体会原本对于控制器的设计还是一片空白,通过实验初步理解微程序控制器的组成结构。
微程序控制器原理实验

微程序控制器原理实验微程序控制器是一种基于微程序理论的控制器,被广泛应用于计算机系统的控制部分。
微程序控制器利用微指令来完成对计算机硬件的控制,通过将控制指令以微指令的形式存储在控制存储器中,再通过微程序计数器和指令寄存器的协作来实现对计算机中相关硬件的控制。
微程序控制器通过微指令的方式将指令的信息分解成若干微操作,每个微操作对应一个微指令。
每个微指令又由多个微操作组成,通过控制存储器中的微指令的读出来实现对相应的微操作的控制。
在微程序控制器的设计过程中,需要进行微指令的编码和微操作的选择,确保微操作的实现顺序和时序满足设计要求。
微程序控制器的实验可以通过设计一个简单的微程序控制器来进行验证。
首先,需要设计一个微指令的格式,其中包括操作码、操作数、地址等字段。
然后,根据需要控制的硬件模块设计相应的微操作,并将这些微操作编码成微指令。
通过控制存储器将微指令存储起来,并设计一个微程序计数器和指令寄存器来控制微指令的读取和执行过程。
在实验中,可以选择一些简单的指令例如加法指令来进行设计。
首先,设计一个微指令的格式,其中包括操作码字段和操作数字段。
然后,根据加法指令的功能设计相应的微操作,例如从寄存器中读取操作数、将操作数累加等。
将这些微操作编码成微指令,并将微指令存储在控制存储器中。
通过微程序计数器和指令寄存器来控制微指令的读取和执行过程,实现对加法指令的控制。
在实验中,需要设计相应的硬件电路来实现微程序控制器的功能。
这些电路包括控制存储器、微程序计数器、指令寄存器等。
可以使用逻辑门、触发器等基本的数字电路元件来实现这些电路。
通过将这些电路连接起来,形成一个完整的微程序控制器实验样机。
在实验过程中,需要根据设计的微指令格式和微操作进行编码和存储。
通过控制存储器将微指令读取并执行,控制相应的硬件模块进行操作。
通过示波器或LED 等辅助工具来监测和验证微程序控制器的工作状态和正确性。
微程序控制器原理实验可以帮助学生深入理解微程序的工作原理和实现方式。
微程序控制器的设计与实现
微程序控制器的设计与实现微程序控制器是一种基于微程序的控制器,它通过微指令序列来控制计算机的执行流程。
本文将详细介绍微程序控制器的设计与实现。
一、引言微程序控制器是计算机中重要的控制单元之一,它负责将指令转换为微指令序列,并控制计算机的执行流程。
微程序控制器的设计与实现是计算机体系结构中的关键问题之一,本文将从微程序控制器的设计原理、设计方法和实现步骤等方面进行详细介绍。
二、微程序控制器的设计原理1. 微程序控制器的基本原理微程序控制器是一种通过微指令序列来控制计算机的执行流程的控制器。
它将指令的操作码作为输入,通过查找微程序存储器中的微指令序列,生成控制信号,控制计算机的各个部件进行相应的操作。
2. 微程序控制器的工作原理微程序控制器的工作原理是将指令的操作码作为输入,通过查找微程序存储器中的微指令序列,生成控制信号,控制计算机的各个部件进行相应的操作。
微程序存储器中存储了一系列微指令,每个微指令对应一个操作,通过顺序执行这些微指令,实现对计算机的控制。
三、微程序控制器的设计方法1. 微程序控制器的设计流程微程序控制器的设计流程包括以下几个步骤:(1)确定指令集和操作码:根据计算机的需求确定指令集和操作码。
(2)设计微指令格式:根据指令集和操作码设计微指令的格式,包括操作类型、操作数等。
(3)设计微指令序列:根据指令集和操作码设计微指令序列,确定每个微指令对应的操作。
(4)设计微程序存储器:根据微指令序列设计微程序存储器,将微指令序列存储在微程序存储器中。
(5)生成控制信号:根据微指令序列和输入的操作码,通过查找微程序存储器,生成相应的控制信号。
(6)验证和调试:对设计的微程序控制器进行验证和调试,确保其正常工作。
2. 微程序控制器的设计方法微程序控制器的设计方法包括水平微程序控制器和垂直微程序控制器两种。
(1)水平微程序控制器:水平微程序控制器将微指令序列分为多个水平层次,每个水平层次对应一个微指令。
微程序控制实验报告(共10篇)
微程序控制实验报告(共10篇)微程序控制器实验报告计算机组成原理实验报告一、实验目的:(1)掌握微程序控制器的组成原理。
(2)掌握微程序的编制、写入,观察微程序的运行过程。
二、实验设备:PC 机一台,TD-CMA 实验系统一套。
三、实验原理:微程序控制器的基本任务是完成当前指令的翻译和执行,即将当前指令的功能转换成可以控制的硬件逻辑部件工作的微命令序列,完成数据传送和各种处理操作。
它的执行方法就是将控制各部件动作的微命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示称为微指令。
这样就可以用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。
微程序存储在一种专用的存储器中,称为控制存储器,微程序控制器原理框图如图所示:微程序控制器组成原理框图在实验平台中设有一组编程控制开关KK3、KK4、KK5(位于时序与操作台单元),可实现对存储器(包括存储器和控制存储器)的三种操作:编程、校验、运行。
考虑到对于存储器(包括存储器和控制存储器)的操作大多集中在一个地址连续的存储空间中,实验平台提供了便利的手动操作方式。
以向00H 单元中写入332211 为例,对于控制存储器进行编辑的具体操作步骤如下:首先将KK1 拨至‘停止’档、KK3 拨至‘编程’档、KK4 拨至‘控存’档、KK5 拨至‘置数’档,由CON 单元的SD05——SD00 开关给出需要编辑的控存单元首地址(000000),IN 单元开关给出该控存单元数据的低8 位(00010001),连续两次按动时序与操作台单元的开关ST(第一次按动后MC 单元低8 位显示该单元以前存储的数据,第二次按动后显示当前改动的数据),此时MC 单元的指示灯MA5——MA0 显示当前地址(000000),M7——M0 显示当前数据(00010001)。
然后将KK5 拨至‘加1’档,IN 单元开关给出该控存单元数据的中8 位(00100010),连续两次按动开关ST,完成对该控存单元中8 位数据的修改,此时MC 单元的指示灯MA5——MA0 显示当前地址(000000),M15——M8 显示当前数据(00100010);再由IN 单元开关给出该控存单元数据的高8 位(00110011),连续两次按动开关ST,完成对该控存单元高8 位数据的修改此时MC 单元的指示灯MA5——MA0 显示当前地址(000000),M23——M16 显示当前数据(00110011)。
微程序控制器实验
得到下一条微指令地址的有关技术
主要包括:
①微程序顺序执行时,下地址为本条微指令地址加1。 ②在微程序必定转向某一微地址时,可以在微指令字中的相关字段中给出该 地址值。 ③按微指令(上一条或本条)的某一执行结果的状态,选择顺序执行或转向某 一地址,此时必须在微指令字中指明需判断的执行结果及转移地址。要判断的 执行结果,可以是运算器的标志位状态,控制器的执行状态,如多次的微指令 循环是否结束,外设是否请求中断等等。 ④微子程序的调用及返回控制,会用到微堆栈。 ⑤依条件判断转向多条微指令地址中的某一地址的控制,它可以是前述第③ 条的更复杂一点的用法,也包括依据取来的机器指令的操作码,找到对应该条 指令的执行过程的一段微程序的入口地址。这后一种情况通常被称为微程序控 制中的功能分支转移。此时在微指令字中直接给出多个下地址是不现实的或不 合理的,应找出更合理的解决方案。
用/VECT信号把通 过水平板上的开关给出 分 别 用 / MAP 的10位微指令的手拨地 控制器的第三 和 / PL两 个信 号 选 址接通到Am2910的D输 个组成成分,是 通 MAPROM 和 微 指 入端。 微程序定序器 与 Am2910 配 套 的 址 字 段 的 输要 包 括 令下地 电 路 , 主 MAPROM和用于形成/CC信号逻辑值的条件 出 送 到 Am2910 的 D Am2910器件及其 判定线路。MAPROM被用作为指令微地址映 输入端,从而形成D 配套电路。 把 CP 接选 1 逻 辑 输入端的3 电源, 射部件,它变换指令的操作码为该指令对应的 把/CCEN接 使微 微程序段入口地址,由两片74LS2716ROM芯 功能。 指 令 地 地,使Am2910的条 址十1总是执 片组成,其地址为指令的操作码,对应单元中 件判断结果只取决于 行。 存放相应微程序段的入口地址,执行读操作, /CC。 并用/MAP选通读出的信息,解决的是指令 功能分支问题。 把Am2910的 /OE端接地,使其 输出Y11一Y0总保 持有效(实用Y9一YO 共10位)。
实验三:微程序控制器实验
《计算机组成原理》实验报告实验三:微程序控制器实验学院:专业:班级:学号:学生姓名:实验日期:指导老师:成绩评定:计算机学院计算机组成原理实验室实 验 三一、 实验名称:微程序控制器实验二、 实验目的:掌握微程序的编制、写入、观察微程序的运行情况 ,了解微程序流程原理。
三、 实验原理:微程序控制器的基本任务是完成当前指令的翻译和执行,即将当前指令的功能转换成可以控制硬件逻辑部件工作的微命令序列,以完成数据传输和各种处理操作。
它的执行方法就是将控制各部件动作的微命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示称为微指令。
这样就可以用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。
微程序存储在一种专用的存储器中,该存储器称为控制存储器。
微程序流程图:NOP00指令译码P<1>IN->R0R0->OUT NOPR0->AR0->BA+B->R00130320405333530ADDINOUTHLT01010135四、实验设备:TD-CMA实验系统一套五、实验步骤:1、对微控器进行编程(写)(1)将时序与操作台单元的开关KK1置为‘停止’档,KK3置为‘编程’档,KK4置为‘控存’档,KK5置为‘置数’档。
(2)使用CON单元的SD05-SD00给出微地址,IN单元给出低8位应写入的数据,连续两次按动时序与操作台的开关ST,将IN单元的数据写到该单元的低8位。
(3)将时序与操作台单元的开关KK5置为‘加1’档。
(4)IN单元给出中8位应写入的数据,连续两次按动时序与操作台的开关ST,将IN单元的数据写到该单元的中8位。
IN单元给出高8位应写入的数据,连续两次按动时序与操作台的开关ST,将IN单元的数据写到该单元的高8位。
(5)重复(1)(2)(3)(4)四步,将二进制代码表的微地址(地址和十六进制)写入芯片中。
2、对微控器进行校验(读)(1)将时序与操作台单元的开关KK1置为‘停止’档,KK3置为‘校验’档,KK4置为‘控存’档,KK5置为‘置数’档。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微程序控制器实验原理
一、微程序控制器简介
微程序控制器是计算机中一个重要的控制单元,它负责解析和执行计算机指令。
在计算机中,指令是由一系列操作码组成的二进制序列,微程序控制器通过对这些操作码进行解析和执行,指导计算机完成各种操作。
本文将详细介绍微程序控制器的实验原理。
二、微程序控制器的工作原理
微程序控制器的工作原理主要包括以下几个方面:
1. 存储和解析指令
微程序控制器首先将存储在存储器中的指令读取到指令寄存器中,然后对指令进行解析。
指令解析过程中,微程序控制器会将指令的操作码和操作数从指令寄存器中提取出来,并根据不同的操作码进行相应的操作。
2. 控制信号的生成
微程序控制器根据解析得到的操作码生成相应的控制信号,控制信号通常包括时钟信号、数据写入信号、数据读取信号等。
这些控制信号会被发送给计算机的其他部件,控制其按照指令的要求进行相应的操作。
3. 微指令的执行
微程序控制器根据解析得到的操作码和相应的操作数,执行相应的微指令。
微指令是微程序控制器中的最小指令单位,它可以完成一些基本的操作,如数据传输、逻辑运算、算术运算等。
微程序控制器通过执行一系列的微指令来完成整个指令的操作。
4. 微程序的存储和调用
微程序控制器中的微指令是存储在微存储器中的,微存储器作为微程序控制器的核心组成部分,它负责存储和调用微指令。
微程序控制器在执行指令时,会根据微指令的地址从微存储器中读取相应的微指令,然后执行。
三、微程序控制器的实验原理
微程序控制器的实验原理主要包括以下几个方面:
1. 环境准备
进行微程序控制器的实验需要准备相应的实验环境。
首先需要搭建一个实验平台,包括微程序控制器、指令存储器、数据存储器等。
同时还需要准备实验所需的指令和数据,可以通过编程的方式生成指令和数据。
2. 设计微程序
在进行微程序控制器的实验前,需要先设计相应的微程序。
微程序设计是指根据具体的指令集和指令执行流程,将指令分解为微指令,并确定微指令之间的执行顺序和相互之间的依赖关系。
微程序设计的目标是使微程序的执行过程尽可能地高效和准确。
3. 实现微程序控制器
将设计好的微程序转化为实际的微程序控制器。
在实现过程中,需要根据微程序的设计将微指令存储到微存储器中,并设置好微程序控制器的时钟信号,以保证微程序的顺序执行。
4. 进行实验测试
将准备好的实验环境和实现好的微程序控制器连接起来,进行实验测试。
在测试过程中,可以通过输入不同的指令和数据,观察微程序控制器的执行情况和计算机的输出结果,以验证微程序控制器的正确性和有效性。
四、微程序控制器实验的应用
微程序控制器实验在计算机领域具有重要的应用价值。
在教育领域,可以通过微程序控制器实验来帮助学生深入理解计算机的工作原理和指令的执行过程,提高学生的实践能力和创新意识。
在科研领域,可以利用微程序控制器实验来研究计算机架构和指令集的优化问题,提高计算机的性能和效率。
在工程领域,可以通过微程序控制器实验来设计和开发各种类型的计算机,满足不同场景下的需求。
五、总结
微程序控制器是计算机中一个重要的控制单元,通过对指令的解析和执行,指导计算机完成各种操作。
在进行微程序控制器的实验时,需要进行相应的环境准备、微程序设计和微程序控制器的实现。
微程序控制器实验在教育、科研和工程领域都有着广泛的应用前景。
通过微程序控制器实验,可以更深入地理解计算机的工作原理,提高计算机的性能和效率,促进计算机技术的发展。