CENTRAL PROCESSING
UNIT DESIGNS
ABSTRACT
The CPU is the key component of a digital computer. Its purpose is to decode instruction receied from memory and perform transfers, arithmetic, logic, and control operations with data stored in internal registers, memory, or I/O interface units. Externally, the CPU provides one or more buses for transferring instructions, data, and control information to and from components connected to it. In the generic computer at the beginning of chapter 1, the CPU is a part of the processor and is heavily shaded. CPUs, however, may also appear in computers. Small, relatively simple computers called microcontrollers are used in computers and in other digital systems to perform limited or specialized tasks. For example, a microcontroller is present in the keyboard and in the monitor in the generic computer; thus, these components are also shaded. In such microcontrollers, the CPU may be quite different from those discussed in this chapter. The word lengths may be short (say, four or eight bits),the number of registers small, and the instruction sets limited. Performance, relatively speaking, is poor, but adequate for the task. Most important, the cost of these microcontrollers is very low, making their use cost effective.
In the following pages, we consider two computer CPUs, one for a complex instruction set computer (CISC) and the other for a reduced instruction set computer (RISC). After a detailed examination of the designs, we compare the performance of the two CPUs and present a brief overview of some methods used to enhance that performance. Finally, we relate the design ideas discussed to general digital system design.
- Two CPU designs
As mentioned in previous chapters, atypical CPU is usually divided into two parts: the datapath and the control unit. The datapath consists of a function unit, registers, and internal buses that provide pathways for the transfer of information between the registers, the function unit, and other computer components. The datapath may or may not be pipelined. The control unit consists of a program counter, an instruction register, and control logic, and may be other hardwired or microprogrammed. If the datapath is pipelined, the control unit may be also be a pipeline. The computer of which the CPU is a part is either a CISC or a RISC, with its own instruction set architecture.
The purposes of this chapter is to present two CPU designs that illustrate combinations of architectural characteristics of the instruction set, the datapath, and the control unit. The designs will be top down, but with the reuse of prior component designs, illustrating the influence of the instruction set architecture on the datapath and control units, and the influence of the datapath on the unit. The material makes extensive use of tables and diagrams. Although we reuse and modify component designs from others , background information from these chapters is not repeated here.
References, however, are given to earlier sections of the book, where detailed information can be found.
The two CPUs presented are for a CISC using a non-pipelined datapath with a microprogrammed control unit and a RICS using a pipelined datapath with a hardwired pipelined control unit. These represent two quite distinct combinations of instruction set architecture, datapath, and control unit.
- The complex instruction set computer
The first design we present is for a complex instruction set computer with a non-pipelined datapath and microprogrammed control unit. We begin by describing the instruction set architecture, including the CPU register set, instruction formats, and addressing modes. The CISC nature of the instruction set architecture is demonstrated by its memory-to-memory access for data manipulation instructions, eight addressing modes, two instruction format lengths, and instructions that require significant sequences of operations for their execution.
We design a datapath for implementing the CISC architecture. The datapath is based on the one initially described in Section 7-9 and incorporated into a CPU in section 8-10. modifications are made to the register file, the function unit, and the buses to support the present instruction set architecture.
Once the datapath has been specified, a control unit is designed to complete the implementation of the instruction set architecture. The design of the control unit must involve a coordinated definition of both the hardware organization and the microprogram organization. In particular , dividing the microprogram into microroutines, while at the same time designing the sequencer with which they interact, is a key part of the design. Even the instruction fields and opcodes are tied to this coordinated effort. Following the definition of the hardware and microcode organizations, we detail essential parts of the microcode and the microroutines for representative operations.
Instruction set architecture
Figure 10-1 shows the CISC register set accessible to the programmer. All registers have 16 bits. The register file has eight registers, R0 though R7.R0 is a special register that always supplies the value zero when it is used as a source and discards the result when it is used as a destination.
In additional to the register file, there is a program counter PC and stack pointer SP. The presence of a stack pointer indicates that a memory stack is a part of the architecture . the final register is the processor status register PSR, which contains information only in its rightmost the five bits; the remainder of the register is assumed to contain zero. The PSR contains the four stored status bit values Z,N,C,and V in positions 3 through 0,
剩余内容已隐藏,支付完成后下载完整资料
中央处理器设计
摘要
CPU(中央处理单元)是数字计算机的重要组成部分, 其目的是对从内存中接收的指令进行译码,同时对存储于内部寄存器、存储器或输入输出接口单元的数据执行传输、算术运算、逻辑运算以及控制操作。在外部,CPU为转换指令数据和控制信息提供一个或多个总线并从组件连接到它。在通用计算机开始的第一章,CPU作为处理器的一部分被屏蔽了。但是CPU有可能出现在很多电脑之间,小,相对简单的所谓微控制器的计算机被用在电脑和其他数字化系统中,以执行限制或专门任务。例如,一个微控制器出现在普通电脑的键盘和检测器中,但是这些组件也被屏蔽。在这种微控制器中,与我们在这一章中所讨论的CPU可能十分不同。字长也许更短,(或者说4或8个字节),编制数量少,指令集有限。相对而言,性能差,但对完成任务来说足够了。最重要的是它的微控制器的成本很低,符合成本效益。
在接下去的几页里,我考虑的是两个计算机的CPU,一个是一个复杂指令集计算机( CISC),另一个是精简指令集计算机(RISC)。在详细的设计检查之后,我们比较了两个CPU的性能,并提交了用来提高性能的一些方法的简要概述。最后,我们讨论了关于一般数字系统设计的设计思路。
1.双CPU的设计
正如我们前一章提到的,一个典型的CPU通常被分成两部分:数据路径和控制单元。该数据路径由一个功能单元、登记册和内部总线组成,为在功能单元、存储器以及其他计算机组件之间提供转移信息的途径。这个数据途径有可能是流水线,也有可能不是。控制单元由一个程序计数器,一个指令寄存器,控制逻辑,和可能有其他硬或微程序组成。如果数据途径是流水线那么控制单元也有可能是流水线。电脑的CPU是一个部分,要么是复杂指令集计算机( CISC),要么是精简指令集计算机(RISC),有自己的指令集架构。
本章的目的是提交两个CPU的设计,用来说明指令集,数据路径,和控制单元的构造特征的合并。该设计将自上而下,但随着先前组件设计的重新使用,来说明指令集构架在数据路径和控制单元上的影响,数据路径上的单元的影响力。这些材料广泛使用了表格和图表。
虽然我们重用和改变部分来自其他国家的设计,其他章节的背景信息,此处不再重复。但是,参考资料可以在这本书的前几节里找到详细的信息。
这两个CPU是为了一个带有微程序控制单元的使用非流水线数据路径的复杂指令集计算机( CISC)和一个带有硬控制单元的使用流水线数据路径的精简指令集计算机(RISC)而提出的。这些是两个截然不同指令集架构,数据路径和控制单元的组合。
2.复杂指令集计算机
我们提交的第一个设计就是为一个带有非流水线数据路径和微程序的控制单元的
复杂指令集计算机而设计的。我们以介绍指令集构架为开端,它包括CPU的注册设置,教学形式,和处理方式。复杂指令集计算机( CISC)的指令集构架的性质是通过它的内存到内存进行数据存取操作指示8个处理模式,两长指令格式和指令集,来为它们的执行获得重要的运行序列。
我们为实施复杂指令集计算机( CISC)构架而设计一个数据路径。这个数据路径是基于最初描述的7-9节里,并纳入了8-10节里的CPU中。对登记档案,功能单元以及总线进行修改来支持现有的指令集构架。
一旦数据路径被明确,被设计的一个控制单元就去完成指令集构架的执行。控制单元的设计必须涉及硬件组织和微程序组织的一个协调的定义。特别是把微程序分成微线路,然而同时也设计了它们相互影响的音序器,这是设计的关键部分。即使是指令集领域和有联系的同代码的这种协调一致的努力。以下是硬件和微代码组织的定义,我们详细描述的是为运行代表的微型代码个微型线路的基本部分。
2.1指令集构架
图1显示了程序员获得的一套复杂指令集计算机( CISC)的寄存器。所有的注册有16位。这个注册文件有8个寄存器,从R0到R7。R0是一个寄存器,当它被作为目的来使用,作为来源和抛弃的结果来使用时她总是提供零价值。
除了注册文件,还有一个程序计数器pc和堆栈指针SP。堆栈指针的出现的情况表明内存堆栈是构架的一部分。最后登记的是处理器状态寄存器PSR,它包括最右边的五个位的信息;剩下的都被假定包含0.该处理器状态寄存器包含四个存储状态位值Z,N,C,和V,他们分别位于0-3之间。另外,一个存储中断使得EI处在4的位置上。
图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个操作或带有暗示的操作地址。
如果IR是(15:14)是01,指令有一个操作,且是数据传输或数据操作指令。因为有了一个操作,MODE领域就会为获得它而指定处理方式。单处理可能会涉及DST格式里的注册地址,所以DST领域也会被引出。S领域和SRC领域涉及到两个运算的同时出现,因此不被用于典型的单一的操作指示。但是,切换指令要求有一个切换数额来只是到底切换多少位。为获得最大的灵活性,这个切换数额是只针对像来源运算一样的的运算。因此,SAH领域和S领域是一个完整的16位运算,但它们的值只有0-15是有意义的。对带有单一运算的16位指令来说有足够的OPCODE位。
图2给出了指定通过MODE领域的处理方式。MODE的前两位指定了4中不同的处理类型:注册、立即、索引以及相关的程序计数器PC。MODE的第三位明确是否地址是通过这些被用作间接处理的模式而形成。一个例外就是直接处理,它是通过运用间接立即类型而获得的。否则,如果第三位等于0的,间接处理就不适用,而如果等于1 ,间接处理就适用。对指令的注册类型来说,MONE(2:1)=00和这个W字母是不需要的。因为运算或处理是来自注册。表格的第三栏提供了注册转换为针对一个操作指令的每个处理模式的声明。
如果IR(15:14) 等于10,然后有两个地址被用来正确的指令。通用指令的所有领域,其中包括S和SRC,被用于为所有指令的案件。其中一个地址,无论是来源或目的地,都使用处理模式。如果S等于0,那么来源使用被MODE指定的处理模式,且来源是注册的。如果S等于1那么目的地使用处理方式,且来源是注册的。注册转换为处理结果的描述在在表2第四次和第五次栏已给出了。此外,根据MODE领域的内容,第二个指令字母W是一个地址或立即操作,有可能存在,也有可能不存在。
带有IR(15:14)=11的指令是分流的。对切换来说除了S领域和SHA领域,它的格式和IR(15:14)=01一样的。对于这个类型的所有指令,目的地的地址(而不是操作)成为新的地址放置程序计数器PC里。因此,注册模式对分支指令是无效的。
在进行下一步之前,明确数据路径来支持指令集构架,我们将简要的说明构架的特征来界定是复杂指令集计算机( CISC)或是精简指令集计算机(RISC)。在第9章里给出的大部分操作都被包括在指令集里。一些不会显示的操作是多余的。同样的动作可以通过使用带有显示指令的适当的处理模式来实现。例如,LD, ST, IN, 和 OUT都可以通过使用在内存映射结构里的MOVE指令来实现。通过查看指令的格式,我们发现大部分指令可以从来自内存的操作上进行直接操作。有8个处理模式和两种不同长度的指令格式。此外,有些的指示执行复杂的行动可被视为很可能会超过一个时钟周期执行的步骤的行动。这些特征明确指出这是一个复杂指令集计算机( CISC)的架构。
2.2数据路径组织
不是从头开始,我们将重新使用非流水线数据路径被雇用在第8-10节里的微程序控制器,并进行修改。该数据路径显示在第8-10节,和新的数据路径,是给出的图10-6的基础上进行修改的。我们对待每个反复修改的数据路径,都是以注册文件为开端的。
在第8-10节里,注册R8是被作为临时的存储位置。在新的微程序的架构,有复杂的指示要跨越许多时钟周期和执行复杂的动作。因此,更多的临时存储需要通过微程序来使用。为了满足这个需要,我们扩展了注册文件从9登记到16.前8个登记,R0-R7,对计算机程序员来说是可见的。接下去的8个登记,R8-R15,是被用来作为微程序的临时存储,并从程序员那就被隐藏。图3提供了一个带有临时登记屏蔽的扩展注册文件的地图。如前所述,编程R0提供的是一个常数0.编程R1到R7可提供给程序员使用,编程R8到R15提供通用的临时存储被微程序使用,最后4个编程,R12到R15具有特殊的用途:保持简单的微型代码,标准的位置对存储的操作和被为大多数指令而执行的微代码所使用的地址来说是必不可少的。因此,R12是源地址SA,R13是源数据SD,R14是目的地地址DA,R15是目的地数据DD。
我们不能进入8个基于在指令集内可用3位登记地址的临时登记册。为了解决这个问题,首先,我们提供了来自微指令的4位注册地址,其次,选择来自这些地址和微指令集的指令之间的微指令位。此外,允许注册地址的灵活性通过DST成为来源和通过SRC成为目的地,他们是需要操作结果的允可来直接存放在内存中。为了完成这个目标,我们通过增加图4所示的逻辑来修改登记档案。该指令集架构使用两个地址,一个
图3
是来源操作,一个是像目的地一样的其他来源。该登记册档案使用B地址的来源,以及A和D处理的文件连接在一起,从而使其他来源和目的地使用同一个地址。虽然在微指令水平上的地址从3个减少到2个是没必要的,但对在微指令中的注册地址和指令格式中的匹配使用的登记领域的位的数量的减少还是必要的。
一个四倍的2比1的多路复用器附属在两个地址一个一个的输入到注册文件中,在来自微指令的地址和指令的地址之间进行选择。在微指令中有5位的空间是用来合并目的地和来源地址的DSA,再增加5位空间给B地址SB。每个领域的第一个位是在微指令(0)中的登记地址和指令(0)中的登记地址之间进行选择的。如果一个指令地址被选定了,不管它是被增加的4倍2比1多功能器确定的DST还是 SRC。这个多路复用器是被第二位的DST或是 SRC控制的,取决于它们之间的一个在任何一个微指令中的第一位一个1,从而确保正确的第二位是用来确定注册地址的。0被附加到DST 和 SRC的这个三位领域的左边致使它们能狗处理RO到R7.加上其中选择来源地址的第一位,是来自包括四个位的的微指令的地址以致所有的17个编程都能被达到。对注册文档最后的改变就是取代在带有在线上他们输入的开放的集成电路和带有在线上他们输出的不变的0值的文件中的存储元素R0。登记档案结果的一个特征显示在图10-4( b)中。
在8个被提供的切换指令的基础上,我们发现来自第8-10节的切换器我们需要进行修改。这个修改涉及到切换逻辑的最终的位。对于合乎逻辑的切换,0要向前面一样被插入。对于右边的算术转变,她写的位是即将来的位,对于左边算术的转变,0是即将来的位。旋转切换要求来自与被给定的切换器的终端相反的位。最后,随着执行要的旋转是作为切换器的两端的一个输入而提供执行触发器的输出。
这些输入是由两个4比1多路复用器提供的,它们是MUX R 和MUX L,添加到一个基本的16位切换器中,所有这些都显示在图5(a)。同时,来自输入操作的适当的这些输入是由两个4比1多路复用器提供的,它们是MUX R 和MUX L,添加到一个基本的16位切换器中,所有这些都显示在图5(a)。同时,来自输入操作的适当的结束位必须送交执行触发器。一个2比1多路复用器MUX SO选择的结束位来传递到执行触发器。新的切换器的特征是在第8-10部分上代替了原来的切换器,看在图5(b)。
对最初的数据路径的所有修改都显示在图5上。作为设计过程的一个部分,新的数据路径需要进行检查,以确保它具有执行指令集和处理方式的所有必要的能力。当然,一些已经做出的决定就不需要再进行讨论了。例如,没有专门的乘法和部分硬件,这些操作必须被微程序执行从而控制数据路径。
2.3微程序控制组织
微程序控制单元伴随着图4和图5的数据路径。这个控制由四个主要部分组成。其中之一是控制单元登记:指令登记IR,程序计数器PC和堆栈指针度SP。 在一些设计PC和SP是逻辑的,它们包含在注册文件中,因此是数据路径的一部分。这里,因为它们被注册文件分开了,被并最初的程序控制使用,我们已用控制来包含他们。在控制范围内的次序是由微型程序装置提供的,它包括两个登记:控制处理登记CAR和副程式分支机构登记SBR。微程序的程序计数器,控制处理登记CAR按顺序的到达下一个地址或者平行登录。随着平行登录,地址可以被设置成任何值和下一个地址,她来自包括在微
图4
指令里的下一地址领域的三个来源。
微线路有子线路,就像程序。为了区分它们,我们把微线路叫做微程序微子线路。SBR被用来存储关于CAR的下一代地址,同时一个微子线路是在微路线的要求下为了使微程序执行转向下一个微指令。控制单元的最后一部分是指令解码器,它由组合逻辑组成,它也是CAR的下一个地址的来源。
2.4微程序结构
我们对微程序进行了自上而下的设计。最高一层由一个像ASM的图组成,
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[497810],资料为PDF文档或Word文档,PDF文档可免费转换为Word
