完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
计算机组成原理
计算机系统:硬件+软件 硬件的发展: 第一代:电子管 第二代:晶体管 第三代:中小规模集成电路时代 第四代:大规模,超大规模集成电路时代 目前发展趋势:更微型,多用途,更巨型,超高速 硬件基本组成 五大部分: 输入设备 输出设备 主存储器 运算器 控制器 冯诺依曼首次提出存储程序概念,以运算器为中心 现代计算机结构以存储器为中心,CPU=运算器+控制器 各硬件部分 主存包括: 存储体:存储元,存储单元,存储字,存储字长,地址 MAR(Memory Address Register )地址寄存器,用于指明要读写哪个存储单元。其位数反映存储单元数量 MDR(Memory Data Register )数据寄存器,用于暂存要读写的数据,位数=存储字长 运算器包括 ACC累加计数器,存放操作数,运算结果 MQ乘商寄存器,进行乘除 X通用寄存器,存放操作数 ALU算数逻辑单元,用于电路实现各种算数运算,逻辑运算 控制器包括 PC程序计数器,存放下一条指令的地址 IR指令寄存器,存放当前执行的指令 CU控制单元,分析指令,给出控制信号。 计算机系统的层次结构 五层 M4:高级语言机器(执行高级语言) M3:汇编语言机器(执行汇编语言) M2:操作系统机器(向上提供广义指令) M1:传统机器(执行机器语言指令) M0:微程序机器(执行微指令) 三个级别的语言 高级语言,汇编语言,机器语言 编译程序——将高级语言一次全部翻译为汇编语言,或直接翻译为机器语言 汇编程序——将汇编语言翻译为机器语言 解释程序——高级语言翻译为机器语言 性能指标 时钟周期:CPU中最小的时间单位,每个动作至少要1个时钟周期 主频(时钟频率):单位Hz CPI(Clock cycle Per Instruction)执行一条指令所需的时钟周期数 CPU执行时间=(指令数*CPI)/主频 IPS(Instruction Per Second)每年执行的指令条数=主频/平均CPI FLOPS(Floating-point Operations Per Second )每秒执行多少次浮点运算 • BCD(Binary -Coded Decimal) • 8421码 • 余3码 • 2421码 用二进制编码的十进制 奇偶校验 • 检验原理 • 码字间的距离:两个码字之间有几个位不同 • 码距:一个编码方案中,合法码字间的最小距离 • 若码距=2,有校错能力,若码距=3可能还会有纠错能力 • 奇偶校验 • 在信息位的首部或尾部添加一个奇偶校验位 • 奇校验:整个校验码(信息位和校验位)中1的个数为奇数 • 偶校验:整个校验码(信息位和校验位)中1的个数为偶数 • 奇偶校验码的码距=2,仅能检测出奇数位错误,无纠错能力 • 异或运算(模二加)二者不同为1 汉明码 • 基本思想:分组偶校验,多个校验位可反映出错位置 • 求解步骤:确定校验位个数(k个校验位,n个信息位) • 确定校验位分布,p 1,p 2,p3分别在1,2,4,8,空出来的其他位置依次填入信息位 • 求校验位 • 补充 • 海明码有1位纠错,2位校错能力 • 为了区分1位错和2位错,还需添加全校验位对整体进行偶校验 • 0/1→正/负 原码 反码:中间态 补码:负数的补码,符号位不变,按位取反再➕1,补码为了解决ALU中不设置减法寄存器,因为减法的硬件难度设计高 移码:在补码的基础上把符号位取反,注意,移码只能用于表示整数 移码=真值+偏置值 定点数移位运算 • 算术移位:用于做乘法运算 • 原码:符号位不参与移位。左移右移都补0 • 反码:符号位不参与移位。左移右移都补0 • 补码: • 负数补码最右边的1及其右边与原码相同,最右边的1的左边与反码相同 • 符号位不参与移位。左移补0,右移补1 • 逻辑移位:RGB,左移右移都补0,移出的位舍弃 • 循环移位: • 不带进位位:用移出的位补上空缺 • 带进位位:移出的位放到进位位,原进位位补上空缺 注意:原,反,补码位数有限,有时算数移位不能精确等效乘除 • 强制类型转换 • 长整型变短整型 • 高位截断,低位保留 • 短整型变长整型 • 符号扩展 浮点数表示 阶码:常用补码或移码表示的定点整数 阶码E反映浮点数的表示范围及小数点的实际位置; 尾数:常用原码或补码表示的定点小数 尾数M的数值部分的位数n反映浮点数的精度 规格化浮点数:规定尾数的最高数值位必须是一个有效值 左规:当浮点数运算的结果为非规格化时要进行规格化处理,将尾数算数左移一位,阶码减一 右规:当浮点数运算的结果尾数出现溢出时,将尾数算数右移一位,阶码加一 半导体存储芯片的结构 1. 存储矩阵:由大量相同的位存储单元阵列构成 2. 译码驱动:将来自地址总线的地址信号翻译成对应存储单元的选通信号,该信号在读写电路的配合下完成对被选中单元的读写操作 3. 读写电路:包括读出放大器和写入电路,用来完成读写操作 4. 读写控制线:决定芯片进行读写操作 5. 片选线:确定哪个存储芯片被选中,可用于容量扩充 6. 地址线:单向输入,位数与存储字的个数有关 7. 数据线:双向的,位数与读出写入的数据位数有关。 8. 数据线数和地址线数共同反映存储芯片容量的大小 SRAM DRAM 存储信息 触发器,双稳态 电容,充放电 读出后需要重新充电 破坏性读出 非 读:查看触发器状态 写:改变触发器状态 是 读:连接电容,检测电流变化 写:给电容充放电 需要刷新 不要,能保持两种稳定的状态 需要,电容电荷只能维持2ms 送行列地址 同时送 分两次送,地址线复用,线数减少一半 运行速度 快 慢 集成度 低 高 发热量 大 小 存储成本 高 低 用途 常用作Cache 常用作主存 DRAM刷新(Dynamic Radom Access Memory ) 1. 多久需要刷新一次?一般2ms 2. 每次刷新多少存储单元?以行为单位,每次刷新一行存储单元 3. 为什么要用行列地址?减少选通线的数量 4. 如何刷新?有硬件支持,读出一行的信息后重新写入,占用1个读写周期 5. 何时刷新? 1. 每次读写完都刷新一行(分散刷新) 2. 2ms内集中安排时间全部刷新(集中刷新) 3. 2ms内每行刷新1次即可(异步刷新) ROM(Read-Only Memory) 1. 掩膜式只读存储器(MROM)存储内容由半导体制药厂按用户提出的要求在芯片的生产过程中直接写入,无法修改 2. 一次可编程只读存储器(PROM)存储内容由用户用专门的设备一次性写入,之后无法修改 3. 可擦除可编程只读存储器(EPROM)修改次数有限,写入时间长 1. 紫外线擦除(UVEPROM) 2. 电擦除(EEPROM) 4. 闪速存储器(Flash Memory)如U盘,写入速度较快 5. 固态硬盘(Solid State Drivers)控制单元+FLASH芯片 Cache 基本工作原理 1. 主存中的块放到Cache 中的哪个位置? 1. 空位随意放:全相联映射 2. 对号入座:直接映射 3. 按号分组,组内随意放,组相联映射 2. 对于1,Cache 满了如何处理?对于2,3对应位置被占用如何处理? 1. 随机(RAND)算法,先进先出(FIFO)算法,最近最少使用算法,最不经常使用(LFU)算法 3. 修改Cache 中的内容后,如何保持主存中相应内容的一致性? 1. 命中: 1. 全写法(write-through) 2. 写回法(write-back ) 2. 不命中: 1. 写分配法(write-allocate) 2. 非写分配法(not-write-allocate) 指令系统 • 指令系统 • 指令格式 • 定长指令字格式与变长指令字格式 • 操作码 • 定长操作码与扩展操作码 • 操作类型 • 地址码 • 指令寻址方式 • 给出下一条指令的地址 • 给出要操作的对象的地址 • CISC 和 RISC 操作码:指出指令的功能 地址码:给出操作的信息的地址 操作码指出指令中该指令应该执行什么性质的操作和具有何种功能。 操作码是识别指令,了解指令功能与区分操作数地址内容的组成和使用方法等关键信息 操作码分类: ⁃ 定长操作码:在指令字的最高部分分配固定的若干位(定长)表示操作码 ⁃ 一般n位操作码字段的指令系统最大能够表示2^n条指令 ⁃ 优点:定长操作码对于简化计算机硬件设计,提高指令译码和识别速度很有利 ⁃ 缺点:指令数量增加时会占用更多固定位,留给表示操作数地址的位数受限 • 扩展操作码(不定长操作码):全部指令的操作码字段的位数不固定,且分散地放在指令字的不同位置上 • 最常见的变长操作码方法是扩展操作码,使操作码的长度随地址码的减少而增加,不同地址数的指令可以具有不同长度的操作码,从而在满足需要的前提下,有效缩短指令字长 • 优点:在指令字长有限的前提下仍保持比较丰富的指令种类 • 缺点:增加了指令译码和分析的难度,使控制器的设计复杂化 操作类型 1. 数据传送 1. LOAD,把存储器中的数据放到寄存器中 2. STORE,把寄存器中的数据放到存储器中 2. 算数逻辑操作 3. 移位操作:算数移位,逻辑移位,循环移位 4. 转移操作 1. 无条件转移JMP 2. 条件转移 JZ:结果为0;JO:结果溢出;JC:结果有进位 3. 调用和返回 CALL RETURN 4. 陷入指令(trap) 5. IO输入输出操作 指令寻址 按字编址:每个字存储单元对应一个地址编号 按字地址寻址:给出一个字地址,可以取出长度为一个字的数据 按字节编址:每个字节存储单元都有一个地址编号 按字节寻址:给出一个字节地址,可以取出长度为一个字节的数据 机器字长:CPU一次能处理的二进制数据的位数 指令字长:一个指令字长中包含二进制代码的位数 存储字长:一个存储单元存储二进制代码的长度 寻址方式 立即寻址 • 形式地址A就是操作数本身,又称为立即数,一般采用补码形式。 • 优点:指令执行阶段不访问主存,指令执行时间最短 • 缺点:A的位数限制了立即数的范围。 • 一条指令的执行:取指令访存1次,执行指令访存0次,暂不考虑存结果,共访存1次 直接寻址 • 指令字中的形式地址A就是操作数的真实地址EA • 优点:简单,指令执行阶段仅访问一次主存,不需要专门计算操作数的地址 • 缺点:A的位数决定了该指令操作数的寻址范围。操作数的地址不易修改 • 一条指令的执行:取指令访存1次,执行指令访存1次,共访存2次 间接寻址 • 指令的地址字段给出的形式地址不是操作数的真正地址,而是操作数有效地址所在的存储单元地址,也就是操作数地址的地址 • 优点:可扩大寻址范围,用于编制程序 • 缺点:指令在执行阶段要多次访存 寄存器寻址 • 寄存器中给出的不是一个操作数,而是操作数所在主存单元的地址 • 特点:比一般间接寻址速度快,但指令的执行阶段需要访问主存 • 一条指令的执行:取指令访存1次,执行指令访存1次,共访存2次 隐含寻址 • 不是明显地给出操作数的地址,而是在指令中隐含着操作数的地址 • 优点:有利于缩短指令字长,扩大寻址范围 • 缺点:需增加存储操作数或隐含地址的硬件 偏移寻址方式 • 基址寻址 • 将CPU中基址寄存器(BR)的内容加上指令格式中的形式地址A,而形成操作数的有效地址,即EA=(BR)+A • 基址寄存器是面向操作系统的,其内容由操作系统或管理程序确定。在程序执行过程中,基址寄存器的内容不变,形式地址可变(偏移量) • 当采用通用寄存器作为基址寄存器时,可由用户决定哪个寄存器作为基址寄存器,但内容仍由操作系统确定 • 优点:扩大寻址范围,用户不必考虑程序存在外存的哪个空间区域,有利于多道程序设计 • 变址寻址 • 有效地址EA等于指令字中的形式地址A与变址寄存器IX的内容相加之和,即EA=(IX)+A,其中IX为变址寄存器 • 变址寄存器是面向用户的,在程序执行过程中,变址寄存器的内容可由用户改变(作为偏移量),形式地址A不变(作为基地址) • 可扩大寻址范围,在数组处理过程中,设定A为数组的首地址,不断改变IX的内容,适用于循环程序 • 相对寻址 • 把程序计数器PC的内容加上指令格式中的形式地址A而形成操作数的有效地址,即EA=(PC)+A ,A是位移量,可正可负,用补码表示 • 操作数的地址不是固定,随PC值的变化而变化,并且与指令地址之间总是差一个固定值,便于程序浮动 • 广泛应用于转移指令 • 堆栈寻址 • 操作数存放在堆栈中,隐含使用堆栈指针(SP, Stack Point )作为操作数地址。 • 堆栈是存储器中一特定的按后进先出(LIFO)原则管理的存储区,该存储区中被读写单元地址是用一个特定的寄存器给出的,称为堆栈指针 指令系统 • CISC (Complex Instruction Set Computer) • 设计思路:一条指令完成一个复杂的基本功能 • 代表:x86架构,主要用于笔记本,台式机 • 80-20规律:典型程序中80%的语句仅仅使用处理机中20%的指令 • 比如:设计一套能输出单词的指令集 • CISC思路,每个单词的输出由一条指令完成,采用存储程序的设计思想,由一个比较通用的电路配合存储部件完成一条指令 • RISC(Reduced Instruction Set Computer) • 设计思路:一条指令完成一个基本动作,多条指令组合完成一个复杂的基本功能。 • 代表:ARM架构,主要用于手机,平板 • 采用并行,流水线的方式 CISC RISC 指令系统 复杂,庞大 简单,精简 指令数目 一般大于200条 一般小于100条 指令字长 不固定 定长 可访存指令 不加限制 只有Load/Store 各种指令执行时间 相差较大 绝大多数在一个周期内完成 各种指令使用频度 相差很大 都比较常用 通用寄存器数量 较少 多 目标代码 难以用优化编译生成高效的目标代码程序 采用优化的编译程序,生成代码较为高效 控制方式 绝大多数为微程序控制 绝大多数为组合逻辑控制 指令流水线 可以通过一定方式实现 必须实现 中央处理器 • CPU的功能和结构 • 需要提供哪些功能? • 对应这些功能需要有哪些结构? • 指令执行过程 • 指令周期的概念:一条指令的执行分为不同阶段 • 数据流:不同阶段要求依次访问的数据序列 • 指令执行方案:如何安排多条指令的执行? • 数据通路的功能和基本结构 • 如何设置部件之间的连接路径? • 描述指令执行过程中信号和数据在这些路径上的传输 • 控制器的功能和工作原理 • 控制器如何指挥整个系统的工作? • 控制器的设计 • 硬布线 • 微程序 • 指令流水线 • 为什么引入流水线的结构? • 有哪些结构? • 会产生什么问题? CPU的功能 1. 指令控制。完成取指令,分析指令和执行指令的操作,即程序的顺序控制 2. 操作控制。一条指令的功能往往是由若干操作信号,把各种信号送往相应的部件,从而控制这些部件按指令的要求进行动作 3. 时间控制。对各种操作加上时间的控制。时间控制要为每条指令按时间顺序提供对应的控制信号 4. 数据加工。对数据进行算数和逻辑运算 5. 中断处理。对计算机运行过程中出现的异常情况和特殊请求进行处理。 运算器和控制器的功能 • 运算器 • 对数据进行加工 • 控制器 • 协调并控制计算机各部件执行程序的指令序列 • 取指令:自动形成指令地址,自动发出取指令的命令。 • 分析指令:操作码译码,产生操作数的有效地址 • 执行指令:根据分析指令得到的操作命令和操作数地址形成操作信号控制序列,控制运算器,存储器,IO设备完成相应的操作。 • 中断处理:管理总线及输入输出,处理异常情况和特殊请求 运算器基本结构 1. 算术逻辑单元:主要功能是进行算术逻辑运算 2. 通用寄存器组,用于存放操作数(源操作数,目的操作数及中间结果)和各种地址信息 3. 暂存寄存器:用于暂存从主存读出来的数据,这个数据不能存放在通用寄存器中,否则会破坏原有内容。 4. 累加寄存器:是一个通用寄存器,用于暂存ALU运算的结果信息,用于实现加法运算 5. 程序状态字寄存器:保留由算术逻辑运算指令或测试指令的结果而建立的各种状态信息,如溢出标志(OP)符号标志(SF)零标志(ZF)进位标志(CF)PSW中这些位参与并决定微操作的形成 6. 移位器:对运算结果进行移位运算 7. 计数器:控制乘除运算的操作步数 • 专用数据通路方式:根据指令执行过程中的数据和地址流动方向安排连接线路。 • 如果直接用导线连接,相当于多个寄存器同时并且一直向ALU传输数据 • 解决办法1:使用多路选择器,根据控制信号选择一路输出 • 解决办法2:使用三态门电路可以控制每一路是否输出 • 性能高,基本不存在数据冲突现象,但结构复杂,硬件量大,不易实现 • CPU内部单总线方式 • 将所有寄存器的输入输出都连接到一条公共通路上 • 结构简单,容易实现,但数据传输存在较多冲突的现象,性能低 控制器的基本结构 1. 程序计数器:用于指出下一条指令在主存中的存放地址。CPU根据PC内容去主存中取指令。因为程序中指令是顺序执行的,所以PC有自增功能 2. 指令寄存器:用于保存当前正在执行的那条指令 3. 指令译码器:仅对操作字段进行译码,向控制器提供特定的操作信号 4. 微操作信号发生器:根据IR的指令,PSW的状态信息和时序信号,产生控制整个计算机系统所需的各种控制信号,其结构有组合逻辑型和存储逻辑型 5. 时序系统:用于产生各种时序信号,由统一时钟CLOCK 分频得到。 6. 存储器地址寄存器:用于存放所要访问的主存单元地址 7. 存储器数据寄存器:用于存放向主存写入的信息或从主存中读出的信息 指令周期的数据流 • 指令周期:CPU从主存中每取出并执行一条指令所需的全部时间。 • 指令周期常常用若干机器周期表示,机器周期又叫CPU周期。 • 一个机器周期又包含若干时钟周期(它是CPU操作的最基本单位) • 每个指令周期内机器周期数可以不等,每个机器周期内的节拍数也可以不等 • 取指周期 • 当前指令地址送至存储器地址寄存器 • CPU发出控制信号,经控制总线传到主存, • 将MAR所指主存中的内容经数据总线送到MDR • 将MDR中的内容送入IR • CU发出控制信号,形成下一条指令地址 • 间址周期 • 将指令的地址码IR送到MAR • CU发出控制信号,启动主存,读操作 • 将MAR所指主存中的内容经数据总线送到MDR • 中断周期 • 为了能恢复当前任务,需保存断点,一般用堆栈来保存断点,SP表示栈顶地址,进栈操作是先修改指针,后存入数据 • CU控制将SP减1⃣️,修改后的地址送入MAR,本质上是将断点存入某个存储单元 • CU发出控制信号,启动主存写操作 • 将断点送到MDR, • CU控制将中断服务程序的入口地址送到PC • 执行方案 • 单指令周期 • 所有指令周期选用相同的执行时间,指令间串行 • 多指令周期 • 不同类型指令选用不同的执行步骤,指令间串行 • 流水线方案 • 隔一段时间启动一条指令,多条指令处于不同阶段,同时运行 CPU控制方式:产生不同微操作命令序列所用的时序控制方式 1. 同步控制方式 1. 整个系统所有的控制信号都来自一个统一的时钟信号。 2. 通常以最长的微操作序列和最烦琐的微操作为标准,采取完全统一的,具有相同时间间隔和相同数目的节拍作为机器周期来运行不同的指令 3. 同步控制方式的优点,是控制电路简单,缺点是运行速度慢 2. 异步控制方式 1. 不存在基准时标信号 2. 各部件按自身固有的速度工作,通过应答方式进行联络。 3. 优点是运行速度快,缺点是控制电路比较复杂 3. 联合控制方式 微操作指令 非访存指令 1. CLA(clear)清零 2. COM(complement)取反 3. SHR(shift right)算术右移 4. CSL(cyclic shift left)循环左移 5. STP(stop)停机 访存指令 1. ADD(add) 2. STA(store)存数 3. LDA(load)取数 4. JMP(jump)无条件转移 5. BAN(branch negative)条件转移 中断周期原则 1. 微操作的先后顺序不得随意更改 2. 被控对象不同的微操作尽量安排在一个节拍内完成 3. 占用时间较短的微操作,尽量安排在一个节拍内完成,允许有先后顺序 中断隐指令:中断隐指令不是一条指令,而是指一条指令的中断周期由硬件完成的一系列操作 中断的三个任务 1. 保存断点 2. 形成中断服务程序的入口地址 3. 关中断 硬布线工作原理: 微操作控制信号由组合逻辑电路根据当前的指令码,状态和时序,即时产生 微程序工作原理: 事先把微操作控制信号存储在一个专门的存储器中,将每条机器指令编写成一个微程序,这些微程序可以存到一个控制存储器中,用寻址用户程序机器指令的办法来寻址每个微程序中的微指令 微指令格式 1. 水平型微指令 1. 一次能定义并执行多个并行操作 2. 优缺点:微程序短,执行速度快,微程序长,编写微程序麻烦 2. 垂直型微指令 1. 类似机器指令操作码的方式,由微操作码字段规定微指令的功能 2. 优点:微指令短,规整,便于编写 3. 缺点:微程序长,执行速度慢,工作效率低 3. 混合型微指令 微指令编码方式(微指令控制方式) 是指如何对微指令的控制字段进行编码,以形成控制信号。编码的目标是在保证速度对情况下,尽量缩短微指令字长 1. 直接编码方式 1. 在微指令的操作控制中,每一位代表一个微操作指令 2. 优点:简单,直观,执行速度快,并行性好 3. 缺点:微指令字段过长,造成控存容量极大 2. 字段直接编码方式 1. 将微指令的控制字段分成若干段,每段译码后发出控制信号 2. 分段原则 1. 互斥性:微命令分在同一段内,相容性:微命令分在不同段内 2. 每个小段包含的信息位不能太多,否则将增加译码线路的复杂性和译码时间 3. 一般每个小段还要留出一个状态,表示本字段不发出任何微命令。因此,当某一段,长度为3位,最多只能表示7个互斥的微命令,通常用000表示不操作。 3. 优点:可以缩短微指令字长 4. 缺点:要通过译码电路后再发出微命令,因此比直接编码慢 3. 字段间接编码方式 1. 一个字段的某些微命令需由另一个字段中的某些微命令来解释,由于不是靠字段直接译码发出的微命令,故称为字段间接编码,又称为隐士编码 2. 优点:可进一步缩短微指令字长 3. 缺点:削弱了微指令的并行控制能力,通常作为字段直接编码方式的一种辅助手段 微指令的地址形成方式 1. 微指令的下地址字段指出 1. 微指令格式中设置一个下地址字段,由微指令的下地址直接指出后续微指令的地址,这种方式称为断定方式 2. 根据机器指令的操作码形成 1. 当机器指令取到指令寄存器后,微指令的地址由操作码经微地址形成部件形成 3. 增量计数器法 4. 分支转移 5. 通过测试网络 6. 由硬件产生微程序入口地址 操作控制字段 转移方式 转移地址 转移方式:指明判别条件;转移地址:指明转移成功后的去向 微程序控制的基本概念 1. 微命令和微操作 1. 微命令是微操作的控制信号 2. 微操作是微命令的执行过程 2. 微指令与微周期 1. 微指令是若干微命令的集合 2. 微周期通常是指从控制存储器中读取一条微指令并执行相应的微操作所需的时间 3. 主存储器和控制存储器 1. 主存储器用于存放程序和数据,在CPU的外部,用RAM实现 2. 控制存储器(CM)用于存放微程序,在CPU内部,用ROM实现 4. 程序与微程序 1. 程序是指令的有序集合,用于完成特定的功能 2. 微程序是微指令的有序集合,一条指令的功能由一段微程序来实现 5. 地址寄存器(MAR)和微地址寄存器(CMAR) 6. 指令寄存器(IR)和微指令寄存器(CMDR) 微程序设计分类 1. 静态微程序设计和动态微程序设计 1. 静态微程序无需改变,采用ROM 2. 动态:通过改变微指令和微程序改变机器指令,有利于仿真,采用EPROM 2. 毫微程序设计 1. 微程序设计用微程序解释机器指令 2. 毫微程序设计用毫微程序解释微程序 3. 毫微指令和微指令的关系好比微指令与机器指令的关系 硬布线与微程序的比较 微程序控制器 硬布线控制器 工作原理 微操作控制信号以微程序的形式存放在控制存储器中,执行指令时可以读出即可 微操作控制信号由组合逻辑电路根据当前的指令码,状态和时序,即时产生 执行速度 慢 快 规整性 比较规整 烦琐 应用场合 CISC CPU RISC CPU 易扩充性 容易扩充 困难 微程序控制器的基本结构 1. 微地址形成部件 2. 微地址寄存器CMAR 3. 控制存储器CM(control memory ) 4. 微指令寄存器(CMDR) 指令流水线 一条指令的执行过程可以分为多个阶段 取指 分析 执行 取指:根据PC内容访问主存,取出一条指令送到IR中 分析:对指令操作码进行译码,按给定的寻址方式和地址字段中的内容形成操作数的有效地址EA,并从EA中取出操作数 执行:根据操作码字段,完成指令规定的功能,即把运算结果写到通用寄存器或主存中 1. 顺序执行方式 1. 传统的冯诺依曼机采用顺序执行方式,又称串行执行方式 2. 优点:控制简单,硬件代价小 3. 缺点:执行指令的速度慢,任何时刻,只有一条指令在执行,利用率低 2. 一次重叠执行方式 1. 优点:程序执行时间缩短,各部件利用率提高 2. 缺点:需要付出硬件上较大的开销,执行过程也比较复杂 3. 二次重叠方式 1. 优点: 2. 缺点: 指令流水线 1. 基本概念: 1. 指令执行过程划分为不同阶段,占用不同的资源,就能使多条指令同时执行 2. 表示方法 1. 指令流程图:主要用于分析影响流水线的因素 2. 时空图:主要用于分析流水线的性能 2. 性能指标 1. 吞吐率TP 2. 加速比S 3. 效率E 3. 影响因素 4. 分类及常见技术 取指->译码->执行->访存->写回 IF->ID->EX->M->WB Fetch->Decode->Execute->Memory->Write back 影响流水线的因素 1. 结构相关(资源冲突) 1. 由多条指令在同一时刻争用同一资源而形成的冲突 1. 解决办法:后一相关指令暂停一周期 2. 资源重复配置:数据存储器➕指令存储器 2. 数据相关(数据冲突) 1. 数据相关指在一个程序中,存在必须等前一条指令执行完才能执行后一条指令的情况,则这两条指令即为数据相关 2. 解决办法: 1. 把遇到数据相关的指令及其后续指令都暂停一至几个时钟周期,直到数据相关问题消失后再继续执行。可分为硬件阻塞(stall)和软件插入NOP两种方法 2. 数据旁路技术 3. 编译优化:通过编译器调整指令顺序来解决数据相关 3. 控制相关(控制冲突) 1. 当流水线遇到转移指令和其他改变PC值的指令而造成断流时,会引起控制相关 2. 解决办法: 1. 尽早判别转移是否发生,尽早生成转移目标地址 2. 预取转移成功和不成功两个控制流方向的目标指令 3. 加快和提前形成条件码 4. 提高转移方向的猜准率 数据相关(数据冲突) 数据的基本操作:读(R),写(W) 冲突的基本类型: RAW(写后读)按序发射,按序完成 WAR(读后写)乱序发射 WAW(写后写) 流水线分类 1. 部件功能级,处理机级和处理机间流水线 1. 部件功能级流水线就是将复杂的算术逻辑运算组成流水线工作方式。如,可将浮点数运算分为求阶差,对阶,尾数相加以及结果规格化 2. 处理机级流水线是把一条指令解释过程分成多个子过程,如取指,译码,执行,访存,写回 3. 处理机间流水线是一种宏流水,其中每一个处理机完成某一专门任务,各个处理机所得的结果需要存放在与下一个处理机所共享的存储器中 2. 单功能流水线和多功能流水线 1. 单功能流水线指只能实现一种固定的专门功能的流水线 2. 多功能流水线指通过各段间的不同连接方式可以同时或不同时地实现多种功能的流水线 3. 动态流水线和静态流水线 1. 静态流水线指同一时间内,流水线的各段只能按同一种功能的连接方式工作 2. 动态流水线指在同一时内,当某些段正在实现某种运算时,另一些段正在运行另一种,这样对提高效率有好处,但会使流水线控制变得复杂 4. 线性流水线和非线性流水线 1. 线性流水线中,从输入到输出,每个功能只允许经过一次,不存在反馈回路 2. 非线性流水线中存在反馈回路,适合进行线性递归运算 流水线的多发技术 1. 超标量技术 1. 每个时钟周期内可并发多条独立指令 2. 配置多个功能部件 3. 不能调整指令的执行顺序 4. 通过编译优化技术,把可并行执行的指令搭配起来 2. 超流水技术 1. 在一个时钟周期内再分段 2. 在一个时钟周期内一个功能部件使用多次 3. 不能调整指令执行顺序 4. 靠编译程序解决优化问题 3. 超长指令字 1. 由编译程序挖掘出指令间潜在的并行性 2. 将多条能并行操作的指令组合成一条 3. 具有多个操作码字段的超长指令字 总线 1. 概述 1. 基本概念 2. 总线的分类及经典结构 3. 性能指标 2. 仲裁 1. 如何解决多个设备争用总线的问题 3. 操作和定时 1. 占用总线的一对设备如何进行数据传输 4. 标准 1. 易于实现系统的模块化设计 总线是一组能为多个部件分时共享的公共信息传送路线 共享是指总线上可以接多个部件,各部件之间相互交换的信息都可以通过这组线路分时共享 分时是指同一时刻只允许有一个部件向总线发送信息,如果系统中有多个部件,则只能分时地向总线发送信息 为什么要用总线? 早期计算机外设少时大多采用分散连接方式,不易实现随时增删外设,为了更好地解决IO设备和主机之间连接的灵活性问题,计算机的结构从分散连接发展为总线连接 总线特征: 1. 机械特性 2. 电气特性 3. 功能特性 4. 时间特性 总线分类 1. 按数据传输格式 1. 串行总线 1. 优点:只需要一条传输线,成本低,广泛应用于长距离通信,节省布线空间 2. 缺点:在数据发送和接收的时候要进行拆卸和装配,要考虑串并转换的问题 2. 并行总线 1. 优点:总线的逻辑时序简单,电路实现容易 2. 缺点:信号线数量多,占布线空间,远距离传输成本高;由于工作频率较高时,并行的信号线之间会发生严重干扰,对每条线等长的要求也越高,所以无法持续提升效率 3. 串行总线和并行总线的速度比较 1. 工作频率相同时,串行总线传输速度比并行总线慢 2. 并行总线的工作频率无法持续提高,而串行总线可以通过不断提高工作频率来提高传输速度,最终超过并行总线 2. 按总线功能 1. 片内总线:它是CPU芯片内部寄存器和寄存器之间,寄存器与ALU之间的公共连接线。 1. 数据通路表示的是数据流经的路径 2. 数据总线是承载的媒介 2. 系统总线 1. 数据总线 2. 地址总线 3. 控制总线 3. 通信总线 3. 按时序控制方式 1. 同步总线 2. 异步总线 系统总线 1. 系统总线是计算机系统内各功能部件(CPU 主存 IO)之间相互连接的总线 2. 数据总线(DB):传输各功能部件之间的数据信息,包括指令和操作数,位数与机器字长,存储字长有关 3. 双向传输 4. 地址总线(AB):传输地址信息,包括主存单元或IO端口的地址,位数与主存地址空间大小以及设备数量有关 5. 是单向传输 6. 控制总线(CB):一根控制线传输一个信号:有出的,如CPU送出的控制命令,有入的,如主存返回的CPU反馈信号 通信总线 是用于计算机系统之间或计算机系统与其他系统之间信息传递的总线,通信总线也称为外部总线 系统总线的结构 1. 单总线结构 1. 单总线不是指只有一根信号线 2. 优点:结构简单,成本低,容易接入新的设备 3. 缺点:带宽低,负载重,多个部件争用同一个总线,不支持并发传递操作 2. 双总线结构 1. 一条是主存总线,用于CPU,主存,和通道之间进行数据传送,支持突发传送:送出一个地址,收到多个地址连续的数据 2. 另一条是IO总线,用于多个外设与通道之间进行数据传递,通道是具有特殊功能的处理器,能对IO设备进行统一管理,通道程序放在主存中 3. 优点:将低速的IO设备从单总线上分离出来,实现存储器总线和IO总线分离 4. 缺点:需要增加通道等硬件设备 3. 三总线结构 1. 主存总线 2. DMA总线(Direct Memory Access )直接内存访问 3. IO总线 4. 优点:提高了IO设备的性能,使其更快地响应命令,提高系统吞吐量 5. 缺点:系统工作效率低 补充: 桥接器,用于连接不同的总线,具有数据缓冲,转换和控制功能 靠近CPU的总线速度较快 总线的性能指标 1. 总线的传输周期(总线周期) 1. 一次总线操作所需时间(包括申请,寻址,传输,结束阶段),通常由若干个总线时钟周期构成 2. 总线时钟周期 1. 即机器的时钟周期。计算机有一个统一的时钟,以控制整个计算机各部件,总线也受此时钟的控制 3. 总线的工作频率 1. 总线周期的倒数 2. 指一秒内传送几次数据 4. 总线的时钟⏰频率 1. 即机器的时钟频率,为时钟周期的倒数 2. 指一秒内有多少个时钟周期 5. 总线宽度 1. 又称为总线位宽,它是总线上同时能够传输的数据位数,通常是指数据总线的根数 6. 总线带宽 1. 可以理解为总线的数据传输率,即单位时间总线上可传输数据的位数,通常用每秒钟传送信息的字节数来衡量 2. 总线带宽是指总线本身所能达到的最高传输速率 3. 实际计算的有效数据传输速率时,要用实际传输的数据量➗耗时 4. 总线带宽=总线工作频率×总线宽度(串并行总线的速度?) 7. 总线复杂 1. 总线复用是指一种信号线在不同的时间传输不同的信息,可以使用较少的线传输更多的信息,从而节省空间和成本 8. 信号线 1. 地址总线,数据总线和控制总线3种总线的和称为信号线 总线仲裁 同一时刻只能有一个设备控制总线传输操作,可以有一个或多个设备从总线接收数据。 将总线上所连接 各类设备按其对总线有无控制功能分为: 主设备:获得总线控制权 从设备:只能响应从主设备发来的各种总线命令 为什么要仲裁? 总线作为一种共享设备,不可避免会出现同一时刻有多个主设备竞争总线控制权的问题 总线仲裁的定义: 多个主设同时竞争主线控制权,以某种方式选择一个设备优先获得总线控制权称为总线仲裁 总线仲裁分类: 1. 集中仲裁方式: 1. 链式查询方式, 1. 离总线控制器越近的部件,其优先级越高 2. 优先级固定的 3. 优点:只需要很少的几根控制线就能按一定优先次序实现总线控制,结构简单,扩充容易 4. 缺点:对硬件电路的故障敏感,且优先级不能改变 5. 当优先级高的部件频繁请求使用总线时,会使得优先级低的部件长期不能使用总线 2. 计数器定时查询方式 1. 结构特点:用一个计数器控制总线使用权,相对链式查询方式多了一组设备地址线,少了一根总线响应线BG,仍用一根总线请求线 2. 当总线控制器收到总线请求信号,判断总线空闲时,计数器开始记数,记数指通过设备地线发向各个部件 3. 当地址线上的计数指与请求使用总线设备的地址一致时,该设备获得总线控制权。同时,中止计数器的计数以及查询 4. 优点: 1. 计数初始值可以改变优先次序 ⁃ 计数每次从0开始,设备的优先级就按顺序排列,固定不变 ⁃ 计数从上一次的终点开始,此时设备使用总线的优先级相等 ⁃ 计数器的初值还可以由程序设置 2. 对电路的故障没有链式敏感 5. 缺点: 1. 增加了控制线数 2. 控制相对比链式查询相对复杂 3. 独立请求方式 1. 结构特点:每个设备都有一对总线请求线和总线允许线 2. 当总线上的部件需要使用总线时,经各自的总线请求线发送总线请求信号,在总线控制器中排队 3. 当总线控制器按一定的优先次序决定批准某个部件的请求时,则给该部件发送总线响应信号 4. 优点: 1. 响应速度快,总线允许信号BG直接从控制器发送到有关设备,不必在设备间传递或查询 2. 对优先次序的控制相当灵活 5. 缺点: 1. 控制线数量多 2. 总线的控制逻辑更加复杂 2. 分布仲裁方式 1. 特点:不需要中央仲裁器,每个主模块都有自己的仲裁器和仲裁号,多个仲裁器竞争使用 2. 过程: 1. 当设备有总线请求时,它们就把各自唯一的仲裁号发到共享仲裁总线上 2. 每个仲裁器将从仲裁总线上得到的仲裁号与自己的仲裁号比较 3. 如果仲裁总线上的号优先级高,则它的总线请求不予响应,并撤销它的仲裁号 4. 最后,获胜的仲裁号保留在仲裁总线上 总线传输的四个阶段 1. 申请分配阶段:由需要使用总线的主模块提出申请,经总线仲裁机构决定下一传输周期的总线使用权授予某一申请者。也可将此阶段细分为传输请求和总线仲裁两个阶段 2. 寻址阶段:获得使用权的主模块通过总线发出本次要访问的从模块的地址以及有关命令,启动参与本次传输的从模块 3. 传输阶段:主模块和从模块进行数据交换,可单向或双向进行数据传输 4. 结束阶段:主模块的有关信息均可从系统总线上撤销,让出总线使用权 总线定时是指总线在双方交换数据的过程中需要时间上配合关系的控制,这种控制称为总线定时,它的实质是一种协议或规则 1. 同步通信(同步定时方式):由统一时钟控制数据传送 1. 优点:传送速度快,具有较高的传输速率,总线控制逻辑简单 2. 缺点:主从设备属于强制性同步,不能及时进行数据通信的有效性校验,可靠性差 3. 同步通信适用于总线长度短以及总线所连接部件的存取时间比较接近的系统。 2. 异步通信(异步定时方式):采用应答方式,没有公共时钟标准 1. 不互锁方式 2. 半互锁方式 3. 全互锁方式 4. 优点:总线周期长度可变,能保证两个工作速度相差很大的部件或设备之间可靠地进行信息交换,自动适应时间的配合 5. 缺点:比同步控制方式复杂点,速度比同步定时方式慢。 3. 半同步通信:同步,异步结合 4. 分离式通信:充分挖掘系统总线每瞬间的潜力 1. 特点: 1. 各模块都有权申请占用总线 2. 采用同步方式通信,不等对方回答 3. 各模块准备数据时,不占用总线 4. 总线利用率提高 总线标准 即插即用(Plug-and-Play)的作用是自动配置计算机的板卡和其他设备,然后告诉对应的设备都做了什么。把物理设备和软件(设备驱动程序)相配合,并操作设备,在每个设备和它的驱动程序之间建立通信信道 热插拔(hot-plugging)即带电插拔,热插拔功能就是允许用户在不关闭系统,不切断电源的情况下取出和更换损坏的硬盘,电源或板卡等部件,从而提高了系统对灾难的及时恢复能力,扩展性和灵活性,如面向高端应用的磁盘镜像系统都可以提供磁盘的热插拔功能 • ISA(Industry Standard Architecture)系统总线 • EISA(Extended ISA)系统总线 • PCI(Peripheral Component Interconnect)局部总线 • PCI-E(PCI-Express)串行 • USB(Universal Serial Bus) • SATA(Serial Advanced Technology Attachment)串行硬盘接口 • AGP(Accelerated Graphics Port) PCI特点: 1. 高性能:不依附于某个具体的处理器,支持突发传送 2. 良好的兼容性 3. 支持即插即用 4. 支持多主设 5. 具有与处理器和存储器子系统完全并行操作的能力 6. 提供数据和地址奇偶校验的能力 7. 可扩充性好,可采用多层机构提高驱动能力 8. 采用多路复用技术,减少总线引脚个数 视频线标准简介 VGA:Video Graphics Array 传输模拟信号 有CRT显示器,LCD液晶显示器 DVI:Digital Visual Interface HDMI:High Definition Multimedia Interface IO系统 输入输出系统 1. 基本概念 1. 演变过程 2. IO系统的组成 3. IO控制方式简介 2. 外部设备 1. 输入设备:键盘,鼠标 |
|
|
|
只有小组成员才能发言,加入小组>>
4505个成员聚集在这个小组
加入小组3333 浏览 0 评论
航顺(HK)联合电子发烧友推出“近距离体验高性能Cortex-M3,免费申请价值288元评估板
4261 浏览 1 评论
4288 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 07:55 , Processed in 0.569763 second(s), Total 74, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号