




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 . .PAGE53 / NUMPAGES59微處理器訪存部件設計與結(jié)構(gòu)功能驗證 陳俊瑩 西安理工大學分類號 UDC密 級學 號0809090560碩士學位論文微處理器訪存部件設計與結(jié)構(gòu)功能驗證學 科 名 稱:微電子學與固體電子學論文題目:微處理器訪存部件設計與結(jié)構(gòu)功能驗證 學科名稱:微電子學與固體電子學摘 要高性能的微處理器設計是整個信息技術(shù)和計算機應用市場競爭的重要焦點和關(guān)鍵容,因此設計高效的微處理器結(jié)構(gòu)具有重大的意義。本文主要研究RSIC處理器的結(jié)構(gòu)設計,它是一個通用64位RISC結(jié)構(gòu),四發(fā)射的超標量和超流水線微處理器,采用亂序執(zhí)行和先進的Cache設計等技術(shù)提高流水線的效率。處理器有三
2、個執(zhí)行部件和一個訪存部件。完全兼容MIPS定、浮點指令集系統(tǒng)。本文主要分為以下幾個部分:1)處理器發(fā)射模塊和訪存模塊設計 處理器的結(jié)構(gòu)是影響整個處理器的工作效率的關(guān)鍵部分,只有合理的結(jié)構(gòu)才能使處理器的效率達到最高。本文在簡述整個RSIC處理器的整體工作原理的基礎(chǔ)上詳細介紹了發(fā)射模塊和訪存部件的具體設計。2)處理器延遲調(diào)試處理器的運算速度是衡量處理器好壞的最重要的標準,而運算速度和處理器的頻率息息相關(guān)。本文介紹了通用的幾種ASIC延遲調(diào)試方法,具體介紹了在工作中出現(xiàn)的發(fā)射模塊延遲的調(diào)試過程。3)基于VMM驗證方法學的對微處理器的驗證本文通過基于system verilog自動對比平臺的搭建,基于
3、c語言的對比模型,完成自動對比,加速驗證的速度。基于功能覆蓋率的通道劃分,基于嵌入式匯編的定向測試編寫。保證整個微處理器的功能正確性。關(guān)鍵字: 微處理器結(jié)構(gòu),訪存,延遲調(diào)試,功能覆蓋率驗證TITLE: microprocessor memory access component design and structure functional verificationMajor:MicroelectronicsandSolidElectronicsName:junying CHEN Signature:Supervisor:Prof. ningmei YU Signature:AbstractT
4、he high-performance microprocessor design is an important focus and key elements of the entire IT and computer application market competition to design efficient microprocessor architectures is of great significance.This paper mainly studies the structural design of the RSIC processor, it is a gener
5、al-purpose 64-bit RISC architecture, four launch superscalar and super-pipelined microprocessor。Out of order execution and advanced Cache design technology to improve the efficiency of the pipeline. The processor has three implementation components and a memory component is fully compatible with the
6、 MIPS III fixed, floating-point instruction set system. This article is divided into the following sections.1) Processor architecture memory access andissue moduledesignThe processor architecture is a key part of the impact the work efficiency of the entire processor, the only reasonable structure t
7、o the efficiency of the processor to the highest. RSIC processor briefly works as a whole on the basis of detailed specific design of the issue module and the memory access components.2) The processor delay debuggingThe operation speed of the processor is the most important criteria to measure the p
8、rocessor is good or bad, while closely related to the computing speed and processor frequency. This article describes common of several ASIC delay testing method, specific work delayed the commissioning process by the transmitter module.3) Based on the VMM verification methodology microprocessor ver
9、ificationIn this paper, Auto Contrast platform based on the systemverilog structures, based on the comparison model of the c language, complete auto contrast, accelerate the validation speed. Division of the channel based on functional coverage, based on the embedded assembler directed test preparat
10、ion. Ensure the functional correctness of the entire microprocessor. Key words : Microprocessor architecture, Memory access, Delay debugging ,F(xiàn)unctional coverage verification目錄 TOC o 1-3 h z u HYPERLINK l _Toc3206534301緒論 PAGEREF _Toc320653430 h 1HYPERLINK l _Toc3206534311.1研究背景與意義 PAGEREF _Toc32065
11、3431 h 1HYPERLINK l _Toc3206534321.2國外研究現(xiàn)狀 PAGEREF _Toc320653432 h 1HYPERLINK l _Toc3206534331.3論文的主要容 PAGEREF _Toc320653433 h 2HYPERLINK l _Toc3206534341.4論文結(jié)構(gòu)安排 PAGEREF _Toc320653434 h 3HYPERLINK l _Toc320653435264-bit MIPS架構(gòu)處理器體系結(jié)構(gòu) PAGEREF _Toc320653435 h 4HYPERLINK l _Toc3206534362.1 RSIC CPU簡介
12、PAGEREF _Toc320653436 h 4HYPERLINK l _Toc3206534372.2MIPS指令集 PAGEREF _Toc320653437 h 4HYPERLINK l _Toc3206534382.3流水線(pipeline)設計思想 PAGEREF _Toc320653438 h 6HYPERLINK l _Toc3206534392.4影響流水線效率的因素 PAGEREF _Toc320653439 h 7HYPERLINK l _Toc3206534402.4.1資源沖突-后繼指令等待 PAGEREF _Toc320653440 h 7HYPERLINK l
13、_Toc3206534412.4.2依賴-流水線空泡 PAGEREF _Toc320653441 h 7HYPERLINK l _Toc3206534422.4.3數(shù)據(jù)沖突-后繼指令等待 PAGEREF _Toc320653442 h 7HYPERLINK l _Toc3206534433.基于64-bit MIPS架構(gòu)處理器模塊設計 PAGEREF _Toc320653443 h 8HYPERLINK l _Toc3206534443.1MIPS處理器結(jié)構(gòu) PAGEREF _Toc320653444 h 8HYPERLINK l _Toc3206534453.2訪存部件在處理器中的作用 PA
14、GEREF _Toc320653445 h 9HYPERLINK l _Toc3206534463.3訪存部件實現(xiàn)的指令 PAGEREF _Toc320653446 h 10HYPERLINK l _Toc3206534473.4訪存部件流水線設計 PAGEREF _Toc320653447 h 11HYPERLINK l _Toc3206534483.4.1Dcache和存的對應關(guān)系 PAGEREF _Toc320653448 h 11HYPERLINK l _Toc3206534493.4.2訪存部件整體結(jié)構(gòu)流水 PAGEREF _Toc320653449 h 13HYPERLINK l
15、_Toc3206534503.4.3緩存指令隊列維護 PAGEREF _Toc320653450 h 15HYPERLINK l _Toc3206534513.4.4 SRAM使用簡介 PAGEREF _Toc320653451 h 16HYPERLINK l _Toc3206534523.4.5 dcache存取數(shù)據(jù)維護 PAGEREF _Toc320653452 h 18HYPERLINK l _Toc3206534533.4.6訪存和存交互 PAGEREF _Toc320653453 h 19HYPERLINK l _Toc3206534543.5訪存小結(jié) PAGEREF _Toc320
16、653454 h 20HYPERLINK l _Toc3206534553.6.1 IQ(指令隊列)維護 PAGEREF _Toc320653455 h 20HYPERLINK l _Toc3206534563.6.2指令發(fā)射策略 PAGEREF _Toc320653456 h 22HYPERLINK l _Toc3206534573.6.3數(shù)據(jù)寫回策略 PAGEREF _Toc320653457 h 23HYPERLINK l _Toc3206534583.7發(fā)射模塊總結(jié) PAGEREF _Toc320653458 h 24HYPERLINK l _Toc3206534594 基于64-bi
17、t MIPS架構(gòu)處理器整體結(jié)構(gòu)延遲調(diào)試 PAGEREF _Toc320653459 h 25HYPERLINK l _Toc3206534604.1dc工具簡介 PAGEREF _Toc320653460 h 25HYPERLINK l _Toc3206534614.2處理器延遲關(guān)鍵路徑修改 PAGEREF _Toc320653461 h 25HYPERLINK l _Toc3206534624.2.1修改延遲方法介紹 PAGEREF _Toc320653462 h 26HYPERLINK l _Toc3206534634.2.2處理器整體延遲分析 PAGEREF _Toc320653463
18、h 27HYPERLINK l _Toc3206534644.2.3本次處理器設計的延遲調(diào)試 PAGEREF _Toc320653464 h 29HYPERLINK l _Toc3206534655基于64-bit MIPS架構(gòu)處理器整體結(jié)構(gòu)功能覆蓋率驗證 PAGEREF _Toc320653465 h 31HYPERLINK l _Toc3206534665.1 vmm驗證方法學 PAGEREF _Toc320653466 h 31HYPERLINK l _Toc3206534675.2基于systemverilog語言的自動對比平臺 PAGEREF _Toc320653467 h 31HY
19、PERLINK l _Toc3206534685.2.1基于C語言的Reference module PAGEREF _Toc320653468 h 31HYPERLINK l _Toc3206534695.2.2微處理器自動對比平臺 PAGEREF _Toc320653469 h 32HYPERLINK l _Toc3206534705.3功能覆蓋率測試 PAGEREF _Toc320653470 h 34HYPERLINK l _Toc3206534715.3.1功能覆蓋率測試點劃分 PAGEREF _Toc320653471 h 34HYPERLINK l _Toc3206534725.
20、3.2測試激勵編寫 PAGEREF _Toc320653472 h 37HYPERLINK l _Toc3206534735.4 RTL級功能驗證 PAGEREF _Toc320653473 h 41HYPERLINK l _Toc3206534745.5門級網(wǎng)表仿真 PAGEREF _Toc320653474 h 45HYPERLINK l _Toc3206534756總結(jié)與展望 PAGEREF _Toc320653475 h 47HYPERLINK l _Toc320653476致 PAGEREF _Toc320653476 h 48HYPERLINK l _Toc320653477參考文
21、獻 PAGEREF _Toc320653477 h 491緒論1.1研究背景與意義人類社會的發(fā)展己經(jīng)進入了數(shù)字時代,而數(shù)字技術(shù)的基礎(chǔ)是微電子技術(shù)。集成電路是電子信息產(chǎn)業(yè)的支柱,對人類社會發(fā)展有著重要的意義。作為數(shù)字處理核心:微處理器,在當今的人類生產(chǎn),生活等等各個方面有著不可替代的作用。尤其深刻地影響著武器裝備、航空、航天、航海等國防領(lǐng)域。因此,高性能的微處理器的研究有著重大的社會意義1。隨著半導體工藝的發(fā)展,集成電路工藝已進入深亞微米階段,特征尺寸已減少到了65nm以下,單芯片上能夠集成的晶體管數(shù)目不斷增長。目前,通用微處理器主要采用深流水、SIMD技術(shù),亂序發(fā)射,亂序執(zhí)行等技術(shù)獲得高性能2
22、3。采用超標量流水線設計,控制PC的跳轉(zhuǎn)、轉(zhuǎn)移猜測、8取指、8譯碼、指令相關(guān)問題處理、多發(fā)射、動態(tài)調(diào)度、亂序執(zhí)行、順序?qū)懟氐炔呗?,實現(xiàn)了微處理器結(jié)構(gòu)控制的空間并行性和時間并行性,即多條指令在同一時間進行并行運算處理,多級流水線為微處理器高工作頻率提供有效保證,以此高效地進行指令取指、指令譯碼、指令發(fā)射、指令執(zhí)行和指令寫回的流水線結(jié)構(gòu)456。RISC(精簡指令集計算機),是和CISC(復雜指令集計算機)相對的一種CPU體系結(jié)構(gòu),它把較長的指令分拆成若干條長度一樣的單一指令,可使CPU的工作變得單純、速度更快,設計和開發(fā)也更簡單78。RISC是上世紀80年代發(fā)展起來的處理器設計新技術(shù),它的出現(xiàn)對整
23、個計算機界產(chǎn)生了深遠的影響。RISC體系結(jié)構(gòu)的重要特點就是其便于利用流水線結(jié)構(gòu)技術(shù)進行指令操作。高效的流水線還依賴于存訪問速度,即緩存技術(shù)。MIPS CPU是一種RISC體系結(jié)構(gòu)的CPU,并且MIPS體系結(jié)構(gòu)設計時采用了獨立的指令緩存和數(shù)據(jù)緩存,這樣,CPU便可以同時獲取指令和讀寫存變量。將緩存技術(shù)和流水線技術(shù)結(jié)合起來,成為RISC體系結(jié)構(gòu)設計的必然趨勢9101112。為了進一步提高流水線的執(zhí)行效率,本次研究是基于32位MIPS架構(gòu)多取指、多譯碼、多發(fā)射、多執(zhí)行、多寫回策略的微處理器13。通過流水線可以做到每時鐘周期取到8條指令、并行譯碼8條指令、并行發(fā)射8條指令、并行執(zhí)行8條指令、并行寫回8
24、條指令的極限處理情況,大幅度提高了微處理器的控制能力和運算效率1415。1.2國外研究現(xiàn)狀國的微處理器設計和生產(chǎn)相對于國外來說比較落后的,在日新月異的技術(shù)變革中,微處理器的設計正在飛速的更新。國際上正在研究新的體系結(jié)構(gòu)。在常規(guī)系統(tǒng)中,微處理器和存儲器用不同的芯片來實現(xiàn),因為數(shù)據(jù)傳輸必須通過芯片I/O引腳而受到PCB板上的銅線的影響,這樣就極限制了微處理器和存儲器之間的帶寬16。PIM(Processor In Memory)技術(shù)就是將一個或多個處理器和DRAM集成在同一個芯片上,使在處理器和存儲器之間獲得極高的帶寬,從而有效地降低系統(tǒng)功耗、成本、面積以與存儲器延遲,這是一種面向數(shù)據(jù)密集型應用,
25、可以有效減小存儲器和處理器速度差距的新方法。美國加州大學伯克利分校開發(fā)的VIRAM芯片就是PIM技術(shù)的原型芯片。此芯片包括2個向量處理單元和1個標量處理單元,這些單元都是流水的。VIRAM芯片的重要思想即將向量處理器和DRAM存儲器(13M)都做到片上,進而消除片外訪存并減少訪問次數(shù)1718。目前國際上還有一種流處理技術(shù),用于解決處理器與存儲器的差距。這種技術(shù)一是通過數(shù)據(jù)在流寄存器文件的緩存來隱藏方寸延遲,允許對DRAM的訪問進行再排序,使訪問次數(shù)最小化;二是采用可縮放分布式本地寄存器文件結(jié)構(gòu),以較小代價來實現(xiàn)很高的計算率212223。斯坦福大學開發(fā)的流處理器Imagine原型芯片,運行多媒體
26、應用時,ALU資源利用率高達84%95%1819。 國超標量處理器設計日益增多,中科院計算所設計的龍芯2號微處理器,兼容MIPS指令集,采用4發(fā)射超標量方案,有2個定點部件、2個浮點和1個訪存部件。采用0.18um工藝實現(xiàn),其時鐘頻率達500MHZ,710級動態(tài)流水線設計。分離一級icache,指令32KB+數(shù)據(jù)32KB,無2級cache2021。目前西北工業(yè)大學航空微電子中心在I960微處理器性能模型設計、線程級并行的硬件設計研究、同時多線程結(jié)構(gòu)指令流特性與取指技術(shù)研究中,均設計到了超標量超流水微處理器研究22。我國相繼出現(xiàn)龍芯、織女星(VEGA)、方舟、THUMP等多個自主開發(fā)的微處理器,
27、而且目前已經(jīng)應用到多個領(lǐng)域。其中龍芯已應用于服務器領(lǐng)域,各個研發(fā)單位都在協(xié)力研發(fā),大大推動了我國微處理器設計向更高水平穩(wěn)步發(fā)展23?,F(xiàn)在通用嵌入式微處理器運算能力雖然很強大,但是在遇見一些運算量大的程序的時候還是不能滿足運算需求。針對運算量大的一些專業(yè)需求的時候,在微處理器的部件中加入一部分針對某種運算量大的部件,作為專用的某種微處理器。這樣在設計和驗證的時候只是設計,驗證一部分的部件。而這樣的設計在國還沒有人提出。為了實現(xiàn)這樣的設計擁有自主知識產(chǎn)權(quán)的微處理器就十分必要。1.3論文的主要容本文主要研究RSIC處理器的結(jié)構(gòu)設計,它是一個通用64位RISC結(jié)構(gòu),四發(fā)射的超標量和超流水線微處理器,采
28、用亂序執(zhí)行和先進的Cache設計等技術(shù)提高流水線的效率。處理器有三個執(zhí)行部件和一個訪存部件完全兼容MIPS定、浮點指令集系統(tǒng)主要分為以下幾個部分1).處理器結(jié)構(gòu)設計 處理器的結(jié)構(gòu)是影響整個處理器的工作效率的關(guān)鍵部分,只有合理的結(jié)構(gòu)才能使處理器的效率達到最高。在有確定的設計之后,整個處理器的結(jié)構(gòu)RTL級代碼的才能順利編寫。本文在簡述整個RSIC處理器的整體工作原理的基礎(chǔ)上詳細介紹了發(fā)射模塊和訪存部件的具體設計。2).處理器延遲調(diào)試處理器的運算速度是衡量處理器好壞的最重要的標準,而運算速度和處理器的頻率息息相關(guān),因此,處理器的延遲調(diào)試對處理器的性能有很關(guān)鍵的作用。本文介紹了通用的幾種ASIC延遲調(diào)
29、試方法,具體介紹了在工作中出現(xiàn)的發(fā)射模塊延遲的調(diào)試過程。3). 基于VMM驗證方法學的對微處理器的驗證現(xiàn)在隨著集成電路設計越來越復雜,微處理器的驗證成為整個處理器的開發(fā)過程中最重要的過程,往往驗證過程占整個開發(fā)設計的70%-80%。因此加速驗證的過程變得十分必要,而通過不斷的測試,修改原處理器設計中不合理的地方。本文通過基于Systemverilog自動對比平臺的搭建,基于C語言的對比模型,完成自動對比,加速驗證的速度。具體分析了在測試過程中遇見的幾個經(jīng)典的BUG以與修改方法。基于功能覆蓋率的通道劃分,基于嵌入式匯編的定向測試編寫,保證整個微處理器的功能正確性。在完成軟件仿真后,把整個處理器下
30、載到FPGA中進行硬件驗證和應用程序驗證。1.4論文結(jié)構(gòu)安排本章闡述了課題的研究背景與意義,總結(jié)了微處理器的發(fā)展現(xiàn)狀,分析了微處理器結(jié)構(gòu)的作用,在此基礎(chǔ)上提出了研究課題,并且給出了本課題的主要研究工作和論文的結(jié)構(gòu)安排。第二章主要介紹MIPS處理器的指令集,以與MIPS處理器的結(jié)構(gòu)流水線相關(guān)策略以與性能概括。第三章詳細描述微處理器中的訪存部件模塊設計,包括SRAM的時序要求以與應用,LSQ隊列以與訪存和存的交互。并且詳細描述發(fā)射模塊的結(jié)構(gòu)體系設計,包括IQ準備和維護、指令發(fā)射和數(shù)據(jù)寫回。第四章詳細介紹微處理器的延遲調(diào)試幾種方法,具體介紹了發(fā)射模塊調(diào)延遲的過程。第五章介紹了基于VMM驗證方法學的對
31、微處理器的驗證,搭建基于systemverilog語言的驗證自動對比平臺的搭建,對微處理器的c語言建模,快速的定位BUG位置,對功能覆蓋率通道的劃分,最后通過編寫嵌入式匯編的定向測試激勵達到功能覆蓋率100%的設計目標。264-bit MIPS架構(gòu)處理器體系結(jié)構(gòu)微處理器分為RSIC(精簡指令集處理器)和CSIC(復雜指令級處理器)。兩種類型的處理器有著各自不同的優(yōu)缺點。本論文采用的是MIPS架構(gòu)的RSIC處理器23。2.1 RSIC CPU簡介IBM研究中心的John Cocke提出RSIC(精簡指令集計算機)概念。相對于復雜指令集來說精簡的指令集指令數(shù)少24。RSIC指令集包含了簡單基本的指
32、令集,通過這些指令,就可以組成復雜的指令。相比于CSIC(ComplexInstruction Set Computing)微處理器來說RSIC微處理器有以下優(yōu)點25:1).RSIC微處理器對結(jié)構(gòu)的依賴不大,設計簡單,結(jié)構(gòu)簡單,驗證相對來說不復雜25。 2).RSIC指令集指令數(shù)不多,軟件開發(fā)相對簡單25。 3).RSIC編譯器編譯所使用的指令少,因此高級語言能更加有效的編寫25。RISC微處理器不僅精簡了指令系統(tǒng),采用超標量和超流水線結(jié)構(gòu);它們的指令數(shù)目只有幾十條,卻大大增強了并行處理能力。RSIC處理器性能特點如下: 一:由于指令集簡化后,減少了指令的數(shù)量,也就是說減少了硬件的消耗; 二:
33、采用大量的寄存器,不需要通過頻繁的和存和cache交互,提高了處理速度; 三:取數(shù)存數(shù)與取指令分開執(zhí)行,使處理器可以完成更多的操作。2.2MIPS指令集MIPS指令編碼格式統(tǒng)一,都是32位單字對齊。不同種類的指令格式有所不同按照類型分為三種:I類型(立即數(shù)型)、J類型(跳轉(zhuǎn)類型)和R類型(寄存器型)。其指令格式入圖2.1所示。圖2.1A是立即數(shù)型,0-15位是立即數(shù)。rs是原操作數(shù)寄存器。rt是目的寄存器。Opcode表示這條指令執(zhí)行的是什么樣的操作。圖2.1B是跳轉(zhuǎn)類型0-25位表示的是跳轉(zhuǎn)地址。圖2.1C寄存器型,通過funct位和opcode位表明執(zhí)行的操作是什么樣的操作。如果是兩操作數(shù)
34、指令,則sa沒用,rd是目標寄存器,rt,rs是原操作數(shù)寄存器。如果是三操作數(shù)指令,則rd,rt,rs是原操作數(shù)寄存器,sa是目的寄存器。圖 2.1 MIPS指令集3種指令類型Fig 2.1 MIPS instruction structureMIPS的指令種類有分為7種如表2.1所示:MIPS指令種類MIPS指令(部分)指令的意義實現(xiàn)與否訪存類指令lb, sb, lh, sh, lw, sw, ld, sd, lwc1, swc1, ldc1, sdc1執(zhí)行從存中取數(shù),或把數(shù)據(jù)存入存中的操作。實現(xiàn)定點計算指令add, sub, mult, and, or, sll, srl, slt, ad
35、d.s, add.d .執(zhí)行定點加減乘除移位前導等運算操作實現(xiàn)浮點運算指令cvt,movf,mul,div,madd,sub.執(zhí)行IEEE754標準的加減乘除浮點運算操作實現(xiàn)跳轉(zhuǎn)分支指令j, jr, jal, beq, bne .執(zhí)行跳轉(zhuǎn)操作實現(xiàn)協(xié)處理器指令bc1f、bc1f1、bc1t、bc1t1執(zhí)行協(xié)處理器CP0,CP1指令操作沒實現(xiàn)斷點與陷阱指令teq、teqi、tge、tgei、tgeiu、tgeu、tlt、tlti、tltiu、tltu、tne、tnei。執(zhí)行系統(tǒng)操作的指令沒實現(xiàn)表 2.1 MIPS指令集的種類Tab 2.1 MIPS instruction type2.3流水線(p
36、ipeline)設計思想對通用設計來講,pipeline是提高系統(tǒng)工作頻率的常見方法。它適合于大量數(shù)據(jù)處理的場合。指令流水線技術(shù)是多條指令重疊執(zhí)行的一個處理器實現(xiàn)技術(shù),流水線的基本結(jié)構(gòu)是將適當劃分的N個操作步驟串聯(lián)起來,最大特點是數(shù)據(jù)流在各個步驟的處理從時間上看是連續(xù)的。它實際是將大量的數(shù)據(jù)處理分成幾個階段。每個階段都利用上一個階段產(chǎn)生的中間結(jié)果,直到得到最終結(jié)果。這樣,從一個數(shù)據(jù)輸入到結(jié)果輸出需要多個時鐘周期,但僅從輸出結(jié)果來看,每個時鐘周期均可以得到一個結(jié)果。pipeline所付出的代價就是增加了輸入到輸出的時鐘數(shù)目。 圖2.2 流水線原理示意圖Fig 2.2 pipeline eleme
37、nts如圖2.2所示步驟1是第一級流水線依次類推。當a1的數(shù)據(jù)進入步驟一流水線時后面的流水線因為沒有進入數(shù)據(jù),可以看做沒有工作。當下個時鐘周期b1數(shù)據(jù)進入流水線后a1的數(shù)據(jù)經(jīng)過步驟1處理進入到步驟2,在這一個時鐘周期時,同時進行的是b1在步驟1運算,a1在步驟2運算依次類推。最后整個流水級都處于工作狀態(tài)。以每個時鐘周期3.3ns為例,可以看出采用流水線時a1的數(shù)據(jù)經(jīng)過4個流水級13.2ns運算出有效數(shù)據(jù),而后面每3.3ns運算出一個有效數(shù)據(jù)。而不采用流水級的設計只能每13.2ns出一個數(shù)據(jù)。因此采用流水級的設計大大增加了微處理器設計大大增加了微處理器的運算效率。2.4影響流水線效率的因素 在多
38、級流水階段中,若某級流水處理的時間比其它流水階段處理時間長的話,那其它流水階段處理的速度也會受很大影響。因此,在流水線里,應該盡量保證每個階段所占用時間大致一樣。這就要求在電路設計中,尋求邏輯復雜性與處理速度之間的平衡,顯得尤為重要。在IC設計初期,系統(tǒng)級劃分時,就應合理分配電路到不同階段以使流水線保持均衡。下面對微處理器中影響流水線效率的因素進行分析。2.4.1資源沖突-后繼指令等待當處理器中多個指令同時使用同一個資源時,這樣后條指令的執(zhí)行就必須等前條指令執(zhí)行完畢后,方可進行。這種因素在流水線中是不不可避免的,雖然編譯器在對指令進行編譯時,會采取相應算法來盡量減少此類沖突,但實際在CPU上跑
39、一段應用程序時,這種資源沖突的情況是普遍存在的。因此在微處理器設計中,處理資源沖突的電路策略在前端設計中肯定得預先考慮。2.4.2依賴-流水線空泡在流水線中有的時候中間流水級會產(chǎn)生無效的數(shù)據(jù)這種情況稱為流水線的空泡。產(chǎn)生空泡的原因有很多,比如在微處理器中發(fā)射模塊中前面的指令發(fā)射到了fu0里面,而后面的指令因為資源相關(guān),在下一個時鐘周期發(fā)射模塊沒有繼續(xù)發(fā)射指令,這個是后fu0的第一級流水線就產(chǎn)生了一個空泡。這個空泡是因第一個數(shù)據(jù)已經(jīng)進入第二級流水線了,而第一級流水線沒有進入新的數(shù)據(jù),因此產(chǎn)生的這個空泡是可以被后面的數(shù)據(jù)給擠掉。這里用valid來表示流水級的數(shù)據(jù)是否有效,當valid為0時表示所對
40、應的這級流水是空的,可以被擠掉,當valid為1是表示對應的流水線是有效數(shù)據(jù),執(zhí)行完后需要寫回,不能被擠掉。2.4.3數(shù)據(jù)沖突-后繼指令等待數(shù)據(jù)沖突就是當后條指令的源操作數(shù)要用到前條指令的目的操作數(shù)時,后條指令就不能發(fā)射出去,由于后條指令的該源操作數(shù)要用到更新之后的數(shù)據(jù),因此必須等待前條指令將結(jié)果放到結(jié)果總線上時,后條指令才可進行發(fā)射。此因素在流水線里,也是對流水線效率有所影響的。編譯器對指令編譯時,算法會確保減少數(shù)據(jù)相關(guān)的發(fā)生。3.基于64-bit MIPS架構(gòu)處理器模塊設計處理器的結(jié)構(gòu)是影響整個處理器的工作效率的關(guān)鍵部分,只有合理的結(jié)構(gòu)才能使處理器的效率達到最高。因此微處理器的結(jié)構(gòu)是否合理
41、是整個微處理器設計中最關(guān)鍵的部分。作者在整個設計中負責微處理器的訪存部件的所有設計,和部分發(fā)射模塊設計。3.1MIPS處理器結(jié)構(gòu)本論文中的微處理器流水線采用經(jīng)典的取址,譯碼,發(fā)射,運算,寫回五個部分,.諾曼結(jié)構(gòu),2KB+4KB一級片高速緩存,4譯碼,能處理64位數(shù)據(jù)、四發(fā)射、亂序執(zhí)行(動態(tài)調(diào)度、順序發(fā)射、靜態(tài)轉(zhuǎn)移預測)動態(tài)流水線結(jié)構(gòu),定點字長64位,浮點字長64位,PC地址32位。浮點部件采用IEEE 754標準。本文中的微處理器設計如圖3.1所示:圖 3.1 處理器整體結(jié)構(gòu)框圖Fig 3.1 cpu structure1).PC模塊是整個流水線的最前端,負責計算和控制下一個時鐘周期需要取出的
42、指令,根據(jù)PC地址從icache中取出相應的指令,當取出指令后,PC地址相應的加16?;蛘哂商D(zhuǎn)類指令給出下一個時鐘周期取址所需要的PC地址。2).ICAHCE(指令高速緩存),是在存和CPU之間的速度快存儲量小的數(shù)據(jù)緩存,由SRAM組成,寬度128,深度256,采用兩組組相連直接映射。包括指令數(shù)據(jù)段(每行128bit)和tag段(每行20bit),valid位(1bit)。3).從icache出來的tag位和pc中的tag位(pc地址的高20位)進行對比,當對比命中時說明icache中存的數(shù)據(jù)是pc地址所對應的數(shù)據(jù),把數(shù)據(jù)送入IR中存儲。當對比miss的時候說明icache中沒有pc地址對應
43、的數(shù)據(jù)這個時候通過總線從存中把數(shù)據(jù)取出來,分別放入icahce和IR中。4).IR存儲的是4條32位指令,通過Decoder模塊把這些指令譯碼成119位的機器碼,把軟件編譯出來的指令轉(zhuǎn)換成硬件電路的控制信號包括op,fc,valid,op,src,dest,imm,pc等等。5).譯碼后的4條指令放入IQ(instruction queue)隊列中,該隊列能同時容納16條指令,起到蓄水池的作用。在指令緩存的同時會進行指令的順序維護,指令隊列的頭尾維護,指令之間的資源相關(guān)判斷。把IQ中的前4條指令發(fā)往issue模塊中。6).發(fā)射模塊中32個浮點通用寄存器和32個定點寄存器,每個通用寄存器的位數(shù)都
44、是64bit,這里判斷指令所需要的數(shù)據(jù)相關(guān)如:addiu sp,sp,-24move s8,sp當addiu這條指令沒有執(zhí)行完成,move這條指令肯定是不能發(fā)射到運算功能模塊中的。并且還要判斷各條指令所對應的FU單元中的流水線是否能接受新的指令。只有經(jīng)過指令所對應的FU單元能接受新指令判斷,資源相關(guān)判斷,數(shù)據(jù)相關(guān)判斷后,issue才把正確的數(shù)據(jù)和正確的指令發(fā)往正確的FU單元中。7).執(zhí)行部件分為4個,分別是分支預測執(zhí)行部件ALU1,定點運算執(zhí)行部件ALU2,浮點運算執(zhí)行部件FALU和訪存部件。ALU和FALU部件分別執(zhí)行定點和浮點的加減乘除等運算。8).訪存部件是數(shù)據(jù)的高速緩存,處理器通過st
45、ore和load指令把數(shù)據(jù)從存中取出來。訪存部件會在下一節(jié)中詳細敘述。9).執(zhí)行部件經(jīng)過運算后把數(shù)據(jù)放在出口寄存器上,通過WB模塊,順序的把指令運算出來的指令寫回到通用寄存器中。3.2訪存部件在處理器中的作用微處理器的速度和存速度之間的差距逐漸增大,處理器對存的存儲訪問成為了系統(tǒng)性能新的瓶頸。使得存儲層次對計算機的性能起著至關(guān)重要的影響。為了提高微處理器緩存的效率,在絕大多數(shù)系統(tǒng)中采用了高速緩沖存儲器(Cache)來解決主存與CPU之間的速度不匹配。在存和處理器之間加入速度快但是存儲容量相對較小的SRAM,根據(jù)存中數(shù)據(jù)存儲的相關(guān)性,每次從存中取出所需要的數(shù)據(jù),以與存地址相連的數(shù)據(jù)塊。這樣處理器
46、的數(shù)據(jù)和速度快的cache交互頻繁,避免了和速度慢的存頻繁交互。3.3訪存部件實現(xiàn)的指令訪存部件作為微處理器中的一個重要的部件,是通過訪存類的指令來控制整個訪存部件的。本文中涉與到的訪存指令如表3.1所示:Laod類指令Load類指令作用STORE類指令STORE類指令作用LB從存中讀出8bit數(shù)據(jù)SB把8bit的數(shù)據(jù)存入存中LBU從存中讀出無符號的8bit數(shù)據(jù)SD把8bit的無符號數(shù)據(jù)存入存中LD從存中讀出64bit的數(shù)據(jù)SDC1把64bit的數(shù)據(jù)存入存中LDC1從存中讀出64bit的浮點數(shù)據(jù)SDL把64bit的浮點數(shù)據(jù)存入存中LDR從存中讀出64bit數(shù)據(jù)中的低48位SW把32bit的數(shù)據(jù)
47、存入存中LH從存中讀出32bit數(shù)據(jù)中的低16位SWC1把32bit的浮點數(shù)據(jù)存入存中LHU從存中讀出32bit數(shù)據(jù)中的低16位,不進行符號位擴展SDR把64bit中的低48位數(shù)據(jù)存入存中LWR從存中讀出32bit中的低16位數(shù)據(jù)SH把32bit中的低16位數(shù)據(jù)存入存中LWL從存中讀出32bit中的高16位數(shù)據(jù)SWR把32bit中的低16位數(shù)據(jù)存入存中LW從存中讀出32bit數(shù)據(jù)SWL把32bit中的高16位數(shù)據(jù)存入存中LWC1從存中讀出32bit的浮點數(shù)據(jù)LWU從存中讀出32bit的數(shù)據(jù)不進行符號位擴展表3.1 LOAD/STORE類指令Tab 3.1 LOAD/STORE instruct
48、ionLOAD類指令是把數(shù)據(jù)從存中讀入到處理器的通用寄存器中,根據(jù)指令不同分別取出16bit,32bit,48bit和64bit。STORE類指令是把數(shù)據(jù)從處理器的通用寄存器中寫回到存中,根據(jù)指令不同分別寫入16bit,32bit,48bit和64bit。圖 3.2 訪存類指令格式Fig 3.2 MEM instruction style如圖3.2所示是訪存類指令的格式,base(基地址2)所對應的寄存器的數(shù)據(jù)加上offset(偏移量)作為存尋址的地址,rt作為目標寄存器,STORE類指令就是把rt寄存器中的數(shù)據(jù)寫到存中,LOAD類指令把存的數(shù)據(jù)寫入到rt寄存器中。不管是LOAD類指令還是ST
49、ORE類指令都是通過SRAM存取數(shù)據(jù)的,所以所有的指令都是復用同一套電路。3.4訪存部件流水線設計3.4.1Dcache和存的對應關(guān)系圖3.3存地址劃分Fig 3.3 EMS memory address partition 32位的存地址分為tag,index,offset三部分,圖3.3所示如Tag20位就是把4G存劃分為塊, Index8位是把劃分出來的每一塊分成了256行,offset4位能索引每行128bit中的每BYTE。如圖3.4所示存分為若干tag塊,每個tag塊分為256行,每行128bit。cache分為了256行每行也是128bit。存中的每個tag塊的第一行都對應cac
50、he中的第一行,以此類推。這就是組相連映射的方式,本次設計采用的是四組組相連直接映射。有4個256行,每行128bit的cache塊,4個塊都采用直接映射的方式,4塊cache的每一行tag位都是不一樣的。圖 3.4 cache和存的對應關(guān)系Fig 3.4 The mapping to the cacheand the EMS memory本文中的設計采用smic 0.13工藝庫的SRAM IP 如圖3.5所示每一行包括用SRAM搭建的128bit的數(shù)據(jù)位,20位的tag位和用reg搭建的1bit valid位。Valid位初始化為0,當需要把數(shù)據(jù)寫入cache的時候同時把tag(存對應地址的
51、高20位)寫入存放tag位的SRAM中。寫入數(shù)據(jù)同時把valid位置為1。圖3.5dcache行數(shù)據(jù)Fig 3.5 the struction about dcache3.4.2訪存部件整體結(jié)構(gòu)流水訪存部件是作為一個FU(function union)模塊在處理器中實現(xiàn)的,訪存部件的LOAD/STORE指令通過取址,譯碼,發(fā)射后傳送到了訪存部件中。圖3.6是訪存部件具體結(jié)構(gòu)框圖。圖3.6訪存部件整體結(jié)構(gòu)框圖Fig 3.6 the MEM struction該模塊分為四個流水級進行處理,加上對外接口模塊,共有5個模塊,分別為:Maddr地址加模塊 ,LSQ模塊,DCache模塊,Tagcmp模塊
52、,Adapter模塊。發(fā)射模塊發(fā)送到訪存部件的數(shù)據(jù)包括:指令的valid,op(標示執(zhí)行什么樣的操作),64位data,32位基地址,32位偏移量,id(標示在整個處理器的指令編號,以便能順序的寫回),dest(LOAD類的指令需要寫回到通用寄存器中,dest標示寫回到通用寄存器的地址。STORE類指令因為不需要寫回到寄存器中所以dest是 0號寄存器)。所有進入訪存模塊的指令(指令valid為1)通過發(fā)射模塊傳到了Maddr模塊后,進行基地址加偏移量的加法操作,然后放入第二級流水線(LSQ)排隊等待,LSQ是訪存類指令的四項隊列。經(jīng)過地址加處理后的指令依次存入這個四項隊列中。指令在這個隊列中
53、順序的對dcache發(fā)出請求。通過index索引出4組dcache對應的那一行tag,data,valid,存入寄存器。在下一個時鐘周期通過tag模塊把4組dcache中存儲的tag和地址加后的地址高20位進行對比,如圖3.7所示:圖3.7 tag對比示意圖Fig 3.7 tag compare circuit當tag對比為結(jié)果為1(有且只有1組dcache中的tag和指令請求的地址高20位一樣)并且指令的valid和數(shù)據(jù)的valid都為1的時候則為hit,這個時候把hit信號傳給LSQ,同時并行的通過op執(zhí)行STORE/LOAD判斷,如果是STORE類得指令就把data通過offset判斷分
54、別插入4組dcache的數(shù)據(jù)塊中,如果是LOAD類指令則通過offset把需要的數(shù)據(jù)分別讀出來。最后如果hit把4組已經(jīng)準備好的數(shù)據(jù)選出正確的一組,等待WB模塊發(fā)出能寫回的信號LOAD類指令把數(shù)據(jù)寫回通用寄存器中,STORE類的指令把128bit的數(shù)據(jù)和tag寫入相應的dcache行中。如果miss則給adapter模塊請求,通過adapter模塊和存交互,存取出數(shù)據(jù)后放入adapter中,等待WB模塊發(fā)出寫回信號后分LOAD和STORE進行相應的操作。如圖3.8所示:圖3.8 tag對比示意圖Fig 3.8 tag compare3.4.3緩存指令隊列維護LSQ(LOAD/STORE QUE
55、UE)是一個指令緩存區(qū),當指令遇見miss的時候會從存中把數(shù)據(jù)取出來,這個時間相對于處理器的運行速度來說是很慢的。這時把在LSQ中排隊的中后面的指令給dcache請求,先行判斷。這樣可以極大提高訪存取數(shù)據(jù)的時間.如圖3.9是LSQ的指令隊列示意圖:圖3.9LSQ隊列控制指針Fig3.9 LSQ fifoHead,Tail,Head00分別是LSQ的三個控制指針,都是分別通過兩位的寄存器寄存。每個時鐘周期判斷進入隊列的指令的valid,當valid為1時為有效指令在下個時鐘周期上升沿的時候打入Tail指針所指向的寄存器中,Tail指針相應的加1。Head指針指向的是第一條等待寫回的指令,當WB模
56、塊給出能寫回的信號后,在下個時鐘周期上升沿Head加1。當Head和Tail指向同一個寄存器的時候有兩種情況一是隊列全空的時候,還有就是隊列全滿的時候。這個時候判斷Head和Tail同時指向的那一行中寄存器中的valid,如果為1則是滿,為0則是空,隊列為滿給發(fā)射模塊發(fā)送信號,發(fā)射模塊將不會給訪存模塊發(fā)送新的指令,當有指令寫回后隊列中出現(xiàn)了空間,這個時候LSQ隊列才能接受新的指令。本問中的設計采用的是單端口的SRAM因此每次只能有一條指令對dcache進行操作。Head00指向的就是當前發(fā)往dcache的指令。當Head00發(fā)出一條指令到dcache查找數(shù)據(jù)后,Head00在下一個時鐘上升沿加
57、1。當Head00指向的是STORE類的指令,在指令發(fā)送到dcache后Head00不能加一,只能是等待STORE類的指令寫回了后Head00加1。3.4.4 SRAM使用簡介圖3.10 SRAM IP核結(jié)構(gòu)Fig3.10 SRAM IP input/output圖3.10是本文中設計采用smic 0.13單端口SRAM IP核,這個SRAM IP核是作為訪存部件中的dcache使用。當CEN信號為低是片選有效信號,這個時候片子選通,可以進行讀寫的操作。WEN是讀寫信號。當CEN信號為有效的時候WEN高電平是進行讀操作,WEN信號為低時進行寫操作。A端口是讀取地址輸入端口,SRAM每次讀取一行
58、數(shù)據(jù),因此A地址代表索引行地址。D是輸入端,在寫模式下輸入端口的數(shù)據(jù)會寫入SRAM中。Q端口是輸出端口。圖3.11 SRAM讀時序圖Fig 3.11 SRAM read cycle如圖3.11所示圖是SRAM進行讀操作時的時序。在時鐘上升沿到來時采集CEN和WEN信號,片選信號為低WEN信號為高是讀操作,同時采集A端口地址信息,Q端口在2.7ns之后輸出A地址行所對應的數(shù)據(jù)。當CEN信號為高的時候,輸出端保持上個采集信號時的輸出。圖3.12 SRAM寫時序圖Fig SRAM write cycle如圖3.12所示CEN為低,WEN為低是寫操作,信號時鐘上升沿來后采集信號,把D端口的數(shù)據(jù)寫入SR
59、AM中2.7ns后完成寫操作,這個時候輸出端口Q輸出D端口的數(shù)據(jù)當CEN信號為高的時候,輸出端保持上個采集信號時的輸出。圖3.13是SRAM存取數(shù)據(jù)VCS仿真圖。可以看出CEN為低就是寫數(shù)據(jù)寫的地址是A輸入端口01,02寫入的是一個fffffffffffff的數(shù)據(jù)串,當WEN為高是讀數(shù)據(jù),讀的是地址A 01和03的數(shù)據(jù)可以看出01的數(shù)據(jù)是fffffffffffff的數(shù)據(jù)串,而03所對應的數(shù)據(jù)已經(jīng)改變成1的數(shù)據(jù)串。圖3.13實際仿真電路圖Fig 3.13 emluatorcircuit3.4.5 dcache存取數(shù)據(jù)維護Dcache每一行對應一個dirty位,4組dcache就有4個256bit
60、的寄存器組存放dirty位。當進行STORE類指令操作后在寫入數(shù)據(jù)的同時對對應行的dirty位置1,表明該行的數(shù)據(jù)需要寫回的存中。本次設計采用的是write back策略:先把store的數(shù)據(jù)放入dcache中,在合適的時間寫入存中。當LSQ中沒有指令的時候,通過前導零檢測4組dirty數(shù)組,并行檢測每一組第一個dirty位的行號。優(yōu)先把第一組dcache的數(shù)據(jù)寫回到存中,其次是第二組,以此類推。訪存類指令在Tagcmp模塊進行tag位對比,miss的時候,會出現(xiàn)以下幾種情況:如果4組dcache的地址對應行數(shù)據(jù)的valid都為0時,這個時候是miss的情況發(fā)生了,從存中把數(shù)據(jù)提取出來之后,這
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 節(jié)能減排技術(shù)應用表格
- 提升辦公效率的信息系統(tǒng)解決方案
- 股份制改革方案及其操作流程指導
- 遵義2025年貴州遵義市鳳岡縣事業(yè)單位面向三支一扶人員招聘4人筆試歷年參考題庫附帶答案詳解
- 貴州2025年貴州省工業(yè)和信息化廳所屬事業(yè)單位招聘1人筆試歷年參考題庫附帶答案詳解
- 溫州浙江溫州市甌海區(qū)新居民服務中心招聘筆試歷年參考題庫附帶答案詳解
- 淄博2025年山東淄博市張店區(qū)事業(yè)單位招聘初級綜合類崗位45人筆試歷年參考題庫附帶答案詳解
- 香港合同范本(2篇)
- 節(jié)前安全生產(chǎn)培訓
- 寫意畫菊花課件
- 江蘇電子信息職業(yè)學院單招職業(yè)技能測試參考試題庫(含答案)
- 充電樁采購安裝投標方案(技術(shù)方案)
- 7.1開放是當代中國的鮮明標識課件-高中政治選擇性必修一當代國際政治與經(jīng)濟(1)2
- 2024年浙江首考英語聽力原文解惑課件
- 超聲危急值-課件
- 民族團結(jié)教材
- 煤礦頂板管理技術(shù)培訓課件
- 紀念中國人民抗日戰(zhàn)爭暨世界反法西斯戰(zhàn)爭勝利周年大合唱比賽
- 生化檢驗質(zhì)控及失控分析
- 2023年重慶市大渡口區(qū)春暉路街道陽光社區(qū)工作人員考試模擬試題及答案
- 全國各大媒體的報料熱線電話號碼
評論
0/150
提交評論