ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:35.64KB ,
资源ID:17616041      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17616041.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(CPU设计Word文件下载.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

CPU设计Word文件下载.docx

1、 2、指令译码 3、指令执行 从存贮器中取出指令: 1、原理:根据冯 . 诺依曼型机的原理(指令在存贮器中按顺序存放.), 在CPU能执行指令之前,它必须将这条指令从存贮中取出,CPU通过执行如下的操作序列完成这个任务的: 【1】选择存贮单元由A5. 0确定 【2】对A5. 0译码、延迟、并向存贮器发一个信号(如 READ或R/W=1),使存贮器将此指令输出到它的输出引脚。这些引脚与CPU的D7.0相连接。CPU从这些引脚读入数据。2、具体的操作 (以下取指令分为三个状态,但不是唯一的) 【1】要取的指令的地址存放在程序计数器PC中,由于A5. 0从地址寄存器AR中接收值,因此第一步就要把PC

2、的内容拷贝到AR中。这样,取指令的第一个状态就是: FETCH1: AR PC这一状态的意义就是当FETCH1为真时,把PC的值传给AR,执行微操作AR PC,以下同理。【2】 CPU必须从存贮器中读出指令。为此CPU必须发一个READ信号到存贮器的RD端使存贮器将数据送到D7. 0上。同时,CPU读进该数据并放到DR中,因为DR是用来访问存贮器的唯一寄存器。同时还实现了微操作PC PC+1,为取下一条指令作准备。 FETCH2:DR M , PC PC+1【3】作为取指令的一部分,CPU还必须完成以下操作: * DR的高2位拷贝到IR,目的是确定指令的功能(即将指令的操作码读入IR) * D

3、R的低6位拷贝到AR,目的是对于OR 和SUB1 指令,这6位包含了该指令的一个操作的存贮器地址(因为一个数已经在AC中),将地址拷贝到AR可减少这些指令在执行周期的状态。而对于JRET和COM指令,也不会产生影响。它们不需要再次访问寄存器,因为他们恰好不会用到在AR中的值。一旦它们返回到FETCH1状态,FETCH1将把PC的值装载到AR,从而覆盖了没有用到的值。 IR DR7、6 , AR DR5.0取指令周期的状态图FETCH1FETCH2FETCH3指令译码由于本CPU只有四条指令,因此只有四个不同的执行周期,由IR中的值来确定的,以下为取指令和译码周期的状态图:OR执行周期SUB1执

4、 行周 期JRET执行周 期COM执行周 期 FETCH1 FETCH3 FETCH2 IR=00 IR=01 IR=10 IR=11指令执行【1】COM指令 功能是将AC的内容取反,主要是通过一个非门将AC的内容取反,执行周期的状态是: COM1:AC AC【2】JREL指令 代码是01AAAAAA,意即转移的目标地址由AAAAAA(6位二进制数)与原来的PC的 地址相加确定的,而AAAAAA在DR5.0中,所以有: JREL:PC PC+DR5.0【3】OR指令 为执行或指令,CPU必须完成以下操作: OR1:DR M ,从存贮器取出一个操作数送到数据寄存器; OR2:AC AC DR,数

5、据寄存器DR和AC的数进行或运算,并把结果存回AC中注意:M的地址是由A5.0确定,已存放在AR中。【4】SUB1指令 为执行该减法指令,(由于计算机是没有减法操作的,故减法要变为加上该数的补码 即对该数去反加1,因此该指令的执行周期从AC AC-M00AAAAAA-1变为AC AC+M00AAAAAA),CPU必须完成以下操作: SUB11:DR M,从存贮器取出一个操作数送到数据寄存器; SUB12:AC AC+DR, 对数据寄存器的数DR先求反(通过非门),再把取反后的数与AC的数相加,并把结果存回AC中;综上所述可得该CPU的完全状态图如下: SUB12 SUB11 JREL OR2

6、COM OR1四、建立所需要的数据通路1、与CPU的每个状态相关联的微操作(共九个状态) DR M , PC PC+1 FETCH3: IR DR7.6 , AR DR5.0 COM : AC AC JREL : PC PC+DR5.0 OR1 : OR2 : AC AC DR SUB11 : SUB12 : AC AC+DR2、建立数据通路的原理和方法存贮器数据通路的原理:【1】存贮器是通过引脚D7.0将数据送给CPU的8位内部总线。【2】存贮器的地址确定是通过地址引脚A5.0从AR中获得的。于是CPU与存贮器之间需要A5.0(地址)和D7.0(数据)通路。CPU内部的数据通路:【1】在CP

7、U的内部创建一条总线,并且在各个部件之间使用总线传递数据。3、CPU内部寄存器控制信号的定义和确定方法【1】原理:首先把各种操作重新分组,依据是把修改同一个寄存器的操作分配在同一组。在本CPU中其分配如下:AR: AR PC ; AR DR5.0PC: PC PC +1;PC DR5.0 ;PC PC +DR5.0DR:IR: IR DR7.6AC: ; AC AC DR ;【2】决定完成每个部件应完成的功能AR,DR ,IR ,AC 这四个寄存器总是从其他一些部件中载入数据。若数据已在总线上,则需要做的就是能够执行并行装入操作。(它们各自的LD端分别由ARLOAD、DRLOAD、IRLOAD

8、、ACLOAD信号同步装入)PC 这个寄存器能从其他一些部件中装入数据。还有自增当前值。所以应创建一个单独的硬件使之能自增当前值。(即要有PCINC信号进行自增)还要有载入信号PCLOAD。4、把每个部件都连接到系统总线上三态缓冲区原有的寄存器总是在结果准备好后立即输出到系统总线,造成多个结果同时 输出到系统总线的可能性出现,使CPU内部数据可能发生冲突。所以应增 加三态缓冲区加以控制。但AR的输出还应与A5.0相连,这是寻址所需。注:CPU的控制信号的设置见后面控制器的设计5、CPU最终的寄存器部分的图分析:【1】AR:仅仅向存贮器提供数据(地址),没有必要将它连接到内部总线上(也就是不用

9、连三态缓冲区)。故只要加上 ARLOAD实现从BUS装入数据,注意图中的 CLK是 CPU的核心时钟。【2】IR:不通过内部总线向任何其他部件提供数据而IR的输出将直接送到控制器用于确定 指令的功能。(不用接三态缓冲器)【3】AR PC:要接三态缓冲器由PCBUS控制同步。【4】AC:本CPU不向其他任何寄存器提供数据。【5】D7.0:各部件所需要的数据位不是统一的。显然,从存贮器读出的数据为8位,有些部件需要8位D7.0(如 DR、AC),而有些部件只需6位D5.0(如AR、AC),还有些只需要2位D7.6(如:IR),必须确定哪些寄存器从总线上的哪些为上接收和发送数据。对于DR寄存器来说应

10、该由DRBUS实现同步。DRLOAD实现LD(载入)。【6】AC:必须能载装AC+DR的和,以及AC DR的逻辑或、AC取非的结果。CPU必须包含一个能产生这些结果的ALU(算术逻辑运算器)并由ACLOAD实现装入。该CPU最终的寄存器部分的图如下: M READ 6 8A5.0D7.0 AR LD 6 5.0 MEMBUS 5.0 6 ARLOAD PC LD INC 5.0 6 PCBUS 6 5.0ALU2 6 ALUS4 PCLOAD PCINC DR DRBUS 8 8 8 8 DRLOADALU1 ACLD8 ALUS1.3 ACLOADIR2 7.6 IRLOAD CLK 8 位

11、 总 线5、ALU 的设计1、ALU数据通路的分析(由于要将运算结果送回AC、PC中,又它们的数据位数不同,故用2个ALU)ALU1必须能接收AC和DR作为输入,然后把运算结果输出到AC,还有ALU2必须能接收到PC和DR5.0做输入,然后把运算结果输出到PC。2、修改AC、PC的内容有以下传送:COM :OR2 :SUB12 :FETCH2 : PC PC+1JREL :由于具有多个操作要通过ALU1、ALU2运算,故要用多路选择器从正确的输出中选择数据送入AC、PC。3、具体设计 ALU1的设计【1】算术运算部件可变为 先对DR取反,再执行加法。 还有有可能会有进位产生,故还要用Cin来控

12、制输入,ALUS1是用来控制Cin的(实现了 末位加1的功能。【2】逻辑运算部件 用一个8为2选1的多路选择器。MUX的输入有两种运算,分别为AC ,AC DR。用控制信号ALUS1来实现2选1的输出。【3】ALU1的逻辑电路图如下: 8 8 8 DR DR A C 8AC 0 1 MUX S0并行加法器 Cin ALUS1 ALUS2 0 1 MUX S1 ALUS3 To ACALU2的设计【1】由于只有算术运算,且只要弄加法运算,有一个2选1的多路选择器,选择是否要跳转到另一个地址。(ALUS1作为控制信号)ALU2的的逻辑电路图如下: 0 RD5.0 并行加法器 MUX s0 PC 6

13、 6 6 ALUS4 6 TO PC6、控制器的设计 硬布线方法设计控制器1、该CPU的控制器【1】组成包含三部分 计数器:保存当前状态 译码器:接受当前状态并为每个状态生成单独的信号 逻辑组合:接受单独的状态信号,为每一部件生成控制信号以及计数器的控制信号( 反 馈)【2】一般硬连线控制单元原理图 逻 辑 译 码 器 计 数LD INC CLR输入 控制信号计数器理应有时钟(CLK)输入端),本图省略。【3】确定计数器的位数本CPU共9个状态。(四条指令,共9个状态)2的4次方为16大于9,所以需要一个四位计数器和一个416位译码器。显然,译码器中有7个输出没用到。2、计数器和译码器的设计原

14、则 计数器的输出状态共16个(00001111) 译码器的输出最多只有16个,本CPU实际只用到9个,分析如下【1】 FECTH1 状态(公共状态,又称公共操作) 规定为计数器的0值,使用计数器的CLR=1(清零有效)达到这一状态。这也是因为CPU的任一条指令执行完毕,CPU一定转入取指令状态。【2】 建顺序状态设定为计数器的连续值,用INC(自增1)实现。这样的好处是控制器通过发出计数器的INC信号来到达任一需要的状态。 FETCH2 赋值为计数器值 1 FETCH3 . 2 COM . 8 (由于映射函数建立的需要,故设置为8) JREL . 10 OR1 . 12 OR2 . 13 SU

15、B11 . 14 SUB12 . 15由于本CPU的任一条指令的执行都是少于或等于2个状态,因此就要求每条指令执行周期的第一个状态之间的计数值间隔至少应为2。于是,为指令的第一个状态建立函数映射为1 IR1.0 0,通过这个新的映射函数确定个指令的执行周期的入口: 1000(8) COM 1010(10)JREL 1100(12)OR1 1110(14)SUB11该CPU的硬布线控制器图如下: 计数器 0 1 译 2 。 码 。 器 8 10 1 2 13 14 15译码器1IR0.10 4 COM 4 FETCH3 JRET BUS12 OR2【4】计数器LD、INC、CLR控制信号的确定L

16、D(装载)应在每个取指周期的末尾FETCH3状态中发生,因为准备进入该指令的执行 周期的第一个状态,所以必须要装载1IR1.00才能进入指令的正确执行周 期。不难得出逻辑函数应是:LD=FETCH3IR DR7.6,AR DR5.0INC(增1)因为在确定第一个状态(由计数器输入1IR1.00决定)后,就要决定接下来的状态,其中有一些只需要增1。即产生IN C信号即可。 本CPU 中的逻辑函数是:INC=FETCH1+FETCH2+OR1+SUB11,对应的电路图如下: INC OR1CLR(清0)每条指令执行完后都要转入下一条指令的取指周期,所以必定要清0。本 CPU的逻辑函数是: CLR=

17、COM+JRET+OR2+SUB12,对应的电路图如下: JRET CLR 3、根据译码器的输出信号经组合后产生CPU中寄存器的有关控制信号,用于控制AR , PC, DR , IR , M , ALU1,ALU2及缓冲器。 【1】ARLOAD(转载地址寄存器控制信号) 因为在FETCH1中实现 AR PC FETCH3中实现 AR DR5.0 所以逻辑函数为:ARLOAD=FETCH1+FETCH3 【2】PCLOAD,PCINC PCLOAD=JRET1 PCINC=FETCH2 【3】DRLOAD(实现DR M) DRLOAD=FETCH2+OR1+SUB11 【4】ACLOAD ACL

18、OAD=COM+OR2+SUB12 【5】IRLOAD IRLOAD=FETCH3 【6】ALUS1 ,ALUS2,ALUS3,ALUS4 ALUS1,ALUS2,ALUS3是ALU1的控制信号, ALUS1是控制算术运算进位的,当ALUS1=1时,表示要有进位输入到下一个部件, 否则没有输入。 ALUS2是控制逻辑运算的,当ALUS2=1时,执行取反运算,当ALUS2=0时,执行 或运算。(ALUS2=COM) ALUS3是控制算术运算、逻辑运算输入的,当ALUS3=1时,逻辑运算部分的结果 输入,当ALUS3=0时,算术运算部分的结果输入。ALUS3=COM+OR2 ALUS4是ALU2的

19、控制信号ALUS4是决定PC是否跳转的,当ALUS4=1时,PC与当前地址的后六位相加,实现跳 转,当ALUS4=0时,PC与0相加,即不跳转。ALUS4=JERT【7】缓冲器控制信号 许多操作需要从内部总线上获取数据,CPU 必须能控制缓冲器以便在合适的时候将数据放到总线上,为此应满足如下逻辑函数关系:MEMBUS=FETCH2+OR1+SUB11PCBUS=FETCH1READ=FETCH2+OR1+SUB11DRBUS=FETCH3+JERT+OR2+SUB12各元件的逻辑图如下: FETCH1 FETCH3 ARLOAD COM ALUS2 JERL ALSU4 JRET1 PCLOA

20、D FETCH2 PCINC OR1 ALUS3OR1 DRLOAD SUB11 FETCH2 OR1 MEMBUS COM SUB11 SUB12 ACLOAD FETCH1 PCBUSFETCH2 OR1 READ FETCH3 JERT DRBUSSUB11 OR2用微程序方法设计控制器该CPU微程序控制器的基本框图如下: IR MAP 2 4s 1 MUX 0SEL uOPS ADDR uAR (微地址寄存器) CLK 4 1、该CPU的微程序控制器基本框图的说明 【1】本CPU只有4条指令分别对应4个微程序,合共9条微指令(对应完全状态图9个状态)。 【2】指令操作码IR只有2位,分

21、别是 00、01、10、11 【3】MAP(映射逻辑)确定了访问微子程序的入口地址(即执行周期的第一条微指令), 此映射函数可与前面硬布线的相同,即为 1IR1.00 【4】两种可能的下址方式(有多路开关MUX实现选择): S=1操作码映射(经“指令译码”,从而确定进入一条新指令的执行周期的第一个微指令的入口地址,并送到uAR在CLK同步下,从控存取出这条微指令)。 S=0绝对跳转(下一条要执行的微指令在控存内,绝对地址由ADDR给定。)2、工作原理分析描述 【1】确定微子程序的第一条微指令(如OR指令的OR1微指令)入口地址(当S=1)。方法是根据取指中的最后一个状态(取指中的最后一条微指令

22、)FETCH3,紧跟着根据映射函数(通过输入MAP来实现)对IR进行译码,便能转入到(在四条指令中确定一条)指令执行周期的第一条微指令入口)。 【2】下址(后继地址)的确定。(当S=0) 用绝对跳转,还可以直接跳转到FETCH1状态。本CPU是有ADDR域所指定的。 【3】几个参数的设定 (1)控存中地址域的位数(输出绝对地址的宽度) 由于2的4次方为16 大于9,而本CPU共有9条指令,可以用4位。(2)MUX 到 微地址寄存器,再由 微地址寄存器 到 控存 因此,都要用4位的。(传输的时候位数要一致)(3)uOPS的位数 由于本次设计是用到水平型微指令设计法的(每个位代表一个操作),有于本

23、CPU有9种不同的指令,故本因有9位的,但由于有些指令时可以合并优化的,故不用9位。见下分析:1)本CPU的所有微操作并为其分配助记符(共9种不同的操作)。助记符微操作ARPC AR PCARDRAR DR5.0PCINPC PC+1PCDRPC PC+DRDRMDR MIRDRIR DR7.6COM(取反)OR(与)AC AC DRSUB1(减)2)可得到初级微指令的格式为:选择域 微操作域 下址域 1位 9位 4位在微指令字中,每一位表示一个微操作,当该位的值为“1”表示对应的微操作要发生(有效);当该位的值为“0”表示对应的微操作不发生(无效)。本CPU 的微程序控制器基本的水平微代码表格如下: 1位 4位状态地址SEL ARPCCOMSUB1 ADDR0000(0) 00001(1) 0 1 0010(2)*COM11000 (8)JRET11010 (10)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1