计算机系统结构实验指导书-14
计算机体系结构实验报告

计算机体系结构实验报告实验目的:1.掌握计算机体系结构的基本概念和组成部分2.学会使用模拟器对计算机性能进行测试和优化3.理解计算机指令的执行过程和流水线工作原理4.掌握计算机性能指标的测量方法和分析技巧实验材料和工具:1.一台个人电脑2.计算机体系结构模拟器3.实验指导书和实验报告模板实验步骤:1.搭建计算机系统:根据实验指导书提供的指导,我们搭建了一个简单的计算机系统,包括中央处理器(CPU)、内存和输入输出设备。
2.编写测试程序:我们编写了一段简单的测试程序,用于测试计算机系统的性能。
3.运行测试程序:我们使用模拟器运行测试程序,并记录测试结果。
模拟器可以模拟计算机的执行过程,并提供各种性能指标的测量功能。
4.分析和优化:根据测试结果,我们对计算机系统的性能进行分析,并尝试优化系统设计和测试程序,以提高性能。
实验结果:通过测试程序的运行和性能指标的测量,我们得到了如下结果:1.计算机的时钟频率:根据模拟器显示的结果,我们得知计算机的时钟频率为1000MHz。
2. 指令执行时间:我们计算了测试程序的平均执行时间,得到了结果为5ms。
4.流水线效率:我们通过模拟器提供的流水线分析功能,得到了计算机流水线的平均效率为80%。
实验分析:根据测试结果1.提高时钟频率:通过增加时钟频率可以加快计算机的运行速度。
我们可以尝试调整计算机硬件的设计和制造工艺,提高时钟频率。
2.优化指令执行过程:我们可以通过优化指令的执行过程,减少执行时间。
例如,并行执行多个指令、增加指令缓存等。
3.提高流水线效率:流水线是提高计算机性能的关键技术,我们可以通过增加流水线级数和优化流水线结构,提高流水线效率。
4.增加并行计算能力:并行计算是提高计算机性能的重要途径,我们可以尝试增加计算机的并行计算能力,例如增加处理器核心的数量。
实验总结:通过本次实验,我们深入了解了计算机体系结构的工作原理和性能指标。
通过模拟器的使用,我们学会了对计算机性能进行测试和进行性能优化的方法。
计算机系统结构实验报告

计算机系统结构实验报告实验目的:掌握计算机系统的基本结构和工作原理,了解计算机系统的组成部分及其相互关系。
实验仪器和材料:计算机硬件设备(主机、硬盘、内存、显卡等)、操作系统、实验指导书、实验报告模板。
实验原理:实验步骤:1.搭建计算机硬件设备,将主机、硬盘、内存、显卡等组装连接好。
2. 安装操作系统,如Windows、Linux等。
3.启动计算机,进入操作系统界面。
4.打开任务管理器,查看CPU的使用情况。
5.打开任务管理器,查看内存的使用情况。
6.运行一些应用程序,观察CPU和内存的使用情况。
7.尝试使用输入输出设备,如键盘、鼠标等。
实验结果:通过实验,我们可以观察到计算机系统的硬件部分和软件部分的工作情况。
通过任务管理器,我们可以查看到CPU的使用情况和内存的使用情况。
在运行应用程序时,我们可以观察到CPU和内存的使用情况的变化。
通过使用输入输出设备,我们可以与计算机进行交互操作。
实验分析:从实验结果可以看出,计算机系统的硬件部分和软件部分都是相互关联的。
CPU作为计算机的核心部件,负责执行各种指令,通过数据传输和计算来完成各种操作。
而内存则用于存储数据和程序,通过读写操作来完成对数据的处理。
硬盘则用于长期存储数据。
操作系统则是计算机系统的管理者,通过调度CPU和内存的使用来实现对计算机资源的分配。
结论:计算机系统是由硬件和软件部分组成的,其中硬件部分包括CPU、内存、硬盘等,软件部分包括操作系统、应用程序等。
计算机系统通过CPU 的运算和数据传输来实现各种操作。
通过实验,我们可以观察到计算机系统的工作情况,并深入了解计算机系统的组成和工作原理。
实验总结:通过本次实验,我们对计算机系统的基本结构和工作原理有了更深入的了解。
实验中,我们搭建了计算机硬件设备,安装了操作系统,并通过观察和分析实验结果,进一步认识到计算机系统的组成部分和各部分之间的相互关系。
通过操作输入输出设备,我们还实践了与计算机进行交互操作的过程。
数据结构实验指导书

