【正文】
同時(shí),實(shí)現(xiàn)過程中需要正確的人員的安排以及 專門的計(jì)劃和協(xié)調(diào)措施, 而對于很多開創(chuàng)性工作本身, 起 先 可能 并沒有把所要實(shí)現(xiàn)的整體了解透徹, 因此 ,很難制定出優(yōu)良 的頂層框架。 小結(jié) 本章結(jié)合本設(shè)計(jì) CPU 的具體實(shí)現(xiàn),介紹了 MIPS 的寄存器堆,指令集及三種 CPU 的基礎(chǔ)結(jié)構(gòu),最后討論了更高性能的 CPU結(jié)構(gòu)。 為了充分發(fā)揮流水線的效率,龍芯 2E實(shí)現(xiàn)了先進(jìn)的轉(zhuǎn)移猜測、寄存器重命名、動態(tài)調(diào)度等亂序執(zhí)行技術(shù)以及非阻塞的 Cache 訪問和 load Speculation 等動態(tài)存儲訪問機(jī)制 。 [9] 北京理工大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 23 ( 5)亂序執(zhí)行與寄存器重命名技術(shù),在硬件上檢測在數(shù)據(jù)相關(guān)性約束允許的情況下,將與近期指令執(zhí)行順序無關(guān)的后邊的指令發(fā)射到流水線上提前執(zhí)行。甚至還沒有計(jì)算完畢。 [1]也可作為 本設(shè)計(jì)的 CPU 的一個頂層結(jié)構(gòu)的簡化說明,實(shí)際情況比這要復(fù)雜一些。當(dāng)流水線處于飽和狀態(tài)時(shí),在 CPU 中,將同時(shí)有流水線級數(shù)的指令在同時(shí)執(zhí)行 。這樣,就可以在指令譯碼的同時(shí)從寄存器堆中讀出指令的源操作數(shù),從而簡化了指令周期。 由于多個狀態(tài)之間不會互相干擾,因此在不同的級間可以并行存在多個指令,也可以說 這些指令分處于不同的運(yùn)行周期,使用不同的物理器件。 在畢業(yè)設(shè)計(jì)過程之中,雖然也進(jìn)行了多周期 CPU 的設(shè)計(jì),但并不屬于本設(shè)計(jì)的主要環(huán)節(jié),因此只在本節(jié)略述。例如把單周期 CPU 中的時(shí)鐘周期分成 5 個小周期: lw 用 5 個, add 用 4 個, beq 用 3 個, j 用 2 個。對于單周期而言, CPU 的時(shí)鐘頻率確定之后,每個時(shí)鐘周期的時(shí)間長度就固定了。在結(jié)構(gòu)上,采用了控制單元對所有控制信號作統(tǒng)一的集中控制。 ( 6) MEMTOREG:為 1 時(shí),選擇存儲器數(shù)據(jù);為 0 時(shí),選擇 ALU 輸出的數(shù)據(jù)。 圖 21 單周期 CPU 時(shí)序示意圖 圖 22 是一個 單周期 CPU 的 頂層結(jié)構(gòu)實(shí)現(xiàn) 。 CPU的幾種典型結(jié)構(gòu) 單周期 CPU 單周期 CPU 的特點(diǎn)是每條指令的執(zhí)行 只 需要一個時(shí)鐘周期,一條指令執(zhí)行完再執(zhí)行下一條指令。同時(shí),軟件上提供了 8 條重定義指令,此處的重定義指令指為了使用方便重新命名的或恒定某個參數(shù)后重新命名的指令。 ( 3)基址偏移量尋址 ——— 操作 數(shù)在存儲器中,存儲器地址由一個寄存器的內(nèi)容與指令中的常數(shù)相加得到。擴(kuò)展的方法有兩種:符號擴(kuò)展和 0 擴(kuò)展。 在本 CPU 所支持的 MIPS 的指令 中 格式有 3 種, 分別為 R 型、 I 型和 J 型。包括 10條寄存器運(yùn)算指令, 8 條移位指令, 6 條乘除法專用指令, 7 條立即數(shù)計(jì)算指 令, 8 條存儲器操作指令, 6 條條件跳轉(zhuǎn)指令, 4 條無條件跳轉(zhuǎn)指令, 2 條其他指令和 5 條偽指令。所有的計(jì) 算類型的指令均從寄存器堆中讀取數(shù)據(jù)并把結(jié)果寫入寄存器堆中。 我 國 的 龍芯 2E 和前代產(chǎn)品采用的都是 64 位 MIPS 指令架構(gòu),索尼 PS2 游戲機(jī)所用的“ Emotion Engine”也采用 MIPS 指令,這些 MIPS 處理器的性能都非常強(qiáng)勁,而龍芯 2E 也屬于這個陣營,在軟件方面與上述產(chǎn)品完全兼容。這些系列產(chǎn)品為很多計(jì)算機(jī)公司采用構(gòu) 成各種工作站和計(jì)算機(jī)系統(tǒng)。當(dāng)然,它也同樣面臨著相鄰指令間結(jié)構(gòu)相關(guān)性的問題,不可避免地影響執(zhí)行的流暢性。 (3)較少的指令數(shù)和尋址方式,從而有利于控制單元的簡化和執(zhí)行速度的加快指令格式盡量簡單規(guī)范,使指令的譯碼邏輯電路簡化,從而也使控制部件速度加快。 4.根據(jù) 20%80%定律,一個指令系統(tǒng)中大約 20%的指令是程序中經(jīng)常反復(fù)使用的,其使用量 大約占到整個程序的 80%,而該指令系統(tǒng)中大約 80%的指令時(shí)很少用到的,其使用量只占整個程序的 20%。 3. 大量采用微碼技術(shù) 為了滿足指令兼容和不斷擴(kuò)充的復(fù)雜指令要求,單單依靠增大結(jié)構(gòu)復(fù)雜度很難解決問題,因此設(shè)計(jì)了一個相對固定的微處理核,要擴(kuò)展指令只需擴(kuò)充微程序存儲 器即可。在計(jì)算機(jī)發(fā)展的初期, 由于 VLSI 工藝水 平較低,存儲介質(zhì) 較差等原因,這類計(jì)算機(jī)處理器在設(shè)計(jì)理念上 具有如下特點(diǎn):[2] 1. 注重代碼長度和存儲效率,大量使用存儲器 存儲器操作指令 由于當(dāng)時(shí)的存儲器容量小,因此,希望設(shè)計(jì)更加緊湊的代碼,采用存儲器操作的指令可以有效的減少指令長度。如果把指令地址作為 狀態(tài) 變量 ,那么它是 一個可控可測的 大型的數(shù)字電路狀態(tài)機(jī)。 最后 的仿真驗(yàn)證表明了此方案可以在 Altera 系列 FPGA 芯片中穩(wěn)定正確的運(yùn)行。在片上系統(tǒng)設(shè)計(jì)方法日趨流行的趨勢下,掌握一套復(fù)雜的 CPU 設(shè)計(jì)技術(shù)十分必要。 本 設(shè)計(jì)實(shí)現(xiàn)了 一個具有標(biāo)準(zhǔn)的 32位 5 級流水線架構(gòu)的 MIPS 指令兼容 CPU系統(tǒng)。 關(guān)鍵詞 : RISC MIPS 32位處理器 流水線 北京理工大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) II Abstract RISC architecture based MIPS instruction patible processor is one kind of general high performance processors. Considering its simplicity of architecture and high efficiency of puting, it is widely used in many fields such as high capability ofputing, embedded solutions, and multimedia applications. The CPU IP core design based on FPGA has many advantages such as easy to debug and convenient to integrate. It is necessary to maintain a plex CPU designing technique with the fashionable trend of SOC design methods. This paper discusses a MIPS instruction patible processor under the 32bit 5levelpipeline architecture. It implemented more than fifty frequently used instructions, solved most of data relationships, architecture relationships and the problems of pipeline adopt of multiply/division, and implemented an interrupt system that can be shielded. In addition, an assembly language development environment is implemented which is appropriate to this design, so it can achieve an assemblelevel development. Because the design can be deployed to an FPGA chip, it has a considerable practicability. The architecture of this design is concise and easy to extend, so it is very suitable to use as an SCM or MCU in embedded devices in the form of IP core. Moreover, the course of the design is a typical example of minimumsystem dilatation. This paper expatiate how to build a practically matureproduct from a design rudiment. Of the article arrangement, this paper introduced the origin of RISC thought, the characteristic of MIPS processor and its instruction sets, the three kinds of basic architecture of MIPS, followed by a reason of some theory problems in CPU design and the solve in the clue of minimumsystem dilatation, and then it shows the toplevel framework and module interfaces. The final simulation and verification shows that the design works correctly and stably on Altera FPGA series. Keywords: RISC MIPS 32bit CPU Pipeline 北京理工大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) III 目 錄 摘 要 ............................................................................................................................. I 第 1 章 CPU 體系結(jié)構(gòu)概述 ......................................................................................... 1 前言 ..................................................................................................................... 1 CISC 處理器與傳統(tǒng)處理器設(shè)計(jì)思想 ............................................................... 1 CISC 處理器的瓶頸 ........................................................................................... 2 RISC 微處理器 .................................................................................................. 3 MIPS 處理器 ..................................................................................................... 4 本設(shè)計(jì)的處理器 ................................................................................................. 5 小結(jié) ..................................................................................................................... 5 第 2 章 MIPS 處理器結(jié)構(gòu)與技術(shù) ............................................................................... 6 MIPS 指令集簡介 ............................................................................................ 6 CPU的幾種典型結(jié)構(gòu) .................................................................................... 14 單周期 CPU .......................................................................................... 14 多周期 CPU .......................................................................................... 16 流水線 CPU .......................................................................................... 18 更高