計(jì)算機(jī)組成與實(shí)現(xiàn) 課件 第8章-輸入輸出_第1頁
計(jì)算機(jī)組成與實(shí)現(xiàn) 課件 第8章-輸入輸出_第2頁
計(jì)算機(jī)組成與實(shí)現(xiàn) 課件 第8章-輸入輸出_第3頁
計(jì)算機(jī)組成與實(shí)現(xiàn) 課件 第8章-輸入輸出_第4頁
計(jì)算機(jī)組成與實(shí)現(xiàn) 課件 第8章-輸入輸出_第5頁
已閱讀5頁,還剩104頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

輸入輸出計(jì)算機(jī)組成與實(shí)現(xiàn)目錄典型的輸入輸出系統(tǒng)總線I/O接口基本功能與結(jié)構(gòu)程序訪問設(shè)備PCI總線概述P&P的原理中斷3種數(shù)據(jù)傳輸方式異常計(jì)算機(jī)內(nèi)部結(jié)構(gòu)CPU內(nèi)存控制器(MC)集成顯卡系統(tǒng)芯片(主板芯片)SATA、音頻PCI-E/PCI總線控制器32位PCI總線USB2.0/3.0串口/并口定時(shí)器、中斷控制器網(wǎng)卡芯片(主板芯片)串口(控制器)并口(控制器)USB(控制器)DDR3DDR3系統(tǒng)芯片PCI、PCI-E顯卡音頻SATA千兆顯卡設(shè)備:信息傳輸?shù)耐ǖ繡PU:信息處理內(nèi)存:程序/數(shù)據(jù)設(shè)備:信息交換的通道信息從設(shè)備輸入信息通過設(shè)備輸出輸入設(shè)備鼠標(biāo)、鍵盤、手寫筆輸出設(shè)備顯示器、打印機(jī)輸入輸出設(shè)備硬盤、網(wǎng)卡串口(控制器)并口(控制器)USB(控制器)DDR3DDR3系統(tǒng)芯片PCI、PCI-E顯卡音頻SATA千兆顯卡目錄典型的輸入輸出系統(tǒng)總線I/O接口基本功能與結(jié)構(gòu)程序訪問設(shè)備PCI總線概述P&P的原理中斷3種數(shù)據(jù)傳輸方式異常什么是總線?共享的信息通道一組連接各個(gè)部件的導(dǎo)線構(gòu)造大型復(fù)雜計(jì)算機(jī)系統(tǒng)的基本方法總線的優(yōu)點(diǎn)靈活功能易于增加/撤出設(shè)備符合標(biāo)準(zhǔn)的設(shè)備可以在不同計(jì)算機(jī)上互換低成本只需要一組導(dǎo)線主存處理器I/O設(shè)備I/O設(shè)備I/O設(shè)備總線的缺點(diǎn)通訊瓶頸系統(tǒng)I/O吞吐受限于總線最大帶寬總線性能難以大幅度提高總線長度越長,總線速率就越低總線上的設(shè)備總數(shù)越多,總線負(fù)載能力越低需要支持多種類型設(shè)備傳輸延遲變化巨大數(shù)據(jù)傳輸速率變化巨大總線層次現(xiàn)代計(jì)算機(jī)中多采用多層次總線只在低端系統(tǒng)中存在單一總線CPU總線:最大化CPU帶寬;支持多CPU為Cache塊傳輸優(yōu)化(Cache塊傳輸、Burst)多CPU支持(Cache一致性協(xié)議)距離短、掛載少、位數(shù)多、頻率高存儲(chǔ)器總線:最大化存儲(chǔ)器帶寬為SDRAM傳輸優(yōu)化(Burst、Page、刷新)距離短、點(diǎn)-點(diǎn)、位數(shù)多、頻率高系統(tǒng)總線(也稱I/O總線):匹配大量各類設(shè)備標(biāo)準(zhǔn)化總線接口適度工作頻率通過Bridge連接至CPU總線距離長、掛載多、位數(shù)相對少、頻率相對低總線層次現(xiàn)代計(jì)算機(jī)中涉及大量的總線類型和層次由于存在多層次總線,因此總線之間必須有Bridge(橋)進(jìn)行總線轉(zhuǎn)接串口(連接器)并口(連接器)1394(連接器)USB(連接器)DDR2/3DDR2/3南橋SATA音頻PCI北橋顯卡PCI-Ex16PCI-Ex1CPU總線存儲(chǔ)器總線系統(tǒng)總線PCI-Ex16系統(tǒng)總線PCI-Ex1系統(tǒng)總線PCI設(shè)備角色:Master和SlaveMaster-主設(shè)備能夠主動(dòng)發(fā)起總線周期(讀周期、寫周期)的設(shè)備Slave-從設(shè)備響應(yīng)總線周期的設(shè)備網(wǎng)卡:Slave&MasterSlave:響應(yīng)CPU對網(wǎng)卡上寄存器的讀寫Master:主動(dòng)發(fā)起PCI總線周期進(jìn)行DMA傳輸讀周期:從主存中讀取數(shù)據(jù)

