计算机组成原理 课程设计报告

Size: px
Start display at page:

Download "计算机组成原理 课程设计报告"

Transcription

1 2016 计算机组成原理 课程设计报告 题 目 5 段流水 CPU 设计 专 业 信息安全 班 级 IS1301 学 号 U 姓 名 王梦鸽 电 话 邮 件 @qq.com 完成日期 指导教师 谭志虎 计算机科学与技术学院

2

3 课程设计任务书 一 设计题目 基于 Logisim 软件仿真平台的 5 段流水 CPU 设计实现 二 设计内容 设计模型机系统的总体结构 指令系统和时序信号 在对该模型机系统中的部件功能利用 EDA 软件的仿真功能进行仿真分析和功能验证的基础上, 将部分电路下载到 FPGA, 并与适当的外围器件相配合, 实现模型机的整机系统 要求所设计的整机系统能支持自动和单步运行方式, 能正确地执行存放在主存中的程序的功能, 对主要的数据流和控制流通过 LED 适时显示信息 三 设计要求 1) 支持 20 条基本指令 ; 2) 支持 5 段流水机制, 可处理数据冒险, 结构冒险, 分支冒险 ; 3) 能运行由自己所设计的指令系统构成的一段测试程序, 测试程序应能涵盖所有 指令, 程序执行功能正确 4) 能运行教师提供的标准测试程序, 并统计执行时间 四 设计流程 1) 根据课程设计指导书的要求, 制定出设计方案 ; 2) 画出自己所设计计算机系统的原理框图, 分析所需要的控制信号以及这些控制 信号的有效形式 ; 3) 画出各指令的指令周期流程图和所需要的控制信号 ; 4) 设计出实现指令功能的控制器 ; 5) 调试 数据分析 验收检查 ; 6) 课程设计报告和总结

4 五 成绩评定 成绩评定根据考勤 课程设计的过程 课程设计的效果 课程设计报告质量等进行综合评定 ; 其中设计过程和结果占 70%, 课程设计报告占 30%; 课程设计的成绩评定等级为不及格 及格 中 良好 优秀五级 ; 对基本功能进行扩展或设计具有非常鲜明的特征和一定程度的创新, 可根据实际情况加分 六 设计报告要求 课程设计报告主要内容包括 : 设计题目 设计目的 设备器材 设计原理及内容 设计步骤 遇到的问题及解决方法 设计总结 参考文献等 要求在适当位置配合相应的实验原理图 数据通路图 实验接线图等图表进行说明 总结部分主要写设计工作简介以及设计体会 应做到文理通顺, 内容正确完整, 书写工整, 装订整齐 课程设计报告采用 计算机组织与结构 专用设计报告模板,A4 纸双面打印 七 时间安排 课程设计的总体时间为 2 周, 具体安排如下 : 1) 第 1 天 : 到实验室布置任务和集中讲解 2) 第 1~3 天 : 学生查阅资料, 开始方案设计 3) 第 4 天 : 中期进度检查, 单周期 CPU 验收检查 4) 第 6 天 : 中期进度检查, 理想流水线多周期 CPU 验收检查 5) 第 10 天 : 最终结果验收 八 主要参考文献 [1] DAVID A.PATTERSON( 美 ). 计算机组成与设计硬件 / 软件接口 ( 原书第 4 版 ). 北京 : 机械工业出版社. [2] David Money Harris( 美 ). 数字设计和计算机体系结构 ( 第二版 ). 机械工业出版社 [3] 秦磊华, 吴非, 莫正坤. 计算机组成原理. 北京 : 清华大学出版社,2011 年. [4] 袁春风编著. 计算机组成与系统结构. 北京 : 清华大学出版社,2011 年. [5] 张晨曦, 王志英. 计算机系统结构. 高等教育出版社,2008 年.

5 目 录 1 课程设计概述 课设目的 设计任务 设计要求 实验原理与环境 实验原理 实验环境 总体方案设计 构建单周期 CPU 可支持理想流水线的多周期 CPU 设计 详细设计与实现 构建单周期 CPU 可支持理想流水线多周期 CPU 流水线冲突检测器 插入气泡的流水冲突处理 数据重定向的流水冲突处理 动态分支预测的流水冲突处理 实验过程与调试 测试用例 测试结果 性能分析 主要故障与调试 实验流程 I

6 6 设计总结与心得 课设总结 课设心得 参考文献 II

7 1 课程设计概述 1.1 课设目的 计算机组成原理是计算机专业的核心专业基础课 主要介绍计算机单机系统的组成原理及内部工作机制, 包括计算机各大部件的工作原理 设计方法 逻辑实现及互连构成计算机整机的技术 课程设计属于设计型实验, 不仅锻炼学生简单计算机系统的设计能力, 而且通过进行设计及实现, 进一步提高分析和解决问题的能力 1.2 设计任务 计算机系统设计的总体目标是设计模型机系统的总体结构 指令系统和时序信号 所设计的主机系统能支持自动和单步运行方式, 能正确地执行存放在主存中的程序的功能, 对主要的数据流和控制流通过 LED 适时显示信息具体设计任务如下 : 在 logisim 平台或 FPGA 开发板设计一款支持特定指令系统的 5 段流水 CPU 要求其支持 20 条基本指令, 支持 5 段流水机制, 可处理数据冒险, 结构冒险, 分支冒险 ; 能正确运行自己编写的测试程序, 测试程序应能涵盖所有指令 ; 能正确运行教师提供的标准测试程序 ; 具有自动统计功能, 自动统计执行周期, 不同冒险冲突次数, 动态预测成功次数 1.3 设计要求 根据理论课程所学的至少, 设计出简单计算机系统的总体方案, 结合各单元实验积累和课堂上所学知识, 选择适当芯片, 设计简单的计算机系统, 具体要求如下 : (1) 支持 20 条基本指令, 具体见表 1-1; (2) 根据课设指导书的要求, 制定设计方案 ; (3) 支持 5 段流水机制, 可处理数据冒险, 结构冒险, 分支冒险 ; (4) 能运行由自己所设计的指令系统构成的一段测试程序, 测试程序应能涵盖所有指令, 程序执行功能正确 1

8 表 1-1 指令集 # 指令 15~12 11~10 9~8 7~6 5~3 2~0 指令 指令功能 1 or 0 rs rt rd 0 0 or $rd = $rs $rt 2 and 0 rs rt rd 0 1 and $rd = $rs & $rt 3 add 0 rs rt rd 0 2 add $rd = $rs + $rt 4 sub 0 rs rt rd 0 3 sub $rd = $rs - $rt 5 sllv 0 rs rt rd 0 4 sllv $rd = $rs << $rt 6 srlv 0 rs rt rd 0 5 srlv $rd = $rs >> $rt 7 srav 0 rs rt rd 0 6 srav $rd = $rs >> $rt 算术右移 8 slt 0 rs rt rd 0 7 slt $rd = ($rs < $rt)? 1 :0 9 beq 1 rs rt offset-s beq beq =? 10 bne 2 rs rt offset-s bne bne!=? 11 bgt 3 rs rt offset-s bgt bgt >?( 有符号比较 ) 12 DISP 4 rs rt immediate-u DISP DISP[imm] = $rs 13 lui 5 0 rt immediate-u lui $rt = imm << 8 14 ori 6 rs rt immediate-u ori $rt = $rs imm 15 andi 7 rs rt immediate-u andi $rt = $rs & imm 16 addi 8 rs rt immediate-s addi $rt = $rs + imm 17 lw 9 rs rt immediate-s lw $rt = MEM[$rs + imm] 18 sw 10 rs rt immediate-s sw MEM[$rs+imm] = $rt 19 jump 11 jump address jump jump 20 halt 12 0 halt halt ( 时钟暂停 ) 2

9 2 实验原理与环境 2.1 实验原理 根据计算机组成原理的相关知识, 在 logisim 仿真平台上设计相关器件件加以封 装, 设计数据通路完成单周期 CPU 五段流水 CPU 的设计 2.2 实验环境 本实验在 MAC OS 系统中设计, 利用 logisim 仿真平台完成 Logisim 是一款数字电路模拟的教育软件, 每一位用户都可以通过它来学习如何创建逻辑电路, 方便简单 它是一款基于 Java 的应用程序, 可运行在任何支持 JAVA 环境的平台, 方便学生来学习设计和模仿数字逻辑电路 Logisim 中的主要组成部分之一就在于设计并以图示来显示 CPU 当然 Logisim 中还有其他多种组合分析模型来对你进行帮助, 如转换电路, 表达式, 布尔型和真值表等等 同时还可以重新利用小规模的电路来作为大型电路的一部分 3

10 3 总体方案设计 3.1 构建单周期 CPU 单周期 CPU 由程序计数器 (PC) 算术逻辑运算单元 (ALU) 数据存储器 (DM) 数据寄存器堆 (RF) 取指令部件 (GetCode) 地址转移逻辑部件 (NPC) 总控制器 (Control) 构成, 然后通过数据通路连接各个模块实现了整个单周期 CPU 总体设计 单周期 CPU 主要分为如下八个模块, 各个模块功能如下 : 1) 数据通路 : 进行数据的运算 读取以及存储功能, 通过总控制器产生的各个控制信号, 进而实现对数据的各项操作 2) 程序计数器 (PC): 给出程序指令的地址, 使得程序能够通过地址顺序执行 3) 算术逻辑运算单元 : 数据通路调用此模块, 根据得到的控制信号对输入数据进行处理, 处理功能有 :addu add or subu sub sltu slt 等 4) 数据存储器 : 当 MemWrite 控制信号为 1 时, 此时就将输入数据存储到此存储器中, 当 MemWrite 为 0 时, 则根据输入的地址, 找到地址对应的单元将单元中的数据输出 5) 数据寄存器堆 : 由多个寄存器构成, 用于存储各个数据结果 6) 取指令部件 : 指根据 PC 所提供的地址从指令寄存器中取出要执行的指令, 再根据各控制信号, 得出下一次要执行的指令的地址 7) 地址逻辑转移部件 : 地址逻辑转移器通过各个信号和指令中的操作码, 判断下一条指令的地址, 并能给出程序执行的下一条指令的地址 8) 总控制器 : 总控制器通过从取指令部件获得的指令, 进而产生各个控制信号, 并将控制信号返回个数据通路, 就此实现各项功能 总体结构图如图 3-1 所示 4

11 3.1.2 主要功能部件 图 3-1 总体结构图 1. 程序计数器 PC 程序计数器 PC 通过寄存器来实现, 每个时钟周期触发一次寄存器改变, 即每个周期执行一条指令, 从而实现了单周期 PC 的来源有三个 : 顺序执行下一条指令 (PC+1) 分支转移 (PC+1+offset) 跳转指令 (PC&F000 JMP_Addr), 通过分支控制信号 BranchSelect 来确定 PC 2. 算数逻辑运算单元 ALU ALU 的设计是将不同的功能部件进行封装, 比如加法器 减法器 逻辑左移 逻辑右移等等, 然后组合在一起 通过操作符控制其输出 3. 寄存器堆 RF 寄存器堆是将 4 个寄存器放在一起, 利用数据选择器选定某个寄存器从而达到 寄存器编址的目的 同时寄存器堆要设计使能端和钟控端, 便于统一时钟信号和实 现暂停程序的功能 5

12 4. 取指令部件 取指令部件将从指令寄存器中读取出来的指令进行分析, 分析出操作符 (OP) 目的寄存器 (rs) 和源寄存器 (rt) 以及立即数(IMM) 等 可以利用分线器将 16 位指令进行拆分, 输出 OP 段 rs 段 rt 段 IMM 段 funct 段等 (IMM 段利用分线器将 rs rt IMM shamt funct 字段进行结合 ) 5. 控制器 控制器根据操作符的不同产生不同的控制信号, 每种控制信号可以利用 logisim 的分析电路功能自动生成, 不同的控制信号的生成电路独立封装, 最后在控制器电 路中进行组合封装即可 6. 地址转移逻辑部件 NPC NPC 根据操作符和各个标志位的输出判断下一条将要执行的指令的地址 (NPC) 因而 NPC 可以将操作符 OP 和需要用到的标志位 ( 比如 ZERO 位, 进位位 ) 作为输出, 将 BranchSelect(NPC 的来源进行选择信号 ) 以及 JumpBranch( 地址是否进行跳转信号 ) 作为输出, 从而能唯一的确定出下一条指令的地址 7. 数据存储器和指令存储器 数据存储器可以利用 RAM 实现, 指令存储器可以利用 ROM 来实现 控制信号 1. OP_trans 信号将指令中的 OP 值和 funct 值转换成 ALU 的六位运算操作符 2. RegWriteBack 信号是否要写回到寄存器, 若 RegWriteBack = 1, 则需要写回寄存器 3. RegWriteSelect 信号选择要写回的寄存器的数据, 若 RegWriteSelect = 1, 则将内存中得数据写入寄存器 ; 否则, 写入端口的数据为 ALU 的运算结果 6

13 4. RegWrite_Num_Select 信号选择要写回的寄存器编号 若 RegWrite_Num_Select=1 则将数据写回寄存器 rt; 否则, 写入寄存器 rd 5. ALU_Out_Select 信号选择 ALU 的输出结果 一般情况下 ALU 默认输出计算结果 (ALU_Out_Select 为 0), 但是当遇到 slt 指令, 写回寄存器的数据是 1 或 0, 即比较标志位扩展后的输出 所以这个信号在 slt 指令的时候为 1 6. Alusrc_A 信号 ALU 的 A 输入端的数据选择信号 若 Alusrc_A= 1, 则将立即数 IMM 的数值输入到 ALU 的 A 端口中 ; 否则, 将寄存器 rs 的数值输入到 ALU 的 A 端口中 7. Alusrc_B 信号 ALU 的 B 输入端的数据选择信号 B 端的输入来源有三个 若 Alusrc_B= 00, 则将寄存器 rt 的数值输入到 ALU 的 B 端口中 ; 若 Alusrc_B= 01, 则将立即数 IMM 的数值输入到 ALU 的 B 端口中 ; 若 Alusrc_B= 10, 则将数值常量 8 的输入到 ALU 的 B 端口中 8. MemWrite 信号写入内存的信号 若 MemWrite = 1, 则写入内存 ; 否则, 数据内存为只读, 不能写入修改 9. Beq 信号 beq 信号, 当有执行 Beq 指令的时候,Beq = 1; 否则 Beq = Bne 信号 Bne 信号, 当有执行 Bne 指令的时候,Bne = 1; 否则 Bne = Bgt 信号 Bgt 信号, 当有执行 Bgt 指令的时候,Bgt = 1; 否则 Bgt = DISP 信号 DISP 信号, 当有执行 DISP 指令的时候,DISP = 1; 否则 DISP = Sign_EXT 信号 Sign_EXT 信号, 当进行 8 位数据有符号扩展的时候,Sign_EXT = 1; 否则 Sign_EXT = 0 7

14 14. Halt 信号 Halt 信号, 当有执行 Halt 指令的时候,Halt = 1; 否则 Halt = BranchSelect 信号分支选择信号 PC 寄存器的来源有三个, 顺序执行则 PC = PC( 当前 )+1; 执行 jump 指令, 则 PC = pc&0xf000 address: 若满足条件转移指令, 则 PC = pc+1 pc+1+offset 所以当 BranchSelect = 00, 选通 PC+1; 当 BranchSelect = 01, 选通 pc&0xf000 address; 当 BranchSelect = 10, 选通 pc+1 pc+1+offset 16. JumpBranch 信号地址是否进行跳转信号 若执行 jump 指令或者条件转移指令时候需要进行指令跳转, 则 JumpBranch = 1, 将跳转后的地址写入 PC 寄存器中使得跳转后的程序能够继续顺序执行下去 ; 当 JumpBranch = 0 时, 表示顺序执行 其他功能部件 1. 立即数扩展部件 立即数扩展部件主要分为有符号扩展和无符号扩展, 用于将 8 位立即数扩展为 16 位数据 扩展方式根据指令集中指令中立即数是否有符号来判断, 有符号扩展主要针对 beq bne bgt addi lw sw 指令, 其余指令中的立即数均采用无符号扩展 符号扩展部件由 Sign_EXT 控制 特别地,slt 指令写回 16 位数据 (1 或者 0), 但 ALU 输出的是 1 位标志位数据, 所以需要特别设计 1 位无符号扩展部件用于 slt 指令 2. Jump 转移地址获取部件 此外,jump 指令对应的转移地址需要将高四位置为当前 PC 的高四位, 所以将 译码器译码得到的立即数进行无符号扩展后需要与当前 PC 的高四位进行或操作, 从而得到 jump 指令的跳转地址 JumpAddr 3. 有符号比较部件 当执行 bgt 和 slt 指令的时候, 需要进行有符号比较 所以在 ALU 中单独设计 8

15 有符号比较部件, 将其输出的比较结果作为 ALU 的输出标志位 当标志位为 1 时, 则表明 A < B, 否则 A >= B 控制器封装 将封装后的所有控制信号的子电路放在控制器电路中进行二次封装 控制器的 输入为与操作符有关的字段 OP 和 funct, 输出为各个控制信号 指令构造 本次课程设计主要有 R 型 I 型 J 型三种指令, 如表 3-1 所示 表 3-1 各类型指令的划分 1. 构造 R 型指令 R 型指令的操作数来自寄存器, 结果存入寄存器 但是存入寄存器中的数值有 两个来源, 即运算器的输出和数据存储器的输出 故需要通过数据选择器将数据写 回到寄存器堆中 如图 3-2 所示 图 3-2 构造 R 型指令 9

