計(jì)算機(jī)組成原理 復(fù)習(xí)第5章_第1頁(yè)
計(jì)算機(jī)組成原理 復(fù)習(xí)第5章_第2頁(yè)
計(jì)算機(jī)組成原理 復(fù)習(xí)第5章_第3頁(yè)
計(jì)算機(jī)組成原理 復(fù)習(xí)第5章_第4頁(yè)
計(jì)算機(jī)組成原理 復(fù)習(xí)第5章_第5頁(yè)
已閱讀5頁(yè),還剩85頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

計(jì)算機(jī)組成原理Principlesof

ComputerOrganization廣義雙語(yǔ)教學(xué)課程青島理工大學(xué)

校級(jí)精品課程1盛建倫jlsheng@一、(共35分)設(shè)磁盤組有6個(gè)盤片,存儲(chǔ)區(qū)域內(nèi)直徑22cm,外直徑33cm,道密度40道/cm,內(nèi)層位密度400位/cm,轉(zhuǎn)速3600轉(zhuǎn)/分。①共有多少存儲(chǔ)面可用?②共有多少柱面?解:①每片有2個(gè)記錄面,如果最外兩側(cè)盤面用戶不可用,可用存儲(chǔ)面數(shù)=2×6-2=10如果最外側(cè)有1個(gè)盤面用戶不可用,可用存儲(chǔ)面數(shù)=2×6-1=11②柱面數(shù)=((外直徑-內(nèi)直徑)÷2)×道密度=((33-22)÷2)×40=220

測(cè)驗(yàn)5答案2盛建倫jlsheng@一、(共35分)設(shè)磁盤組有6個(gè)盤片,存儲(chǔ)區(qū)域內(nèi)直徑22cm,外直徑33cm,道密度40道/cm,內(nèi)層位密度400位/cm,轉(zhuǎn)速3600轉(zhuǎn)/分。③盤組總存儲(chǔ)容量是多少?解:③每道存儲(chǔ)容量=內(nèi)直徑×π×內(nèi)層位密度=22×π×400=27646bit=3455B盤組總存儲(chǔ)容量=每道存儲(chǔ)容量×柱面數(shù)×存儲(chǔ)面數(shù)如果最外兩側(cè)盤面用戶不可用,盤組總存儲(chǔ)容量=220×10×3455B=7601000B=7422.851KB=7.24MB如果最外側(cè)有1個(gè)盤面用戶不可用,盤組總存儲(chǔ)容量=220×11×3455B=8361100B=8165.137KB=7.973MB測(cè)驗(yàn)5答案一、(共35分)設(shè)磁盤組有6個(gè)盤片,存儲(chǔ)區(qū)域內(nèi)直徑22cm,外直徑33cm,道密度40道/cm,內(nèi)層位密度400位/cm,轉(zhuǎn)速3600轉(zhuǎn)/分。④數(shù)據(jù)傳輸率是多少?解:④數(shù)據(jù)傳輸率=每道存儲(chǔ)容量×每秒轉(zhuǎn)速=27646×3600/60=1658760bps=1.659×106B/S測(cè)驗(yàn)5答案4盛建倫jlsheng@二、(共30分)設(shè)磁盤存儲(chǔ)器的轉(zhuǎn)速為3000r/min,共有4個(gè)盤面,5道/mm,每道記錄信息12288B,最小磁道直徑為230mm,共有275道。問:①該磁盤存儲(chǔ)器的存儲(chǔ)容量是多少?解:①如果該磁盤存儲(chǔ)器的4個(gè)盤面都是用戶可用的,則磁盤存儲(chǔ)器的存儲(chǔ)容量=存儲(chǔ)面數(shù)×柱面數(shù)×每道存儲(chǔ)容量=4×275×12288B=13516800B=13200KB=12.89MB如果該磁盤存儲(chǔ)器的4個(gè)盤面中有1個(gè)是用戶不可用(伺服)的,則磁盤存儲(chǔ)器的存儲(chǔ)容量=3×275×12288B=10137600B=9900KB測(cè)驗(yàn)5答案5盛建倫jlsheng@二、(共30分)設(shè)磁盤存儲(chǔ)器的轉(zhuǎn)速為3000r/min,共有4個(gè)盤面,5道/mm,每道記錄信息12288B,最小磁道直徑為230mm,共有275道。問:②最高位密度和最低位密度是多少?解:②最高位密度是最內(nèi)層磁道的位密度最高位密度=磁道容量/最內(nèi)層磁道的周長(zhǎng)=12288B/(230mm×π)=12288B/(230×3.1416)=12288B/722.568=17B/mm=136bpm測(cè)驗(yàn)5答案最低位密度是最外層磁道的位密度記錄區(qū)的外直徑=最小磁道直徑+2×磁道數(shù)/道密度=230+2×275/5=340mm最低位密度=磁道容量/最外層磁道的周長(zhǎng)=12288B/(340mm×π)=12288/(340×3.1416)=12288B/1068.144=11.5B/mm=92bpm二、(共30分)設(shè)磁盤存儲(chǔ)器的轉(zhuǎn)速為3000r/min,共有4個(gè)盤面,5道/mm,每道記錄信息12288B,最小磁道直徑為230mm,共有275道。問:③磁盤的數(shù)據(jù)傳輸率是多少?④

平均等待時(shí)間是多少?解:③磁盤的數(shù)據(jù)傳輸率=12288B×3000/60=614400B/S=4915200bps測(cè)驗(yàn)5答案④平均等待時(shí)間是磁盤旋轉(zhuǎn)半圈的時(shí)間平均等待時(shí)間=(60/每分鐘轉(zhuǎn)速)×1/2=(60/3000)×1/2=0.01S=10mS7盛建倫jlsheng@三、(共5分)判斷題(請(qǐng)?jiān)谡_的句子前寫T,錯(cuò)誤的句子前寫F)(T)1.CD-ROM盤記錄信息的原理是形變。(T)2.磁帶存儲(chǔ)器是順序存取方式,主存儲(chǔ)器是隨機(jī)存取方式。(T)3.CD-ROM的光道是一條螺旋線,磁光盤的光道是一些同心圓。(T)4.磁盤存儲(chǔ)器的最小可尋址單位是扇區(qū)。(T)5.磁帶常用的磁記錄方式有:調(diào)相制PM和GCR成組編碼。8盛建倫jlsheng@四、(共30分)填空題1.程序直接控制I/O方式是CPU通過

執(zhí)行一段程序完成輸入/輸出。分為

無(wú)條件輸入/輸出和(條件)查詢式輸入/輸出。

無(wú)條件輸入/輸出是不需要知道I/O設(shè)備的

狀態(tài)

,直接用

輸入輸出指令完成輸入/輸出。(條件)查詢式輸入/輸出是在數(shù)據(jù)傳送前,必須先

查詢

I/O設(shè)備的

狀態(tài)

。2.DMAC每傳送一個(gè)

向CPU發(fā)出

總線請(qǐng)求請(qǐng)求。當(dāng)所要求的數(shù)據(jù)塊傳送完畢,DMA控制器向CPU發(fā)出

中斷請(qǐng)求請(qǐng)求。CPU做一些

傳送后處理工作。3.輔存用于存放

當(dāng)前不需要立即使用的信息,輔存的特點(diǎn)是容量大,

成本低和

非易失性。9盛建倫jlsheng@4.程序中斷傳送方式是CPU在啟動(dòng)

I/O設(shè)備后,就可以執(zhí)行

其他程序。當(dāng)

I/O設(shè)備

準(zhǔn)備好后,主動(dòng)向CPU發(fā)出

中斷請(qǐng)求。CPU

響應(yīng)中斷后,暫時(shí)停止

正在運(yùn)行的程序,轉(zhuǎn)而執(zhí)行一個(gè)中斷服務(wù)程序,完成