發(fā)送報(bào)文寫周期:接收報(bào)文寫數(shù)據(jù)至主存同步總線vs異步總線同步總線控制信號(hào)中包含一個(gè)時(shí)鐘信號(hào)控制信號(hào)的有效/無效與時(shí)鐘相關(guān)同步由時(shí)鐘界定,無需對方響應(yīng),減少握手延遲接口控制器通常包含高速FIFO以最大化傳輸帶寬總線的設(shè)備必須以相同的時(shí)鐘頻率工作高速總線距離要短,否則會(huì)導(dǎo)致時(shí)鐘歪斜傳輸帶寬高異步總線無時(shí)鐘可以寬范圍的匹配多種設(shè)備總線長度很長,不存在時(shí)鐘歪斜使用握手協(xié)議典型的同步總線協(xié)議信號(hào)有效與無效,都與時(shí)鐘上升沿同步BReqBGCmd+AddrR/WAddressData1Data2DataData1Wait#異步總線寫操作T0:主設(shè)備(Master)獲得總線(control/address/direction/data)等待一個(gè)規(guī)定的時(shí)間(slave譯碼)T1:Master發(fā)出請求T2:Slave給出應(yīng)答,表明數(shù)據(jù)被接收T3:Master撤消請求T4:Slave撤消請求AddressDataReadReqAckMasterAssertsAddressMasterAssertsDataNextAddressT0T1T2T3T4T5異步總線讀操作T0:主設(shè)備(Master)獲得總線(control/address/direction/data)等待一個(gè)規(guī)定的時(shí)間(slave譯碼)T1:Master發(fā)出請求T2:Slave給出應(yīng)答,指示數(shù)據(jù)已經(jīng)放到總線上了T3:Master撤消請求,表明數(shù)據(jù)已經(jīng)被接收T4:Slave撤消請求AddressDataReadReqAckMasterAssertsAddressNextAddressT0T1T2T3T4SlaveData仲裁:多個(gè)潛在的Master總線仲裁框架要求使用總線的Master發(fā)出總線請求Master直到收到仲裁器的確認(rèn)前不能使用總線Master完成總線傳輸后必須通知仲裁器總線仲裁必須平衡兩個(gè)因素優(yōu)先級:最高優(yōu)先級的設(shè)備應(yīng)首先被響應(yīng)公平:即使最低優(yōu)先級的設(shè)備也應(yīng)能使用總線總線仲裁方式分布式集中式常見的仲裁架構(gòu)鏈?zhǔn)讲樵兎绞剑哼m用于小型系統(tǒng)獨(dú)立請求方式:適用于復(fù)雜系統(tǒng),廣泛應(yīng)用與現(xiàn)代計(jì)算機(jī)系統(tǒng)目錄典型的輸入輸出系統(tǒng)總線I/O接口基本功能與結(jié)構(gòu)程序訪問設(shè)備PCI總線概述P&P的原理中斷3種數(shù)據(jù)傳輸方式異常實(shí)例1:硬盤SATA硬盤接口控制器SATA總線接口磁盤接口…盤體(盤片/磁頭/電機(jī))+=實(shí)例2:U盤USB接口控制器USB總線接口FLASH存儲(chǔ)器接口…大容量FLASH存儲(chǔ)器FLASH存儲(chǔ)器U盤接口控制器設(shè)備通過接口控制器與主機(jī)連接設(shè)備實(shí)際上包括兩部分接口控制器(也稱為接口芯片)設(shè)備主體設(shè)備主體不直接與主機(jī)連接,而是通過接口控制器與主機(jī)連接為什么設(shè)備必須通過接口控制器與主機(jī)相連?速率不匹配主機(jī):Inteli7四核3.2GHz鍵盤:100Hz協(xié)議及時(shí)序不匹配主機(jī):FSB、PCI-E、PCI硬盤:SATAWLAN:802.11a/b/g數(shù)據(jù)格式不匹配主機(jī):32位/16位/8位,Bps網(wǎng)絡(luò):1位,bps信號(hào)電平不匹配主機(jī):TTL、CMOS、。。。電機(jī):24V接口控制器的功能1/2地址譯碼接受CPU編程設(shè)置模式、控制過程、查詢狀態(tài)緩沖(或緩存)數(shù)據(jù)解決CPU與設(shè)備間速度不匹配的矛盾時(shí)序控制匹配主機(jī)端總線工作要求匹配設(shè)備端信號(hào)工作要求接口控制器的功能2/2與設(shè)備主體交換數(shù)據(jù)信號(hào)變換功能信號(hào)電平、邏輯極性中斷管理功能以中斷方式接收和發(fā)送數(shù)據(jù),降低CPU無效開銷原因數(shù)據(jù)接收/發(fā)送過程必然涉及設(shè)備狀態(tài)檢查與判斷CPU工作頻率極高。相對于設(shè)備一次數(shù)據(jù)傳輸時(shí)間,CPU能夠執(zhí)行大量指令接口控制器的基本組成總線接口邏輯地址譯碼時(shí)序控制總線驅(qū)動(dòng)寄存器組(或內(nèi)部存儲(chǔ)器)寄存器組:數(shù)據(jù)、狀態(tài)、控制存儲(chǔ)器:緩沖區(qū)、隊(duì)列等設(shè)備數(shù)據(jù)傳輸控制與特定設(shè)備的傳輸協(xié)議相關(guān)總線-接口控制器-設(shè)備接口邏輯、寄存器組是必須具備的存儲(chǔ)器是可選的主要用途:增強(qiáng)數(shù)據(jù)傳輸性能不同類型設(shè)備的數(shù)據(jù)傳輸控制差異極大接口邏輯地址譯碼時(shí)序控制總線驅(qū)動(dòng)寄存器組數(shù)據(jù)狀態(tài)控制地址控制數(shù)據(jù)存儲(chǔ)器FIFOSRAM數(shù)據(jù)傳輸控制主機(jī)總線狀態(tài)控制數(shù)據(jù)接口控制器設(shè)備主體接口控制器與總線間的接口信息標(biāo)準(zhǔn)總線接口主機(jī)內(nèi)部總線:PCI-E、PCI主機(jī)擴(kuò)展總線:USB、1394主機(jī)內(nèi)部總線地址信號(hào)數(shù)據(jù)信號(hào)控制信號(hào)接口控制器與設(shè)備間的接口信息數(shù)據(jù)信息數(shù)字量、模擬量狀態(tài)信息反映設(shè)備當(dāng)前工作狀態(tài)(輸入是否就緒,輸出是否空閑)通常狀態(tài)寄存器(SR)存儲(chǔ)上述信息控制信息按照預(yù)定工作時(shí)序工作,完成控制器設(shè)備間數(shù)據(jù)交互目錄典型的輸入輸出系統(tǒng)總線I/O接口基本功能與結(jié)構(gòu)程序訪問設(shè)備寄存器表示PCI總線概述P&P的原理中斷3種數(shù)據(jù)傳輸方式異常示例:調(diào)節(jié)顯示器分辨率例如通過顯卡控制LCDR分辨率:調(diào)節(jié)分辨率R色彩:調(diào)節(jié)色彩寄存器:主機(jī)與設(shè)備的交互界面從信息處理的角度:主機(jī)=程序,即指令序列指令的基礎(chǔ)功能是讀寫某個(gè)單元接口控制器的寄存器具備可讀可寫特性部分設(shè)備包括存儲(chǔ)器。如顯卡的幀緩存接口邏輯地址譯碼時(shí)序控制總線驅(qū)動(dòng)寄存器組數(shù)據(jù)狀態(tài)控制設(shè)備主體地址控制數(shù)據(jù)存儲(chǔ)器FIFOSRAM數(shù)據(jù)傳輸控制主機(jī)總線狀態(tài)控制數(shù)據(jù)接口控制器目錄典型的輸入輸出系統(tǒng)總線I/O接口基本功能與結(jié)構(gòu)程序訪問設(shè)備寄存器地址PCI總線概述P&P的原理中斷3種數(shù)據(jù)傳輸方式異常程序員眼中的設(shè)備Q:0x80000000是什么?Q:地址對應(yīng)的是什么?A1:某個(gè)內(nèi)存單元A2:顯卡某個(gè)寄存器CPU必須通過地址訪問內(nèi)存(或設(shè)備)unsignedint*p;p=(unsignedint*)

