計(jì)算機(jī)組織與結(jié)構(gòu)課程設(shè)計(jì)模板2015-3-2修訂版_第1頁(yè)
計(jì)算機(jī)組織與結(jié)構(gòu)課程設(shè)計(jì)模板2015-3-2修訂版_第2頁(yè)
計(jì)算機(jī)組織與結(jié)構(gòu)課程設(shè)計(jì)模板2015-3-2修訂版_第3頁(yè)
計(jì)算機(jī)組織與結(jié)構(gòu)課程設(shè)計(jì)模板2015-3-2修訂版_第4頁(yè)
計(jì)算機(jī)組織與結(jié)構(gòu)課程設(shè)計(jì)模板2015-3-2修訂版_第5頁(yè)
已閱讀5頁(yè),還剩52頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、題 目:5 段流水 CPU 設(shè)計(jì)專 業(yè):計(jì)算機(jī)科學(xué)與技術(shù)班 級(jí):學(xué) 號(hào):姓 名:電 話:2015計(jì)算機(jī)組織與結(jié)構(gòu)計(jì)算機(jī)組織與結(jié)構(gòu) 課程設(shè)計(jì)報(bào)告課程設(shè)計(jì)報(bào)告郵 件:完成日期:指導(dǎo)教師: 與 與 與 與 與 與 與 與 與 與 與 與 與 與 與 與 與 與 與 與課程設(shè)計(jì)課程設(shè)計(jì)任務(wù)書(shū)任務(wù)書(shū)一、設(shè)計(jì)題目基于基于 Logisim 軟件仿真平臺(tái)的軟件仿真平臺(tái)的 5 段流水段流水 CPU 設(shè)計(jì)實(shí)現(xiàn)設(shè)計(jì)實(shí)現(xiàn)二、設(shè)計(jì)內(nèi)容設(shè)計(jì)模型機(jī)系統(tǒng)的總體結(jié)構(gòu)、指令系統(tǒng)和時(shí)序信號(hào)。在對(duì)該模型機(jī)系統(tǒng)中的部件功能利用 EDA 軟件的仿真功能進(jìn)行仿真分析和功能驗(yàn)證的基礎(chǔ)上,將部分電路下載到 FPGA,并與適當(dāng)?shù)耐鈬骷嗯浜希?/p>

2、實(shí)現(xiàn)模型機(jī)的整機(jī)系統(tǒng)。要求所設(shè)計(jì)的整機(jī)系統(tǒng)能支持自動(dòng)和單步運(yùn)行方式,能正確地執(zhí)行存放在主存中的程序的功能,對(duì)主要的數(shù)據(jù)流和控制流通過(guò) LED 適時(shí)顯示信息。三、設(shè)計(jì)要求1)支持 20 條基本指令,具體見(jiàn)表 1 和表 2;2)支持 5 段流水機(jī)制,可處理數(shù)據(jù)冒險(xiǎn),結(jié)構(gòu)冒險(xiǎn),分支冒險(xiǎn);3)能運(yùn)行由自己所設(shè)計(jì)的指令系統(tǒng)構(gòu)成的一段測(cè)試程序,測(cè)試程序應(yīng)能涵蓋所有指令,程序執(zhí)行功能正確。4)能運(yùn)行教師提供的標(biāo)準(zhǔn)測(cè)試程序,并統(tǒng)計(jì)執(zhí)行時(shí)間。四、設(shè)計(jì)流程1)根據(jù)課程設(shè)計(jì)指導(dǎo)書(shū)的要求,制定出設(shè)計(jì)方案;2)畫出自己所設(shè)計(jì)計(jì)算機(jī)系統(tǒng)的原理框圖,分析所需要的控制信號(hào)以及這些控制信號(hào)的有效形式;3)畫出各指令的指令周期流

3、程圖和所需要的控制信號(hào);4)設(shè)計(jì)出實(shí)現(xiàn)指令功能的控制器;5)調(diào)試、數(shù)據(jù)分析、驗(yàn)收檢查;6)課程設(shè)計(jì)報(bào)告和總結(jié)。五、成績(jī)?cè)u(píng)定 成績(jī)?cè)u(píng)定根據(jù)考勤、課程設(shè)計(jì)的過(guò)程、課程設(shè)計(jì)的效果、課程設(shè)計(jì)報(bào)告質(zhì)量等進(jìn)行綜合評(píng)定;其中設(shè)計(jì)過(guò)程和結(jié)果占 70%,課程設(shè)計(jì)報(bào)告占 30%;課程設(shè)計(jì)的成績(jī)?cè)u(píng)定等級(jí)為不及格、及格、中、良好、優(yōu)秀五級(jí);對(duì)基本功能進(jìn)行擴(kuò)展或設(shè)計(jì)具有非常鮮明的特征和一定程度的創(chuàng)新,可根據(jù)實(shí)際情況加分。六、設(shè)計(jì)報(bào)告要求 課程設(shè)計(jì)報(bào)告主要內(nèi)容包括:設(shè)計(jì)題目、設(shè)計(jì)目的、設(shè)備器材、設(shè)計(jì)原理及內(nèi)容、設(shè)計(jì)步驟、遇到的問(wèn)題及解決方法、設(shè)計(jì)總結(jié)、參考文獻(xiàn)等。要求在適當(dāng)位置配合相應(yīng)的實(shí)驗(yàn)原理圖、數(shù)據(jù)通路圖、實(shí)驗(yàn)接線圖

4、等圖表進(jìn)行說(shuō)明??偨Y(jié)部分主要寫設(shè)計(jì)工作簡(jiǎn)介以及設(shè)計(jì)體會(huì)。應(yīng)做到文理通順,內(nèi)容正確完整,書(shū)寫工整,裝訂整齊。課程設(shè)計(jì)報(bào)告采用計(jì)算機(jī)組織與結(jié)構(gòu)專用設(shè)計(jì)報(bào)告模板,A4 紙雙面打印。七、時(shí)間安排 課程設(shè)計(jì)的總體時(shí)間為 2 周,具體安排如下:1)第 1 天:到實(shí)驗(yàn)室布置任務(wù)和集中講解。2)第 13 天:學(xué)生查閱資料,開(kāi)始方案設(shè)計(jì)。3)第 4 天:中期進(jìn)度檢查,單周期 CPU 驗(yàn)收檢查。4)第 6 天:中期進(jìn)度檢查,理想流水線多周期 CPU 驗(yàn)收檢查。5)第 10 天:最終結(jié)果驗(yàn)收。6)八、主要參考文獻(xiàn)1 DAVID A.PATTERSON(美).計(jì)算機(jī)組成與設(shè)計(jì)硬件/軟件接口(原書(shū)第 4 版).北京:機(jī)

5、械工業(yè)出版社. 2 David Money Harris(美).數(shù)字設(shè)計(jì)和計(jì)算機(jī)體系結(jié)構(gòu)(第二版). 機(jī)械工業(yè)出版社3 秦磊華,吳非,莫正坤.計(jì)算機(jī)組成原理. 北京:清華大學(xué)出版社,2011 年.4 袁春風(fēng)編著. 計(jì)算機(jī)組成與系統(tǒng)結(jié)構(gòu). 北京:清華大學(xué)出版社,2011 年.5 張晨曦,王志英. 計(jì)算機(jī)系統(tǒng)結(jié)構(gòu). 高等教育出版社,2008 年.Comment T1: 注意目錄的格式,系統(tǒng)自動(dòng)生成的格式和這個(gè)有差異,生成目錄后按這個(gè)格式排版,不要三級(jí)目錄。Comment T2: 章節(jié)形式,注意每章必須新起一頁(yè),具體方法是在上一章尾部增加一個(gè)分頁(yè)符Comment T3: 二級(jí)標(biāo)題,具體可以可以用格式

6、刷復(fù)制Comment U4: 給出方案概要設(shè)計(jì),注意這章是設(shè)計(jì),不是最終實(shí)現(xiàn),請(qǐng)不要將最終的連線圖,代碼等放在這一章Comment U5: 撰寫具體的實(shí)現(xiàn)細(xì)節(jié),流程圖,原理圖,引腳連接等等,微程序?qū)崿F(xiàn),微指令實(shí)現(xiàn),控存安排等等細(xì)節(jié),上一章主要講方案,這章描述最終實(shí)現(xiàn)細(xì)節(jié)。Comment U6: 如果使用了FPGA,實(shí)驗(yàn)結(jié)果必須有圖和仿真曲線,否則不需要這部分Comment U7: 驗(yàn)證系統(tǒng)運(yùn)行正確的測(cè)試細(xì)節(jié)Comment U8: 描述本次課設(shè)進(jìn)度安排與關(guān)鍵時(shí)間節(jié)點(diǎn)華華 中中 科科 技技 大大 學(xué)學(xué) 課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告目 錄1 課程設(shè)計(jì)概述課程設(shè)計(jì)概述 .31.1 課設(shè)目的 .3

