論文評審原版論文劉鐸9本12301057_第1頁
論文評審原版論文劉鐸9本12301057_第2頁
論文評審原版論文劉鐸9本12301057_第3頁
論文評審原版論文劉鐸9本12301057_第4頁
論文評審原版論文劉鐸9本12301057_第5頁
已閱讀5頁,還剩72頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 本科畢業(yè)設(shè)計(論文)基于 SMT 的ISP 模型的設(shè)計與實現(xiàn)Design and implementation of SMT based ISP model學(xué)院: 軟件學(xué)院 專業(yè): 軟件工程 學(xué)生姓名: XXX學(xué)號 : XXXXXXXX指導(dǎo)教師: XXX北京交通大學(xué)2016 年 5 月 學(xué)士論文版權(quán)使用授權(quán)書本學(xué)士論文作者完全了解北京交通大學(xué)有關(guān)保留、使用學(xué)士論文的規(guī)定。特授權(quán)北京交通大學(xué)可以將學(xué)士論文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫進行檢索,提供閱覽服務(wù),并采用影印、縮印或掃描等復(fù)制手段保存、匯編以供查閱和借閱。 (保密的學(xué)位論文在后適用本授權(quán)說明)學(xué)位論文作者簽名:指導(dǎo)教師簽名:簽字日期:

2、年月日簽字日期:年月日 北京交通大學(xué)畢業(yè)設(shè)計(論文)中要中要摘要:在芯片設(shè)計規(guī)模日益增多,應(yīng)用越來越廣泛的今天,保證設(shè)計的正確性是芯片設(shè) 計必須考慮的首要大事。SOC 的功能十分復(fù)雜,目前電路規(guī)模也非常巨大,為達到 100% 的驗證覆蓋率,驗證其功能正確性的測試激勵數(shù)量勢必非常大。而測試激勵的增長使檢查模擬結(jié)果所需的時間越來越長,所以提高模擬結(jié)果的檢查效率,是 SOC 功能驗證所面臨的一大技術(shù)難點。 本文在總結(jié)已有驗證方法的基礎(chǔ)上,通過分析各種方法的優(yōu)劣,并基于驗證需求,就如何提高驗證效率和覆蓋率提出了一種自動化的驗證方法參考模型檢查法。 參考模型檢查法,是通過實現(xiàn)一個指令集處理器 ISP(t

3、ruction set processor)模型,比較指令處理過程中參考模型和設(shè)計模型之間關(guān)鍵狀態(tài)是否相同,來判斷設(shè)計模型的正確性的方法。 本人從驗證需求出發(fā),在對 C3 核心基本結(jié)構(gòu)和對相關(guān)技術(shù)進行總結(jié)和整理后,通過與各模塊設(shè)計人員的溝通,歸納出 ISP 的功能需求。之后基于對硬件結(jié)構(gòu)和功能的分析,對 ISP 進行了模塊的劃分和接口的設(shè)計;在之后 ISP 的開發(fā)過程中,本人主要承擔(dān)了指令集、取指、譯碼、數(shù)據(jù)流地址轉(zhuǎn)換和內(nèi)存模塊的具體實現(xiàn)。本文對這些模塊要實現(xiàn)什么、怎么實現(xiàn)和為什么這樣實現(xiàn)進行了具體描述和分析。此外,筆者也實現(xiàn)了與取指、譯碼和數(shù)據(jù)流地址轉(zhuǎn)換模塊相關(guān)的 CSR。 目前 ISP 已

4、經(jīng)完成并投入使用,很好的彌補了以前驗證系統(tǒng)中的不足,極大的提高 了驗證覆蓋率和驗證效率。 關(guān)鍵詞:驗證系統(tǒng);指令流;數(shù)據(jù)流 i 北京交通大學(xué)畢業(yè)設(shè)計(論文)英要ABSTRACTABSTRACT: With the development of microelectronics technology, the integration of SOCand design complexity increase rapidly,uring the correctness of IC design becomesincreasingly crucial. As SOC is complex in fun

5、ction and large in circuit implementation scale, also to meet the 100% verification coverage, we need massive stimuli to prove the correctness of the IC design. This must cause the growth of the verification time. So improve the efficiency of the verification system becomes more and more important.

6、This paper focus on the simulation based verification in register transfer level, conducts the verification theory and experimental result, proposed a automate verification method on how to integrate the verification technique to the verification processcomparison model checking method.The compariso

7、n model can be realized by an ISP ( truction Set Processor) model. ISPwill record the essential state information through thetruction processing, and compare thestate passed by the designed model. If the states are the same, then the designed model can be considered true.Based on the verification re

8、quirement and the structure of core 3, this paper conducts the main technique of core3. And after communication with designers in charge, put forward the functional requirements of ISP model. Based on the requirements analyze and hardwarearchitecture, author divide the ISP to modules, and design the

9、 interface for every module aswell. Author completetruction set software simulation model, fetch model, decoder model,data stream transfer model and memory model in the following time.ISP has already finished and put into use, it makes up the shortcomings of the previous verification system, which g

10、reatly improves the verification coverage and efficiency.KEYWORDS:verification system;truction stream; data streamii 北京交通大學(xué)畢業(yè)設(shè)計(論文)目錄目錄中要IABSTRACTII目錄III術(shù)語和約定VII1引言1項目的來源和背景1項目開發(fā)的意義3個人分工3論文主要結(jié)構(gòu)3相關(guān)技術(shù)及核心結(jié)構(gòu)概述41.11.21.31.422.1 SMT 技術(shù)42.1.12.1.22.1.3流水線技術(shù)4SIMD 技術(shù)5芯片級并行62.2 RISC 指令集72.2.12.2.22.2.32.2.42.

