1.CPU的组成和功能:
(1)CPU(*处理器)功能:控制程序按设定方式执行。
1)指令控制:控制程序的执行顺序【顺序寻址、跳跃寻址】
2)操作控制:产生和发送各操作信号【对指令操作码译码后产生控制信号】
3)时间控制:控制指令、或操作的实施时间【维持各类操作的时序顺序】
4)数据加工:对数据进行算术逻辑运算【由ALU完成具体的运算】
(2)CPU的基本组成:运算器、控制器、片内cache。
1)控制器:从内存中取出一条指令,并指出下条指令的存放位置。对指令进行译码,产生相应的操作控制信号。控制CPU、内存和输入输出设备之间的数据流动。
2)运算器:执行所有算术运算。执行所有逻辑运算,并进行逻辑测试。
(3)CPU的主要寄存器:
寄存器 | 内容 | 特点 |
数据缓冲寄存器(DR) | 暂时存放CPU与外界传送的数据,可以是指令字或数据字 | (1)作为CPU和内存、外部设备之间信息传送的中转站。 (2)补偿CPU和内存、外围设备之间在操作速度上的差别 |
通用寄存器 | 暂时存放ALU运算的数据或结果 | CPU中的通用寄存器可以多达16、32个甚至更多 |
状态条件寄存器(PSW) | 保存各种状态和条件控制信号 | (1)进位标志(C) (2)溢出标志(V) (3)零标志(Z) (4)符号标志(N) (5)每个信号由一个触发器保存,从而拼成一个寄存器 |
地址寄存器(AR) | 保存当前CPU所访问数据的内存单元地址 | 主要用于解决主存/外设和CPU之间的速度差异,使地址信息可以保持到主存/外设的读写操作完成为止 |
程序计数器(PC) | 始终存放下一条指令的地址,对应于指令cache的访问 | 内容变化: (1)顺序执行:计数功能 (2)转移执行:寄存功能 |
指令寄存器(IR) | 保存当前正在执行的一条指令 | 指令寄存器中操作码字段的输出就是指令译码器的输入。 |
(4)操作控制器和时序产生器:
1)数据通路:寄存器之间传送信息的通路
2)操作控制器:根据指令操作码和时序信号,产生各种操作控制信号,建立正确的数据通路,从而完成指令的执行。
3)操作控制器分类:
硬布线控制器 | 采用时序逻辑技术实现 |
微程序控制器 | 采用存储逻辑实现 |
前两种方式的结合 |
4)时序产生器:对各种操作实施时间的控制。
2.指令周期
(1)指令周期概念:
CPU执行程序是一个“取指令到执行指令”的循环过程。一个完整的指令周期由若干机器周期组成:取指周期——间址周期——执行周期——中断周期。
1)指令周期:CPU从内存中取出一条指令,并执行的时间总和。
2)CPU周期:又称机器周期,一般为从内存中读取一条指令字的最短时间。
3)时钟周期:又称节拍脉冲或T周期,是计算机处理操作的基本时间单位。
(2)指令的指令周期实例:
性质 | 取指周期 | 间址周期 | 执行周期 | |
MOV R0,R1 | MOV是一条RR型指令,需要两个CPU周期 | (1)从存储器中取出指令 (2)程序计数器PC+1 (3)译码或测试指令操作码,发出控制信号 |
无 | 在控制信号作用下,将R1中的数据经过ALU送入R0 |
LAD R1,6 | LAD指令是RS型指令,需要访存获取操作数,共包含三个CPU周期 | 同上 | 从IR(指令寄存器)的地址码字段获取操作数地址(或者通过计算获得EA) | 访存获取操作数送入通用寄存器R1 |
ADD R1,R2 | ADD指令周期由两个CPU周期组成 | 同上 | 无 | (1)从寄存器R1、R2取出数据,作为源操作数 (2)将两数据送往ALU,并使ALU进行加运算 (3)结果保存到R1中 |
STO R2,(R3) | STO指令是RS指令,需要3个CPU周期 | 同上 | 根据R3中的地址寻址所要访问的存储单元 | 将寄存器R2中的数据送入指定的存储单元 |
JMP 101 | JMP指令是一条无条件转移指令,用来改变程序执行顺序,需要两个CPU周期 | 同上 | 无 | 使用JMP指令中的直接地址为PC复制 |
(3)指令周期中的控制信号:
取指周期 | 间址周期 | 执行周期 | |
MOV R0,R1 | (1)PC->ABUS->指令cache,译码并启动【PC读,指令cache启动】 (2)指令cache->IR;【指令cache读,IR写】 (3)PC->PC+1,为取下条指令做好准备【PC增量】 (4)IR中的操作码被译码或测试,CPU识别是指令MOV |
无 | (1)R1->ALU,R1中的数据通过ALU传送;【R1读,ALU传送控制】 (2)ALU->DBUS->DR->R0【ALU输出,DR锁存,R0写】 |
LAD R1,6 | 同上 | (1)IR->DBUS->AR【IR读,AR锁存】 | (1)AR->ABUS->数据cache,译码并启动【数据cache启动】 (2)数据cache->DBUS->DR->R1【数据cache读,DR锁存,R1写】 |
ADD R1,R2 | 同上 | 无 | (1)R1,R2->ALU【R1,R2读】 (2)ALU做加运算,将两数相加 (3)ALU->DBUS->DR->R1,保存结果【ALU输出,DR锁存,R1写】 |
STO R2,(R3) | 同上 | R3->DBUS->AR,发出地址启动数据cache【R3读,AR锁存】 | R2->DBUS->数据cache【R2读,数据cache写】 |
JMP 101 | 同上 | 无 | IR->DBUS->PC【IR读,PC写】 |
(4)计算机的性能指标:
1)主频/时钟周期:主时钟的频率叫做CPU的主频,主频的倒数称为CPU时钟周期
2)CPI:执行一条指令所需平均时钟周期数
3)MIPS:单位时间内执行的指令数,每秒百万指令数。
3.时序产生器和控制装置:
(1)时序信号:
1)时序信号作用:CPU的时间表,使计算机准确、迅速、有条不紊的工作
2)CPU通过时序控制来识别指令和数据:
3)时序信号的*:电位——脉冲制,脉冲到达前,电平信号必须要稳定
4)硬布线控制器的时序信号:著状态周期-节拍电位-节拍脉冲三级机制
5)微程序控制器的时序信号:节拍电位-节拍脉冲二级*
(2)时序信号产生器:用逻辑电路实现时序的控制
1)时钟源:提供稳定的基本方波时钟信号
2)环形脉冲发生器:产生一组有序的间隔相等或不等的脉冲序列
3)节拍脉冲和读写时序译码逻辑:环形脉冲与节拍脉冲共同作用产生各控制信号的时序
4)启停控制逻辑
(3)控制器的控制方式:
1)同步控制方式:在任何情况下,已定的指令在执行时所需的机器周期数和时钟周期数都固定不变
2)异步控制方式;每条指令、每个操作控制信号需要多少时间就占用多少时间
3)联合控制方式:大部分操作序列作为固定的机器周期,对某些时间难以确定的操作则以执行部件的回答信号作为本次操作的结束。机器周期的节拍脉冲数固定,但是各条指令周期的机器周期数不固定。
4.微程序控制器
(1)微程序设计技术是利用软件方法来设计硬件的一门技术,具有规整性,灵活性,可维护性等特点
(2)基本思想:
1)仿照解题程序的办法,把操作控制信号编成所谓的”微指令“,存放到一个只读存储器里。
2)当机器运行时,一条一条地读出这些微指令,从而产生全机所需要的各种操作控制信号,使部件执行规定地操作。
(3)微命令和微操作
1)控制部件和执行部件之间的关系:控制部件向执行部件发出控制信息,执行部件向控制部件返回状态信息。
2)微命令:控制部件通过控制线向执行部件发出各种控制命令
3)微操作:执行部件接受微命令后执行的操作
4)状态测试:执行部件通过反馈线向控制部件反映当前操作状态,以使控制部件决定下一步的微命令。
5)微操作的分类:
相容性微操作 | 在同时或同一个CPU周期内可以并行执行微操作 |
相斥性微操作 | 不能在同时或不能在同一个CPU周期内并行执行的微操作 |
(4)微指令和微程序:
1)微指令:一个CPU周期内,实现一定操作功能的一组微命令的组合。
2)微指令一般包含操作控制和顺序控制两部分:
操作控制 | 用于发出管理和指挥全机工作的控制信号 |
顺序控制 | 用于决定产生下一条微指令的地址 |
3)所有微指令都存放于控制存储器中,使用微地址访问
4)微程序:能实现一条机器指令功能的多条微指令序列。每条机器指令都对应着一段微程序
(5)微程序控制器的组成:
1)控制存储器【CM】:存放实现全部指令系统的微指令,由只读存储器构成,速度快,读出周期短
2)微指令寄存器:存放控制存储器读出的一条微指令信息;
微地址寄存器 | 决定要访问的下一条微指令的地址 |
微命令寄存器 | 保存一条微指令的操作控制字段和判别测试字段信息 |
3)地址转移逻辑:用于跳跃寻址微指令时,承担自动完成修改微地址的任务。
(6)微程序控制器的工作过程
1)“取指微指令”为所有指令的公用微指令。
2)取得机器指令后,经过P1测试【操作码测试】,产生对应的微程序入口地址,并送入微地址寄存器。
3)指令执行过程中,通过P2测试,修正下一条微指令的地址,逐条读取微指令执行。
4)执行完对应于一条机器指令的微程序后,返回到取指微指令,不断重复,直至程序执行完毕。
(7)CPU周期和微指令周期关系
1)微指令周期:读出微指令的时间加上执行该条微指令的时间
2)一般来讲,一个微指令周期时间设计得恰好和CPU时间相等。
(8)机器指令和微指令得关系
1)一条机器指令对应一个微程序,一个微程序由若干条微指令序列组成
2)一条机器指令所完成得操作划分成若干条微指令完成,由微指令进行解释和执行。
3)机器指令与内存有关,微指令与控制存储器有关。
4)每一个CPU周期对应一条微指令
5.微程序设计技术
(1)微命令编码:微指令中操作控制字段的编码表示方法,以及如何把编码翻译成相应得微指令。
1)微指令编码的表示方法:
内容 | 特点 | |
直接表示法 | 操作控制字段中的每一位代表一个微指令 | (1)简单直观,其输出可直接用于控制,执行速度快 (2)微指令字较长,因而使控制存储器容量较大 |
编码表示法 | (1)将微指令操作控制字段划分为若干个子字段 (2)每个子字段的所有微指令进行统一编码 (3)每个子字段的不同编码表示不同的微命令 |
(1)可大大缩短微指令字长 (2)需要微指令命令译码,故微程序的执行速度稍稍减慢 |
(2)微地址得形成方法:
1)微程序的入口地址:微程序的第一条微指令所在控存单元的地址
2)现行微指令:执行微程序的过程中,当前正在执行的微指令
3)后继微指令:现行微指令执行完毕后,下一条要执行的微指令
4)微指令中确定下一条微指令地址的方法:
内容 | 特点 | |
计数器方式 | 同CPU中程序计数器产生机器指令地址的方法相类似 | (1)微指令的顺序控制字段较短,微地址产生机构简单 (2)多路并行转移功能较弱,速度较慢,灵活性差 |
多路转移方式 | 可根据判别测试标志和状态条件信息选定某一个候选微地址的方法 | (1)能以较短的顺序控制字段配合,实现多路并行转移,灵活性好,速度较快 (2)转移地址逻辑需要用组合逻辑方法设计 |
(3)微指令格式:
1)水平微指令:一次能定义并执行多个并行操作微命令的微指令。
2)垂直微指令:微指令中设置微操作码字段,采用微操作码编译法,由微操作码规定微指令的功能。
3)水平和垂直微指令比较:
1.水平型微指令并行操作能力强,效率高,灵活性强。垂直型微指令则较差。
2..水平型微指令执行一条指令的时间短,垂直型微指令执行时间长。
3.由水平型微指令解释指令的微程序,具有微指令字比较长,但微程序短的特点。
4.水平型微指令用户难以掌握,而垂直型微指令与指令比较相似,相对来说,比较容易掌握。
(4)动态微程序设计:
1)静态微程序设计:对应于一台计算机的机器指令只有一组微程序,而且这一组微程序设计好之后,一般无需改变,而且也不容易改变
2)动态微程序设计:可通过改变微指令和微程序来改变机器的指令系统的微程序设计技术
6.硬连线控制器
(1)硬布线控制器是一种由门电路和触发器构成的复杂树形网络
(2)与微程序控制相比,硬布线控制的速度较快,微程序中每条微指令都要从控制存储器中读取一次,影响了速度,而硬布线控制主要取决于电路延迟。
7.流水CPU
(1)并行处理技术
1)并行性的两种含义:1.同时性:两个以上的事件在同一时刻发生。2.并发性:两个以上事件在同一间隔内发生。
2)并行性的三种形式:1.时间并行:使用流水处理部件,时间重叠
2.空间并行:设置重复资源,同时工作
3.时间+空间并行:时间重叠和资源重复的综合应用。
(2)流水CPU的结构
1)指令部件:指令部件本身构成一个流水线,由取指令、指令译码、计算操作数地址、取操作数等过程段组成
2)指令队列:指令队列是一个先进先出的寄存器栈,用于存放经过译码的指令和取来的操作数
3)执行部件:执行部件可以具有多个算术逻辑运算的部件,这些部件本身又用流水线方式构成。
(3)流水线CPU分类:
指令流水线 | (1)指令执行的并行处理 (2)指令流划分为取指、译码、取操作数、执行、写回等过程 |
算术流水线 | (1)运算操作步骤的并行处理 (2)现代微机中大多采用流水的算术运算器 |
处理机流水线 | (1)程序步骤的并行处理 (2)将每一阶段的处理分散在不同的机器上,应用于多级系统中 |
(4)流水线问题
内容 | 解决方法 | |
资源相关 | 多条指令进入流水线后再同意机器时钟周期内争用同一个功能部件所发生的冲突 | 指令推迟执行或是设置重复资源 |
数据相关 | 在一个程序中,如果必须等前一条指令执行完毕后,才能执行后一条指令,这两条指令就是数据相关 | 指令推迟执行,或是定向传送技术 |
控制相关 | 当执行转移指令时,根据转移条件是否发生来控制指令的执行顺序 | 延迟转移法、转移预测法 |