7、1.2 設(shè)計(jì)任務(wù) .31.3 設(shè)計(jì)要求 .32 實(shí)驗(yàn)原理與環(huán)境實(shí)驗(yàn)原理與環(huán)境.42.1 實(shí)驗(yàn)原理 .42.2 實(shí)驗(yàn)環(huán)境 .43 總體總體方案設(shè)計(jì)方案設(shè)計(jì) .53.1 需求分析 .53.2 硬件設(shè)計(jì) .53.3 軟件設(shè)計(jì) .74 詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn).94.1 選用芯片 .94.2 硬件實(shí)現(xiàn) .94.3 軟件實(shí)現(xiàn) .125 實(shí)驗(yàn)過(guò)程與調(diào)試實(shí)驗(yàn)過(guò)程與調(diào)試.175.1 仿真 XXX.175.2 可自行安排章節(jié) .175.3 主要故障與調(diào)試 .175.4 功能測(cè)試.175.5 實(shí)驗(yàn)流程圖.186 設(shè)計(jì)總結(jié)與心得設(shè)計(jì)總結(jié)與心得.196.1 課設(shè)總結(jié) .19Comment U9: 主要講課設(shè)體會(huì),

8、收獲,以及對(duì)課設(shè)的建議Comment T10: 參考文獻(xiàn)必須規(guī)范,見(jiàn)后續(xù)說(shuō)明I華華 中中 科科 技技 大大 學(xué)學(xué) 課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告6.2 課設(shè)心得.19參考參考文獻(xiàn)文獻(xiàn).20Comment T11: 章節(jié)形式,注意每章必須新起一頁(yè),具體方法是在上一章尾部增加一個(gè)分頁(yè)符Comment T12: 二級(jí)標(biāo)題,具體可以可以用格式刷復(fù)制2華華 中中 科科 技技 大大 學(xué)學(xué) 課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告1課程設(shè)計(jì)概述請(qǐng)仔細(xì)閱讀所有的批注,閱讀理解后刪除批注請(qǐng)仔細(xì)閱讀所有的批注,閱讀理解后刪除批注模板各個(gè)標(biāo)題下面的內(nèi)容僅是舉例,作者應(yīng)依照自己思想重寫該部分內(nèi)容模板各個(gè)標(biāo)題下面的內(nèi)容僅

9、是舉例,作者應(yīng)依照自己思想重寫該部分內(nèi)容1.1課設(shè)目的計(jì)算機(jī)組成原理是計(jì)算機(jī)專業(yè)的核心專業(yè)基礎(chǔ)課,講解了計(jì)算機(jī)硬件構(gòu)成以及各部分硬件的功能與實(shí)現(xiàn)。課程設(shè)計(jì)屬于設(shè)計(jì)型實(shí)驗(yàn),不僅鍛煉學(xué)生簡(jiǎn)單計(jì)算機(jī)系統(tǒng)的設(shè)計(jì)能力,鞏固專業(yè)知識(shí),而且通過(guò)進(jìn)行設(shè)計(jì)及實(shí)現(xiàn),進(jìn)一步提高分析和解決問(wèn)題的能力,從根本上認(rèn)識(shí)到了計(jì)算機(jī)工作的原理。本實(shí)驗(yàn)要求實(shí)現(xiàn)簡(jiǎn)單 CPU 的基本功能,結(jié)合組成原理對(duì)計(jì)算機(jī)功能部件的講解,分別進(jìn)行考慮設(shè)計(jì)出符合基本要求的各個(gè)基本部件,然后對(duì)整個(gè)系統(tǒng)進(jìn)行綜合考慮,不斷調(diào)整自己設(shè)計(jì)的功能部件,以實(shí)現(xiàn)能解決較為簡(jiǎn)單功能程序的 CPU。在一步步設(shè)計(jì) CPU 過(guò)程中,分步進(jìn)行不同階段的 CPU 設(shè)計(jì),以幫助

10、學(xué)生從簡(jiǎn)入深地了解整個(gè)計(jì)算機(jī)的硬件系統(tǒng)。由于計(jì)算機(jī)硬件系統(tǒng)的設(shè)計(jì)需要組成原理學(xué)到的許多知識(shí),讓學(xué)生學(xué)會(huì)理論聯(lián)系實(shí)際,將學(xué)到的組成原理知識(shí)應(yīng)用到實(shí)際設(shè)計(jì)中,增加學(xué)生的專業(yè)素養(yǎng),提高專業(yè)認(rèn)知。在設(shè)計(jì)過(guò)程中,由于實(shí)驗(yàn)需要設(shè)計(jì)的知識(shí)還包括課外的一切內(nèi)容,因此需要學(xué)生自主學(xué)習(xí),獨(dú)自查閱資料,學(xué)會(huì)獲取知識(shí)的能力。1.2設(shè)計(jì)任務(wù)計(jì)算機(jī)系統(tǒng)設(shè)計(jì)的總體目標(biāo)是設(shè)計(jì)模型機(jī)系統(tǒng)的總體結(jié)構(gòu)、指令系統(tǒng)和時(shí)序信號(hào)。所設(shè)計(jì)的主機(jī)系統(tǒng)能支持自動(dòng)和單步運(yùn)行方式執(zhí)行一些較為簡(jiǎn)單功能的程序,例如老師給出的跑馬燈程序,要求程序每一步的結(jié)果都和理論相符,最終的結(jié)果與理論結(jié)果完全正確。并且要在適當(dāng)?shù)奈恢茫o出程序運(yùn)行過(guò)程中電路各個(gè)功能的執(zhí)

11、行參數(shù),例如電路跳轉(zhuǎn)的次數(shù),以及不同跳轉(zhuǎn)指令的執(zhí)行次數(shù)等,并能給出電路各個(gè)顯示部件、寄存器以及存儲(chǔ)器的數(shù)值結(jié)果,以確定功能是否執(zhí)行正確,并能幫助3華華 中中 科科 技技 大大 學(xué)學(xué) 課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告設(shè)計(jì)者調(diào)試自己的電路。具體設(shè)計(jì)任務(wù)如下:1.單周期 CPU 設(shè)計(jì)與實(shí)現(xiàn):要求在一個(gè)周期中實(shí)現(xiàn) CPU 單個(gè)功能的電路,能支持 20 條基本指令,能運(yùn)行自己為電路設(shè)計(jì)的簡(jiǎn)單的并能涵蓋所設(shè)計(jì)的所有基本指令的功能程序,能運(yùn)行老師給出的標(biāo)準(zhǔn)程序,能監(jiān)控程序的執(zhí)行過(guò)程,并能得出正確結(jié)果。2.理想流水線的多周期 CPU:將以上所述設(shè)計(jì)的單周期 CPU 進(jìn)行改變,將適當(dāng)?shù)牟考M合進(jìn)行組裝,設(shè)計(jì)成

12、為多周期 CPU 電路,形成將指令過(guò)程分成 5 個(gè)階段 有取指令 IF、譯碼器 ID、控制器 EX、訪存部件 MEM 以及寫回部件 WB 的五段流水線電路,不同階段之間設(shè)置緩沖接口部件,構(gòu)建各階段之間的接口部件,接口定義盡可能簡(jiǎn)化,流水線應(yīng)向后續(xù)段傳遞數(shù)據(jù)信息,控制信息,反饋信息,后續(xù)部件對(duì)數(shù)據(jù)的加工處理依賴于前階段傳遞過(guò)來(lái)的信息。ID 段譯碼生成該指令的所有控制信號(hào),控制信號(hào)將逐段向后傳遞(越到最后階段,信號(hào)越少),后續(xù)部件控制信號(hào)不再單獨(dú)生成。注意單周期 CPU 中的控制器是可以在 ID 段復(fù)用的。3.插入氣泡式的冒險(xiǎn)處理:由于存在數(shù)據(jù)相關(guān)與分支相關(guān),如果要實(shí)現(xiàn)功能完整的 CPU 電路,需

13、要分支相關(guān)和消除數(shù)據(jù)相關(guān),采用插入氣泡的方式可以解決數(shù)據(jù)相關(guān)性和分支相關(guān)性,對(duì)接口進(jìn)行相應(yīng)的修改,在分支相關(guān)和數(shù)據(jù)相關(guān)時(shí)對(duì) CPU 插入氣泡,保證流水線功能的正確性。4.數(shù)據(jù)重定向機(jī)制的流水線:采用數(shù)據(jù)重定向到方式也可以實(shí)現(xiàn)消除數(shù)據(jù)相關(guān),選擇在適當(dāng)?shù)碾A段完成數(shù)據(jù)重定向,在適當(dāng)?shù)碾A段進(jìn)行檢測(cè)。確定數(shù)據(jù)重定向的數(shù)據(jù)來(lái)源,以及不同指令需要的數(shù)據(jù)不同,因此需要如何區(qū)分不同的數(shù)據(jù)對(duì)象,分析出采用數(shù)據(jù)重定向機(jī)制后由于 Load-Use 沖突和分支相關(guān)性,因此還需要插入氣泡。5.分支目標(biāo)緩沖器(BTB)結(jié)構(gòu)的動(dòng)態(tài)分支預(yù)測(cè):由于指令的 PC 操作部件在取指令 IF 階段,因此選擇在這個(gè)階段進(jìn)行動(dòng)態(tài)分支預(yù)測(cè),考

