首页 > 其他分享 >《计算机组成原理》课 程 设 计 报 告

《计算机组成原理》课 程 设 计 报 告

时间:2024-12-18 21:00:24浏览次数:6  
标签:R0 计算机 0000 端口 000 指令 寄存器 原理 组成

题 目:    RCLN R0与RCRN R0 扩展指令设计  

目录

1、数据通路分析

2、微程序控制器分析

3、指令系统分析

4、微程序控制器指令周期流程图

5、微指令编码

6、测试程序和运行结果

7、心得体会

1、数据通路分析

AM2901是一个四位数的算术逻辑单元(ALU),它由以下关键组件构成:算术逻辑单元本身,负责执行基本的算术和逻辑运算;输入多路选择器,用于从多个来源选择数据输入;输出选择器,决定如何将结果数据输出到其他部分;一组寄存器,用于存储中间数据;以及一个移位器,允许数据在寄存器之间或内部进行位移操作。

图1  AM2901芯片的内部组成结构

图2  36位微型开关的控制功能分配

1)算术逻辑ALU

具体参见表1-1。ALU的Cn为最低位进位输入信号,减法运算要求Cn=1,其余的运算Cn=0。ALU另输出4个状态标志位,其中“F=0000”为零标志,为1时表明ALU运算结果F为0;Cn+4为最高位进位输出信号;F3为最高数据位,当数据用补码表示时该位指示数据的符号,即0表示正数,1表示负数;OVR为运算溢出标志位,1表示补码运算溢出,结果错误。

2)通用寄存器组

AM2901拥有一组通用寄存器,这组寄存器由16个独立的4位寄存器构成,它们被编号为R0至R15,地址范围从0000至1111。这组寄存器可以通过两个端口进行访问:A端口和B端口。A端口仅具备输出功能,这意味着数据只能从A端口读取,而不能写入。B端口则具备输入和输出的双重功能,既可以从B端口读取数据,也可以向其中写入数据。当通过A端口或B端口进行数据访问时,需要通过特定的地址编码来指定要访问的寄存器。输入信号中的A端口地址编码决定了A端口输出的寄存器地址,而B端口地址编码则决定了B端口用于输出和写入操作的寄存器地址。数据可以通过A端口和B端口被读取出来,但如果需要向寄存器写入数据,则必须通过B端口,并且这一写入操作受到写入信号/WE的控制。只有当/WE信号有效时,数据才能被写入到指定的寄存器中。为了确保ALU的R和S端的数据在B端口写入操作时不受影响,A端口和B端口输出的数据分别被A锁存器和B锁存器所锁存,这样可以稳定数据输出,防止数据在写入过程中发生意外变动。简而言之,AM2901的寄存器组设计允许灵活的数据访问和保护,确保了数据处理的稳定性和可靠性。

3)Q寄存器

Q寄存器为4位,其主要用途是为乘、除运算提供存放乘数或商的寄存器,也可用于临时存放其他数据。Q寄存器具备对其数据进行左移1位或右移1位的操作功能。

4)ALU输入选择器

AM2901使用了两个多路选择器为ALU提供两个操作数R和S的来源。R可选择来自数据总线的数据D(来自运算其外部,如控制器、主存储器或I/O设备)或寄存器组端口A的数据;S可从寄存器组端口A、B和Q寄存器3个来源选取数据。两个操作数来源的组合由控制信号I2I1I0的编码确定。

5)移位器(由三选一实现)

4位,用于对ALU的输出实现直送、左移1位或右移1位处理,以扩展ALU的处理功能。

6)输出选择器

AM2901输出数据Y有两个来源:一是ALU的运算结果F,二是寄存器组端口A的输出。输出Y的选择,以及ALU的运算结果F如何传送给寄存器组端口B或Q寄存器,由控制信号I8I7I6的编码确定。

7)Am2901的时钟信号

Am2091使用一个时钟信号CLK作为内部通用寄存器组、A/B锁存器和Q寄存器的打入信号,如图1-2所示。CLK为高电平时,A、B锁存器输入端的数据直通输出端,CLK的下降沿将输入的数据锁存。CLK为低电平时通用寄存器从B口接收数据,CLK的上升沿将输入的数据锁存,Q寄存器在CLK上升沿时刻接收数据。