輸入/輸出或其他服務(wù)。處理完后再返回

繼續(xù)執(zhí)行原來(lái)的程序。5.磁盤沿盤半徑方向單位長(zhǎng)度的磁道數(shù)稱為

道密度,磁道單位長(zhǎng)度上記錄的二進(jìn)制代碼的位數(shù)稱為

位密度。磁盤地址由磁頭號(hào)(記錄面號(hào))

,

磁道號(hào)(柱面號(hào))

扇區(qū)號(hào)組成。四、(共30分)填空題10盛建倫jlsheng@第5章指令系統(tǒng)指令格式尋址方式指令類型指令系統(tǒng)的設(shè)計(jì)方法InstructionSets復(fù)習(xí)11盛建倫jlsheng@指示計(jì)算機(jī)完成某一特定操作的最基本的命令稱為計(jì)算機(jī)的“指令”Instruction。指令是計(jì)算機(jī)硬件能直接識(shí)別并執(zhí)行的命令,是用機(jī)器語(yǔ)言編寫程序的基礎(chǔ)工具。一臺(tái)計(jì)算機(jī)的指令格式及其所有指令的集合稱為該計(jì)算機(jī)的指令系統(tǒng)。指令系統(tǒng)表征著計(jì)算機(jī)的基本功能,是程序設(shè)計(jì)者看到的機(jī)器的主要屬性和軟、硬件的主要交界面。指令的基本格式:操作碼地址碼OperationCodeAddressCode指令的長(zhǎng)度(InstructionLength)主要取決于操作碼的長(zhǎng)度、操作數(shù)地址的長(zhǎng)度和操作數(shù)地址的個(gè)數(shù)。12指令的地址結(jié)構(gòu)指令中的地址碼字段用來(lái)指出參與操作的操作數(shù)的地址,地址碼的位數(shù)決定能夠直接訪問的存儲(chǔ)空間范圍。(1)三地址指令Three-AddressInstruction格式:OPCODEA1A2A3(2)兩地址指令Two-AddressInstruction格式:OPCODEA1A2(3)一地址指令One-AddressInstruction格式:OPCODEA一地址指令有兩種情況:一是參與操作的只有一個(gè)操作數(shù),可稱為“單操作數(shù)指令”。二是參與操作的有兩個(gè)操作數(shù),其中一個(gè)是隱含的。(4)零地址指令Zero-AddressInstruction格式:OPCODE零地址格式的指令有兩種情況:①無(wú)需任何操作數(shù)。如空操作指令,停機(jī)指令等??煞Q無(wú)操作數(shù)指令。②操作數(shù)的地址是隱含的。零地址、一地址和兩地址指令具有指令短,執(zhí)行速度快,硬件實(shí)現(xiàn)簡(jiǎn)單等特點(diǎn),常見于結(jié)構(gòu)較簡(jiǎn)單,字長(zhǎng)較短的小型、微型機(jī)的指令中。指令系統(tǒng)的設(shè)計(jì)主要包括操作類型、操作內(nèi)容和指令格式(InstructionFormats)的設(shè)計(jì)。操作碼的編碼指令操作碼的長(zhǎng)度(二進(jìn)制位數(shù))決定了指令系統(tǒng)中完成不同操作的指令條數(shù)。指令操作碼通常有兩種編碼格式。(1)固定長(zhǎng)度操作碼Fixed-LengthOpcode即操作碼的長(zhǎng)度固定,且集中放在指令字的一個(gè)字段中。這種格式有利于簡(jiǎn)化硬件設(shè)計(jì),減少指令譯碼時(shí)間。若操作碼長(zhǎng)度為K位,則最多可有2k條不同指令。(2)可變長(zhǎng)度操作碼Variable-LengthOpcode即操作碼的長(zhǎng)度可變,且分散地放在指令字的不同字段中。這種格式能有效地壓縮程序中操作碼的平均長(zhǎng)度。操作碼長(zhǎng)度不固定將增加指令譯碼和分析的難度,使控制器的設(shè)計(jì)復(fù)雜化。15盛建倫jlsheng@【例1】某計(jì)算機(jī)的字長(zhǎng)為16位,用固定長(zhǎng)度操作碼設(shè)計(jì)指令系統(tǒng),要求有零地址指令16條,一地址指令15條,兩地址指令15條及三地址指令15條。設(shè)每個(gè)地址碼字段為4位。解:如果要求指令字長(zhǎng)是字節(jié)的整數(shù)倍,則零地址指令長(zhǎng)度應(yīng)該為8位,一地址指令長(zhǎng)度應(yīng)該為16位,二地址指令長(zhǎng)度應(yīng)該為16位,三地址指令長(zhǎng)度應(yīng)該為24位。地址碼字段的長(zhǎng)度均可大于4位。零地址指令長(zhǎng)度為6位,一地址指令長(zhǎng)度為10位,二地址指令長(zhǎng)度為14位,三地址指令長(zhǎng)度為18位。26=64

>61∴操作碼長(zhǎng)度為6位共61條指令OPCODEOPCODEAOPCODEA1A2OPCODEA1A2A3OPCODEOPCODEAOPCODEA1A2OPCODEA1A2A3【例2】