14、慮如何預(yù)測(cè)分支相關(guān)性,以及預(yù)測(cè)結(jié)果對(duì)實(shí)際分支指令的執(zhí)行有無(wú)影響并造成的各種影響。限定 BTB 緩沖區(qū)大小為 4,可容納 4 條分支指令,思考如何進(jìn)行全相聯(lián)比較,多余用 4 條分支指令時(shí)LRU 算法淘汰,考慮用何種結(jié)構(gòu)用硬件實(shí)現(xiàn)。4華華 中中 科科 技技 大大 學(xué)學(xué) 課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告1.3設(shè)計(jì)要求根據(jù)組成原理理論課程所學(xué)的知識(shí),設(shè)計(jì)出簡(jiǎn)單計(jì)算機(jī)系統(tǒng)的總體方案,結(jié)合各單元實(shí)驗(yàn)積累和課堂上所學(xué)知識(shí),選擇適當(dāng)芯片,綜合考慮各芯片功能結(jié)構(gòu),設(shè)計(jì)簡(jiǎn)單的計(jì)算機(jī)系統(tǒng),具體要求如下:(1) 根據(jù)課設(shè)指導(dǎo)書(shū)的要求,制定設(shè)計(jì)方案。由于實(shí)驗(yàn)要求先要設(shè)計(jì)出單周期 CPU 電路,然后再實(shí)現(xiàn)理想流水線的多

15、周期 CPU,再完成插入氣泡式的冒險(xiǎn)處理,再完成數(shù)據(jù)轉(zhuǎn)發(fā)式的數(shù)據(jù)冒險(xiǎn)處理,最后實(shí)現(xiàn)動(dòng)態(tài)分支預(yù)測(cè)的分支冒險(xiǎn)處理。分析上訴實(shí)驗(yàn)過(guò)程,可以知道,5 段流水線的多周期 CPU 是在單周期 CPU 電路的基礎(chǔ)上實(shí)現(xiàn)的,而插入氣泡、數(shù)據(jù)轉(zhuǎn)發(fā)以及分支預(yù)測(cè)又是在理想流水線上實(shí)現(xiàn)的,還有數(shù)據(jù)轉(zhuǎn)發(fā)電路中也存在著插入氣泡的功能需求,因此可以知道每一個(gè)實(shí)驗(yàn)都是需要在上一個(gè)實(shí)驗(yàn)完成之后才可以進(jìn)行,不然實(shí)驗(yàn)便會(huì)進(jìn)入處處碰壁的狀態(tài),在許多個(gè)十分麻煩的困難中無(wú)法走出來(lái)。實(shí)驗(yàn)首先是需要設(shè)計(jì)一個(gè)單周期的 CPU 電路,而整個(gè)實(shí)驗(yàn)的設(shè)計(jì)平臺(tái)是Logisim,因此需要仔細(xì)了解設(shè)計(jì)平臺(tái)中給出的各個(gè)功能部件,比如各個(gè)存儲(chǔ)器接口的功能,存

16、儲(chǔ)器接口的功能使用如果十分巧妙,會(huì)使得整個(gè)電路的功能十分容易得到實(shí)現(xiàn)。然后結(jié)合組成原理的理論知識(shí),考慮單周期 CPU 的設(shè)計(jì),由于整個(gè)CPU 分為取指令 IF、譯碼 ID、執(zhí)行 EX、訪存 MEM 以及寫回 WB 五個(gè)功能部件,因此可以分別對(duì) 5 個(gè)功能部件進(jìn)行分開(kāi)設(shè)計(jì)。先只針對(duì)取指令部件,需要有一個(gè) PC+1 的過(guò)程,但是由于存在指令 PC 的跳轉(zhuǎn),因此需要一個(gè)選擇端對(duì)下一個(gè) PC 進(jìn)行選擇。下來(lái)再考慮譯碼階段,由于單周期 CPU 需要實(shí)現(xiàn) 20 條不同功能的指令,指令的格式一共有 3 種,因此在進(jìn)行譯碼的時(shí)候,需要將整個(gè)指令分為 3 種不同的譯碼,并根據(jù)以后需要實(shí)現(xiàn)的功能,例如寫入寄存器的

17、選擇,進(jìn)行功能的擴(kuò)展。然后是執(zhí)行階段,由于實(shí)際中的 CPU只有一個(gè)計(jì)算器,因此在整個(gè)電路中應(yīng)該盡量少使用計(jì)算器中存在的一些計(jì)算功能,在執(zhí)行階段中,有許多需要對(duì)譯碼器傳來(lái)的指令進(jìn)行相應(yīng)功能的實(shí)現(xiàn),因此應(yīng)該保持一種盡量減少計(jì)算部件的思想設(shè)計(jì)電路,并且實(shí)際的 CPU5華華 中中 科科 技技 大大 學(xué)學(xué) 課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告需要考慮耗能問(wèn)題,因此電路也盡量采用以節(jié)約電能的思想設(shè)計(jì)電路,采用這兩種設(shè)計(jì)思想設(shè)計(jì)電路,將譯碼器傳來(lái)的指令進(jìn)行相關(guān)的操作已形成不同的執(zhí)行功能,傳遞到不同的部件中去。然后設(shè)計(jì)訪存 MEM 階段,由于這一個(gè)階段只需要將控制階段中已經(jīng)形成的功能信號(hào)傳遞到數(shù)據(jù)存儲(chǔ)器,然后數(shù)

18、據(jù)存儲(chǔ)器 RAM 根據(jù)傳遞過(guò)來(lái)的指令信號(hào),進(jìn)行相關(guān)的數(shù)據(jù)寫入或讀取功能。最后是數(shù)據(jù)寫回的階段,這一階段只需要將計(jì)算器或者數(shù)據(jù)存儲(chǔ)器中取出的數(shù)據(jù)根據(jù)譯碼器選擇適當(dāng)?shù)膶懭爰拇嫫鲗懭爰拇嫫鹘M即可。在 5 個(gè)功能部件都分析完畢之后,還需要考慮到各個(gè)功能實(shí)現(xiàn)部件的設(shè)計(jì),比如寄存器組的設(shè)計(jì),需要綜合考慮需要實(shí)現(xiàn)的功能,以設(shè)計(jì)相應(yīng)的寄存器組。接下來(lái)考慮理想流水線的多周期電路的實(shí)現(xiàn),由于上一步是實(shí)現(xiàn)單周期的 CPU,因此并沒(méi)有將各個(gè)功能部件進(jìn)行相應(yīng)的封裝,有時(shí)候?yàn)榱朔奖憧赡軐蓚€(gè)功能部件連接在一起,因此這一個(gè)只需要將每一個(gè)功能部件分離開(kāi)來(lái),將每一個(gè)功能部件控制信息的傳遞使用接口來(lái)實(shí)現(xiàn),然后將每一個(gè)已經(jīng)封裝好了

19、的功能部件按序排列,在每一個(gè)功能部件之間設(shè)置一個(gè)鎖存器,接收上一個(gè)部件傳遞過(guò)來(lái)的信息并在下一個(gè)時(shí)鐘到來(lái)的時(shí)候講信息傳遞到下一個(gè)功能部件中實(shí)現(xiàn)多周期的 CPU 控制。再實(shí)現(xiàn)插入氣泡式的冒險(xiǎn)處理,由于這一階段需要實(shí)現(xiàn)消除數(shù)據(jù)相關(guān)和分支相關(guān),因此需要綜合考慮整個(gè)電路的設(shè)計(jì)。分支相關(guān)的消除較為簡(jiǎn)單,只要在控制器中將指令進(jìn)行分析,然后根據(jù)電路是否跳轉(zhuǎn),來(lái)插入氣泡,使得在電路中插入一個(gè) NOP 指令,將 PC 下一個(gè)地址轉(zhuǎn)換成需要跳轉(zhuǎn)的地址即可,就可以實(shí)現(xiàn)分支相關(guān)。而消除數(shù)據(jù)相關(guān)稍微要復(fù)雜一些,當(dāng)然并不是只要實(shí)現(xiàn)上訴功能就可以完成,電路還需要綜合考慮指令的類別,由于我自身考慮設(shè)計(jì)的電路是在 ID 階段對(duì)兩

20、條相鄰的指令進(jìn)行比較,因此在需要冒泡的時(shí)候,需要暫停 PC 的自增操作,阻止 IF/ID 段的鎖存器繼續(xù)寫入數(shù)據(jù),并對(duì) ID/EX 段的鎖存器進(jìn)行清空處理,只有這樣,才可以實(shí)現(xiàn)不改變程序進(jìn)行并達(dá)到數(shù)據(jù)相關(guān)消除的目的。然后實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)發(fā)的數(shù)據(jù)冒險(xiǎn)處理,在這一階段也需要將上一條指令與當(dāng)前指令進(jìn)行比較,在滿足數(shù)據(jù)相關(guān)的情況下,將下一階段或者下二階段已經(jīng)計(jì)算出來(lái)的或者訪存取出的數(shù)值直接向前傳遞給計(jì)算器的兩個(gè)操作數(shù)之一,6華華 中中 科科 技技 大大 學(xué)學(xué) 課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告即可實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)發(fā)的方式。但是在這一階段需要綜合考慮指令的類別,以控制傳遞回來(lái)的數(shù)值的確是當(dāng)前計(jì)算所需要的數(shù)值,而不是