数据结构实验指导书一、实验目的数据结构是计算机科学中的重要基础课程,通过实验,旨在帮助学生更好地理解和掌握数据结构的基本概念、原理和算法,提高学生的编程能力和问题解决能力。
具体而言,实验的目的包括:1、加深对常见数据结构(如数组、链表、栈、队列、树、图等)的理解,掌握其特点和操作方法。
2、培养学生运用数据结构解决实际问题的能力,提高算法设计和程序实现的能力。
3、增强学生的逻辑思维能力和调试程序的能力,培养学生的创新意识和团队合作精神。
二、实验环境1、操作系统:Windows 或 Linux 操作系统。
2、编程语言:C、C++、Java 等编程语言中的一种。
3、开发工具:如 Visual Studio、Eclipse、Code::Blocks 等集成开发环境(IDE)。
三、实验要求1、实验前,学生应认真预习实验内容,熟悉相关的数据结构和算法,编写好实验程序的代码框架。
2、实验过程中,学生应独立思考,认真调试程序,及时记录实验过程中出现的问题及解决方法。
3、实验完成后,学生应撰写实验报告,包括实验目的、实验内容、实验步骤、实验结果、问题分析与解决等。
四、实验内容(一)线性表1、顺序表的实现与操作实现顺序表的创建、插入、删除、查找等基本操作。
分析顺序表在不同操作下的时间复杂度。
2、链表的实现与操作实现单链表、双向链表的创建、插入、删除、查找等基本操作。
比较单链表和双向链表在操作上的优缺点。
(二)栈和队列1、栈的实现与应用实现顺序栈和链式栈。
利用栈解决表达式求值、括号匹配等问题。
2、队列的实现与应用实现顺序队列和链式队列。
利用队列解决排队问题、广度优先搜索等问题。
(三)树1、二叉树的实现与遍历实现二叉树的创建、插入、删除操作。
实现二叉树的前序、中序、后序遍历算法,并分析其时间复杂度。
2、二叉搜索树的实现与操作实现二叉搜索树的创建、插入、删除、查找操作。
分析二叉搜索树的性能。
(四)图1、图的存储结构实现邻接矩阵和邻接表两种图的存储结构。
计算机操作

大学计算机基础实验指导书A班2012年9月实验一windows基本操作、系统环境一、实验目的1.熟悉Windows的基本知识和基本操作。
2.熟悉Windows的程序管理。
3.熟悉“Windows资源管理器”和“我的电脑”的使用。
4.熟悉文件和文件夹的常用操作。
二、实验内容1. 认识“我的电脑”和“资源管理器”(1)双击桌面“我的电脑”图标,打开我的电脑程序,分别选用缩略图、列表、详细信息等方式浏览Windows主目录,观察各种显示方式之间的区别。
(2)右键单击“我的电脑”通过“资源管理器”查看相关程序,分别按名称、大小、文件类型和修改时间对Windows主目录进行排序,观察四种排序方式的区别。
2. 认识windows菜单栏和工具栏打开我的电脑应用程序,从上到下依次为标题栏,菜单栏和工具栏,通过相关菜单和工具按钮设置windows相关属性(如图1-1所示)。
图1-1 应用程序菜单栏和工具栏3.任务栏的设置(1) 设置任务栏为自动隐藏。
桌面最下方蓝色区域为任务栏,右键单击任务栏空白处,打开任务栏属性对话框,设置任务栏相关属性,如图1-2所示。
2) 在“开始”菜单“附件”程序组中启动“记事本”、“画图”、“计算器”等程序,通过任务栏中的按钮在相应的程序中进行切换,然后对这些窗口进行层叠、横向平铺和纵向平铺操作。
图1-2 任务栏属性设置4.桌面的设置右键单击桌面任意空白区域,弹出快捷菜单设置桌面图标的排列方式、在桌面上新建相关程序,选择“属性”,打面显示属性设置对话框,如图1-3所示,单击相关按钮进行属性设置。
(1)桌面背景选用计算中的一幅图片,并把它拉伸到整个桌面。
(2)屏幕保护程序选用“三维文字”,设置显示“计算机屏幕保护”摇摆式旋转,等待时间为1分钟。
(3)设置屏幕分辨率,如果分辨率为1024×768像素,则设置为800×600像素,反之设置为1024×768像素。
图1-3 显示属性对话框5. 屏幕和窗口复制功能的使用。
《计算机组成原理》实验教学大纲