0x80000000;*p=0xABCDEF12;程序通過對某個(gè)地址訪問設(shè)備CPU取指令及讀寫操作均需要給出地址從程序員角度出發(fā),地址=主存單元地址是CPU要訪問主存單元的唯一定位信息當(dāng)CPU發(fā)出某個(gè)地址,意味著CPU要讀寫對應(yīng)主存單元與主存類似,設(shè)備也必須擁有相應(yīng)的地址設(shè)備地址實(shí)例NVIDIAGTX280顯卡資源內(nèi)存范圍:F6000000–F6FFFFFF內(nèi)存范圍:E0000000–EFFFFFFF內(nèi)存范圍:F4000000–F5FFFFFF通訊端口(COM1)–串口輸入/輸出范圍:03F8–03FFPS/2鍵盤輸入/輸出范圍:0060–0060輸入/輸出范圍:0064–0064地址圖地址圖:將CPU地址空間劃分為若干區(qū)域區(qū)域?qū)?yīng)了設(shè)備主存:大量的地址范圍顯存:較大的地址范圍串口:極少的地址范圍地址分配基本原則:任意兩個(gè)部件的地址范圍不能重疊地址圖串口(連接器)并口(連接器)1394(連接器)USB(連接器)I/O控制器SATA音頻PCI內(nèi)存控制器顯卡PCI-Ex16PCI-Ex14GB地址空間DDR2/32GBDDR22MBHighBIOSPCI設(shè)備空間1GB(未安裝存儲(chǔ)器)32MB顯存0000_0000h000F_FFFFh0010_0000hBFFF_FFFFhC000_0000hFFFF_FFFFhFFDF_FFFFhD400_0000hD5FF_FFFFh2GB內(nèi)存3GB內(nèi)存空間1GB設(shè)備空間DOS保留區(qū)域設(shè)備地址的具體內(nèi)容Q:設(shè)備中哪些組成要素需要分配地址?A:寄存器組某些設(shè)備也包括隸屬于接口的存儲(chǔ)器,如FIFO、幀緩存接口邏輯地址譯碼時(shí)序控制總線驅(qū)動(dòng)寄存器組數(shù)據(jù)狀態(tài)控制設(shè)備主體地址控制數(shù)據(jù)存儲(chǔ)器FIFOSRAM數(shù)據(jù)傳輸控制主機(jī)總線狀態(tài)控制數(shù)據(jù)接口控制器設(shè)備編址:存儲(chǔ)映射編址(MemoryMapping)基本方法將設(shè)備的寄存器(或存儲(chǔ)器)視為主存單元,并分配地址與主存單元一起在CPU地址空間統(tǒng)一分配地址特點(diǎn)系統(tǒng)中只有一個(gè)尋址空間,即內(nèi)存尋址空間CPU所有的存儲(chǔ)操作類指令均可應(yīng)用于設(shè)備訪問視圖單一,模型簡單設(shè)備編址:獨(dú)立編址CPU有兩個(gè)地址空間:存儲(chǔ)器空間、I/O空間除存儲(chǔ)類指令外,有專用的I/O類指令(IN,OUT)必須設(shè)置特殊信號(hào)來區(qū)分當(dāng)前地址是訪內(nèi)存單元還是訪問I/O端口(80x86CPU:M/IO信號(hào))主存儲(chǔ)器內(nèi)存空間:I/O設(shè)備64KB1MBI/O空間:早期x86處理器地址空間模型存儲(chǔ)映射編址的優(yōu)點(diǎn)無需專用指令,復(fù)用load/store類指令模型簡單,軟件可移植性好由于地址圖略大,系統(tǒng)譯碼略微復(fù)雜些對于現(xiàn)代IC技術(shù)來說已經(jīng)不再是問題主流編址方式(PowerPC、MIPS…)X86也采用存儲(chǔ)映射方式X86仍然保留獨(dú)立編址,其目的在于兼容性目錄典型的輸入輸出系統(tǒng)總線I/O接口基本功能與結(jié)構(gòu)程序訪問設(shè)備設(shè)備判斷當(dāng)前地址PCI總線概述P&P的原理中斷3種數(shù)據(jù)傳輸方式異常地址譯碼判斷是否是某個(gè)特定地址假設(shè)8位地址:A=?=25h判斷是否屬于某個(gè)特定區(qū)域假設(shè)8位地址:A∈{20h~28h}地址譯碼:與特定地址比較判斷A=?=25hA=A7,A6,…,A0;25h=0010_0101bCS=!A7&!A6&A5&!A4&!A3