21、其他寄存器數(shù)值或者無(wú)趕緊要的數(shù)值。由于分支相關(guān)在上一階段已經(jīng)解決,這一階段又消除了數(shù)據(jù)冒險(xiǎn),看起來(lái)好像已經(jīng)實(shí)現(xiàn)了整個(gè)電路,但是我們需要考慮到 LOAD 指令的特殊性,由于它必須進(jìn)入第四階段進(jìn)行訪存控制,將數(shù)值取出才是當(dāng)前正確的數(shù)值,然后這已經(jīng)是一個(gè)周期中末期了,然后第三階段 EX 需要數(shù)值馬上進(jìn)行相應(yīng)的操作數(shù)傳入,因此這里就存在了數(shù)據(jù)相關(guān)性,因此采用的解決辦法是在存在上一條指令是 LOAD 指令的時(shí)候,依舊采用的是冒泡數(shù)據(jù)冒險(xiǎn)處理,通過(guò)插入氣泡的方式暫停一個(gè)周期,等到取出的數(shù)據(jù)到達(dá)了 WB 階段的時(shí)候,在傳入到 EX 階段,這樣便可以實(shí)現(xiàn)在 EX 階段的初期就將需要進(jìn)入運(yùn)算器的操作數(shù)傳遞到 E

22、X 階段。最后實(shí)現(xiàn)動(dòng)態(tài)分支預(yù)測(cè)的分支冒險(xiǎn)處理,在這一階段因?yàn)樾枰獙?duì) PC 地址進(jìn)行操作,而這一個(gè)操作的過(guò)程是在 IF 階段進(jìn)行的,因此考慮動(dòng)態(tài)分支預(yù)測(cè)利用 IF 階段對(duì) PC+1 的操作來(lái)實(shí)現(xiàn),由于動(dòng)態(tài)分支預(yù)測(cè)采用的是假定每次分支預(yù)測(cè)都是正確的,但是電路中肯定存在預(yù)測(cè)錯(cuò)誤的可能,因此需要設(shè)定一個(gè)判定位。由于在程序的進(jìn)行過(guò)程中,不斷有新的跳轉(zhuǎn)指令 PC 的寫入,而實(shí)驗(yàn)又要求限定 BTB 緩沖區(qū)大小為 4,可容納 4 條分支指令,分支地址要進(jìn)行全相聯(lián)比較,這時(shí)候就需要烤爐多余 4 條分支指令時(shí)如何淘汰的問(wèn)題,實(shí)驗(yàn)要求用硬件實(shí)現(xiàn) LRU 算法來(lái)對(duì)分支指令 PC 進(jìn)行淘汰,而 LRU 的實(shí)現(xiàn)最好的結(jié)構(gòu)

23、就是棧的結(jié)構(gòu),新到來(lái)的分支指令 PC 放到棧頂,其余的數(shù)值向后轉(zhuǎn)移,這樣最不常用的指令地址 PC 就被排除,因此用硬件實(shí)現(xiàn) LRU 算法同等地可以表示為用硬件實(shí)現(xiàn) LRU 棧的結(jié)構(gòu)。(2) 畫出自己所設(shè)計(jì)計(jì)算機(jī)系統(tǒng)的原理圖和器件連接頭單周期 CPU 電路所有的電路的功能都是由一個(gè)周期驅(qū)動(dòng)的,因此當(dāng)一個(gè)周期完成的時(shí)候,電路的一條指令就執(zhí)行完畢,因此整個(gè)電路從取指到最后的寫回都是直接連接的,而沒(méi)有存在寄存器滯后周期的存在。7華華 中中 科科 技技 大大 學(xué)學(xué) 課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告單周期 CPU 電路如圖 2.1:圖 1.1 單周期 CPU 電路多周期五段流水線電路將整個(gè) CPU 功能

24、分為 5 個(gè)部分,分為 IF 取指令、ID 譯碼、EX 執(zhí)行、MEM 訪存以及 WB 寫回 5 個(gè)階段,其中每一個(gè)階段有一個(gè)周期驅(qū)動(dòng),因此一條指令的執(zhí)行完成就要 5 個(gè)周期才可以實(shí)現(xiàn)。其中由于數(shù)據(jù)沖突以及結(jié)構(gòu)沖突的存在,因此還需要在理想 5 段流水線上添加上一些處理沖突的功能部件。在五段流水線中,由于數(shù)據(jù)傳遞的需要,因此還需要在每一個(gè)階段的電路中間加入鎖存器,以便對(duì)整個(gè) 5 段流水線數(shù)據(jù)處理進(jìn)行控制。 指令 存儲(chǔ)器 ROMPC 控制器(包括顯示等功能)計(jì) 算 器 數(shù)據(jù) 存儲(chǔ)器 RAM8華華 中中 科科 技技 大大 學(xué)學(xué) 課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告多周期 5 段流水線電路:圖 1.2 多

25、周期 5 段流水線 CPU 電路(3)設(shè)計(jì)分析概述由于本次課程設(shè)計(jì)需要設(shè)計(jì)兩個(gè)截然不同的 CPU 電路,一種是單周期 CPU電路,要求整個(gè)電路在一個(gè)時(shí)鐘的驅(qū)動(dòng)下完成所有 CPU 的工作,由于電路本來(lái)就需要時(shí)鐘驅(qū)動(dòng),又由于實(shí)驗(yàn)的設(shè)計(jì)平臺(tái)是在理想的狀態(tài)下實(shí)現(xiàn)的,因此,只要把握住電路在每一次時(shí)鐘跳變的時(shí)候,都進(jìn)行了正確的操作就可以保證 CPU電路的實(shí)現(xiàn)。第二個(gè)需要實(shí)現(xiàn)多周期的 CPU 電路,需要利用流水線的思想構(gòu)建 CPU 的工作流程,這里只需要轉(zhuǎn)換思想,將每一個(gè)階段的工作電路看成一個(gè)單周期的功能電路,然后對(duì)第一步設(shè)計(jì)的電路進(jìn)行適當(dāng)?shù)男薷?,就可以?shí)現(xiàn)需要的功能。然后針對(duì)需要考慮的處理沖突的功能電路,

26、在五段流水線電路中進(jìn)行相應(yīng)的信號(hào)的傳送,處理信息后將處理結(jié)果控制信號(hào)傳到控制的端口對(duì)電路進(jìn)行控制。本實(shí)驗(yàn)其他的設(shè)計(jì)要求及其他注意事項(xiàng)為:1、本課程設(shè)計(jì)的內(nèi)容基本無(wú)法在一本教科書(shū)中弄清楚,請(qǐng)大家按參考文獻(xiàn)閱讀。IFIF/IDIDEXMEMWBID/EXIF/MEMMEM/WB分 支預(yù) 測(cè)數(shù) 據(jù) 重 定 向插 入 氣 泡9華華 中中 科科 技技 大大 學(xué)學(xué) 課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告2、在實(shí)現(xiàn) CPU 時(shí),你可以使用任何 logisim 內(nèi)建的電路組件。3、指令 ROM 和數(shù)據(jù) RAM 必須在 main 電路中可見(jiàn),不能封裝在子電路中。 4、顯示模塊應(yīng)該在主電路中可見(jiàn)。5、 寄存器也應(yīng)該想

27、辦法在主電路中可監(jiān)測(cè)。 6、 主要部件之間還是需要適當(dāng)連線,隧道工具不能過(guò)度使用,要能看清楚各部件之間的連接關(guān)系。7、盡可能的使用標(biāo)簽工具去注釋你的電路,包括控制信號(hào),數(shù)據(jù)通路,顯示模塊,總線等,這會(huì)讓你的電路更加容易調(diào)試!8、注意標(biāo)簽以及注釋的命名規(guī)范,過(guò)長(zhǎng)的命名都會(huì)對(duì)后續(xù)的畫圖連接造成影響。9、Logisim 中可以將不同的模塊用不同的顏色區(qū)分,建議用顏色區(qū)分各接口部件和關(guān)鍵模塊。10、接口部件封裝盡可能封裝的長(zhǎng)一點(diǎn),否則控制線多了以后可能不方便布線。11、PC,IR 最好一直傳遞到最后一級(jí),這樣方便觀測(cè)流水線運(yùn)行的狀況。12、流水線各級(jí)是否產(chǎn)生氣泡可以用 LED 指示燈顯示,方便觀察流水

28、線運(yùn)行狀況。13、各里程碑版本經(jīng)過(guò)充分測(cè)試后,備份后再開(kāi)新的分支進(jìn)行新的開(kāi)發(fā),以避免新版本無(wú)法開(kāi)發(fā)成功,老版本又檢查不了的悲劇。(最好利用一些云平臺(tái)進(jìn)行自己的軟件版本管理和備份,避免不必要的重復(fù)勞動(dòng))10華華 中中 科科 技技 大大 學(xué)學(xué) 課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告2實(shí)驗(yàn)原理與環(huán)境2.1實(shí)驗(yàn)原理計(jì)算機(jī)組成原理詳細(xì)地介紹了 CPU 每一個(gè)功能在 CPU 中所處的作用,并且仔細(xì)地分析了每一個(gè) CPU 電路的構(gòu)成,讓我們了解到控制信息、需要操作的數(shù)據(jù)如何在 CPU 中進(jìn)行傳遞、操作。CPU 的工作數(shù)字邏輯課程詳細(xì)地講解了基本電路的形成,介紹了電路各個(gè)部件工作的方式與過(guò)程,需要注意的分析點(diǎn),是

