计算机组成第二周:指令系统体系结构
2015-04-03 16:33
721 查看
1 x86体系结构
体系结构 | 厂商 | 微处理器型号 | 字长 | 年代 |
---|---|---|---|---|
IA-16 | Intel | 8086, 8088, 80186, 80188, 80286 | 16位 | 1978年起 |
IA-32 | Intel | 80386, 80486, Pentium, Pentium Pro/II/III/4, Core, Atom | 32位 | 1985年起 |
AMD | Am386, Am486, Am5x86, K5, K6, Athlon | |||
Others | Cyrix 5x86, VIA C3/C7, Transmeta Crusoe/Efficeon | |||
x86-64 | AMD | Opteron, Athlon 64, Phenom, Phenom II | 64位 | 2003年起 |
Intel | Pentium 4 Prescott, Core 2, Core i3/i5/i7 | |||
Others | VIA Nano |
1.1 寄存器模型
寄存器类型 | Intel 8086 | Intel 80386 | x86-64 |
---|---|---|---|
通用寄存器 | AX, BX, CX, DX, SP, BP, SI, DI | EAX, EBX, ECX, EDX, ESP, EBP, ESI, EDI | RAX, RBX, RCX, RDX, RSP, RBP, RSI, RDI, R8~R15 |
指令指针寄存器 | IP | EIP | RIP |
标志寄存器 | FLAGS | EFLAGS | RFLAGS |
段寄存器 | CS, DS, ES, SS | CS, DS, ES, SS, FS, GS | CS, DS, ES, SS, FS, GS |
1.2 Intel 8086
内部的通用寄存器为16位,既能处理16位数据,也能处理8位数据对外有16根数据线和20根地址线,可寻址内存空间为1MByte(2202^{20})
物理地址的形成采用段加偏移的方式
有4个数据寄存器,存放通用数据,此外还有其他功能:
- AX(Accumulator):存放乘除等指令的操作数
- BX(Base):存放存储单元的偏移地址
- CX(Count):存放计数值
- DX(Data):乘法运算产生的部分积,除法运算的部分被除数
其他4个通用寄存器:
- SP:堆栈指针寄存器,用来指向当前的栈
- BP:基址指针寄存器,指向系统栈最上面一个栈帧的底部
- SI:源变址寄存器,用于存放存储单元在段内的偏移量,串指令中的源操作数指针
- DI:目的变址寄存器,用于存放存储单元在段内的偏移量,串指令中的目的操作数指针
(SI通常指向源数组,DI通常指向目的数组,他们通常被用来成块地移动数据,比如移动数组或结构体,通常和DS和ES一起使用)
标志寄存器:
指令指针寄存器:
- 相当于PC,当CPU取出指令后会自动增加
- 转移指令、过程调用/返回指令等会改变IP的内容
段寄存器,与其他寄存器联合生成存储器地址:
- CS(Code Segment):代码段寄存器
- DS(Data Segment):数据段寄存器
- ES(Extra Segment):附加段寄存器
- SS(Stack Segment):堆栈段寄存器
物理地址=段基值*16+偏移量
1.3 Intel 80386
80x86系列中的第一款32位微处理器支持32位的算术和逻辑运算,提供32位的通用寄存器
改进了“保护模式“,段范围可达4GB
增加了“虚拟8086模式“,可同时模拟多个8086微处理器
2 x86指令简介
2.1 程序示例
2.2 指令分类
2.2.1 传送类指令
2.2.2 运算类指令
2.2.3 转移类指令
2.2.4 控制类指令
2.2.5 串操作指令
MOVSB指令:在存储器中将指定位置的一个字节单元传送到另一个指定的位置
REP前缀:当CX≠\neq0时,重复执行串操作指令
源串地址为DS:SI,目的串地址为ES:DI
串的长度在CX寄存器中
自动修改SI和DI,指向下一个串元素
若使用重复前缀,则CX←\leftarrowCX-1
3 MIPS体系结构
MIPS的设计者,RISC的先驱:约翰⋅\cdot亨尼西(John Hennessy)英文全称:Microprocessor without Interlocked Piped Stages
主要关注点:减少指令的类型,降低指令的复杂度
基本原则:A simpler CPU is a faster CPU
3.1 MIPS公司
年份 | 事件 |
---|---|
1984 | MIPS计算机系统公司成立 |
1988 | SGI公司在其计算机产品中采用MIPS处理器 |
1989 | MIPS第一次上市 |
1992 | SGI收购MIPS,更名为MIPS技术公司 |
1998 | MIPS再次上市 |
2012 | Imagination Technologies收购MIPS |
3.2 MIPS指令的主要特点
固定的指令长度(32bit,即1 word)简化了从存储器取指令
简单的寻址模式
简化了从存储器取操作数
指令数量少,指令功能简单(一条指令只完成一个操作)
简化指令的执行过程
只有Load和Store指令可以访问存储器
例如,不支持x86指令的这种操作:ADD AX, [3000H]
需要优秀的编译器支持
指令示例:
- add a, b, c
- lw $8, 12($19)
- add, $8, $18, $8
- sw $8, 40($19)
3.3 MIPS的通用寄存器
3.4 MIPS指令的基本格式
opcode:用于指定指令的类型,对于所有R型指令,该域的值均为0
rs:通常用于指定第一个源操作数所在的寄存器编号
rt:通常用于指定第二个源操作数所在的寄存器编号
rd:通常用于指定目的操作数(保存运算结果)的寄存器编号
shamt:用于指定移位指令进行移位操作的位数,对于非移位指令,该域设为0
与opcode域组合,精确地指定指令的类型
相关文章推荐
- 【计算机组成原理】指令系统体系结构
- 深入理解计算机系统(4.1)---X86的孪生兄弟,Y86指令体系结构
- 深入理解计算机系统(4.1)---X86的孪生兄弟,Y86指令体系结构
- 计算机组成与体系结构(一)
- 计算机体系结构与主要硬件组成
- 计算机系统要素:第五章 计算机体系结构
- 计算机系统结构,组成和实现
- 计算机体系结构与主要硬件组成(脑图)
- 计算机体系结构与主要硬件组成(脑图)
- 计算机体系结构与主要硬件组成
- 计算机体系结构2_系统编程手册
- 微机原理、计算机组成原理与计算机体系结构之间的关系
- 计算机组成与体系结构每章节后关键字(英语单词)
- 【计算机体系结构】汇编语言--cpu工作原理(指令的读取、执行)
- 计算机组成和计算机体系结构的概念区别
- 计算机体系结构与主要硬件组成
- 【计算机组成与系统结构】计算机的硬件系统和软件系统
- 【计算机组成与系统结构】电子计算机的诞生
- 计算机组成原理-指令系统
- 北大计算机组成原理笔记2.1——为什么要有指令系统