&A2&!A1&A0&A5CSA7A6A4A3A2A1A0地址譯碼:與特定區(qū)域比較1/2判斷A∈{28h~2Fh}由于是判斷是否屬于屬于某個(gè)區(qū)域,不需要判斷具體是哪8個(gè)單元(28h~2Fh)因此A[2:0]這3位地址無需考慮推廣到一般:基地址(Base)+偏移范圍(Offset)地址譯碼主要是比較Base部分offset:用于內(nèi)部尋址地址區(qū)間{28h~2Fh}基地址:28h偏移范圍:0~7,共計(jì)8個(gè)單元地址譯碼:與特定區(qū)域比較2/2A∈{28h~2Fh},base=28h=0010_1000b由于最低3位地址不參與比較,因此base=0010_1xxxb判斷A∈{28h~2Fh}A[7:3]=?=0_0101bCS=!A7&!A6&A5&!A4&A3例3:地址譯碼(與特定區(qū)域比較)Q:判斷A∈{C0h~D7h}起始地址:1100_0000b結(jié)束地址:1101_0111b問題:偏移區(qū)域不是滿的(即空間不是2的整數(shù)冪)!A7,A6,A5:不變;A4變;A3:不變方法:拆分區(qū)域?yàn)槿舾蓾M偏移區(qū)域等價(jià)于判斷A∈{C0h~CFh}|A∈{D0h~D7h}CS=A7&A6&!A5&!A4|

A7&A6&!A5&A4&!A3

=A7&A6&!A5&(!A4|A4&!A3)目錄典型的輸入輸出系統(tǒng)總線I/O接口基本功能與結(jié)構(gòu)程序訪問設(shè)備軟硬件集成PCI總線概述P&P的原理中斷3種數(shù)據(jù)傳輸方式異常示例:程序?qū)戯@卡寄存器過程分解假設(shè)R分辨率的地址是D500_0000h通過編程R分辨率設(shè)置分辨率1:800*6002:1024*768…0000_0000h000F_FFFFh0010_0000hBFFF_FFFFhC000_0000hFFFF_FFFFhFFDF_FFFFhD400_0000hD5FF_FFFFh4GB地址空間2MBHighBIOSPCI設(shè)備空間1GB(未安裝存儲(chǔ)器)32MB顯存2GB內(nèi)存3GB內(nèi)存空間1GB設(shè)備空間DOS保留區(qū)域unsignedint*p;p=(unsignedint*)0xD5000000

;*p=0x00000002;讀寫顯卡寄存器的基本過程S1:取指令CPU輸出地址,主存返回?cái)?shù)據(jù)(實(shí)際為指令)S2:譯碼S3:取操作數(shù)操作數(shù)在寄存器中S4:ALU計(jì)算地址S5:寫顯卡寄存器CPU輸出地址及數(shù)據(jù)設(shè)備響應(yīng)寫入操作S5:寫顯卡寄存器~~CPU的工作CPU產(chǎn)生CPU的寫周期地址總線:0xD5000000數(shù)據(jù)總線:0x00000002控制總線:R/W#為L主存總線控制器系統(tǒng)總線地址=D500_0000數(shù)據(jù)=0000_0002S5:寫顯卡寄存器~~總線控制器的工作響應(yīng)CPU總線寫周期查看地址圖本質(zhì)上也是譯碼產(chǎn)生系統(tǒng)總線寫周期地址總線:0xD5000000數(shù)據(jù)總線:0x00000002控制總線:R/W#為L主存總線控制器系統(tǒng)總線地址=D500_0000數(shù)據(jù)=0000_0002S5:寫顯卡寄存器~~顯卡的工作假設(shè)顯卡已經(jīng)知道自己的地址范圍P&P部分會(huì)介紹顯卡是如何知道自己的地址與其他所有設(shè)備同時(shí)偵聽總線,分析地址從地址總線獲取地址發(fā)現(xiàn)地址==D500_0000h,表明讀寫自己將數(shù)據(jù)寫入內(nèi)部寄存器主存總線控制器系統(tǒng)總線地址=D500_0000數(shù)據(jù)=0000_0002目錄典型的輸入輸出系統(tǒng)總線I/O接口基本功能與結(jié)構(gòu)程序訪問設(shè)備PCI總線概述P&P的原理中斷3種數(shù)據(jù)傳輸方式異常PCI總線PCI總線由Intel公司于20世紀(jì)90年代提出,后成為工業(yè)標(biāo)準(zhǔn)PCI總線具有諸多新特性,奠定了現(xiàn)代計(jì)算機(jī)系統(tǒng)總線的基礎(chǔ)PCI總線特點(diǎn)總線時(shí)鐘頻率33MHz/66MHz總線寬度

32位(5V)/64位(3.3V)峰值數(shù)據(jù)傳輸速率132MB/s、264MB/s、528MB/s時(shí)鐘同步方式與CPU時(shí)鐘頻率無關(guān)支持Plug&Play(P&P,即插即用)PCI讀寫操作基本特點(diǎn)所有的信號(hào)在時(shí)鐘上升沿采樣集中仲裁仲裁與當(dāng)前傳輸重疊(overlap)地址與數(shù)據(jù)復(fù)用FRAME#指示地址傳輸Burst傳輸當(dāng)滿足下列條件時(shí),數(shù)據(jù)傳輸完成Master有效IRDY#Slave有效TRDY#FRAME#無效表示傳輸最后一個(gè)數(shù)據(jù)字