29、組成原理中電路的基礎(chǔ),只有在詳細(xì)地了解了數(shù)字邏輯的知識(shí)內(nèi)容之后,才可以真正地理解組成原理對(duì) CPU 電路的講解與分析。 圖 2.1 完整單周期 MIPS 處理器示意圖如圖 2.1 是單周期 MIPS 處理器,而我們這次需要實(shí)現(xiàn)的單周期 CPU 和上圖所示的電路圖基本上類似,其中存在的區(qū)別是我們實(shí)現(xiàn)的是 16 位 CPU 電路,而 MIPS 處理器是 32 位的,總的來(lái)說(shuō),我們完全可以參考上圖的 MIPS 處理器的電路分析自己11華華 中中 科科 技技 大大 學(xué)學(xué) 課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告所需要設(shè)計(jì)的 CPU 電路。由上圖可以知道,一個(gè)完整的 CPU 電路包括取指 IF 階段,這個(gè)階段

30、有 PC 數(shù)值的控制,還包括訪問(wèn)指令存儲(chǔ)器取出指令;譯碼 ID 階段,這個(gè)階段包括從訪問(wèn)寄存器組并獲得相應(yīng)的數(shù)值,對(duì)指令的譯碼以實(shí)現(xiàn)對(duì)后續(xù) CPU 功能的控制;運(yùn)算 EX 階段,將 ID 段從寄存器組中獲得的數(shù)值傳入運(yùn)算器進(jìn)行相關(guān)的運(yùn)算,并將相關(guān)的控制信息傳回 IF 段;訪存 MEM 階段,這個(gè)階段需要對(duì)數(shù)據(jù)存儲(chǔ)器進(jìn)行訪問(wèn)以獲得需要的數(shù)值;寫回 WB 階段,這個(gè)階段要將計(jì)算結(jié)果或者訪存數(shù)值寫回相應(yīng)的寄存器,還需要注意的是以上所有功能是在一個(gè)時(shí)鐘驅(qū)動(dòng)下實(shí)現(xiàn)的,以上便是完整的單周期電路需要考慮的問(wèn)題。由于我們實(shí)現(xiàn)的是 16 位的單周期 CPU 電路,因此整個(gè)電路可以如圖 2.2 這樣看待: 圖 2

31、.2 單周期 CPU 電路簡(jiǎn)約圖圖 2.2 便是我們實(shí)現(xiàn)的單周期 CPU 電路的最終簡(jiǎn)約圖,只要分別將 CPU 電路各個(gè)部件的功能實(shí)現(xiàn),然后連接各個(gè)功能部件,最終實(shí)現(xiàn)單周期 CPU 電路。多周期流水線電路首先需要實(shí)現(xiàn)的是理想 5 段流水線電路,這里需要將上訴的單周期 CPU 電路各個(gè)功能部件分開(kāi),然后用各個(gè)階段之間的鎖存器進(jìn)行分離,由于只需要實(shí)現(xiàn)理想電路,因此開(kāi)始并不需要考慮各種沖突的發(fā)生,只需要將電路的各個(gè)12華華 中中 科科 技技 大大 學(xué)學(xué) 課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告部件按照 CPU 工作的流程按序鏈接起來(lái)就可以了。圖 2.3 是理想 5 段流水線的示意圖: 圖 2.3 理想 5

32、 段流水線電路由圖 2.3 可以發(fā)現(xiàn),5 段流水線保存了單周期 CPU 電路的每一個(gè)功能部件,唯一不同的就是 CPU 電路的 5 個(gè)功能部件并不是直接鏈接在一起的,而是用鎖存器分開(kāi),利用鎖存器傳遞信號(hào)。5 段流水線使得一條指令由 5 個(gè)功能部件在 5 個(gè)周期逐步執(zhí)行,每一條指令不斷地像流水作業(yè)一樣不斷執(zhí)行,但是由于指令執(zhí)行分步驟實(shí)現(xiàn),導(dǎo)致電路中存在數(shù)據(jù)沖突和控制相關(guān),因此需要考慮沖突的處理問(wèn)題,其中對(duì)于數(shù)據(jù)沖突的處理有兩種解決辦法,一種是插入氣泡式冒險(xiǎn)處理,這種方法是判斷每一條指令與上一條指令或上上條指令是否存在數(shù)據(jù)相關(guān),如果存在數(shù)據(jù)相關(guān),就插入氣泡,導(dǎo)致電路阻塞,電路停止一個(gè)周期的指令前進(jìn),

33、使得沖突不對(duì)程序的運(yùn)行結(jié)果造成影響;另外一種是數(shù)據(jù)轉(zhuǎn)發(fā)方式的冒險(xiǎn)處理,這種方法是判斷每一條指令與上一條指令或上上條指令是否存在數(shù)據(jù)相關(guān),如果存在數(shù)據(jù)相關(guān),就在這一條指令的 EX 階段前期將上一條指令或者上上條指令的結(jié)果傳回來(lái)進(jìn)行相應(yīng)的運(yùn)算,使得即使當(dāng)前指令訪問(wèn)寄存器取出來(lái)的數(shù)值也許不是正確的操作數(shù),但是可以保證在進(jìn)入計(jì)算階段的時(shí)候的操作13華華 中中 科科 技技 大大 學(xué)學(xué) 課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告數(shù)是正確的,但是這里需要注意的是 LOAD 指令,由于 LOAD 指令取出來(lái)的數(shù)值是在 MEM 階段的后期,因此這里需要將數(shù)值傳到第五個(gè)階段以便傳回 EX 階段,進(jìn)行正確的運(yùn)算,因此這里需

34、要用用到插入氣泡的功能部件以便實(shí)現(xiàn)正確的功能電路。圖 2.4 是數(shù)據(jù)轉(zhuǎn)發(fā)方式的冒險(xiǎn)處理的電路圖:圖 2.4 數(shù)據(jù)轉(zhuǎn)發(fā)方式的冒險(xiǎn)處理電路由圖 2.4 可以發(fā)現(xiàn)電路中存在對(duì)于 LOAD 指令的插入氣泡的處理,這是實(shí)際中CPU 電路的設(shè)計(jì)情況,電路還存在數(shù)據(jù)轉(zhuǎn)發(fā),將數(shù)值從第四階段或者第五階段傳到EX 階段進(jìn)行處理。最后需要在上訴所有電路的基礎(chǔ)上實(shí)現(xiàn)分支預(yù)測(cè)的功能電路,雖然上訴幾個(gè)電路已經(jīng)處理了分支沖突,但是這樣處理的分支沖突降低了 CPU 對(duì)程序的執(zhí)行速度,在每一次分支沖突發(fā)生的時(shí)候都進(jìn)行插入氣泡的處理,使得電路在每次分支沖突的時(shí)候都暫停了一個(gè)時(shí)鐘周期,這樣明顯使得電路的運(yùn)算性能降低了許多。因此利用

35、分支預(yù)測(cè)的方法處理分支沖突,分支預(yù)測(cè)的思想是,利用分支目標(biāo)緩沖器 BTB 來(lái)記錄相關(guān)分支指令的“歷史”,并據(jù)此進(jìn)行預(yù)測(cè),這個(gè)“歷史”是指最近一次或幾次的執(zhí)行情況是成功還是失敗。如果分支是成功的,則在以后的指令執(zhí)行過(guò)程中預(yù)測(cè)需14華華 中中 科科 技技 大大 學(xué)學(xué) 課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告要進(jìn)行分支處理,找到分支目標(biāo)地址,將目標(biāo)地址的指令進(jìn)行取指操作,由于許多程序都需要進(jìn)行多次分支跳轉(zhuǎn),因此這種處理可以節(jié)省大量的處理時(shí)間;如果分支預(yù)測(cè)失敗,則執(zhí)行分支指令的下一條指令。圖 2.5 就是實(shí)現(xiàn)了分支預(yù)測(cè)功能的最終五段流水線電路圖: 圖 2.5 全冒險(xiǎn)處理機(jī)制的流水 CPU 電路從圖 2.5

36、可以看出,電路中分別有對(duì)數(shù)據(jù)沖突處理的數(shù)據(jù)轉(zhuǎn)發(fā)式冒險(xiǎn)處理,同時(shí)存在對(duì)分支沖突處理的分支預(yù)測(cè)電路。2.2實(shí)驗(yàn)環(huán)境本實(shí)驗(yàn)需要一臺(tái)功能部件完整的計(jì)算機(jī),配置 WINDOWS 7 或者 WINDOWS 8Comment U13: 所有的圖,表都必須交叉引用Comment T14: 須插入題注,注意在表格的上方,編號(hào)形式為X.X,表格格式參照這個(gè)吧,這個(gè)還畫的比較漂亮。此表只是個(gè)例子,主要說(shuō)明在報(bào)告中的表格依照此種格式,而不是說(shuō)這個(gè)部分必須用表格。注意創(chuàng)建的編號(hào)格式 N.XN 為章,X 本章表的序號(hào),如表2.1 表示是第二章的第一個(gè)表。表的標(biāo)號(hào)及名稱要比正文小一個(gè)字號(hào)。15華華 中中 科科 技技 大大