11、2.5系統(tǒng)調(diào)用指令7轉(zhuǎn)移指令8存儲器指令8簡單運算指令9復(fù)合運算指令92.3尋址模式102.3.12.3.22.3.32.3.4寄存器尋址11立即尋址11偏移尋址11相對 PC 尋址122.4處理器模式122.4.12.4.2模式定義12模式的表示方法及轉(zhuǎn)換12iii 北京交通大學(xué)畢業(yè)設(shè)計(論文)目錄2.4.32.4.4指令13程序142.5寄存器142.5.12.5.22.5.32.5.42.5.5程序計數(shù)器15向量寄存器的使用15寄存器15CSR15IOR162.6異常162.6.12.6.22.6.3故障16算術(shù)自陷17異常入口和處理機制182.7中斷192.7.12.7.22.7.3中

12、斷源19中斷處理機制19中斷的入口和優(yōu)先級203需求分析21參考模型原理描述21參考模型建模要求213.13.23.2.13.2.23.2.3RTL 級參考模型的正確性21可比狀態(tài)點的設(shè)定21運行速度223.3功能需求223.3.13.3.23.3.33.3.43.3.5加載功能22指令集的實現(xiàn)22寄存器的訪問控制22存儲模型23外部接口233.4 ISP 環(huán)境的配置項和參數(shù)243.4.13.4.23.4.3全局配置24核組配置24核心配置24iv 北京交通大學(xué)畢業(yè)設(shè)計(論文)目錄4設(shè)計方案25模塊的劃分25模塊接口設(shè)計254.14.24.2.1 4.2.2 4.2.3 4.2.4 4.2.5

13、 4.2.6 4.2.7 4.2.8 4.2.9 4.2.104.2.114.2.12IBOX 模塊25Decoder 模塊26EBOX 模塊27FBOX 模塊27ARTH 模塊27DBOX 模塊28MEM_manger 模塊28MEM 模塊29CSR 和 IOR 模塊30T 模塊30CORE 模塊30Processor 模塊314.3模塊關(guān)系圖31詳細設(shè)計方案3455.1 T 模塊345.1.15.1.25.1.35.1.4問題分析34T 模塊的結(jié)構(gòu)設(shè)計方案35部分代碼展示36Log 函數(shù)的實現(xiàn)375.2 IBOX 模塊395.2.15.2.25.2.35.2.45.2.55.2.65.2.

14、7取指流程概述40ITB 脫靶檢查41權(quán)限訪問檢查42獲取物理地址的方法42ITB 淘汰算法43取指部件的 CSR 結(jié)構(gòu)和使用說明43部分代碼展示485.3 Decoder 模塊495.3.1設(shè)計說明49v 北京交通大學(xué)畢業(yè)設(shè)計(論文)目錄5.3.2譯碼流程505.4 DBOX 模塊505.4.15.4.25.4.35.4.45.4.55.4.6DTB 的構(gòu)成50數(shù)據(jù)流地址轉(zhuǎn)換51權(quán)限訪問檢查51獲取物理地址的方法52DTB 淘汰算法52DTB 訪問535.5 MEM 模塊535.5.15.5.25.5.35.5.45.5.5結(jié)論內(nèi)存管理方案53問題分析55數(shù)據(jù)結(jié)構(gòu)的選擇58鏈表法58運行結(jié)果

15、60. 626參考文獻63致附謝64錄65vi 北京交通大學(xué)畢業(yè)設(shè)計(論文)正文術(shù)語和約定SMT(simultaneous multithread)同步多線程技術(shù),指在一個 CPU 的時鐘周期內(nèi)能夠執(zhí)行多個線程指令的硬件技術(shù)。ISP SIMD術(shù)。 SOCRTL(truction set processor)指令集處理器。 (singletruction multiple data)單指令流多數(shù)據(jù)流,一項并行計算技 (system on chip)片上系統(tǒng),是一種有專用目標(biāo)的集成電路。 (register transfer level)在電子科學(xué)領(lǐng)域指的是寄存器轉(zhuǎn)換級電路的縮 寫,也叫暫存器轉(zhuǎn)移

16、層次。在集成電路設(shè)計中,RTL 用于描述同步數(shù)字電路操作的抽象 級。在 RTL 級,IC 是由一組寄存器以及寄存器之間的邏輯操作構(gòu)成。 PTE PFN FPGA C3 SWRa,Rb Fa , Fb Va,Vb PAi: jPAi(page table entry)頁表入口。 (physical frame number)物理地址編號。 (field programmable gate array)可編程邏輯門陣列。 (core3)第三代核心。申威,芯片名稱。 指令中的整數(shù)寄存器。指令中浮點寄存器。指令中向量寄存。 表示訪問有效物理地址的區(qū)間為 PA 的 j 至 i 位(ij)。表示 PA 的

17、第 i 位。 如 A5 的有效物理地址為 40 位,用 PA39:0表示,示意物理地址占 0-39 位;PA39表示地址的第 39 位。 (control and state register)控制與狀態(tài)寄存器。 (input and output register)輸入輸出控制寄存器。 (program counter)程序計數(shù)器。 (hardware mode)硬件模式。 (virtual mode)虛擬模式。 (user mode)用戶模式。 (kernel mode)內(nèi)核模式。 CSR IOR PC HM VM UM KM ITB DTB交叉區(qū)訪問。 連續(xù)區(qū)GH(truction tr

18、ansfer buffer)指令轉(zhuǎn)換緩沖,用于指令流地址查詢的快表。 (data transfer buffer)數(shù)據(jù)轉(zhuǎn)換緩沖,用于數(shù)據(jù)流地址查詢的快表。本核組可采用可 cache 或不可 cache 方式訪問,其他核組只能不可 cache本核組可采用可 cache 或不可 cache 方式訪問,其他核組不能訪問。頁面粒度。 vii 北京交通大學(xué)畢業(yè)設(shè)計(論文)正文1 引言自 1965 年摩爾定律誕生以來,集成電路工藝按照每 18-24 個月翻一番的速度飛速發(fā)展,單個芯片上已經(jīng)可以集成幾十億個甚至上百億個晶體管。工藝的發(fā)展,使設(shè)計的復(fù)雜度越來越高,更使得驗證的難度指數(shù)級的增加。本項目作為模擬驗

