CPU的设计规范Word下载.docx

上传人:b****6 文档编号:21000603 上传时间:2023-01-26 格式:DOCX 页数:17 大小:272.01KB
下载 相关 举报
CPU的设计规范Word下载.docx_第1页
第1页 / 共17页
CPU的设计规范Word下载.docx_第2页
第2页 / 共17页
CPU的设计规范Word下载.docx_第3页
第3页 / 共17页
CPU的设计规范Word下载.docx_第4页
第4页 / 共17页
CPU的设计规范Word下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

CPU的设计规范Word下载.docx

《CPU的设计规范Word下载.docx》由会员分享,可在线阅读,更多相关《CPU的设计规范Word下载.docx(17页珍藏版)》请在冰豆网上搜索。

CPU的设计规范Word下载.docx

3)指令执行:

每条指令的执行周期也是唯一的

4.还要设计必要的数据通路和控制逻辑,以便实现这个有限状态机,最终实现这个CPU。

接下来,可以对CPU设计验证。

 

二、从存贮器中取指令

1.原理:

根据冯·

诺依曼型机的原理(指令在存贮器中按顺序存放),在CPU能执行指令之前,它必须将这条指令从存贮器中取出,CPU通过执行如下的操作序列完成这个任务:

1)选择存贮单元A[5……0]确定

2)对A[5……0]译码、延迟、并向存贮器发一个信号(如READ或R/W’=1),使存贮器将此指令输出到它的输出引脚。

这些引脚与CPU的D[7……0]相连接。

CPU从这些引脚读入数据。

2.具体的操作(以下取指令分为三个状态)

1)要取的指令的地址放在程序计数吕(PC)中。

由于A[5……0]从地址寄存器中接收值,因此第一眇就把PC的内容拷贝到AR中。

这样取指令周期的第一个状态就是(意思是FETCH1为真,把PC的值送到AR,以下同理)

FETCH1:

AR←PC(说明:

这一描述的方法是基于RTL)

2)CPU必须从存贮器中读取指令,为此CPU必须发一个READ信号到存贮器的RD端(对于ROM为OE端)使存贮器将数据发送到D[7……0]上。

同时,CPU读进来,并放到DR中,因为DR是用来访问存贮器的唯一寄存器。

同时实现PC←PC+1,为取下一条指令作准备。

FETCH2:

DR←M,PC←PC+1

3)作为取指令的一部分,CPU还必须完成两个事。

a)DR的高2位拷贝到IR,目的是确定指令的功能。

b)DR的低6位拷贝到AR,目的如下:

i.对于OR和SUB1指令这6位包含了该指令的一个操作数的存贮器地址(因为一个数已经在AC中),将地址拷贝到AR可减少这些指令在执行周期的状态。

ii.对于COM和JERL指令,也不支引起新的问题。

它们不需要再次访存,因为它们恰好不会用到在AR中的值。

一旦它们返回到FETCH1周期,FECTH1将把PC的值装载到AR,从而覆盖无用到的值。

FETCH3:

IR←DR[7,6],AR←DR[5……0]

3.取指令周期的状态图

三、指令译码

本CPU有四条指令,因此有四个不同的执行周期,为此用IR中的值来确定即可。

四、指令执行

方法:

分别对每条指令的执行周期作出详细的状态分析。

1.COM指令(执行周期)

功能是将AC的内容取反,执行周期状态是

COM1:

AC←AC’

2.JREL指令(执行周期)

指令码是01AAAAAA,操作为将PC的地址和地址AAAAAA相加后,再将相加的地址(目标地址)送回PC,而AAAAAA在DR[5……0]中。

JREL1:

PC←PC+DR[5……0]

3.OR指令(执行周期)

M的地址由A[5……0]确定,放在AR中,有两个状态。

OR1:

DR←M

OR2:

AC←AC∨DR

4.SUB1指令(执行周期)

功能为将AC中的数减去M的数再减一送到AC,可等价为AC中的数减到M中的数的反码,其中M的地址由A[5……0]确定,执行周期的状态为

SUB1:

SUB2:

AC←AC+DR’

综上所述可知CPU的完全状态图如下

