芯片制造技术课件.ppt

上传人(卖家):三亚风情 文档编号:3392635 上传时间:2022-08-26 格式:PPT 页数:101 大小:1.18MB
下载 相关 举报
芯片制造技术课件.ppt_第1页
第1页 / 共101页
芯片制造技术课件.ppt_第2页
第2页 / 共101页
芯片制造技术课件.ppt_第3页
第3页 / 共101页
芯片制造技术课件.ppt_第4页
第4页 / 共101页
芯片制造技术课件.ppt_第5页
第5页 / 共101页
点击查看更多>>
资源描述

1、6.1 6.1 CPUCPU的设计规范的设计规范6.2 6.2 一个非常简单一个非常简单CPUCPU的设计与实现的设计与实现6.3 6.3 相对简单相对简单CPUCPU的设计和实现的设计和实现6.4 6.4 简单简单CPUCPU的缺点的缺点6.5 6.5 实例:实例:80858085微处理器的内部结构微处理器的内部结构第六章第六章 CPUCPU设计设计CPUCPU设计的两种方法:设计的两种方法:硬布线逻辑控制硬布线逻辑控制(hardwired controlhardwired control)微序列控制器微序列控制器(microsequencermicrosequencer)(微序列控制或微程

2、序控制微序列控制或微程序控制)6.1 CPU的设计规范1 1设计设计CPUCPU的步骤的步骤 确定它的用途确定它的用途 关键:使关键:使CPU的处理能力和它所执行的任务匹配。的处理能力和它所执行的任务匹配。设设计指令集结构计指令集结构 设计状态图设计状态图(CPUCPU就是一个复杂的有限状态机就是一个复杂的有限状态机)列出在每个状态中执行的微操作列出在每个状态中执行的微操作 从一个状态转移到另外一个状态的条件从一个状态转移到另外一个状态的条件 设计必要的数据通路和控制逻辑,实现这个设计必要的数据通路和控制逻辑,实现这个 有限状态机,最终实现这个有限状态机,最终实现这个CPU。2 2CPUCPU

3、执行如下的操作序列执行如下的操作序列 取指令周期取指令周期:从存储器中取出一条指令,然后:从存储器中取出一条指令,然后 转到译码周期。转到译码周期。译码周期译码周期:对该指令进行译码,即确定取到的:对该指令进行译码,即确定取到的 是哪一种指令,然后转移到这种指是哪一种指令,然后转移到这种指 令对应的执行周期。令对应的执行周期。执行周期执行周期:执行该指令,然后转移到取指令周:执行该指令,然后转移到取指令周 期去取下一条指令。期去取下一条指令。3 3一般一般CPUCPU状态图状态图6.2.1 非常简单CPU的设计规范 1 16464字节的存储空间,每个字节是字节的存储空间,每个字节是8 8位。位

4、。6位宽的地址:位宽的地址:A5.0 存储器的存储器的8位值:位值:D7.0 2 2一个程序员可以访问的寄存器一个程序员可以访问的寄存器ACAC(8 8位累加器)位累加器)3 3指令集(指令集(4 4条指令)条指令)6.2 一个非常简单CPU的设计与实现 指令指令指令码指令码操作操作ADD00AAAAAAACACMAAAAAAAND01AAAAAAACACMAAAAAAJMP10AAAAAAGOTO AAAAAAINC11XXXXXXACAC14 4寄存器寄存器 一个一个6位的地址寄存器位的地址寄存器AR:它通过:它通过A5.0向存储向存储 器提供地址。器提供地址。一个一个6位的程序计数器位的

5、程序计数器PC:它包含下一条将被执:它包含下一条将被执 行指令的地址。行指令的地址。一个一个8位的数据寄存器位的数据寄存器DR:它通过:它通过D5.0从存储从存储 器接收指令和数据。器接收指令和数据。一个一个2位的指令寄存器位的指令寄存器IR:它用来存放从存储器中:它用来存放从存储器中 取回的指令的操作码部分。取回的指令的操作码部分。一个一个CPUCPU仅仅就是一个复杂的有限状态机。仅仅就是一个复杂的有限状态机。设计设计CPU的途径:的途径:设计设计CPU的状态图。的状态图。设计必要的数据通路和控制逻辑,以便实现这个设计必要的数据通路和控制逻辑,以便实现这个 有限状态机,最终实现这个有限状态机

6、,最终实现这个CPU。6.2.2 从存储器中取指令一、从存储器中取出指令的一、从存储器中取出指令的操作序列操作序列 1.将地址放在地址引脚将地址放在地址引脚A5.0上,把地址送给上,把地址送给存储器。存储器。2.在给存储器足够的时间处理内部译码并将需在给存储器足够的时间处理内部译码并将需要的指令取出来之后,向存储器发一个信号,使存要的指令取出来之后,向存储器发一个信号,使存储器将此指令输出到它的输出引脚,这些引脚与储器将此指令输出到它的输出引脚,这些引脚与CPU的的D7.0相连接。相连接。CPU从这些引脚读入数据。从这些引脚读入数据。二、取指令周期的状态二、取指令周期的状态 FETCH1:AR