19、證的主要組成部分,在全片級驗證流程中起著至關(guān)重要的作用。本章將著重介紹項目的背景、意義及論 文的主要結(jié)構(gòu)。11.1 項目的來源和背景申威處理器,又稱申威 CPU,簡稱 SW 處理器,是我國自主研發(fā)的、采用自主指令集,且具有完全自主知識產(chǎn)權(quán)的處理器系列,由國家高性能集成電路設(shè)計中心負責(zé)研發(fā)。 目前,申威處理器的核心已經(jīng)發(fā)展到了第三代 core3,簡稱 C3。使用 C3 核心開發(fā)的芯片也包含 SW-2G SW-2T SW-3A SW-3B SW-4A SW-4AP SW4C SW-5A SW-6A SW-7A SW-1600 SW-1610 等多種型號。 申威處理器研發(fā)的一般都是專用的 SOC。S

20、OC,system on chip 的英文縮寫,稱為芯片級系統(tǒng),也稱片上系統(tǒng),是一種有專用目標(biāo)的集成電路,其中包含完整的系統(tǒng)并嵌入了軟件的全部內(nèi)容。SOC 作為一款高性能微處理器,其結(jié)構(gòu)和功能極其復(fù)雜,要驗證其正確性,一般需要結(jié)構(gòu)算法驗證、RTL(register transfer level)代碼驗證、后端物理驗證幾個階段。 結(jié)構(gòu)算法級驗證,又稱為行為及驗證,采取的更多的是直接賦值的形式,只能看出結(jié)果,看不出數(shù)據(jù)流的實際處理流程,更多的關(guān)注的是算法的正確性。而 RTL 級在很大程度上是對流水線原理的描述,用寄存器這一級別的描述方式來描述電路的數(shù)據(jù)流動,把數(shù)據(jù)的處理過程表達出來,因而可以很容易

21、的被綜合成電路的形式,是一種“thinking of hardware”。RTL 級驗證就是對寄存器這一級別的狀態(tài)正確性進行驗證。因此,保證 RTL 級代碼的功能正確性,對于保證后端的物理設(shè)計的正確性具有決定性作用。2在以往的 RTL 驗證中,主要是采用的是程序自檢測法、斷言檢測法和 FPGA 實物驗證法。 程序自檢測法主要是用于一些結(jié)果可以預(yù)測的應(yīng)用程序,通過運行被測程序而得出模擬結(jié)果,從而檢測模擬結(jié)果和預(yù)測結(jié)果是否相同,來驗證設(shè)計的正確性。這種方法有很明顯的弊端,就是很難進行錯誤的定位和調(diào)試。為克服這個問題,在程序自檢測方法的基礎(chǔ)上,通過在設(shè)計模型中增加有關(guān)對設(shè)計對象屬性和規(guī)則的描述,在模

22、擬過程中實 1 北京交通大學(xué)畢業(yè)設(shè)計(論文)正文時的判斷模擬結(jié)果是否違法相應(yīng)的屬性或規(guī)則,來高效定位錯誤點。 在經(jīng)過自檢測和斷言檢查后的 SOC,在功能正確性上已經(jīng)有了一定程度的保證,由于 FPGA(field programmable gate array,可編程邏輯門陣列,是一種可以將硬件描述語言所完成的電路設(shè)計,經(jīng)過簡單綜合與布局,快速燒錄至其上的半導(dǎo)體產(chǎn)品)驗證平臺的驗證速度比軟件模擬快很多,就可以將設(shè)計模型燒至 FPGA 上進行測試。但由于 FPGA 平臺錯誤調(diào)試困難,可觀性差,因此,還會把在 FPGA 上難以進行精確定位的測試激勵移植到軟件環(huán)境進行錯誤重現(xiàn)3。 自檢測法和斷言檢查更

23、適合小的部件級模塊正確性檢查。針對小部件編寫測試激勵,驗證邏輯相對簡單,模擬速度快,但是不能充分驗證部件級接口的正確性。因此, 開發(fā)一個可以進行全片驗證的模型,是十分有必要的。筆者在以往驗證方法的基礎(chǔ)上, 提出了一種新的全片驗證方法“參考模型檢查法”。 參考模型檢查法(如圖 1-1 所示),通俗來講,就是用軟件語言來模擬指令在芯片中的處理流程,作為參考模型與設(shè)計模型進行對比,因此,又把參考模型稱為 ISP( truction set processor),指令集處理器。參考模型(ISP)和 RTL 級設(shè)計模型配有完全一樣的系統(tǒng)外部邏輯模型,如果 RTL 級設(shè)計模型沒有錯誤,將測試激勵同時輸入這

24、兩個模型時,代表 SOC 結(jié)構(gòu)特性的狀態(tài)輸出應(yīng)該完全相同。通過比較這些輸出狀態(tài)是 否相同,可以判斷 RTL 級設(shè)計模型的正確性。 圖 1-1 加入新驗證方法的全片級驗證環(huán)境 2 北京交通大學(xué)畢業(yè)設(shè)計(論文)正文1.2 項目開發(fā)的意義參考模型(ISP)的開發(fā),不僅可以滿足部件級驗證的需求,更方便了全片級驗證的需求。它與以往的驗證想法相比,具有更好的驗證效率,提高驗證的覆蓋范圍,同時也便于編寫測試激勵,更方便的進行錯誤定位,避免了驗證環(huán)境的重復(fù)開發(fā)。ISP 保留了指令執(zhí)行的軌跡和系統(tǒng)的運行狀態(tài),因此 ISP 的執(zhí)行結(jié)果,與硬件執(zhí)行的結(jié)果在軟件可見狀態(tài)的范圍內(nèi)是可以比較的,對于功能正確性的驗證起著至