五、建立所需的数据通路

1.与CPU的每个状态相关联的操作是(共九个状态)

AR←PC

IR←DR[6,7],AR←DR[5……0]

COM1:

AC←AC’

JREL1:

PC←PC+DR[5……0]

OR1:

OR2:

SUB1:

SUB2:

2.建立数据通路的原理和方法

1)存贮器数据通路的原理

1存贮器是通过引脚D[7……0]数据送给CPU

2存贮器的地址确定是通过地址引脚A[5……0]从AR中获得的。

于是CPU与存贮器之间需要A[5……0](地址)和D[7……0](数据)通路

2)CPU内部的数据通路(两种方案)

1直接通路(directpath)

所有需要传送数据的部件之间创建一条直接通路。

当然,可用多路选择器或缓存器为那些有多个数据源的寄存器从多个

输入中选择一个。

本设计可以是AR←DR[5……0]基AR←PC(2选1)

缺点:

仅适用于简单CPU

2总线(BUS,目前常用,为提高CPU速度可取用双总线、三总线)

在CPU的内部创建一条总线,并且在各个部件之间使用总线传递数据

优点:

不但可满足数据传送的需要,还减少数据通路。

对于单总线要分时使用。

3.CPU内部寄存器的控制信号的定义方法

1)原理:

首先把操作重新分组,依据是把修改同一个寄存器的操作分配在同一组。

本设计CPU共9个状态,有5个寄存器的分配情况如下:

AR:

AR←PC;

AR←DR[5……0]

PC:

PC←PC+1;

DR:

IR:

IR←DR[6,7]

AC:

AC←AC’;

AC←AC∨DR;

2)决定每个部件应完成的功能(见图五)

1AR、DR、IR

总是从其他一些部件中装入数据。

若数据已在总线上,则需要做的就是能够执行并装入操作。

(LD端分别由ARLOAD、DRLOAD、IRLOAD信号同步装入)

2PC、AC

能从其他一些部件中装入数据。

还有自增当前值。

所以应创建一个单独的硬件使之能自增当前值。

(见图五中INC有PCINC,其他有PCLOAD、ACLOAD)也可用计数器方法实现PC←PC+1自增操作,可在寄存器内部单独完成,并行装载用来实现其他功能。

4.把每个部件都连接到系统总线上(见图四)

三态缓冲区――原有的寄存器总是把结果输出到系统总线,使CPU内部数据冲突,所以应增加三态缓冲区加以控制。

但AR的输出还应与A[5……0]相连,这是寻址所需。

5.根据实际需要修改图四的设计,并加上适当控制信号名称

1)AR:

仅向存贮器提供数据(地址),没必要将它的输出连接到内部总线上。

可删除)。

加上ARLOAD实现从BUS装入数据。

2)AR←PC:

保留三态缓冲器由PCBUS控制同步

3)IR:

不通过内部总线向任何其他部件提供数据(所以

可删除)而IR的输出将直接送到控制器用于确定指令的功能。

4)AC:

本CPU不向其他任何单位提供数据(

可删除)

5)D[7……0]:

不统一,有6位也有2位宽度,各部件所需的数据位不统一,从存贮器读出的数据为8位,而有些部件需要6位(D[5……0])或2位(IR是2位D[7,6]),必须确定哪些寄存器从总线的哪些位上接收和发送数据,应有DRBUS实现同步。

DRLOAD实现LD(载入)

6)AC:

必须能装载AC求反的值、AC+DR’的各、以及AC∨DR的逻辑或的值。

CPU必须包含一个能产生这些结果的ALU(算术逻辑运算器)并由ACLOAD实现装载。

下一步,问题的关键是设计适当的ALU。

六、非常简单ALU的设计

1.ALU数据通路分析

ALU必须能接收AC和DR作为输入,然后把运算结果输出到AC。

2.实现这个目的有两种方法

1)在本CPU中,把AC的导线和ALU的输入输出连接起来,并且利用系统总线把DR和ALU的输入连接起来。

注意:

对于寄存器数据在总线上传送数据是分时进行的,而用计数器来实现PC←PC+1操作,就可以在FETCH2内并行完成,因为自增的计数器不必占用总线时间。