PCI總線規(guī)定信號(hào)名后#表示該信號(hào)為低電平(L)有效讀操作時(shí)序分析寫操作時(shí)序分析目錄典型的輸入輸出系統(tǒng)總線I/O接口基本功能與結(jié)構(gòu)程序訪問設(shè)備PCI總線概述P&P的原理中斷3種數(shù)據(jù)傳輸方式異常即插即用(P&P,PlugandPlay)PCI總線系統(tǒng)完整的支持了P&P擺脫了人工配置設(shè)備的繁瑣,減少了錯(cuò)誤設(shè)備互換性得到質(zhì)變奠定了現(xiàn)代系統(tǒng)總線的基礎(chǔ)如果總線不支持P&P設(shè)備在插入計(jì)算機(jī)前必須仔細(xì)的設(shè)置跳線必須手工配置設(shè)備的基地址設(shè)備缺乏良好的互換性對于計(jì)算機(jī)使用人員具有較高的要求容易出現(xiàn)錯(cuò)誤,導(dǎo)致死機(jī)P&P要解決的核心問題是什么?設(shè)備能被CPU訪問的基本前提:必須在CPU地址空間中分配一個(gè)地址范圍地址范圍:Base+LengthLength是設(shè)備自身的屬性,易于解決關(guān)鍵是Base如果設(shè)備的基地址固定,則:無法保證任意兩個(gè)設(shè)備的基地址是不沖突的,特別是當(dāng)新設(shè)備接入主機(jī)時(shí)P&P要解決的問題無需靜態(tài)分配base上電后初始化階段分配base傳統(tǒng)方式vs.P&P傳統(tǒng)方式Base由人工設(shè)置跳線實(shí)質(zhì):通過電阻上拉或下拉P&P解決思路配置階段:系統(tǒng)軟件(BIOS)設(shè)置各設(shè)備基地址工作階段:設(shè)備對基地址進(jìn)行譯碼P&P基本工作過程CPU在每次上電后初始化階段完成如下工作S1:CPU按照某種策略讀寫所有設(shè)備的配置信息設(shè)備返回CPU所需地址空間的大小等信息S2:CPU按照某種算法對地址空間進(jìn)行劃分S3:CPU把每個(gè)設(shè)備的基地址寫入設(shè)備設(shè)備如何支持P&P?支持兩階段工作模式配置階段:系統(tǒng)軟件(BIOS)設(shè)置各設(shè)備基地址工作階段:設(shè)備對基地址進(jìn)行譯碼配置2個(gè)寄存器:Base寄存器和Length寄存器Base寄存器:存儲(chǔ)CPU分配的base。R/WLength寄存器:存儲(chǔ)設(shè)備所需空間大小。ROnly配置譯碼比較電路總線地址=?=Base實(shí)現(xiàn)P&P的基礎(chǔ)-Base的設(shè)置方式條件1:必須是寄存器類型因?yàn)榧拇嫫骶哂锌梢员蛔x寫的特性條件2:Base寄存器能夠由CPU設(shè)置CPU能讀寫寄存器,則意味著系統(tǒng)具有了靈活性問題轉(zhuǎn)變?yōu)椋篊PU要能夠讀寫base寄存器雞生蛋?蛋生雞?CPU配置設(shè)備的基礎(chǔ)是:CPU必須讀寫設(shè)備中的配置相關(guān)寄存器(base、length)設(shè)備響應(yīng)總線讀寫周期的前提是:設(shè)備必須對總線地址譯碼地址譯碼的核心是:設(shè)備要把總線地址與某個(gè)基地址比較但是,基地址是在完成設(shè)備配置后才生效的!目錄典型的輸入輸出系統(tǒng)總線I/O接口基本功能與結(jié)構(gòu)程序訪問設(shè)備PCI總線概述P&P的原理PCI設(shè)備的配置空間與工作空間中斷3種數(shù)據(jù)傳輸方式異常PCI設(shè)備必須具備2個(gè)地址空間配置空間:支持自動(dòng)配置的地址空間僅由若干與配置任務(wù)相關(guān)的寄存器組成工作空間:支持用戶功能的地址空間寄存器:命令/狀態(tài)/數(shù)據(jù)寄存器存儲(chǔ)器:如顯存PCI配置空間PCI規(guī)范定義配置空間為64B,由一組寄存器構(gòu)成PCI設(shè)備可以根據(jù)需要實(shí)現(xiàn)部分寄存器必須實(shí)現(xiàn)的寄存器設(shè)備/廠商狀態(tài)/命令基地址寄存器組最多支持6個(gè)基地址寄存器至少實(shí)現(xiàn)1個(gè)基地址寄存器310DeviceIDVendorID00hStatusCommand04hClassCodeRevisionID08hBISTHeaderTypeLatencyTimerCache

