芯片制造技术课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《芯片制造技术课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 芯片 制造 技术 课件
- 资源描述:
-
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
展开阅读全文