《计算机组成原理》实验教学大纲一、实验目的1.了解计算机的基本组成结构和工作原理;2.掌握计算机各个部件的功能和作用;3.掌握计算机组成原理的基本概念和理论知识;4.培养学生动手实践、动脑思考的能力;5.提高学生的团队协作和问题解决能力。
二、实验内容1.计算机硬件基本组成实验(1)CPU的功能和性能测试(2)主板的组装和测试(3)内存的安装和测试(4)硬盘的安装和测试2.计算机软件基本组成实验(1)操作系统的安装和配置(2)应用软件的安装和配置(3)网络设置和测试3.计算机接口和通信实验(1)串口和并口的测试(2)USB接口的测试(3)网络通信的测试4.计算机系统性能测试实验(1)性能测试软件的使用(2)性能测试实验数据分析(3)性能测试实验结果报告5.计算机故障排除实验(1)硬件故障排除方法(2)软件故障排除方法(3)系统故障排除方法三、实验设备1.计算机硬件设备:CPU、主板、内存、硬盘、显卡、其他外设2.计算机软件设备:操作系统、应用软件、性能测试软件3.通信设备:串口、并口、USB接口、网络设备四、实验要求1.认真学习计算机组成原理的理论知识;2.熟练掌握计算机硬件和软件的基本操作方法;3.认真执行实验操作步骤,按时完成实验任务;4.认真分析实验数据,撰写实验报告;5.积极参与实验讨论和交流,相互学习,共同进步。
五、实验流程1.实验前准备:查阅相关资料,准备实验材料;2.实验操作:根据实验大纲逐步进行实验操作;3.实验数据:记录实验过程中产生的数据和结果;4.实验分析:根据实验数据和结果分析实验过程;5.实验报告:撰写实验报告,总结实验经验和教训。
六、实验负责人实验负责人1:XXX实验负责人2:XXX七、实验安全注意事项1.操作实验设备时需注意安全,切勿疏忽大意;2.保护实验设备,避免损坏;3.如有不懂之处,及时向实验负责人请教;八、实验成绩评定1.实验操作得分2.实验报告得分3.实验讨论得分4.实验总成绩。
实验一 运算器实验(接线参考)

实验一运算器实验一、实验目的:1.掌握运算器的组成及工作原理;2.了解4位函数发生器74LS181的组合功能,熟悉运算器执行算术操作和逻辑操作的具体实现过程;3.验证带进位控制的74LS181的功能。
二、预习要求:1复习本次实验所用的各种数字集成电路的性能及工作原理;2预习实验步骤,了解实验中要求的注意之处。
三、实验设备:EL-JY-II型计算机组成原理实验系统一套,排线若干。
四、电路组成:本模块由算术逻辑单元ALU 74LS181(U7、U8、U9、U10)、暂存器74LS273(U3、U4、U5、U6)、三态门74LS244(U11、U12)和控制电路(集成于EP1K10内部)等组成。
电路图见图1-1(a)、1-1(b)。
图1-1(a)ALU电路图1-1(b)ALU控制电路算术逻辑单元ALU是由四片74LS181构成。
74LS181的功能控制条件由S3、S2、S1、S0、 M、Cn决定。
高电平方式的74LS181的功能、管脚分配和引出端功能符号详见表1-1、图1-2和表1-2。
四片74LS273构成两个16位数据暂存器,运算器的输出采用三态门74LS244。
它们的管脚分配和引出端功能符号详见图1-3和图1-4。
图1-2 74LS181管脚分配表1-2 74LS181输出端功能符号74LS181功能表见表1-1,其中符号“+”表示逻辑“或”运算,符号“*”表示逻辑“与”运算,符号“/”表示逻辑“非”运算,符号“加”表示算术加运算,符号“减”表示算术减运算。
选择 M=1逻辑操作 M=0 算术操作S3 S2 S1 S0 Cn=1(无进位)Cn=0(有进位)0 0 0 0 F=/A F=A F=A加10 0 0 1 F=/(A+B) F=A+B F=(A+B)加10 0 1 0 F=/A*B F=A+/B F=(A+/B)加10 0 1 1 F=0 F=减1(2的补)F=00 1 0 0 F=/(A*B) F=A加A*/B F=A加A*/B加10 1 0 1 F=/B F=(A+B)加A*/B F=(A+B)加A*/B加1 0 1 1 0 F=(/A*B+A*/B) F=A减B减1 F=A减B0 1 1 1 F=A*/B F=A*/B减1 F=A*/B1 0 0 0 F=/A+B F=A加A*B F=A加A *B加11 0 0 1 F=/(/A*B+A*/B) F=A加B F=A加B加11 0 1 0 F=B F=(A+/B)加A*B F=(A+/B)加A*B加1 1 0 1 1 F=A*B F=A*B减1 F=A*B1 1 0 0 F=1 F=A加A F=A加A 加11 1 0 1 F=A+/B F=(A+B)加A F=(A+B)加A加11 1 1 0 F=A+B F=(A+/B)加A F=(A+/B)加A加11 1 1 1 F=A F=A减1 F=A表1-1 74LS181功能表图1-3(a) 74LS273管脚分配图1-3(b)74LS273功能表图1-4(a) 74LS244管脚分配图1-4(b) 74LS244功能五、工作原理:运算器的结构框图见图1-5:算术逻辑单元ALU是运算器的核心。
《计算机系统结构》教学大纲