图3  16位机微程序入口地址映射表

2、微程序控制器分析

1)微指令格式

根据机器指令功能、格式和数据通路所需的控制信号,采用如图2-1所示的微指令格式。微指令字长39位,顺序字段11位(判别字段P4~P0,后继微地址NμA5~NμA0),控制字段29位,微命令直接控制。

2)微程序流程图

根据TEC-8模型计算机的指令系统和控制台功能以及数据通路,TEC-8模型计算机的微程序流程图见下图。在图10.17中,为了简洁,将许多以“A-”为前缀的信号,省略了前缀。需要说明的是,图中没有包括运算器组成实验、双端口存储器实验和数据通路3部分。

图4  TEC-8模型计算机微程序流程图

3)微程序控制器电路

根据TEC-8模型计算机的指令系统、控制台功能、微指令格式和微程序流程图,TEC-8模型计算机微程序控制器电路如图10.18所示。图10.18中,以短粗线标志的信号都有接线孔。信号R4-I、R5-I、R6-I、IR7-I、CI和ZI的实际意义分别等同于R4、R5、R6、R7、C和Z。NT信号是时序发生器接到中断请求脉冲PULSE(高电平有效)后产生的中断信号。

①控制存储器

控制存储器由5片58C65组成,在图10.18中表示为CM0~CM4。其中CM0存储微指令最低的8位微代码,CM5存储微指令最高的8位(实际使用7位)微代码。控制存储器的微代码必须与微指令格式一致。58C65是一种8K×8位的E2PROM器件,地址输入A12~A0。由于TEC-8模型计算机只使用其中64B作为控制存储器,因此将A12~A6接地,A5~A0接微地址uA5~μA0。在正常工作方式下,5片E'PROM处于只读状态;在修改控制存储器内容时,5片E2PROM处于读、写状态。

②微地址寄存器

微地址寄存器μAR由1片74174组成,74174是一个6D触发器。当按下复位按钮CLR时,产生的信号CLR#(负脉冲)使微地址寄存器复位,A5~A0为O0H,供读出第一条微指令使用。在一条微指令结束时,用T,的下降沿将微地址转移逻辑产生的下条微指令NuA5 NuA4~NuA0写入微地址寄存器。

3、指令系统分析

1)TEC-XP+计算机的指令分类

TEC-2000指令系统按指令的功能和执行步骤可划分为A、B、C、D四组:

A组:主要完成通用寄存器之间的数据传送或运算,以及少数特殊操作,在取指后一步完成。

基本指令:ADD,SUB,AND,OR,XOR,CMP,TEST,MVRR,INC,DEC,SHR,SHL,JR,JRC,JRNC,JRZ,JRNZ

扩展指令:ADC,SBB,NOT,RCL,RCR,ASR,STC,CLC,EI,DI,JRS,JRNS,JMPR

B组:需完成一次主存读/写操作,或IO读/写操作,在取指后两步完成。第一步向地址寄存器送入16位(或8位的I/O端口)地址,第二步完成读、写操作。

基本指令:LDRR,STRR,PUSH,POP,PSHF,POPF,MVRD,IN,OUT,JMPA,RET

C组:完成两次主存读/写操作(间址操作),在取指令后三步完成。第一次读出的数据是操作数的地址,读出后直接(或经过一次加法运算)将其送入地址寄存器,省掉第二次内存读/写操作的地址传送步骤。CALR指令先用第2步保存PC内容到堆栈,第3步把寄存器中的子程序入口地址传送到程序计数器PC中。

扩展指令:CALR,LDRA,STRA,LDRX,STRX

D组:完成两次内存的读、写操作,在取指之后四步完成。

基本指令:CALA

扩展指令:TRET

8位指令操作码(记作“IR15–IR8”)的特殊含义:

① IR15–IR14用于区分指令组,0X表示A组,10表示B组,11表示C、D组;