7、PC FETCH2:DRM,PCPC1 FETCH3:IRDR7.6,ARDR5.0 实现实现PC加加1的两种方案的两种方案 在取指令周期(在取指令周期(易与实现易与实现)在执行周期在执行周期三、取指令周期的状态图三、取指令周期的状态图 6.2.3 指令译码 当当CPU把一条指令从存储器中取出来之后,它把一条指令从存储器中取出来之后,它必须判断所取的是哪种指令,从而可以调用正确的必须判断所取的是哪种指令,从而可以调用正确的执行周期。执行周期。在状态图中,此过程表示为一系列的从取指令在状态图中,此过程表示为一系列的从取指令周期结束到各个执行周期之间的分支。周期结束到各个执行周期之间的分支。对于本

8、对于本CPU,有四条指令,因此有四个不同的,有四条指令,因此有四个不同的执行周期。执行周期。取指令和译码周期的状态图取指令和译码周期的状态图 6.2.4 指令执行6.2.4.1 ADD6.2.4.1 ADD指令指令 CPU必须完成两件事情:必须完成两件事情:从存储器中取出一个操作数。从存储器中取出一个操作数。将这个操作数和累加器中的值相加,并把结果存将这个操作数和累加器中的值相加,并把结果存 回到累加器中。回到累加器中。ADD1:DRM ADD2:ACACDR 6.2.4.2 AND6.2.4.2 AND指令指令 AND1:DRM AND2:ACACDR6.2.4.3 JMP6.2.4.3 J

9、MP指令指令 JMP1:PCDR5.0 另外一种选择另外一种选择;PCAR 6.2.4.4 INC6.2.4.4 INC指令指令 INC1:ACAC+1 本本CPU的状态图的状态图 包括了包括了取指、译码取指、译码和和执行周期执行周期。6.2.5 建立所需的数据通路 考察存在哪些数据传送从而设计考察存在哪些数据传送从而设计CPU的内部数据通路。的内部数据通路。一、与一、与CPUCPU的每个状态相关联的操的每个状态相关联的操作作 FETCH1:ARPC FETCH2:DRM,PCPC1 FETCH3:IRDR7.6,ARDR5.0 ADD1:DRM ADD2:ACACDR AND1:DRM AN

10、D2:ACACDR JMP1:PCDR5.0 INC1:ACAC1 二、设计数据通路的两种不同方案二、设计数据通路的两种不同方案 1在所有需要传送数据的部件之间创建一条在所有需要传送数据的部件之间创建一条直接通路直接通路。使用多路选择器或者缓冲器为那些有多个数据源的使用多路选择器或者缓冲器为那些有多个数据源的 寄存器从多个可能的输入中选择一个。寄存器从多个可能的输入中选择一个。随着随着CPU复杂度的增加,这种方案将变得不现实。复杂度的增加,这种方案将变得不现实。2在在CPU的内部创建一条的内部创建一条总线总线。在各个部件之间使用总。在各个部件之间使用总 线传递数据。线传递数据。三、设计数据通路

11、三、设计数据通路第一步第一步:把每个部件都连接到系统总线上:把每个部件都连接到系统总线上第二步第二步:决定每个部件应该完成的功能:决定每个部件应该完成的功能 将操作重新分组将操作重新分组 分组的依据分组的依据:他们所修改的寄存器。:他们所修改的寄存器。AR:ARPC;ARDR5.0PC:PCPC1;PCDR5.0DR:DRMIR:IRDR7.6AC:ACACDR;ACACDR;ACAC1 对每一个操作进行分析从而决定每个部件应该完对每一个操作进行分析从而决定每个部件应该完 成的功能成的功能 1.1.AR,DR以及以及IR总是从其它一些部件中装入数据总是从其它一些部件中装入数据 2.2.PC和和

12、AC能够从其它一些部件中装入数据,但它们能够从其它一些部件中装入数据,但它们 还要能够自增他们的当前值。还要能够自增他们的当前值。创建一个单独的硬件创建一个单独的硬件 用来使这两个寄存器的当用来使这两个寄存器的当 前值加前值加1,并且使结果能够重新装入寄存器;,并且使结果能够重新装入寄存器;把每个寄存器设计为一个计数器而且能够并行的把每个寄存器设计为一个计数器而且能够并行的 装载。装载。第三步:第三步:修改设计修改设计 注意如下几点:注意如下几点:1.AR仅仅向存储器提供数据,除此之外不跟任何部件仅仅向存储器提供数据,除此之外不跟任何部件 传送数据。因此,没有必要将它的输出连接到内部总传送数据

13、。因此,没有必要将它的输出连接到内部总 线上。线上。2.IR不通过内部总线向任何其他部件提供数据,所以不通过内部总线向任何其他部件提供数据,所以 IR 的输出到内部总线的连接可以删除。的输出到内部总线的连接可以删除。3.AC不向其他任何单元提供数据;因此与内部总线的不向其他任何单元提供数据;因此与内部总线的 连接也可以删除。连接也可以删除。4.总线是总线是8位宽,但是并非所有被传送的数据都是位宽,但是并非所有被传送的数据都是8位宽;位宽;有一些是有一些是6位宽,有一个是位宽,有一个是2位宽。位宽。必须确定哪些寄存器从总线的哪些位上接收和发送必须确定哪些寄存器从总线的哪些位上接收和发送数据。数据

14、。5.AC必须能够装载必须能够装载AC和和DR的和,以及的和,以及AC和和DR的逻的逻 辑与的结果。辑与的结果。CPU必须包含一个能够产生这些结果必须包含一个能够产生这些结果 的的ALU。第四步第四步:修改后的修改后的CPUCPU内部组织结构内部组织结构 (图中的控制信号将会由控制单元来产生)(图中的控制信号将会由控制单元来产生)第五步:第五步:必须保证在同一个状态将要发生的传送能够必须保证在同一个状态将要发生的传送能够 事实上同时发生。事实上同时发生。FETCH2:DRM,PCPC1 FETCH3:IRDR7.6,ARDR5.0A R P C;ARDR5.0P C P C 1;PCDR5.0

15、DRMIRDR7.6ACACDR;ACACDR;ACAC16.2.6 非常简单ALU的设计 1 1ALUALU完成两个功能完成两个功能 将两个输入相加将两个输入相加 将两个输入相与将两个输入相与 2 2设计方法设计方法 创建两个单独的硬件来实现每个功能,创建两个单独的硬件来实现每个功能,加法加法:用标准的:用标准的8位并行加法器位并行加法器 逻辑与逻辑与:用:用8个个2位与门位与门 使用一个多路选择器从两个结果中选择一使用一个多路选择器从两个结果中选择一 个输出个输出 3 3电路图电路图ALU6.2.7 用硬布线逻辑设计控制单元 控制单元控制单元:产生控制信号,从而使所有的操作能:产生控制信号

16、,从而使所有的操作能 以正确的顺序执行。以正确的顺序执行。设计控制单元有两种主要的方法:设计控制单元有两种主要的方法:硬布线控制硬布线控制:使用时序逻辑和组合逻辑产生控制信号。:使用时序逻辑和组合逻辑产生控制信号。微程序控制(或微序列控制)微程序控制(或微序列控制):使用存储器查表方式:使用存储器查表方式 来输出控制信号。来输出控制信号。本章重点:硬布线控制方法本章重点:硬布线控制方法 简单的控制单元包括三个部分简单的控制单元包括三个部分 一个计数器一个计数器:保存当前状态;:保存当前状态;一个译码器一个译码器:接受当前状态并为每个状态生成单独:接受当前状态并为每个状态生成单独 的信号;的信号

17、;一些组合逻辑一些组合逻辑:接受单独的状态信号为每一部件生:接受单独的状态信号为每一部件生 成控制信号,以及计数器的控制信号。成控制信号,以及计数器的控制信号。一般硬布线控制单元一般硬布线控制单元 对于本对于本CPU,总共有,总共有9个状态。因此,需要一个个状态。因此,需要一个4位位 的计数器和一个的计数器和一个4-16位的译码器。译码器的输出位位的译码器。译码器的输出位 中有中有7个用不到。个用不到。一、将状态分配到译码器的各个输出一、将状态分配到译码器的各个输出 1.将将FETCH1规定为计数器的规定为计数器的0值,并使用计数器的值,并使用计数器的 CLR输入来达到这个状态。输入来达到这个

18、状态。2.将顺序的状态指派为计数器的连续值,并且使用将顺序的状态指派为计数器的连续值,并且使用 计数器的计数器的INC输入来遍历所有的这些状态输入来遍历所有的这些状态。FETCH2:计数器值:计数器值1 FETCH3:计数器值:计数器值2 同样:将同样:将ADD1和和ADD2指派为连续的计数值指派为连续的计数值 对对AND1和和AND2也是一样也是一样3.根据指令操作码和执行周期的最大状态数量来指派根据指令操作码和执行周期的最大状态数量来指派 执行周期的第一个状态。用操作码产生计数器的数执行周期的第一个状态。用操作码产生计数器的数 据输入,并用计数器的据输入,并用计数器的LD输入使之达到合适的

19、执输入使之达到合适的执 行周期。行周期。实质:实现从操作码到执行周期的一种映射。实质:实现从操作码到执行周期的一种映射。为了装入正确执行周期的地址,控制单元必须完为了装入正确执行周期的地址,控制单元必须完 成两件事情。成两件事情。必须能够将正确的执行周期的第一个状态必须能够将正确的执行周期的第一个状态 的地址放到计数器的输入上。的地址放到计数器的输入上。必须发出计数器的必须发出计数器的LD信号。信号。如何构造映射函数?如何构造映射函数?计数器的输入是计数器的输入是IR值的一个函数。值的一个函数。目标目标:使这个函数越简单越好。:使这个函数越简单越好。一个可能的一个可能的映射映射:10IR1.0

20、 如果如果IR=00,那么计数器的输入就是,那么计数器的输入就是1000;当当IR=01,则输入为,则输入为1001,以此类推。以此类推。非常简单非常简单CPUCPU的指令,第一状态,以及操作码的指令,第一状态,以及操作码指令指令第一状态第一状态IRADDADD100ANDAND101JMPJMP110INCINC111 文中给出的映射函数的计数值文中给出的映射函数的计数值IR1.0计数值计数值状态状态001000(8)ADD1011001(9)AND1101010(10)JMP1111011(11)INC1 存在一些问题存在一些问题 由于状态由于状态ADD1的计数值是的计数值是8,而,而AN

21、D1的计数值的计数值是是9,那我们应该给,那我们应该给ADD2安排一个什么值?安排一个什么值?如何从如何从ADD1去访问去访问ADD2呢?呢?解决方法解决方法:使执行周期的第一个状态的计数值之间的间:使执行周期的第一个状态的计数值之间的间 隔至少为隔至少为2。通过映射通过映射1IR1.00可以达到这个目的。可以达到这个目的。使得使得ADD1,AND1,JMP1,INC1的的 计数值分别是计数值分别是8,10,12,14 将将ADD2指派为计数值指派为计数值9 AND2的计数值指派为的计数值指派为11二、为计数器产生控制信号二、为计数器产生控制信号 对于计数器,我们必须产生对于计数器,我们必须产

22、生INC,CLR和和LD信号。信号。当控制单元遍历顺序状态,从当控制单元遍历顺序状态,从FETCH1,FETCH2,ADD1到到AND1时,时,INC信号有效。信号有效。CLR则用来从每一个执行周期的末尾返回到取指令则用来从每一个执行周期的末尾返回到取指令 周期,这可能发生在周期,这可能发生在ADD2,AND2,JMP1和和INC1 状态。状态。LD信号在每个取指令周期的末尾信号在每个取指令周期的末尾FETCH3状态中状态中 发出。发出。三、控制单元部分电路图三、控制单元部分电路图四、四、组合形成控制组合形成控制ARAR,PCPC,DRDR,IRIR,M M,ALUALU以及以及缓冲缓冲 器器

23、的控制信号。的控制信号。首先考虑首先考虑AR寄存器,它是在状态寄存器,它是在状态FETCH1 (ARPC)和和FETCH3(ARDR5.0)期间装载期间装载 的。通过将这两个状态信号进行逻辑的。通过将这两个状态信号进行逻辑OR操作,操作,CPU 就为就为AR产生了产生了LD信号。信号。为为PC,DR,AC以及以及IR创建如下的控制信号:创建如下的控制信号:PCLOAD=JMP1PCINC=FETCH2FETCH1:ARPCFETCH2:DRM,PCPC1FETCH3:IRDR7.6,A RDR5.0ADD1:DRMADD2:ACACDRAND1:DRMAND2:ACACDRJMP1:PCDR5

24、.0 INC1:ACAC1DRLOAD=FETCH2 ADD1 AND1ACLOAD=ADD2 AND2ACINC=INC1IRLOAD=FETCH3 ALU的控制输入的控制输入ALUSEL 把把ALUSEL设置为设置为AND2,就能保证当,就能保证当CPU执行执行ADD或或AND指令时,有正确的结果从指令时,有正确的结果从ALU流向流向AC。当当ALUSEL=0时,时,ALU输出的是两个输入的算术和;输出的是两个输入的算术和;当当ALUSEL=1时,那么输出就是输入的逻辑与。时,那么输出就是输入的逻辑与。产生缓冲器的有效信号产生缓冲器的有效信号 例如:例如:DR寄存器寄存器 在在FETCH3

25、(IRDR7.6,ARDR5.0),),ADD2(ACAC+DR),),AND2(ACACDR)以及以及JMP1(PCDR5.0)的时候,的时候,DR的内容必须的内容必须 放到总线上。将这些状态值进行放到总线上。将这些状态值进行逻辑或逻辑或,就能够得到,就能够得到 DRBUS信号。信号。这个过程也可以用于产生其它缓冲器的控制信号:这个过程也可以用于产生其它缓冲器的控制信号:MEMBUS=FETCH2 ADD1 AND1 PCBUS=FETCH1 产生一个产生一个READ信号信号 该信号从该信号从CPU输出,并要求存储器输出它读到的数据。输出,并要求存储器输出它读到的数据。READ=FETCH2