25、關(guān)重要的作用,這也是 ISP 最根本的價值。 1.3 個人分工本人在對以往驗證方法性能總結(jié)分析的基礎(chǔ)上,提出了一種新的驗證方法構(gòu)想,即 參考模型(ISP)檢查法;之后又從驗證需求出發(fā),在對 C3 核心基本結(jié)構(gòu)和相關(guān)技術(shù)進行總結(jié)和整理后,通過與各模塊設(shè)計人員的溝通,歸納出 ISP 的功能需求;通過對硬件結(jié)構(gòu)和功能的分析,對 ISP 進行了模塊的劃分和接口的設(shè)計;在之后 ISP 的開發(fā)過程中, 本人主要承擔(dān)了指令集、取指、譯碼、數(shù)據(jù)流地址轉(zhuǎn)換和內(nèi)存模塊的具體實現(xiàn)與算法分 析。 1.4 論文主要結(jié)構(gòu)第一章主要介紹了本人提出本項目的來源和背景、開發(fā)本項目的重要性,以及本人在實習(xí)期間完成的主要工作。 第

26、二章本人整理歸納了當(dāng)前使用的 C3 核心的基本結(jié)構(gòu)和申威芯片在并行計算上采用的相關(guān)技術(shù),并對一些分類進行了軟件層面的表示方法的描述,這將是進行 ISP 功能開發(fā)的主要依據(jù)。 第三章本人依據(jù)第二章歸納的基本功能結(jié)構(gòu),和與相關(guān)設(shè)計人員的溝通確認,進行了需求分析,從原理的角度對 ISP 做了描述,并提出了 ISP 的建模需求。 第四章是本人在與設(shè)計人員以及資深的驗證人員進行反復(fù)討論和溝通后,對 ISP 進行了主要功能模塊的劃分和接口的設(shè)計。 第五章則對本人負責(zé)實現(xiàn)的具體模塊進行了介紹,主要包含對這些模塊要實現(xiàn)什么、怎么實現(xiàn)和為什么這樣實現(xiàn)進行了具體描述和分析。 第六章是本人對實習(xí)的感想和畢業(yè)設(shè)計的總

27、結(jié)。 3 北京交通大學(xué)畢業(yè)設(shè)計(論文)正文2 相關(guān)技術(shù)及核心結(jié)構(gòu)概述本章本人在研究后整理歸納了當(dāng)前使用的第三代核心 C3 的基本結(jié)構(gòu)以及申威芯片在并行計算上采用的相關(guān)技術(shù)。主要工作是對 C3 核心的指令集從結(jié)構(gòu)進行了簡單的劃分和歸類,對處理器模式、尋址模式、寄存器種類及應(yīng)用范圍、異常和中斷的類型及處 理方法進行了總結(jié)。 2.1 SMT 技術(shù)SMT(simultaneous multithread,同步多線程技術(shù))是指在一個 CPU 的時鐘周期內(nèi)能夠執(zhí)行多個線程指令的硬件技術(shù)。傳統(tǒng)的 CPU 在一個時鐘只能處理一個指令序列。接下來筆者將介紹一下申威系統(tǒng)是如何在一個時鐘周期內(nèi)處理多個指令系列的。

28、2.1.1 流水線技術(shù)流水線處理技術(shù)是把一個重復(fù)的過程分成若干個子過程,每個子過程都可以與其他子過程同時進行。 首先考慮將線程級并行處理轉(zhuǎn)化為指令級并行處理的方法,即在 CPU 的核心中執(zhí)行一個以上的指令序列。假設(shè)把一條指令劃分為 5 個階段,每個階段需要一個時鐘節(jié)拍來執(zhí)行,那執(zhí)行一條指令就需要 5 個時鐘節(jié)拍,如果順序執(zhí)行,執(zhí)行 n 條指令就需要 5n 個時鐘節(jié)拍。 但是,如果把每個階段作為流水線的一個站臺,如圖 2-1 所示,則流水的執(zhí)行 n 條指令只需要 n+4 個時鐘節(jié)拍。 流水線又可以分為部件級流水線和處理機級流水線兩大類。 部件級流水線:把指令的執(zhí)行操作分段,使得各種數(shù)據(jù)類型的操作

29、能夠流水,即運算流水線和訪存流水線。 處理機級流水線:把指令的解釋和執(zhí)行的整個過程按照流水方式進行處理,即指令流水線。 指令流水線:負責(zé)取指、譯碼和發(fā)射以及按照程序的順序退出流水線。 運算流水線:執(zhí)行指令的功能,運算流水線與指令流水線連接,與執(zhí)行部件對應(yīng)的多個功能部件,為順序執(zhí)行或者亂序執(zhí)行的兩種流水線。 訪存流水線:訪存指令的流水線,連接指令流水線和運算流水線和高速緩存,為順序執(zhí)行或者亂序執(zhí)行的兩種流水線。44 北京交通大學(xué)畢業(yè)設(shè)計(論文)正文圖 2-1 流水線 圖 2-2 流水線站臺劃分 2.1.2 SIMD 技術(shù)SIMD( singletruction multiple data ),單

30、指令流多數(shù)據(jù)流,通過加載矢量寄存器的方法,一次性進行多個運算。 在介紹 SIMD 運算之前,先介紹一下 C3 核心指令系統(tǒng)支持的數(shù)據(jù)類型。C3 支持的數(shù)據(jù)類型包括整數(shù)和浮點數(shù)兩種,整數(shù)又劃分為字節(jié)(8 bit)、半字(16 bit)、字(32 bit)、長字(64 bit)四種,浮點數(shù)分為 S 浮點(32 bit)、D 浮點(64 bit)和特殊浮點數(shù)據(jù)三5 北京交通大學(xué)畢業(yè)設(shè)計(論文)正文種。S 浮點即為 IEEE754-1985 標(biāo)準(zhǔn)中的 32 位單精度浮點,D 浮點即為 IEEE754-1985中的 64 位雙精度浮點。特殊浮點數(shù)據(jù)有四個,分別為正無窮大、負無窮大、靜止的非數(shù)和的非數(shù)。無

