计算机系统(四)处理器体系结构

现代微处理器可以称得上是人类创造的最复杂的系统之一。一块手指甲大小的硅片上,可以容纳一个完整的高性能处理器、大的高速缓存,以及用来连接到外部设备的逻辑电路。

到目前为止,我们看到的计算机系统只限于机器语言程序级。我们知道处理器必须执行一系列指令,每条指令执行某个简单操作,例如两个数相加。指令被编码为由一个或多个字节序列组成的二进制格式。一个处理器支持的指令和指令的字节级编码称为它的指令集体系结构(Instruction-Set Architecture,ISA)。一个程序编译成在一种机器上运行,就不能在另一种机器上运行。另外,同一家族里也有很多不同型号的处理器。虽然每个厂商制造的处理器性能和复杂性不断提高,但是不同的型号在ISA级别上都保持着兼容。一些常见的处理器家族中的处理器分别由多个厂商提供。因此,ISA在编译器编写者和处理器设计人员之间提供了一个概念抽象层,编译器编写者只需要知道允许哪些指令,以及他们是如何编码的:而处理器设计者必须建造出执行这些指令的处理器。

本章将简要介绍处理器硬件的设计。我们将研究一个硬件系统执行某种ISA指令的方式。这会使你更好地理解计算机是如何工作的,以及计算机制造商们面临的技术挑战。一个很重要的概念是,现代处理器的实际工作方式可能跟ISA隐含的计算模型大相径庭。ISA模型看上去应该是顺序指令执行,也就是先取出一条指令,等到它执行完毕,再开始下一条。然而,与一个时刻只执行一条指令相比,通过同时处理多条指令的不同部分,处理器可以获得较高的性能。为了保证处理器能达到同顺序执行相同的结果,人们采用了一些特殊的机制。在计算机科学中,用巧妙的方法在提高性能的同时,又保持一个更简单、更抽象模型的功能,这种思想是众所周知的。在Web浏览器或平衡二叉树和嘻哈表这样的信息检索数据结构中使用缓存。

一、Y86指令集体系结构

定义一个指令集体系结构包括定义各种状态元素、指令集和他们的编码、一组一组编程规范和异常事件处理。

1.1.程序员可见的状态

Y86程序中的每条指令都会读取或修改处理器状态的某些部分。这称为程序员可见状态,这里的“程序员”既可以是用汇编代码写程序的人,也可以是产生机器级代码的编译器。在处理器实现中,只要我们保证机器级程序能够访问程序员可见状态,就不需要完全按照ISA隐含的方式来表示和组织这个处理器状态。Y86的处理器状态类似于IA32。有8个程序寄存器。处理器的每个程序寄存器存储一个字。

存储器,从概念上来说就是一个很大的字节数组,保存着程序和数据。Y86程序用虚拟地址来引用存储器位置。硬件和操作系统软件联合起来将虚拟地址翻译成实际或物理地址,指明数据实际保存在存储器中哪个地方。

程序状态的最后一个部分是状态码Stat,它表明程序执行的总体状态。它会指示是正常运行,还是出现了某种异常。

1.2.Y86指令

Y86指令集基本上是IA32指令集的一个子集。它只包括四字节整数操作,寻址方式比较少,操作也较少。因为我们只有四字节数据,所以称之为“字”(word)不会有任何歧义。

IA32的movl指令分成了4个不同的指令:irmovl、rrmovl、mrmovl和rmmovl,分别显式地指明源和目的的格式。源可以是立即数(i)、寄存器(r)或存储器(m)。指令名字的第一个字母就表明了源的类型。目的可以是寄存器(r)或存储器(m)。指令名字的第二个字母指明了目的类型。在决定如何实现数据传送时,显式地指明数据传送的这4种类型是很有帮助的。

两个存储器传送指令中的存储器引用方式是简单的基址和偏移量形式。在地址计算中,我们不支持第二变址寄存器和任何寄存器值得伸缩(scaling)。

同IA32一样,不允许从一个存储器地址直接传送到另一个存储器地址。另外,也不允许将立即数传送到存储器。

1.3.指令编码

每条指令需要1~6个字节不等,这取决于需要哪些字段。每条指令得第一个字节表明指令得类型。这个字节分为两个部分,每个部分4位:高4位是代码(code)部分,低4位是功能(function)部分。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值