某計(jì)算機(jī)的字長(zhǎng)為16位,用操作碼擴(kuò)展技術(shù)設(shè)計(jì)指令系統(tǒng),要求有零地址指令16條,一地址指令15條,兩地址指令15條及三地址指令15條。設(shè)每個(gè)地址碼字段為4位。解:指令格式包括1個(gè)基本操作碼字段和3個(gè)地址碼字段。要求三地址指令15條,24=16>15,所以,基本操作碼字段長(zhǎng)度為4位。操作碼擴(kuò)展技術(shù),是在指令字中用一個(gè)固定長(zhǎng)度的字段來(lái)表示基本操作碼。對(duì)于一部分不需要某個(gè)地址碼的指令,把它們的操作碼擴(kuò)充到該地址字段。這樣即能充分利用指令字的各個(gè)字段,又能在不增加指令長(zhǎng)度的情況下擴(kuò)展操作碼的長(zhǎng)度,使它能表示更多的指令。17盛建倫jlsheng@4位基本操作碼,共有16個(gè)碼位。其中0000~1110作為15條三地址指令的操作碼,留下一個(gè)碼字1111用于把操作碼擴(kuò)展到A1。15條二地址指令操作碼為11110000~11111110。留下一個(gè)碼字11111111用于把操作碼擴(kuò)展到A2。15條一地址指令的操作碼為111111110000~111111111110。留下一個(gè)碼字111111111111用于把操作碼擴(kuò)展到A3。16條零地址指令的操作碼為1111111111110000~1111111111111111。OPA1A2A315121187430指令格式為:OPA1A2A315121187430各字段均為4位,指令字長(zhǎng)為16位。本例所用的操作碼擴(kuò)展方法稱為15/15/15法。它是指在4位二進(jìn)制表示的16個(gè)碼點(diǎn)中,用15個(gè)來(lái)表示最常用指令的操作碼,剩下的一個(gè)碼字用于把操作碼擴(kuò)展到下一個(gè)4位。而下一個(gè)4位表示的16個(gè)碼字也按同樣的原則處理和擴(kuò)展。19盛建倫jlsheng@5.1某指令系統(tǒng)指令字長(zhǎng)16位,每個(gè)操作數(shù)的地址碼長(zhǎng)6位,指令分為無(wú)操作數(shù)、單操作數(shù)和雙操作數(shù)三類。若雙操作數(shù)指令有K條,無(wú)操作數(shù)指令有L條,問單操作數(shù)指令最多可能有多少條?解:基本操作碼的位數(shù)=16-2×6=4位指令格式為:OPA1A24位6位6位4位操作碼,最多可有24-1條雙地址指令。K≤16-124-K=雙地址指令向單地址指令擴(kuò)展時(shí)保留的碼位數(shù)。零地址指令有L條,如果單地址指令保留1個(gè)碼位向零地址指令擴(kuò)展:L≤26如果單地址指令保留2個(gè)碼位向零地址指令擴(kuò)展:L>26單地址指令向零地址指令擴(kuò)展時(shí)保留的碼位數(shù)=|L/26|(取整)單地址指令最多可有(24-K)×26-|L/26|條|L/26|=1,2,……尋址方式AddressingModes形成操作數(shù)地址的過程稱為尋址過程。尋址方式就是尋找操作數(shù)地址的方法,或者說,是操作數(shù)地址的形成方式。為了能夠在指令中用較短的地址碼訪問較大的存儲(chǔ)空間,以及便于編程,就產(chǎn)生出多種的尋址方式。注意:1.每種尋址方式的尋址機(jī)制,操作數(shù)的有效地址是怎樣形成的?2.指令的地址碼字段(形式地址)中是什么?3.操作數(shù)的位置在哪里?在指令的執(zhí)行過程中,操作數(shù)可能在存儲(chǔ)器的某個(gè)單元中,也可能在CPU的通用寄存器中,或者在指令中,在I/O端口。在指令的地址碼字段給出的不是操作數(shù)的直接地址,而是與操作數(shù)地址有關(guān)的一些特征信息,稱為形式地址;還要經(jīng)過一系列的計(jì)算、變換才能得到存放操作數(shù)的真實(shí)地址,稱為有效地址EffectiveAddress。直接尋址方式DirectAddressing指令的地址碼部分給出的就是操作數(shù)在主存儲(chǔ)器的地址,這種方式稱為直接尋址方式。根據(jù)指令地址碼部分給出的直接地址Addr就可以從存儲(chǔ)器中讀出所需要的操作數(shù)。這種尋址方式簡(jiǎn)單,直觀,也便于硬件實(shí)現(xiàn)。缺點(diǎn)是指令的地址碼太長(zhǎng)。而且操作數(shù)的地址是指令的一部分,不能修改,只能用來(lái)訪問固定的存儲(chǔ)器單元。指令字OPCODE……Addr存儲(chǔ)器Addr:操作數(shù)…………直接尋址過程22間接尋址方式IndirectAddressing間接尋址方式,在指令的地址碼部分直接給出的既不是操作數(shù),也不是操作數(shù)的地址,而是操作數(shù)的地址的地址。指令字OPCODE……A1存儲(chǔ)器A1:Addr…………操作數(shù)Addr:間接尋址過程間接尋址方式至少要兩次訪問內(nèi)存(一次讀操作數(shù)的地址,另一次讀操作數(shù))才能取得操作數(shù),指令執(zhí)行速度較慢。間接尋址比直接尋址靈活。當(dāng)需要改變操作數(shù)地址時(shí),不必修改指令,只需修改存放有效地址的那個(gè)單元(稱為間接指示器)的內(nèi)容即可;間接尋址可用指令中較短的地址訪問大的存儲(chǔ)空間,擴(kuò)大了尋址范圍。23盛建倫jlsheng@寄存器尋址RegisterAddressing若指令的地址碼部分給出的是某通用寄存器號(hào)Ri,操作數(shù)就存放在該寄存器中,則稱為寄存器尋址(寄存器直接尋址)。由于通用寄存器的數(shù)目較少,一般只有幾個(gè)到幾十個(gè),因而指令的地址碼很短。從CPU內(nèi)部寄存器中存取數(shù)據(jù)比從存儲(chǔ)器中快得多。所以采用寄存器尋址方式可以縮短指令的長(zhǎng)度,節(jié)省存儲(chǔ)空間,提高指令的執(zhí)行速度。指令字OPCODE……RiRi:操作數(shù)24盛建倫jlsheng@寄存器間接尋址RegisterIndirectAddressing寄存器間接尋址,指令中給出的地址碼是寄存器號(hào)Ri,所指定的寄存器中存放的是操作數(shù)在主存儲(chǔ)器的地址。在寄存器間接尋址方式中,寄存器的內(nèi)容為操作數(shù)的有效地址,寄存器作為指示器,操作數(shù)在內(nèi)存而不在寄存器中。寄存器間接尋址方式不需從存儲(chǔ)器取有效地址,因此,可比間接尋址方式有效地減少訪存次數(shù),而且寄存器能給出全字長(zhǎng)的地址碼,從而擴(kuò)大了訪存空間。指令字OPCODE……RiRi:Addr存儲(chǔ)器Addr:操作數(shù)…………寄存器間接尋址過程變址尋址Indexing變址尋址的基本操作是把變址寄存器的變址值與指令的地址碼提供的形式地址相加得到操作數(shù)的有效地址。變址寄存器的內(nèi)容每使用一次就應(yīng)改變一次。變址尋址的典型用法是在遇到需要連續(xù)修改數(shù)據(jù)地址時(shí),不必修改指令,只需修改變址值。形式地址A一般是不變的。變址尋址在字符串處理、向量運(yùn)算等成批數(shù)據(jù)處理中很有用。指令字存儲(chǔ)器變址尋址過程Ri:KA+K:操作數(shù)…………OPCODE……RiAALU變址寄存器基址尋址Base-RegisterAddressing基址尋址方式是將基址寄存器的內(nèi)容與指令中的形式地址相加,形成操作數(shù)的有效地址。基址寄存器的內(nèi)容稱為基地址,形式地址部分是一個(gè)位移量。存儲(chǔ)器的有效地址等于基址寄存器內(nèi)容與位移量之和,修改基址寄存器的內(nèi)容就可以訪問主存儲(chǔ)器中任一單元。指令字基址尋址過程basebase+A:存儲(chǔ)器操作數(shù)…………OPCODE……AALU基址寄存器:27盛建倫jlsheng@基址尋址與變址尋址在形式和操作數(shù)地址的形成上是相似的,但二者的概念和應(yīng)用場(chǎng)合不同。基址尋址面向系統(tǒng),主要用于邏輯地址到物理地址的變換,用以解決程序在存儲(chǔ)器中的定位和擴(kuò)大尋址空間等問題?;芳拇嫫魈峁┗鶞?zhǔn)值(固定的),指令提供位移量(可變的)。變址尋址是面向用戶的,用于訪問字符串、向量和數(shù)組等成批數(shù)據(jù),不具有邏輯地址到物理地址的變換功能。變址寄存器提供修改量(可變的)。相對(duì)尋址、基址尋址和變址尋址合稱為:DisplacementAddressing28盛建倫jlsheng@相對(duì)尋址RelativeAddressing相對(duì)尋址是把程序計(jì)數(shù)器PC當(dāng)前的內(nèi)容與指令地址碼字段給出的形式地址(位移量)相加作為操作數(shù)的有效地址,或轉(zhuǎn)移目標(biāo)地址。E=(PC)+disp。相對(duì)尋址方式的尋址范圍是以程序計(jì)數(shù)器PC的當(dāng)前內(nèi)容作為基準(zhǔn)向正或向負(fù)浮動(dòng)一個(gè)形式地址的范圍。指令字PCPC+disp:存儲(chǔ)器操作數(shù)…………OPCODE……dispALU程序計(jì)數(shù)器:相對(duì)尋址過程位移量通常用補(bǔ)碼表示。29立即尋址