26、 ADD1 AND1五、控制单元中用来产生这些控制信号的部分电路图五、控制单元中用来产生这些控制信号的部分电路图6.2.8 设计验证 对每条指令的对每条指令的取指令、译码取指令、译码以及以及执行周期执行周期进行跟踪。进行跟踪。1.考虑如下这段代码,它每条指令仅仅包含了一次。考虑如下这段代码,它每条指令仅仅包含了一次。0:ADD 41:AND 52:INC3:JMP 04:27H5:39H2.CPU遵循状态图并以合适的状态顺序取出、译码和执行遵循状态图并以合适的状态顺序取出、译码和执行 每条指令:每条指令:ADD4:FETCH1FETCH2FETCH3ADD1ADD2 AND5:FETCH1FE

27、TCH2FETCH3AND1AND2 INC:FETCH1FETCH2FETCH3INC1 JMP 0:FETCH1FETCH2FETCH3JMP13.对这段程序的一次循环的跟踪情况(所有寄存器的初始对这段程序的一次循环的跟踪情况(所有寄存器的初始 值都是值都是0)指令指令状态状态有效信号有效信号所执行的操作所执行的操作下 一 个 状下 一 个 状态态ADD 4FETCH1PCBUS,ARLOADAR0FETCH2FETCH2READ,MEMBUS,DRLOAD,PCINCDR04H,PC1FETCH3FETCH3DRBUS,ARLOAD,IRLOADIR00,AR04HADD1ADD1REA

28、D,MEMBUSDRLOADDR27HADD2ADD2DRBUS,ACLOADAC0+27HFETCH1AND 5FETCH1PCBUS,ARLOADAR1FETCH2FETCH2READ,MEMBUS,DRLOAD,PCINCDR45H,PC2FETCH3FETCH3DRBUS,ARLOADIRLOADIR01,AR05HAND1AND1READ,MEMBUSDRLOADDR39HAND2AND2DRBUS,ALUSEL,ACLOADAC27H39H=21HFETCH1INCFETCH1PCBUS,ARLOADAR2FETCH2FETCH2READ,MEMBUS,DRLOAD,PCINCDR

29、C0H,PC3FETCH3FETCH3DRBUS,ARLOAD,IRLOADIR11,AR00HINC1INC1ACINCAC21H+1=22HFETCH1J M P 0FETCH1PCBUS,ARLOADAR3FETCH2FETCH2READ,MEMBUS,DRLOAD,PCINCDR80H,PC4FETCH3FETCH3DRBUS,ARLOAD,IRLOADIR10,AR00HJMP1JMP1DRBUS,PCLOADPC0FETCH16.3.1 相对简单CPU的描述 1 16464K K字节的存储器,每个存储单元字节的存储器,每个存储单元8 8位宽。位宽。地址引脚地址引脚A15.0 数据引

30、脚数据引脚D7.0(双向)(双向)2 2CPUCPU的三个内部寄存器的三个内部寄存器 8位累加器位累加器AC:接受任何算术或者逻辑运算的:接受任何算术或者逻辑运算的 结果,并为使用两个操作数的算术或者逻辑操结果,并为使用两个操作数的算术或者逻辑操 作指令提供一个操作数。作指令提供一个操作数。6.3 相对简单CPU的设计和实现 寄存器寄存器R:一个:一个8位通用寄存器。它为所有的双操作位通用寄存器。它为所有的双操作 数算术和逻辑运算指令提供第二个操作数。它也可数算术和逻辑运算指令提供第二个操作数。它也可 以用来暂时存放累加器马上要用到的数据。以用来暂时存放累加器马上要用到的数据。(减少存储器访问

31、次数提高(减少存储器访问次数提高CPU的性能)的性能)零标志位零标志位Z:每次执行算术运算或者逻辑运算的时候,:每次执行算术运算或者逻辑运算的时候,它都将被置位。它都将被置位。3 3指令集结构指令集结构 InstructionInstruction InstructionInstruction CodeCode OperationOperation NOP 0000 0000 No operation LDAC 0000 0001 ACM STAC 0000 0010 MAC MVAC 0000 0011 RAC MOVR 0000 0100 ACR JUMP 0000 0101 GOTO J

32、MPZ 0000 0110 IF(Z1)THEN GOTO JPNZ 0000 0111 IF(Z0)THEN GOTO ADD 0000 1000 ACACR,If(ACR0)Then Z1 Else Z0 SUB 0000 1001 ACACR,If(ACR0)Then Z1 Else Z0 INAC 0000 1010 ACAC1,If(AC10)Then Z1 Else Z0 CLAC 0000 1011 AC0,Z1 AND 0000 1101 ACACR,If(ACR0)Then Z1 Else Z0 OR 0000 1101 ACACR,If(ACR0)Then Z1 Else

33、Z0 XOR 0000 1110 ACACR,If(ACR0)Then Z1 Else Z0 NOT 0000 1111 ACAC,If(AC0)Then Z1 Else Z0 4一些寄存器一些寄存器 16位的地址寄存器位的地址寄存器AR:通过引脚:通过引脚A15.0向存储器向存储器 提供地址。提供地址。16位的程序计数器位的程序计数器PC:存放的是将要执行的下一:存放的是将要执行的下一 条指令的地址,或者指令需要的下一个操作数的地条指令的地址,或者指令需要的下一个操作数的地 址。址。8位的数据寄存器位的数据寄存器DR:通过:通过D7.0从存储器中接收从存储器中接收 指令和数据并且向存储器传送

34、数据指令和数据并且向存储器传送数据。8位的指令寄存器位的指令寄存器IR:存放的是从存储器中取出来:存放的是从存储器中取出来 的操作码。的操作码。8位的临时寄存器位的临时寄存器TR:在指令执行过程中,临时存:在指令执行过程中,临时存 储数据。(程序员不能访问)储数据。(程序员不能访问)6.3.2 取指令和译码 FETCH1:ARPCFETCH2:DRM,PCPC1FETCH3:IRDR,ARPC 取指令和译码周期的状态图:取指令和译码周期的状态图:(注意:注意:两条指令,两条指令,JMPZ和和JPNZ,具有两个不同的,具有两个不同的 执行周期。执行周期。)6.3.3 执行指令 6.3.3.1 6

35、.3.3.1 NOPNOP指令指令 NOP1:(无操作)(无操作)6.3.3.2 6.3.3.2 LDACLDAC指令指令 LDAC是一条多字指令。是一条多字指令。它包含三个字:它包含三个字:操作码操作码 地址的低半部分地址的低半部分 地址的高半部分地址的高半部分 功能:功能:从存储器中获得地址,然后从存储器中获得数从存储器中获得地址,然后从存储器中获得数 据,并把数据装载到累加器中。据,并把数据装载到累加器中。第一个状态:第一个状态:LDAC1:DRM,PCPC1,ARAR1 (减少执行减少执行LDAC指令所需的状态数)指令所需的状态数)第二个状态:第二个状态:LDAC2:TRDR,DRM,

