版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
CPU史苇杭办公室:306办公电话子邮件:shiwh@《计算机组成原理》系统总线存储器运算器控制器接口与通信输入/输出设备Cache第八章CPU的结构与功能(最难)(含第八章+第四篇)8.1 CPU的基本功能与组成(8.1)8.2 时序系统和控制方式(8.28.39)8.3 组合逻辑设计(10)8.4微程序设计(10)第八章CPU的结构与功能8.2、时序系统和控制方式8.2.1时序系统(指令周期、CPU周期、时钟周期)8.2.2指令流程8.2.3指令流水8.2.4
时序控制组合逻辑控制器的设计步骤(前三步骤)步骤一拟定指令系统(逻辑依据,讲过了)步骤二确定总体结构(空间安排,讲过了)步骤三拟定时序系统(时间安排,讲过了)步骤四拟定指令流程图(合并了步骤一、步骤三)组合逻辑控制器的设计步骤(前三步骤非常重要)步骤一拟定指令系统(给出硬部件设计的逻辑依据)步骤二确定总体结构(空间安排:设置哪些部件,确定数据通路)步骤三拟定时序系统(时间安排)选定时序系统作为协调各部件工作的手段(周期–节拍–脉冲)即把一条指令的执行过程分为若干个阶段,一个阶段为一个周期一个阶段一个名字(取指周期,源周期,目的周期,执行周期等)步骤四拟定指令流程图(合并了步骤一、步骤三)将一条指令的执行步骤按时间顺序用流程图形式表示出来(它是采用时序计数器设计控制器的关键一步)步骤五编制操作时间表(以步骤二、步骤四为基础)
将指令流程中规定的操作落实到由哪个部件完成,在什么时间完成步骤六微操作的组合与化简根据操作时间表,将产生同一微操作的条件用“或”连接组合成原始表达式,利用逻辑化简,获得最简单的逻辑表达式。步骤七设计逻辑电路图(结合现有的元件,适当变换逻辑表达式。)Review:控制器重在理解1、非访存指令
CLA的指令周期:两个CPU周期。指令功能:累加器清零操作。8.2.2指令流程——分析举例操作码译码1)程序计数器PC的内容“20”送入地址寄存器MAR;2)程序计数器PC的内容+1,为取下一条指令做准备;3)地址寄存器MAR的内容,送到地址总线ABus上;4)存储单元20中的内容经数据总线DBus送数据缓冲寄存器MDR;5)数据缓冲寄存器MDR的内容,送到指令寄存器IR;6)指令寄存器中的操作码被译码或测试;7)CPU识别出是CLA指令。2←20+11345CLA第一个CPU周期:取指令、操作码译码假设程序计数器PC内容为“20”0002067操作码译码器第二个CPU周期:执行指令1)操作控制器送一控制信号给ALU;2)ALU响应控制信号,对AC清零。操作码译码器2、直接访存指令
ADD的指令周期:三个CPU周期。
指令功能:两个操作数相加,运算结果放累加器一个操作数直接寻址、一个操作数隐含寻址。操作码译码8.2.2指令流程——分析举例第一个CPU周期:取指令,操作码译码(同CLA)2←21+11345ADD300002167操作码译码器第二个CPU周期:送操作数地址1)把指令寄存器中的地址码部分(30)送入地址寄存器00030操作码译码器第三个CPU周期:取操作数,执行指令1)从内存中读取操作数,送入数据缓冲寄存器;2)操作数与累加器相加后存入累加器。00030000006000006000000000006操作码译码器3、存数指令
STA的指令周期:三个CPU周期。指令功能:向内存单元,写入一操作数。操作码译码8.2.2指令流程——分析举例第一个CPU周期:取指令,操作码译码2←22+11345STA400002267操作码译码器第二个CPU周期:送操作数地址00040操作码译码器00040000006第三个CPU周期:送操作数,执行写操作累加寄存器的内容,先送入数据缓冲寄存器,再写入到所选定的存储单元(40)中。操作码译码器4、空操作指令
NOP的指令周期:两个CPU周期。指令功能:控制器不发出任何控制信号。操作码译码8.2.2指令流程——分析举例第一个CPU周期:取指令,操作码译码2←23+11345NOP0002367操作码译码器第二个CPU周期:执行指令(没有任何操作)操作码译码器5、转移指令
JMP的指令周期:两个CPU周期。
第一个CPU周期:取指令第二个CPU周期:指令中地址码送程序计数器,代替原先的内容作为下一条指令的地址。从而改变了原先的程序顺序。8.2.2指令流程——分析举例第一个CPU周期:取指令,操作码译码2←24+11345JMP210002467操作码译码器第二个CPU周期:执行指令将指令的地址码部分21送到程序计数器,改变了原先执行顺序00021操作码译码器方框代表一个CPU周期,方框中的内容表示数据通路的某种控制操作。菱形通常用来表示某种判别或测试,不单独占用一个CPU周期。8.2.2指令流程–方框图表示采用方框图语言来表示一条指令的指令周期。五条指令序列:第一个CPU周期:取指令,每条指令都相同;CLA,JMP,NOP:两个CPU周期;ADD,STA:三个CPU周期ABUS:地址总线DBUS:数据总线AC:累加器PC:程序计数器IR:指令寄存器AR:地址寄存器DR:数据缓冲寄存器取指周期FE执行周期EX有间址吗?有中断吗?间址周期IND中断周期INT是是否否8.2.2指令流程一条指令完整的指令周期包括:取指周期FE(必有)间址周期IND
执行周期EX(必有)中断周期INT取指周期:取出并分析指令。间址周期:取操作数有效地址。执行周期:取操作数并执行指令。中断周期:CPU响应中断。例如:设CPU内有下列部件:PC,IR,SP,AC,MAR,MDR和CU(控制单元)
要求:1)写出完成间址寻址的取数指令LDA@X的信息流。
(将某主存单元的内容取至AC中)解:1)取指周期:PC送MAR送地址总线
PC+1送PCCU发读内存命令数据送数据总线送MDR送IR//指令送入IR
指令操作码部分OP(IR)送CU
2)间址周期:指令地址码部分送MAR送地址总线
CU发读内存命令数据送数据总线送MDR//操作数地址送入MDR3)执行周期:MDR送MAR送地址总线
CU发读内存命令数据送数据总线送MDR送AC//操作数送入AC8.2.2指令流程例如:设CPU内有下列部件:PC,IR,SP,AC,MAR,MDR和CU(控制单元)
要求:2)写出中断周期的信息流。解:2)在中断周期内需将程序断点(在PC中)保存起来,通常把断点存入堆栈。(假设进栈操作是先修改堆栈指针,后存入数据)
CU发修改堆栈指针命令
(SP)–1送SP,送MAR送地址总线
PC送MDRCU发写内存命令,MDR送数据总线写入存储单元
CU送新程序地址给PC
SP
SP断点SP8.2.2指令流程断点PC新地址PC1、取指周期数据流MDRCUMARPCIR存储器CPU地址总线数据总线控制总线IR+18.2.2指令流程2、间址周期数据流MDRCUMARCPU地址总线数据总线控制总线PCIR存储器MDR8.2.2指令流程3、执行周期数据流(不同的指令的数据流不同)4、中断周期数据流MDRCUMARCPU地址总线数据总线控制总线PC存储器8.2.2指令流程保存PC中的中断地址后,再送新地址给PC8.2.2指令流程–控制信号PCIRACCU时钟ALU………控制信号标志控制信号C0C1C2C3C4取指周期例:ADD@X取指周期的控制信号发送顺序:C0、C1、读、C2、C3、C4PCIRCU1、CPU内部不采用总线的方式PCPCPCMDRMARMDRMARPCIRACCU时钟ALU………控制信号标志控制信号MDRMARC1C2C3C5例:ADD@X间址周期的控制信号发送顺序:C5、C1、读、C2、C3IRMDRMDRMAR1、CPU内部不采用总线的方式8.2.2指令流程–控制信号PCIRACCU时钟ALU………控制信号标志控制信号
MDR
MARC1C2C5例:ADD@X执行周期的控制信号发送顺序:C5、C1、读、C2、C67、加、C8C7C6C8ACALU…控制信号
MDR
MAR
MDR1、CPU内部不采用总线的方式8.2.2指令流程–控制信号例:ADD@X
取指周期2.CPU内部采用总线方式(output输出input输入)8.2.2指令流程–控制信号例:ADD@X
间址周期2.CPU内部采用总线方式(output输出input输入)(Read)8.2.2指令流程–控制信号例:ADD@X
执行周期2.CPU内部采用总线方式(output输出input输入)(Read)8.2.2指令流程–控制信号8.2、时序系统和控制方式8.2.1时序系统(周期、节拍)8.2.2指令流程8.2.3指令流水(并行执行)8.2.4
时序控制提高访存速度:1、采用高速存储芯片2、多体并行存储结构3、采用高速缓冲存储器提高CPU速度:P3451、采用高速逻辑部件2、改进系统结构:采用流水技术开发系统的并行性。8.2.3指令流水–指令衔接方式CPU执行指令序列时,各指令之间采取什么样的衔接方式呢?最简单的是串行顺序处理方式,即一条指令执行完后才读取下一条。为了提高工作速度,现在的大多数计算机都采取重叠处理方式。重叠的程度取决于存储与运算部件的多少,还与控制器指令部件的工作方式有关(即指令预取与译码执行的技术)。现在,仅从预取指令的角度讨论几种指令衔接方式:
1、单存储体串行处理方式
2、单存储体重叠处理方式
3、双存储体重叠处理方式
4、多存储体重叠处理方式1、单存储体串行处理方式2、单存储体重叠处理方式取第K条指令……取数运算取第K+1条指令取数运算取第K条指令……取数运算取第K+1条指令取数取第K条指令……取数运算取第K条指令……取k+1条指令取k+2条指令取第K+1条数……取第K+2条数取第K+3条数取k+3条指令……第K条运算第K+2条运算第K+3条运算第K+1条运算3、双存储体重叠处理方式(一存储体存指令,一存储体存数据)取第K条数0体1体运算器CPU进行运算时内存空闲没用!8.2.3指令流水–指令衔接方式单体单体4、多存储体重叠处理方式
单元048地址译码器地址寄存器存储器0数据寄存器地址译码器地址寄存器存储器1数据寄存器地址译码器地址寄存器存储器3数据寄存器存储体号体内地址多体:每个体有独立的地址寄存器、地址译码器和数据寄存器。交叉:每一个体的地址不连续。048/159/…交叉编址。目的:提高单位时间内取字的速率。(CPU对存储体一对多)1593711地址译码器地址寄存器存储器2数据寄存器2610Review:多体交叉存储器单元048地址译码器地址寄存器存储器0数据寄存器地址译码器地址寄存器存储器1数据寄存器地址译码器地址寄存器存储器3数据寄存器1593711地址译码器地址寄存器存储器2数据寄存器2610取第K条指令……取第k条数第k条运算取第k+4条数第k+4条运算取k+4条指令0体取第K+1条指令……取第k+1条数第k+1条运算取第k+5条数取k+5条指令1体取第K+2条指令……取第k+2条数第k+2条运算取第k+6条数取k+6条指令2体取第K+3条指令……取第k+3条数第k+3条运算取第k+7条数取k+7条指令3体8.2.3指令流水–指令衔接方式流水线计算机的系统组成
其中CPU按流水线方式组织,通常由三部分组成3级流水线:指令部件、指令队列、执行部件。
为了使存储器的存取时间能与流水线各过程段的速度相匹配,一般都采用多体交叉存储器。8.2.3指令流水IF取指ID译码OF
取操作数EX执行
流水线CPU的时空图
计算机的流水线处理过程非常类似于工厂中的流水装配线。为了实现流水,首先把输入的任务(或过程)分割为一系列子任务,并使各子任务能在流水线的各个阶段并发地执行。当任务连续不断地输入流水线时,在流水线的输出端便连续不断地吐出执行结果,从而实现了子任务级的并行性。8.2.3指令流水–流水线CPUIFIDOFEX流入流出取指译码取操作数执行取指译码取操作数执行8.2.3指令流水–流水线CPU时钟周期每隔4个时钟周期完成1条指令第1条指令4个时钟周期,以后每隔1个时钟周期完成1条指令时钟周期
每个时钟周期内可并发多条独立指令(配置多个功能部件)
不能调整
指令的执行顺序(通过编译优化把可并行执行的指令重组)8.2.3指令流水–流水线CPU超标量技术
在一个时钟周期内再分段(在一个时钟周期内一个功能部件使用多次)
采用多个处理部件Pentium是Intel公司生产的超标量流水处理器的经典之作。8.2.3指令流水–流水线CPU取指
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024加工承揽合同协议书
- 吊车地铁隧道施工承包合同:2024版
- 2024版在线教育平台建设及运营合同2篇
- 二零二四年版:云计算服务提供合同(2024年度)
- 2024年度广告安装吊车作业安全合同
- 2024版物业服务管理补充协议
- 二零二四年电信基础设施共建与租赁协议
- 2024全新联合办公租赁合同模板2篇
- 二零二四年度蜜桔农业保险服务合同
- 二零二四年度广告公司与媒体投放广告合同
- 初中八年级语文课件-五种表达方式及区分
- 私家车安全教育课件
- 你画我猜题目
- 医疗器械设计更改评估报告
- 医保药品目录培训课件
- 企业安全生产风险评估与等级划分
- 2024初一半期家长会
- 《管制刀具认定》课件
- 安全之门学校安全教育打开幸福未来
- 《汉字输入一点通》课件
- 2024年中国联通黑龙江省分公司招聘笔试参考题库含答案解析
评论
0/150
提交评论