ImmediateAddressing所需的操作數(shù)由指令的地址碼部分直接給出,就稱為立即尋址方式。包含在指令中的操作數(shù)稱為立即數(shù)。立即尋址方式的特點(diǎn)是取指時(shí)操作碼和一個(gè)操作數(shù)同時(shí)被取出,不必再次訪問存儲(chǔ)器,提高了指令的執(zhí)行速度。由于這一操作數(shù)是指令的一部分,不能修改。操作數(shù)的大小也受指令地址碼長(zhǎng)度的限制。立即尋址方式靈活性較差,只能適用于操作數(shù)固定的情況。通常用于某一寄存器或存儲(chǔ)器單元賦初值或提供一個(gè)常數(shù)等。30盛建倫jlsheng@堆棧尋址StackAddressing堆棧(Stack)是一種特殊的數(shù)據(jù)結(jié)構(gòu),堆棧中元素的存取按“后進(jìn)先出(LastInFirstOut)”的原則進(jìn)行。軟堆棧(存儲(chǔ)器堆棧)是在內(nèi)存中開辟一塊存儲(chǔ)區(qū)域作為堆棧,其位置和數(shù)量都可由程序員設(shè)定,堆棧深度幾乎是“無(wú)限的”。通常用一個(gè)寄存器指出棧頂?shù)奈恢?,該寄存器稱為堆棧指示器或堆棧指針SP(StackPointer)。SP總是指向棧頂。堆棧中的一個(gè)元素稱為“棧項(xiàng)”。棧項(xiàng)按順序進(jìn)入堆棧稱為壓?;驂喝搿W詈髩喝攵褩5脑胤Q為棧頂元素。棧項(xiàng)按與進(jìn)棧相反的順序從堆棧中取出稱為出?;驈棾觥W钕葟棾龅氖菞m斣亍H魏味褩2僮髦荒茉跅m斶M(jìn)行。堆棧操作使用一種特殊的數(shù)據(jù)傳送指令,壓入指令PUSH和彈出指令POP。當(dāng)堆棧中沒有元素時(shí),稱為空棧,此時(shí)SP指向棧底。31盛建倫jlsheng@指令類型指令按功能可分成算術(shù)邏輯運(yùn)算、數(shù)據(jù)傳送、程序控制、輸入輸出等類型。1.算術(shù)邏輯運(yùn)算指令A(yù)rithmetic&LogicalInstruction算術(shù)運(yùn)算指令包括:定點(diǎn)加減運(yùn)算指令、求補(bǔ)指令、比較指令、加1減1指令,定點(diǎn)乘除指令、浮點(diǎn)運(yùn)算指令、十進(jìn)制運(yùn)算指令等。向量運(yùn)算指令,可以直接對(duì)整個(gè)向量Vector或矩陣Array進(jìn)行求和、求積等運(yùn)算。邏輯運(yùn)算類指令包括邏輯與、或、非、異或和測(cè)試等。有些機(jī)器還有位操作BitManipulation、位測(cè)試等指令。算術(shù)邏輯運(yùn)算指令都影響狀態(tài)標(biāo)志位Flag(程序狀態(tài)字PSW)。32盛建倫jlsheng@2.移位操作指令ShiftInstruction移位指令有算術(shù)移位、邏輯移位和循環(huán)移位三種??梢詫?shí)現(xiàn)對(duì)操作數(shù)左移或右移一位或多位。循環(huán)移位Rotate有帶進(jìn)位位的大循環(huán)和不帶進(jìn)位位的小循環(huán)兩種,常用于實(shí)現(xiàn)循環(huán)式控制、壓縮BCD碼高低字位互換及多倍字長(zhǎng)的移位等。6336CyCyCyCy交換后大循環(huán)小循環(huán)33盛建倫jlsheng@3.數(shù)據(jù)傳送指令DataTransferInstruction在程序中使用最多的是數(shù)據(jù)傳送指令。這類指令的功能是實(shí)現(xiàn)寄存器與寄存器,寄存器與存儲(chǔ)單元以及存儲(chǔ)單元與存儲(chǔ)單元之間的數(shù)據(jù)傳送,包括對(duì)數(shù)據(jù)的讀(取數(shù))和寫(存數(shù))。數(shù)據(jù)傳送時(shí),數(shù)據(jù)從源地址Source傳送到目的地址Destination,源地址中的數(shù)據(jù)保持不變。數(shù)據(jù)塊傳送指令,可一次把多達(dá)64K的數(shù)據(jù)從一個(gè)存儲(chǔ)區(qū)傳送到另一個(gè)存儲(chǔ)區(qū)。堆棧的壓入Push和彈出Pop指令也屬于數(shù)據(jù)傳送指令。數(shù)據(jù)交換指令則完成源操作數(shù)與目的操作數(shù)的互換。34盛建倫jlsheng@4.程序控制指令

ProgramControlInstruction這類指令主要用于控制程序的流向,包括停機(jī)、無(wú)條件轉(zhuǎn)移Jump、條件轉(zhuǎn)移、子程序調(diào)用與返回、中斷和陷井指令等。條件轉(zhuǎn)移ConditionalBranch是根據(jù)對(duì)某些條件測(cè)試的結(jié)果(通常是前面執(zhí)行的算術(shù)邏輯運(yùn)算指令對(duì)狀態(tài)標(biāo)志位的影響)決定是否發(fā)生轉(zhuǎn)移,若條件滿足則轉(zhuǎn)移,否則順序執(zhí)行下一條指令。子程序調(diào)用SubroutineCall與返回SubroutineReturn指令也有條件調(diào)用/條件返回和無(wú)條件調(diào)用/無(wú)條件返回的區(qū)別。中斷指令設(shè)置中斷類型,開放或禁止中斷Interrupt等。陷井Trap是一種異常中斷,其目的不是為了請(qǐng)求CPU正常處理中斷,而是為了把發(fā)生的各種事件通知CPU,并根據(jù)故障情況轉(zhuǎn)入相應(yīng)的故障處理程序。陷井指令一般不提供給用戶使用。絕對(duì)轉(zhuǎn)移是轉(zhuǎn)移到一個(gè)給定的目標(biāo)地址(在整個(gè)存儲(chǔ)器范圍內(nèi))。相對(duì)轉(zhuǎn)移是相對(duì)當(dāng)前地址(程序計(jì)數(shù)器PC內(nèi)容)向前或向后轉(zhuǎn)移一個(gè)位移量的范圍(小范圍)。第6章中央處理器控制器的組成CPU中的主要寄存器一條指令的執(zhí)行微程序控制36盛建倫jlsheng@CPU的組成

CPU的基本組成包括:運(yùn)算部件、寄存器、總線、時(shí)序系統(tǒng)、指令譯碼器ID和微操作命令產(chǎn)生部件等。1.指令部件指令譯碼器(InstructionDecoder)的功能是對(duì)指令寄存器中的指令的操作碼進(jìn)行分析(譯碼),決定應(yīng)該執(zhí)行的基本操作。指令部件的主要任務(wù)是完成取指令和分析指令。指令部件包括:程序計(jì)數(shù)器、指令寄存器、指令譯碼器ID和地址形成部件。地址形成部件根據(jù)操作數(shù)的尋址方式形成操作數(shù)的有效地址。37盛建倫jlsheng@2.運(yùn)算部件①ALU;②定點(diǎn)乘法、除法部件;③浮點(diǎn)部件。3.寄存器CPU中的寄存器可分為通用寄存器和專用寄存器兩大類。計(jì)算機(jī)的字長(zhǎng)與ALU的位數(shù)相同,38盛建倫jlsheng@CPU中的主要寄存器1.通用寄存器General-purposeRegister通用寄存器主要用于存放參與運(yùn)算的數(shù)據(jù)和運(yùn)算結(jié)果,有的還可以作為變址寄存器、計(jì)數(shù)器、地址指針等。

