《计算机系统结构课程设计》由会员分享,可在线阅读,更多相关《计算机系统结构课程设计(29页珍藏版)》请在金锄头文库上搜索。
1、河北大学工商学院计算机系统结构课程设计学 部 信息科学与工程学部 学科门类 工学 专 业 计算机科学与技术 班 级 5008 网络 1 班 学 号 2008482118 姓 名 康业凯 2011 年 6 月 11 日河北大学工商学院计算机系统结构课程设计目 录第 1章 引言 .1第 2章 WinDLX 指令集 .22.1 WinDLX 指令集简介 .22.2 WinDLX 指令集结构 .2第 3章 WinDLX 模拟器 .63.1 WinDLX 模拟器的安装 .63.2 WinDLX 模拟器的配置 .63.3 WinDLX 运行及模拟结果分析 .7第 4章 WinDLX 模拟器的流水线模拟与分
2、析 .124.1 控制相关 .124.2 数据相关 .164.3 指令调度 .21总结 .26参考文献 .27河北大学工商学院计算机系统结构课程设计第 1 页 共 27 页第 1 章 引言引言介绍指令集结构发展概述(1)最早的指令集,来自于 IBM650,累加器型指令集结构。在硬件资源十分有限的条件下,累加器型指令集结构是必然的选择。(2)1963 年,出现了堆栈技术,堆栈最上面的两个元素被保存在 CPU 中作为运算器的输入,其它部分则保存在内存中。(3)1964 年,出现基于寄存器的指令集结构。1964 年,IBM 资深专家首次提出计算机系统结构的概念,包括:数据表示,指令集系统,中断系统,
3、存储系统,I/O 结构等。其中,指令结构是计算机系统结构设计的核心问题。(4)20 世纪 70年代,软件价格增长大于硬件价格的增长,编译器和操作系统越来越大,许多研究人员希望通过引入强有力的,基于软件的系统结构来缓解软件危机,CISC的典范 VAX 出现。(5)20 世纪 80年代,为提高 CPU执行指令速度,RISC 应运而生。1995年左右,设计师使用高性能通用处理机和科学应用处理机的技术来设计 DSP新的指令集结构。注:DSP 为数字信号处理。(6)20 世纪 90年代,更多的设计人员转向了 SOC(system-on-chip)。(7)补充:三种类型指令集结构的优缺点表 1-1 三种类
4、型指令集结构的优缺点指令集结构类型优点 缺点堆栈型 是一种表示计算的简单模型;指令短小不能随机访问堆栈,从而很难生成有效代码。同时,由于堆栈是瓶颈,所以很难被高效的实现累加器型 减小了计算机的内部状态;指令短小由于累加器是唯一的寄存器,这种机器的存储器通信开销最大寄存器型 易于生成高效的目标代码 所有操作数均需命名,且要显式表示,因而指令比较长河北大学工商学院计算机系统结构课程设计第 2 页 共 27 页第 2 章 WinDLX 指令集2.1 WinDLX 指令集简介美 国 斯 坦 福 大 学 计 算 机 系 Hennessy 教 授 和 加 州 伯 克 利 分 校 计 算 机 系Paters
5、on 教 授 是 计 算 机 系 统 结 构 领 域 非 常 受 人 尊 敬 的 学 者 和 开 拓 者 。他 们 合 著 的 计 算 机 系 统 结 构 -量 化 研 究 方 法 一 书 , 是 他 们 对 计 算 机 组 织 、系 统 结 构 研 究 和 实 践 的 全 面 而 系 统 的 总 结 。DLX 处 理 器 (发 音 为 DeLuXe)为 这 本 书 中 流 水 线 处 理 器 的 例 子 。WINDLX是一个基于 Windows的 DLX模拟器。2.2 WinDLX 指令集结构2.2.1 WinDLX 的寄存器(1)32 个 32位通用寄存器(GPR),名称为 R0, R1,
6、R2R31,寄存器 R0 的内容恒为全零。(2)32 个 32位浮点寄存器(FPR) ,既可用作单精度浮点寄存器,也可以奇偶配对来存储双精度浮点数。2.2.2 WinDLX 的数据表示DLX 能处理的数据类型有 8位字节,16 位半字、32 位整数字以及 32位单精度浮点数和 64位双精度浮点数。DLX 的操作主要面向 32位整数以及 32位或 64位浮点数。字节或半字节在被调入 32位寄存器时,用零或者符号位填充 32位寄存器的高位剩余部分,一旦被调入寄存器,它们将按照 32位整数的方式进行计算。河北大学工商学院计算机系统结构课程设计第 3 页 共 27 页2.2.3 WinDLX 的寻址方
7、式利用 R0 寄存器永远为零的特性,DLX 用很少的硬件代价,提供了 5种寻址方式:(1)寄存器寻址方式;(2)立即数寻址方式(立即数范围为 16位) ;(3)位移寻址方式(某寄存器的值加上位移量形成操作数地址) ;(4)寄存器间接寻址方式(位移寻址方式中位移量等于零) ;(5)直接寻址方式(位移寻址方式中寄存器用 R0) 。2.2.4 WinDLX 指令格式为使机器更容易进行流水线操作和译码,DLX 采用定长操作码的指令字格式。指令字长度 32 位(单字长指令) ,其中操作码占 6 位。具体指令格式如下图:6 5 5 16操作码 源寄存器 目的寄存器 立即数图 2-1 I 型指令格式6 5
8、5 5 11操作码 源寄存器 1 源寄存器 2 目的寄存器 功能码图 2-2 R 型指令格式6 26操作码 与 PC相加的偏移量图 2-3 J 型指令格式I 型指令格式主要用来对各种类型数的存取操作指令编码,即各种 Load 指令和Store 指令,I 型指令格式还用来为分支指令编码,包括条件分支指令,寄存器跳转指令和寄存器跳转并连接指令。R 型指令格式主要用来为各种算数/逻辑运算指令编码。R 型指令还为读写特殊寄存器指令和寄存器之间的传送指令编码。J 型指令格式主要用来为跳转并连接指令(注意不是寄存器跳转并连接指令)和陷阱与异常返回指令编码。河北大学工商学院计算机系统结构课程设计第 4 页
9、共 27 页2.2.5 WinDLX 指令集DLX 指令大致可以分为 4 大类:加载/存储、ALU 操作、分支与跳转和浮点数操作。1)Load 和 Store 操作:可以对 DLX 的所有通用寄存器和浮点寄存器进行Load(载入)和 Store(储存)操作,但是对通用寄存器 R0 的 Load 操作没有任何效果。表 2-1 DLX 的加载和存储指令指令实例 指令名称含 义LW R1 , 30 (R2) 载入整型字RegsR1 32 Mem30+RegsR2LW R1 , 1000 (R0) 载入整型字RegsR1 32 Mem1000+0LB R1 , 40 (R3) 载入字节RegsR1 3
10、2 (Mem40+RegsR30)24 # Mem40+RegsR3LBU R1 , 40 (R3) 载入无符号字节RegsR1 32 024 # Mem40+RegsR3LH R1 , 40 (R3) 载入整型半字RegsR1 32 (Mem40+RegsR30)16 # Mem40+RegsR3# Mem41+RegsR3LF F0 , 50 (R3) 载入单精度浮点RegsF0 32 Mem50+RegsR3LD F0 , 50 (R2) 载入双精度浮点RegsF0 # RegsF1 64 Mem50+RegsR2SW 500 (R4) , R3 储存整型字Mem500+RegsR4 3
11、2 RegsR3SF 40 (R3) , F0 储存单精度浮点Mem40+RegsR3 32 RegsF0SD 40 (R3) , F0 储存双精度浮点Mem40+RegsR3 32 RegsF0Mem44+RegsR3 32 RegsF1SH 502 (R2), R31 储存整型半字Mem502+RegsR2 16 RegsR3116.31河北大学工商学院计算机系统结构课程设计第 5 页 共 27 页SB 41 (R3) , R2 储存整型字节Mem41+RegsR3 8 RegsR224.312)ALU 操作:在 DLX 中,所有的 ALU 指令都是寄存器寄存器型指令,其运算包含了简单的算术和逻辑运算,如加、减、AND 、OR、XOR 和移位。“设置相等” 、 “设置不等” 、