36、PCPC1 LDAC3:ARDR,TR LDAC4:DRM LDAC5:ACDR6.3.3.36.3.3.3 STAC STAC指令指令 STAC指令执行的是与指令执行的是与LDAC完全相反的操作。完全相反的操作。STAC1:DRM,PCPC1,ARAR1 STAC2:TRDR,DRM,PCPC1 STAC3:ARDR,TR STAC4:DRAC STAC5:MDR6.3.3.4 6.3.3.4 MVACMVAC和和MOVRMOVR指令指令MVAC1:RACMOVR1:ACR 6.3.3.5 6.3.3.5 JUMPJUMP指令指令JUMP1:DRM,ARAR+1UMP2:TRDR,DRMJU

37、MP3:PCDR,TR6.3.3.6 6.3.3.6 JMPZJMPZ和和JPNZJPNZ指令指令JMPZ指令的状态:指令的状态:当当Z=1时:时:MPZY1:DRM,ARAR1JMPZY2:TRDR,DRMJMPZY3:PCDR,TR 当当Z=0时:时:JMPZN1:PCPC1JMPZN2:PCPC1JPNZ指令的状态:指令的状态:当当Z=0时:时:JPNZY1:DRM,ARAR1 JPNZY2:TRDR,DRM JPNZY3:PCDR,TR 当当Z=1时:时:JPNZN1:PCPC1 JPNZN2:PCPC16.3.3.7 6.3.3.7 其余的指令其余的指令 其余的指令都是在一个状态内完