CISC機(jī)的CPU通常設(shè)有幾個(gè)或十幾個(gè)通用寄存器,RISC機(jī)的CPU則可能有多達(dá)數(shù)百個(gè)通用寄存器。在CPU中設(shè)置眾多的通用寄存器的目的主要是為了減少計(jì)算過程中的訪存次數(shù)。通用寄存器組是程序可訪問的。其中,最重要的是累加寄存器Accumulator。CPU內(nèi)通用寄存器的位數(shù)取決于機(jī)器字長(zhǎng),與ALU的位數(shù)相同。在CPU中可能還有幾個(gè)暫存器,一般在ALU入口,主要用于暫時(shí)保存ALU運(yùn)算所需要的兩個(gè)操作數(shù)之一。暫存器對(duì)程序員是透明的。39盛建倫jlsheng@

CPU至少包含以下5個(gè)專用寄存器:程序計(jì)數(shù)器PC,指令寄存器IR,數(shù)據(jù)寄存器DR,地址寄存器AR,程序狀態(tài)字寄存器PSWR。2.專用寄存器(1)程序計(jì)數(shù)器PC(ProgramCounter)程序計(jì)數(shù)器是用來(lái)存放要取的下一條指令在存儲(chǔ)器的地址的,有自動(dòng)加1功能。程序計(jì)數(shù)器的位數(shù)取決于CPU能夠訪問的程序存儲(chǔ)空間的大小,一般與地址總線的線數(shù)相同。當(dāng)程序是順序執(zhí)行時(shí),每取一個(gè)指令字,程序計(jì)數(shù)器PC自動(dòng)加1,形成下一條指令的地址。當(dāng)程序發(fā)生轉(zhuǎn)移時(shí),用轉(zhuǎn)移目標(biāo)地址取代PC原來(lái)的值作為下一條指令的地址。40盛建倫jlsheng@(2)指令寄存器IR(InstructionRegister)指令寄存器IR是用來(lái)存放(從存儲(chǔ)器取來(lái))當(dāng)前正在執(zhí)行的指令的。指令寄存器的位數(shù)取決于指令字長(zhǎng)。地址寄存器的內(nèi)容是CPU訪存時(shí)要讀/寫的存儲(chǔ)單元的地址。地址寄存器AR的位數(shù)取決于CPU(讀寫數(shù)據(jù)時(shí))能夠訪問的存儲(chǔ)空間的大小,一般與地址總線的線數(shù)相同。(3)數(shù)據(jù)寄存器DR(MemoryDataRegister)數(shù)據(jù)寄存器用于暫時(shí)保存從主存儲(chǔ)器取來(lái)的一個(gè)數(shù)據(jù)字或即將寫入主存儲(chǔ)器的一個(gè)數(shù)據(jù)字。數(shù)據(jù)寄存器DR的位數(shù)取決于數(shù)據(jù)總線的寬度。(4)地址寄存器AR(MemoryAddressRegister)41盛建倫jlsheng@(5)程序狀態(tài)字寄存器PSWR(ProgramStateWordRegister)程序狀態(tài)字寄存器(或稱為狀態(tài)標(biāo)志寄存器F)用于存放程序狀態(tài)字。程序狀態(tài)字的每個(gè)位表示程序或機(jī)器運(yùn)行的某個(gè)狀態(tài),包括執(zhí)行算術(shù)運(yùn)算、邏輯運(yùn)算、移位操作指令后的狀態(tài),以及一些控制標(biāo)志(中斷、陷阱等)。此外,CPU中可能還有其他一些專用寄存器:中斷向量寄存器InterruptVectorRegister、堆棧指針StackPointer等。42盛建倫jlsheng@

CPU通過系統(tǒng)總線與主存儲(chǔ)器和計(jì)算機(jī)系統(tǒng)內(nèi)的其他部件進(jìn)行信息傳送。系統(tǒng)總線通常包括:地址總線,數(shù)據(jù)總線,控制總線。計(jì)算機(jī)的字長(zhǎng)與數(shù)據(jù)總線的寬度不一定相同??偩€是由多個(gè)設(shè)備共享的傳送信息的一簇公共的信號(hào)線及相關(guān)邏輯。4.總線Bus①CPU內(nèi)部總線用于CPU內(nèi)部各個(gè)部件之間的信息傳送。②系統(tǒng)總線43盛建倫jlsheng@脈沖源產(chǎn)生一定頻率的脈沖信號(hào)作為機(jī)器的時(shí)鐘脈沖。由時(shí)序電路產(chǎn)生周期、節(jié)拍、工作脈沖等時(shí)序信號(hào)。5.時(shí)序系統(tǒng)包括:脈沖源、啟停線路、時(shí)序信號(hào)形成部件等。

CPU的各種操作需要嚴(yán)格的定時(shí)控制。為了保證指令及各個(gè)微操作的執(zhí)行按正確順序完成,需要相應(yīng)的控制指令周期、機(jī)器周期的周期、節(jié)拍電位、節(jié)拍脈沖等。44盛建倫jlsheng@6.微操作控制信號(hào)形成部件根據(jù)指令分析的結(jié)果和時(shí)序信號(hào),產(chǎn)生相應(yīng)的微操作控制信號(hào)。微操作命令序列的形成方法有組合邏輯(硬布線)和微程序兩大類。根據(jù)微操作控制信號(hào)的形成方法,控制器可分為:微程序控制器,硬布線(組合邏輯)控制器兩大類。45盛建倫jlsheng@①取指令FetchtheInstructionfromMemory②分析指令DecodetheInstruction③執(zhí)行指令ExecutetheInstruction④控制主機(jī)與I/O設(shè)備交換信息(控制輸入輸出)⑤對(duì)異常情況和某些請(qǐng)求的處理按照操作數(shù)有效地址取出操作數(shù),并按操作性質(zhì)形成相應(yīng)的操作控制信號(hào)序列,完成指令的各種操作(包括對(duì)運(yùn)算結(jié)果的處理)。形成下一條指令的地址。對(duì)指令譯碼,分析它要求的操作。形成操作數(shù)有效地址。發(fā)出指令地址及訪存控制信號(hào)。將指令從主存取入CPU??刂破鞯墓δ芸刂破鞯幕竟δ苁侵芏鴱?fù)始的按一定順序逐條取指令,分析指令,執(zhí)行指令,再取下一條指令,……直至停機(jī)。46程序計(jì)數(shù)器PCOP地址碼指令寄存器指令譯碼器ID微操作控制信號(hào)形成部件脈沖源啟停線路時(shí)序信號(hào)產(chǎn)生部件運(yùn)算器ALU通用寄存器組狀態(tài)寄存器數(shù)據(jù)寄存器DR地址寄存器ARCLK+1ResetReset中斷機(jī)構(gòu)DBABCB主存儲(chǔ)器I/O指令數(shù)據(jù)操作數(shù)地址指令地址轉(zhuǎn)移地址形式地址總線控制控制器的基本組成框圖47盛建倫jlsheng@一條指令的執(zhí)行設(shè)指令格式為:Opcoders,rdrs1imm或disprs,rd為源/目的操作數(shù)地址,rs,rd和rs1均為通用寄存器的地址。imm/disp為立即數(shù)或位移量。rs1為另一源操作數(shù)地址,48盛建倫jlsheng@CPT1T2(rs1)→ALUALU→PCPC→ABPC+1PC→ALUALU→GRDB→DRALU→DRDR→ALUDR→DBDB→IRALU→ARAR→ABrs1→GRResetimm/disp→ALUrs,rd→GR程序計(jì)數(shù)器PC指令寄存器IR指令譯碼器ID微操作控制信號(hào)形成部件脈沖源啟停線路時(shí)序信號(hào)產(chǎn)生部件ALU通用寄存器組GRFlag數(shù)據(jù)寄存器DR地址寄存器ARCLK2DBABCB主存儲(chǔ)器(rs)→ALUOPimm/disprs1rs,rdCLK+ADS-49盛建倫jlsheng@(1)加法指令的執(zhí)行過程加法指令的功能:將寄存器rs中的一個(gè)數(shù)與存儲(chǔ)器中的一個(gè)數(shù)(地址為(rs1)+disp)相加,結(jié)果放在寄存器rd中。操作表達(dá)式:(rs)+((rs1)+disp)→rd以上操作需4個(gè)機(jī)器周期。其中,取指令和取數(shù)周期通過總線訪存。計(jì)算地址和運(yùn)算送結(jié)果周期是在CPU內(nèi)部操作,不使用總線。50盛建倫jlsheng@(2)條件轉(zhuǎn)移指令(相對(duì)轉(zhuǎn)移)的執(zhí)行過程條件轉(zhuǎn)移指令的功能:根據(jù)狀態(tài)標(biāo)志寄存器中相關(guān)標(biāo)志的狀態(tài)決定是否轉(zhuǎn)移。如果轉(zhuǎn)移條件成立,則轉(zhuǎn)移到指令指定的目標(biāo)地址,否則順序執(zhí)行下一條指令。51盛建倫jlsheng@微程序控制技術(shù)微程序控制的基本思想是把機(jī)器指令的每一操作控制步編成一條微指令。每條機(jī)器指令對(duì)應(yīng)一段微程序。執(zhí)行機(jī)器指令時(shí),從控制存儲(chǔ)器中順序取出這些微指令,就可按所要求的次序產(chǎn)生相應(yīng)的操作控制信號(hào)。微程序控制器MicroprogrammedControlUnit的核心部件是控制存儲(chǔ)器。微程序設(shè)計(jì)技術(shù)Microprogramming微程序設(shè)計(jì)技術(shù)的實(shí)質(zhì)是將程序設(shè)計(jì)技術(shù)和存儲(chǔ)技術(shù)相結(jié)合,用程序設(shè)計(jì)的思想方法來(lái)組織操作控制邏輯。將微操作控制信號(hào)按一定規(guī)則進(jìn)行信息編碼,形成控制字(微指令),再把這些微指令按時(shí)間先后排列起來(lái)成為微程序,存放在一個(gè)控制存儲(chǔ)器中。執(zhí)行一條指令實(shí)際上就是執(zhí)行一段存放在控制存儲(chǔ)器中的微程序。微指令