LineSize0ChBaseAddressRegisters10hBaseAddressRegisters14hBaseAddressRegisters18hBaseAddressRegisters1ChBaseAddressRegisters20hBaseAddressRegisters24hCardbusCISPointer28hSubsystemIDSubsystemVendorID2ChExpansionROMBaseAddress30hReservedCapabilitiesPointer34hReserved38hMax_LatMin_GntInterruptPinInterruptLine3ChPCI設(shè)備如何區(qū)分cpu讀寫兩個(gè)空間?首先,每個(gè)PCI設(shè)備都有獨(dú)立的IDSEL信號(hào)IDSEL有效,表明當(dāng)前總線周期是cpu讀寫設(shè)備的配置空間其次,設(shè)備通過分析總線周期來區(qū)分對兩個(gè)空間的操作PCI總線有2種總線周期,一種是常規(guī)周期,一種是配置周期2種周期除了C/BE[3:0]#的編碼不同外,更重要的是如果當(dāng)前是配置周期,則IDSEL一定有效反之,如果IDSEL無效,則即便C/BE[3:0]#是配置周期讀寫編碼,設(shè)備也不應(yīng)響應(yīng)該周期第三,只有完成了配置后,設(shè)備才能響應(yīng)常規(guī)讀寫周期1)配置完成前,禁止PCI設(shè)備響應(yīng)常規(guī)周期BIOS復(fù)位command寄存器中的MemorySpace和I/OSpace這2個(gè)使能位被復(fù)位2)配置完成后,允許PCI設(shè)備響應(yīng)常規(guī)周期BIOS置位上述2個(gè)使能位工作空間配置空間配置空間與工作空間的關(guān)系配置空間:響應(yīng)BIOS的配置操作,包括1)禁止和使能工作空間的譯碼2)響應(yīng)BIOS對BaseAddressRegister的設(shè)置AD[31:00]寄存器或存儲(chǔ)器FRAME#設(shè)備基地址其他電路Base譯碼譯碼(1)IDSEL配置寄存器C/BE[3:0]#使能工作空間:接受配置空間的控制1)使能:是否允許譯碼總線周期2)基地址:與總線地址進(jìn)行比較以響應(yīng)常規(guī)總線周期目錄典型的輸入輸出系統(tǒng)總線I/O接口基本功能與結(jié)構(gòu)程序訪問設(shè)備PCI總線概述P&P的原理訪問配置空間的基本原理中斷3種數(shù)據(jù)傳輸方式異常基本思路1/2Cpu的配置空間:每個(gè)PCI設(shè)備在CPU地址空間有對應(yīng)的配置空間將cpu地址空間中某一固定地址的小容量空間劃分為若干份,每份對應(yīng)一個(gè)PCI設(shè)備的配置空間cpu讀寫該區(qū)域則意味著進(jìn)行配置操作(包括設(shè)置基地址)PCI設(shè)備:IDSEL信號(hào)每個(gè)PCI設(shè)備都有一個(gè)IDSEL信號(hào),其有效表明當(dāng)前總線周期為配置周期每個(gè)PCI設(shè)備都有一組特定寄存器(配置寄存器),其容量大小與前述的系統(tǒng)橋芯片為PCI芯片/PCI插槽產(chǎn)生一個(gè)獨(dú)立的IDSEL信號(hào)譯碼CPU對各個(gè)配置空間的讀寫,并產(chǎn)生相應(yīng)的配置周期和IDSEL系統(tǒng)軟件設(shè)計(jì)讀寫設(shè)備配置空間來判定PCI設(shè)備存在及需求分配地址基本思路2/2系統(tǒng)橋?yàn)槊總€(gè)PCI設(shè)備提供獨(dú)立IDSEL,包括:主板上已安裝芯片PCI插槽目錄典型的輸入輸出系統(tǒng)總線I/O接口基本功能與結(jié)構(gòu)程序訪問設(shè)備PCI總線概述P&P的原理系統(tǒng)與設(shè)備中斷3種數(shù)據(jù)傳輸方式異常系統(tǒng)橋譯碼系統(tǒng)的配置空間系統(tǒng)橋了解cpu的地址空間的分配情況當(dāng)BIOS要讀寫某個(gè)設(shè)備配置寄存器時(shí),系統(tǒng)橋產(chǎn)生相應(yīng)的配置周期最重要的是,系統(tǒng)橋根據(jù)配置空間分配情況只有效該設(shè)備的IDSEL系統(tǒng)橋CPU地址空間?設(shè)備2寄存器/存儲(chǔ)器設(shè)備2工作空間設(shè)備1寄存器/存儲(chǔ)器設(shè)備1工作空間

設(shè)備N配置空間系統(tǒng)配置空間?設(shè)備1配置空間?設(shè)備N的配置寄存器CPU=IDSEL1=設(shè)備1配置基地址IDSELNA[31:00]基地址設(shè)備1的配置寄存器?設(shè)備N配置基地址BIOS設(shè)置BaseAddressRegister的基本過程S1)清除Command使能位以禁止設(shè)備譯碼S2)向BaseAddressRegister寫0xFFFFFFFF寫0xFFFFFFFF是一個(gè)信號(hào),表明CPU希望獲取地址空間需求信息設(shè)備檢測到該事件后,應(yīng)該在內(nèi)部置位一個(gè)標(biāo)志S3)讀BaseAddress注意,此時(shí)設(shè)備返回的基地址寄存器值代表的是地址空間容量地址空間容量的表示方法:高位置1,低位置0(0的位數(shù)取決于空間大小)例1:1MB0xFFF00000例2:16MB0xFF000000S4)向BaseAddressRegister寫分配好的基地址S5)置位Command使能位以允許允許設(shè)備譯碼目錄典型的輸入輸出系統(tǒng)總線I/O接口基本功能與結(jié)構(gòu)程序訪問設(shè)備PCI總線概述P&P的原理中斷為什么需要中斷3種數(shù)據(jù)傳輸方式異常程序查詢I/O一般來說設(shè)備上都有2個(gè)寄存器狀態(tài)寄存器(Status):Ready位指示是否就緒,即是否可以輸入/輸出數(shù)據(jù)寄存器(Data):用于傳輸數(shù)據(jù)程序查詢(Polling)I/O的基本原理:1)cpu循環(huán)的讀取status寄存器,直到Ready置位(01)2)cpu用load指令(或store指令)讀(或?qū)懀〥ata寄存器設(shè)備譯碼并執(zhí)行完cpu的操作后,會(huì)復(fù)位Ready位(10)程序查詢I/O示例輸入:讀取鍵盤值到$v0