38、成的。其余的指令都是在一个状态内完成的。ADD1:ACACR,IF(ACR0)THEN Z1 ELSE Z0 SUB1:ACACR,IF(ACR0)THEN Z1 ELSE Z0 INAC1:ACAC1,IF(AC10)THEN Z1 ELSE Z0 CLAC1:AC0,Z1 AND1:ACACR,IF(ACR0)THEN Z1 ELSE Z0 OR1:ACACR,IF(ACR0)THEN Z1 ELSE Z0 XOR1:ACAC R,IF(AC R0)THEN Z1 ELSE Z0 NOT1:ACAC,IF(AC0)THEN Z1 ELSE Z0 整个整个CPU的状态图的状态图1.1.使用内

39、部总线将部件连接起来使用内部总线将部件连接起来2 2根据目的地将数据传送进行分类根据目的地将数据传送进行分类 AR:ARPC;ARAR1;ARDR,TR PC:PCPC1;PCDR,TR DR:DRM,DRAC IR:IRDR R:RAC TR:TRDR 6.3.4 创建数据通路 AC:ACDR;ACR;ACACR;ACACR;ACAC1;AC0;ACACR;ACACR;ACAC R;ACAC Z:Z1;Z0(二者是有条件的)(二者是有条件的)3 3选择每个部件的功能选择每个部件的功能 AR和和PC必须能够执行并行的装载和递增的操作。必须能够执行并行的装载和递增的操作。两个寄存器都从内部总线上