《计算机系统结构》教学大纲课程名称:计算机系统结构课程学时:72学时课程类型:专业必修课课程学分:3学分课程考核方式:考试一、课程目标本课程旨在使学生了解计算机系统的基本结构和原理,掌握计算机系统的层次结构、指令系统和中央处理器、主存储器和输入输出系统等方面的知识,培养学生分析和设计计算机系统的能力。
二、课程内容1.计算机系统概论1.1计算机系统的发展历程1.2计算机系统的基本组成部分1.3计算机系统的层次结构2.指令系统2.1指令的分类与特点2.2指令的寻址方式2.3指令的执行过程2.4简单指令系统的设计与实现3.中央处理器3.1数据通路和控制器3.2指令的执行过程3.3中央处理器的设计与实现3.4流水线技术4.主存储器4.1存储器的基本概念4.2存储器的层次结构4.3存储器的组织与管理4.4高速缓存存储器的设计与实现4.5虚拟存储器5.输入输出系统5.1输入输出系统的功能与分类5.2输入输出设备的接口技术5.3中断处理和DMA技术5.4输入输出系统的设计与实现三、教学方法本课程采用理论课和实验相结合的教学方法。
理论课主要讲授计算机系统的基本原理和概念,通过示例和案例分析加深学生的理解。
实验课将对部分计算机系统组成部分进行仿真和实践操作,提高学生的实际操作能力。
四、教材与参考书主教材:《计算机组成与设计》(第5版)- David A. Patterson, John L. Hennessy,机械工业出版社参考书:1. 《计算机系统结构教程》- M. Morris Mano, 赵洁,高等教育出版社2.《计算机体系结构》-王肇国,机械工业出版社五、考核方式与评分标准本课程采取考试的方式进行综合评估。
考试主要包括选择题、填空题、简答题和综合性问题。
评分标准包括学生对计算机系统原理的掌握程度、对计算机系统设计的理解程度以及实验操作能力的表现等。
六、实验内容1.设计一个简单的指令系统,包括指令集、寻址方式和控制流程。
大学计算机基础实验指导书(WINDOWS部分修改稿)

