【正文】
address can be set to any value and the nextaddress es from three source including the nextaddress field in the current microinstruction. Microroutines have subroutines, just as programs do. To distinguish them, we call subroutines for microprograms microsubroutines. The SBR is used to store the next address for the CAR at the time a microsubroutine in order to return microprogram execution to the next microinstruction in the calling microroutine. The final part of the control unit is the instruction decode, which consists of binational logic and is also a next address source for the CAR. Microprogram structure We approach the microprogram design top down. The top level consists of an ASMlike chart giving a flow of microroutines. These routines have labels similar to the stages in the pipelined CPU in section 811. in this case, however, rather than being performed in a single clock with binational logic, the routines require the use of the same hardware over multiple cycles. The flow between and, to same extent, within the routines is intimately tied to 19 the instructions and their decoding. Since the mapping ROM can be used for branching simultaneously with a format A data transfer or manipulation operation, it is convenient to control the flow between microroutines entirely by using the mapping ROM. This flow is shown in Figure 108。 9 圖 5 參考文獻(xiàn) [1]. DIETMEYER, D. L., Logic Design ofDigital Systems,3rd ed. Boston, MA: Allvn. Bacon, 1988. [2]. MANO, M. M. Computer Engineering: Hardware Design. Englewood Cliffs,NJ: Prentice Hall, 1988. [3]. HAMACHER, V C., VRANESIC, Z. G, AND ZAKY’ S. G. Computer Organization, 3rd ed. New York, Ny. McGraw— Hill, 1990. 10 [4]. HENNESSY工 L., AND PATTERSON, D. A. Computer Architecture: A Quantitative Approach,2nd ed. San Francisco, CA: Morgan Kaufmann, 1996. [5]. KANE. G.. AND HEINRICH, 1. MIPS RISc Architecture. Englewood Cliffs,NJ: Prentice Hall, 1992. [6]. SPARC INTERNATIONAL. INC. The SP4尺 C Architecture Manual: Version& Englewood Clifts,NJ: Prentice Hall. 1992. [7]. MANO. M. M. Computer System Architecture,3rd ed. Englewood Cliffs,NJ: Prentice Hall. 1993. 11 CENTROL PROCESSING UNIT DESIGNS ABSTRACT The CPU is the key ponent of a digital puter. 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 ponents connected to it. In the generic puter at the beginning of chapter 1, the CPU is a part of the processor and is heavily shaded. CPUs, however, may also appear in puters. Small, relatively simple puters called microcontrollers are used in puters 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 puter。 在討論了復(fù)雜指令集計(jì)算機(jī)( CISC)或是精簡指令集計(jì)算機(jī)( RISC)的性能之后,我們談到了一些先進(jìn)的概念,包括并行執(zhí)行單位,帶有流水線的微程序控制器組合,超流水線處理器,超標(biāo)量處理器,以及高性能的預(yù)測和投機(jī)技術(shù)。流水線的 CPU 都有數(shù)據(jù)和控制風(fēng)險(xiǎn)問題能力。關(guān)于控制的微程序被模塊化以致在執(zhí)行關(guān)于指令的微程序中共享許多微型子路線。控制微程序位于光盤 ROM中,以及一個(gè)多路復(fù)用器的組合和一個(gè)光盤 ROM提供快速的指令解碼。 在這篇文章中,我們檢查了兩個(gè) CPU 的設(shè)計(jì):復(fù)雜指令集計(jì)算機(jī)( CISC)或是精簡指 令集計(jì)算機(jī)( RISC)。這些操作的存在明顯領(lǐng)先于直接引導(dǎo)的路徑,這些路徑從零操作執(zhí)行,程序分支和兩個(gè)操作執(zhí)行到中斷處理。這個(gè)是被反饋微線路完成的。反饋路線也是使用這個(gè)標(biāo)準(zhǔn)登記位置來發(fā)現(xiàn)結(jié)果和它的地址。一個(gè)操作地址和參數(shù)值被放在登記的 R12 到 R15 (SA, SD, DA, and DD)中的為它們保留的位置。 在我五個(gè)決策中的四個(gè),一個(gè)獲取操作路線是要進(jìn)行的。這些途徑維護(hù)來自在指令獲取中的操作碼( OPCODE)的三個(gè)位的解碼,以獲得轉(zhuǎn)化數(shù)額參數(shù)。在 最后的情況下,圖中的分支直接去執(zhí)行。由于 OPCODE 的位是被用來指指令正在被解碼的運(yùn)算,在三種情況下,這個(gè)分支的目的是微線路去獲取運(yùn)算。一個(gè)五條分支的結(jié)果。當(dāng) MM等于 0 時(shí),只有前三個(gè) OPCODE 的位被使用,其余的位都設(shè)置為 0。獲取的指令被放置在 IR 中。 每個(gè)指令的執(zhí)行都以指令獲取微指令為開端的。由于測繪光盤可用來分流的同時(shí)帶有一種格式一個(gè)數(shù)據(jù)傳輸和操作動作,它可以通過使用測繪光盤方便的控制整個(gè)微線路之間的流動。但是,在這種情況下,不是表現(xiàn)單一的帶有組合邏輯的計(jì)數(shù)器,路線要求在多個(gè)周期上使用相同的硬件。最高一層 由一個(gè)像 ASM 的圖組成,給出了一個(gè)流動的微線路??刂茊卧淖詈笠徊糠质侵噶罱獯a器,它由組合邏輯組成,它也是 CAR的下一個(gè)地址的來源。為了區(qū)分它們,我們把微線路叫做微程序微子線路。隨著平行登錄,地址可以被設(shè)置成任何值和下一個(gè)地址,她來自包括在微 7 圖 4 指令里的下一地址領(lǐng)域的三個(gè)來源。在控制范圍內(nèi)的次序是由微型程序裝置提供的,它包括兩個(gè)登記:控制處理登記 CAR 和副程式分支機(jī)構(gòu)登記 SBR。 在一些設(shè)計(jì)PC 和 SP 是邏輯的,它們包含在注冊文件中,因此是數(shù)據(jù)路徑的一部分。這個(gè)控制由四個(gè)主要部分組成。例如,沒有專門的乘法和部分硬件,這些操作必須被微程序執(zhí)行從而控制數(shù)據(jù)路徑。作為設(shè)計(jì)過程的一個(gè)部分,新的數(shù)據(jù)路徑需要進(jìn)行檢查,以確保它具有執(zhí)行指令集和處理方式的所有必要的能力。新的切換器的特征是在第 810部分上代替了原來的切換器,看在圖 5(b)。同時(shí),來自輸入操作的適當(dāng)?shù)慕Y(jié)束位必須送交執(zhí)行觸發(fā)器。 這些輸入是由兩個(gè) 4比 1多路復(fù)用器提供的,它們是 MUX R 和 MUX L,添加到一個(gè)基本的 16位切換器中,所有這些都顯示在圖 5(a)。旋轉(zhuǎn)切換要求來自與被給定的切換器的終端相反的位。對于合乎邏輯的切換, 0 要向前面一樣被插入。 在 8 個(gè)被提供的切換指令的基礎(chǔ)上,我們發(fā)現(xiàn)來自第 810 節(jié)的切換器我們需要進(jìn)行修改。對注冊文檔最后的改變就是取代在帶有在線上他們輸入的開放的集成電路和帶有在線上他們輸出的不變的 0值的文件中的存儲元素 R0。這個(gè)多路復(fù)用器是被第二位的 DST或是 SRC 控制的,取決于它們之間的一個(gè)在任何一個(gè)微指令中的第一位一個(gè) 1,從而確保正確的第二位是用來確定注冊地址的。每個(gè)領(lǐng)域的第一個(gè)位是在微指令( 0)中的登記地址和指令( 0)中的登記地址之間進(jìn)行選擇的。 一個(gè)四倍的 2比 1的多路復(fù)用器附屬在兩個(gè)地址一個(gè)一個(gè)的輸入到注冊文件中,在 6 來自微指令的地址和指令的地址之間進(jìn)行選擇。該登記冊檔案使用 B 地址的來源,以及A和 D處理的文件連接在一起,從而 使其他來源和目的地使用同一個(gè)地址。為了完成這個(gè)目標(biāo),我們通過增加圖 4所示的邏輯來修改登記檔案。為了解決這個(gè)問題,首先,我們提供了來自微指令的 4 位注冊地址,其次,選擇來自這些地址和微指令集的指令之間的微指令位。因此, R12 是源地址 SA, R13 是源數(shù)據(jù) SD,R14 是目的地地址 DA, R15 是目的地?cái)?shù)據(jù) DD。圖 3提供了一個(gè)帶有臨時(shí)登記屏蔽的擴(kuò)展注冊文件的地圖。為了滿足這個(gè)需要,我們擴(kuò)展了注冊文件從 9 登記到 8個(gè)登記, R0R7,對計(jì)算 機(jī)程序員來說是可見的。在新的微程序的架構(gòu),有復(fù)雜的指示要跨越許多時(shí)鐘周期和執(zhí)行復(fù)雜的動作。我們對待每個(gè)反復(fù)修改的數(shù)據(jù)路徑,都是以注冊文件為開端的。 數(shù)據(jù)路徑組織 5 不是從頭開始,我們將重新使用非流水線數(shù)據(jù)路徑被雇用在第 810 節(jié)里的微程序控制器,并進(jìn)行修改。此外,有些的指示執(zhí)行復(fù)雜的行動可被視為很可能會超過一個(gè)時(shí)鐘周期執(zhí)行的步驟的行動。通過查看指令的格式,我們發(fā)現(xiàn)大部分指令可以從來自內(nèi)存的操作上進(jìn)行直接操作。同樣的動作可以通過使用帶有顯示指令的適當(dāng)?shù)奶幚砟J絹韺?shí)現(xiàn)。在第 9章里給出的大部分操作都被包括在指令集里。因此,注冊模式對分支指令是無效的。對切換來說除了 S 領(lǐng)域和 SHA 領(lǐng)域,它的格式和 IR(15:14)=01 一樣的。此外,根據(jù) MODE 領(lǐng)域的內(nèi)容,第二個(gè)指令字母 W是一個(gè)地址或立即操作,有可能存在,也有可能不存在。如果 S等于 1 那么目的地使用處理方式,且來源是注冊的。其中一個(gè)地址,無論是來源或目的地,都使用處理模式。 如果 IR(15:14) 等于 10,然后有兩個(gè)地址被用來正確的指令。因?yàn)檫\(yùn)算或處理是來自注冊。否則,如果第三位等于 0 的,間接處理就不 適用,而如果等于 1 ,間接處理就適用。 MODE 的第三位明確是否地址是通過這些被用作間接處理的模式而形成。 圖 2給出了指定通過 MODE 領(lǐng)域的處理方式。因此, SAH 領(lǐng)域和 S領(lǐng)域是一個(gè)完整的 16 位運(yùn)算,但它們的值只有 015 是有意義的。但是,切換指令要求有一個(gè)切換數(shù) 額來只是到底切換多少位。單處理可能會涉及 DST 格式里的注冊地址,所以 DST領(lǐng)域也會被引出。 如果 IR 是( 15: 14)是 01,指令有一個(gè)操作,且是數(shù)據(jù)傳輸或數(shù)據(jù)操作指令。正如圖2(b)顯示的,只有 OPCODE 領(lǐng)域的是需要的。 圖 2 OPCODE 的前兩位, IR( 1