37、學(xué)學(xué) 課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告計(jì)算機(jī)系統(tǒng),設(shè)計(jì)開(kāi)發(fā)工具為 Logisim,這是一款數(shù)字電路模擬的教育軟件,每一位用戶都可以通過(guò)它來(lái)學(xué)習(xí)如何創(chuàng)建邏輯電路,方便簡(jiǎn)單。 它是一款基于 Java 的應(yīng)用程序,可運(yùn)行在任何支持 JAVA 環(huán)境的平臺(tái),方便學(xué)生來(lái)學(xué)習(xí)設(shè)計(jì)和模仿數(shù)字邏輯電路。Logisim 中的主要組成部分之一就在于設(shè)計(jì)并以圖示來(lái)顯示 CPU 或其他中央處理器單位。當(dāng)然 Logisim 中還有其他多種組合分析模型來(lái)對(duì)你進(jìn)行幫助,如轉(zhuǎn)換電路,表達(dá)式,布爾型和真值表等等。同時(shí)還可以重新利用小規(guī)模的電路來(lái)作為大型電路的一部分。具體實(shí)驗(yàn)環(huán)境見(jiàn)表 2.1。表 2.1 CPU 電路設(shè)計(jì)實(shí)驗(yàn)配置

38、配 置啟動(dòng)器實(shí)驗(yàn)設(shè)備一臺(tái)功能完好的計(jì)算機(jī)OSWindows 7 / Windows 8實(shí)驗(yàn)軟件LogisimComment U15: 給出方案概要設(shè)計(jì),注意這章是設(shè)計(jì),不是最終實(shí)現(xiàn),請(qǐng)不要將最終的連線圖,代碼等放在這一章Comment T16: 所有的表都必須有編號(hào)和名字16華華 中中 科科 技技 大大 學(xué)學(xué) 課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告3總體方案設(shè)計(jì)3.1構(gòu)建單周期 CPU在我們實(shí)現(xiàn)的 CPU 電路中,是由單周期驅(qū)動(dòng),控制所有的功能部件完成指令的相關(guān)操作,由于實(shí)驗(yàn)平臺(tái)是一個(gè)理想的沒(méi)有考慮其他誤差的軟件,因此只需要在一個(gè)時(shí)鐘跳變的過(guò)程中,完成指令的取指、譯碼,訪問(wèn)寄存器取出相應(yīng)的數(shù)值并參

39、與運(yùn)算器的運(yùn)算,最后訪存、寫回相應(yīng)的寄存器,要真正地掌握 CPU 工作的流程,才可以知道 CPU 功能部件工作的順序,也才能保證單周期 CPU 設(shè)計(jì)的成功。表 3.1 原型系統(tǒng)實(shí)現(xiàn)的 RegionType 0Type 1Type 5Type 7RAID 級(jí)別0105N/A磁盤個(gè)數(shù)888N/A分條單元大小32KB16KB32KBN/A數(shù)據(jù)塊大小512KB16KB64KB1KB數(shù)據(jù)塊個(gè)數(shù)8K8K8K8K3.1.1 總體設(shè)計(jì)本次實(shí)驗(yàn),我采用的方案是硬布線控制器的設(shè)計(jì)方案,CPU 的功能部件直接由各種類型的邏輯門電路和觸發(fā)器等構(gòu)成,采用組合邏輯電路根據(jù)不同的指令在不同的條件狀態(tài)下產(chǎn)生不同的操作控制信號(hào)

40、,對(duì)指令執(zhí)行過(guò)程中的數(shù)據(jù)通路進(jìn)行控制,使得控制器在執(zhí)行階段向不同的功能部件發(fā)出各種操作控制信號(hào),協(xié)調(diào)各部件之間的操作,以完成預(yù)期的電路功能。并且由于處于控制方便的考慮,我采用將指令數(shù)據(jù)存儲(chǔ)器分開(kāi)的方案,即采用將指令存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器不共用一個(gè)存儲(chǔ)器的方式完成方案的設(shè)計(jì),使得訪存取指令和數(shù)據(jù)訪存不存在結(jié)構(gòu)沖突,便于 CPU 的實(shí)現(xiàn)。(參考文本,請(qǐng)大家自行修改擴(kuò)展)Comment T17: 圖注,用插入題注的方式插入,插入后可用交叉引用引用,注意題注,交叉引用是 word 很重要的概念,希望大家認(rèn)真找點(diǎn)資料看看這個(gè)功能,這是 office 排版的高級(jí)技巧,希望大家掌握,如果插入題注沒(méi)有對(duì)應(yīng)的圖題注

41、,只有 figure 等,可以自己創(chuàng)建,注意創(chuàng)建的編號(hào)格式 N.XN 為章,X 本章表的序號(hào),如圖3.3 表示是第三章的第 3 個(gè)圖。圖的標(biāo)號(hào)及圖名稱比正文小一個(gè)字號(hào)。Comment T18: 所有圖都必須有圖名17華華 中中 科科 技技 大大 學(xué)學(xué) 課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告總體結(jié)構(gòu)圖如圖 3.1 所示。(注意設(shè)計(jì)階段只需要簡(jiǎn)單的原理示意圖)圖 3.1 單周期 CPU 電路總體結(jié)構(gòu)圖3.1.2 主要功能部件我設(shè)計(jì)的單周期 CPU 電路都是用組合邏輯電路控制單元實(shí)現(xiàn)的,選擇設(shè)計(jì)平臺(tái)不同的功能器件進(jìn)行相應(yīng)的組合,形成各個(gè)功能部件,具體的設(shè)計(jì)如下:1. 程序計(jì)數(shù)器 PC我對(duì)于 PC 的控制

42、,采用了一個(gè) PC 寄存器,利用其中的數(shù)值來(lái)反映當(dāng)前指令的地址,然后再對(duì)于寄存器數(shù)值 PC 進(jìn)行 PC+1 的操作,對(duì)于跳轉(zhuǎn)目的指令地址與PC+1 的數(shù)值用跳轉(zhuǎn)控制進(jìn)行選擇,以確定下一條指令的地址選取,輸入到 PC 寄存器中,并設(shè)置 PC 寄存器是否存數(shù)的控制。2. 指令存儲(chǔ)器 IM設(shè)置一個(gè)只讀存儲(chǔ)器 ROM 作為指令存儲(chǔ)器,將存儲(chǔ)器訪問(wèn)的地址控制端接到PC 的端口,然后將取出的指令傳送到一個(gè)指令寄存器中準(zhǔn)備傳送到執(zhí)行部件執(zhí)行相18華華 中中 科科 技技 大大 學(xué)學(xué) 課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告應(yīng)的操作。3. 寄存器組 RF使用 4 個(gè)寄存器構(gòu)成寄存器組,然后輸入寫入數(shù)據(jù)的接口和是否輸入

43、控制信號(hào),利用解復(fù)用器選擇輸入的目的寄存器,以確保將數(shù)據(jù)輸入到正確的寄存器中。對(duì)于讀寄存器,輸入兩個(gè)讀數(shù)寄存器的選擇信號(hào),利用數(shù)據(jù)選擇器將讀取的目的寄存器中的數(shù)值讀取出來(lái)。3.1.3 構(gòu)造 R 型指令表 3.1 R 型指令課程要求的 R 型指令的格式如圖 3.1 所示,其中 1512 位設(shè)置為操作數(shù),1110位設(shè)置為第一操作數(shù)寄存器號(hào),98 位設(shè)置為第二操作數(shù)寄存器號(hào),76 設(shè)置為結(jié)果寄存器號(hào),53 位直接置 0,20 位設(shè)置為 R 型指令的類型選擇項(xiàng)。3.1.4 構(gòu)造 I 型指令表 3.2 I 型指令19華華 中中 科科 技技 大大 學(xué)學(xué) 課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告課程要求的 I 型

44、指令的格式如圖 3.3 所示,其中 1512 位設(shè)置為操作數(shù),1110位設(shè)置為第一操作數(shù)寄存器號(hào),98 位設(shè)置為第二操作數(shù)寄存器號(hào),70 位設(shè)置為常數(shù)(分為有符號(hào)常數(shù)與無(wú)符號(hào)常數(shù))。3.1.5 構(gòu)造 J 型指令表 3.3 J 型指令課程要求的 J 型指令的格式如圖 3.4 所示,其中 1512 位設(shè)置為操作數(shù),110位設(shè)置為跳轉(zhuǎn)地址(無(wú)符號(hào)數(shù))。3.1.6 DISP 指令 表 3.4 DISP 型指令課程要求的 DISP 型指令的格式如圖 3.5 所示,其中 1512 位設(shè)置為操作數(shù),1110 位設(shè)置為需要顯示數(shù)據(jù)的寄存器號(hào),98 位設(shè)置為第二操作數(shù)寄存器號(hào)(沒(méi)有功能作用),70 位設(shè)置為常數(shù)

