![一个非常简单的CPU的设计ppt课件_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-1/21/6af29178-2347-4acc-b650-98a339dda798/6af29178-2347-4acc-b650-98a339dda7981.gif)
![一个非常简单的CPU的设计ppt课件_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-1/21/6af29178-2347-4acc-b650-98a339dda798/6af29178-2347-4acc-b650-98a339dda7982.gif)
![一个非常简单的CPU的设计ppt课件_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-1/21/6af29178-2347-4acc-b650-98a339dda798/6af29178-2347-4acc-b650-98a339dda7983.gif)
![一个非常简单的CPU的设计ppt课件_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-1/21/6af29178-2347-4acc-b650-98a339dda798/6af29178-2347-4acc-b650-98a339dda7984.gif)
![一个非常简单的CPU的设计ppt课件_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-1/21/6af29178-2347-4acc-b650-98a339dda798/6af29178-2347-4acc-b650-98a339dda7985.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一个非常简单的CPU的设计 1、组合逻辑控制器、组合逻辑控制器 2、微程序控制器、微程序控制器 1. cpu定义定义 我们按照运用的需求来定义计算我们按照运用的需求来定义计算机,本文引见一个非常简单的机,本文引见一个非常简单的CPU的的设计,它仅仅用来教学运用的。我们设计,它仅仅用来教学运用的。我们规定它可以存取的存储器为规定它可以存取的存储器为64byte,其中其中1byte=8bits。所以这个。所以这个CPU就有就有6位的地址线位的地址线A5:0,和,和8位的数据线位的数据线D7:0。 我们仅定义一个通用存放器我们仅定义一个通用存放器AC8bits存放器,存放器,它仅仅执行它仅仅执行4条
2、指令如下:条指令如下:InstructionInstruction CodeOperationADD00AAAAAAACAC+MAAAAAAAND01AAAAAAACACMAAAAAAJMP10AAAAAAGOTO AAAAAAINC11XXXXXXACAC+1 除了存放器除了存放器AC外,我们还需求外,我们还需求以下几个存放器:以下几个存放器:地址存放器地址存放器 A5:0, 保管保管6位地址。位地址。程序计数器程序计数器 PC5:0,保管下一条指令,保管下一条指令的地址。的地址。数据存放器数据存放器 D7:0,接受指令和存储,接受指令和存储器来的数据。器来的数据。指令存放器指令存放器 IR
3、1:0,存储指令操作码。,存储指令操作码。 2 .取指设计取指设计 在处置器执行指令之前,必需从存储器取出在处置器执行指令之前,必需从存储器取出指令。其中取指执行以下操作:指令。其中取指执行以下操作:经过地址端口经过地址端口A5:0从地址到存储器从地址到存储器等待存储器预备好数据后,读入数据。等待存储器预备好数据后,读入数据。 由于地址端口数据由于地址端口数据A5:0是从地址存放器中是从地址存放器中读出的,所以取指第一个执行的形状是读出的,所以取指第一个执行的形状是 Fetch1: ARPC 接下来接下来cpu发出发出read信号,并把数据从存储信号,并把数据从存储器器M中读入数据存放器中读入
4、数据存放器DR中。同时中。同时pc加一。加一。 Fetch2: DRM,PCPC+1 接下来把接下来把DR7:6送送IR,把,把DR5:0送送AR Fetch3: IRDR7:6,ARDR5:0 3.指令译码指令译码 Cpu在取指后进展译码后才知在取指后进展译码后才知道执行什么指令,对于本文中的道执行什么指令,对于本文中的CPU来说只需来说只需4条指令也就是只需条指令也就是只需4个执行例程,形状图如下:个执行例程,形状图如下:4. 指令执行指令执行 对译码中调用的对译码中调用的4个例程我们分别讨论:个例程我们分别讨论:4.1 ADD指令指令 ADD指令需求指令需求CPU做以下两件事情:做以下两
5、件事情:从存储器取一个操作数从存储器取一个操作数把这个操作数加到把这个操作数加到AC上,并把结果存到上,并把结果存到AC,所以需求以下操作:所以需求以下操作:ADD1: DRMADD2: ACAC+DR4.2 AND指令指令AND指令执行过程和指令执行过程和ADD类似,需求以下操作:类似,需求以下操作:AND1: DRMAND2: ACACDR4.3 JMP指令指令JMP指令把指令把CPU要跳转的指令地址送要跳转的指令地址送PC,执行,执行以下操作以下操作:JMP1: PCDR5:04.4INC指令指令INC指令执行指令执行AC+1操作操作:INC1:ACAC+15. 建立数据途径建立数据途径
6、 这一步我们来实现形状图和相应的存放器传输。这一步我们来实现形状图和相应的存放器传输。首先看下面的形状及对应的存放器传输:首先看下面的形状及对应的存放器传输:Fetch1: ARPCFetch2: DRM,PCPC+1Fetch3: IRDR7:6,ARDR5:0ADD1:DRMADD2:ACAC+DRAND1:DRMAND2:ACACDRJMP1:PCDR5:0INC1:ACAC+1 为了设计数据途径,我们可以采用为了设计数据途径,我们可以采用两种方法:两种方法:发明直接的两个要传输组件之间的直接途径发明直接的两个要传输组件之间的直接途径在在CPU内部发明总线来传输不同组件之间的内部发明总线
7、来传输不同组件之间的数据数据 首先我们回想一下能够发生的数据传输,首先我们回想一下能够发生的数据传输,以便确定各个组件的功能。特别的我们要以便确定各个组件的功能。特别的我们要留意把数据载入组件的各个操作。首先我留意把数据载入组件的各个操作。首先我们按照他们改动了那个存放器的数据来重们按照他们改动了那个存放器的数据来重组这些操作。得到如下的结果:组这些操作。得到如下的结果: AR:ARPC;ARDR5:0 PC:PCPC+1;PCDR5:0 DR:DRM IR:IRDR7:6 AC:ACAC+DR;ACACDR; ACAC+1 如今我们来看每个操作来决议每个组件如今我们来看每个操作来决议每个组件
8、执行什么样的功能,执行什么样的功能,AR,DR,IR三个组件经三个组件经常从其他的组件载入数据从总线,所以常从其他的组件载入数据从总线,所以只需求执行一个并行输入的操作。只需求执行一个并行输入的操作。PC和和AC可可以载入数据同时也可以自动加一操作。下一以载入数据同时也可以自动加一操作。下一步我们把这些组件衔接到总线上来,如下图:步我们把这些组件衔接到总线上来,如下图: 如上图所示,各个组件与总如上图所示,各个组件与总线之间经过三态衔接,防止出现总线之间经过三态衔接,防止出现总线竞争。线竞争。AR存放器送出存储器的存放器送出存储器的地址,地址,DR存放器用于暂存存数起存放器用于暂存存数起来的数
9、据。到如今为止我们还没有来的数据。到如今为止我们还没有讨论有关的控制信号,我们如今只讨论有关的控制信号,我们如今只是保证了一切的数据传输可以产生,是保证了一切的数据传输可以产生,我们将在后面章节来使这些数据传我们将在后面章节来使这些数据传输正确的产生输正确的产生-控制逻辑。控制逻辑。 如今我们来看以下者写数据传输中有如今我们来看以下者写数据传输中有没有不用要的传输:没有不用要的传输:AR仅仅提供数据给存储器,所以他不需求衔仅仅提供数据给存储器,所以他不需求衔接到总线上。接到总线上。IR不经过总线提供数据给任何组件,所以他不经过总线提供数据给任何组件,所以他可以直接输出到控制单元。可以直接输出到
10、控制单元。AC不提供数据到任何的组件,可以不衔接到不提供数据到任何的组件,可以不衔接到总线上。总线上。总线是总线是8bit宽度的,但是有些传输是宽度的,但是有些传输是6bit或或者者2bit的,我们必需制定存放器的那几位的,我们必需制定存放器的那几位送到总线的那几位。送到总线的那几位。AC要可以载入要可以载入AC和和DR的和或者逻辑与的值,的和或者逻辑与的值,数据途径中还需求进展运算的数据途径中还需求进展运算的ALU。由此我们做以下任务:由此我们做以下任务:去掉去掉AR,IR, AC与总线的衔接。与总线的衔接。我们商定存放器衔接是从总线的低位开我们商定存放器衔接是从总线的低位开场的。场的。AR
11、,PC衔接到衔接到Bus5:0,由,由于于IR是接受是接受DR7:6的,所以可以衔的,所以可以衔接到总线的接到总线的Bus7:6。我们设定,我们设定,AC作为作为ALU的一个输入,另的一个输入,另一个输入来自总线一个输入来自总线Bus。 下面我们检查能否有争用总线的情下面我们检查能否有争用总线的情况,侥幸的是这里没有。修正后的况,侥幸的是这里没有。修正后的CPU内部组织图如下:内部组织图如下:6. ALU设计设计 这个这个CPU的的ALU执行的功能就是两个操作数相执行的功能就是两个操作数相加、逻辑与。这里不作详细引见。电路如如下:加、逻辑与。这里不作详细引见。电路如如下: 7. 控制单元控制单
12、元 如今我们来思索如何产生数据途径所需的如今我们来思索如何产生数据途径所需的控制信号,有两种方法:硬布线逻辑和微程控制信号,有两种方法:硬布线逻辑和微程序控制。这里我们用硬布线逻辑来实现。序控制。这里我们用硬布线逻辑来实现。 这个简单的这个简单的CPU需求的控制逻辑由三个需求的控制逻辑由三个部件组成:部件组成:计数器:计数器: 用于保管如今的形状用于保管如今的形状译码器:译码器: 生成各个形状的控制信号生成各个形状的控制信号其他的组合逻辑来产生控制信号其他的组合逻辑来产生控制信号一个通用的控制单元原理图如下:一个通用的控制单元原理图如下: 对于这个对于这个CPU来说,一共有来说,一共有9个形状
13、。个形状。所以需求一个所以需求一个4bit的计数器和一个的计数器和一个4-16的译码器。的译码器。接下来的任务就是按照前面的形状转换图来对形接下来的任务就是按照前面的形状转换图来对形状进展赋值。状进展赋值。 首先思索如何的对译码输出形状进展赋值才首先思索如何的对译码输出形状进展赋值才干到达最正确形状。我们按照以下规那么:干到达最正确形状。我们按照以下规那么:1给给Fetch1赋计数器的赋计数器的0值,并用计数器的清零值,并用计数器的清零端来到达这个形状。由这个端来到达这个形状。由这个CPU的形状图可以看的形状图可以看出,除了出,除了Fetch1形状外的其他形状都只能由一形状外的其他形状都只能由
14、一个形状转化而来,个形状转化而来,Fetch1需求从需求从4个分支而来,个分支而来,这这4个分支就可以发出清零信号个分支就可以发出清零信号CLR来转移来转移到到Fetch1。如图。如图2把延续的形状赋延续的计数器值,这样把延续的形状赋延续的计数器值,这样就可以用计数器的就可以用计数器的INC输入来到达形状的转输入来到达形状的转移。移。3给每个例程的开场形状赋值时,要基于给每个例程的开场形状赋值时,要基于指令的操作码和这个例程的最大形状数。指令的操作码和这个例程的最大形状数。这样就可以用操作码来生成计数器的这样就可以用操作码来生成计数器的LD信信号到达正确的形状转移。首先,在号到达正确的形状转移
15、。首先,在Fetch3形状发出形状发出LD信号,然后要把正确的例程地信号,然后要把正确的例程地址放到计数器的输入端。对这个址放到计数器的输入端。对这个CPU来说,来说,我们思索以地址我们思索以地址1 IR 0作为计数器的预置作为计数器的预置输入。那么得到形状编码如下:输入。那么得到形状编码如下: 这样就可以用操作码来生成计数器的这样就可以用操作码来生成计数器的LD信号到达正确的形状转移。首先,信号到达正确的形状转移。首先,在在Fetch3形状发出形状发出LD信号,然后要把信号,然后要把正确的例程地址放到计数器的输入端。正确的例程地址放到计数器的输入端。对这个对这个CPU来说,我们思索以地址来说
16、,我们思索以地址1 IR 0作为计数器的预置输入。那么得作为计数器的预置输入。那么得到形状编码如下:到形状编码如下: InstructionStateIRcounterFetchFetch10000Fetch20001Fetch30010ADDADD1001000ADD2001001ANDAND1011010AND2011011INCINC1101100JMPJMP1111110 如上表所示,下面我们需如上表所示,下面我们需求设计产生计数器的求设计产生计数器的LD、INC、CLR等信号,总的控制单元的等信号,总的控制单元的逻辑如以下图:逻辑如以下图: 下面我们用这些译码信号来产生数据途径控下面
17、我们用这些译码信号来产生数据途径控制所必需的制所必需的AR、PC、DR、IR、M和和ALU的的控制信号。首先思索存放器控制信号。首先思索存放器AR,他在,他在Fetch1形状取形状取PC的值,并在的值,并在Fetch3形状取形状取DR5:0的值,所以我们得到的值,所以我们得到 ARLOAD=Fetch1 or Fetch3。 以此类推我们可以得到如下结果:以此类推我们可以得到如下结果: PCLOAD=JMP1 PCINC=Fetch2 DRLOAD=Fetch1 or ADD1 or AND1 ACLOAD=ADD2 or AND2 IRLOAD=Fetch3 对于对于ALU的控制信号的控制信
18、号ALUSEL是是用来控制用来控制ALU做逻辑或者算数运算的,做逻辑或者算数运算的,所以有:所以有: ALUSEL=AND2 对于片内总线的控制较为复杂,对于片内总线的控制较为复杂,我们先来看我们先来看DR,对于,对于DR他只在他只在Fetch3、AND2 、ADD2和和JMP1形状占用总线进形状占用总线进展置信的数据传输,所以有:展置信的数据传输,所以有: DRBUS=Fetch3 or AND2 or ADD2 or JMP1 其他类似有:其他类似有:MEMBUS=Fetch2 or ADD1 or AND1PCBUS=Fetch1 最后,控制单元需求产生存储器最后,控制单元需求产生存储器
19、的读信号的读信号READ,它发生在,它发生在Fetch2、ADD1、AND1三个形状:三个形状: READ=Fetch2 or ADD1 or AND1 这样我们得到了总的控制逻辑,这样我们得到了总的控制逻辑,完成了整个完成了整个CPU的设计。的设计。8设计验证设计验证我们执行如下指令进展设计验证,我们执行如下指令进展设计验证,0: ADD 41: AND 52: INC3: JMP 04: 27H5: 39H 指令执行过程如下初始化一切存放器指令执行过程如下初始化一切存放器为全零态:为全零态: InstructionStateActive SignalsOperationsNext Stat
20、eADD 4Fetch1PCBUS、ARLOADAR0Fetch2Fetch2READ、MEMBUSDRLOAD、PCINCDR04HPCPC+1Fetch3Fetch3DRBUS、ARLOADIRLOADIR00AR04HADD1ADD1READ、MEMBUSDRLOADDR27HADD2ADD2DRBUS、ACLOADAC0+27HFetch1AND 5Fetch1Fetch2Fetch3ADD1ADD2INCFetch1Fetch2Fetch3INC1JMP 0Fetch1Fetch2Fetch3JMP11根本的微程序设计根本的微程序设计 当我们设计一个当我们设计一个CPU的控制单元的时
21、候我的控制单元的时候我们往往是先给出一个们往往是先给出一个CPU的形状图,然后的形状图,然后设计一个有限形状机。硬布线逻辑是根据设计一个有限形状机。硬布线逻辑是根据CPU的现态和输入包括操作码和标志存的现态和输入包括操作码和标志存放器的内容来进展形状转移,同时输出放器的内容来进展形状转移,同时输出数据途径个组件的控制信号。数据途径个组件的控制信号。 1.1微序列操作微序列操作一个微程序控制器也是一个有限形状机,一个微程序控制器也是一个有限形状机,一个通用的微程序控制器如以下图:一个通用的微程序控制器如以下图:阐明:阐明:图中存放器用来存储图中存放器用来存储CPU形状图中的一个形形状图中的一个形
22、状,把它作为微代码存储器的地址访问微状,把它作为微代码存储器的地址访问微代码存储器。代码存储器。微代码存储器输出微指令,可以分成两个部微代码存储器输出微指令,可以分成两个部分:一个部分是微操作,这些信号被输出分:一个部分是微操作,这些信号被输出到到CPU的其他部分用以产生的其他部分用以产生CPU数据途数据途径中的控制信号。另一部分被用来产生下径中的控制信号。另一部分被用来产生下一个访问微代码存储器的地址。这一部分一个访问微代码存储器的地址。这一部分加上操作码、标志存放器以及加上操作码、标志存放器以及CPU如今的如今的形状也就是形状也就是Register中的内容一同产中的内容一同产生下一次访问微
23、代码存储器的地址。生下一次访问微代码存储器的地址。 3. 下一个地址产生单元接受操作码、标下一个地址产生单元接受操作码、标志存放器内容和微代码存储器的输出,志存放器内容和微代码存储器的输出,然后根据如今然后根据如今CPU所处的形状决议产所处的形状决议产生下一次访问微代码存储器的地址。生下一次访问微代码存储器的地址。它生成一切能够的转移地址,然后选它生成一切能够的转移地址,然后选择正确的输出到存放器中。择正确的输出到存放器中。一个能够的地址就是微代码存储器如今一个能够的地址就是微代码存储器如今地址加一。地址加一。另一个能够的地址是要跳转的绝对地址。另一个能够的地址是要跳转的绝对地址。每个微程序控
24、制其还需求可以正确地每个微程序控制其还需求可以正确地访问执行例程,这就需求用到影射逻访问执行例程,这就需求用到影射逻辑。把取指得到的操作码影射到执行辑。把取指得到的操作码影射到执行子例程的第一条微指令的地址上。这子例程的第一条微指令的地址上。这个影射操作时在每个取指周期终了时个影射操作时在每个取指周期终了时进展的。进展的。像一切高级言语编程一样,微代码也像一切高级言语编程一样,微代码也可以有子程序。当几条指令执行同一可以有子程序。当几条指令执行同一段微代码时,这段微代码就可以用一段微代码时,这段微代码就可以用一个子程序来实现。当调用此子程序时,个子程序来实现。当调用此子程序时,这个子程序的微代
25、码地址就被作为一这个子程序的微代码地址就被作为一个跳转的绝对地址赋给存放器,而当个跳转的绝对地址赋给存放器,而当前地址加一的地址那么被保管为前往前地址加一的地址那么被保管为前往地址。需求硬件的存放器或者堆栈地址。需求硬件的存放器或者堆栈来实现来实现4.一个微程序控制器最根本的四个部分就是:一个微程序控制器最根本的四个部分就是:如今地址加一如今地址加一绝对地址绝对地址影射逻辑地址影射逻辑地址子例程前往地址子例程前往地址1.2微指令格式微指令格式每个微程序控制器可以有它本人的微指令格式。每个微程序控制器可以有它本人的微指令格式。但是每条微指令必需包含以下几个部分的内容:但是每条微指令必需包含以下几
26、个部分的内容:下面我们分别引见这几个部分的内容:下面我们分别引见这几个部分的内容:SELECT域域 SELECT域用于指名下条指令地址的来源。它仅仅域用于指名下条指令地址的来源。它仅仅是指名下条指令地址的来源,而不直接给出下条指令是指名下条指令地址的来源,而不直接给出下条指令的地址。例如:取指例程最后一条指令时,它的的地址。例如:取指例程最后一条指令时,它的SELECT域会指名下一条地址未来自影射逻辑。域会指名下一条地址未来自影射逻辑。 对于条件转移指令,执行子例程的执行需求根据标对于条件转移指令,执行子例程的执行需求根据标志为的判别来进展。对于这样的指令志为的判别来进展。对于这样的指令SEL
27、ECT域要有域要有相应的标志存放器的选择。然后根据所选择的标志存相应的标志存放器的选择。然后根据所选择的标志存放器以及放器以及SELECT域的内容来决议下一地址的来源。域的内容来决议下一地址的来源。ADDR域域 ADDR域就是来指名下一条指令执行的绝对地址的。域就是来指名下一条指令执行的绝对地址的。例如当执行完一个例程需求进入取指例程时,对指明例如当执行完一个例程需求进入取指例程时,对指明了下一个地址来源的微指令来说,了下一个地址来源的微指令来说,ADDR域是无用的。域是无用的。例如:影射逻辑地址。例如:影射逻辑地址。 3.MICOR-OPERATION域域 MICRO-OPERATION域用
28、来描画要域用来描画要执行的微操作,有三种描画方法:执行的微操作,有三种描画方法:3.1程度微代码程度微代码 为了实现程度微代码,我们先列为了实现程度微代码,我们先列出出CPU执行的一切微操作。然后我们执行的一切微操作。然后我们给每个微操作赋给每个微操作赋MICRO-OPERATION域中的域中的1bit。这将导致。这将导致MICRO-OPERATION域的位数很多。域的位数很多。而且这种编码方法将使很多的而且这种编码方法将使很多的MICRO-OPERATION域中的位在大域中的位在大多数时间无用。多数时间无用。3.2垂直微代码垂直微代码 为了实现垂直微代码,为了实现垂直微代码,CPU可以执可以
29、执行的微操作被分组,然后每个微操作被行的微操作被分组,然后每个微操作被赋予一个组合的二进制数,例如:赋予一个组合的二进制数,例如:16个个微操作可以用微操作可以用4bit的的MICRO-OPERATION域来描画域来描画00001111。现实上我们用现实上我们用4bit只能表示只能表示15个微操作,个微操作,由于我们必需空出一个形状来描画空操由于我们必需空出一个形状来描画空操作。垂直微代码的编码方式需求很少的作。垂直微代码的编码方式需求很少的MICRO-OPERATION域的位数,但是它域的位数,但是它需求一个译码器来产生真正的微操作信需求一个译码器来产生真正的微操作信号。号。3.3直接生成控
30、制信号直接生成控制信号 在以上两种方法中,在以上两种方法中,CPU都必需都必需求把微操作信号转换成控制信号来进求把微操作信号转换成控制信号来进展数据途径的载入展数据途径的载入LOAD、清零、清零CLR、加一、加一INC、ALU控制控制以及总线上各个以及总线上各个Buffers的开关等操的开关等操作。第三种微代码的编码方法就是把作。第三种微代码的编码方法就是把控制信号直接存储到微指令中,这种控制信号直接存储到微指令中,这种方法不需求另外的组合逻辑,但是它方法不需求另外的组合逻辑,但是它可读性差,不宜于调试。可读性差,不宜于调试。2、设计和实现、设计和实现A Very Simple CPU的微的微
31、程序控制单元程序控制单元 为了验证一个微程序控制器的设计过程,我们首为了验证一个微程序控制器的设计过程,我们首先来思索前一章中的先来思索前一章中的Very Simple CPU的控制单的控制单元的设计。本节将用微程序控制器重新设计其控元的设计。本节将用微程序控制器重新设计其控制单元。我们将不在重新讲述指令集、有限形状制单元。我们将不在重新讲述指令集、有限形状机、数据途径以及机、数据途径以及ALU的设计。我们只讲述控制的设计。我们只讲述控制信号的产生过程。信号的产生过程。 2.1根本流程根本流程这个这个Very Simple CPU的微程序控制器的根的微程序控制器的根本框图如下:本框图如下: 在
32、这个在这个Very Simple CPU中只需两种能够的地中只需两种能够的地址,一个是操作码影射地址另一个是绝对跳转址,一个是操作码影射地址另一个是绝对跳转地址。参看前面的地址。参看前面的Very Simple CPU的形状图,的形状图,我们可以知道:我们可以知道:从从Fetch3到执行子例程需求一个地址影射逻辑,到执行子例程需求一个地址影射逻辑,影射到要执行指令的地址处。影射到要执行指令的地址处。地址加一可以用地址加一可以用Microde memory 产生产生ADDR作作为绝对地址跳转实现,每个执行子例程终了后为绝对地址跳转实现,每个执行子例程终了后还需求一个地址跳转回到取指还需求一个地址
33、跳转回到取指Fetch1微操作。微操作。 由于有两种地址输入,所以可以用一个由于有两种地址输入,所以可以用一个2选选1逻辑逻辑 来实现下一地址生成模块。选择控来实现下一地址生成模块。选择控制信号是由微代码存储器产生的。制信号是由微代码存储器产生的。 接下来我们思索用多少位来表示接下来我们思索用多少位来表示Microde memory(控制存储器控制存储器)输出的绝对地址?输出的绝对地址? 这个这个CPU一共有一共有9个形状,每个形状用一个个形状,每个形状用一个微指令表示。需求的最少的数据位数是微指令表示。需求的最少的数据位数是4位。位。而而IR译码后的影射逻辑地址也是译码后的影射逻辑地址也是4
34、bit,所以,所以用用4bit来表示地址。来表示地址。 2.2生成微程序并且设计影射逻辑生成微程序并且设计影射逻辑 如今我们经过有限形状机的形状来设计微代码如今我们经过有限形状机的形状来设计微代码序列。首先我们给每个形状赋予一个微代码的地序列。首先我们给每个形状赋予一个微代码的地址。与硬布线逻辑不同的是,它不是必需直接的址。与硬布线逻辑不同的是,它不是必需直接的把延续的地址赋给取指或者执行的各个形状,然把延续的地址赋给取指或者执行的各个形状,然而那样赋值可以使微代码易于阅读调试。赋值中而那样赋值可以使微代码易于阅读调试。赋值中思索的首要问题是:执行子例程的第一个形状的思索的首要问题是:执行子例
35、程的第一个形状的地址赋值,由于它决议了影射逻辑的实现。对这地址赋值,由于它决议了影射逻辑的实现。对这个个CPU来说,我们用和硬布线逻辑实现时同样的来说,我们用和硬布线逻辑实现时同样的影射逻辑,也就是影射逻辑,也就是IR译码的影射逻辑是译码的影射逻辑是1,IR1:0,0。这样产生了。这样产生了ADD1、AND1、JMP1、INC1的地址分别为的地址分别为1000、1010、1100、1110。相应的影射逻辑也就可以简单的如下表示:相应的影射逻辑也就可以简单的如下表示: 其他形状的地址赋值如下表:其他形状的地址赋值如下表:StateAddressStateAddressFetch10000Fetc
36、h20001Fetch30010ADD11000ADD21001AND11010AND21011JUMP11100INC11110 如今我们来经过这些形状来建立微代码序列。如今我们来经过这些形状来建立微代码序列。为了实现形状的转移,为序列控制器在为了实现形状的转移,为序列控制器在ADDR域提供其要转移形状的地址,并且在域提供其要转移形状的地址,并且在SELECT域选择它。例如:为了从域选择它。例如:为了从Fetch1转移到转移到Fetch2形状,微程序控制器需求设定形状,微程序控制器需求设定SEL=0选择选择ADDR作为输入,而不是作为输入,而不是IR影射逻辑,影射逻辑,ADDR=0001Fe
37、tch2的地址的地址-也就是微代也就是微代码存储器码存储器0000处处ADDR域的内容存储的是域的内容存储的是0001这个地址。除了这个地址。除了Fetch3形状外其他的形状都可形状外其他的形状都可以这样得到微代码存储器中以这样得到微代码存储器中SEL和和ADDR的值的值微操作微操作uOP的值后面再讲。的值后面再讲。Fetch3形状需形状需求选择影射逻辑作为访问微代码存储器的地址。求选择影射逻辑作为访问微代码存储器的地址。此时此时ADDR中的值将是无用的,所以可以不用中的值将是无用的,所以可以不用思索,而思索,而SEL=1。总的微代码存储器内容如下。总的微代码存储器内容如下表除去微操作表除去微
38、操作uOPStateAddressSELADDRFetch1000000001Fetch2000100010Fetch300101XxxxADD1100001001ADD2100100000AND1101001011AND2101100000JMP1110000000INC11110000002.3用程度编码方式设计微操作 首先我们留意到一个微程序控制器有首先我们留意到一个微程序控制器有两个义务:两个义务:生成正确的微操作生成正确的微操作正确的流动形状正确的流动形状 上面我们曾经思索了怎样样正确的进上面我们曾经思索了怎样样正确的进展形状的流动,下面我们的义务就是生成展形状的流动,下面我们的义务
39、就是生成正确的微操作和相关的控制信号。正确的微操作和相关的控制信号。 在程度编码的微代码方式中,每一个微操在程度编码的微代码方式中,每一个微操作用作用1bit表示。首先我们列出表示。首先我们列出CPU一切的一切的微操作,然后用助记忆符来进展表示如下:微操作,然后用助记忆符来进展表示如下:助记符助记符微操作微操作ARPCARPCARDRARDR5:0PCINPCPC+1PCDRPCDR5:0DRMDRMIRDRIRDR7:6PLUSACAC+DRANDACACDRACINACAC+1 这个这个CPU一共有一共有9个微操作,每个微代个微操作,每个微代码字需求码字需求9bit来表示它们。用来表示它们
40、。用1表示执表示执行这个微操作,用行这个微操作,用0表示不执行这个微表示不执行这个微操作。我们把这些表示微操作的值填操作。我们把这些表示微操作的值填入到上面的微代码存储器的表格中就入到上面的微代码存储器的表格中就得到了最后的微代码存储器的内容,得到了最后的微代码存储器的内容,如下表:如下表:StateAddressSELARPCARDRPCINPCDRDRMIRDRPLUSANDACINADDRFetch1000001000000000001Fetch20001000 10100000010Fetch300101010001000XxxxADD1100000000100001001ADD210
41、0100000001000000AND1101000000100001011AND2101100000000100000JMP1110000001000000000INC1111000 0000000010000 在生成控制信号之前,我们先来在生成控制信号之前,我们先来对微代码存储器中的微代码进展优对微代码存储器中的微代码进展优化。留意到:对于一切的形状来说,化。留意到:对于一切的形状来说,ARDR和和IRDR都与一样的值,所都与一样的值,所以我们可以用以我们可以用1bitAIDR来表来表示这两个微操作。得到最后的结果示这两个微操作。得到最后的结果如下表如下表 StateAddressSELA
42、RPCAIDRPCINPCDRDRMPLUSANDACINADDRFetch100000010000000001Fetch20001000 1010000010Fetch30010101000000XxxxADD110000000010001001ADD210010000001000000AND110100000010001011AND210110000000100000JMP111000000100000000INC111100000000010000 最后,我们用这些微操作信号最后,我们用这些微操作信号来生成数据途径中相应的控制信号。来生成数据途径中相应的控制信号。例如,对于存放器例如,对
43、于存放器AR来说,来说,ARLOAD信号必需在信号必需在ARPC和和AIDR两个微操作有效时有效。于是就把这两个微操作有效时有效。于是就把这两个微操作进展两个微操作进展OR操作产生操作产生ARLOAD信号。其他的控制信号同信号。其他的控制信号同理可得,最后的控制信号如下表:理可得,最后的控制信号如下表: SignalValueARLOADARPC or AIDRPCLOADPCDRPCINCPCINDRLOADDRMACLOADPLUS or ANDACINC ACINIRLOADAIDRALUSELANDMEMBUSDRMPCBUSARPCDRBUSAIDR or PCDR or PLUS
44、or ANDREADDRM2.4用垂直编码方法产生微操作码用垂直编码方法产生微操作码 由于程度编码方式代码利用率由于程度编码方式代码利用率太低,所以思索用垂直编码方式。太低,所以思索用垂直编码方式。垂直编码方式的微代码存储器输出垂直编码方式的微代码存储器输出的并不是直接的微操作的控制信号的并不是直接的微操作的控制信号需求进展译码,其原理如以下图:需求进展译码,其原理如以下图: 如今我们来用垂直编码的方法来如今我们来用垂直编码的方法来设计这个设计这个Very Simple CPU的控制单的控制单元。我们还是从指令集、形状图、数元。我们还是从指令集、形状图、数据途径和据途径和ALU等开场分析。数据
45、途径等开场分析。数据途径和硬布线逻辑一样,微程序代码控制和硬布线逻辑一样,微程序代码控制器的影射逻辑、以及微代码存储器中器的影射逻辑、以及微代码存储器中的的SEL和和ADDR的内容与程度编码的设的内容与程度编码的设计也一样。我们如今的义务就是给微计也一样。我们如今的义务就是给微操作分配不同的微操作码。我们按照操作分配不同的微操作码。我们按照以下规那么进展:以下规那么进展:当两个微操作在同各形状发生时,把当两个微操作在同各形状发生时,把它们分在不同的域。也就是要求每个它们分在不同的域。也就是要求每个域在一个形状只可以输出一个值。域在一个形状只可以输出一个值。假设需求的话每个域中都可以包含假设需求
46、的话每个域中都可以包含NOP操作。当此域中没有操作要执行操作。当此域中没有操作要执行时输出空操作。时输出空操作。把其他的微操作分布到各个域中,尽把其他的微操作分布到各个域中,尽能够的充分利用每个域能表示的形状。能够的充分利用每个域能表示的形状。各个域的字长可以不同。各个域的字长可以不同。把在同一个域中修正同一个存放器的把在同一个域中修正同一个存放器的微操作组成一组。由于两个微操作不微操作组成一组。由于两个微操作不能同时修正同一个存放器。能同时修正同一个存放器。 首先我们检查同时进展的微操作首先我们检查同时进展的微操作有哪些,留意到有哪些,留意到DRM和和PCIN都在都在Fetch2发生,所以必
47、需被分到两个不发生,所以必需被分到两个不同的域中。所以这个同的域中。所以这个CPU至少需求两至少需求两个域个域M1和和M2。在每个域中加上。在每个域中加上NOP操作得到:操作得到: M1 M2 NOP NOP DRM PCIN 由于由于PCIN和和PCDR都修正都修正PC,我,我们把们把PCDR加到加到M2中。接下来我们把中。接下来我们把修正同一个存放器的操作放到同一个修正同一个存放器的操作放到同一个域中得到一个形状分配方案如下:域中得到一个形状分配方案如下:M1M2NOPNOPDRMPCINACINPCDRPLUSARPCANDAIDR 每个域中有每个域中有5个微操作,所以每个域都个微操作,
48、所以每个域都需求需求3bit来表示。总共需求来表示。总共需求6bit来表示。来表示。我们对之进展优化,可以把我们对之进展优化,可以把AIDR从从M2挪动到挪动到M1中,这样中,这样M1可以用可以用3bit表示表示M2只需求只需求2bit表示了。我们还可以进表示了。我们还可以进一步的优化把一步的优化把ARPC和和PCDR也从也从M2挪动到挪动到M1中,这样中,这样M1有有8个形状,个形状,M2有有2个形状。所以一共可以用个形状。所以一共可以用4bit来表来表示。最后结果如下表:示。最后结果如下表:M1M2Value Micro-operationValueMicro-operation000NOP0NOP001DRM1PCIN010ARPC 011AIDR 100PCDR 101PLUS 110AND 111ACIN 接下来我们用这些数值来生成最终的接下来我们用这些
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 有限责任公司投资协议书范本
- 怀化租赁房屋合同范本
- 绘画听评课记录怎么写好
- 人教版九年级数学上册第二十四章圆《24.4弧长和扇形面积》第1课时听评课记录
- 苏科版九年级上册物理期末复习必考知识点总结汇编
- 福建省龙岩市连城县2022-2023学年八年级上学期期中数学试卷(含答案)
- 部编版语文六年级上册期末测试卷(基础11)(含答案解析)
- 鲁教版历史六年级上册第2课《原始的农耕生活》听课评课记录
- 人教版地理七年级下册《第二节 自然环境》听课评课记录3
- 2025年度艺术品拍卖居间合同
- 2022版义务教育(历史)课程标准(附课标解读)
- 第四单元整体教学设计【大单元教学】2024-2025学年八年级语文上册备课系列(统编版)
- 中国慢性肾脏病早期评价与管理指南2023
- 阴囊常见疾病的超声诊断
- 新人教版五年级上册数学应用题大全及答案
- DZ∕T 0051-2017 地质岩心钻机型式与规格系列(正式版)
- 《行业标准-太阳能光热发电技术监督导则》
- 压力管道穿(跨)越施工工艺规程2015
- 【家庭教育】0-3岁婴幼儿早教训练方案
- 国家中长期科技发展规划(2021-2035)
- 建筑工人实名制管理制度及实施方案
评论
0/150
提交评论