1、原文出处 : Madden S,Frankin M,Hellerstein J,et al.TinyDB:an acquisitional query processing system for sensor networks. 中央处理器设计 摘要 CPU(中央处理单元 )是数字计算机的重要组成部分 , 其目的是对从内存中接收的指令进行译码,同时对存储于内部寄存器、存储器或输入输出接口单元的数据执行传输、算术运算、逻辑运算以及控制操作。在外部, CPU 为转换指令数据和控制信息提供一个或多个总线并从组件连接到 它。在通用计算机开始的第一章, CPU 作为处理器的一部分被屏蔽了。但是 CPU
2、有可能出现在很多电脑之间,小,相对简单的所谓微控制器的计算机被用在电脑和其他数字化系统中,以执行限制或专门任务。例如,一个微控制器出现在普通电脑的键盘和检测器中,但是这些组件也被屏蔽。在这种微控制器中,与我们在这一章中所讨论的 CPU 可能十分不同。字长也许更短,(或者说 4 或 8 个字节),编制数量少,指令集有限。相对而言,性能差,但对完成任务来说足够了。最重要的是它的微控制器的成本很低,符合成本效益。 在接下去的几页里,我考虑的是两个计算机 的 CPU,一个是一个复杂指令集计算机( CISC),另一个是精简指令集计算机( RISC)。在详细的设计检查之后,我们比较了两个 CPU 的性能,
3、并提交了用来提高性能的一些方法的简要概述。最后,我们讨论了关于一般数字系统设计的设计思路。 1双 CPU 的设计 正如我们前一章提到的,一个典型的 CPU 通常被分成两部分:数据路径和控制单元。该数据路径由一个功能单元、登记册和内部总线组成,为在功能单元、存储器以及其他计算机组件之间提供转移信息的途径。这个数据途径有可能是流水线,也有可能不是。控制单元由一个程序计数器,一 个指令寄存器,控制逻辑,和可能有其他硬或微程序组成。如果数据途径是流水线那么控制单元也有可能是流水线。电脑的 CPU 是一个部分,要么是复杂指令集计算机( CISC),要么是精简指令集计算机( RISC),有自己的指令 1
4、集架构。 本章的目的是提交两个 CPU 的设计,用来说明指令集,数据路径,和控制单元的构造特征的合并。该设计将自上而下,但随着先前组件设计的重新使用,来说明指令集构架在数据路径和控制单元上的影响,数据路径上的单元的影响力。这些材料广泛使用了表格和图表。 虽然我们重用和改变部分来自其他国家的设计, 其他章节的背景信息,此处不再重复。但是,参考资料可以在这本书的前几节里找到详细的信息。 这两个 CPU是为了一个带有微程序控制单元的使用非流水线数据路径的复杂指令集计算机( CISC)和一个带有硬控制单元的使用流水线数据路径的精简指令集计算机( RISC)而提出的。这些是两个截然不同指令集架构,数据路
5、径和控制单元的组合。 2复杂指令集计算机 我们提交的第一个设计就是为一个带有非流水线数据路径和微程序的控制单元的 复杂指令集计算机而设计的。我们以介绍指令集构架为开端,它包括 CPU 的注册设置,教学形式,和处理 方式。复杂指令集计算机( CISC)的指令集构架的性质是通过它的内存到内存进行数据存取操作指示 8 个处理模式,两长指令格式和指令集,来为它们的执行获得重要的运行序列。 我们为实施复杂指令集计算机( CISC)构架而设计一个数据路径。这个数据路径是基于最初描述的 7-9 节里,并纳入了 8-10 节里的 CPU 中。对登记档案,功能单元以及总线进行修改来支持现有的指令集构架。 一旦数
6、据路径被明确,被设计的一个控制单元就去完成指令集构架的执行。控制单元的设计必须涉及硬件组织和微程序组织的一个协调的定义。特别是把微程序分成微线路,然而同时也设计了它们相互影响的音序器,这是设计的关键部分。即使是指令集领域和有联系的同代码的这种协调一致的努力。以下是硬件和微代码组织的定义,我们详细描述的是为运行代表的微型代码个微型线路的基本部分。 2.1 指令集构架 图 1 显示了程序员获得的一套复杂指令集计算机( CISC)的寄存器。所有的注册有 16 位。这个注册文件有 8 个寄存器,从 R0 到 R7。 R0 是一个寄存器,当它被作为目的来使用,作为来源和抛弃的结果来使用时她总是提供零价值
7、。 除了注册文件,还有一个程序计数器 pc 和堆栈指针 SP。堆栈指针的出现的情况表 明内存堆栈是构架的一部分。最后登记的是处理器状态寄存器 PSR,它包括最右边的五个位的信息;剩下的都被假定包含 0.该处理器状态寄存器包含四个存储状态位值 Z,N,C,和V,他们分别位于 0-3 之间。另外,一个存储中断使得 EI 处在 4 的位置上。 2 图 1 包含了 42 个通过指令集进行的操作。每个操作都一个记忆和精心挑选的同位代码。根据一些明确的操作和是否分开操作,将这些操作分成 4 组。另外,这些状态位受到被列开的操作的影响。 图 1 图 2 给出了 CPU 的指令格式 。通用指令格式的有五个领域。首先, OPCODE 是指定的操作。接下去的两个是 MODE 和 S,是被用来确定运算的地址。最后两个领域是 SRC 和DST,分别是 3 位的来源登记和目的地登记领域。此外,还有一个可选的第二个字母 W,随着一些作为一个操作或一个地址的指示而出现的,而不是随着其他出现的。 图 2 OPCODE 的前两位, IR( 15: 14),确定了一些明确的操作和格式领域的如何使用。当这些位是 00 时 ,要么是没有被要求的操作要么是被 OPCODE 隐含的操作的位置。正如图2(b)显示的,只有 OPCODE 领域的是需要 的。右边的 4 个 OPCODE 位可以指定多达 16 个