2)非常简单ALU的设计

由于本CPU的ALU仅完成三个功能,+、取反、逻辑或运算。

最简单的方法是创建三个单独的硬件实现每个功能,后用4选1多路开关选择一个作为输出。

(如下图,图六)

图六非常简单的ALU

(S0S1S2=000,即ALUSEL=000,选PC←PC+DR;

S0S1S2=100,即ALUSEL=100,选AC←AC+DR’;

S0S1S2=101,即ALUSEL=101,选AC←AC∨DR;

S0S1S2=110,即ALUSEL=101,选AC←AC’)

七、用硬布线方法设计控制器

以上为CPU完成取指令,译码和执行整个指令集(ISA)所必须的每个操作成为可能。

下一个任务就是设计一个电路来产生控制信号,从而使所有的操作能以正确的顺序执行。

这就是CPU的控制器(CONTROLUNIT,又称控制单元)

设计控制的三种方法

1硬布线控制器(用时序逻辑和组合逻辑来产生控制信号)

2微程序控制器

3硬布线和微程序相结合

本CPU采用硬布线方法。

1.非常简单CPU的控制器

1)组成包含三部分

1计数器:

保存当前状态

2译码器:

接受当前状态并为每个状态生成单独的信号

3逻辑组合:

接受单独的状态信号,为每一个部件生成控制信号以及计数器的控制信号(反馈)

2)一般硬布线控制单元原理图(见下图七)

图七一般硬布线控制器原理图

3)确定计数器的个数

本CPU共有9个状态。

(4条指令,共9个状态)

24=16>9,所以需要一个四位计数器和一个4-16位译码器,译码器中有7个输出没有用到。

2.计数器和译码器的设计原则

·

计数器的输出状态共16个(0000~1111)

译码器的输出最多只有16个,本CPU实际需要用到9个(参考图三,CPU完全状态图)

1)FECTH1状态(公共状态,又称公共操作)

规定计数器的0值,使用计数口器的CLR=1(清0有效)到达这一状态。

这也是因为CPU的任一条指令执行完毕(如无中断请求等),CPU一定转入取指令状态。

2)将顺序状态设定为计数器的连续值,用INC实现。

这样的好处是控制器通过发出计数器的INC信号来到达任一需要的状态。

FETCH2………………1

FETCH3………………2

COM1………………8

JREL1………………9

OR1………………10

OR2………………11

SUB1………………12

SUB2………………14

3)确定每个执行周期中的第一个状态

原则:

科学、合理、不增加硬件资源

分析:

在CPU状态图中任一条指令的执行都是少于或等于2个状态。

即只要执行周期的第一个状态的计数值的间隔至少应为2,可通过映射1IR[1,0]0可达到目的。

根据映射函数1IR[1,0]0确定指令执行周期的入口:

1000(8)…………COM1

1010(10)…………JREL1

1100(12)…………OR1

1110(14)…………SUB1

图八简单CPU的硬布线控制器

4)计数器LD、INC、CLR控制信号的确定

LD(装载)――在每个指令周期的末尾FECTH3状态中发出。

因为准备进入该指令的执行周期的每一个状态,所以必须要装载1IR[1,0]0才能进入指令的正确执行周期。

FETCH3:

IR←DR[7,6],AR←DR[5,0]

INC(自增)――因为在确定第一个状态(由计数器输入端1IR[1,0]0

决定)接着就要确定哪些状态,哪些指令的执行周期需产生INC信号。

CLR(清0或者复位)――每条指令执行结束转入下一条指令的取指令周

期应清0

3.根据译码的输出信号组合后产生CPU中寄存器的有关信号用于控制AR、PC、DR、IR、M、ALU及缓冲器。

1)ARLOAD(装载地址寄存器控制信号)

因为在FETCH1中AR←PC

FETCH3中AR←DR[5……0]

所以ARLOAD=FETCH1+FETCH3(见图九)

2)PCLOAD、PCINC(实现PC←PC+DR[5……0]、PC←PC+1)

PCLOAD=JREL1

PCINC=FETCH2

