freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

一個(gè)非常簡(jiǎn)單的cpu的設(shè)計(jì)(編輯修改稿)

2025-08-13 23:34 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 及 CPU現(xiàn)在的狀態(tài)(也就是 Register中的內(nèi)容)一起產(chǎn)生下一次訪問微代碼存儲(chǔ)器的地址。 3. 下一個(gè)地址產(chǎn)生單元接受操作碼、標(biāo)志寄存器內(nèi)容和微代碼存儲(chǔ)器的輸出,然后根據(jù)現(xiàn)在 CPU所處的狀態(tài)決定產(chǎn)生下一次訪問微代碼存儲(chǔ)器的地址。它生成所有可能的轉(zhuǎn)移地址,然后選擇正確的輸出到寄存器中。 ? 一個(gè)可能的地址就是微代碼存儲(chǔ)器現(xiàn)在地址加一。 ? 另一個(gè)可能的地址是要跳轉(zhuǎn)的絕對(duì)地址。 ?每個(gè)微程序控制其還需要能夠正確地訪問執(zhí)行例程,這就需要用到影射邏輯。把取指得到的操作碼影射到執(zhí)行子例程的第一條微指令的地址上。這個(gè)影射操作時(shí)在每個(gè)取指周期結(jié)束時(shí)進(jìn)行的。 ?像所有高級(jí)語(yǔ)言編程一樣,微代碼也可以有子程序。當(dāng)幾條指令執(zhí)行同一段微代碼時(shí),這段微代碼就可以用一個(gè)子程序來(lái)實(shí)現(xiàn)。當(dāng)調(diào)用此子程序時(shí),這個(gè)子程序的微代碼地址就被作為一個(gè)跳轉(zhuǎn)的絕對(duì)地址賦給寄存器,而當(dāng)前地址加一的地址則被保存為返回地址。(需要硬件的寄存器或者堆棧來(lái)實(shí)現(xiàn)) : ? 現(xiàn)在地址加一 ? 絕對(duì)地址 ? 影射邏輯地址 ? 子例程返回地址 每個(gè)微程序控制器可以有它自己的微指令格式。但是每條微指令必須包含以下幾個(gè)部分的內(nèi)容: 下面我們分別介紹這幾個(gè)部分的內(nèi)容: 1. SELECT域 SELECT域用于指名下條指令地址的來(lái)源。它僅僅是指名下條指令地址的來(lái)源,而不直接給出下條指令的地址。例如:取指例程最后一條指令時(shí),它的SELECT域會(huì)指名下一條地址將來(lái)自影射邏輯。 對(duì)于條件轉(zhuǎn)移指令,執(zhí)行子例程的執(zhí)行需要根據(jù)標(biāo)志為的判斷來(lái)進(jìn)行。對(duì)于這樣的指令 SELECT域要有相應(yīng)的標(biāo)志寄存器的選擇。然后根據(jù)所選擇的標(biāo)志寄存器以及 SELECT域的內(nèi)容來(lái)決定下一地址的來(lái)源。 2. ADDR域 ADDR域就是來(lái)指名下一條指令執(zhí)行的絕對(duì)地址的。例如當(dāng)執(zhí)行完一個(gè)例程需要進(jìn)入取指例程時(shí),對(duì)指明了下一個(gè)地址來(lái)源的微指令來(lái)說(shuō), ADDR域是無(wú)用的。例如:影射邏輯地址。 MICROOPERATION域用來(lái)描述要執(zhí)行的微操作,有三種描述方法: 為了實(shí)現(xiàn)水平微代碼,我們先列出 CPU執(zhí)行的所有微操作。然后我們給每個(gè)微操作賦 MICROOPERATION域中的 1bit。這將導(dǎo)致 MICROOPERATION域的位數(shù)很多。而且這種編碼方法將使很多的 MICROOPERATION域中的位在大多數(shù)時(shí)間無(wú)用。 為了實(shí)現(xiàn)垂直微代碼, CPU可以執(zhí)行的微操作被分組,然后每個(gè)微操作被賦予一個(gè)組合的二進(jìn)制數(shù),例如: 16個(gè)微操作可以用 4bit的 MICROOPERATION域來(lái)描述( 0000~1111)。事實(shí)上我們用 4bit只能表示 15個(gè)微操作,因?yàn)槲覀儽仨毧粘鲆粋€(gè)狀態(tài)來(lái)描述空操作。垂直微代碼的編碼方式需要很少的 MICROOPERATION域的位數(shù),但是它需要一個(gè)譯碼器來(lái)產(chǎn)生真正的微操作信號(hào)。 在以上兩種方法中, CPU都必須要把微操作信號(hào)轉(zhuǎn)換成控制信號(hào)來(lái)進(jìn)行數(shù)據(jù)路徑的載入( LOAD)、清零( CLR)、加一( INC)、 ALU控制以及總線上各個(gè) Buffers的開關(guān)等操作。第三種微代碼的編碼方法就是把控制信號(hào)直接存儲(chǔ)到微指令中,這種方法不需要另外的組合邏輯,但是它可讀性差,不宜于調(diào)試。 設(shè)計(jì)和實(shí)現(xiàn) A Very Simple CPU的微程序控制單元 ? 為了驗(yàn)證一個(gè)微程序控制器的設(shè)計(jì)過(guò)程,我們首先來(lái)考慮前一章中的 Very Simple CPU的控制單元的設(shè)計(jì)。本節(jié)將用微程序控制器重新設(shè)計(jì)其控制單元。我們將不在重新講述指令集、有限狀態(tài)機(jī)、數(shù)據(jù)路徑以及 ALU的設(shè)計(jì)。我們只講述控制信號(hào)的產(chǎn)生過(guò)程。 ? ? 這個(gè) Very Simple CPU的微程序控制器的基本框圖如下: 在這個(gè) Very Simple CPU中只有兩種可能的地址,一個(gè)是操作碼影射地址另一個(gè)是絕對(duì)跳轉(zhuǎn)地址。參看前面的 Very Simple CPU的狀態(tài)圖,我們可以知道: 1. 從 Fetch3到執(zhí)行子例程需要一個(gè)地址影射邏輯,影射到要執(zhí)行指令的地址處。 2. 地址加一可以用 Microde memory 產(chǎn)生 ADDR作為絕對(duì)地址跳轉(zhuǎn)實(shí)現(xiàn),每個(gè)執(zhí)行子例程結(jié)束后還需要一個(gè)地址跳轉(zhuǎn)回到取指 Fetch1微操作。 因?yàn)橛袃煞N地址輸入,所以可以用一個(gè)2選 1邏輯 來(lái)實(shí)現(xiàn)下一地址生成模塊。選擇控制信號(hào)是由微代碼存儲(chǔ)器產(chǎn)生的。 ? 接下來(lái)我們考慮用多少位來(lái)表示 Microde memory(控制存儲(chǔ)器 )輸出的絕對(duì)地址? ? 這個(gè) CPU一共有 9個(gè)狀態(tài),每個(gè)狀態(tài)用一個(gè)微指令表示。需要的最少的數(shù)據(jù)位數(shù)是 4位。而 IR譯碼后的影射邏輯地址也是 4bit,所以用 4bit來(lái)表示地址。 現(xiàn)在我們通過(guò)有限狀態(tài)機(jī)的狀態(tài)來(lái)設(shè)計(jì)微代碼序列。首先我們給每個(gè)狀態(tài)賦予一個(gè)微代碼的地址。與硬布線邏輯不同的是,它不是必須直接的把連續(xù)的地址賦給取指或者執(zhí)行的各個(gè)狀態(tài),然而那樣賦值能夠使微代碼易于閱讀調(diào)試。賦值中考慮的首要問題是:執(zhí)行子例程的第一個(gè)狀態(tài)的地址賦值,因?yàn)樗鼪Q定了影射邏輯的實(shí)現(xiàn)。對(duì)這個(gè) CPU來(lái)說(shuō),我們用和硬布線邏輯實(shí)現(xiàn)時(shí)同樣的影射邏輯,也就是 IR譯碼的影射邏輯是 {1, IR[1:0], 0}。這樣產(chǎn)生了 ADD AND JMPINC1的地址分別為 1000、 10 1100、 1110。相應(yīng)的影射邏輯也就可以簡(jiǎn)單的如下表示: 其余狀態(tài)的地址賦值如下表: State Address State Address Fetch1 0000 Fetch2 0001 Fetch3 0010 ADD1 1000 ADD2 1001 AND1 1010 AND2 1011 JUMP1 1100 INC1 1110 現(xiàn)在我們來(lái)通過(guò)這些狀態(tài)來(lái)建立微代碼序列。為了實(shí)現(xiàn)狀態(tài)的轉(zhuǎn)移,為序列控制器在 ADDR域提供其要轉(zhuǎn)移狀態(tài)的地址,并且在 SELECT域選擇它。例如:為了從 Fetch1轉(zhuǎn)移到 Fetch2狀態(tài),微程序控制器需要設(shè)定 SEL=0(選擇ADD
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1