40、接受数据。两个寄存器都从内部总线上接受数据。DR,IR,R,TR必须能够并行装载数据。必须能够并行装载数据。CPU用一个用一个ALU来完成所有这些功能。来完成所有这些功能。ALU能够接受能够接受AC的数据作为一个输入,接受内的数据作为一个输入,接受内 部总线上的数据作为另外一个输入。部总线上的数据作为另外一个输入。AC总是从总是从ALU得到它的输入。得到它的输入。CPU同时也根据同时也根据ALU的输出来决定结果是否的输出来决定结果是否0,从而设置从而设置Z。4 4对设计进行改进对设计进行改进 AR和和IR不向其他的部件提供数据。可以删除它们到不向其他的部件提供数据。可以删除它们到 内部总线的连

41、接。内部总线的连接。引脚引脚D7.0是双向的。是双向的。实现双向引脚的标准实现双向引脚的标准方法方法:使用一对缓冲器,每使用一对缓冲器,每个方向一个。个方向一个。(一个用来从引脚输(一个用来从引脚输入数据,另外一个用入数据,另外一个用来 将 数 据 输 出 到 引来 将 数 据 输 出 到 引脚。)脚。)16位宽的总线并没有被所有的寄存器充分的利用。必位宽的总线并没有被所有的寄存器充分的利用。必 须确定寄存器的哪些位连接到总线的哪些位上。须确定寄存器的哪些位连接到总线的哪些位上。寄存器寄存器Z没有跟任何部件相连。没有跟任何部件相连。连接寄存器连接寄存器Z Z 将将ALU的输出进行的输出进行NO