31、窮大作為浮點數(shù)的界限;非數(shù)用來表示各種異常條件;的非數(shù)用于為初始化的變量提供一個值,作為運算指令的操作數(shù)時,指示無效操作,并可能產(chǎn)生算術(shù)異常;靜止的非數(shù)用于傳遞非法或無效的數(shù)據(jù)信息,作為運算指令的操作數(shù)時, 不產(chǎn)生算術(shù)異常。 SIMD 運算的實現(xiàn)主要依賴于向量寄存器。向量寄存器存儲的是一組不相關(guān)的數(shù)據(jù)集合,向量元素之間的次序是固定的,而且所有的數(shù)據(jù)元素具有相同的結(jié)構(gòu),如數(shù)據(jù)類 型、數(shù)據(jù)長度等屬性。每個向量寄存器為 256bit,可以同時支持 4 個 D 浮點、4 個長字、8 個 S 浮點、8 個字、16 個半字或 32 個字節(jié)的運算。發(fā)射一條指令就可以進行多條運 算,極大的提高了并行運算的能力

32、。52.1.3 芯片級并行指令并行技術(shù)在充分利用晶體管資源的同時,也增加了功耗。高功耗帶來了諸多問題,如封裝、冷卻成本提高,處理器可靠性降,使得指令級并行的發(fā)展達到了瓶頸。工業(yè)界做出的唯一選擇,就是利用高效能的多處理器核心代替低效能的單一核心6。ISP支持 4C、6A、SW1600、SW1610 等多款多核芯片和 3A、5A 等眾核芯片。 圖 2-3 多核芯片核組結(jié)構(gòu) 6 北京交通大學(xué)畢業(yè)設(shè)計(論文)正文圖 2-3 和 2-4 分別展示了一個多核芯片和眾核芯片的的核組結(jié)構(gòu)。多核芯片四個核心和眾核芯片的從核陣列在操作系統(tǒng)控制下可實現(xiàn)動態(tài)剪裁,被剪裁的核心可使其處于睡眠狀態(tài),以降低其運行功耗,通過

33、增加活動的核心數(shù),可以有效的提高處理性能,減 少活動的核心數(shù)量可以相對提升活動核心的主存帶寬和主存容量。 圖 2-4 眾核芯片核組結(jié)構(gòu) 2.2 RISC 指令集筆者對 C3 核心的指令集進行分析后發(fā)現(xiàn),C3 核心的指令均為 32 位等長的 RISC 指令,所有的指令的操作碼均為 6 位,某些指令中還包含擴展操作碼,即功能碼。C3 核心所有的運算均在寄存器之間進行,并設(shè)置了專門的訪存指令負責(zé)寄存器與主存之間傳遞數(shù)據(jù)。 為方便指令的譯碼,筆者根據(jù)寄存器域的個數(shù),從格式上申威指令系統(tǒng)將指令分為5 大類:系統(tǒng)調(diào)用指令、轉(zhuǎn)移指令、存儲器指令、簡單運算指令和復(fù)合運算指令(指令類的名稱由該指令格式中,所占比

34、例最多的指令功能類型確定,比如存儲器指令格式, 其中 80%的都是訪存指令,因此稱為存儲器指令格式)。 2.2.1 系統(tǒng)調(diào)用指令該指令只有一條,即 SYS_CALL,用于調(diào)用程序,指令中僅含操作碼和功能碼, 其能碼與具體的程序入口地址相對應(yīng)。 7 北京交通大學(xué)畢業(yè)設(shè)計(論文)正文圖 2-5 C3 核心指令格式 2.2.2 轉(zhuǎn)移指令轉(zhuǎn)移指令又稱控制指令,分為整數(shù)條件轉(zhuǎn)移、浮點條件轉(zhuǎn)移、無條件轉(zhuǎn)移、子程序調(diào)用和跳轉(zhuǎn)指令。用于定義相對于當(dāng)前 PC 的相對轉(zhuǎn)移。目標(biāo)指令的有效地址為 PC+4*disp。 2.2.3 存儲器指令存儲器指令主要用于定義寄存器與存儲器之間的數(shù)據(jù)移動。其中 Ra 域為讀存儲器

35、結(jié)果或?qū)懘鎯ζ鞯臄?shù)據(jù),Rb 加上帶符號的 16 位地址偏移形成存儲器有效地址 vaddr, 在 Ra 和 vaddr 對應(yīng)的存儲單元之間進行數(shù)據(jù)移動。 除訪存指令外,該格式的指令還包括一些原子指令、柵欄指令和雜項指令。 在某些芯片中,指令集進行了擴展,將 16 位的偏移地址縮短為 12 位,從而在指令中增加 4 位的功能域,但有效地址的計算方式不變。帶功能域的指令格式如圖 2-6 所示。 圖 2-6 帶功能域的存儲器指令格式 8 北京交通大學(xué)畢業(yè)設(shè)計(論文)正文2.2.4 簡單運算指令簡單運算指令用于兩個源操作數(shù)的整數(shù)、浮點以及 SIMD 運算指令。由 8 位功能碼確定具體指令功能。這類指令的