16 2. 构造 J 型指令 J 型指令分为无条件转移指令和暂停指令 无条件跳转指令中给出的是 12 位直接地址, 转移的目标地址由 PC 高 4 位与这 12 位直接地址组合而得到 16 为跳转地址, 故需要将当前 PC 值和指令中的直接地址组合形成转移地址反馈给 PC, 如图 3-3 所示 图 3-3 构造 J 型指令另一种 J 型指令为 halt 指令,halt 指令的目的是暂停程序 程序暂停意味着此后所有寄存器和内存中的数据不再进行改变, 所以只需要将所有寄存器使能端关闭 将存储器 RAM ROM 的芯片关闭即可 3. 构造 I 型指令 I 型指令中 7 位是立即数, 故需要先将立即数进行符号扩展成为 16 为数据, 此后再进行运算, 再送入到运算器中进行运算, 因此这时运算器的数据来源又增加了一种 ( 立即数 ), 所以要将寄存器的输出和符号拓展器的输出做数据选择, 选择输入到运算器中, 如图 3-4 所示 图 3-4 构造 I 型指令 10

17 I 型指令中包括一种特殊的指令 条件转移指令, 这类指令需要先经过运算器运算后才能判断是否进行跳转, 根据立即数和当前 PC 值相加得到跳转地址, 反馈给 PC 作为下一条指令的地址 因此 PC 的来源也有多个, 就需要构建一个 NPC 反馈给 PC 正确的下一条指令地址 数据通路构建 整个单周期 CPU 构建分 5 部分, 通过 PC 从指令寄存器中读取指令 将指令送入译码器中进行译码 译码得到的操作符字段送入控制器生成控制信号 控制信号控制各个通路的通断和作为数据选择器的选择信号 同时, 将译码得到的操作数送入 ALU 进行运算, 得到的运算结果进行写回 显示或者判断等 特别的, 执行转移指令时,PC 不再顺序执行, 而是根据转移到跳转指令执行, 这需要译码后判断更改 PC 的数值 由于单周期 CPU 若采用一般路线设计, 存在迭代式设计模式, 复杂度高, 开发周期长, 正确率低的缺陷, 所以这里采用工程化的方法 根据指令系统构建数据通路表, 数据通路表格描述了各部件之间的连接关系, 记录了各部件输入端数据来源, 忽略控制类信号, 仅保留数据类信号 本次设计构建的指令系统数据通路表, 如表 3-2 所示, 之后根据该表格进行部件的连接和控点安装, 构建好数据通路后进行调试即可 11

18 表 3-2 数据通路表 3.2 可支持理想流水线的多周期 CPU 设计 总体设计 理想流水线可分为五个阶段, 取指令阶段 (IF) 译码阶段(ID) 执行阶段(EX) 访存阶段 (MEM) 和写回阶段 (WB), 后续部件对数据的加工处理依赖于前阶段传过来的信息 因而在不同部件之间设置缓存接口部件, 各个阶段可以向前反馈信息以及通过接口部件向后传递数据和控制信号 其中 ID 段译码生成该指令的所有控制信号, 后续部件的控制信号不再单独生成 理想流水线的总体设计如图 3-5 IF ID EX MEM WB 图 3-5 理想流水线总体设计图 12

19 3.2.2 接口部件设计 在理想流水线中, 每个阶段存储一条指令以及该条指令产生的信号, 所以接口 部件中采用寄存器来寄存指令的相关数据和相关信, 接口部件的示意图如图 流水冲突检测器 图 3-6 接口部件示意图 在流水线中, 会涉及到三种冲突, 即结构冲突 数据冲突和分支冲突 本次设计中将指令存储器和数据存储器分离开, 避免了结构冲突, 但是数据冲突和分支冲突依然存在 流水冲突检测器的目的就是检测出这两种冲突, 从而方便后续的冲突处理 数据冲突是指前一条指令需要写回寄存器而后面的指令要用寄存器中的数值, 在前面的指令还没有执行到写回阶段的时, 这时候后面指令读取的寄存器数值是错误的导致运行失败 所以需要将后条指令的寄存器编号与后面各个阶段的目的寄存器编号进行比较, 如果相同且后者含有写回信号, 则检测到数据冲突 分支冲突是指前一条指令存在跳转行为, 则其后续读入的指令不应该被执行, 但却留存在流水线中待执行, 此时应该将其后续的误读入指令从流水线中清除 分支冲突的检测可以通过控制器生成的是否发生跳转来判断, 如果执行阶段的指令产生了跳转信号, 则说明发生了分支冲突 13

20 3.2.4 插入气泡的流水冲突处理 1. 数据冲突处理 插入气泡的流水冲突处理是检测 ID 与后面各个阶段是否存在数据冲突, 当检测到数据冲突的时候, 不管是在 ID 与后续阶段中的哪一个检测到了冲突信号, 都将 IF IF/ID 接口部件以及 ID/EX 接口部件先锁定一个周期, 等待 ID/EX 中的指令被锁存在 EX/MEM 接口部件中后, 再在 ID/EX 接口部件中插入气泡, 此后再进行冲突检测, 如果流水线中仍旧存在数据冲突, 则继续如前面步骤一样插入气泡, 直到冲突信号消失则停止插入气泡 图 3-7 插入气泡的数据冲突处理总体设计图 2. 分支冲突处理 当检测到分支冲突的时候, 延迟一个周期等待 EX 阶段的指令运行到 MEM 阶 段后, 将 IF/ID 和 ID/MEM 接口部件中的信号全部清零, 从而达到了将错误读入的 后两条指令从流水线中清除的目的 图 3-8 插入气泡的分支冲突处理总体设计图 14

21 3.2.5 数据重定向的流水冲突处理 数据重定向用于处理数据冲突, 当发生冲突的时候, 不需要等待数值被写入寄存器, 而是直接将将要写入寄存器堆的正确数值重定向到 EX 阶段即可 数据重定向只需要检测 EX 和 MEM WB 的冲突即可, 只当发生冲突的时候进行重定向 所以需要先通过冲突检测确定发生冲突的寄存器编号, 然后据此将正确地数据重定向到对应的输入寄存器数据端 图 3-9 数据重定向的流水冲突处理总体设计图除此之外还有一种冲突是 LoadUse 冲突, 即前一条指令是从内存中读取数据写回寄存器堆 ( 即 lw), 而后一条指令需要需要用到相应寄存器中的数据, 这时候将 MEM 的数据重定向回 EX 阶段显然是错误的, 因为重定向回来的数据是内存的地址而不是我们所需要的内存中的数值, 所以这时候需要通过插入气泡的方式来解决冲突 值得注意的是, 这时候冲突检测应该在 ID 和 EX 阶段, 当在这两个阶段检测到冲突的时候, 将 IF IF/ID ID/EX 先锁定, 延迟一个时钟周期后 ( 等待 lw 指令锁存到 EX/MEM 接口部件中 ) 在 ID/EX 中插入一个气泡 数据重定向不能解决分支冲突, 所以在数据重定向的流水冲突处理中分支冲突仍旧采用插入气泡的方法来实现 动态分支预测的流水冲突处理 动态分支预测的原理是通过过去该条指令发生跳转的状态来预测当下该条指令是否发生跳转, 从而减少了插入气泡的数量, 优化了流水线的性能 动态分支预测需要构造预测表 (BTB 表 ), 若当前指令能匹配到 BTB 表中的有效表项, 则 NPC 直接为表中的预测地址 在 EX 阶段判断预测是否成功, 如果成功则有效状态递增,PC 继续在跳转后的执行路径上执行 ; 否则递减, 且需要修正 PC 15

22 的数值使得其回到不跳转的执行路径上来 若检测到流水线中出现了跳转信号, 则新增一条表项, 新的表项替换已经失效的数据, 如果所有数据仍旧都有效, 则通过 LRU 算法进行替换 动态分支预测的流水冲突处理示意图如图 3-11 所示 1. BTB 表构建 BTB 表中保存 4 条记录, 每条记录包含的表项有 : PC( 指令 ) TransAddr( 预 测地址 ) LRU(LRU 替换算法的计数器 ) 和 Valid( 有效状态值 ), 见表 3-3 表 3-3 BTB 表 编号 PC TransAddr LRU Valid 各表项的具体意义如下 : PC: 转移指令对应的 PC 值 addr: 对应转移指令转移的地址 LRU: LRU 算法的计数数值, 用于当所有记录都有效的时候, 新纪录替换原有 记录 Valid: 保存此条记录的有效程度 长度为 2 位, 初始值为 2, 每预测成功一次 该值加 1, 最大为 3; 每预测失败一次该值减 1, 最小为 0 当值为 0 时, 说明此条 记录失效, 可以被替换 分枝状态预测转换图如图 3-10 图 3-10 分支预测状态转换图 16

23 2. LRU 算法的实现 LRU 算法, 即最近最少使用算法, 算法根据数据的历史访问记录来进行淘汰数据, 其核心思想是 如果数据最近被访问过, 那么将来被访问的几率也更高, 即插入新纪录时替换命中频度最低的记录来插入新的纪录 每预测成功一次, 将该条记录对应的 LRU 值置为 0, 其他的加 1 当有新记录要插入时, 就替换 LRU 值最大的一条记录 图 3-11 动态分支预测总体设计图 17

24 4 详细设计与实现 4.1 构建单周期 CPU 主要功能部件实现 1. 程序计数器 PC 功能 : 程序执行的指令地址输入 : 时钟信号 清零信号 输出 : 寄存器的输出端 具体实现 : 计数器的时钟端连线时钟信号和 halt 信号的与结果, 使得当程序暂停时, 计数器的数值不再变化 ( 时钟端直接连接时钟信号同样可以, 只是程序暂停后计数器仍会不断计数, 但不影响整个 CPU 的其他部分, 此处采用第一种连线方法 ), 计数器的加载端分别连接 JumpBranch 信号和 JumpBranch 信号的非, 计数器的数据端连接 PC 的输出端 ( 此处连线上设置控点 JumpBranch 信号, 不跳转时候此处不通 ), 计数器的输出端连接数据选通器 ; 寄存器的输入端连接数据选通器, 输出连接指令内存 ROM; 数据选通器选通三路 ( 计数器 jump 地址生成部件, 转移指令生成部件 ), 选择信号由 BranchSelect 信号给出 ; 转移指令部件由加法器实现, 输入分别是 PC 寄存器和译码得到的偏移地址 ;jump 地址生成部件将译码得到的跳转地址与当前 PC 的高四位进行与操作得到最终的跳转地址, 如图 4-1 所示 PC 的具体电路见图 4-2 图 4-1 jump 地址生成部件电路图 18

25 图 4-2 PC 电路图 2. 译码器 功能 : 将 16 位指令分离出各个字段的数据 输入 :16 位指令数据 输出 :OP 字段 rs 编号 rt 编号 IMM( 立即数 ) funct 字段 直接跳转地址 (JMPAddr) 具体实现 : 将指令用分线器进行分离, 根据指令格式将分离出来的各段进行重组即可 比如 JMPAddr 的生成即可通过指令的低 12 位组合高四位 0 得到 其余生成同理 译码器的电路图如图 4-3 图 4-3 译码器电路图 3. 寄存器堆 功能 : 寄存数据 输入 :Rs 编号 Rt 编号, 写入寄存器编号 写入数据 时钟 清零信号 使 19

26 能端 输出 :Rs 对应寄存器数值 Rt 对应寄存器数值 寄存器堆所有寄存器的数值 具体实现 : 寄存器堆中的寄存器通过四个寄存器来实现, 各个寄存器连接同一个时钟端和清零端以及写入数据 当需要写入数据时, 对应寄存器的使能端为 1, 否则为 0 可以通过解码器实现写入寄存器的选择 将写回寄存器的编号作为解码器的选择信号, 对应的输出位为 1, 其余输出为为 0, 这就实现了寄存器的选择 同时, 必须有写入信号时才能写入寄存器, 写入信号送入使能端, 所以将使能端与解码器的各个输出相与的结果作为每个寄存器的使能端 Rs Rt 对应寄存器的输出通过数据选择器来输出 将 4 个寄存器的输出都送入两个数据选择器中, 将输入的 Rs Rt 编号作为选择信号选择相对应的寄存器输出 寄存器堆的电路图如图 4-4 图 4-4 寄存器堆电路图 4. 立即数扩展部件 功能 : 将 8 位立即数扩展为 16 位数据, 实现有符号扩展和无符号扩展 输入 :8 位立即数 符号扩展信号 输出 : 扩展后的 16 位立即数 具体实现 : 立即数扩展分为有符号扩展和无符号扩展, 有符号扩展则将 8 位立即数的最高位 ( 即符号位 ) 分离出来作为 16 为寄存器的高八位数据, 无符号扩展则 20

27 直接将高八位置为 0 即可 将有符号和无符号的扩展结果作为数据选择器的两路数 据输入, 将是否进行有符号扩展信号作为选择信号, 则输出的数据即为扩展后的立 即数 图 4-5 立即数扩展部件电路图 5. 运算器 ALU 运算器的设计以上机实验设计的 ALU 为基础, 在此之上增加了比较标志位的设置 表格 1 为运算器的操作符对应功能表 表格 1 操作符对应功能表 S 5S 4S3S 2S1S 0 运算功能 5S 4S3S 2S1S 0 S 运算功能 加法 乘法 减法 除法 与 逻辑左移 或 逻辑右移 非 算数右移 异或 为了方便处理条件转移指令, 在 ALU 原有标志位的基础上, 增加了比较标志位 Sign_Cmp 比较标志位由有符号比较部件输出得到 有符号比较的结果由输入和输 出结果的符号位决定 : 当两个操作数异号时, 则可立即得到比较结果,Sign_Cmp 等 于操作数 A 的符号位 ; 当两个操作数同号时,Sign_Cmp 等于相减结果的符号位 这 里用数据选择器实现了这一功能, 当同号的时候, 异或元件输出 0, 选通结果的符 号位 ; 当异号的时候, 异或元件输出 1, 选通异或的结果 有符号比较部件的电路 如图 3-1 所示 ALU 的总电路图如图

28 图 4-6 有符号比较电路图 图 4-7 ALU 电路图 6. 控制器 控制器需要生成 节中的所有信号, 按照设计要求, 只需要分析指令中的操作符, 通过构建真值表分析电路即可生成各个信号 单周期 CPU 中将信号生成分为两个部件, 一个是总控制器, 一个是跳转信号生成器 跳转信号生成器生成 BranchSelect 和 JumpBranch 信号, 以供下一条指令地址的选择, 方便后续封装 NPC 剩下的信号均由总控制器实现 跳转信号生成器的输入是指令操作符中的跳转操作类型信号 (beq bgt bne jump) 以及 ALU 的比较位和 Zero 位, 输出是 BranchSelect 和 JumpBranch 信号 电 22

29 路由构建的真值表分析电路实现 总控制器的输入是指令中的 funct 字段和 OP 字段, 输出是各个控制信号 总控 制器将封装后各个控制信号的生成电路进行二次封装 7. DISP 部件 功能 : 将数据显示在对应的显示器上 输入 :DISP 信号, 立即数 rs 寄存器的数值, 暂停信号 时钟端 清零端 输出 : 对应显示屏显示数据 具体实现 : 用两个寄存器寄存对应显示屏的数值, 寄存器连接同一个数据端 时钟端和清零端 只有需要显示数据的显示屏对应的寄存器使能端打开, 其余都关闭 故当有 DISP 信号的时候, 通过 IMM 的最低位确定哪个显示屏需要显示数据, 当为 0 的时候打开左边的寄存器, 当为 1 时打开右边的寄存器, 当有暂停信号的时候两个寄存器都关闭不再更新, 所以只需要将 DISP IMM 进行逻辑与即可得到右边寄存器的使能端输入, 将 IMM 最低位取反与 DISP 信号逻辑与操作则可以得到左边寄存器的使能端输入 构造 R 型指令 图 4-8 DISP 电路图 通过 IR 获取当前指令, 通过译码器分析出指令中对应的各个字段, 将相应字段送入控制器中生成相对应的控制信号 由于 R 型指令的操作数为 rs 和 rt, 需要将运算结果写回寄存器堆即可 故只需要将译码器得到的 rs 和 rt 的编号输入到寄存器堆中, 将寄存器堆输出的对应寄存器的数值送入 ALU 中进行运算, 将运算后的结果写回到寄存器堆中对应的目的寄存器即可 23

30 特别的,R 型指令 slt 是根据比较结果写回目标寄存器, 写回的数据是 16 位数据, 而比较结果输出的标志位是 1 位, 所以需要将 1 位数据扩展成 16 位数据输出 因此, 需要在 ALU 后面添加一个数据选择器来选通是比较结果输出还是 ALU 运算结果输出, 选择信号由 ALU_Out_Select 给出 构造 I 型指令 I 型指令分为条件跳转指令 DISP 指令, 访存指令以及写回指令 条件跳转指令只需要将向 rs rt 输入到对应的寄存器堆中, 将 ALU 运算后的标志位送入 JumpSignal 部件中得到跳转信号, 根据跳转信号控制得到 NPC DISP 指令只需要根据产生的 DISP 信号控制显示屏即可 访存指令和写回指令需要将 rs 的数值与立即数做运算, 所以需要将一个选择器连接到 ALU 的另一个输入端, 选择器的数据来源分别是立即数和 rt 寄存器的数值 访存指令和写回指令都是写回到寄存器堆, 但是前者是将数据存储器中的数据写回, 后者是将 ALU 运算结果写回, 所以需要在寄存器堆的写回数据端口加入一个选择器来选通这两种数据, 控制信号由 RegWrite_Num_Select 给出 特别的, 写回指令中 lui 是将立即数与常数做逻辑运算写回到 rs 寄存器中, 所以 ALU 输入端口 1 的数据来源有两个分别为 rs 和 IMM, 输入端口 2 的数据来源有三个分别为 rt IMM 和常量, 两个端口分别需要通过数据选择器选通, 控制信号由 Alusrc_A 和 Alusrc_B 给出 由于采用的数据存储器是异步加载和存储, 所以需要通过三态门来实现是数据写入还是数据的读出, 即通过 RegWriteBack 信号来控制在存储器输出端口的三态门即可 构造 J 型指令 J 型指令分为两种, 直接跳转指令和暂停指令 直接跳转指令只需要将直接跳转的地址反馈给 PC 即可, 而暂停指令只需要控 制所有存储数据的器件的使能端即可 24