Windows XP基本操作实验实验一Windows的基本操作和程序管理一、实验目的1.掌握Windows的基本操作和基础知识2.掌握Windows的程序管理3.掌握Windows下文字、符号的输入4.掌握桌面属性设置5.掌握常用附件的使用6.掌握常用压缩软件的基本操作二、实验内容任务1 任务栏和开始菜单的设置(1)设置任务栏为自动隐藏。
【提示】在任务栏空白处右击,在弹出的快捷菜单中选择“属性”命令,弹出对话框,在其中进行设置(也可以通过“控制面板”的“任务栏和开始菜单”启动该对话框)。
此外,在给对话框还可以进行是否“显示快速启动”等选项的设置。
(2)设置“微软拼音输入法2003”为默认输入法。
(3)显示或隐藏任务栏上的“中文输入法”。
【提示】选择“开始|控制面板|日期、时间、语言和区域设置|区域和语言设置”,弹出“区域和语言选项”对话框,选择“语言”选项卡,关其属性页面中单击【详细信息】按钮进入“文字服务和输入语言”对话框,通过“默认输入语言”下拉列表可选择某种已安装的输入法为默认输入法,如“微软拼音输入法2003”就实现了(2);通过【语言栏】按钮打开“语言栏设置”对话框,选定或取消“在桌面上显示语言栏”复选框,并单击【确定】按钮即可实现显示或隐藏“中文输入法”,再将其拖入任务栏就实现了(3)。
当然,当“桌面语言栏”呈显示时,可直接指向其上任一按钮右击,从弹出的快捷菜单中选择“设置”命令亦可进入“文字服务和输入语言”对话框,接下来操作同上。
说明:对于容器型对象,如任务栏或桌面等,其快捷菜单是指当鼠标指向它的任一空白处时右击弹出的菜单;而对于非容器型的对象,如我的电脑或某一确定的文件夹、文件等,其快捷菜单是指当鼠标指向对象本身时右击弹出的菜单。
(4)“开始”菜单的设置“开始”菜单有两种样式可供选择:经典样式和XP样式。
其设置可以在上述(1)所打开的“任务栏和开始菜单”对话框中的“开始菜单”选项卡中进行。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
北京邮电大学计算机学院计算机系统结构实验指导书王春露邝坚编著2007.3 – 2013.4目录z计算机系统结构实验简介z DLX处理器简介1. 实验一WINDLX模拟器安装及使用2. 实验二指令流水线相关性分析3. 实验三DLX处理器程序设计4. 实验四代码优化5. 实验五循环展开(选作)计算机系统结构实验简介DLX是一个虚拟处理器。
该处理器是加州大学伯克利分校计算机系JohnL .H ennessy教授和斯坦福大学计算机系David A. Patterson教授在其《计算机体系结构:一种定量的方法》一书中提出的。
该处理器反映了新一代处理器的特点。
通过了解DLX处理器的结构和工作原理,并利用DLX模拟器进行实验,可以帮助学生综合地了解和运用有关处理器指令系统的设计、流水线的设计与实现等方面的知识,有助于计算机系统结构课程内容的理解。
DLX处理器简介第一节 DLX基本结构DLX是一种典型的Load/Store型指令集结构。
它不仅体现了当今多种机器的指令集结构的共同特点,而且它还体现出未来一些机器的指令集结构的特点。
这些机器的指令集结构设计思想都和DLX指令集结构的设计思想十分相似,它们都强调:(1) 具有一套简单的Load/Store指令集;(2) 注重指令流水效率;(3) 简化指令的译码;(4) 高效支持编译器。
DLX是一种易于学习和研究的处理器结构模型。
这种类型的机器正在日趋流行,而且其结构非常易于理解。
1.DLX中的寄存器DLX中有32个通用寄存器(GPRs),分别将其命名为R0,R1…R31。
每个通用寄存器长度为32位。
另外,DLX中有32个浮点寄存器(FPRs),分别将其命名为F0,F1…F31。
每个浮点寄存器长度为32位。
这些浮点寄存器可以用来保存32位的单精度浮点数,或者通过相邻两个浮点寄存器奇偶对FiFi+1(i=0,2,4…,30)来保存双精度浮点数,这种组合而成的64位双精度浮点寄存器在DLX中分别被命名为F0,F2…F28,F30.2. DLX数据类型DLX提供了多种长度的整型数据和浮点数据。
对整型数据而言,有8位,16位,32位多种长度;对浮点而言,有32位单精度浮点数和64位双精度浮点数。
浮点数据表示采用的是IEEE754标准。
DLX操作都是对32位整型数据及32或64位浮点数据进行的。
3.DLX的寻址方式和数据传送DLX提供了寄存器寻址,立即寻址,偏移寻址和寄存器间接寻址四种寻址方式。
寄存器寻址字段的大小为5位,用来标识32个通用寄存器或浮点寄存器。
4. DLX的指令格式因为DLX只有四种寻址方式,所以将其寻址方式编码在操作码中。
为了简化指令译码,并充分发挥流水线的效率,所有DLX指令的字长均是32位,其中用6位表示操作码。
DLX中各种类型指令的格式如图1所示:图15.DLX中的操作DLX指令中的操作可以分为四种类型,即:Load和Store操作、ALU操作、分支和跳转操作、浮点操作。
(1)Load和Store操作可以对DLX的所有通用寄存器和浮点寄存器进行Load(载入)和Store(储存)操作,但是通用寄存器R0的Load操作没有任何效果。
(2) ALU操作在DLX中,所有的ALU指令都是寄存器-寄存器型指令,其运算包含了简单的算术和逻辑运算,如加、减、AND、OR、XOR和移位。
另外,DLX还允许所有这些指令对立即值进行操作,立即值以16位符号扩展形式出现。
LHI(Load高位立即值)操作将立即值载入到一个寄存器的高半部分,而该寄存器的低半部分则设置为0。
这样就可以通过两条Load指令构造一个32位的常数。
正如上面所提到的,R0主要用来合成一些有用的操作。
比如,Load一个常数就可以看作是一次简单的立即值加操作,其中一个源操作数是R0;寄存器-寄存器间的数据移动也可以看作是一次简单的加,其中一个源操作数是R0。
这两个操作可以分别用LI和MOV表示。
在DLX指令集中,还有一些寄存器比较指令(=,≠,<,>,≤,≥),如果比较结果为真,这些指令就在目标寄存器中填入1(表示真),否则填入0(表示假)。
因为这些比较操作指令要对目标寄存器进行“设置”,所以也称它们为设置相等、设置不等、设置小于等指令。
(3) 分支和跳转操作在DLX中,对程序流程的控制是通过一些跳转和分支指令来实现的。
根据描述目标地址的方法和是否链接可以将跳转操作指令分为四种类型。
其中两种类型的跳转指令用带符号位的26位偏移量加上程序计数器的值来确定跳转的目标地址,另外两种类型的跳转指令则指定一个寄存器,由寄存器中的内容决定跳转的目标地址。
跳转有两种类型,一种是简单跳转,另一种是跳转并链接(用于过程调用),后者将返回一个地址,即将下一条顺序指令地址(返回地址)保存在寄存器R31中。
DLX中的所有分支指令均是条件分支指令,其源操作数寄存器中包含了一个数值或某个比较结果。
分支指令测试该源操作数寄存器中的值是0还是非0,决定分支是否成功。
分支目标地址由一个带符号的26位偏移量加上程序计数器的值来确定,分支目的地址指向下一条要执行的指令(4) 浮点操作在DLX中,浮点指令的操作数来源于浮点寄存器,同时该浮点指令还指明了相应的操作是单精度浮点操作还是双精度浮点操作。
DLX的浮点操作有:加、减、乘、除。
后缀D代表双精度浮点操作,而后缀F代表单精度浮点操作(如:ADDD、ADDF、SUBD、SUBF、MULTD、MULTF、DIVD、DIVF)。
值得提出的是,DLX的浮点比较操作设置浮点状态寄存器中的位,如果比较结果为真,则将该位设置为1;如果比较结果为假,则将该位设置为0。
浮点分支指令BFPT和BFTF则测试该寄存器的值来决定分支是否成功。
另外,操作MOVF将一个单精度浮点寄存器的内容拷贝至另一个单精度浮点寄存器; MOVD 则将一个双精度浮点寄存器的内容拷贝至另一双精度寄存器;MOVFP2I和MOVI2FP操作则是在一个浮点寄存器和通用寄存器之间移动数据,如果要将一个双精度浮点数移入两个通用寄存器则需要两条指令,另外DLX还提供了在32位浮点寄存器中进行整数乘除操作的指令。
第二节 DLX流水线结构一.一个简单实现为了说明指令的流水执行方式,先论述在不流水的情况下,DLX指令是如何执行的。
图2给出了实现DLX指令的一种简单数据通路,下面可以看出在五个时钟周期内可以完成一条DLX指令。
1.取指令周期(IF):IR ← Mem[PC]NPC ← PC+4其操作为:根据PC值从存贮器中取出指令,并将指令送入指令寄存器IR;PC值增加4,指向顺序的下一条指令,并将下一条指令的地址放入临时寄存器NPC中.图22.指令译码/读寄存器周期(ID):A ←Regs[IR6..10]B ←Regs[IR11..15]Imm←(IR16)16 ## IR16..31其操作为:对指令操作码进行译码,按照给定的寻址方式和地址段中的内容形成操作数的地址,并用这个地址读操作数。
操作数可能在驻村中,也可能在通用寄存器中。
[8]指令的译码操作和读寄存器操作是并行进行的。
之所以能做到这一点,是因为DLX指令格式中,操作码在固定位置。
这种技术也称为固定字段译码技术。
值得注意的是,在上述过程中,可能读出了一些在后面周期中并不会使用到的寄存器内容,但是这并不会影响指令执行的正确性。
相反,却可以有效地降低问题的复杂性。
另外,由于立即值在DLX指令格式中处于固定位置,因此这里也对其进行符号扩展,以便在下一个周期能使用它。
当然由于指令的不同,也许在后面的周期中并不会用到这个立即值,但无论如何,提前形成立即值总是有益无害的。
3.执行/有效地址计算周期(EX)在这个周期,不同的指令有不同的操作。
(1)存储器访问:ALUOutput←A+Imm当指令为存贮器访问指令时,该周期的操作为:ALU将操作数相加形成有效地址,并将结果放入临时寄存器ALUoutput中。
(2)寄存器―寄存器ALU 操作:ALUOutput←A opB当指令为寄存器---寄存器ALU操作指令时,该周期的操作为:ALU根据操作码指出的功能对临时寄存器A和B中的值进行处理,并将结果送入临时寄存器ALUoutput中.(3)寄存器―立即值ALU 操作:ALUOutput←A opImm当指令为寄存器---寄存器ALU操作指令时,该周期的操作为: ALU根据操作码指出的功能对临时寄存器A和Imm中的值进行处理,并将结果送入临时寄存器ALUoutput中.(4)分支操作ALUOutput←NPC+ImmCond←(A op 0)当指令为分支指令时,该周期的操作为:ALU 将临时寄存器NPC和Imm中的值相加,得到分支的目标地址。
同时,对在前一个周期读入到寄存器A的值进行检查,决定分支是否成功。
OP由分支操作码决定这里,将有效地址计算周期和执行周期合并为一个时钟周期,这是由 DLX 指令集结构本身的特点所允许的,因为在 DLX 指令集结构中,没有任何指令需要同时计算数据的存储器地址、计算分支指令的目标地址和对数据进行处理。
另外,上面四种操作类型中没有包含各种形式的跳转操作,它们和分支操作十分相似,这里就不再赘述4.存储器访问/分支完成周期(MEM)在该周期处理的DLX指令只有Load、Store和分支指令。
存储器访问:LMD ←Mem[ALUOutput]或Mem[ALUOutput] ←B存贮器的访问操作包含了Load和Store两种类型的操作。
如果指令是Load指令,就将临时寄存器ALUOutput中的值作为访存地址,从存贮器中读出相应的数据,并放入临时寄存器LMD中;如果指令是Store指令,就将临时寄存器中的值按照临时寄存器ALUOutput所知名的地址写入存贮器。
(1)分支操作:if(cond)PC ←ALUOutput elsePC ←NPC如果分支条件寄存器中的内容为真,表明分支转移成功,选择临时寄存ALUOutput中的值作为分支目标地址,并将其放入PC中。
否则,他将临时寄存器NPC中的值送入PC中,作为下一条指令地址。
5.写回周期(WB):不同指令在该周期完成的工作也不一样。
这里按如下指令类型对写回周期所要完成的工作进行说明。
(1)寄存器―寄存器型ALU 指令:Regs[IR16..20] ←ALUOutput(2)寄存器―立即值型ALU 指令:Regs[IR11..15] ←ALUOutput(3)Load指令: Regs[IR11..15] ← LMD上述指令均是将结果写入寄存器文件。
无论结果是来自于存储器系统(临时寄存器 LMD 中的内容),还是来自于 ALU 的计算结果(临时寄存器 ALUoutput 中的内容),都由操作码决定将其送入目标寄存器相应的域中从图1--2中可以看出,分支指令需要4个时钟周期完成,其它指令需要5个时钟周期完成。