36、功能是 Ra 與 Rb 運算,結(jié)果保存到 Rc 中。 該類指令主要包括整數(shù)、浮點以及 SIMD 數(shù)據(jù)的加、減、乘、除等算術(shù)運算指令和與、或、非等邏輯運算指令以及移位運算指令。 C3 核心也支持立即數(shù)格式的簡單運算指令。立即數(shù)格式就是將立即數(shù)零擴展到指定的整數(shù),然后參與整數(shù)運算。但是只有整數(shù)運算和整數(shù) SIMD 運算才支持立即數(shù)格式。 浮點數(shù)和浮點 SIMD 運算只支持寄存器格式。 圖 2-7 簡單運算指令立即數(shù)格式 2.2.5 復(fù)合運算指令復(fù)合運算指令格式用于三個源操作數(shù)的整數(shù)運算指令、浮點運算指令、SIMD 運算指令和 SIMD 整理指令。具體又可分為整數(shù)復(fù)合運算指令格式、浮點復(fù)合運算指令格

37、式和可重構(gòu)運算指令格式三種。 這種格式的指令主要是包括條件選擇指令、浮點乘加和 SIMD 整理類指令。 整數(shù)復(fù)合運算指令,如圖 2-8 所示,由三位功能碼確定具體指令功能,通過操作碼分為寄存器格式和立即數(shù)格式兩種。Ra 與 Rb 或 8 位立即數(shù)以及 Rc 進行運算,運算結(jié) 果保存到 Rd。 圖 2-8 整數(shù)復(fù)合運算指令格式 9 北京交通大學(xué)畢業(yè)設(shè)計(論文)正文浮點復(fù)合運算指令格式如圖 2-9 所示,由 6 位功能碼確定具體指令功能,通過操作碼分為寄存器格式和立即數(shù)格式兩種,F(xiàn)a 與 Fb 以及 Fc 或 5 位立即數(shù)進行運算,結(jié)果保存到 Fd。擴展指令系統(tǒng)中整數(shù) SIMD 運算指令這兩種格式

38、,對立即數(shù)格式,是將指令中的 5 位立即數(shù)零擴展為字整數(shù),并復(fù)制相同的 8 個字整數(shù)組成字整數(shù)向量來參與運 算。浮點運算指令和擴展指令系統(tǒng)中的浮點 SIMD 運算指令只是用其中的寄存器格式。圖 2-9 浮點復(fù)合運算指令格式 可重構(gòu)運算指令,如圖 2-10 所示,其中操作碼僅為 4 位,指令包含 8 位的 zz 域, 其功能是從三個向量寄存器 Va,Vb 和 Vc 中相同的位置取出一位,組成 3 位的二進制數(shù), 來選擇 8 位的 zz 域的值,寫入向量寄存器 Vd 的對應(yīng)位。 圖 2-10 可重構(gòu)運算指令2.3 尋址模式C3 核心的基本尋址單位為 8 字節(jié),地址長度為 64 位,根據(jù)不同芯片的型

39、號,可以支持大小不同的地址空間。C3 核心存儲管理機制支持小端地址格式的字節(jié)尋址,不支持大端地址格式。以長字為例,長字內(nèi)的 8 個字節(jié)從右到左依次編號 0-7,長字的地址 就是字節(jié) 0 對于的地址。 圖 2-11 小端地址尋址格式10 北京交通大學(xué)畢業(yè)設(shè)計(論文)正文為了方便存儲空間的訪問管理和存儲接口的設(shè)計,筆者在這里把 C3 核心訪問的存儲空間主要歸結(jié)為兩種:一種是主存,一種是 IO。主存就是指芯片的內(nèi)接存儲器,而IO 則是連接的外設(shè),可能為 PCIE、維護接口等。 A5 等大多數(shù)芯片支持的物理地址空間都為 40 位,這里以 A5 為例,對地址的使用情況做一個介紹: 首先介紹一下對術(shù)語的約

40、定,PA i: j 表示訪問有效物理地址的區(qū)間為 PA 的 j-i 位(ij),PAi表示 PA 的第 i 位。如 A5 的有效物理地址用 PA39:0表示,示意物理地址的 0-39 位;PA39表示地址的第 39 位。 地址空間的劃分主要由物理地址的 39 位 PA39決定,該位為 0 表示存儲器空間, 為 1 表示 I/O 空間。對于存儲器空間,PA38:37位指示物理空間所在的核組編號,PA36: 34無意義,PA33:0為每個核組中存儲器地址,有效地址位根據(jù)外接的存儲器容量決定;對于 I/O 空間,PA38:0是否有意義,需根據(jù)具體的實現(xiàn)來定義(I/O 空間有沒有被占滿)。 根據(jù)對具體

41、指令尋址模式的分析,筆者將 C3 核心的尋址模式歸結(jié)為以下 4 類: 2.3.1 寄存器尋址寄存器尋址方式把操作數(shù)保存在寄存器中,C3 核心的一般運算都在寄存器之間進 行,幾乎所有的指令都采用寄存器尋址的方法。 2.3.2 立即尋址立即數(shù)尋址方式就是指令中直接包含源操作數(shù)。如 C3 核心的裝入立即數(shù)指令,當(dāng)源寄存器為 R31 時即為立即數(shù)尋址方式。另外,對于某些整數(shù)運算指令,如加法、減法、乘法、比較等指令,當(dāng)其中一個源操作數(shù)為 8 位立即數(shù)時,也可以看做立即數(shù)尋址方式。 2.3.3 偏移尋址偏移尋址方式就是操作數(shù)的有效地址由指令中寄存器內(nèi)容與包含在指令中的偏移量求和而形成,C3 核心的存儲器訪

42、問指令就是采用偏移尋址方式。對于偏移尋址,若偏移量為 0,則成為寄存器間接尋址方式;若寄存器的內(nèi)容為 0,則成為立即尋址方式。 11 北京交通大學(xué)畢業(yè)設(shè)計(論文)正文2.3.4 相對 PC 尋址相對 PC 尋址方式就是用更新后的 PC 值加上指令中包含的偏移量而形成的新的指 令格式。C3 核心的條件轉(zhuǎn)移和無條件轉(zhuǎn)移指令即采用相對 PC 的尋址方式。 2.4 處理器模式根據(jù)對硬件資源的訪問權(quán)限,可以分為 4 種處理器模式,硬件模式、虛擬模式、內(nèi) 核模式和用戶模式。同一核組的不同的核心可以處于不同的模式。 2.4.1 模式定義1) 硬件模式(hardware mode: HM): 最高級模式,為程