31 4.1.5 单周期 CPU 主电路 根据 节的数据通路表, 构建所有指令通路, 完成单周期 CPU 的主电路图 如图 4-9 图 4-9 单周期 CPU 主电路图 25

32 4.2 可支持理想流水线多周期 CPU 主要功能部件实现 1. 接口部件 实验共设计四个接口部件, 分别为 IF/ID ID/EX EX/MEM 和 MEM/WB, 各个接口部件中通过寄存器实现信号和数据的暂存和传递 如错误! 未找到引用源 所示,IF/ID 接口部件暂存了 PC 和 IR 的数值, 并继续向后传递 其余部件中也通过寄存器锁存了需要向后传递的数据和信号, 其中 ID/EX 接口部件中寄存了控制器产生的大部分控制信号, 在向后传递的过程中依次传递给后续的各个阶段, 因而每个接口部件中的信号数量呈递减趋势, 最后一个接口部件 MEM/WB 寄存了 PC IR 等数据以及 MemWrite RegWriteSelect 等信号, 如图 4-11 其余接口部件于此类似, 在此不再赘述 图 4-10 IF/ID 接口部件电路图 图 4-11 MEM/WB 接口部件电路图 26

33 2. NPC 部件 功能 : 给出下一条指令的地址 (NPC) 输入 : 当前指令地址 (PC), 立即数 (IMM) 直接跳转地址 (JMPAddr), 各个跳转信号即 ALU 的标志位 输出 :NPC 具体实现 : 流水线设计中, 我将 NPC 做了修改和封装, 只通过两个位宽为 1 的控制信号进行地址逻辑转移, 而不再采用单周期 CPU 时候 PC 的二选三方法 删除了 BranchSelect 信号, 改为 JumpSelect 信号 JumpSelect 信号控制是否发生分支跳转,JumpBranch 信号控制是选择条件跳转地址还是直接跳转地址 改进后的 NPC 信号生成部分将跳转信号和 ALU 的零标志位 ZERO 有符号比较标志位 C 作为输入, 通过分析电路根据真值表自动生成输出, 即 JumpSelect 信号和 JumpBranch 信号 然后通过产生的两个跳转信号选择 NPC 的数值, 输出即程序的下一条指令的地址 NPC 的电路图如下图 4-12 所示 图 4-12 NPC 电路图 3. DISP 部件 为了主电路更加简洁明了, 在理想流水线的设计中将 DISP 部件进行了封装 将 rs IMM DISP 信号作为输入, 输出两个 LED 的输出数据, 电路设计同单周期 27

34 CPU 设计, 如图 4-13 所示 图 4-13 DISP 部件电路图 4. 其余部件 理想流水线中的控制器 寄存器堆 RF 运算器 ALU PC IM 符号扩展 部件 SE DM 都复用单周期 CPU 中的部件 理想流水线实现 主电路在单周期 CPU 的电路图上进行修改, 首先将单周期 CPU 的电路图划分成五个部分 将指令寄存器放在 IF 阶段, 译码器和寄存器堆划分到 ID 阶段,ALU 和 NPC 放在 EX 阶段, 数据寄存器放在 MEM 阶段, 将控制写回操作数据的的二路选择器放在 WB 阶段 R 型指令要写回寄存器, 故将写回操作的数据返回给寄存器堆, 同时需要通过写回信号判断是否要写回, 通过写回寄存器编号确定写回的寄存器, 于是在 WB 阶段需要向 ID 阶段的 RF 返回当前指令的写回数据 写回信号以及写回寄存器编号 J 型指令与 B 型指令类似, 为统一起见, 将二者的信号均传递给 EX 阶段后再反馈给 IF 阶段 即将跳转信号或条件转移信号传递到 EX 阶段, 再由 EX 阶段的 NPC 部件得到程序下一条指令地址返回给 IF 阶段的 PC DISP 指令的实现同样也通过将的 DISP 信号 立即数和 rs 传递到 EX 阶段后通过 DISP 部件实现 I 型指令 Halt 指令的设计同单周期 CPU 理想流水线的总电路图如图

35 图 4-14 理想流水线主电路图 4.3 流水线冲突检测器 IR 操作数判断 流水冲突检测器需要先根据指令中的操作符分析出当前指令中是否用到了 rs rt 寄存器, 故构建真值表如表 4-1 表 4-1 操作符对应的 rs rt 值 op(15~12 位 ) rs rt op(15~12 位 ) rs rt 根据真值表生成相对应的电路如图 4-15, 则可根据此电路判断当前指令是否使 用了 rs 或者 rt 寄存器, 如果是, 则对应输出 1, 否则为 0 29

36 4.3.2 数据冲突检测器 图 4-15 指令操作数确认电路图 在确认了指令的操作数之后, 就需要判断是否发生数据冲突, 哪一个操作数发生了数据冲突 实现方法为将当前指令的 rs rt 编号与检测阶段的目的寄存器 rd 的编号进行比较如果相等且检测阶段的指令有写回信号, 则判断发生了对应寄存器的数据冲突, 分别为 Rs_Hazard 和 Rt_Hazard, 将两个信号进行逻辑或操作输出是否发生数据冲突信号 数据冲突检测电路如图 分支冲突检测器 图 4-16 数据冲突检测电路图 分支冲突检测可以通过当前指令是否发生跳转来确定, 当发生了跳转, 则确定 发生了分支冲突 为此, 我在 NPC 部件中新增了 Jump 输出, 其值为 Jump_Select 的数值 若 Jump 信号输出为 1, 则表明发生了分支冲突 30

37 4.4 插入气泡的流水冲突处理 气泡信号生成部件 插入气泡主要解决数据冲突和分支冲突, 由于寄存器堆中的寄存器是下降沿有效, 则只需要检测 ID 阶段和 EX MEM 阶段之间的数据冲突, 当检测到冲突后将冲突信号先暂存到寄存器中实现信号的延迟 由于我设计在两个接口部件 (IF/ID,ID/EX 接口部件 ) 每次冲突插入一个气泡, 故输出两个气泡信号 BubbleID 和 BubbleIF 当发生数据冲突时候在 ID/EX 中插入一个气泡, 前面的阶段均锁定, 当发生分支冲突的时候在 ID/EX 和 IF/ID 接口部件中各插入一个气泡 所以无论发生数据冲突还是分支冲突 ID/EX 中都要插入气泡, 故 BubbleID 信号由分支冲突信号和数据冲突信号进行或操作得到,BubbleIF 只由分支冲突信号决定 考虑到会发生毛刺现象, 将数据冲突的气泡信号寄存在一个下降沿有效的寄存器中, 分支冲突信号也寄存在一个下降沿有效的寄存器中, 但是由于 ID/EX 在 IF/ID 后面, 所以 BubbleID 的分支冲突信号给出要比 BubbleIF 的晚半个周期以确保错误指令被清除 故 BubbleID 的分支冲突信号来自一个上升沿有效的寄存器, 该寄存器连接 BubbleIF 的气泡寄存器, 气泡信号生成部件如图 插入气泡的流水线冲突处理主电路 图 4-17 气泡信号生成部件电路图 插入气泡即将接口部件中的数据全部清零, 所以只需要将插入气泡的信号连接 31

38 接口部件中的清零端即可 若检测到数据冲突, 则锁定 ID/EX 接口部件以及之前的所有接口部件和 PC, 延迟一个周期后, 在 ID/EX 接口部件中加入气泡, 此后再进行冲突检测, 若仍有冲突, 则继续插入气泡, 直到流水线中不存在冲突则不插入气泡 若检测到分支冲突, 则延迟一个周期后, 直接在 ID/EX 接口部件和 IF/ID 接口部件中插入一个气泡, 达到清除错误指令的目的 插入气泡的流水冲突处理主电路图如图 数据重定向的流水冲突处理 数据重定向部件 在数据重定向中只检测 EX 阶段与后面两个阶段是否发生了数据冲突, 如果是, 则将发生冲突阶段的数据重定向回 EX 阶段 在 MEM 阶段需要将暂存在 EX/MEM 接口部件中的 ALU 运算结果重定向回 EX, 该数据记作 ME_data; 在 WB 阶段需要将写回数据重定向回 EX, 该数据记作 WB_data 因为需要进行两个阶段的检测, 所以采用两个冲突检测部件, 每个部件输出当前阶段的检测结果, 并作为数据选择信号选择需要重定向的数据 若两个阶段在同一个寄存器同时发生冲突, 则优先选择 MEM 阶段的数据 数据重定向部件输出 rs 重定向回的数据和 rt 重定向回的数据, 如图 4-18 所示 LoadUse 冲突处理 图 4-18 数据重定向部件 当发生 LoadUse 冲突时, 重定向回来的 MEM 的数据是错误的地址而非对应的 数据, 所以当遇到这种情况的时候, 需要通过插入气泡来解决 32

39 图 4-19 插入气泡的流水冲突处理主电路图 33

40 首先需要判断前一条指令是否为 lw 指令, 如果是则与冲突检测部件输出的冲突信号进行与操作, 当二者同时为 1 的时候, 说明发生了 Loaduse 冲突 此时需要输出一个锁定信号 特别的, 这里使用寄存器作为延时部件, 达到延缓一个周期后输出 Bubble 信号来插入气泡的目的 冲突处理 图 4-20 LoadUse 冲突处理电路图 除了 LoadUse 冲突中需要在 ID/EX 中插入气泡, 遇到分支冲突也需要在 ID/EX 和 ID/ID 中同时插入气泡, 则将 LoadUse 冲突部件和分支冲突部件封装到一起形成 Bubble 部件, 输出是否要在 IF/ID 中插入气泡的信号 BubbleIF 和是否要在 ID/EX 中插入气泡的信号 BubbleID 这里同样用寄存器实现信号的延迟 数据重定向的流水冲突处理主电路 图 4-21 数据重定向处理冲突插入气泡电路图 将上述部件进行二次封装得到重定向的部件, 如图 4-22 封装后的部件可以直 接放入流水线主电路中, 将该部件所需要的信号输入即可, 同时将部件的输出信号 反馈给流水线即可 34

41 图 4-22 数据重定向的流水冲突处理将重定向的部件放入流水线中可以得到数据重定向的流水冲突处理的主电路图如图 动态分支预测的流水冲突处理 构建 BTB 表 总的 BTB 表栏分为 PC,TransAddr Valid 和 LRU 1. PC 功能 : 存储 BTB 表中的 PC 值 输入 :EX 阶段的指令地址 PC_EX IF 阶段的指令地址 PC_IF LRU 算法给出的替换位置 LRU 是否增加新纪录信号 New 时钟端和清零端 输出 : 匹配到的 PC 的转移地址 是否匹配到的信号 Match_IF 和匹配的到表项标号 MatchItem_IF 具体实现 :PC 表栏中存储发生转移的指令的 PC, 每个 PC 中存储在寄存器中 当要新增一条记录的时候, 根据 LRU 给出的位置通过解复用器选定要插入 PC 的寄存器使得其使能端打开, 其他的寄存器仍旧锁定, 当一个时钟信号到来更新该寄存器的数值 当要匹配 PC 中的表项的时候, 解复用器输出为全 0, 则所有寄存器都被锁定 将所有寄存器的数值与 IF 阶段的 PC 值进行比较, 如果匹配到则输出匹配到得 PC 得数值, 同时通过优先编码器输出匹配到得寄存器的编号, 当没有匹配到的时候, 35

42 图 4-23 数据重定向的流水冲突主电路图 36

43 有限编码器会输出 1, 这时取反作为匹配信号的输出 PC 的电路图如图 4-24 图 4-24 PC 电路图 2. TransAddr 功能 : 存储 BTB 表中对应的转移地址 输入 :EX 阶段的转移地址 TransAddr_EX,LRU 算法给出的替换位置 LRU 匹配到的表项编号 MatchItem_IF 是否增加新纪录信号 New 时钟端和清零端 输出 : 预测的转移地址具体实现 : 同 PC 电路的实现, 只不过这里不需要进行地址匹配 图 4-25 TransAddr 电路图 37

44 3. LRU 功能 : 保存表项中记录的 LRU 数值 输入 :EX 阶段的转移地址 TransAddr_EX 是否进行替换信号 replace 失效的表项的编号 UnvalidItem 匹配到的表项编号 MatchItem_EX 是否增加新纪录信号 New 是否预测命中信号 hit 时钟端和清零端 输出 :LRU 算法给出的替换位置 LRU 各个表项的 LRU 数值 具体实现 :LRU 输出当前失效的表项的编号, 当当前表项全部有效的时候就输出当前 LRU 数值最大的表项, 因而 LRU 输出需要通过二路选择器给出, 选择信号由是否进行替换信号 replace 给出 LRU 的比较通过比较输出, 先两两比较, 然后将比较结果中较大的再进行比较, 因为一共四条记录, 则恰好可以根据输出比较器的输出利用分离器来确定最大的 LRU 表项的编号 因为 LRU 需要进行增减操作, 所以用计数器来进行存储 当要插入一条新纪录的时候, 通过当前 LRU 给出的位置利用解复用器选定对应的寄存器, 这时候将 0 加载进去 当预测成功时候, 通过 MatchItem 给出的表项编号作为解复用器的选择数据端, 选定预测成功的表项, 这时候相应计数器将 0 加载进去, 其余计数器递增 1 其余时候计数器均在时钟信号来临的时候将计数器中的数值加 1, 因而解复用器增加了使能端, 这时候使能端关闭, 解复用器全部输出 0, 这时候计数器执行累加操作 LRU 的电路图如图 4-26 图 4-26 LRU 电路图 38

45 4. Valid 功能 : 保存表项中记录的 Valid 数值 输入 :LRU 算法给出的替换位置 LRU 是否进行替换信号 replace 失效的表项的编号 UnvalidItem 匹配到的表项编号 MatchItem_EX 是否匹配到信号 Match_EX 是否有新纪录信号 New 是否预测命中信号 hit 时钟端和清零端 输出 : 当前各个表项的 Valid 数值, 当前各个表项是否有效 valid 当有新纪录的时候是否需要替换信号 replace 当前失效的表项编号 UnvalidItem 具体实现 : 如果有预测且命中则对应表项的 valid 数值加 1, 预测失败则减 1, 新增一条表项则加载初始值 2, 此外 valid 的数值保持不变 利用解复用器根据真值表生成各个计数器加载端和计数端的控制信号 通过优先编码器得到当前表项中失效表项的编号, 如果没有失效表项, 则优先编码器的另一个端口输出值 1, 表明需要替换 所以可以将优先编码器该端口输出的数值作为 replace 信号 Valid 电路图如图 PC_out 部件 图 4-27 Valid 电路图 1. 预测情况部件 Signal 功能 : 生成预测情况相关的各个信号 输入 :EX 阶段的指令是否发生跳转信号 jump 该条指令是否匹配预测信号 match 输出 : 预测成功信号 hit 预测失败信号 fail 没有预测却跳转( 表明这是一条 39

46 将要插入 BTB 表的新纪录 ) 信号 New 没有预测也没有跳转的信号 normal 具体实现 : 我们需要根据预测结果来动态输出 NPC 的数值 所以根据在 EX 阶段是否跳转和是否匹配到 BTB 表中的表项来判断当前的预测情况, 构建真值表如下图 4-28, 然后分析电路生成预测情况部件 图 4-28 预测相关信号生成真值表 2. 动态分支预测 NPC 当预测且跳转后, 说明预测成功, 这时 NPC 为当前 IF 阶段的 PC 加 1; 当预测却没有跳转, 说明预测失败, 这是需要修正 PC 的数值, 则给出 NPC 为当前 EX 阶段的 PC 加 1; 当没有预测, 则根据 NPC 部件给出的地址执行 通过选择器来选择输出的 NPC 的数值, 如图 4-29 同时该部件通过 Signal 部件同时输出预测相关的信号, 方便其他部件的使用 40

47 4.6.3 预测信号部件 图 4-29 PC_out 电路图 功能 : 输出是否进行预测, 使得下一条指令为预测跳转地址的信号 输入 :BTB 表各个表项的有效值, 匹配到的表项编号 MatchItem_IF 是否匹配到表项 Match_IF 预测失败信号 fail 输出 : 对当前指令是否进行预测的信号 Predict 具体实现 : 并不是每次只要匹配到了表项就进行预测, 是否预测还取决与匹配到的表项的 valid 数值是否可以预测, 且前面是否存在指令预测失败的情况 如果 EX 阶段检测到预测失败信号 fail, 则此时不进行预测转移, 而使用修正地址 所以将 fail 信号取非与匹配过后的预测信号进行逻辑与操作才能得到最终是否进行预测跳转的信号 Predict 预测信号部件电路图如图 4-30 图 4-30 预测信号生成部件 41