② IR11用于区分C、D组,IR11=0为C组,IR11=1为D组;

③ IR13用于区分基本指令和扩展指令,基本指令为0,扩展指令为1。

④ IR12用于简化控制器实现,暂定为0。

⑤ IR10–IR8用于区分同一指令组的不同指令。

TEC-XP+的基本指令已全部实现,扩展指令只完成了指令格式和执行流程的设计,控制信号的逻辑尚未实现,可由用户扩展实现。

图5  基本指令汇总表

2)TEC-XP+计算机的指令执行流程

TEC-2000计算机指令的执行流程由节拍发生器(即时序产生器)控制,节拍(即机器周期或CPU周期)用T4T3T2T1T0来编码,其中,在组合逻辑控制器中T4恒为0(T4=0)。下图为TEC-XP+的指令执行流程图,方框表示1个节拍(即机器周期),左上角为节拍的编码(用T3T2T1T0表示)。

图6  TEC-XP+指令执行流程图

  1. 微程序控制器指令周期流程图

1)分析基本指令流程

如图4-1所示,DBUS代表数据总线,ABUS(D)代表数存地址总线,ABUS(I)代表指存地址总线,RD代表数存读命令,WE代表数存写命令,RD代表指存读命令。

图7  RCLN R0指令周期

图8  RCRN R0指令周期

2)取指周期

程序计数器PC里存放指令在内存中的地址,并将这个地址取出来放到数据地址寄存器AR中;数据地址寄存器AR保存当前CPU所访问数据的内存单元地址,接下来根据AR中的地址,找到内存中的指令,然后将其放到数据缓冲寄存器DR中;数据缓冲寄存器DR用来暂时存放ALU的运算结果,由数据存储器读出的一个数据字,暂时存放CPU与外界传送的数据;指令寄存器IR保存当前正在执行的一条指令,操作码字段OP的输出就是指令译码器的输入,操作码一经译码后,即可向操作控制器发出具体操作的特定信号。第二条指令同理可得。

3)执行周期

从寄存器R0中取出数据,放到ALU的操作数缓冲区中,并在ALU中完成对应的左移一位数据的操作;同时记录是否有进位,将进位结果存放在CF中,并做带进位的加法操作;从寄存器R0中取出数据在ALU中完成减一操作;最后取R0地址并对其数值进行判断,不为0时跳转至程序开始,为0执行公操作,流程图结束。

图9   RCLN R0指令周期流程图

图10   RCRN R0指令周期流程图

5、微指令编码

本小组主要负责RCLN R0(R0循环左移,按 R0的值N为移动位数)与RCRN R0(RO循环右移,按RO的值N为移动位数)的 扩展指令设计

  1. RCLN R0该扩展指令中用到了如下五条基本指令:

MVRR     R1, R0       ;将寄存器R0中的值移动到寄存器R1中

SHL     R0         ;DR,C←DR*2,左移一位,相当于乘以2

ADD     DR,SR  ;R←DR+SR,将DR和SR的值相加,并存回DR

DEC     DR  ;DR←DR-1,将寄存器DR的值减1

JRNZ    ADR  ;Z=0 时跳转

图11  RCLN RO扩展指令微程序编码表

(2)RCRN R0该扩展指令中用到了如下八条基本指令:

90  MVRR R1,R0  ;将R0寄存器的值复制到R1寄存器

91  SHR R0       ;将R0寄存器的值右移一位

92  ADD R6,R6    ;将R6寄存器的值加到自身上,相当于R6 = R6 * 2

93  CMP R13,R6  ; 比较R13寄存器和R6寄存器的值

94  JRZ 96 ;z=1,即c为1,则不跳转,为0反之

95  ADD R0,R15 ;将R15寄存器的值加到R0上

96  DEC R1 ;将R1寄存器的值减1

97  JRNZ 91 ;如果R1寄存器的值不为零,则跳转回91继续执行循环

微地址

下址

CI3~CI0

SCC

MRW

I2~I0

I8~I6

I5~I3

B 口

A 口

SST

SSH SCI

DC2