lui $t0,0xffff#ffff0000,基地址

Waitloop:

lw $t1,0($t0)#status寄存器

andi $t1,$t1,0x1

beq $t1,$zero,Waitloop

lw $v0,4($t0)#datareg輸出:把$a0寫入設(shè)備

lui $t0,0xffff#ffff0000,基地址

Waitloop:

lw $t1,8($t0)#status寄存器

andi $t1,$t1,0x1

beq $t1,$zero,Waitloop

sw

$a0,12($t0)#datareg常見I/O設(shè)備的性能參數(shù)I/O設(shè)備間的性能差距巨大:LAN與鼠標(biāo)有7個(gè)數(shù)量級的性能差距設(shè)備行為人機(jī)交互帶寬(KB/s)鍵盤輸入是0.01鼠標(biāo)輸入是0.02音頻輸出輸出是5.00打印機(jī)輸出是100.00硬盤存儲(chǔ)否10,000.00WLAN輸入/輸出否10,000.00顯示輸出是30,000.00千兆LAN輸入/輸出否125,000.00處理器/設(shè)備性能不匹配在程序查詢模式中,由于設(shè)備太慢,cpu大量執(zhí)行低效的循環(huán)假設(shè)cpu的主頻為1GHz,則cpu可以每秒執(zhí)行109條load/store指令

cpu:相當(dāng)于帶寬為4,000,000KB/sI/O設(shè)備:帶寬從0.01KB/s到125,000KB/s輸入:當(dāng)cpu讀取數(shù)據(jù)時(shí),設(shè)備很難及時(shí)提供數(shù)據(jù)另外,很多時(shí)候,人機(jī)交互型設(shè)備還必須等待人的操作,例如鍵盤輸入輸出:當(dāng)cpu寫數(shù)據(jù)時(shí),設(shè)備很難及時(shí)接收并存儲(chǔ)數(shù)據(jù)需要一種非計(jì)劃型的過程調(diào)用,它能夠在設(shè)備就緒后自動(dòng)被調(diào)用1)當(dāng)設(shè)備就緒后,設(shè)備向cpu發(fā)出一個(gè)信號(hào)2)cpu在接收到該信號(hào)后,首先完成當(dāng)前指令,然后自動(dòng)去執(zhí)行預(yù)先設(shè)置的一個(gè)特定過程3)該特定過程執(zhí)行結(jié)束后,cpu再返回至被打斷的位置恢復(fù)執(zhí)行目錄典型的輸入輸出系統(tǒng)總線I/O接口基本功能與結(jié)構(gòu)程序訪問設(shè)備PCI總線概述P&P的原理中斷中斷處理的硬件機(jī)制3種數(shù)據(jù)傳輸方式異常中斷(Interrupt)中斷是由I/O設(shè)備產(chǎn)生的異步事件產(chǎn)生原因:設(shè)備處于某種狀態(tài),需要cpu進(jìn)行必要的處理例如,準(zhǔn)備接收或發(fā)送數(shù)據(jù)、某些特殊情況(如出錯(cuò))通知機(jī)制:中斷請求信號(hào)設(shè)備使該信號(hào)從無效變?yōu)橛行硗ㄖ猚pu異步含義:I/O中斷與當(dāng)前指令流無關(guān)聯(lián)關(guān)系(或因果關(guān)系)I/O中斷是在當(dāng)前指令流在執(zhí)行過程中產(chǎn)生的中斷處理:cpu執(zhí)行一段被稱為中斷服務(wù)程序(interruptserviceroutine,ISR)來處理設(shè)備請求cpu接收到中斷請求后,首先執(zhí)行完當(dāng)前指令,然后自動(dòng)轉(zhuǎn)入ISR執(zhí)行完ISR后,cpu再返回到被中斷的位置繼續(xù)執(zhí)行中斷處理基本過程示例1)設(shè)備向cpu發(fā)出中斷請求信號(hào)2)cpu執(zhí)行完sub后,將sub下一條指令的PC值保存好3)cpu自動(dòng)將ISR的首地址加載到PC中,從而實(shí)現(xiàn)跳轉(zhuǎn)4)cpu執(zhí)行ISR完成輸入輸出等操作5)cpu執(zhí)行eret指令實(shí)現(xiàn)從ISR返回eret功能之一是將保存的PC值寫入PCadd用戶程序subandorlwISRstore...eret1)中斷請求有效2)保存PC3)跳轉(zhuǎn)ISR4)執(zhí)行ISRCpu中的硬件機(jī)制1/3保存被中斷指令的下一條指令的地址cpu要執(zhí)行完當(dāng)前指令才響應(yīng)中斷,因此要保存的值是PC+4該值被保存在EPC(ExceptionProgramCounter)中固定的ISR首條指令地址(即入口地址)由于cpu自動(dòng)跳轉(zhuǎn)至ISR,因此ISR入口地址必須是固定值,即BFC00000hCpu中的硬件機(jī)制2/3增加32位的EPC寄存器,其輸入來自PC由于cpu是在執(zhí)行完當(dāng)前指令后才跳轉(zhuǎn)的,,PC已經(jīng)被更新為下一條指令的地址了NPC1)當(dāng)執(zhí)行eret指令時(shí),NPC選擇將EPC的值送至PC2)內(nèi)部設(shè)置一個(gè)固定地址BFC00000h,用于跳轉(zhuǎn)至ISRIMARDPCIRABRFA1A2A3WD3RD1RD2ALUZeroEXT01DMARDWD0121F012M1NPCNPCIMMRAEPCPCPC4M2M3C1215:1120:1620:1625:21DR15:0025:00AREPCCpu中的硬件機(jī)制3/3Int是設(shè)備的中斷請求信號(hào)狀態(tài)機(jī)中增加INT狀態(tài)INT狀態(tài)用于將下一條指令地址寫入EPC,以及將ISR入口地址寫入PC狀態(tài)機(jī)在每條指令的最后一個(gè)狀態(tài)檢查Int是否有效,如果有效則跳轉(zhuǎn)這樣就保證當(dāng)前指令執(zhí)行結(jié)束后才轉(zhuǎn)入ISRPC寫使能需增加2種情況:一種與INT狀態(tài)相關(guān),一種與eret相關(guān)同理,NPC控制信號(hào)也需要考慮上述2種情況S1S2S3S4jal|eretbeqsw|add|sub|ori|luiresetINTS5(jal|eret)&Intbeq&IntInt(sw|add|sub|ori|lui)&Int目錄典型的輸入輸出系統(tǒng)總線I/O接口基本功能與結(jié)構(gòu)程序訪問設(shè)備PCI總線概述P&P的原理中斷中斷服務(wù)程序框架3種數(shù)據(jù)傳輸方式異常中斷服務(wù)程序框架首先,保存現(xiàn)場將可能會(huì)破壞的寄存器都保存在堆棧中第2,執(zhí)行與設(shè)備功能相關(guān)的代碼主要包括讀取設(shè)備狀態(tài)寄存器、數(shù)據(jù)讀寫等第3,恢復(fù)現(xiàn)場從堆棧中恢復(fù)所有寄存器最后,執(zhí)行eret指令從中斷返回目錄典型的輸入輸出系統(tǒng)總線I/O接口基本功能與結(jié)構(gòu)程序訪問設(shè)備PCI總線概述P&P的原理中斷防止中斷重入3種數(shù)據(jù)傳輸方式異常為什么會(huì)發(fā)生中斷重入?一般來說,設(shè)備會(huì)保持中斷請求信號(hào)有效,直至ISR中某條指令設(shè)置了設(shè)備上的某個(gè)寄存器為止很顯然,ISR初始的若干條指令是與設(shè)備功能無關(guān)的一般來說,設(shè)備可能因?yàn)槎喾N原因而產(chǎn)生中斷除了保存現(xiàn)場等指令外,ISR需要首先了解設(shè)備到底發(fā)生了什么這就必然涉及一段指令問題就發(fā)生在cpu跳轉(zhuǎn)到ISR的入口地址開始執(zhí)行ISR的首條指令上cpu剛執(zhí)行完首條指令,但由于中斷請求信號(hào)保持有效,cpu再次跳轉(zhuǎn)至中斷入口重新開始執(zhí)行中斷服務(wù)程序防止中斷重入防止中斷重入的辦法就是設(shè)置一個(gè)狀態(tài)(ExceptionLevel,EXL)0:cpu未進(jìn)入ISR1:cpu已進(jìn)入ISR