48 4.6.4 动态分支预测部件 将上述部件在预测部件中进行二次封装, 得到动态分支预测部件如图图 跳转信号部件 图 4-31 动态分支预测部件 功能 : 输出分支预测中是否仍旧需要进行解决分支冲突信号 输入 : 当前 EX 阶段的跳转信号 In_Jump, 预测成功信号 hit, 预测失败信号 fail 输出 : 是否仍旧需要解决分支冲突信号 Aft_Jump 具体实现 : 当预测失败后, 需要插入气泡进行修正, 但预测成功后, 不需要插入气泡 所以此时重定向部件中的 jump 输入应该输出预测后的是否仍需要跳转信号 当 EX 阶段产生跳转信号 In_jump, 但是预测成功后, 这时候不需要向重定向部件中输入 Jump 信号让其插入气泡 此外都需要进行跳转来解决分支冲突 所以将 In_Jump 与 hit 信号进行异或操作后, 再与 fail 信号进行或操作得到最终用于插入气泡的跳转信号 跳转信号部件如图 4-32 所示 图 4-32 跳转信号电路图主电路实现 动态分支预测的流水冲突处理主电路 将动态分支部件放入主电路图中, 同时将最终跳转信号部件添加到主电路图中, 即完成了动态分支预测的流水冲突处理 动态分支预测的主电路图如 图

49 图 4-33 动态分支预测的流水冲突处理主电路图 43

50 5 实验过程与调试 5.1 测试用例 理想流水线测试 lui $r0, 0 lui $r1, 0 lui $r2, 0 lui $r3, 0 ori $r0, 1 ori $r1, 2 ori $r2, 3 ori $r3, 4 disp $r0, 0 disp $r1, 0 disp $r2, 0 disp $r3, 0 sw $r0, 0($r0) sw $r1, 0($r1) sw $r2, 0($r2) sw $r3, 0($r3) halt 数据相关测试 lui $r1, 0 ori $r1, 1 lui $r0, 0 44

51 ori $r0, 1 lui $r2, 0 ori $r2, 0 sw $r1, 0($r1) add $r3, $r1, $r0 add $r1, $r3, $r0 add $r0, $r3, $r1 add $r3, $r1, $r0 add $r1, $r3, $r0 add $r0, $r3, $r1 add $r3, $r1, $r0 add $r1, $r3, $r0 add $r0, $r3, $r1 add $r3, $r1, $r0 add $r1, $r3, $r0 add $r0, $r3, $r1 sw $r0, 0($r2) halt JMP 测试 lui $r1, 1 jump Next1 lui $r1, 1 lui $r2, 2 lui $r3, 3 Next1:disp $r1, 0 Jump Next2 lui $r1, 1 45

52 lui $r2, 2 lui $r3, 3 Next2:disp $r2, 0 Jump Next3 lui $r1, 1 lui $r2, 2 lui $r3, 3 Next3:disp $r3, 0 Jump Next4 lui $r1, 1 lui $r2, 2 lui $r3, 3 Next4:halt B 指令测试 lui $r0, 1 lui $r2, 255 lui $r1, 1 lui $r3, 3 beq $r0, $r2, Next2 beq $r0, $r0, Next2 lui $r1, 1 lui $r2, 2 lui $r3, 3 Next2:disp $r0, 0 //$r0 可能会引起相关, 注意 bne $r1, $r1, Next3 bne $r1, $r2, Next3 lui $r1, 1 lui $r2, 2 46

53 lui $r3, 3 Next3:disp $r0, 1 bgt $r2, $r2, Next4 bgt $r3, $r2, Next4 lui $r1, 1 lui $r2, 2 lui $r3, 3 Next4:disp $r3, 0 halt 移位测试 li $r0, 1 // 简单移位, 循环测试,0 号区域显示的是初始值 1 左移 1 位重复 15 次的值,1 号区域是累加值 li $r1, 1 li $r3, 1 disp $r1, 0 disp $r3, 1 SHIFT: sllv $r1, $r1, $r0 // 逻辑左移一位 disp $r1, 0 add $r3, $r3, $r1 disp $r3, 1 slt $r2, $r1, $r0 //$r3 存放累加值 // 显示累加值 // 判断移位是否溢出 beq $r2, $r0, NEXT jump SHIFT NEXT:li $r0, 1 // 算术移位测试, 8000 算术右移, 依次显示为 F000,FF00,FFF0,FFFF li $r1, 15 47

54 sub $r1, $r1, $r0 add $r1, $r1, $r0 sllv $r3, $r0, $r1 //$r3=0x8000 disp $r3, 0 li $r1, 3 srav $r3, $r3, $r1 //0x8000-->0XF000 disp $r3, 0 li $r1, 4 srav $r3, $r3, $r1 //0xF000-->0XFF00 disp $r3, 0 srav $r3, $r3, $r1 //0xFF00-->0XFFF0 disp $r3, 0 srav $r3, $r3, $r1 //0xFFF0-->0XFFFF disp $r3, 0 halt 走马灯测试 li $r0, 1 // 走马灯测试, 测试 lui,andi,sllv,srlv andi,or,disp 0 号显示区域按走马 灯方式来回 li $r1, 15 sllv $r3, $r0, $r1 srav $r3, $r3, $r1 //$r3=0xffff li $r0, 0 li $r1, 4 lui $r2, 12 srlv $r2, $r2, $r1 srlv $r2, $r2, $r1 //$r2=12 48

55 Loop:addi $r0, $r0, 1 andi $r0, $r0, 15 sllv $r3, $r3, $r1 // 走马灯左移 or $r3, $r3, $r0 disp $r3, 0 sllv $r3, $r3, $r1 or $r3, $r3, $r0 disp $r3, 0 sllv $r3, $r3, $r1 or $r3, $r3, $r0 disp $r3, 0 sllv $r3, $r3, $r1 or $r3, $r3, $r0 disp $r3, 0 addi $r0, $r0, 1 andi $r0, $r0, 15 sllv $r0, $r0, $r2 srlv $r3, $r3, $r1 // 走马灯右移 or $r3, $r3, $r0 disp $r3, 0 srlv $r3, $r3, $r1 or $r3, $r3, $r0 disp $r3, 0 srlv $r3, $r3, $r1 or $r3, $r3, $r0 disp $r3, 0 49

56 srlv $r3, $r3, $r1 or $r3, $r3, $r0 disp $r3, 0 srlv $r0, $r0, $r2 bne $r0, $r2, Loop halt 排序测试 li $r0, 0 //coments li $r1, 15 DISP: disp $r0, 0 disp $r1, 1 lw $r2, 0($r0) lw $r3, 0($r1) bgt $r2, $r3, 2 sw $r2, 0($r1) sw $r3, 0($r0) addi $r1, $r1, -1 bne $r0, $r1, DISP jump JMP nop or $r0, $r0, $r0 JMP: addi $r0, $r0, 1 li $r1, 15 bne $r0, $r1, DISP halt 50

57 mv $r0, $r1 #macro instruction benchmark 测试 andi $r0, $r0, 0 // 简单移位, 循环测试,0 号区域显示的是初始值 1 左移 1 位重 复 15 次的值,1 号区域是累加值 addi $r0, $r0, 1 andi $r1, $r1, 0 addi $r1, $r1, 1 andi $r3, $r3, 0 addi $r3, $r3, 1 disp $r1, 0 disp $r3, 1 SHIFT:sllv $r1, $r1, $r0 // 逻辑左移一位 disp $r1, 0 add $r3, $r3, $r1 disp $r3, 1 slt $r2, $r1, $r0 //$r3 存放累加值 // 显示累加值 // 判断移位是否溢出 beq $r2, $r0, NEXT jump SHIFT NEXT:andi $r0, $r0, 0// 算术移位测试, 8000 算术右移, 依次显示为 F000,FF00,FFF0,FFFF addi $r0, $r0, 1 andi $r1, $r1, 0 addi $r1, $r1, 15 sub $r1, $r1, $r0 add $r1, $r1, $r0 51

58 sllv $r3, $r0, $r1 //$r3=0x8000 disp $r3, 0 andi $r1, $r1, 0 addi $r1, $r1, 3 srav $r3, $r3, $r1 //0x8000-->0XF000 disp $r3, 0 andi $r1, $r1, 0 addi $r1, $r1, 4 srav $r3, $r3, $r1 //0xF000-->0XFF00 disp $r3, 0 srav $r3, $r3, $r1 //0xFF00-->0XFFF0 disp $r3, 0 srav $r3, $r3, $r1 //0xFFF0-->0XFFFF disp $r3, 0 andi $r0, $r0, 0// 走马灯测试, 测试 lui,andi,sllv,srlv andi,or,disp 0 号显示区域按走 马灯方式来回 addi $r0, $r0, 1 andi $r1, $r1, 0 addi $r1, $r1, 15 sllv $r3, $r0, $r1 srav $r3, $r3, $r1 //$r3=0xffff andi $r0, $r0, 0 addi $r0, $r0, 0 andi $r1, $r1, 0 addi $r1, $r1, 4 lui $r2, 12 srlv $r2, $r2, $r1 srlv $r2, $r2, $r1 //$r2=12 Loop:addi $r0, $r0, 1 52

59 andi $r0, $r0, 15 sllv $r3, $r3, $r1 // 走马灯左移 or $r3, $r3, $r0 disp $r3, 0 sllv $r3, $r3, $r1 or $r3, $r3, $r0 disp $r3, 0 sllv $r3, $r3, $r1 or $r3, $r3, $r0 disp $r3, 0 sllv $r3, $r3, $r1 or $r3, $r3, $r0 disp $r3, 0 addi $r0, $r0, 1 andi $r0, $r0, 15 sllv $r0, $r0, $r2 srlv $r3, $r3, $r1 // 走马灯右移 or $r3, $r3, $r0 disp $r3, 0 srlv $r3, $r3, $r1 or $r3, $r3, $r0 disp $r3, 0 srlv $r3, $r3, $r1 or $r3, $r3, $r0 disp $r3, 0 srlv $r3, $r3, $r1 or $r3, $r3, $r0 disp $r3, 0 srlv $r0, $r0, $r2 53

60 bne $r0, $r2, Loop andi $r0, $r0, 0 // 排序测试程序, 将 0-15 号内存区间数据排序 addi $r0, $r0, 0 andi $r1, $r1, 0 addi $r1, $r1, 15 DISP: disp $r0, 0 disp $r1, 1 lw $r2, 0($r0) lw $r3, 0($r1) bgt $r2, $r3, 2 sw $r2, 0($r1) sw $r3, 0($r0) addi $r1, $r1, -1 bne $r0, $r1, DISP jump JMP nop or $r0, $r0, $r0 JMP: addi $r0, $r0, 1 andi $r1, $r1, 0 addi $r1, $r1, 15 bne $r0, $r1, DISP halt mv $r0, $r1 #macro instruction // 各段程序可单独汇编运行, 也可以一次测试运行 54

61 5.2 测试结果 华中科技大学课程设计报告 单周期 CPU 测试结果见表 5-1 表 5-1 单周期 CPU 测试结果 周期数 寄存器堆终值 Reg0 Reg1 Reg2 Reg3 显示屏终值 数据存储器 数据相关测试 全 0 JMP 测试 全 0 B 指令测试 全 0 移位测试 FFFF FFFF 全 0 走马灯测试 CCCC 0000 全 0 排序测试 ( 加载 benchmark) benchmark 测试 ( 加载 benchmark) E 000F E 000F 前 16 个数从大到小排序前 16 个数从大到小排序 支持理想流水线多周期 CPU 测试结果见表 5-2 表 5-2 理想流水线测试结果 周期数 寄存器堆终值 Reg0 Reg1 Reg2 Reg3 显示屏终值 数据存储器 理想流水线测试 全 插入气泡的流水冲突处理 测试结果见表

62 表 5-3 插入气泡方案测试结果 周期 数 气泡 数 寄存器堆终值 Reg0 Reg1 Reg2 Reg3 显示屏终值 数据存储器 数据相关测试 全 0 JMP 测试 全 0 B 指令测试 全 0 移位测试 FFFF FFFF 全 0 走马灯测试 CCCC 0000 全 0 排序测试 ( 加载 benchmark) benchmark 测试 ( 加载 benchmark) E 000F E 000F 前 16 个数从大到小排序前 16 个数从大到小排序 数据重定向的流水冲突处理 测试结果见表 5-4 表 5-4 数据重定向方案测试结果 周期 数 气泡 数 寄存器堆终值 Reg0 Reg1 Reg2 Reg3 显示屏终 值 数据存储器 数据相关测试 全 0 JMP 测试 全 0 B 指令测试 全 0 移位测试 FFFF FFFF 全 0 走马灯测试 CCCC 0000 全 0 排序测试 ( 加载 benchmark) benchmark 测试 ( 加载 benchmark) E 000F E 000F 前 16 个数从大到小排序前 16 个数从大到小排序 56

63 5.2.5 动态分支预测的流水冲突处理 测试结果见表 5-5 表 5-5 动态分支预测方案测试结果 周期 数 气泡 数 寄存器堆终值 Reg0 Reg1 Reg2 Reg3 显示屏终值 数据存储器 数据相关测试 全 0 JMP 测试 全 0 B 指令测试 全 0 移位测试 FFFF FFFF 全 0 走马灯测试 CCCC 0000 全 0 排序测试 ( 加载 benchmark) benchmark 测试 ( 加载 benchmark) E 000F E 000F 前 16 个数从大到小排序前 16 个数从大到小排序 预测效果见表 5-6 表 5-6 预测效果 预测次数 预测成功次数 预测失败次数 成功率 数据相关测试 JMP 测试 B 指令测试 移位测试 % 走马灯测试 % 排序测试 ( 加载 benchmark) % benchmark 测试 ( 加载 benchmark) % 5.3 性能分析 每个方案进行各项测试的时钟周期数见表

64 表 5-7 各方案时钟周期数 单周期插入气泡数据重定向动态分支预测 数据相关测试 JMP 测试 B 指令测试 移位测试 走马灯测试 排序测试 ( 加载 benchmark) benchmark 测试 ( 加载 benchmark) 性能分析 : 1 单周期方案中每条指令执行一个周期, 不需要额外的周期处理冲突, 所以各 项测试的周期数最少 2 插入气泡方案对流水线中不仅每条指令执行一个周期, 此外所有数据冲突和 分支冲突都进行插入气泡处理, 每插入一个气泡就会增加一个周期, 所以在各项测 试的周期数最多 3 数据重定向方案在插入气泡方案的基础上进行优化, 因为减少了因为数据冲 突而插入气泡的数量, 所以周期数少于插入气泡方案, 在性能上优于插入气泡的流 水线冲突处理 4 动态分支预测方案在数据重定向方案的基础上进行优化, 因为减少了因为分 支冲突而插入气泡的数量, 所以周期数少于数据重定向, 在性能上是所有流水线冲 突处理中最优秀的 58

65 5.4 主要故障与调试 故障 1 故障现象 : 启动了时钟后, 加载镜像后, 运算器结果出现红线,ALU 的输入 端 A 没有输入值, 如图 5-1 图 5-1 立即数读取出错原因分析 : 执行 liu 指令后,ALU 的 A 端口应输入立即数 IMM, 但是探测器并没有探测到输入值, 说明译码后得到的立即数 IMM 存在错误 查看指令译码器, 如图 5-2, 发现有不兼容位宽的错误, 即对立即数的位扩展有误 图 5-2 立即数扩展有误 解决方案 : 重新设计一个有符号 8 位置扩展子电路, 如下图所示, 电路实现了 将 8 位带符号扩展成 16 位 将该子电路加入到指令译码电路中, 如图 5-3 所示 图 5-3 立即数扩展 59

66 5.4.2 故障 2 单周期 : 数据被覆盖 故障现象 : 测试数据相关实验程序时候, 执行 sw $r0, 0($r2), 触发上升沿将数 据写入内存时, 当触发下降沿时候, 其数据被覆盖, 如图 5-4 图 5-4 写入内存数据被覆盖原因分析 : 寄存器堆是下降沿有效, 因而可能下降沿时候触发了写操作将寄存器中的数值更改了, 所以相应地在下降沿又将修改过的寄存器数值写入了内存 原因在于寄存器写信号有误 解决方案 : 修改寄存器写信号, 用写回信号与跳转信号共同控制寄存器堆的使能端, 当写信号为 0 时, 寄存器不能被写入, 即数值不能更改 修改后的使能端输入如下图 可以看出当发生跳转指令或者写回寄存器堆信号为 0 时候, 寄存器堆的使能端为 0, 寄存器不能被写入修改, 如图图 故障 3 图 5-5 寄存器堆的使能端 单周期 : ALU 输出错误 故障现象 : 移位操作中发现赋值操作计算出现问题 原因分析 :ALU 的输入是正确地, 输出是错误的, 这时候发现操作符是错误的, addi 操作 OP=8 对应 ALU 的加法操作, 此时在对应的 ALU 操作符应该为 , 发现这时候 ALU 的操作符为 , 对应减法, 所以运算出错 据此分析应该是控制器中 ALU 的 OP 转换器件有误, 可能是真值表填写有误 60