Microinstruction是同時(shí)發(fā)出的控制信號(hào)所執(zhí)行的一組微操作。微命令Microcommand是微操作的控制信號(hào)。微操作Microoperation是微命令的操作過程,是執(zhí)行部件接受微命令后所進(jìn)行的最基本的操作。微程序

Microprogram是由微指令組成的程序,是微指令的有序集合??刂拼鎯?chǔ)器ControlMemory/Storage用來(lái)存放實(shí)現(xiàn)整個(gè)指令系統(tǒng)的全部微程序,它一般用只讀存儲(chǔ)器構(gòu)成。一條指令由若干條微指令解釋,按次序執(zhí)行這些微指令實(shí)現(xiàn)指令的功能。53盛建倫jlsheng@微指令的格式微指令由控制字段和下址字段組成??刂谱侄蜗轮纷侄慰刂谱侄蜟ontrolField是微命令的編碼。下址字段AddressField給出下一條微指令在控存的地址。54盛建倫jlsheng@微指令的控制字段的編碼方法微指令的控制字段的編碼方法有4種:直接控制法、最短字長(zhǎng)編碼、字段編碼法、分組直接控制法。1.直接控制法直接控制法是在微指令的控制字段中,每一位代表一個(gè)微命令,直接對(duì)應(yīng)一種微操作。當(dāng)該位為1時(shí),定義為有該控制信號(hào),為0時(shí),定義為無(wú)該控制信號(hào)。微命令的產(chǎn)生不需經(jīng)過譯碼。某些控制信號(hào)用高低電平表示兩種控制,如等。設(shè)計(jì)微指令時(shí),是否發(fā)出某個(gè)微命令,只要將控制字段中相應(yīng)位置成1或0,就可打開或關(guān)閉某個(gè)控制門。直接控制法的優(yōu)點(diǎn)是:控制簡(jiǎn)單、直觀,操作并行性最高,可提高速度。但由于機(jī)器的微命令數(shù)可能多達(dá)數(shù)百個(gè),使得微指令字非常長(zhǎng),控存的容量過大。只適用于結(jié)構(gòu)簡(jiǎn)單,或速度要求很高的控制部件。55盛建倫jlsheng@[例1]設(shè)控制器的結(jié)構(gòu)如教材圖6.6所示??偣灿?5個(gè)控制信號(hào)(微命令)。表6.1控制信號(hào)如果控制存儲(chǔ)器的容量為4k字,則下址字段需12位。用直接控制法設(shè)計(jì)微指令,控制字段為25位。微指令格式為:控制字段下址字段1225……26……37PC→ABALU→PC2423[例2]設(shè)計(jì)一條加法指令的微指令。這條加法指令的執(zhí)行需要4個(gè)機(jī)器周期,應(yīng)該由4條微指令解釋執(zhí)行。每條微指令發(fā)出的控制信號(hào)(微命令)如下:加法指令的功能:將寄存器rs中的一個(gè)數(shù)與存儲(chǔ)器中的一個(gè)數(shù)(地址為(rs1)+disp)相加,結(jié)果放在寄存器rd中。當(dāng)前正在執(zhí)行的微指令從控制存儲(chǔ)器中取出后放在微指令寄存器中。該寄存器的各個(gè)控制位的輸出直接連到各個(gè)控制門。⑴取指令微指令①指令地址送地址總線PC→AB微指令發(fā)出的控制信號(hào)(微命令)微指令②發(fā)訪存控制命令A(yù)DS,,③指令送指令寄存器DB→IR④程序計(jì)數(shù)器加1PC+1⑵計(jì)算地址微指令①取兩個(gè)源操作數(shù)地址rs1→GR,(rs1)→ALU,disp→ALU②加法運(yùn)算+③有效地址送地址寄存器ALU→AR58盛建倫jlsheng@微指令發(fā)出的控制信號(hào)(微命令)微指令⑶取數(shù)微指令①操作數(shù)地址送地址總線AR→AB②發(fā)訪存控制命令A(yù)DS,,③數(shù)據(jù)送數(shù)據(jù)寄存器DB→DR⑷加法運(yùn)算和送結(jié)果微指令①兩個(gè)源操作數(shù)送ALUrs→GR,(rs)→ALU,DR→ALU②加法運(yùn)算+③送結(jié)果ALU→GR,置標(biāo)志寄存器F59盛建倫jlsheng@2.最短字長(zhǎng)編碼法最短字長(zhǎng)編碼是將全部微命令進(jìn)行統(tǒng)一編碼,每個(gè)碼位表示一種微命令,通過譯碼產(chǎn)生微操作控制信號(hào)。N位編碼最多可有2N個(gè)微命令。優(yōu)點(diǎn)是:微指令字長(zhǎng)最短。缺點(diǎn)是:必須經(jīng)過完全譯碼。每次只能產(chǎn)生一個(gè)微命令,不能并行執(zhí)行幾個(gè)微命令,效率低,速度慢,因而很少采用。60盛建倫jlsheng@3.字段編碼法字段編碼法是將微操作控制字段劃分為若干個(gè)小字段,每個(gè)小字段是若干個(gè)微命令的編碼,小字段的長(zhǎng)度一般為2~4位。各個(gè)小字段之間的微命令可同時(shí)執(zhí)行。字段編碼法吸收了直接控制法和最短字長(zhǎng)編碼法的優(yōu)點(diǎn),既能縮短微指令字長(zhǎng),又有較高的并行性,執(zhí)行速度比較快。字段編碼法又分為字段直接編碼法和字段間接編碼法。字段直接編碼法是每個(gè)小字段單獨(dú)編碼,每個(gè)碼位表示一種微命令。執(zhí)行微指令時(shí),每個(gè)小字段單獨(dú)譯碼,分別產(chǎn)生一個(gè)微操作控制信號(hào)。字段i-1字段i字段i+1譯碼器譯碼器譯碼器控制信號(hào)組i-1控制信號(hào)組i控制信號(hào)組i+161微指令字的分段可以按功能分段,也可以按資源分段。在同一個(gè)CPU周期中,可以并行執(zhí)行的微操作是相容性微操作,不可以并行執(zhí)行的微操作是互斥性微操作。一般把互斥的微命令分在同一字段內(nèi),把相容性微操作分在不同字段內(nèi)。例如,向主存發(fā)的讀命令和寫命令是互斥的。又如,ALU的每個(gè)數(shù)據(jù)輸入端有多個(gè)數(shù)據(jù)來(lái)源,每個(gè)數(shù)據(jù)輸入端在任一微周期中只能從其中一個(gè)來(lái)源輸入一個(gè)數(shù)據(jù),控制該輸入門的微命令是互斥的。一般每個(gè)字段要留出一個(gè)代碼00…0,表示本段不發(fā)出任何微命令。2位代碼可表示3個(gè)微命令,3位代碼可以表示4~7個(gè)微命令,4位代碼可以表示8~15個(gè)微命令。62盛建倫jlsheng@字段間接編碼法是在字段直接編碼法的基礎(chǔ)上進(jìn)一步縮短微指令字長(zhǎng)的方法。通常,字段間接編碼法只作為字段直接編碼法的一種輔助手段。在實(shí)際應(yīng)用中,一條水平型微指令可同時(shí)采用直接控制法、字段直接編碼法和字段間接編碼法。微程序流的控制微程序流的控制是指當(dāng)前微指令執(zhí)行完畢后,怎樣控制產(chǎn)生后繼微指令的微地址。機(jī)器加電后執(zhí)行的第一條微指令(取指令微指令)地址來(lái)自專門的硬件電路,控制實(shí)現(xiàn)取第一條指令的操作。產(chǎn)生后繼微指令地址的方法有:由指令操作碼譯碼產(chǎn)生,由微指令的下址字段指出,增量方式,增量與下址字段結(jié)合,多路轉(zhuǎn)移方式和微中斷。1.由指令操作碼譯碼產(chǎn)生后繼微指令地址若把取指令微指令看作是公共操作,則每個(gè)微程序的第一條微指令的微地址(微程序的入口地址)是由指令操作碼譯碼產(chǎn)生的。當(dāng)一條指令取入指令寄存器IR中后,對(duì)操作碼進(jìn)行譯碼,得到該指令的第一條微指令的地址。用此地址從控制存儲(chǔ)器中取出微指令,放入微指令寄存器中。64盛建倫jlsheng@2.由微指令的下址字段指出后繼微指令地址(斷定方式)微指令的下址字段的內(nèi)容就是后繼微指令的地址。在每條微指令取到微指令寄存器后,微指令的控制字段發(fā)出該條微指令應(yīng)發(fā)出的微命令,用微指令的下址字段的內(nèi)容作為地址訪問控制存儲(chǔ)器去取下一條微指令。當(dāng)微程序控制器是由指令操作碼譯碼和由微指令的下址字段指出后繼微指令地址時(shí),微程序控制器的簡(jiǎn)化框圖如下:操作碼地址碼指令譯碼控制存儲(chǔ)器控制字段下址字段IRμIR微程序流程圖1032103110121011ADD1030JMP1110Load1010取指令PC+1計(jì)算地址1011計(jì)算地址1000加法計(jì)算1000取數(shù)1012送結(jié)果10001000計(jì)算地址1031取數(shù)1032假設(shè),后繼微指令地址是由指令操作碼譯碼和由微指令的下址字段指出??刂拼鎯?chǔ)器的容量控制存儲(chǔ)器的容量取決于微指令的總條數(shù)和微指令字的長(zhǎng)度。而微指令的總條數(shù)取決于實(shí)現(xiàn)指令系統(tǒng)的指令條數(shù)、指令的復(fù)雜性和每條指令字的微程序長(zhǎng)度。實(shí)際的計(jì)算機(jī)的控制信號(hào)數(shù)量很多,一般為100~300多個(gè)。控制存儲(chǔ)器的容量可達(dá)數(shù)十KB以上。例如,微指令字的控制字段的長(zhǎng)度為118bit,控制存儲(chǔ)器有2K字(微指令的總條數(shù)≤2K)。要求微程序能夠在整個(gè)控存范圍內(nèi)實(shí)現(xiàn)轉(zhuǎn)移,則微指令的下址字段的長(zhǎng)度應(yīng)該為微指令字的長(zhǎng)度=控制字段長(zhǎng)度+下址字段長(zhǎng)度控制存儲(chǔ)器的容量=微指令字的長(zhǎng)度×控存字?jǐn)?shù)11bit。=129bit=129bit×2K=118+1167盛建倫jlsheng@某微程序控制計(jì)算機(jī)共有67個(gè)微命令,控制存儲(chǔ)器的字?jǐn)?shù)為4K字,微程序可在整個(gè)控制存儲(chǔ)器中實(shí)現(xiàn)轉(zhuǎn)移。①采用直接控制法