43、序的運行環(huán)境。在此模式下,可使用指令直接對底層硬件進行控制和操作,可使用系統(tǒng)寄存器。指令流只能以物理地址訪問,不進行虛實地址轉(zhuǎn)換,數(shù)據(jù)流可以用物理地址訪問,也可以用虛地址訪問,由具體的訪存指令決定。所有的中斷被,不響應(yīng)任何中斷請求。 2) 虛擬模式(virtual mode: VM):次高級模式,介于硬件與操作系統(tǒng)之間,提供虛擬層服務(wù)。此模式下,不能使用超頁模式在內(nèi)的虛擬地址訪問。 指令和系統(tǒng)寄存器,指令流和數(shù)據(jù)流可采用包括3) 內(nèi)核模式(kernel mode:KM): 次低級模式,為操作系統(tǒng)運行環(huán)境。在此模式下,不能使用斷請求。 指令和系統(tǒng)寄存器,指令流和數(shù)據(jù)流都采用虛地址訪問,允許響應(yīng)中

44、4) 用戶模式(user mode:UM):最低級模式,為用戶程序運行環(huán)境。在此模式下,不能使用請求。 指令和系統(tǒng)寄存器,指令流和地址流都采用虛擬地址進行訪問,允許中斷 2.4.2 模式的表示方法及轉(zhuǎn)換為了方便寄存器模式的表示,程序計數(shù)器 PC 的最低兩位用于記錄當(dāng)前處理器模式值,為“00”表示硬件模式,為“01”表示虛擬模式,為“10”表示內(nèi)核模式,為“11” 表示用戶模式。這樣以來,有效的地址空間就需要前移兩位7。比如 PA39:0,讀入PC 后,將保存在 PC41:2,PC1:0存儲處理器模式。處理器模式及模式之間的切換有以下幾種方式:(如圖 2-12) 1) 非硬件模式下執(zhí)行 SYS_

45、CALL 指令,可以從非硬件模式轉(zhuǎn)換到硬件模式。 12 北京交通大學(xué)畢業(yè)設(shè)計(論文)正文2)3)4)核心響應(yīng)中斷請求,可以從非硬件模式轉(zhuǎn)換到硬件模式。核心發(fā)現(xiàn)異常,可以從非硬件模式轉(zhuǎn)換到硬件模式。 硬件模式下執(zhí)行 PRI_RET 指令,可以從硬件模式轉(zhuǎn)換到任意模式。圖 2-12 處理器模式轉(zhuǎn)換2.4.3指令剛剛在圖 2-12 中提到的PRI_WCSR、PRI_RCSR、PRI_RET 和接下來提到的PRI_LD和 PRI_ST,為 C3 核心的五條指令,申威指令系統(tǒng)定義這五條指令的目的為了銜接操作系統(tǒng)和底層硬件,對底層硬件的訪問,必須要通過指令只能在硬件模式下執(zhí)行,其他模式執(zhí)行常。這類指令共有

46、 5 條,如表 2-1 所示。 指令。 指令,則會產(chǎn)生非法操作碼異表 2-1指令列表 序號指令名稱操作碼與功能碼描述1PRI_RCSR0x06.FExx讀控制與狀態(tài)寄存器 CSR2PRI_WCSR0x06.FFxx寫控制與狀態(tài)寄存器 CSR3PRI_RET0x07程序返回指令4PRI_LD0x25裝入指令5PRI_ST0x2D存儲指令13 北京交通大學(xué)畢業(yè)設(shè)計(論文)正文2.4.4程序程序是針對操作系統(tǒng)的一組程序,只能在 HM 模式下運行。在程序中,可 程序總使用 5 條指令,讀寫處理器控制與狀態(tài)寄存器,進行存儲器管理操作。結(jié)起來可以由以下觸發(fā): 1)2)3)中斷:包括復(fù)位、內(nèi)部中斷、外部中斷

47、和機器檢查錯等; 異常:包括算術(shù)自陷和存儲器管理故障等; SYS_CALL 指令。 程序主要應(yīng)用于以下幾種情況: 一些必要的功能用在硬件中直接實現(xiàn)過于復(fù)雜,但又無法用常規(guī)程序來實現(xiàn)。1)如 TLB 裝填、中斷確認和異常處理。 2) 一些必須為原子操作的功能,實現(xiàn)的指令序列較長,且需要訪問底層硬件。如從異常或中斷中返回等。 3) 一些為實現(xiàn)不同處理器之間兼容而設(shè)計的功能。 程序在指定的入口被調(diào)用,C3 核心有兩種程序入口,一種是 SYS_CALL指令相關(guān)的程序入口,另一種是異常和中斷相關(guān)的異常入口。 程序又分為用戶級程序、虛擬級程序和內(nèi)核級程序,分別對應(yīng)UM、VM 和 KM 模式。在這些模式下執(zhí)

48、行 SYS_CALL 指令時,會將指令流轉(zhuǎn)到程序的入口執(zhí)行,入口地址由基址寄存器(PRI_BASE)和指令功能碼共同決定。SYS_CALL指令的返回地址由系統(tǒng)寄存器 SR23 來保存,SR231:0記錄運行 SYS_CALL 指令時的處理器模式。 UM 模式下,只能啟動用戶級程序,如果對應(yīng)的指令功能碼不在 0x800xBF 之 SYS_CALL 指令可以啟動 0x800xBF 用戶級、0x000x3F 內(nèi)核級和 0x400x7F 虛擬級程序,范圍外的指令碼產(chǎn)生非法操作碼異常。 2.5 寄存器在申威處理器中,主要把寄存器劃分為核內(nèi)寄存器和芯片內(nèi)寄存器兩種。其中核內(nèi)寄存器主要包括整數(shù)寄存器、浮點寄