67 解决方案 : 分析电路得到真值表看出确实真值表填写错误, 如下图 重新填写 真值表, 如图 5-6, 生成新的转换电路即可 故障 4 图 5-6 操作符转换真值表 单周期 : 内存写入存在冲突 故障现象 : 两个连续的写入指令时候, 会出现前后两个地址被同时写入第二个数据 原因分析 :logisim 没有时延, 所以当第二条写入指令被读取后, 内存的地址端和写入端理论上应该同时更新, 则内存能被正确写入 但是由于没有时延, 所以 logisim 将更新后的写入端数据同时写入到了两个地址 解决方案 : 利用时钟端控制 将三态门的控制端设置为下降沿时候写入, 即有写入指令时, 不立即写入, 而是等待所有数据都准备完毕后, 在在时钟周期的下半段将数据写入内存, 这时将不会发生冲突写入 控制端如下图

68 5.4.5 故障 5 图 5-7 控制端 单周期 : 转移指令出现错误 故障现象 : 不能根据偏移地址进行正确转移 原因分析 : 通过探测 pc 地址, 发现转移后的地址有问题, 经研究, 发现是对立即数的扩展有误, 需要分为有符号扩展和无符号扩展两种情况, 而我粗心把全部都做成无符号扩展了 解决方案 : 重新制作符号扩展器件 控制信号电路如下图, 符号扩展器件如下图 当控制信号为 1 时, 进行有符号扩展, 否则进行无符号扩展 故障 6 图 5-8 符号扩展信号生成电路 5-9 单周期 : 指令运行错误 故障现象 : 地址转移有误, 且存在单条指令运行两个周期的现象,PC 电路如图 62

69 图 5-9 错误 PC 电路原因分析 : 没有暂存当前 PC 的寄存器, 可能是时序有问题 解决方案 : 在 MUX 后面添加一个 PC 寄存器, 因为计数器的时序是下降沿有效, 而 PC 在之后读取地址, 所以将 PC 时序置为上升沿有效 认真分析发现,IR 的时序应该在当前 PC 后面, 否则会读取到上一条指令 因而将 IR 的触发方式改为高电平有效 故障 7 图 5-10 改正后的 PC 电路 单周期 : 数码管显示错误 故障现象 : 数码管 0 显示有误, 经常显示中间数和另一只数码管的显示结果, 数码管数据寄存器经常误更新, 如图

70 图 5-11 数码管显示错误原因分析 : 数码管 0 的的控制端只受到 IMM 的控制, 更新数码管 1 的时候, DISP 指令为 1, 数码管 0 的使能端由 1 变为 0, 但是因为有非门的作用, 存在临界险象的问题, 此时有一瞬间两个端口同时为 1, 寄存器将错误数据更新进去 解决方案 : 将寄存器改成时钟驱动, 上升沿给出 DISP 信号, 下降沿封存数据 此时使能端由 IMM 的最低位和 DISP 控制信号共同作用得到 故障 8 单周期 : 周期计数错误故障现象 : 当运行测试程序的时候, 周期数计数有误 原因分析 : 单独运行子程序, 发现移位操作的测试程序运行出来的周期数和正确数相差 7, 正好是一个移位循环的周期数 说明程序跳转出口不对 分析发现, 是 r2 的写入错误,slt 命令中当 rs<rt, r2 中写入 1 slt 命令是有符号比较, 通过减法实现 之前的做法是根据输出结果的符号位输出标识位 C(C=1 表示结果为负数 ) 来比较大小 但是发现当有溢出时候标识位就输出错误, 比如 0x0001-0x1000 = 0xdfff,C=0, 但是 0x0001 却小于 0x1000, 不能正确地跳出循环 所以要修改比较控制信号 解决方案 : 根据 ALU 输入输出的符号位设计比较电路, 当输入两个数的符号位不同时, 取被减数的符号位为标志位 C; 当输入两个数的符号位相同时, 一定不会发生溢出, 取结果的符号位为标志位 C 电路图如图

71 5.4.9 故障 9 图 5-12 比较信号生成电路 理想流水线 : 写入寄存器发生错误故障现象 : 运行测试程序发现, 当执行写入操作时, 最后一个数据不能被写入 原因分析 : 调试发现, 是流水线的周期顺序搞错, 误用前面指令产生的控制信号来控制后面指令数据的选择器, 使得被选择的数据发生错误, 导致不能正确写入 如图 5-13 所示, 故障原因在于用 WB 阶段产生的 RegWrite_Num_Select 信号来选择 ID 阶段的写入寄存器编号, 忽略了这两个阶段分别处于不同的指令, 因而导致写入错误 图 5-13 选择信号错误解决方案 : 在 ID 阶段将每条指令的写入寄存器编号存入接口部件中, 按照流水线的方式向后运行, 直至 WB 阶段再将其取出按次序写回到寄存器中, 这样就可以保证每次写回的写回信号和写回编号都出自同一指令 故障 10 流水线 : 发生死循环 故障现象 : 有转移指令的时候发生死循环 原因分析 : 流水线在 EX 阶段判断是否有跳转指令, 若需要跳转, 则通过 NPC 65

72 向 IF 阶段反馈下一条指令的地址 原来的设计是通过 ID/EX 接口部件中的信号输入到 NPC 中得到 NPC 的数值向前反馈给 PC, 在下一个时钟上升沿读入 PC 但是当发生分支冲突时, 同一个周期的下降沿需要在 ID/EX 中插入气泡, 导致 NPC 的输入全为 0, 则输出为 0, 即反馈给 PC 的 NPC 错误 ( 为 0), PC 于是又从头开始执行程序, 导致死循环 分支检测的电路图如图 5-14 图 5-14 分支冲突检测电路图解决方案 : 增加延时装置, 等待一个周期后再插入气泡, 即等待下一条指令读入 ID/EX 接口部件的时候再将其置为零 ( 即插入气泡 ) 具体实现方式就是在 Bubble 信号前加入一个寄存器用来寄存插入气泡的信号, 等下一个周期是输出插入气泡的信号, 从而实现延时的目的 故障 11 动态分支预测 : 预测地址错误故障现象 : 程序进行预测后执行地址错误 原因分析 : 错误的使用了 EX 阶段的匹配表项编号 MatchItem_EX 来选择 BTB 表中的转移地址,MatchItem_EX 是之前的指令的旧数据, 用来当前指令的选择显然是错误的, 所以这导致 IF 阶段指令匹配了错误的预测转移地址解决方案 : 预测地址应该由 IF 阶段的匹配项选择而非当前 EX 阶段接口部件中传递的匹配表项编号, 改正后的电路如图

73 故障 12 图 5-15 预测地址选择 动态分支预测 : 排序错误故障现象 : 排序有误, 如图 5-16 原因分析 : 用是否命中 hit 信号作为是否将跳转信号输入到冲突处理部件中的决定因素, 但是 hit 为 0, 但是预测失败的时候, 也消除了跳转信号的输入, 这样就未能解决这一次分支冲突, 未能消除错误指令, 导致程序指令执行轨迹发生错误 图 5-16 排序错误解决方案 : 在跳转信号 jump 与 hit 异或的结果后与 fail 信号进行或操作, 这样当发生上述情况的时候,Aft_jump 信号仍为 1, 此时输入到冲突处理部件中后会在流水线中插入气泡, 将预测指令清除, 修改后的电路如图 故障 13 图 5-17 预测后是否将跳转信号送入冲入处理器 动态分支预测 : 跳转地址有误 67

74 故障现象 : 当相隔出现两个跳转指令的时候, 程序出现执行路径错误 原因分析 : 没有考虑到预测跳转的优先级, 即若前面有一条跳转指令进行了预测但是预测失败需要修正地址, 此时 IF 阶段也刚好有一条跳转指令匹配到了 BTB 表, 产生预测信号, 并给 PC 预测地址, 这时程序应该选择修正地址不进行当前跳转指令的预测, 但却错误的产生了预测信号并反馈给 PC 相应地预测地址 解决方案 : 在预测信号的产生电路中进行限制, 即当流水线中 EX 阶段存在预测失败的指令时, 当前 IF 阶段的跳转指令不再进行预测, 即此时 PC 应优先接纳前面预测失败指令的修正地址, 只需要将先前的预测信号与取反的 fail 信号进行与操作即可得到正确地预测信号 改正后的预测信号生成电路如图 5-18 图 5-18 是否预测信号生成电路 5.5 实验流程 1. 完成单周期 CPU 的设计和实现 2. 在单周期 CPU 的基础上设计实现理想流水线 3. 实现插入气泡的流水线冲突处理 4. 实现数据重定向的流水线冲突处理 5. 实现分支动态预测的流水线冲突处理 表 5-8 课程设计进度表 时间第一天第二天第三天第三天 进度复习相关知识, 设计 PC ALU 控制器等部件, 构建基本通路 完成单周期 CPU 设计 完成理想流水线的设计 复习流水线相关知识, 构建冲突检测器 68

75 第四天第五天第六天第七天第八天第九天第十天 设计实现插入气泡的流水冲突处理 设计数据重定向的流水冲突处理 对数据重定向的流水冲突处理进行调试 设计 BTB 表和 LRU 电路 设计动态分支预测部件 对分支动态预测电路进行调试 完成分支动态预测的流水线冲突处理 69

76 6 设计总结与心得 6.1 课设总结 在本次课程设计中, 我主要做了如下工作 : 1. 设计并实现了单周期 CPU 的电路 2. 设计并实现了理想流水线的电路 3. 设计并实现了插入气泡的流水线冲突处理电路 4. 设计并实现了数据重定向的流水线冲突处理电路 5. 设计并实现了动态分支预测的流水线冲突处理电路 6.2 课设心得 本次课设规定有两周的时间, 而我由于中途外出参加学院交流活动, 时间更为紧张, 但是越大的压力往往激发出越高的工作效率, 现在回想起来, 完成本次课程设计的时间加起来也仅有 8 天时间, 在这八天里, 我收获良多 因为计算机组成原理已经是上个学期的课程, 经过了一个假期, 对相关知识点难免有些生疏和淡忘, 所以起初的课设实施并不顺利, 因为很多细节的疏漏, 导致每次都会出现各种各样的故障, 因此也需要调试了很久才能发现故障的根源所在 虽然调试的过程很痛苦, 但是在这样一个发现问题 解决问题的过程中, 不仅加深了我对相关知识的具体理解, 同时也无形中培养了我对于问题的发现能力和解决能力 在设计单周期 CPU 的过程中, 我对于计算机 CPU 的组成和原理有了更为深刻和形象的了解, 而不再仅仅限于课本上略显抽象的知识点 如果说那时上课学习 CPU 原理的时候还存在大致懂得原理的阶段, 那么当我最终完成了单周期 CPU 的设计, 可以说对 CPU 已经有了相当透彻的了解, 具体到每一个数据, 每一个信号的生成和转换, 我都有了清晰和深刻的了解 单周期 CPU 的完成占用了大概三分之一的时间, 接下来要挑战的就是 5 段流水 70

77 线的设计, 相较于单周期 CPU, 这部分知识对我来说更为生疏, 理解更是欠透彻和详尽 设计初期, 我查阅了大量的资料, 将书上相关的内容也重新复习了一遍, 在这个阶段中, 我感到了知识的充实 具备了一定的理论基础后, 再进行流水线的设计就稍稍容易一些, 于是我很快完成了理想流水线 在后续的冲突处理中, 才是本次课设中我认为困难最大的地方, 由于电路更加复杂, 信号更为繁多, 使得对故障的排查过程更为艰难, 经常一个错误需要调半天, 但是排错的过程其实是一个深入的过程, 不仅是深入电路的各个部件, 更是深入了解一个程序的指令是如何一步一步具体地在 CPU 中执行的 最终完成了所有课设任务后, 我感觉自己不论从知识上还是能力上都有了质的提升和飞跃 我觉得这次课设的内容设计很合理, 难度适中, 只要认真钻研就一定可以完成任务, 同时也感谢老师的严格要求, 严格的考勤和定期检查制度有效地督促了我按照进度完成课设, 不可以有丝毫的懈怠 很感谢本次课程设计, 让我从中不仅收获了更为详实的知识, 更宝贵的是收获了很多可贵的能力或者品质, 让我学会如何进行宏观设计和微观实现, 明白该怎样透析到问题本质, 也让我积累了日后宝贵的大型设计经验 71

78 参考文献 [1] DAVID A.PATTERSON( 美 ). 计算机组成与设计硬件 / 软件接口 ( 原书第 4 版 ). 北京 : 机械工业出版社. [2] David Money Harris( 美 ). 数字设计和计算机体系结构 ( 第二版 ). 机械工业出版社 [3] 秦磊华, 吴非, 莫正坤. 计算机组成原理. 北京 : 清华大学出版社,2011 年. [4] 袁春风编著. 计算机组成与系统结构. 北京 : 清华大学出版社,2011 年. [5] 张晨曦, 王志英. 计算机系统结构. 高等教育出版社,2008 年. 72

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63>

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63> 第三章 Q3 1 1. 省略了 I/O 操作的复杂逻辑, 易实现, 耗费低 ; 2. 可以利用丰富的内存寻址模式实现灵活的 I/O 操作 Q3 2 假设存储单元 ds1 处寄存器地址为 0x2000, 代码如下 #define ds1 0x2000 while ( *ds1 == 0 ) ; Q3 3 假设设备 (dev1) 中有两个寄存器 ds1 和 dd1,dev1 的地址为 0x1000,ds1

More information

<4D F736F F F696E74202D20B5DAC1F9D5C220D7F7D2B5B2CEBFBCB4F0B0B8>

<4D F736F F F696E74202D20B5DAC1F9D5C220D7F7D2B5B2CEBFBCB4F0B0B8> 第六章利用流水线提高性能 作业参考答案 参考答案 : P.373 中 ALU 操作时间为 200ps a. ALU 操作时间缩短 25% 不能加快流水线指令速度 因为流水线的速度最终由时钟周期的宽度决定, 而它不会缩短时钟周期 b. 如果 ALU 操作时间延长 25%, 那么,ALU 时间将变为 250ps, 这样,ALU 操作将变成瓶颈, 使得流水线的时钟周期为 250ps, 其效率降低 (250-200)/250=20%

More information

TD

TD *TD-000212-05* 20- 应用实例 4 本例显示的是使用两个亚低 音扬声器和多个顶箱的双声 道 立体声 设置 除了各声道都增加了一个顶 箱外 也可以增加更多的顶 箱 本例和例 3 的情况一 致 声道 2 或 右声道 声道 1 或 左声道 要接到更多的顶箱 将最后 一个顶箱的全幅线路输出接 头处的线缆接到下一个顶箱 的全幅线路输入接头 在不 降低信号质量的情况下 最

More information

<4D F736F F D20B5DAC1F9D5C2CFB0CCE2B4F0B0B8A3A8CDF8D5BEA3A92E646F63>

<4D F736F F D20B5DAC1F9D5C2CFB0CCE2B4F0B0B8A3A8CDF8D5BEA3A92E646F63> 第六章中央处理器 2. 简单回答下列问题 ( 参考答案略 ) ( 1) CPU 的基本组成和基本功能各是什么? ( 2) 取指令部件的功能是什么? ( 3) 控制器的功能是什么? ( 4) 为什么对存储器按异步方式进行读写时需要 WMFC 信号? 按同步方式访问存储器时, CPU 如何实现存储器读写? ( 5) 单周期处理器的 CPI 是多少? 时钟周期如何确定? 为什么单周期处理器的性能差? 元件在一个指令周期内能否被重复使用?

More information

lecture21

lecture21 Lecture 21: CPU - Datapath and Control 中央处理器 : 数据通路和控制器 singlepath2 单周期数据通路的设计 主要内容 CPU 的功能及其与计算机性能的关系 数据通路的位置 单周期数据通路的设计 数据通路的功能和实现 - 操作元件 ( 组合逻辑部件 ) - 状态 / 存储元件 ( 时序逻辑部件 ) 数据通路的定时 选择 MIPS 指令集的一个子集作为

More information

第七章 中断

第七章 中断 计算机组成原理 总结 图说 COD llxx@ustc.edu.cn 计算科学 (Computing) 计算机组成 :how computers work 硬盘 电源导线和电缆 软驱 内存 扩展槽 扩展卡 主板 微处理器 (CPU) 各种外设接口, 包括 : 键盘 鼠标 显示器 USB 声卡 网卡 并行口等 CPU 风扇支架 PCI 扩展槽 IDE 内存 CPU 硬条插盘接插槽槽口 华硕 P4S533-MX

More information

Microsoft Word - Ö¸Á.doc

Microsoft Word - Ö¸Á.doc 指令集说明 注 由于资源大小问题 其中以下几款 MCU 只有 62 条指令 其余均为 63 条指令 HT48CA0/HT48RA0A 无 RETI 指令 HT48R05A-1 无 TABRDL 指令 指令寻址方式有下面 5 种 立即寻址 此一寻址法是将立即的常数值紧跟在运算码 (opcode) 后 例如 MOV A, 33H ADD A, 33H 直接寻址 直接寻址的情況只允许在存储器之间作数据传送

More information

CH559指令周期.doc