45、(用來(lái)選擇哪個(gè)顯示器顯示數(shù)據(jù))。3.1.7 halt 指令 表 3.5 halt 型指令結(jié)構(gòu)圖課程要求的 halt 型指令的格式如圖 3.6 所示,其中 1512 位設(shè)置為操作數(shù),110 位置為 0。3.1.8 控制器封裝 圖 3.2 控制器封裝圖20華華 中中 科科 技技 大大 學(xué)學(xué) 課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告我設(shè)計(jì)的單周期 CPU 電路將運(yùn)算器也封裝在控制器中,因此需要向控制器中傳送兩個(gè)運(yùn)算操作數(shù)、指令、PC 等信息,由控制器將指令譯碼,并根據(jù)譯碼結(jié)果結(jié)合傳送來(lái)的信息進(jìn)行相關(guān)功能的執(zhí)行,最后輸出結(jié)果和其他控制信息如:運(yùn)算器結(jié)果、是否寫入寄存器信息等。Comment T19: 根據(jù)設(shè)

46、計(jì)情況修改表格,表格格式參照前面的例子21華華 中中 科科 技技 大大 學(xué)學(xué) 課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告3.2可支持理想流水線的多周期 CPU 設(shè)計(jì)3.2.1 總體設(shè)計(jì)指令的格式設(shè)計(jì)是類 MIPS 指令格式的,分為 R 型指令、I 型指令和 J 型指令。指令的尋址方式設(shè)計(jì)有順序?qū)ぶ贩绞胶吞S尋址方式,操作數(shù)的尋址方式只有變址尋址方式。采用定長(zhǎng)指令每條指令的長(zhǎng)度為 16 位,總共有 3 種類型,如表 3.6 所示。表 3.6 各類型指令的劃分表中 1512 位決定是什么指令,rs、rt、rd 為三個(gè)寄存器編號(hào),其中 R 型指令20 位為 R 型指令的功能選擇字段,決定進(jìn)行什么樣的 R 型

47、指令類型,其中 I 型指令 70 位為常數(shù),分為有符號(hào)常數(shù)與無(wú)符號(hào)常數(shù),分別對(duì)應(yīng)于不同的指令操作類型,還有 J 型指令 110 位為無(wú)符號(hào)數(shù),作為跳轉(zhuǎn)地址,至于 halt 指令則置為 0。對(duì)于寄存器的編號(hào),由于我們的系統(tǒng)總共有 4 個(gè)寄存器,故使用 2 位二進(jìn)制碼22華華 中中 科科 技技 大大 學(xué)學(xué) 課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告將它們編號(hào)(如 1 號(hào)寄存器編號(hào)為 00 等)。3.2.2 接口部件設(shè)計(jì)流水線的設(shè)計(jì)思想是把一個(gè)復(fù)雜的任務(wù)分解為若干個(gè)子過(guò)程,每個(gè)子過(guò)程與其他子過(guò)程并行運(yùn)行,采用時(shí)間上的并行性,通過(guò)將一個(gè)任務(wù)劃分成幾個(gè)不同的子過(guò)程,并且各個(gè)子過(guò)程在不同的功能部件上并行執(zhí)行,使得

48、在同一個(gè)時(shí)鐘周期內(nèi)同時(shí)解釋多條機(jī)器語(yǔ)言指令,提高程序的執(zhí)行速度。流水線的設(shè)計(jì)方案是將指令的執(zhí)行過(guò)程分為取指 IF、譯碼 ID、執(zhí)行 EX、存儲(chǔ)器訪問(wèn) MEM 以及寫回 WB 等 5 個(gè)子過(guò)程,在每個(gè)子過(guò)程的后面都需要有一個(gè)鎖存器,以保證該子過(guò)程的執(zhí)行結(jié)果給下一個(gè)子過(guò)程使用。流水線把一條指令的執(zhí)行劃分為 5 個(gè)子過(guò)程,每一個(gè)子過(guò)程由一個(gè)獨(dú)立的專用功能部件來(lái)執(zhí)行,依靠執(zhí)行不同功能的功能部件并行工作來(lái)提高系統(tǒng)的吞吐率和處理速度,它并不能改變單條指令的執(zhí)行時(shí)間,但提高了系統(tǒng)的整體吞吐率。因此對(duì)于流水線電路的設(shè)計(jì),需要在設(shè)計(jì)之前弄明白每個(gè)階段間需要傳遞什么信息,每一個(gè)階段可以產(chǎn)生怎樣的處理結(jié)果,然后設(shè)計(jì)

49、適當(dāng)?shù)逆i存器來(lái)進(jìn)行數(shù)據(jù)的傳送。然后再根據(jù) 5 個(gè)功能部件的特點(diǎn),設(shè)計(jì)出 5 個(gè)功能部件,并且設(shè)置適當(dāng)?shù)慕涌冢瑏?lái)是實(shí)現(xiàn)信息的接受與發(fā)送。設(shè)計(jì)的指令執(zhí)行流程:首先在 IF 段進(jìn)行正確的取指,然后經(jīng)過(guò) IF/ID 鎖存器進(jìn)入 ID 階段,ID 階段對(duì)指令進(jìn)行譯碼,分析出操作數(shù)寄存器和目的寄存器以及其他信息(例如常數(shù)等),然后根據(jù)操作數(shù)寄存器號(hào)對(duì)相對(duì)應(yīng)的寄存器進(jìn)行取數(shù)操作,最后將操作數(shù)、操作碼以及其他信息經(jīng)過(guò) ID/EX 鎖存器傳入 EX 階段,EX 階段接收到控制執(zhí)行的各種信息,對(duì)整個(gè)指令進(jìn)行相應(yīng)的處理,獲得處理結(jié)果(如運(yùn)算結(jié)果、寫入數(shù)據(jù)存儲(chǔ)器控制信號(hào)等),處理結(jié)果經(jīng)過(guò) EX/MEM 鎖存器進(jìn)入 M

50、EM 階段,MEM 階段根據(jù) EX 階段的控制信息確定存數(shù)操作、取數(shù)操作或跳過(guò),最后將剩余的控制信息經(jīng)過(guò) MEM/WB 鎖存器傳到 WB 階段,WB 階段根據(jù)控制信息將確定的數(shù)據(jù)寫入正確的寄存器中。3.2.3 流水沖突檢測(cè)器檢查本指令的兩個(gè)操作數(shù)寄存器號(hào)是否與上條指令的目的寄存器號(hào)是否相同,如果存在任何一種類型的相同,則說(shuō)明存在流水沖突。23華華 中中 科科 技技 大大 學(xué)學(xué) 課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告3.2.4 插入氣泡的流水沖突處理根據(jù)流水沖突檢測(cè)器檢測(cè)是否發(fā)生流水沖突,如果發(fā)生流水沖突,分別對(duì) IF 階段、IF/ID 鎖存器進(jìn)行阻塞,以及對(duì) ID/EX 鎖存器進(jìn)行清零使得電路執(zhí)行

51、 NOP 操作,這樣便使得 CPU 停止運(yùn)行了一個(gè)周期。假如電路還存在沖突,則再按上訴操作停止一個(gè)周期直到?jīng)_突不再對(duì)程序運(yùn)行結(jié)果造成影響。3.2.5 數(shù)據(jù)重定向的流水沖突處理根據(jù)流水線沖突檢測(cè)器檢測(cè)是否發(fā)生了流水沖突,如果發(fā)生了當(dāng)前指令與上條指令存在沖突,則將第四階段的數(shù)值傳回當(dāng)前指令的 EX 階段進(jìn)行運(yùn)算,如果發(fā)生了當(dāng)期那指令與上上條指令村子啊沖突,則將第五階段的數(shù)值傳回當(dāng)前指令的 EX 階段進(jìn)行運(yùn)算。這時(shí)要注意上條指令是 LOAD 指令的特殊性,這時(shí)需要用到插入氣泡的沖突處理使得電路停止一個(gè)周期將 LOAD 指令的取值傳到第五個(gè)階段然后再傳回當(dāng)前指令的 EX 階段進(jìn)行運(yùn)算,因?yàn)檫@樣才符合實(shí)

52、際 CPU 的設(shè)計(jì)情況。3.2.6 動(dòng)態(tài)分支預(yù)測(cè)的流水沖突處理分支預(yù)測(cè)是查找指令的地址觀察上一次執(zhí)行該指令時(shí)分支是否發(fā)生,如果上次執(zhí)行時(shí)分支發(fā)生就從上次分支發(fā)生的地方開(kāi)始取指令。分支預(yù)測(cè)的實(shí)現(xiàn)方法是采用了分支預(yù)測(cè)緩沖器 BTB,來(lái)記錄分支最近是否執(zhí)行,其實(shí)并不知道預(yù)測(cè)的是否是當(dāng)前的分支指令,該執(zhí)行結(jié)果可能是別的某條分支指令的執(zhí)行結(jié)果,但這并不影響這種方法的正確性,預(yù)測(cè)只是假設(shè)正確的提示,在這個(gè)基礎(chǔ)上,指令預(yù)取沿著預(yù)測(cè)的方向進(jìn)行,如果這種假設(shè)錯(cuò)誤,不正確的預(yù)測(cè)指令將被刪除,預(yù)測(cè)位將取非,并返回原來(lái)位置,繼續(xù)按照正確的指令順序取指并執(zhí)行。Comment U20: 撰寫具體的實(shí)現(xiàn)細(xì)節(jié),流程圖,原理圖