3)DRLOAD(实现DR←M)

DRLOAD=FETCH2+OR1+SUB1

4)ACLOAD(实现AC←AC’、AC←AC∨DR、AC←AC+DR’)

ACLOAD=COM1+OR2+SUB2

5)IRLOAD

IRLOAD=FETCH3

6)ALUSEL

ALU有二个控制输入信号,一个控制输出信号――ALUSEL=S0S1S2

S0控制ALU的输出,S1、S2控制输入

当S0S1S2=000,即ALUSEL=000,选PC←PC+DR;

S0S1S2=110,即ALUSEL=101,选AC←AC’。

可在令ALUSEL=S0S1S20,这样分别和映射函数相对应

ALUSEL=FETCH1+COM1+JREL1+OR1

7)缓冲器控制信号

许多操作需从内部总线上获取数据。

CPU必须能控制缓冲器以便在合适的时间将正确的数据放在总线上。

为此满足如下逻辑关系

MEMBUS=FETCH2+OR1+SUB1

PCBUS=FETCH1

READ=FETCH2+OR1+SUB1

DRBUS=FETCH3+OR2+SUB2+JREL1

即在FETCH3(IR←DR[6,7],AR←DR[5……0])或

OR2(AC←AC∨DR)或

SUB2(AC←AC+DR’)

JREL1(PC←PC+DR[5……0])时DR的内容必须放在总线上。

控制器中用来产生这些控制信号的部分电路如图九所示。

图九非常简单CPU控制信号的形成

CPU的设计已经完成。

八、设计验证

1.程序段如下所列【存贮单元:

指令】

0:

OR4功能AC←AC∨M[3]

1:

SUB15功能AC←AC+M[5]’

2:

COM功能AC←AC’

3:

JREL6功能PC←PC+M[1]

4:

13H

5:

23H

6:

01H

2.根据CPU的状态图可知各指令状态顺序如下:

OR3:

FETCH1→FETCH2→FETCH3→OR1→OR2

SUB15:

FETCH1→FETCH2→FETCH3→SUB1→SUB2

COM:

FETCH1→FETCH2→FETCH3→COM1

JREL1:

FETCH1→FETCH2→FETCH3→JREL1

3.执行过程跟踪

说明OR3(指令功能是AC←AC∨M[3]):

1在FETCH1状态,把PC=0的现行值送AR,硬布线控制器应发出PCUBS、ARLOAD使能实现AR←PC;

2在FETCH2状态,为实现DR←M[0],PC←PC+1,控制器应发出READ、MEMBUS、DRLOAD、PCINC;

3FETCH3状态,为实现IR←DR[7,6],AR←DR[5……0],控制器应发出DRBUS、IRLOAD、ARLOAD;

4OR1状态,取出另一个操作数DR←M[4](M[4]=13H),控制器应发出READ、MEMBUS、DRLOAD;

5OR2状态,实现AC←AC∨DR,即AC=0∨13H=13H。

控制器应发出ALUSEL=101、ACLOAD至此OR4指令执行完毕,返回准备取出下一条指令的FETCH1状态。

其余指令的执行情况见下表

执行过程跟踪表

Instruction

State

ActiveSignals

OperationsPerformed

NextState

OR4

FETCH1

PCUBS、ARLOAD

AR←0

FETCH2

READ、MEMBUS、DRLOAD、PCINC

DR←04H、PC←1

FETCH3

DRBUS、IRLOAD、ARLOAD

IR←10、AR←04H

OR1

READ、MEMBUS、DRLOAD

DR←13H

OR2

ALUSEL、ACLOAD

AC←0∨13H=13H

SUB15

AR←1

DR←C5H、PC←2

IR←11、AR←05H

DR←23H

SUB2

DBUS、ALUSEL、ACLOAD

AC←13+23H’=EFH

AR←2

DR←00H、PC←3

IR←00、AR←00H

COM1

ALUSEL

AC←AC’=10H

JREL6

AR←3

DR←46H、PC←4

IR←01、AR←06H

JREL1

DRBUS、PCLOAD、ALUSEL

PC←PC+01H=05H

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 韩语学习

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

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