CH559指令周期.doc CH55X 汇编指令周期表 CH55X 汇编指令概述 : 型号包含 : a. 指令单周期型号 :CH557 CH558 CH559; b. 指令 4 周期型号 :CH551 CH552 CH553 CH554; c. 非跳转指令的指令周期数与指令字节数相同 ; d. 跳转指令含 MOVC/RET/CALL 通常比字节数多若干个周期 ; e.movc 指令多 4 或 5 个周期 ( 下条指令地址为奇数时多

More information

长 安 大 学 硕 士 学 位 论 文 基 于 数 据 仓 库 和 数 据 挖 掘 的 行 为 分 析 研 究 姓 名 : 杨 雅 薇 申 请 学 位 级 别 : 硕 士 专 业 : 计 算 机 软 件 与 理 论 指 导 教 师 : 张 卫 钢 20100530 长安大学硕士学位论文 3 1 3系统架构设计 行为分析数据仓库的应用模型由四部分组成 如图3 3所示

More information

Microsoft PowerPoint - chx09_org14_pipelining_1.ppt

Microsoft PowerPoint - chx09_org14_pipelining_1.ppt 计算机组织与系统结构 流水技术引论 Itroductio to Pipeliig ( 第十四讲 ) 程旭 29.5 rach Jump st 单周期处理器 busw Wr 5 5 Istructio Fetch Uit Rd imm6 Istr Rs 5 Rw Ra Rb -bit isters 6 Istructio op bus Exteder

More information

IC芯片自主创新设计实验

IC芯片自主创新设计实验 IC 芯片自主创新设计实验 设计报告 设计题目 : 格雷码计数器芯片设计 设计学生 : 吴东生 ( 集成电路 ) 景国新 ( 固体电子 ) 林道明 ( 集成电路 ) 连维重 ( 集成电路 ) 施望 ( 集成电路 ) 刘锦秀 ( 集成电路 ) 刘中伟 ( 集成电路 ) 李梦宁 ( 集成电路 ) 指导教师 : 阮爱武 杜涛 指导单位 : 电子设计自动化技术 课程组 一 格雷码计数器芯片设计概述 功能描述

More information

东南大学硕士学位论文 LCD 显示中灰度控制机理的研究及电路实现姓名 : 曹志香申请学位级别 : 硕士专业 : 微电子学与固体电子学指导教师 : 孙大有 20040327 LCD 显示中灰度控制机理的研究及电路实现 作者 : 曹志香 学位授予单位 : 东南大学 相似文献 (1 条 ) 1.

More information

吉林大学学报 工学版 244 第 4 卷 复杂 鉴于本文篇幅所限 具体公式可详见参考文 献 7 每帧的动力学方程建立及其解算方法如图 3 所示 图4 滚转角速度与输入量 η 随时间的变化波形 Fig 4 Waveform of roll rate and input η with time changing 图5 Fig 5 滚转角随时间的变化波形 Waveform of roll angle with

More information

FPGAs in Next Generation Wireless Networks WPChinese

FPGAs in Next Generation Wireless Networks WPChinese FPGA 2010 3 Lattice Semiconductor 5555 Northeast Moore Ct. Hillsboro, Oregon 97124 USA Telephone: (503) 268-8000 www.latticesemi.com 1 FPGAs in Next Generation Wireless Networks GSM GSM-EDGE 384kbps CDMA2000

More information

Microsoft PowerPoint - vlsi_chapter02

Microsoft PowerPoint - vlsi_chapter02 第 2 章 MOSFET 逻辑设计 本章目录 2.1 理想开关 2.2 MOSFET 开关 2.3 基本的 CMOS 逻辑门 2.4 CMOS 复合逻辑门 2.5 传输门电路 2.6 时钟控制和数据流控制 2017-9-7 第 2 章 MOSFET 逻辑设计 1 2.1 理想开关 1 高电平有效的控制开关 2 低电平有效的控制开关 y = x? 2017-9-7 第 2 章 MOSFET 逻辑设计

More information

¸ß¼¶¼ÆËã»úÌåϵ½á¹¹

¸ß¼¶¼ÆËã»úÌåϵ½á¹¹ 第三章 高级流水线与指令级并行 石教英 内容提要及与各节的关系 (1) 流水线技术就是指令重叠执行技术, 达到加快运算速度的目的 由于存在三种流水线竞争 : 结构竞争 数据竞争 控制竞争, 导致流水线性能降低, 不能运作在理想的重叠状态, 需要插入停顿周期, 从而使流水线性能降低 --3.1 流水线技术基础 内容提要及与各节的关系 (2) 指令之间可重叠执行性称为指令级并行性 (Instruction

More information

Microsoft PowerPoint - 第9讲-08.ppt [兼容模式]

Microsoft PowerPoint - 第9讲-08.ppt [兼容模式] 计算机设计与实践 第九讲 移动计算研究中心张展 1 本讲内容 微处理器设计实例 2 实验目的 根据计算机组成原理课程所学的知识和本课程所讲的设计思想, 设计一个给定指令系统的处理器, 包括 VHDL 语言的实现 FPGA 芯片的编程实现 对处理器的结构和计算机系统的整体工作过程有深刻的了解 为以后应用和设计处理器系统打下基础 3 实验要求 给出处理器的设计方案 用 VHDL 语言实现处理器的设计 将设计下载到

More information

第五章 重叠、流水和现代处理器技术

第五章 重叠、流水和现代处理器技术 2006 5 l t 1 t 2 t 3 t 4 I: add r1,r2,r3 J: sub r4,r1,r5 : (Hazard) : (Hazard) Instr 1 Instr 2 ( ) Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 Load Ifetch ALU DMem Instr 1 Ifetch ALU DMem

More information

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页 第 1 页共 32 页 crm Mobile V1.0 for IOS 用户手册 一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页 二 crm Mobile 界面介绍 : 第 3 页共 32 页 三 新建 (New) 功能使用说明 1 选择产品 第 4 页共 32 页 2 填写问题的简要描述和详细描述 第 5 页共

More information

<4D F736F F D CFC4D7E9B3C9D4ADC0EDCAD4CCE22D41A3A8B4F0B0B8A3A92E646F63>

<4D F736F F D CFC4D7E9B3C9D4ADC0EDCAD4CCE22D41A3A8B4F0B0B8A3A92E646F63> 考试科目名称计算机组织与系统结构 (A-1 卷 ) 2007 2008 学年第 2 学期 教师 袁春风 / 窦万春 考试方式 : 闭卷 系 ( 专业 ) 计算机科学与技术 年级 2006 班级 学号 姓名 成绩 题号一二三四五六 分数 得分 一 填空题 ( 本大题共 15 小题, 每空 1 分, 共 20 分 ) 1. 二进制指令代码的符号化表示被称为 汇编 语言源程序 必须通过相应的翻译程序把它转

More information

KV-cache 1 KV-cache Fig.1 WorkflowofKV-cache 2.2 Key-value Key ; Key Mem-cache (FIFO) Value Value Key Mem-cache ( Value 256B 100 MB 20%

KV-cache 1 KV-cache Fig.1 WorkflowofKV-cache 2.2 Key-value Key ; Key Mem-cache (FIFO) Value Value Key Mem-cache ( Value 256B 100 MB 20% 38 11 2013 11 GeomaticsandInformationScienceofWuhanUniversity Vol.38No.11 Nov.2013 :1671-8860(2013)11-1339-05 :A GIS Key-value 1 1 1 1 (1 129 430079) : 设计了一种基于 Key-value 结构的缓存 KV-cache 旨在简化数据结构 高效管理缓存数据

More information

教学输入与学习者的语言输出 温晓虹 本文从三个方面探讨了语言的输入与输出的关系 首先从理论研究的角度讨 论了从语言输入到语言输出的习得过程 实验研究表明 输入的语言素材必须被学习者所接收 即使接收了的内容也并不会自动进入中介语的体系 而是需要进一步对输入语言进行 分解 归类等分析性与综合性的处理 在语言 内化 的基础上 学习者的中介语系统才能 够不断地得到重新组合 趋于目的语 另外 学习者在语言输出前和输出时需要调节

More information

任春平 邹志利 在坡度为 的平面斜坡上进行了单向不规则波的沿岸流不稳定运动实验 观测到了沿 岸流的周期性波动 波动周期约为 利用最大熵方法和三角函数回归法求得这种波动的主 频率以及幅值 分析了波动幅值在垂直岸线方向的变化 结果表明该变化与沿岸流变化类似 即在 沿岸流最大值附近这种波动强度最大 为了分析波动的机理 利用线性沿岸流不稳定模型对模型实验结果进行了分析 求得了不稳定运动增长模式和波动周期 并与对应实测结果进行了比较

More information

L21

L21 Lecture 25: Pipeline Hazard 流水线冒险的处理主要内容 流水线冒险的几种类型 数据冒险的现象和对策 数据冒险的种类 - 相关的数据是 结果 : 可以通过转发解决 - 相关的数据是 DM 读出的内容 : 随后的指令需被阻塞一个时钟 数据冒险和转发 - 转发检测 / 转发控制 数据冒险和阻塞 - 阻塞检测 / 阻塞控制 控制冒险的现象和对策 静态分支预测技术 动态分支预测技术

More information

器之 间 向一致时为正 相反时则为负 ③大量电荷的定向移动形成电 流 单个电荷的定向移动同样形成电流 3 电势与电势差 1 陈述概念 电场中某点处 电荷的电势能 E p 与电荷量 q Ep 的比值叫做该点处的电势 表达式为 V 电场中两点之间的 q 电势之差叫做电势差 表达式为 UAB V A VB 2 理解概念 电势差是电场中任意两点之间的电势之差 与参考点的选择无关 电势是反映电场能的性质的物理量

More information

燃烧器电子控制系统 目录 2

燃烧器电子控制系统 目录 2 聚焦 REC27 燃烧器电子控制系统 燃烧器电子控制系统 目录 2 REC27 燃烧器电子控制系统 2 概述 燃烧器电子控制系统 2 2 2 2 2 A B1 B2 C D E 22 2 2 系统图示 2 2 2 2 2 2 主要特征及优点 燃烧器电子控制系统 2 2 集成控制 2 2 节能 安全运行 运行模式 远程锁定复位 可根据需求提供特殊机型 无接合间隙及机械迟滞 简单的试运行及燃烧器设定 2

More information

8S E600Y 0773-CE

8S E600Y 0773-CE 控制面板及侧 背面端子 液晶电视快速操作引导 液晶电视快速操作引导 控制面 板 按键介 绍 控制面板按键及侧面端子介绍 感光头 红外接收器 指示灯 电源 开 关 按键 频 道- 频 道+ 音 量- 音 量+ 频道选择键 音量控制键 菜单 确定 返 回/主 页 确定键 返回/主页键 菜单键 背面端 子 介绍 USB1 光纤音频 输出 USB2 USB3 SD卡 SD卡槽 CA卡 V 注:当您使用非本机配送的重低音音箱连接本机

More information

PowerPoint Presentation

PowerPoint Presentation 7.2 并行接口 二. 可编程并行接口芯片 8255A 的功能及其应用 与 CPU 一侧相连的引脚 D0 PA0 ~ ~ ~ ~ ~ D7 PA7 RESET PC7 WR RD PC4 PC3 PC0 A0 PB0 A1 PB7 CS PA 口 PC 口上半部 PC 口下半部 PB 口 A 组 B 组 与 I/O 设备相连的引脚 7.2 并行接口二. 可编程并行接口芯片 8255A 的功能及其应用

More information

数字电子技术与微处理器基础

数字电子技术与微处理器基础 数字电子技术与微处理器基础 ( 第 4-5 讲 ) 主讲 : 张国钢副教授 西安交通大学电气工程学院 27 年春 8 时序逻辑电路与器件 8. 时序电路的结构 分类和描述方式 8.2 基于触发器时序电路的分析和设计 8.3 集成计数器 8.4 寄存器 8.5 用 Verilog 描述计数器和寄存器 27-3-24 8. 时序电路的结构 分类和描述方式 时序逻辑电路 : 在任何时刻, 逻辑电路的输出状态

More information

数字逻辑设计2013

数字逻辑设计2013 第三讲逻辑门电路 ogic Gte Circuit 佟冬 tongdong@mprc.pku.edu.cn http://mprc.pku.edu.cn/courses/digitl/2spring 课程回顾 布尔代数 6 个公设 个定理 用于开关函数的化简 开关函数 ( 种表示方法 ) 直值表 布尔表达式 (SOP, POS) 最小范式和最大范式 非确定项 ( 无关项 ) 2 如何做一个能计算的设备?

More information

L15 MIPS Assembly

L15 MIPS Assembly Lecture 20: MIPS Assembly Language II Example: 过 程 调 用 int i; i 是 全 局 静 态 变 量 void set_array(int num) { array 数 组 是 局 部 变 量 int array[10]; for (i = 0; i < 10; i ++) { set_array 是 调 用 过 程 arrar[i] = compare

More information

电子技术基础 ( 第 版 ) 3. 图解单相桥式整流电路 ( 图 4-1-3) 电路名称电路原理图波形图 整流电路的工作原理 1. 单相半波整流电路 u 1 u u sin t a t 1 u 0 A B VD I A VD R B

电子技术基础 ( 第 版 ) 3. 图解单相桥式整流电路 ( 图 4-1-3) 电路名称电路原理图波形图 整流电路的工作原理 1. 单相半波整流电路 u 1 u u sin t a t 1 u 0 A B VD I A VD R B 直流稳压电源 第 4 章 4.1 整流电路及其应用 学习目标 1. 熟悉单相整流电路的组成, 了解整流电路的工作原理. 掌握单相整流电路的输出电压和电流的计算方法, 并能通过示波器观察整流电路输出电压的波形 3. 能从实际电路中识读整流电路, 通过估算, 能合理选用整流元器件 4.1.1 认识整流电路 1. 图解单相半波整流电路 ( 图 4-1-1) 电路名称电路原理图波形图 4-1-1. 图解单相全波整流电路

More information

Template

Template 计算机组成实验指导书 Pipelined RISC with Forwarding & Stalls 计算机组成实验指导书 SOME-COA-LAB v4 1 of 16 1. OVERVIEW 1.1 实验名称简单的类 MIPS 多周期流水化处理器实现 1.2 实验目的理解并实现 CPU 的 Pipeline, 以及 Data Hazard, Branch Hazard 的处理 1.3 实验范围本次实验将覆盖以下范围

More information

2017創形パンフ表1_表4

2017創形パンフ表1_表4 2017 SCHOOL GUIDE BOOK 2017 SOKEI ACADEMY OF FINE ART & DESIGN 关于创形美术学校? 创形美术学校是培育专业艺术家的摇篮 大家知道 : 用普通的教育课程来培育专业的艺术家是件困难的事 在我们创形, 从老师到办公人员, 大家全体都是专业的艺术家 在美术界, 设计界当中取得卓越成绩的艺术家们将为大家面对面地传授心得 我们重视的并不是通过指定的教学说明书来指导大家,

More information

水晶分析师

水晶分析师 大数据时代的挑战 产品定位 体系架构 功能特点 大数据处理平台 行业大数据应用 IT 基础设施 数据源 Hadoop Yarn 终端 统一管理和监控中心(Deploy,Configure,monitor,Manage) Master Servers TRS CRYSTAL MPP Flat Files Applications&DBs ETL&DI Products 技术指标 1 TRS

More information

untitled

untitled : 36 236 : (025)52121888 : (025)52121555/800 8289722 : 211100 h t t p://www.phoenixcontact.com.cn e-mail: phoenix@phoenixcontact.com.cn MNR 52005577/07.04.2010-01 Printed in China PHOENIX CONTACT 2010

More information

25.( 0 在 進 行 水 溫 與 溶 解 量 的 實 驗 時, 每 一 匙 糖 都 要 刮 平 的 主 要 目 的 為 何? 1 避 免 一 次 溶 解 太 多 糖 2 可 以 增 加 溶 解 糖 的 次 數 3 控 制 加 入 的 每 一 匙 糖 都 一 樣 多 4 可 以 減 少 溶 解 量

25.( 0 在 進 行 水 溫 與 溶 解 量 的 實 驗 時, 每 一 匙 糖 都 要 刮 平 的 主 要 目 的 為 何? 1 避 免 一 次 溶 解 太 多 糖 2 可 以 增 加 溶 解 糖 的 次 數 3 控 制 加 入 的 每 一 匙 糖 都 一 樣 多 4 可 以 減 少 溶 解 量 五 上 自 然 與 生 活 科 技 科 第 四 單 元 水 溶 液 一 選 擇 題 01.( 0 下 列 哪 一 種 方 法 可 以 辨 識 出 水 溶 液 的 酸 鹼 性? 1 用 眼 睛 仔 細 觀 察 2 用 電 池 電 線 和 小 燈 泡 來 測 試 3 用 食 鹽 水 來 辨 識 4 用 紫 羅 蘭 花 的 汁 液 來 測 試 02.( 0 下 列 哪 一 種 水 溶 液 不 是 中 性

More information

Ps22Pdf

Ps22Pdf ( ) ( 150 ) 25 15 20 40 ( 25, 1, 25 ), 1. A. B. C. D. 2. A. B. C. D. 3., J = 1 H = 1 ( A B, J', J, H ) A. A = B = 1, J' =0 B. A = B = J' =1 C. A = J' =1, B =0 D. B = J' = 1, A = 0 4. AB + AB A. AB B. AB

More information

论文,,, ( &, ), 1 ( -, : - ), ; (, ), ; ;, ( &, ),,,,,, (, ),,,, (, ) (, ),,, :. : ( ), ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ), ( ),,,, 1 原译作 修补者, 但在英译版本中, 被译作

论文,,, ( &, ), 1 ( -, : - ), ; (, ), ; ;, ( &, ),,,,,, (, ),,,, (, ) (, ),,, :. : ( ), ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ), ( ),,,, 1 原译作 修补者, 但在英译版本中, 被译作 * 夏传玲 : 本文简要回顾了国内外定性研究在最近 多年的发展概况, 总结 了定性研究的六个发展趋势和分析策略上的三种流派 在上述两种背景下, 本文探讨了计算机辅助的定性分析给定性研究带来的机遇和挑战, 特别是它和手工操作对比时的优势和劣势, 以及应用这种定性分析技术所可能面临的困难 : 定性研究定性分析 文化差异,, (, ),,,, ( - ) ( - ) ( - ) ( - ) ( - ) (

More information

????????

???????? 深度学习 项目简介 葛丽丽 译 西蒙菲沙大学 教育学院 富有想像力的教育研究中心 电邮 ierg-ed@sfu.ca 网址: http://www.ierg.net 基本思想 开学的第一个星期 每个学生都会接到一个任意布置的主题 从此将围绕这个主题 进行深度学习 这些主题可能包括 鸟 苹果 马戏团 火车 和 太阳系 等内容 在接下来的小学 初中以及高中阶段 除了基本课程以外 学 生将继续深入地学习指定的题目

More information

计算机组成与系统结构

计算机组成与系统结构 第5章 中央处理器 CPU 计算机的工作过程就是计算机执行程序的过程 程序是一个指令序列 这个序列明确告诉计算机应该 执行什么操作 在什么地方能够找到用来操作的数据 一旦把程序装入主存储器 计算机就可以自动执行取出指令和执行指令的任务 专门用来完成此项工 作的计算机部件称为中央处理器 Central Processing Unit CPU 做成单片集成电路的 CPU 通常又称 为微处理器 Microprocessor

More information

先生別耍我

先生別耍我 先 生 別 耍 我. 夏 雪 3 目 錄 : 第 一 章 005 第 二 章 019 第 三 章 044 第 四 章 058 第 五 章 077 第 六 章 101 第 七 章 121 第 八 章 136 4 目 錄 第 九 章 151 第 十 章 172 尾 聲 196 關 於 夏 雪 197 先 生 別 耍 我. 夏 雪 5 第 一 章 姜 曦 在 照 片 裡 翻 閱 照 片 的 是 一 個

More information

第 期 曹 源 等 形式化方法在列车运行控制系统中的应用

第 期 曹 源 等 形式化方法在列车运行控制系统中的应用 第 卷 第 期 年 月 交通运输工程学报 曹 源 唐 涛 徐田华 穆建成 为了确保列车运行控制系统设计和开发的正确性 比较了仿真 测试和形式化 种能够验证 系统设计正确性的方式 根据列车运行控制系统对安全的苛求性 提出了 个与系统安全相关的重要特性 即实时性 混成性 分布 并发 性 反应性 并分析了与这些特性相关的具体形式化方法 通 过对每种形式化方法的数学基础和应用范围的分析和归类 给出了各种方法的优势和不足

More information

<4D F736F F F696E74202D20D7BFD4BDB9A4B3CCCAA6D6AE454441BCBCCAF5BCB0D3A6D3C3B5DA34BDB22E BBCE6C8DDC4A3CABD5D>

<4D F736F F F696E74202D20D7BFD4BDB9A4B3CCCAA6D6AE454441BCBCCAF5BCB0D3A6D3C3B5DA34BDB22E BBCE6C8DDC4A3CABD5D> 第 4 讲 EDA 技术的应用 物理与电子信息学院 卓越工程师 EDA 技术及应用 Tu Qiu 1 EDA 技术的应用 本章概要 : 本章通过用硬件描述语言 Verilog 实现的设计实例, 进一步介绍 EDA 技术在组合逻辑 时序逻辑电路设计以及在测量仪器 通信系统和自动控制等技术领域的综合应用 本章列出的全部 HDL 源程序均通过 Quartus II 工具软件的编译 知识要点 : (1)Verilog

More information

X713_CS_Book.book

X713_CS_Book.book / / /USB ) ; ; C D ; ; B B 1 >> 2 3 B 1 ( > > ) 了解显示屏上显示的图标 Wap 信箱收到一条 Wap push 信息 GSM GPS ( ) 手机已连接到 GSM 网络 指示条越多, 接收质量越好 GPS 2 ...........................4.............................. 4 Micro SD (

More information

上海盛瑞电子有限公司

上海盛瑞电子有限公司 2015/5/22 1 / 9 一运动指令 MoveJ MoveJ[\Conc,]ToPoint,Speed[\V] [\T],Zone[\Z][\Inpos],Tool[\WObj]; 1 [\Conc,]: 协作运动开关 (switch) 2 ToPoint: 目标点, 默认为 * (robotarget) 3 Speed: 运行速度数据 (speeddata) 4 [\V]: 特殊运行速度 mm/s

More information

HD ( ) 18 HD ( ) 18 PC 19 PC 19 PC 20 Leica MC170 HD Leica MC190 HD 22 Leica MC170 HD Leica MC190 HD Leica MC170 HD

HD ( ) 18 HD ( ) 18 PC 19 PC 19 PC 20 Leica MC170 HD Leica MC190 HD 22 Leica MC170 HD Leica MC190 HD Leica MC170 HD Leica MC170 HD Leica MC190 HD 5 6 7 8 11 12 13 14 16 HD ( ) 18 HD ( ) 18 PC 19 PC 19 PC 20 Leica MC170 HD Leica MC190 HD 22 Leica MC170 HD Leica MC190 HD 22 23 24 26 Leica MC170 HD Leica MC190 HD ( ) 28

More information

<4D F736F F F696E74202D DB5DABEC5BDB22DCEA2B4A6C0EDC6F7B5C4D3B2BCFEBDE1B9B9A3A8D2BBA3A92E >

<4D F736F F F696E74202D DB5DABEC5BDB22DCEA2B4A6C0EDC6F7B5C4D3B2BCFEBDE1B9B9A3A8D2BBA3A92E > 第九讲 授课教师 : 陆俊林王箫音 2012 年春季学期 主要内容 一 微处理器的总体结构 二 高速缓存 三 流水线 四 超标量流水线 教材相关章节 : 微型计算机基本原理与应用 ( 第二版 ) 第 7 章微处理器的内部结构及外部功能特性 1 主要内容 一 微处理器的总体结构 二 高速缓存 三 流水线 四 超标量流水线 2 微处理器相关的若干关键设计 总线 : 提高微处理器 存储器和外设之间的传输效率

More information

东南大学学报 自然科学版 第 卷

东南大学学报 自然科学版 第 卷 第 卷第 期 年 月 东南大学学报 自然科学版 徐 进 邵毅明 彭其渊 蒋朝哲 以路线 驾驶者 车辆仿真系统为行车试验手段 根据行驶过程中方向盘角输入和转速的时域变化 分析了多条路线的操纵负荷特性 试验路线的设计车速 为 含长大圆 曲线 卵型 凸型 回头曲线等组合 结果表明 在 的山岭区高速公路上操纵车辆是非常容易的 当曲线半径大到一定程度时 曲线行驶和直线行驶已经不存在差别 但仍需要方向 干预 当行驶速度偏离设计车速不多时

More information

目录 一设计概述 设计背景 作品介绍 适用范围 器件选择... 5 二功能描述 指令集 处理器功能 :... 8 三性能参数... 9 四设计结构... 9 五设计方法 取

目录 一设计概述 设计背景 作品介绍 适用范围 器件选择... 5 二功能描述 指令集 处理器功能 :... 8 三性能参数... 9 四设计结构... 9 五设计方法 取 2009 Altera 亚洲创新设计大赛 基于 FPGA 的 MIPS32 流水线处理器的设计与实现 Design and Implementation of the MIPS32 Pipeline Processor Based on FPGA 参赛院校 : 南京大学 参赛学生 : 许 佳 薛双百 许信辉 指导教师 : 张泽生 目录 一设计概述... 4 1.1 设计背景... 4 1.2 作品介绍...

More information

通信与电子系统综合实验

通信与电子系统综合实验 中国科学技术大学电子工程与信息科学系 通信与电子系统综合实验 课程报告 曹梦霏 2010-1-8 电子设计自动化实验室 摘要 本报告主要总结了一个月以来在电子设计自动化实验室里的所学 依据课程指导, 学习分为两大部分 : 第一部分是硬件实验台和软件编程环境的熟悉实验, 其中包括 FPGA 部分和 DSP 部分, 分别根据实验手册进行实践, 报告中将简要提到学习到的知识 ; 第二部分是自选实验, 本报告选择的是

More information

数据库系统概论

数据库系统概论 2. 减法指令 8086/8088 共有 5 条减法指令 1 不带 CF 的减法指令 (SUB) 格式 :SUB DST, SRC 功能 :(1)DST (DST)-(SRC) (2) 根据差设置 6 个状态标志 2 带 CF 的减法指令 (SBB) 格式 :SBB DST, SRC 功能 : (1)DST (DST)-(SRC)-CF (2) 根据差设置 6 个状态标志 3 减 1 指令 (DEC)

More information

378高雄市都市計畫說明書

378高雄市都市計畫說明書 378 高 雄 市 都 市 計 畫 說 明 書 案 名 : 變 更 高 雄 市 楠 梓 區 高 楠 段 二 七 九 地 號 等 八 筆 農 業 區 土 地 為 批 發 市 場 用 地 擬 定 申 請 單 位 : 高 雄 市 政 府 計 畫 範 圍 : 如 圖 示 法 令 依 據 : 都 市 計 畫 法 第 二 十 七 條 第 一 項 第 四 款 一 背 景 說 明 : ( 一 ) 本 市 現 有 果

More information

<4D F736F F D20D1A6CBABB0D9D0A1D7E95F3332CEBBC1F7CBAECFDF435055C9E8BCC65F2E646F63>

<4D F736F F D20D1A6CBABB0D9D0A1D7E95F3332CEBBC1F7CBAECFDF435055C9E8BCC65F2E646F63> MIPS32 处理器设计文档 组号 :30 组员及分工 : 薛双百 061221126: 组长, 整体框架设计, 两个流水段寄存器, 冒险检测单元, 乘法器 ( 基 2 booth 编码 +wallace 树 (4 2 压缩 &3 2 压缩 )+ 超前进位加法 ), 处理器顶层通路的搭建, 文档汇总 ; 并和张家军同学共同完成了调试工作 严磊 061221127: 两个流水段寄存器, 转发单元,ALU

More information

常用4000系列标准数字电路的中文名称资料

常用4000系列标准数字电路的中文名称资料 常用 4000 系列标准数字电路的中文名称资料 CD4000 双 3 输入端或非门 + 单非门 TI CD4001 四 2 输入端或非门 HIT/NSC/TI/GOL CD4002 双 4 输入端或非门 NSC CD4006 18 位串入 / 串出移位寄存器 NSC CD4007 双互补对加反相器 NSC CD4008 4 位超前进位全加器 NSC CD4009 六反相缓冲 / 变换器 NSC CD4010

More information

HT46R47 f SYS =4MHz 3.3~5.5V f SYS =8MHz 4.5~5.5V 13 位双向输入 / 输出口 1 个与输入 / 输出共用引脚的外部中断输入 8 位带溢出中断的可编程定时 / 计数器 具有 7 级预分频器 石英晶体或 RC 振荡器 位的程序存储器 P

HT46R47 f SYS =4MHz 3.3~5.5V f SYS =8MHz 4.5~5.5V 13 位双向输入 / 输出口 1 个与输入 / 输出共用引脚的外部中断输入 8 位带溢出中断的可编程定时 / 计数器 具有 7 级预分频器 石英晶体或 RC 振荡器 位的程序存储器 P HT46R/47R/48R/49R 系列 选型指南 HT46R22 f SYS =4MHz 3.3~5.5V f SYS =8MHz 4.5~5.5V 19 位双向输入 / 输出口 1 个与输入 / 输出口线共用的外部输入 16 位具有 7 级预分频带溢出中断的可编程定时 / 计数器 内置石英晶体或 RC 振荡器 2048 14 位的程序存储器 PROM 64 8 位的数据存储器 RAM 支持发声的

More information

余玉苗 田 娟 朱业明 当前审计环境中 审计合谋现象普遍存在 双重审计制度可以看作是阻止审计合谋的一种制度设计 在分析审计合谋成因的基础上 建立了一个包括引入第二个审计师的概率因子 融合外部监督惩罚与激励机制的博弈模型 对阻止审计合谋的条件进行了均衡分析 研究结果 显示 当外部监督惩罚力度强化后与适当的激励机制存在时 双重审计制度有利于降低对审计师的监督成本 从而为其实施提供了理论依据 从多期博弈角度看

More information

MSP430ϵÁе¥Æ¬»úµÄÖ¸Áîϵͳ.pps [¼æÈÝģʽ]

MSP430ϵÁе¥Æ¬»úµÄÖ¸Áîϵͳ.pps [¼æÈÝģʽ] 作者 : 利尔达 MSP430 系列单片机的指令系统 1 CPU 内核组成 : 16 位的 (ALU) 算术运算单元 16 个寄存器 (PC SP SR R4~R15) 指令控制单元 2 存储器组织结构 3 外围模块寄存器地址 它们被分配在相应的字模块或字节模块当中 分配在 00-FFH 中为字节, 分配在 100-1FFH 中为字 4 寻址模式 : 5 指令格式 : 1) 书写格式标号指令助记符源操作数,

More information

Microsoft PowerPoint - 05-第五讲-寻址方式.pptx

Microsoft PowerPoint - 05-第五讲-寻址方式.pptx 第五讲 授课教师 : 陆俊林王箫音 2012 年春季学期 主要内容 一 寻址方式概述 二 数据的寻址方式 三 转移地址的寻址方式 教材相关章节 : 微型计算机基本原理与应用 ( 第二版 ) 第 4 章寻址方式与指令系统 1 主要内容 一 寻址方式概述 二 数据的寻址方式 三 转移地址的寻址方式 2 指令的组成 指令由操作码和操作数两部分组成 操作码操作数 MOV AX, 8726H ADD AX,

More information

第5章:汇编语言程序设计

第5章:汇编语言程序设计 第 5 章 : 汇编语言程序设计 程 汇编语言指令格式 系统伪指令 存储器选择方式 常用子程序 1 汇编语言程序设计 PIC 指令系统 语言系统 指 CPU 编 器语言 器语言 器语言 设计 用 语言 设计 语言 汇编语言 2 汇编语言指令格式 汇编语言指令格式 ( 指令 ) label opcode operand comment 指令 用 存 指令 指令语 3 汇编语言指令格式 1 指令 用 指令

More information

三 消除阶段的监测 2

三 消除阶段的监测 2 中疾控传防发 2015 139 号附件 全国消除疟疾监测方案 (2015 版 ) 一 原则与目的 二 监测相关定义 1 三 消除阶段的监测 2 3 4 5 6 7 8 四 消除后阶段的监测 9 10 11 五 数据的收集 分析和反馈 六 监测能力维持 12 13 七 质量控制 14 八 组织管理 15 九 附件和附表 16 附件 1 一 调查时间 二 调查方法 三 注意事项 17 附件 2 一 监测时间

More information

<4D F736F F D20BCAFB3C9B5E7C2B7D3EBD6C7C4DCCFB5CDB3B4B4D0C2BBF9B5D8B2E2CAD4CCE22E646F63>

<4D F736F F D20BCAFB3C9B5E7C2B7D3EBD6C7C4DCCFB5CDB3B4B4D0C2BBF9B5D8B2E2CAD4CCE22E646F63> 集成电路与智能系统创新基地测试题 (2009 暑期 ) 班级姓名电话 email: 模拟电子技术部分 一 电路如图所示 设 A ~A 4 为理想运放, 三极管 T 的 V CES =0,I CEO =0.A ~A 4 各组成什么电路? 2. 设 t = 0 时, 电容器上的初始电压 v C (0) = 0 求 t = s 和 t = 2 s 和 E 各点对地的电压 时,A B C D.A 组成减法运算电路,A

More information

PIC8位单片机汇编语言常用指令的识读(上)

PIC8位单片机汇编语言常用指令的识读(上) PIC8 位单片机汇编语言常用指令的识读 ( 上 ) 各大类单片机的指令系统是没有通用性的, 它是由单片机生产厂家规定的, 所以用户必须遵循厂家规定的标准, 才能达到应用单片机的目的 PIC 8 位单片机共有三个级别, 有相对应的指令集 基本级 PIC 系列芯片共有指令 33 条, 每条指令是 12 位字长 ; 中级 PIC 系列芯片共有指令 35 条, 每条指令是 14 位字长 ; 高级 PIC

More information

手册 doc

手册 doc 1. 2. 3. 3.1 3.2 3.3 SD 3.4 3.5 SD 3.6 3.7 4. 4.1 4.2 4.3 SD 4.4 5. 5.1 5.2 5.3 SD 6. 1. 1~3 ( ) 320x240~704x288 66 (2G SD 320x2401FPS ) 32M~2G SD SD SD SD 24V DC 3W( ) -10~70 10~90% 154x44x144mm 2. DVR106

More information

L23

L23 Lecture 26: VLIW & Superscalar 高级流水线技术 高性能流水线 - 指令级并行 (ILP) 技术 超流水线 多发射流水线 - 静态多发射 (VLIW 处理器 + 编译器静态调度 ) - 动态多发射 ( 超标量处理器 + 动态流水线调度 ) 静态多发射 (VLIW- 超长指令字 ) 编译器静态推测完成 指令打包 和 冒险处理 MIPS 2- 发射流水线数据通路 循环展开指令调度

More information

第1章 概论

第1章 概论 计算机组成 原理蒋本珊 学习指南 本课程的性质 是计算机科学与技术专业本科生的核心课程之一, 是必修的专业基础课 学习指南 本课程的地位 本课程在计算机学科中处于承上启下的地位, 要求先修的课程有 : 计算机科学导论数字电路 学习指南 本课程的任务 讨论单机系统范围内计算机各部件和系统的组成以及内部工作机制 通过学习, 掌握计算机各大部件的组成原理 逻辑实现 设计方法及其互连构成整机系统的技术, 并为后继课程的学习打好基础

More information

数据库系统概论

数据库系统概论 所谓寻址方式, 就是指令中用于说明操 作数所在地或者所在地地址的方法 8088/8086 的寻址方式分为两类 : 关于寻找数据的寻址方式 关于寻找转移地址的寻址方式 下面讲关于数据的寻址方式时, 均以数 据传送指令 MOV 为例讲解 MOV 指令格式如下 : MOV DST, SRC 助记符 目的操作数 指令完成的功能 : (DST) 源操作数 (SRC) 一. 关于寻找数据的寻址方式 ( 共 8

More information

<4D F736F F F696E74202D20B5DA35D5C2CEA2B4A6C0EDC6F7B9A4D7F7D4ADC0ED2E707074>

<4D F736F F F696E74202D20B5DA35D5C2CEA2B4A6C0EDC6F7B9A4D7F7D4ADC0ED2E707074> 第 5 章 微处理器工作原理 1 5.1 8086 处理器 2 1. 管脚定义 3 8086/88 管脚描述 8086:16 位微处理器, 16 位外部数据总线 8088:16 位微处理器, 8 位外部数据总线 GND AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND 1 2 3 4 5

More information

<4D6963726F736F667420576F7264202D2033A470AEC9B0B7A8ABB6B0B056ACE3B2DFA4E2A5552E646F63>

<4D6963726F736F667420576F7264202D2033A470AEC9B0B7A8ABB6B0B056ACE3B2DFA4E2A5552E646F63> 中 華 民 國 健 身 運 動 協 會 社 區 健 走 教 室 100 點 種 子 指 導 員 研 習 手 冊 中 華 民 國 健 身 運 動 協 會 http://www.exercise.org.tw 0 課 程 內 容 : 時 間 課 程 內 容 講 師 備 註 健 走 研 習 13:30 健 走 實 技 與 指 導 劉 定 國 14:30 健 走 實 務 劉 定 國 講 師 一 位 15:00

More information

数据库系统概论

数据库系统概论 2. 减法指令 8086/8088 共有 5 条减法指令 1 不带 CF 的减法指令 (SUB) 格式 :SUB DST, SRC 功能 :(1)DST (DST)-(SRC) (2) 根据差设置 6 个状态标志 2 带 CF 的减法指令 (SBB) 格式 :SBB DST, SRC 功能 : (1)DST (DST)-(SRC)-CF (2) 根据差设置 6 个状态标志 3 减 1 指令 (DEC)

More information

16 全球职业规划师 GCDF 资格培训教程 图 1 4 舒伯的循环式发展任务 Super 1990 的时候 由于工作者角色的中断 个人又缺乏其他角色可以替代它满足个人 的心理需求 往往会产生巨大的失落感乃至出现严重的适应不良状况 角色和显著角色的概念有助于我们评估一个人在工作 学习 家庭 休 闲和社会活动等各方面的投入程度及其相互间的关联影响 从而帮助个人协 调平衡生活各部分的内容 丰富个人的生活空间

More information

1500XA Daniel Danalyzer 1500XA Rosemount Analytical 1500XA P/N 3-9000-757 A 2010 5 ii 1500XA 1500XA iii iv 1500XA : 1-2 1500XA - 1500XA 1-3 1-4 1500XA 1500XA 1-5 1-6 1500XA 1500XA 1-7 1-8 1500XA

More information

技术文档

技术文档 地址 : 深圳市高新技术产业园南区高新南一道国微大厦 5 楼 ADD: Shenzhen High-tech Industrial Park,South Area GaoxinS.Ave.1 st,guowei Building. 电话 Tel:0755-26991331 传真 Fax:0755-26991336 邮编 :518057 网址 :www.chinaasic.com LED 恒流驱动芯片

More information

Principles of Computers

Principles of Computers MIPS 汇编语言程序设计 LD(R31,x,R0) BNE(R0,skip,R31) LD(R31,y,R1) ADDC(R1,1,R1) ST(R1,y,R31) skip:...$%$^$&&$&$ if(x==0) y=y+1; 2010-10-10 1 1 机器语言 汇编程序设计思路 01010110001110001001010010 2 汇编 3 编译器 4 典型程序结构及汇编语言设计

More information

PowerPoint 簡報

PowerPoint 簡報 國 家 賠 償 法 概 述 主 講 人 : 宋 恭 良 104.10.12 2015.10.30 1 Q. 老 師 是 否 是 公 務 員? 是 否 適 用 國 賠? 法 務 部 95 年 9 月 14 日 法 律 字 第 0170449 號 函 : 國 家 賠 償 法 第 2 條 第 1 項 規 定 本 法 所 稱 公 務 員 者, 謂 依 法 令 從 事 於 公 務 之 員, 係 採 最 廣 義

More information

<4D6963726F736F667420576F7264202D20AC4FBDBDA4FBB67DA96CAABA2DA743A67EAFC5AAA95FA7B9BD5A5F2E646F63>

<4D6963726F736F667420576F7264202D20AC4FBDBDA4FBB67DA96CAABA2DA743A67EAFC5AAA95FA7B9BD5A5F2E646F63> ( 閱 讀 前 ) 練 習 一 動 動 腦, 猜 一 猜 小 朋 友, 現 在 我 們 要 一 起 來 閱 讀 一 本 很 有 趣 的 書, 書 名 是 是 蝸 牛 開 始 的!, 請 動 動 你 的 腦 袋, 想 像 自 己 是 作 者, 猜 猜 這 本 書 在 說 什 麼 樣 的 故 事 呢? 我 覺 得 這 個 故 事 可 能 的 角 色 有 我 覺 得 這 個 故 事 可 能 發 生 的 地

More information

PowerPoint Presentation

PowerPoint Presentation 中 小 IT 企 业 人 力 资 源 管 理 咨 询 简 介 一 背 景 分 析 二 需 求 分 析 三 服 务 内 容 四 操 作 流 程 五 斯 隆 优 势 六 行 业 案 例 七 服 务 理 念 目 录 一 背 景 分 析 -IT 业 现 状 分 析 IT 产 业 的 总 量 水 平 较 低 中 国 IT IT 现 状 总 体 规 模 较 小 技 术 自 主 创 新 能 力 差 对 经 济 的

More information

AT89C2051中文资料.doc

AT89C2051中文资料.doc 图形点阵液晶显示模块使用手册 TG12864C(L) 广州捷胜吉电子科技 地址 : 广州市天河区天河路 561# 新赛格电子城 B2226 电话 :(020)33550997 13829772038 网址 :WWW.GZJSJDZ.COM E-mail:CJKD@21CN.COM 目 录 ( 一 ) 概述 (1) ( 二 ) 外形尺寸图 (1) ( 三 ) 模块主要硬件构成说明 (2) ( 四 )

More information

Microsoft Word - 4danalysis-pt3-p2-9.doc

Microsoft Word - 4danalysis-pt3-p2-9.doc TECHNIQUES & METHODS OF 4D ANALYSIS (Part III) 4-D Master, Charles In Part II, I presented the performance (hit rates) of the Most Frequent, Top-10 4D numbers over the last 15 years, ie., from 1 Jan 1996

More information

,,, ( ) ( ), %, %,,,,,,,,,,,,,,,,,,, %,,,,,,,, :,,,,,,,,,,,,,,,,,,,,,,,,,, ( ),,, :., ( ),,,,,, :,, ( ),,

,,, ( ) ( ), %, %,,,,,,,,,,,,,,,,,,, %,,,,,,,, :,,,,,,,,,,,,,,,,,,,,,,,,,, ( ),,, :., ( ),,,,,, :,, ( ),, * ( ) 葛延风 内容提要 : 中国养老保障制度改革的方向是基金预筹积累的个人帐户制度 在向新制度的转轨过程中, 核心的问题是解决老职工的养老金来源 年以来的改 革没有解决这一问题, 以致于陷入困境 作者认为改革的思路是用国有资产存量偿 还对老职工的养老金负债, 在此基础上建立完全的个人帐户制度 医疗和失业保障 改革也应转换思路 医疗保障制度改革应打破城乡分割问题, 建立城乡一体化的保障体系 失业保障不能通过失业保险解决,

More information

中山大学硕士学位论文随机生存森林在结直肠癌预后分析的应用姓名 : 洪远芳申请学位级别 : 硕士专业 : 应用数学指导教师 : 冯国灿 ; 黎培兴 20100529 随机生存森林在结直肠癌预后分析的应用 作者 : 洪远芳 学位授予单位 : 中山大学 本文读者也读过 (2 条 ) 1. 罗宝章单药信号检测的随机森林算法及联合用药信号检测的两种基线模型

More information

等 的氛围 有利于与受评者深入交流 五 进行修正 接下来 就要根据评估的结果进行目标和策略方案的修订 修订 的内容包括 职业的重新选择 职业生涯路线的选择阶段目标的修正 实施措施与行动计划的变更等等 通过反馈评估和修正 应该达到下列目的 对自己的强项充满自信 我知道我的强项是什么 对自己的发展机会有一个清楚的了解 我知道自己什么地方还 有待改进 找出关键的有待改进之处 为这些有待改进之处制定详细的行为改变计划

More information

NordriDesign原创免费模板

NordriDesign原创免费模板 OCS 基础培训 软件篇 2014 年 3 月 25 日 主要内容 : 一 内部寄存器结构介绍二 软件菜单介绍及基本连接操作三 梯形图常用编程指令介绍 ( 程序 ) 四 画面常用编辑指令介绍 ( 程序 ) 五 软件使用常见问题指南 ( 文档 ) 六 附录 : 功能块使用说明七 Cscape 新版本特性介绍 一 内部寄存器结构介绍 HEX 内部寄存器结构 BINARY 16384 8192 4096

More information

ChinaBI企业会员服务- BI企业

ChinaBI企业会员服务- BI企业 商业智能 (BI) 开源工具 Pentaho BisDemo 介绍及操作说明 联系人 : 杜号权苏州百咨信息技术有限公司电话 : 0512-62861389 手机 :18616571230 QQ:37971343 E-mail:du.haoquan@bizintelsolutions.com 权限控制管理 : 权限控制管理包括 : 浏览权限和数据权限 ( 权限部分两个角色 :ceo,usa; 两个用户

More information

自 學 進 修 學 力 鑑 定 考 試 職 業 證 照 與 專 科 學 校 類 科 對 照 表 修 正 規 定 序 號 考 試 單 位 考 試 及 格 證 書 名 稱 適 用 等 級 類 別 科 別 考 1 試 律 師 甲 級 商 業 財 經 法 律 院 2 計 師 甲 級 商 業 計 事 務 3

自 學 進 修 學 力 鑑 定 考 試 職 業 證 照 與 專 科 學 校 類 科 對 照 表 修 正 規 定 序 號 考 試 單 位 考 試 及 格 證 書 名 稱 適 用 等 級 類 別 科 別 考 1 試 律 師 甲 級 商 業 財 經 法 律 院 2 計 師 甲 級 商 業 計 事 務 3 教 育 部 令 中 華 民 國 101 年 7 月 25 日 臺 技 ( 一 ) 字 第 1010130827D 號 修 正 自 學 進 修 學 力 鑑 定 考 試 職 業 證 照 與 專 科 學 校 類 科 對 照 表, 並 自 即 日 生 效 附 修 正 自 學 進 修 學 力 鑑 定 考 試 職 業 證 照 與 專 科 學 校 類 科 對 照 表 部 長 蔣 偉 寧 自 學 進 修 學 力 鑑

More information

1 CPU

1 CPU 2000 Tel 82316285 82317634 Mail liuxd@buaa.edu.cn 1 CPU 2 CPU 7 72 A B 85 15 3 1/2 M301 2~17 : 3/4 1/2 323 IBM PC 1. 2. 3. 1. 2. 3. 1.1 Hardware Software 1.2 M3 M2 M1 1.2 M3 M1 M2 M2 M1 M1 M1 1.2 M3 M1

More information

Microsoft PowerPoint - Chap_4.ppt

Microsoft PowerPoint - Chap_4.ppt 组合逻辑电路 第四章组合逻辑电路 梁华国电子科学与技术系 http://dwxy.hfut.edu.cn/ 概述 组合逻辑电路分析 组合逻辑电路设计 考虑特殊问题的逻辑设计 若干常用的组合逻辑电路 组合逻辑电路中的竟争 - 冒险 概述 组合逻辑电路 组合逻辑电路的定义 : 是指电路在任何时刻产生的稳定输出信号, 仅取决于该时刻电路的输入信号 a a a n 组合逻辑电路 y y y f a a a

More information

幻灯片 1

幻灯片 1 第一类换元法 ( 凑微分法 ) 学习指导 复习 : 凑微分 部分常用的凑微分 : () n d d( (4) d d( ); (5) d d(ln ); n n (6) e d d( e ); () d d( b); ); () d d( ); (7) sin d d (cos ) 常见凑微分公式 ); ( ) ( ) ( b d b f d b f ); ( ) ( ) ( n n n n d f

More information

主要内容 一 ZFS 文件系统二 ZFS 文件系统数据完整性 1 一 ZFS 文件系统 ZFS 文件系统简介存储池 2 二 ZFS 文件系统数据完整性什么是数据完整性

主要内容 一 ZFS 文件系统二 ZFS 文件系统数据完整性 1 一 ZFS 文件系统 ZFS 文件系统简介存储池 2 二 ZFS 文件系统数据完整性什么是数据完整性 一 ZFS 文件系统二 ZFS 文件系统数据完整性 老师 : 冯丹 2010 年 10 月 25 日 主要内容 一 ZFS 文件系统二 ZFS 文件系统数据完整性 1 一 ZFS 文件系统 ZFS 文件系统简介存储池 2 二 ZFS 文件系统数据完整性什么是数据完整性 主要内容 一 ZFS 文件系统二 ZFS 文件系统数据完整性 ZFS 文件系统简介存储池 1 一 ZFS 文件系统 ZFS 文件系统简介存储池

More information

胡 鑫 陈兴蜀 王海舟 刘 磊 利用基于协议分析和逆向工程的主动测量方法对 点播系统进行了研究 通过对 点播协议进行分析 获悉该协议的通信格式和语义信息 总结出了 点播系统的工作原理 在此基础上设计并实现了基于分布式网络爬虫的 点播系统主动测量平台 并对该平台获取的用户数据进行统计分析 获得了 点播系统部分用户行为特征 研究结果对 点播系统的监控及优化提供了研究方法 点播 协议分析 爬虫 主动测量

More information

OSPF over IPSec及路由冗余

OSPF over IPSec及路由冗余 OSPF over IPSec 及路由冗余 版本 1.0 时间 2011 年 12 月 作者 胡丹丹 (ddhu@fortinet.com) 支持的版本 FortiOS v4.x 状态 草稿 第 1 页共 10 页 目录 1. 目的... 3 2. 环境介绍... 3 3.IPSec VPN 配置... 4 4.OSPF 配置... 5 4.1 GateA 配置... 5 4.2 GateB 配置...

More information

图 1 门电路实现全加器仿真图 (7) 放置输入源 单击工具栏中的按钮, 在图 1 的输入端放置 DCLOCK 型激励源 然后双击打开其编辑框, 如图 2 所示, 对其数值进行修改 本实验中, 输入 A 的周期设置为 4s, 输入 B 的周期设置为 2s, 输入 CI 的周期设置为 1s 图 2 激

图 1 门电路实现全加器仿真图 (7) 放置输入源 单击工具栏中的按钮, 在图 1 的输入端放置 DCLOCK 型激励源 然后双击打开其编辑框, 如图 2 所示, 对其数值进行修改 本实验中, 输入 A 的周期设置为 4s, 输入 B 的周期设置为 2s, 输入 CI 的周期设置为 1s 图 2 激 数字全加器操作说明书 本实验将分别采用 (1) 门电路 (2) 数据选择器 (3) 二进制译码器三种不同逻辑器件实现 1 位全加器的逻辑电路功能 具体的实验步骤及操作方法分述如下 1. 使用小规模集成电路 ( 门电路 ) 实现全加器 (1) 根据 1 位全加器的逻辑功能, 写出 1 位全加器的逻辑真值表, 如表 1 所示 输入 输出 表 1. 1 位全加器的逻辑真值表 A 0 0 0 0 1 1 1

More information

Microsoft Word - 2015-12-25箕æ−¥ï¼‹å®ı稿;

Microsoft Word - 2015-12-25箕æ−¥ï¼‹å®ı稿; 名 词 工 作 简 报 第 4 期 ( 总 第 240 期 ) 全 国 科 学 技 术 名 词 审 定 委 员 会 事 务 中 心 编 印 2015 年 12 月 25 日 医 学 美 学 与 美 容 医 学 名 词 正 式 公 布 测 绘 学 名 词 ( 第 四 版 ) 等 8 种 科 技 名 词 预 公 布 中 国 社 科 院 秘 书 长 高 翔 出 席 审 定 工 作 会 议 并 讲 话 两

More information

98年度即測即評學科測試與即測即評即發證技術士技能檢定簡章

98年度即測即評學科測試與即測即評即發證技術士技能檢定簡章 簡 章 103 年 度 即 測 即 評 學 科 測 試 與 即 測 即 評 及 發 證 技 術 士 技 能 檢 定 簡 章 報 名 書 表 勘 誤 表 日 期 103 年 6 月 12 日 封 面 封 面 10302A 10303A 報 檢 人 重 點 摘 要 提 示 1 6. 大 陸 地 區 人 民 ( 大 陸 配 偶 大 陸 學 位 生 ( 陸 生 就 學 ) 及 專 案 許 可 取 得 長 期

More information