本次笔记内容:
P3 计算机组成原理(03)
P4 计算机组成原理(04)
文章目录
- 总结
计算机的指令系统:概述
本讲内容主要包括:
- 计算机程序及分类
- 指令系统基本知识
- MIPS指令系统简介
- THCO MIPS指令系统
- THINPAD指令模拟器
计算机程序
什么是计算机程序?
- 程序员和计算机硬件之间交互的语言;
- 计算机程序的分类:高级语言、汇编语言、机器语言。
程序举例
如上图,高级语言较为贴近自然语言。上述指令将斐波那契数列存储到内存中。
如上图,计算机是通过逻辑电路实现指令,因此可以理解机器语言。但是人类无法直接理解机器语言,因此有汇编语言进行过度。
汇编语言如上图形式。
实现冯诺依曼计算机程序的实现过程如上。计组的课程内容(硬件的工作)就是:实现四条指令的功能,关注输入、底层设计、相应部件完成功能、生成驱动部件的控制信号。
Von Neumannan结构计算机
存储程序计算:
- 程序由指令构成;
- 程序功能通过指令序列描述;
- 指令序列在存储器中顺序存放。
顺序执行指令:
- 用PC指示当前被执行的指令;
- 从存储器中读出指令执行;
- PC指向下一条指令。
指令和指令系统
指令和指令系统的定义
计算机系统由硬件和软件两大部分组成。 硬件指由中央处理器、存储器以及外围设备等组成的实际装置。软件是为了使用计算机而编写的各种系统的和用户的程序,程序由一个序列的计算机指令组成。
指令是计算机运行的最小的功能单元,是指挥计算机硬件运行的命令,是由多个二进制位组成的位串是计算机硬件可以直接识别和执行的信息体。指令中应指明指令所完成的操作,并明确操作对象。
**一台计算机提供的全部指令构成该计算机的指令系统。**指令用于程序设计人员告知计算机执行一个最基本运算、处理功能,多条指令可以组成一个程序,完成一项预期的任务。
指令系统的地位是硬件的软件的接口
如上图,六层层次结构中,指令系统优劣是一个计算机系统是否成功的关键因素。
指令功能分类
- 数据运算指令:算术运算、逻辑运算;
- 数据传输指令:寄存器之间、主存/寄存器之间;
- 输入/输出指令:与输入/输出端口的数据传输;
- 控制指令:转移指令、子程序调用/返回;
- 其它指令:停机、开/关中断、空操作、特权、置条件码。
指令格式
指令格式:指令字中操作码和操作数地址的二进制位的分配方案。
如上图,指令要包含:做什么、对谁做(对象)。
指令字:完整的一条指令的二进制表示;
指令字长:指令字中二进制代码的位数;
机器字长:计算机能直接处理的二进制数据的位数(32位、64位等等);
指令字长(字节倍数)=0.5、1、2…个机器字长。
存在定长和变长指令字结果,现在基本使用定长。
寻址方式
寻址方式(又称编址方式)指的是确定本条指今的操作数地址及下ー条要执行的指今地址的方法。
不同的计算机系统,使用数目和功能不同的寻址方式,其实现的复杂程度和运行性能各不相同。有的计算机寻址方式较少,而有些计算机采用多种寻址方式。
通常需要在指今中为每一个操作数专设一个地址字段,用来表示数据的来源或去向的地址。在指今中给出的操作数(或指令)的地址被称为形式地址,使用形式地址信息并按一定规则计算出来或读操作得到的一个数值才是数据(实际地址)的实际地址。 在指今的操作数地址字段,可能要指出:
- 运算器中的累加器的编号或专用寄存器名称(编号);
- 输入/输出指令中用到的I/O设备的入出端口地址;
- 内存储器的一个存储单元(或I/O设备)的地址。
平价计算机性能的指标
- 吞吐率:单位时间完成的任务数量;
- 响应时间:完成任务的时间;
- 衡性能的指标:MIPS、CPI、CPU time、CPU Clock;
- 综合测试程序(测试床)。
MIPS指令系统
如上图,MIPS既指一种指令系统,又指一种指标。
MIPS是一种历史悠久的指令系统。
MIPS指令格式
如上图,MIPS有三种指令格式。所有的指令都是32位字长。操作数寻址方式有基址加16位位移量的访存寻址、立即数寻址及寄存器寻址3种。
MIPS 64是面向64位处理器的指令系统;
MIPS 16e是
- 16位字长的MIPS指令集;
- 主要用于嵌入式系统;
- 本课程实验借用了其指令格式,在16位教学机上实现。
THINPAD
THINPAD的硬件组成
如上图,课程要求设计的THINPAD硬件组成。
THCO MIPS指令系统
采用与MIPS16e兼容的指令格式:
- 16位固定字长
- 操作码位置及长度固定;
- 寻址方式简单。
共设计有44条指令:可根据需要进行扩展。
作为本课程教学实验的指令系统。
如上图,寄存器指令21条。
I型指令如上图。立即数有3、4、7位等等,立即数要参与运算,因此使用时要扩展。
转移指令如上图。
长跳转、空指令如上图。
如上图,要从硬件设计师的角度看指令,要了解每一位代表什么。00代表8位。
立即数指令如上图。
长跳转指令如上图等。
指令系统的实现
如上图,在课程设计的指令系统中,不设置单独的I/O指令,统一地址空间。
数据通路中,首先考虑CPU中的算数逻辑单元的实现。并且考虑其他硬件的实现。
THCO MIPS寻址方式
操作数寻址方式:
- 寄存器寻址;
- 立即数寻址;
- 变址寻址。
汇编语言程序设计
如上图,在还没有硬件的情况下,可以使用模拟器对THCO MIPS指令系统进行模拟。
程序举例
如上图:
- LI是立即数,把1值赋给R1;
- 把R3的值赋为0;
- ADDU求和,赋给R3;
- ADDIU将R1的值加1;
- SLTI把R1与B比较,B在x0进制中是11,如果小于SLTI会把T赋值1;如果T不等于0,跳转到立即数FC(相对偏移量,从而实现循环)。
模拟器实现汇报
如上图,在模拟器中,ea开始汇编,省缺初始地址为0000。
使用c运行;r查看变量值。如上图,R3为37,在10进制中为55,程序正确。s为单步运行。
用模拟器熟悉指令系统没问题;如果想要调试硬件,需要通过server命令连接硬件。
Fibonacci数列汇编实现
如上图为斐波那契数列的实现。
总结
上图为清华老师的课后作业。