49、存器、CSR、程序計數(shù)器、計時器、系統(tǒng)寄存器和向量寄存器。核間寄存器則主要為 IOR。下面幾節(jié)著重介紹一下有特殊用法的寄存器。 14 北京交通大學(xué)畢業(yè)設(shè)計(論文)正文2.5.1 程序計數(shù)器程序計數(shù)器(program counter ,PC)是一個特殊的寄存器,用于對指令流進行尋址。一條指令被譯碼后,PC 指向下一條指令。PC 為 64 位,指示 32 位指令的字節(jié)地址。 PC 的高 62 位指示指令地址,低 2 位指示當(dāng)前處理器模式。 2.5.2 向量寄存器的使用在申威處理器中,向量寄存器(V0V31)與浮點寄存器(F0F31)共用,向量寄存器的低 64 位即為浮點寄存器。 圖 2-13 浮點

50、寄存器和向量寄存器的使用 由于浮點寄存器既可以作為基本指令中浮點運算的源寄存器和目標(biāo)寄存器,又可以作為擴展指令的源寄存器和目標(biāo)寄存器,也就是說,浮點寄存器里面的數(shù)據(jù)即可能是浮點數(shù)據(jù),也可能是整數(shù)數(shù)據(jù)。在使用向量寄存器時,必須保證運算的數(shù)據(jù)類型一致,這 樣的運算才是有意義的,否則運算結(jié)果將不可預(yù)測。 2.5.3寄存器的 SRE 位為 1 時,整數(shù)結(jié)構(gòu)寄存器中的 R1R2R4R7R20R23 被識別為系統(tǒng)寄存器。運行 SYS_CALL 指令時,默認使用系統(tǒng)寄存器 R23 來保存 SYS_CALL 指令的返回地址。其他情況下則不允許使用系統(tǒng)寄存器。 2.5.4 CSR核心設(shè)置了一組處理器控制與狀態(tài)寄

51、存器(CSR),用于實現(xiàn)對核心的控制,記錄15 北京交通大學(xué)畢業(yè)設(shè)計(論文)正文核心的運行狀態(tài)。一般情況下,CSR 可以分為兩類,一類是控制類,只能在 HM 模式下, 軟件通過指令 PRI_RCSR 和 PRI_WCSR 進行顯示讀寫,產(chǎn)生對硬件資源或硬件處為簡化對 CSR 的描述,這里使用一些符號來對 CSR 內(nèi)容的軟件訪問特性和復(fù)位狀態(tài)進行描述,其中,“W”指示可寫,“WO”指示只寫;“R”指示可讀,“RO”指示只讀;“RW”指示可讀寫;“W1C”指示寫 1 清除,寫 0 無影響;“WC”指示寫清除;“RO,x” 指示只讀且復(fù)位時初值為“x”;“WO,x”指示只寫且復(fù)位時初值為“x”;“R

52、W,x”指示可讀寫且復(fù)位時初值為“x”。 CSR 又可細分為指令部件的 CSR、數(shù)據(jù)部件的 CSR、二級 cache CSR、整數(shù)部件 CSR 和浮點部件 CSR。 2.5.5 IOR處理器內(nèi)部 IO 寄存器(IOR)主要用于存儲控制器和系統(tǒng)接口等非核心部件的控制和運行狀態(tài)的回收。對于存控部件和 PHY 控制相關(guān)的 IOR,每個核組有一套,對于系統(tǒng)接口、維護接口、以太網(wǎng)接口和 PCIE 接口中的 IOR,整個芯片只有一套。對 IOR 內(nèi) 容的軟件訪問控制和復(fù)位狀態(tài)掃描遵循 CSR 寄存器的描述符號約定。 2.6 異常異常是指指令處理過程中產(chǎn)生的,與指令流同步的、由程序或軟件原因而引起的問題。它

53、包括兩種類型: 1)故障:表示指令或指令的操作非法,在指令處理過程中產(chǎn)生,產(chǎn)生故障的指令并未正常退出,而是被終止。 2)算術(shù)自陷:表示運算類指令在運算時,操作數(shù)或運算結(jié)果出現(xiàn)異常,產(chǎn)生算術(shù)自陷的指令都將處理完畢并正常退出。 C3 核心為兩種異常保留的斷點都是精確的,并將發(fā)生異常的指令地址記錄在 CSR:EXC_PC 里。 2.6.1 故障故障的類型如下: 1)DTB 脫靶。當(dāng)數(shù)據(jù)流訪問 DTB 時,即不命中一級 DTB,又不命中二級 DTB,16 北京交通大學(xué)畢業(yè)設(shè)計(論文)正文則產(chǎn)生 DTB 脫靶故障。DTB 的一次脫靶故障一般需要裝填 DTB。在處理 ITB 脫靶或DTB 一次脫靶時,還可能產(chǎn)生 DTB 二次脫靶故障。二次脫靶故障指示需要操作系統(tǒng)需要按多級頁表來獲得正確的物理地址頁面號。 2)ITB 脫靶。當(dāng)指令流訪問 ITB 時,如果不命中 ITB,則產(chǎn)生 ITB 脫靶故障。當(dāng)發(fā)生 ITB 脫靶時,如果指令流訪問虛地址42位為 0,則進入 ITBM_SINGLE_0序入口,否則進入 ITBM_SINGLE_1程3)不對界故障。C3 核心對訪存類指令進行地址檢查時,如果地址不対界,則產(chǎn)生不対界故障,硬件自動記錄異常指令的 PC 值

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論