42、R操作。操作。NOR门的输出作为门的输出作为Z的输入。的输入。5 5引起下面的问题引起下面的问题 在在FETCH3,CPU必须同时完成必须同时完成IRDR和和ARPC两两 个操作。个操作。(FETCH3:IRDR,ARPC)建立一条从建立一条从DR输出端到输出端到IR输入端的直接通路,使得输入端的直接通路,使得IRDR不使用内部总线。不使用内部总线。断开断开IR从内部总线输入的连接,因为它不再从总线从内部总线输入的连接,因为它不再从总线上接收数据。上接收数据。在在LDAC2和其他一些状态中,和其他一些状态中,TRDR和和DRM需要需要 同时用到总线。同时用到总线。(LDAC2:TRDR,DRM

43、,PCPC1)TR只从只从DR接受数据,所以接受数据,所以CPU可以包含一条从可以包含一条从 DR的输出到的输出到TR的输入的直接通路,的输入的直接通路,TR的输入可以从内部总线上断开。的输入可以从内部总线上断开。在在LDAC3和其他一些状态中,和其他一些状态中,DR和和TR必须被同必须被同 时送到总线上,时送到总线上,DR在位在位15.8,TR在位在位7.0。(LDAC3:ARDR,TR)将将DR的输出同时连接到总线的输出同时连接到总线15.8和和7.0上,上,并使用两个具有不同选择信号的缓冲器。并使用两个具有不同选择信号的缓冲器。6 6经过改进之后的内部组织图经过改进之后的内部组织图6.3

44、.5 相对简单ALU的设计 1 1列出所有会修改列出所有会修改ACAC内容的传送。内容的传送。LDAC5:ACDRMOVR1:ACRADD1:ACACRSUB1:ACACRINAC1:ACAC1CLAC1:AC0 AND1:ACACR OR1:ACACRXOR1:ACAC RNOT1:ACAC2 2设计两个运算单元设计两个运算单元 算术运算单元算术运算单元 逻辑运算单元逻辑运算单元使用一个多路选择器从正确的输出中选择数据送入使用一个多路选择器从正确的输出中选择数据送入AC。(1)设计算术单元设计算术单元 把算术指令进行改写以便看出它们操作数的来源把算术指令进行改写以便看出它们操作数的来源 把每