MIPS中有一個(gè)與EPC配合的特殊寄存器SR(status),其位1就是EXL工作機(jī)制:進(jìn)入ISR:當(dāng)中斷請求有效時(shí),cpu視EXL是否為0決定是否跳轉(zhuǎn)如果為0,則cpu跳轉(zhuǎn)入口地址的同時(shí)將EXL置為1如果為1,則表明cpu已經(jīng)在ISR中了,則cpu不再跳轉(zhuǎn)退出ISR:eret指令除了將EPC寫入PC外,還需要將EXL清0如果eret不執(zhí)行該功能,則ISR將只能進(jìn)入一次!目錄典型的輸入輸出系統(tǒng)總線I/O接口基本功能與結(jié)構(gòu)程序訪問設(shè)備PCI總線概述P&P的原理中斷軟硬件協(xié)同3種數(shù)據(jù)傳輸方式異常中斷響應(yīng)機(jī)制分析:軟硬件協(xié)同設(shè)備EPC/EXL控制器中斷服務(wù)程序IntReq=f(Int,EXL)最后一個(gè)周期檢測IntReqIntEPCPC值PC

硬件中斷服務(wù)程序入口EXL置位信號(hào)保存現(xiàn)場中斷處理恢復(fù)現(xiàn)場ERETEPCPCEXL清除信號(hào)目錄典型的輸入輸出系統(tǒng)總線I/O接口基本功能與結(jié)構(gòu)程序訪問設(shè)備PCI總線概述P&P的原理中斷3種數(shù)據(jù)傳輸方式異常DMA概述程序I/O與中斷I/O的不足程序I/O過于低效中斷I/O有改進(jìn),但對于每一次I/O傳送,cpu仍然必須執(zhí)行一些指令DMA(DirectMemoryAccess)DMA控制器直接控制數(shù)據(jù)直接在存儲(chǔ)器與外設(shè)之間高速交換CPU不再介入具體的I/O操作DMA控制器提供存儲(chǔ)器地址信號(hào)、讀寫控制信號(hào)等CPU與I/O設(shè)備在更大的程度上并行工作,效率更高DMA方式適合高速批量的數(shù)據(jù)傳輸如視頻顯示刷新、磁盤存儲(chǔ)系統(tǒng)的讀寫、存儲(chǔ)器到存儲(chǔ)器的傳輸?shù)菵MA控制器的內(nèi)部基本結(jié)構(gòu)在DMA系統(tǒng)中,DMA控制器是核心部件,內(nèi)部包含:Counter寄存器:保存?zhèn)鬏旈L度每傳輸一個(gè)數(shù)據(jù),自動(dòng)減1。減為0,則傳輸結(jié)束Address寄存器:保存?zhèn)鬏旊p方的地址每傳輸一個(gè)數(shù)據(jù),地址會(huì)自動(dòng)加1Control寄存器:保存?zhèn)鬏敺较颉⑹欠裨试S中斷等Status寄存器

溫馨提示

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

最新文檔

評論

0/150

提交評論