53、,引腳連接等等,微程序?qū)崿F(xiàn),微指令實(shí)現(xiàn),控存安排等等細(xì)節(jié),上一章主要講方案,這章描述最終實(shí)現(xiàn)細(xì)節(jié)。24華華 中中 科科 技技 大大 學(xué)學(xué) 課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告4詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)4.1構(gòu)建單周期 CPU 4.1.1 主要功能部件實(shí)現(xiàn)1. 程序計(jì)數(shù)器 PC選用的元器件選用的元器件: 計(jì)數(shù)器(數(shù)據(jù)位寬: 16, 最大值: 0 xffff,溢出時(shí)操作:重新計(jì)數(shù),觸發(fā)方式:上升沿,標(biāo)簽: PC),寄存器(數(shù)據(jù)位寬: 16, 觸發(fā)方式:下降沿,標(biāo)簽: PC),加法器(數(shù)據(jù)位寬:16位),多路選擇器(朝向:東,選擇數(shù)據(jù)長(zhǎng)度:1,數(shù)據(jù)位寬:16), 輸入輸出引腳(輸入跳轉(zhuǎn)地址位寬為16位,輸出PC

54、數(shù)值位寬為16位,其他設(shè)定為默認(rèn)參數(shù)值)。輸入輸入: 跳轉(zhuǎn)地址、是否跳轉(zhuǎn)控制、時(shí)鐘信號(hào)、清零信號(hào)。跳轉(zhuǎn)地址輸入是無(wú)條件跳轉(zhuǎn)指令和條件跳轉(zhuǎn)指令跳轉(zhuǎn)目標(biāo)指令的地址輸入,是否控制跳轉(zhuǎn)是選定PC+1還是跳轉(zhuǎn)地址的選擇控制信號(hào)輸入,時(shí)鐘和清零信號(hào)是主電路的時(shí)鐘和輸入引腳輸入。輸出輸出: PC寄存器的輸出端。具體實(shí)現(xiàn)具體實(shí)現(xiàn): 寄存器的時(shí)鐘端連線時(shí)鐘隧道,清零隧道直接連接和寄存器的清零端,多路選擇器的輸出端連接寄存器的數(shù)據(jù)端,并且從寄存器輸出端接一條線路進(jìn)入加法器的一個(gè)操作數(shù)端口,然后進(jìn)行+1操作并將結(jié)果傳入到多路選擇器其中一個(gè)輸入端口,選擇地址輸入接入到多路選擇器另外一個(gè)輸入端口,通過(guò)是否跳轉(zhuǎn)控制來(lái)選擇

55、哪一個(gè)輸入到PC寄存器中,具體電路見(jiàn)圖 4.1。25華華 中中 科科 技技 大大 學(xué)學(xué) 課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告圖 4.1 PC 結(jié)構(gòu)圖2.運(yùn)算器 ALU選用的元器件選用的元器件: 兩個(gè)解復(fù)用器(數(shù)據(jù)位寬: 16,朝向:東,選擇數(shù)據(jù)位寬:3),一個(gè)多路選擇器(數(shù)據(jù)位寬: 16,朝向:東,選擇數(shù)據(jù)位寬:3),或門(朝向:東,數(shù)據(jù)位寬:16,輸入引腳數(shù)量:2,門尺寸:中等),與門(朝向:東,數(shù)據(jù)位寬:16,輸入引腳數(shù)量:2,門尺寸:中等),加法器(數(shù)據(jù)位寬:16位),減法器(數(shù)據(jù)位寬:16),邏輯左移位器(數(shù)據(jù)位寬:16),邏輯右移位器(數(shù)據(jù)位寬:16),算術(shù)右移位器(數(shù)據(jù)位寬:16),

56、比較器(數(shù)據(jù)位寬:16,數(shù)字類型:關(guān)于2的補(bǔ)碼),3個(gè)位擴(kuò)展器(輸入位寬:16,輸出位寬:4,擴(kuò)展方式:以0填充),12個(gè)隧道(數(shù)據(jù)位寬:4),輸入輸出引腳(輸入兩個(gè)操作數(shù)的位寬為16位,輸入的運(yùn)算選擇類型位寬為3,輸出運(yùn)算結(jié)果位寬為16位)。輸入輸入: 操作數(shù)A、B,運(yùn)算選擇類型。操作數(shù)A、B是運(yùn)算的兩個(gè)操作數(shù)輸入,運(yùn)算選擇是選擇何種運(yùn)算的輸入,時(shí)鐘和清零信號(hào)是主電路的時(shí)鐘和輸入引腳輸入。輸出輸出: 多路選擇器輸出端。具體實(shí)現(xiàn)具體實(shí)現(xiàn): 運(yùn)算器輸入兩個(gè)運(yùn)算操作數(shù),然后送入解復(fù)用器輸入端,通過(guò)運(yùn)算選擇將操作數(shù)輸入到確定類型的運(yùn)算器輸入端,這樣可以保證只使用需要使用的運(yùn)算器,從而節(jié)省電路的功耗,

57、進(jìn)行運(yùn)算獲得運(yùn)算結(jié)果后,然后同樣通過(guò)運(yùn)算選擇通過(guò)多路選擇器將運(yùn)算結(jié)果輸出,其中要注意的就是進(jìn)行移位運(yùn)算的時(shí)候,其中一個(gè)操作數(shù)是4位的運(yùn)算數(shù),因此需要將輸入傳過(guò)來(lái)的第二個(gè)操作數(shù)進(jìn)行位的截取運(yùn)算,從而將16位數(shù)值轉(zhuǎn)化為4位數(shù)值參與移位運(yùn)算,由于電路中設(shè)計(jì)的比較緊湊,因此使用隧道將3種移位運(yùn)算的第二個(gè)操作數(shù)在其他空閑的地方進(jìn)行位截取操作,在利用隧道將截取獲得的結(jié)果傳回來(lái),具體電路見(jiàn)圖 4. 2。3. 指令類型表 4.1 各類型指令的劃分 指令位OP:1512 RS:1110 RT:98 RD:76 53Funct:2026華華 中中 科科 技技 大大 學(xué)學(xué) 課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告 R 型

58、 0 RS RT RD 000 07 I 型 110 RS RT 8 位常數(shù) J 型 1112 JMP(跳轉(zhuǎn)地址)/halt(0)圖 4.2 運(yùn)算器結(jié)構(gòu)圖采用定長(zhǎng)指令,每條指令的長(zhǎng)度為 16 位,總共有 3 中類型,如表 4.1 所示。其中所有指令的 1512 位為操作數(shù)的類型,R 型指令中有 3 個(gè)寄存器參與運(yùn)算,分別為第一操作數(shù)寄存器、第二操作數(shù)寄存器以及目的操作書(shū)寄存器,分別對(duì)應(yīng)為1110 位、98 位以及 76 位,53 位未參與編碼,因此置為 000,20 位作為 funct位,用于區(qū)分 R 型指令的運(yùn)算類型;I 型指令中有兩個(gè)寄存器參與運(yùn)算,其中 RS 寄存器作為第一操作數(shù)寄存器,

59、RT 寄存器既作為第二操作數(shù)寄存器,又作為目的操作數(shù)寄存器,這需要依據(jù)不同的指令運(yùn)算決定,70 位作為常數(shù)操作數(shù);J 型指令沒(méi)有操作數(shù)和運(yùn)算結(jié)果,因此不需要使用寄存器,110 位作為一個(gè)整體形成常數(shù),如果指令是 jmp 指令,則作為指令跳轉(zhuǎn)的目的地址,如果是 halt 指令,則置為 0。Comment T21: 根據(jù)設(shè)計(jì)情況修改表格,表格格式參照前面的例子27華華 中中 科科 技技 大大 學(xué)學(xué) 課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告選用的元器件選用的元器件: 位分離器(朝向:東,位數(shù):16位)、位擴(kuò)展器(輸入位數(shù):4位,輸出位寬:8位),輸入輸出引腳(輸入指令的位寬為16位,輸出譯碼結(jié)果操作數(shù)位寬

60、為4位,3個(gè)寄存器位寬為2位,R型指令類型為3位,16位輸出常數(shù)為16位,8位輸出常數(shù)位8位)。輸入輸入: 16位需要譯碼的指令,時(shí)鐘和清零信號(hào)是主電路的時(shí)鐘和輸入引腳輸入。輸出輸出: 操作碼用于控制后序電路的工作,操作數(shù)寄存器號(hào)用于在寄存器組中取數(shù),結(jié)果寄存器號(hào)用于在寄存器組中存數(shù),R型指令類型,用于控制區(qū)分R型指令,8位常數(shù)用于后序常數(shù)運(yùn)算操作,16位常數(shù)用于JMP跳轉(zhuǎn)指令的目的指令地址。具體實(shí)現(xiàn)具體實(shí)現(xiàn):由于指令設(shè)計(jì)使用了類 MIPS 指令類型,因此指令中不同的位具有不同的功能,因此在對(duì)指令進(jìn)行譯碼工作的時(shí)候,只需要將指令分解為不同的位作為不同的控制信息即可。具體的電路見(jiàn)圖 4.3。 圖

溫馨提示

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

評(píng)論

0/150

提交評(píng)論