DC1

90

00110000

0110

0000

010

100

011

000

0001

0000

000

000

000

000

91

00110000

1110

0000

100

011

111

000

0001

0000

110

000

000

000

92

00110000

1110

0000

100

011

111

000

0000

0000

001

010

000

000

93

00110000

1110

0000

100

011

110

001

0001

0000

001

000

000

000

94

10010001

1110

0100

100

000

000

000

0000

0000

000

000

000

000

95

00110000

0011

0000

000

000

000

000

0000

0000

000

000

000

000

96

00000000

0000

0000

000

000

000

000

0000

0000

000

000

000

000

图12  RCRN R0扩展指令微程序编码表

其中DR数据寄存器在微指令编码时设置为R0,用于存放左移的数值;R0存放循环次数。在跳转指令实现循环中,假定指令存放在指存中,数据a已经存放在寄存器R0寄存器中。并将R0赋值给另一个寄存器执行周期先进行左移R0一位的操作,同时判断结果有无进位,并存放在CF标志寄存器中;然后执行带进位的加法,将进位结果与寄存器R0相加,实现将左移的一位数据循环至最右位;将代表循环次数的寄存器R1减一;最后判断是否跳转执行,当R1=0时结束指令跳转“公操作”,当R1≠0跳转至程序开始,循环执行上述操作。

对于MVRR R1,R0赋值操作,CI3~0为1110设置为顺序执行;由于R0值是在执行先赋值进寄存器的,执行过程中对寄存器无写入操作,所以这里MRW设置为无读写;由于将R0的值赋值给R1,所以B口改为0001,A口改为0001。

对于左移操作SHL R0,CI3~0为1110设置为顺序执行;由于R0值是在执行先赋值进寄存器的,执行过程中对寄存器无写入操作,所以这里MRW设置为无读写;由于左移一位数据的操作等于对数据乘以2,即将两个相同代表数值相加,故I5~3为设置为加法功能;这里I2~0设置为011,选择输入组合为B口对应寄存器的地址;输入从A口、B口对内部寄存器组的寄存器进行读写操作的地址均为0000,DC2、DC1分别为传递NC、开关到内部总线;逻辑运算Cin为0,即SSHCSI为000;左移操作,ZVS不变,SST为110.

对于带进位的加法操作ADD R0,Cy,顺序执行,无读写操作;将左移操作的进位标志位加入到寄存器R0中,所以I5~3设置位加法操作000;由于是带进位的加法,所以SSHSCI位010;接收ALU标志位输出的值,SST为001。

对于减一操作DEC R1。顺序执行;无读写操作;将寄存器R1的值减一,做减法操作,故I5~3设置为减法001;由于是对寄存器R1的操作,故将B口改为0001;逻辑运算,SSHCSI为001;接收ALU标志位输出的值,SST为000。

ST R1,下址为90,即R0不等于0时跳转循环执行,R0等于时顺序执行;无读写操作;逻辑运算SSHCSI为000;CZVS的值保持不变,SST为000;SCC为0100,即当R0不等于0时条件不成立则跳转。

6测试程序和运行结果

图13   RCLN RO运行结果图

(1)运行结果取决于原始R0的值。先输入R0值,那么在执行DEC指令后,DR的值将减少1。如果这个新的值不为0,程序将跳转到ADR执行;如果为0,程序将不会跳转,而是继续顺序执行后面的指令。

图14   RCRN RO运行结果图

(2)R1寄存器的值被设置为与R0相同,R6的值被初始化为某个初始值。R0的值会被右移一位,R6的值会翻倍,这是将R6加上它自己的值。R6的值与R13的值进行比较。如果R6的值等于R13,则不执行跳转,继续执行循环的下一步;如果R6的值小于R13,则跳转到标签96。如果R6的值小于R13,R0的值会加上R15的值。无论是否执行了条件加法,R1的值都会减1。最后,如果R1的值不为零,循环会跳回到91继续执行;如果R1的值为零,则循环结束。

标签:R0,计算机,0000,端口,000,指令,寄存器,原理,组成
From: https://blog.csdn.net/ZYS7078/article/details/144569276