②采用字段直接編碼,每個(gè)字段為2位。

③采用最短字長(zhǎng)編碼解:控制存儲(chǔ)器的字?jǐn)?shù)為4K=212字,[例3]所以,微指令字的下址字段長(zhǎng)度應(yīng)該為12位分別求以下3種情況下控制存儲(chǔ)器的容量應(yīng)該為多少?68盛建倫jlsheng@①直接控制法共有67個(gè)微命令,所以微指令字的控制字段長(zhǎng)度為微指令字長(zhǎng)=控制字段長(zhǎng)度+下址字段長(zhǎng)度=控制存儲(chǔ)器的容量=控存字?jǐn)?shù)×微指令字長(zhǎng)度=②字段直接編碼,每個(gè)字段為2位2位編碼可以表示3種微命令,設(shè)每個(gè)字段都為3種微命令的2位編碼,則控制字段的長(zhǎng)度=2×67/3微指令字長(zhǎng)=控制字段長(zhǎng)度+下址字段長(zhǎng)度=控制存儲(chǔ)器的容量=③最短字長(zhǎng)編碼27=128>67微指令字長(zhǎng)=控制字段長(zhǎng)度+下址字段長(zhǎng)度=控制存儲(chǔ)器的容量=67位67+12=79位4k×79位=45位=57位45+124k×57位7位∴控制字段的長(zhǎng)度=7+12=19位4k×19位[例4]如果要在控制器設(shè)計(jì)的早期預(yù)先估計(jì)控制存儲(chǔ)器的容量,但又不知道微指令條數(shù),可以根據(jù)機(jī)器指令條數(shù)來(lái)估算微指令條數(shù)。例如,某計(jì)算機(jī)有175條指令,若每條機(jī)器指令需6條微指令解釋執(zhí)行,則指令操作碼為8位,最多可有微指令條數(shù)=175×6=控制存儲(chǔ)器的字?jǐn)?shù)應(yīng)該為2048=211字1050條28=256條機(jī)器指令。所以,微指令字的下址字段長(zhǎng)度應(yīng)該為11位如果機(jī)器指令條數(shù)也不知道,只知道指令操作碼的位數(shù),也可以估算出微指令條數(shù)。例如,某計(jì)算機(jī)采用8位定長(zhǎng)指令操作碼,若每條機(jī)器指令需6條微指令解釋執(zhí)行。則微指令條數(shù)=256×6=控制存儲(chǔ)器的字?jǐn)?shù)應(yīng)該為2048=211字1536條機(jī)器周期電平節(jié)拍C0C1C2C3M0M1M2M3T指令周期時(shí)鐘同步控制的時(shí)序圖指令周期InstructionCycle是取指令和執(zhí)行指令的時(shí)間總和,它包括若干個(gè)機(jī)器周期MachineCycle。71盛建倫jlsheng@一般的計(jì)算機(jī)至少要設(shè)置以下機(jī)器周期:取指令周期讀存儲(chǔ)器周期中斷周期寫存儲(chǔ)器周期此外,還可有“間址周期”,“I/O讀周期”,“I/O寫周期”,等。72盛建倫jlsheng@第10章輸入輸出系統(tǒng)