45、个操作改写成为两个值与进位的和把每个操作改写成为两个值与进位的和 每一条指令用一个带进位的并行加法器实现。每一条指令用一个带进位的并行加法器实现。减法通过补码的加法实现。减法通过补码的加法实现。LDAC5:ACBUSMOVR1:ACBUSADD1:ACACBUSSUB1:ACACBUSINAC1:ACAC1CLAC1:AC0AC0BUS0AC0BUS0ACACBUS0ACACBUS1ACAC01AC000 并行加法器的并行加法器的第一个输入第一个输入;AC的值或的值或0。(ALU使用一个多路选择器从这两个值中选择使用一个多路选择器从这两个值中选择一个并将它传送给并行加法器的一个输入。)一个并将

46、它传送给并行加法器的一个输入。)加法器的加法器的第二个输入第二个输入:ALU使用一个多路选择器来使用一个多路选择器来 传送传送BUS,BUS或者或者0。进位输入进位输入:ALU还可以使用一个多路选择器来提供还可以使用一个多路选择器来提供 进位输入,但是这样开销太大了。我们仅仅用一个控制进位输入,但是这样开销太大了。我们仅仅用一个控制输入来产生进位值。输入来产生进位值。(2)设计逻辑单元设计逻辑单元 总共有总共有4个逻辑运算。个逻辑运算。使用一个使用一个8位位4选一的多路选择器。选一的多路选择器。MUX的输入是:的输入是:ACBUS,ACBUS,AC BUS以及以及AC。3 3设计整个设计整个A

47、LU 最后,一个多路选择器用来在并行加法器和逻辑多最后,一个多路选择器用来在并行加法器和逻辑多 路选择器的输出之间选择一个输出送路选择器的输出之间选择一个输出送AC。6.3.6 用硬布线逻辑设计控制单元 总共有总共有37个状态。个状态。1 1使用两个寄存器并且将他们的输出组合起来产生状使用两个寄存器并且将他们的输出组合起来产生状 态值。态值。指令中的操作码指令中的操作码 一个计数器:用来记录取指令或者执行过程中一个计数器:用来记录取指令或者执行过程中 的哪个状态应该是有效的。的哪个状态应该是有效的。2 2设计操作码的值设计操作码的值 使用使用IR的输出作为译码器的输入。的输出作为译码器的输入。

48、指令代码的形式:指令代码的形式:0000 XXXX 对低对低四四位进行译码。位进行译码。将高将高四四位位NOR在一起来控制译码器有效。在一起来控制译码器有效。3 3相对简单相对简单CPUCPU的硬布线控制单元的硬布线控制单元4 4产生相对简单产生相对简单CPUCPU的状态的状态 取指令周期取指令周期 取指令周期是唯一不使用指令译码器值的周期。取指令周期是唯一不使用指令译码器值的周期。FETCH1 T0 FETCH2 T1 FETCH3 T2 执行周期执行周期 取决于操作码和时序计数器的值。取决于操作码和时序计数器的值。控制单元按照适当的指令把正确的时钟值和指控制单元按照适当的指令把正确的时钟值

49、和指 令多路选择器的输出进行逻辑与运算令多路选择器的输出进行逻辑与运算。例如,例如,LDAC执行周期的状态是:执行周期的状态是:LDAC1 ILDAC T3 LDAC2 ILDAC T4 LDAC3 ILDAC T5 LDAC4 ILDAC T6 LDAC5 ILDAC T7 状态的完全列表状态的完全列表状态状态功能功能状态状态功能功能FETCH1T0JMPZY1IJMPZZT3FETCH2T1JMPZY2IJMPZZT4FETCH3T2JMPZY3IJMPZZT5NOP1INOPT3JMPZN1IJMPZZT3LDAC1ILDACT3JMPZN2IJMPZZT4LDAC2ILDACT4JPN

50、ZY1IJPNZZT3LDAC3ILDACT5JPNZY2IJPNZZT4LDAC4ILDACT6JPNZY3IJPNZZT5LDAC5ILDACT7JPNZN1IJPNZZT3STAC1ISTACT3JPNZN2IJPNZZT4STAC2ISTACT4ADD1IADDT3STAC3ISTACT5SUB1ISUBT3STAC4ISTACT6INAC1IINACT3STAC5ISTACT7CLAC1ICLACT3MVAC1IMVACT3AND1IANDT3MOVR1IMOVRT3OR1IORT3JUMP1IJMPT3XOR1IXORT3JUMP2IJMPT4NOT1INOTT3JUMP3IJMP

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(芯片制造技术课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|