相关文章

  • 【计算机网络篇】计算机网络期末复习题库详解
         ......
  • 视频去重原理及 Demo 示例
    视频去重是一个常见的需求,主要用于视频库或平台管理中,通过判断视频是否相同(或相似)来移除冗余内容。实现视频去重可以通过多种方法,具体选择取决于业务场景和性能要求。1.视频去重的原理1.1基本原理视频去重的核心在于计算视频的特征,然后比较这些特征以判断视频是否相同......
  • 北斗系统中与“三”有关的奥秘:卫星导航的“三球交汇”原理(北斗卫星定位原理)
    文章目录引言I北斗系统中与“三”有关的奥秘卫星导航的“三球交汇”原理(北斗卫星定位原理)北斗系统的“三个组成部分”北斗信息服务的“三要素”北斗的“三频服务”信号体制北斗系统“三步走”战略北斗独创的“三种轨道”混合星座北斗系统的“三大特色”II......
  • 计算机网络——期末复习(2)1-3章考试重点
    第一章概述1、发送时延=,其中数据帧长度为数据块大小1B=8位2、传播时延=3、 第二章物理层1、奈氏准则:理想低通信道的最高码元传输速率=2W,W为理想低通信道的频率带宽2、香农公式:,C为信道的极限信息传输速率,单位b/s;W是信道的频率带宽,S是信道内所传输信号的平均速率,N是......
  • 计算机网络——期末复习(1)背诵
    背诵交换机与路由器:交换机连接同一子网,利用帧中的目的物理地址转发帧,工作在数据链路层;路由器连接不同子网,利用IP数据报中的目的IP地址转发IP数据报,工作在网络层。五层的任务:(1)物理层的任务就是透明地传输位流,如以太网的物理层部分、ADSL、SDH。(使用何种信号来表示比特1和0问题)(2......
  • java 归并排序,原理、算法分析、实现细节、优缺点以及一些实际应用场景
    更多资源推荐:http://sj.ysok.net/jydoraemon提取码:JYAM实用优质资源/教程公众号【纪元A梦】###归并排序的详细解析探讨归并排序,包括其工作原理、算法分析、实现细节、优缺点以及一些实际应用场景。####1.基本概念归并排序是一种基于分治法的高效排序算法。它的基本思想是将......
  • 烟雾检测识别智慧矿山一体机智慧矿山AI平台建设由哪几部分组成?
    随着科技的不断进步,智慧矿山建设已成为矿业领域的重要发展方向。它通过集成先进的信息技术、物联网技术、大数据分析和人工智能技术,实现对矿山生产过程的全面监控和管理,从而提高矿山的安全性、生产效率和经济效益。本文将详细介绍智慧矿山AI平台的建设构成以及视频分析技术的应用......
  • [计算机网络]ARP协议的故事:小明找小红的奇妙旅程
    1.ARP小故事在一个繁忙的网络世界中,每个设备都有自己的身份标识——MAC地址,就像每个人的身份证号码一样。在这个故事里,我们的主角小明(主机)需要找到小红(目标主机)的MAC地址,才能给她发送一条重要的消息。第一幕:小明准备出发小明住在局域网(LAN)中,他知道小红也在同一个局域网里。......
  • webpack打包流程及原理
    Webpack是一个模块打包工具,它可以分析项目的依赖关系,将这些依赖转换和打包为合适的格式以供浏览器使用。以下是Webpack打包流程的简化版:**初始化:**读取webpack配置文件,创建compiler对象。**配置:**读取配置文件中的入口和插件选项。**编译:**开始从入口文件开始解析......
  • 【stable diffusion部署】文生图模型原理,以及Stable Diffusion部署体验
    前言LLM推理优化系统工程概述截止到目前市面上比较主流的基于文字生成影像的模型都是基于了3大部分组成的。EncoderModel,GenerationModel,DecoderModel。并且这三个部分是分开训练,然后组合在一起从而构成了文生图大模型。图片来源于B站李宏毅教授讲问生图原理,侵删......