Input/outputSystem輸入輸出設(shè)備的編址輸入輸出的控制方式中斷DMA復(fù)習(xí)73盛建倫jlsheng@1.內(nèi)存與I/O統(tǒng)一編址內(nèi)存與I/O統(tǒng)一編址是將主存儲(chǔ)器與I/O設(shè)備放在同一個(gè)地址空間,CPU用和訪問主存相同的方法訪問I/O設(shè)備。用對(duì)存儲(chǔ)器的數(shù)據(jù)傳送指令進(jìn)行輸入輸出,沒有專門的I/O指令。所有能夠?qū)Υ鎯?chǔ)器進(jìn)行運(yùn)算操作的指令都可以用于對(duì)端口進(jìn)行運(yùn)算操作。缺點(diǎn)是訪問I/O設(shè)備的指令地址碼太長(zhǎng)。2.內(nèi)存與I/O分開獨(dú)立編址內(nèi)存與I/O分開獨(dú)立編址是將主存儲(chǔ)器與I/O設(shè)備放在2個(gè)獨(dú)立的地址空間。必須有專門的控制信號(hào)來(lái)區(qū)分出現(xiàn)在地址總線上的地址是訪存還是訪問I/O,有專門的輸入輸出指令。I/O指令的指令地址碼短,但不能對(duì)端口進(jìn)行運(yùn)算操作。輸入輸出設(shè)備的編址74盛建倫jlsheng@輸入輸出的控制方式輸入輸出的控制方式分為:程序控制,中斷控制,DMA,通道和IO處理機(jī)。1.程序直接控制方式(ProgrammedDirectControl)程序直接控制I/O方式是CPU通過執(zhí)行一段程序完成輸入/輸出。分為無(wú)條件輸入/輸出和(條件)查詢式輸入/輸出。

無(wú)條件輸入/輸出不需要知道I/O設(shè)備的狀態(tài),直接用輸入輸出指令完成輸入/輸出。

查詢式輸入/輸出(條件輸入/輸出)是在數(shù)據(jù)傳送前,必須先查詢I/O設(shè)備的狀態(tài)。只有當(dāng)I/O設(shè)備的狀態(tài)為Ready時(shí),才能夠用輸入輸出指令完成數(shù)據(jù)的輸入/輸出。75盛建倫jlsheng@2.程序中斷傳送方式(ProgrammedInterruptTransfer)程序中斷傳送方式是CPU在啟動(dòng)I/O設(shè)備后,就可以執(zhí)行其他程序。當(dāng)I/O設(shè)備準(zhǔn)備好后,主動(dòng)向CPU發(fā)出中斷請(qǐng)求。

CPU響應(yīng)中斷后,暫時(shí)停止正在運(yùn)行的程序,轉(zhuǎn)而執(zhí)行一個(gè)中斷服務(wù)程序,完成輸入/輸出或其他服務(wù)。處理完后再返回繼續(xù)執(zhí)行原來(lái)的程序。

CPU與I/O設(shè)備之間是并行工作的,效率很高,但不適用于高速設(shè)備的成組數(shù)據(jù)輸入/輸出。76盛建倫jlsheng@中斷是由I/O設(shè)備或其它非預(yù)期的急需處理的事件引起的,它使CPU暫時(shí)中斷當(dāng)前正在執(zhí)行的程序,而轉(zhuǎn)去執(zhí)行另一個(gè)中斷服務(wù)程序(Interrupt-serviceRoutine)去處理這些事件(為中斷源服務(wù)),處理完后再返回原來(lái)的程序斷點(diǎn)繼續(xù)執(zhí)行原來(lái)的程序。引起中斷的事件稱為中斷源(InterruptSource)。①外中斷②內(nèi)中斷③軟中斷外中斷又可分為:可屏蔽中斷(MaskableInterrupt),非屏蔽中斷(NonMaskableInterrupt)。中斷(Interrupt)77盛建倫jlsheng@中斷的全過程包括5個(gè)階段:中斷請(qǐng)求,中斷判優(yōu),中斷響應(yīng),中斷處理,中斷返回。1.中斷請(qǐng)求

InterruptRequest外部設(shè)備完成指定的工作,或者發(fā)生意外事件,向CPU申請(qǐng)中斷。2.中斷判優(yōu)將每個(gè)中斷源按其緊急與重要的程度分高低優(yōu)先級(jí),CPU只接受優(yōu)先級(jí)最高的一個(gè)中斷請(qǐng)求。中斷判優(yōu)的方法有:①軟件查詢法,②硬件排隊(duì)法。硬件排隊(duì)是在CPU響應(yīng)中斷之前完成的,軟件查詢是在CPU響應(yīng)中斷之后進(jìn)行的。中斷的全過程78盛建倫jlsheng@3.中斷響應(yīng)

InterruptResponse

CPU響應(yīng)中斷的條件⑴中斷響應(yīng)被允許⑵CPU收到中斷請(qǐng)求⑶一條指令執(zhí)行完畢(非流水線機(jī)器)執(zhí)行“開中斷”指令,使中斷允許觸發(fā)器置1。執(zhí)行“關(guān)中斷”指令,使中斷允許觸發(fā)器置0。如果中斷沒有被屏蔽,CPU響應(yīng)中斷,停止現(xiàn)行程序的運(yùn)行,執(zhí)行一條中斷隱指令將斷點(diǎn)地址(PC內(nèi)容)壓入堆棧,然后要找到該中斷源的中斷服務(wù)程序入口地址,把該地址送入程序計(jì)數(shù)器PC,就可以轉(zhuǎn)去執(zhí)行中斷服務(wù)程序了。尋找中斷服務(wù)程序入口地址的方法尋找中斷服務(wù)程序入口地址有3種方法:中斷向量法,軟件查詢法,非屏蔽中斷有固定的入口。79盛建倫jlsheng@

CPU響應(yīng)中斷時(shí)的現(xiàn)場(chǎng)保護(hù)

CPU響應(yīng)中斷時(shí)需要保護(hù)的現(xiàn)場(chǎng)有兩類:一是程序的斷點(diǎn)地址,二是CPU內(nèi)一些寄存器的內(nèi)容。斷點(diǎn)地址的保護(hù)由硬件完成:CPU響應(yīng)中斷時(shí)自動(dòng)執(zhí)行一條中斷隱指令,將程序計(jì)數(shù)器PC的內(nèi)容壓棧并關(guān)中斷。如果在中斷服務(wù)程序中使用某個(gè)寄存器,或者有算術(shù)邏輯運(yùn)算指令(影響程序狀態(tài)字寄存器),則需要將受影響的寄存器內(nèi)容壓入堆棧。通常在中斷服務(wù)程序的開始部分安排幾條壓棧指令,將它們的內(nèi)容壓入堆棧。4.中斷處理

InterruptProcessing這一程序段是中斷服務(wù)程序中完成對(duì)事件的處理,或輸入/輸出,或I/O設(shè)備的啟動(dòng)/停止,等操作的實(shí)質(zhì)性工作的程序。80盛建倫jlsheng@5.中斷返回

InterruptReturn當(dāng)CPU完成中斷服務(wù)后,應(yīng)該立即返回原程序的斷點(diǎn)。在中斷服務(wù)程序的末尾安排一條中斷返回指令。中斷返回指令的功能是把堆棧棧頂?shù)膬?nèi)容彈出到

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論