- 相關(guān)推薦
如何寫cpu報(bào)告
篇一:CPU報(bào)告
Computer Organization and Architecture
Course Design
CPU REPORT
04006628鄧睿 04006618 肖游龍 Time:201*.04.08
Purpose
The purpose of this project is to design a simple CPU (Central Processing Unit). This CPU has basic instruction set, and we will utilize its instruction set to generate a very simple program to verify its performance. For simplicity, we will only consider the relationship among the CPU, registers, memory and instruction set. That is to say we only need consider the following items: Read/Write Registers, Read/Write Memory and Execute the instructions.
At least four parts constitute a simple CPU: the control unit, the internal registers, the ALU and instruction set, which are the main aspects of our project design and will be studied.
Instruction Set
Single-address instruction format is used in our simple CPU design. The instruction word contains two sections: the operation code (opcode), which defines the function of instructions (addition, subtraction, logic operations, etc.); the address part, in most instructions, the address part contains the memory location of the datum to be operated, we called it direct addressing. In some instructions, the address part is the operand, which is called immediate addressing.
For simplicity, the size of memory is 25616 in the computer. The instruction word has 16 bits. The opcode part has 8 bits and address part has 8 bits. The instruction word format can be expressed in Figure 1
Figure 1 the instruction format
Internal Registers and Memory
MAR (Memory Address Register)
MAR contains the memory location of the word to be read from the memory or written into the memory. Here, READ operation is denoted as the CPU reads from memory, and WRITE operation is denoted as the CPU writes to memory. In our design, MAR has 8 bits to access one of 256 addresses of the memory.
MBR (Memory Buffer Register)
MBR contains the value to be stored in memory or the last value read from memory. MBR is connected to the address lines of the system bus. In our design, MBR has 16
bits.
PC (Program Counter)
PC keeps track of the instructions to be used in the program. In our design, PC has 8 bits.
IR (Instruction Register)
IR contains the opcode part of an instruction. In our design, IR has 8 bits.
BR (Buffer Register)
BR is used as an input of ALU, it holds other operand for ALU. In our design, BR has 16 bits.
ACC (Accumulator)
ACC holds one operand for ALU, and generally ACC holds the calculation result of ALU. In our design, ACC has 16 bits.
MR (Multiplier Register)
MR is used for implementing the MPY instruction, holding the multiplier at the beginning of the instruction. When the instruction is executed, it holds part of the product.
DR (Division Register)
DR is used for implementing the DIV instruction, you can define it according to your division algorithm.
LPM_RAM_DQ
LPM_RAM_DQ is a RAM with separate input and output ports, it works as memory, and its size is 25616. Although it’s not an internal register of CPU, we need it to simulate and test the performance of CPU.
All the registers are positive-edge-triggered.
All the reset signals for the registers are synchronized to the clock signal.
ALU
ALU (Arithmetic Logic Unit) is a calculation unit which accomplishes basic arithmetic and logic operations. In our design, some operations must be supported which are listed as follows
Microprogrammed Control Unit
We have learnt the knowledge of Microprogrammed control unit. Here, we only review some terms and basic structures.
In the Microprogrammed control, the microprogram consists of some microinstructions and the microprogram is stored in control memory that generates all the control signals required to execute the instruction set correctly. The microinstruction contains some micro-operations which are executed at the same time.
Figure 2 Control Unit Micro-architecture
Figure 2 shows the key elements of such an implementation. The set of microinstructions is stored in the control memory. The control address register contains the address of the next microinstructions to be read. When a microinstruction is read from the control memory, it is transferred to a control buffer register. The register connects to the control lines emanating from the control unit. Thus, reading a microinstruction from the control memory is the same as executing that microinstruction. The third element shown in the figure is a sequencing unit that loads the control address register and issues a read command.
CPU Design
Figure 3 CPU data path and control signals
Figure 3 indicates a simple CPU architecture and its use of a variety of internal data paths and control signals. Our CPU design should be based on this architecture.
Example: LOAD instruction
Figure 4 Control Flowchart of the LOAD instruction
篇二:cpu報(bào)告
目錄
1.引言
集成電路(Integrated Circuit,IC)是電子電路,但它又不同于一般意義上的電子電路,它把成千上萬的電子元件包括晶體管、電阻、電容甚至電感集成在微小的芯片上。正是這種奇妙的設(shè)計(jì)和制造方式使得集成電路為人類社會(huì)的進(jìn)步創(chuàng)造了空前的奇跡,它不僅給人類的生產(chǎn)建設(shè)和科學(xué)研究帶來了巨大便利,而且也徹底改變了人類文明和人們?nèi)粘I畹拿婺,可以毫不夸張地說,現(xiàn)今每個(gè)人生活的方方面面或多或少都和集成電路有關(guān)。
CPU 作為集成電路的高端產(chǎn)品,隨著半導(dǎo)體工藝水平的發(fā)展,遵守摩爾定律發(fā)展規(guī)律,CPU 性能每過18 個(gè)月就會(huì)翻一番。CPU 從最初發(fā)展至今已經(jīng)有幾十年的歷史了,這期間,按照其處理信息的字長,CPU 可以分為:四位微處理器、八位微處理器、十六位微處理器、三十二位微處理器以及六十四位微處理器。
CPU 是Central Processing Unit--中央處理器的縮寫,它是計(jì)算機(jī)中最重要的一個(gè)部分,由運(yùn)算器和控制器組成,其內(nèi)部結(jié)構(gòu)歸納起來可以分為控制單元、邏輯單元和存儲(chǔ)單元三大部分,這三個(gè)部分相互協(xié)調(diào),便可以進(jìn)行分析,判斷、運(yùn)算并控制計(jì)算機(jī)各部分協(xié)調(diào)工作。
計(jì)算機(jī)體系結(jié)構(gòu)中的一個(gè)根本性的變革是RISC 處理器的出現(xiàn)。RISC 即精簡指令集計(jì)算機(jī)(Reduced Instruction Set Computer)的縮寫。RISC-CPU 與一般的CPU 相比不僅只是簡化了指令系統(tǒng),而且是通過簡化指令系統(tǒng)使計(jì)算機(jī)的結(jié)構(gòu)更加簡單合理,從而提高了運(yùn)算速度。從實(shí)現(xiàn)的途徑看,RISC-CPU 與一般的CPU 的不同處在于:它的時(shí)序控制信號(hào)形成部件是用硬布線邏輯實(shí)現(xiàn)的而不是采用微程序控制的方式。所謂硬布線邏輯也就是用觸發(fā)器和邏輯門直接連線所構(gòu)成的狀態(tài)機(jī)和組合邏輯,故產(chǎn)生控制序列的速度比用微程序控制方式快得多,因?yàn)檫@樣做省去了讀取微指令的時(shí)間。
RISC 有一套優(yōu)化過的指令架構(gòu),它是根據(jù)著名的80/20 法則所訂立。早在上個(gè)世紀(jì)60 年代,計(jì)算機(jī)科學(xué)家們發(fā)現(xiàn),計(jì)算機(jī)中80%的任務(wù)只是動(dòng)用了大約20%的指令,而剩下20%的任務(wù)才有機(jī)會(huì)使用到其他80%的指令。如果對(duì)指令系統(tǒng)作相應(yīng)的優(yōu)化,就可以從根本上快速提高處理器的執(zhí)行效率。IBM 公司在
1975 年成功開發(fā)出第一款RISC 處理器,從此RISC 架構(gòu)開始走進(jìn)超級(jí)計(jì)算機(jī)中。由于指令高度簡約,RISC 處理器的晶體管規(guī)模普遍都很小而性能強(qiáng)大,深受超級(jí)計(jì)算機(jī)廠商所青睞。很快,許多廠商都開發(fā)出了自己的RISC 指令系統(tǒng),除了IBM 的Power 和PowerPC 外,還有DEC 的Alpha、SUN 的SPARC、HP 的PA-RISC、MIPS 技術(shù)公司的MIPS、ARM公司的ARM 等。它的應(yīng)用范圍也遠(yuǎn)比X86 來得廣泛,大到各種超級(jí)計(jì)算機(jī)、工作站、高階服務(wù)器,小到各類嵌入式設(shè)備、家用游戲機(jī)、消費(fèi)電子產(chǎn)品、工業(yè)控制計(jì)算機(jī),都可以看到RISC 的身影。
RISC 處理器可以說既簡單又復(fù)雜:簡單之處在于,相比于復(fù)雜指令集CISC(Complex Instruction Set Computer,復(fù)雜指令系統(tǒng)計(jì)算機(jī)),這種處理器的指令和變量非常少,正如它的英文字母縮寫RSIC 所代表的“精簡指令集”的含義一樣;說RSIC 復(fù)雜,是因?yàn)樗鼈內(nèi)菀讓?shí)現(xiàn)更高的并行性,而這個(gè)特點(diǎn)只有與設(shè)計(jì)得很好的編譯器結(jié)合起來,才能顯現(xiàn)出其優(yōu)越性。
RISC 與CISC(復(fù)雜指令,一般指普通的X86CPU)比較,有以下優(yōu)勢 :
。1)指令簡單而且少。
。2) 指令系統(tǒng)選用那些使用頻度高的簡單指令和一些實(shí)用的但不十分復(fù)雜的 指令,一般指令不超過100條。
(3)指令字長固定,尋址方式一般不超過四種,指令格式也不超過四種。
。4)所有指令(幾乎所有指令)均在單指令周期完成。
。5)指令系統(tǒng)中只允許存(STORE)和取(LOAD)指令訪問主存,其它指令均在 寄存器之間進(jìn)行。
。6)CPU中設(shè)置大量的寄存器,稱作寄存器堆。
。7)指令的運(yùn)行采用高效的流水線方式。
。8)以硬布線控制邏輯為主,不用或少用微碼。
。9)優(yōu)化的編譯程序,簡單有效地支持高級(jí)語言。
(10)超低功耗。
這里,本文就在學(xué)習(xí)FPGA的基礎(chǔ)上,運(yùn)用仿真設(shè)計(jì)軟件ISE來實(shí)現(xiàn)一個(gè)簡單的教學(xué)用的RISC_CPU。這里,并不關(guān)心CPU總體設(shè)計(jì)的合理性,這里涉及的每個(gè)RISC_CPU的模塊,都可以仿真,并綜合,也就是說,這是一個(gè)能真正通過具體電路結(jié)構(gòu)而實(shí)現(xiàn)的CPU。
希望可以通過這次設(shè)計(jì),達(dá)到下面幾個(gè)基本目的:
。1) 熟悉和了解RISC_CPU的基本原理和結(jié)構(gòu)。
。2) 了解Verilog HDL仿真和綜合工具。
。3) 展示Verilog 設(shè)計(jì)方法對(duì)軟/硬件聯(lián)合設(shè)計(jì)和驗(yàn)證的意義。
。4) 學(xué)習(xí)掌握一些常用的Verilog語法和驗(yàn)證方法。
2.RISC-CPU 的架構(gòu)設(shè)計(jì)
2.1 什么是CPU
CPU 即中央處理單元的英文縮寫,它是計(jì)算機(jī)的核心部件。計(jì)算機(jī)進(jìn)行信息處理可分為兩個(gè)步驟:
(1)將數(shù)據(jù)和程序(即指令序列)輸入到計(jì)算機(jī)的存儲(chǔ)器中。
。2)從第一條指令的地址起開始執(zhí)行該程序,得到所需結(jié)果,結(jié)束運(yùn)行。CPU的作用是協(xié)調(diào)并控制計(jì)算機(jī)的各個(gè)部件執(zhí)行程序的指令序列,使其有條不紊地進(jìn)行。因此它必須具有以下基本功能:
a)取指令:當(dāng)程序已在存儲(chǔ)器中時(shí),首先根據(jù)程序入口地址取出一條程序,為此要發(fā)出指令地址及控制信號(hào)。
b)分析指令:即指令譯碼。是對(duì)當(dāng)前取得的指令進(jìn)行分析,指出它要求什么操作,并產(chǎn)生相應(yīng)的操作控制命令。
c)執(zhí)行指令:根據(jù)分析指令時(shí)產(chǎn)生的“操作命令”形成相應(yīng)的操作控制信號(hào)序列,通過運(yùn)算器,存儲(chǔ)器及輸入/輸出設(shè)備的執(zhí)行,實(shí)現(xiàn)每條指令的功能,其中包括對(duì)運(yùn)算結(jié)果的處理以及下條指令地址的形成。
將其功能進(jìn)一步細(xì)化,可概括如下:
1) 能對(duì)指令進(jìn)行譯碼并執(zhí)行規(guī)定的動(dòng)作;
2) 可以進(jìn)行算術(shù)和邏輯運(yùn)算;
3) 能與存儲(chǔ)器,外設(shè)交換數(shù)據(jù);
4) 提供整個(gè)系統(tǒng)所需要的控制;
2.2 RISC-CPU 的架構(gòu)設(shè)計(jì)
盡管各種CPU的性能指標(biāo)和結(jié)構(gòu)細(xì)節(jié)各不相同,但它們所能完成的基本功能相同。一個(gè)基本的CPU 要包括三部分功能:數(shù)據(jù)的存儲(chǔ)、數(shù)據(jù)的運(yùn)算和控制部分。與之相對(duì)應(yīng)的硬件結(jié)構(gòu)也分為三部分:存儲(chǔ)器、數(shù)據(jù)通路和控制器。存儲(chǔ)器存放指令和數(shù)據(jù);數(shù)據(jù)通路包括ALU、程序計(jì)數(shù)器等,主要功能是對(duì)操作數(shù)進(jìn)行運(yùn)算,得到結(jié)果,并產(chǎn)生程序計(jì)數(shù)器的值,作為要執(zhí)行的下一條指令的地址;控制器內(nèi)有指令寄存器,它對(duì)指令進(jìn)行譯碼,產(chǎn)生相應(yīng)的控制信號(hào),完成對(duì)存儲(chǔ)器和數(shù)據(jù)通路部分的控制。存儲(chǔ)器、數(shù)據(jù)通路和控制器這三部分的基本關(guān)系如圖1 所示。
圖1 CPU基本結(jié)構(gòu)
。1)存儲(chǔ)器中存放了要執(zhí)行的指令和相應(yīng)數(shù)據(jù)。存儲(chǔ)器的讀寫信號(hào)由控制器給出。存儲(chǔ)器的地址來源有兩個(gè):程序計(jì)數(shù)器和指令寄存器。在取新指令時(shí),用程序計(jì)數(shù)器的值作為存儲(chǔ)器地址;在執(zhí)行指令時(shí),用指令中的地址部分作為存儲(chǔ)器地址。
。2)數(shù)據(jù)通路主要包括累加器、程序計(jì)數(shù)器和算術(shù)邏輯單元。
累加器用于保存參加運(yùn)算的數(shù)據(jù)以及運(yùn)算的中間結(jié)果。實(shí)際上,累加器也是寄存器,不過,它有特殊性,即許多指令執(zhí)行過程以累加器為中心。往往在運(yùn)算指令前,累加器中存放一個(gè)操作數(shù),指令執(zhí)行后,由累加器保存運(yùn)算結(jié)果。另外輸入輸出指令一般也通過累加器來完成。程序計(jì)數(shù)器指向下一條要執(zhí)行的指令。由于程序一般存放在內(nèi)存的一個(gè)連續(xù)區(qū)域,所以,順序執(zhí)行程序時(shí),每取一個(gè)指令字節(jié),程序計(jì)數(shù)器便加一。算術(shù)邏輯單元是專門用來處理各種運(yùn)算的數(shù)據(jù)信息
篇三:cpu報(bào)告
計(jì)算機(jī)設(shè)計(jì)與實(shí)踐
CPU設(shè)計(jì)報(bào)告
班級(jí):1203103 學(xué)號(hào):1120310312 姓名:孫艷鐸
一.實(shí)驗(yàn)?zāi)康?/p>
1、掌握Xilinx ISE集成開發(fā)環(huán)境和ModelSim仿真工具的使用方法。
2、掌握VHDL語言。
3、掌握FPGA編程方法及硬件調(diào)試手段。
4、深刻理解處理器結(jié)構(gòu)和計(jì)算機(jī)系統(tǒng)的整體工作原理。
二.實(shí)驗(yàn)環(huán)境
1、Xilinx ISE 9.1i集成開發(fā)環(huán)境
2、MOdelSim XE II v5.6a仿真工具
3、COP2000系統(tǒng)實(shí)驗(yàn)平臺(tái)
三.實(shí)驗(yàn)內(nèi)容及要求
根據(jù)計(jì)算機(jī)組成原理課程所學(xué)的知識(shí)和本課程所講的設(shè)計(jì)思想,設(shè)計(jì)并實(shí)現(xiàn)一個(gè)給定指令系統(tǒng)的處理器,包括VHDL語言的實(shí)現(xiàn)和FPGA芯片的編程實(shí)現(xiàn),為以后應(yīng)用和設(shè)計(jì)處理器系統(tǒng)打下基礎(chǔ)。
本實(shí)驗(yàn)的任務(wù)是設(shè)計(jì)一個(gè)簡單的RISC處理器,該處理器是在給定的指令集下構(gòu)建的,支持十條指令。假定主存可以在一個(gè)時(shí)鐘周期內(nèi)完成一次存取操作,而且可以和CPU同步工作。系統(tǒng)使用一個(gè)主存單元:指令讀取和數(shù)據(jù)訪問都使用同一組存儲(chǔ)器。
處理器的指令字長和指令寄存器IR長度自定,CPU包含8個(gè)8位通用寄存器R0~R7,和1個(gè)16位的程序計(jì)數(shù)器PC。取指令時(shí),可以直接從主存中提取16位的指令信息,而進(jìn)行數(shù)據(jù)訪問時(shí),與主存進(jìn)行8位的數(shù)據(jù)交換。處理器的地址總線寬度是16位,數(shù)據(jù)總線寬度也是16位,無論是取指還是數(shù)據(jù)訪問,都使用同一組數(shù)據(jù)總線,只是數(shù)據(jù)信息的寬度不同。
處理器所支持的指令包括LDA,STA,MOV,MVI,ADD,SUB,JZ,JMP,IN,OUT。其中僅有LDA和STA是訪存指令,所有的存儲(chǔ)器訪問都通過這兩條指令完成;ADD和SUB是運(yùn)算指令,MOV和MVI是傳數(shù)指令,他們都在處理器內(nèi)部完成;JZ是跳轉(zhuǎn)指令,根據(jù)寄存器的內(nèi)容進(jìn)行絕對(duì)跳轉(zhuǎn);JMP是無條件轉(zhuǎn)移指令;IN和OUT是輸入輸出指令,所有I/O端口與CPU之間的通信都由IN和OUT指令完成。
要求根據(jù)給定的指令系統(tǒng)設(shè)計(jì)處理器,包括指令格式設(shè)計(jì)、微操作的定義、節(jié)拍的劃分、VHDL語言的實(shí)現(xiàn)及FPGA編程實(shí)現(xiàn)。
四.設(shè)計(jì)過程
1.cpu整體結(jié)構(gòu)設(shè)計(jì)
指令格式
2. Cpu接口定義
3. 各模塊詳細(xì)設(shè)計(jì)
、 時(shí)鐘模塊
功能說明:時(shí)鐘模塊是一個(gè)4節(jié)拍的計(jì)數(shù)器,能產(chǎn)生穩(wěn)定的節(jié)拍。當(dāng)clk產(chǎn)生一個(gè)時(shí)序脈沖時(shí),T會(huì)循環(huán)的改變T(i)的值,從而達(dá)到產(chǎn)生節(jié)拍的效果。 接口信號(hào)定義:
② 取指模塊
功能說明:負(fù)責(zé)從存儲(chǔ)器中取出指令并送到alu模塊進(jìn)行執(zhí)行指令。第一節(jié)拍進(jìn)行取指令,pc給出地址,第二節(jié)拍pc自動(dòng)加1,第四節(jié)拍回寫pc給出新的pc值,前提是pcupdate有效。