算機結(jié)構(gòu):
計算機系統(tǒng)包括硬件吸引和軟件系統(tǒng)。硬件是組成計算機的實體,軟件是計算機的靈魂。
一臺典型的微機硬件系統(tǒng)結(jié)構(gòu)如下:
計算機結(jié)構(gòu)
那一臺計算機是如何將這些各種設(shè)備有機的結(jié)合并使之協(xié)調(diào)工作的呢?
從上面的圖我們可以看出,CPU是通過一種叫做總線的東西和各個個設(shè)備接口相連接的,甚至在CPU內(nèi)部,各寄存器之間也是通過總線進行連接的。因此總線就是一個計算機系統(tǒng)的核心之一。
什么是總線?總線是如何劃分?總線又是如何連接和控制計算機的呢?
總線就是將計算機各裝置各部分連接在一起的信號線,作用就是用來傳遞各裝置部分之間的公共信號。
1、按照總線所處的位置劃分為內(nèi)部總線和外部總線,在CPU內(nèi)部連接CPU內(nèi)各寄存器控制器的叫做內(nèi)部總線。在CPU外部用來連接CPU和各外部設(shè)備的總線就叫外部總線。上圖看到的都是外部總線。很顯然這種劃分方式意義不大。
2、按照總線所傳輸?shù)男盘栴愋蛣澐譃?地址總線、數(shù)據(jù)總線、控制總線。這三種總線又叫計算機系統(tǒng)的三大總線。顧名思義地址總線用于地址信息傳輸,數(shù)據(jù)總線傳遞數(shù)據(jù)信息,控制總線傳遞控制信號(這是微機系統(tǒng)常用劃分方式)。
三大總線結(jié)構(gòu)圖如下:
三大總線
計算機到底是人類創(chuàng)造的,所以計算機的運行機制始終還是是模擬的人類,故按照人類的思維來理解計算機是如何控制各系統(tǒng)協(xié)調(diào)工作的就會容易很多。比如我要給朋友發(fā)一個快遞,我要有目的地地址(地址),有一個快遞包裹(數(shù)據(jù)),并且要打電話告訴朋友有快遞記得查收(控制信號)。因此計算機也是一樣的。
讓我們來看一個計算機計算1+1=2并顯示出來的例子。
假如我們已經(jīng)寫好一段讓計算機計算1+1的程序并已經(jīng)編譯存儲在硬盤上了。我們給命令讓計算機去執(zhí)行這個程序。
1、CPU會首先去硬盤讀取編寫的程序,并加載進內(nèi)存。過程就是CPU發(fā)出讀取指令通過控制總線傳遞給各設(shè)備告訴大家我要讀取數(shù)據(jù)了,具體讀取哪個設(shè)備的什么數(shù)據(jù)就要通過地址總線來控制,對應(yīng)地址的設(shè)備檢測到地址總線上的地址信號和自己的地址編號一致時就會激活并準備發(fā)出數(shù)據(jù),控制器發(fā)出讀取命令,對應(yīng)地址的已經(jīng)激活的設(shè)備就會根據(jù)控制總線上的命令開始發(fā)出數(shù)據(jù),那么程序數(shù)據(jù)就通過數(shù)據(jù)總線傳遞到了CPU內(nèi)部,或者傳遞到內(nèi)存。
2、然后CPU一步步執(zhí)行程序,調(diào)用CPU里面的加法器硬件電路單元進行1+1的運算。機算完成后將結(jié)果輸出。輸出過程和上面讀取過程相反,大致為,CPU發(fā)出控制指令告訴所有外設(shè),然后根據(jù)程序中編寫的輸出位置得到一個地址信息,通過地址總線發(fā)出地址信息,所有外設(shè)都會收到這個信號,但是只有對應(yīng)地址的設(shè)備可以激活并抄收,然后將計算結(jié)果2通過數(shù)據(jù)總線根據(jù)地址總線的位置傳遞給對應(yīng)地址的已經(jīng)激活的輸出設(shè)備,對應(yīng)設(shè)備收到后就完成了傳送。
補充說明,三大總線的信息都是以廣播形式發(fā)送的,但只有地址總線上對應(yīng)編址的設(shè)備可以抄收。就像頒發(fā)獎狀,大家都可以聽到,但只有獲獎的同學可以領(lǐng)到獎狀。
.1 總線概述
3.1.1 定義
總線:一組為多個部件分時共享的公共信息傳送線路
總線設(shè)備:主設(shè)備. 獲得主線控制權(quán)的設(shè)備;從設(shè)備. 只能響應(yīng)主設(shè)備命名的設(shè)備
總線特性:機械特性、電氣特性、功能特性、時間特性。
猝發(fā)傳送:在一個總線周期內(nèi)傳輸存儲地址連續(xù)的多個數(shù)據(jù)字的總線傳輸方式
3.1.2 分類
計算機系統(tǒng)中的總線按按數(shù)據(jù)傳輸格式分為:串行、并行
計算機系統(tǒng)中的總線按功能分為:片內(nèi)總線、系統(tǒng)總線和通信總線。
片內(nèi)總線:芯片內(nèi)部的總線。它是CPU芯片內(nèi)部寄存器與寄存器之間、寄存器與ALU之間的公共連接線。
系統(tǒng)總線:計算機系統(tǒng)內(nèi)各功能部件(CPU、主存、I/O接口)之間相互連接的總線。按系統(tǒng)總線傳輸信息內(nèi)容的不同,又可分為3類:數(shù)據(jù)總線、地址總線和控制總線。
通信總線:用于計算機系統(tǒng)之間或計算機系統(tǒng)與其他系統(tǒng)(如遠程通信設(shè)備、測試設(shè)備)之間信息傳送的總線,通信總線也稱為外部總線。
3.1.3 結(jié)構(gòu)
總線結(jié)構(gòu)分為:單總線;雙總線;三總線。
單總線:優(yōu)點:結(jié)構(gòu)簡單,成本低,易于接入新的設(shè)備。缺點:帶寬低、負載重,多個部件只能爭用唯一的總線,且不支持并發(fā)傳送操作。
雙總線:優(yōu)點:將較低速的I/O設(shè)備從單總線上分離出來,實現(xiàn)存儲器總線和 I/O 總線分離。缺點:需要增加通道等硬件設(shè)備。
三總線:優(yōu)點:提高了 I/O 設(shè)備的性能,使其更快地響應(yīng)命令,提高系統(tǒng)吞吐量。缺點:每次只能有一條總線在工作,故系統(tǒng)工作效率較低。
3.1.4 性能
1. 總線工作頻率:總線傳輸周期的倒數(shù)(簡稱總線頻率)
2. 總線時鐘周期:計算機的時鐘周期
3. 總線時鐘頻率:時鐘周期的倒數(shù)
4. 總線帶寬:總線的數(shù)據(jù)傳輸率(總線寬度 * 總線工作頻率)
5. 總線復用:地址線與數(shù)據(jù)線的復用
6. 信號線數(shù):地址線、數(shù)據(jù)線和控制線的總和
7. 控制方式:突發(fā)、自動、仲裁、邏輯、計數(shù)
3.2 總線仲裁
3.2.1 定義
為解決多個主設(shè)備同時競爭總線控制權(quán)的問題,應(yīng)當采用總線仲裁部件,以某種方式選擇一個主設(shè)備優(yōu)先獲得總線控制權(quán)。只有獲得了總線控制權(quán)的設(shè)備,才能開始傳送數(shù)據(jù)。
3.2.2 分類
仲裁方式主要由集中仲裁方式和分布仲裁方式兩種。
集中仲裁:
1、鏈式查詢:總線上所有的部件共用一根總線請求線,當有部件請求使用總線時,需經(jīng)此線發(fā)總線請求信號到總線控制器,總線控制器便查詢總線是否忙碌,如不忙碌便立即發(fā)總線響應(yīng)信號到 BG 線串行地從一個部件傳送到下一個部件,依次查詢,直到某個部件有總線請求便不再傳下去。
2、計數(shù)器定時查詢:采用一個計數(shù)器來控制總線使用權(quán),因此增加了一組設(shè)備地址線,少了總線響應(yīng)線,仍是共有一根總線請求線。工作原理如下,當總線控制器收到總線請求信號并判斷總線空閑時,計數(shù)器開始計數(shù),計數(shù)值通過設(shè)備地址線發(fā)向各個部件,當?shù)刂肪€上的計數(shù)值與請求使用總線設(shè)備的地址一致時,該設(shè)備獲得總線控制權(quán),同時中止計數(shù)器的計數(shù)及查詢。
3、獨立請求:每個設(shè)備都有一對總線請求線和總線允許線,當部件需要使用總線時,經(jīng)各自的總線請求線向總線控制器發(fā)送總線請求信號,在控制器中排隊,總線控制器按一定的優(yōu)先次序決定批準某個部件的請求,并經(jīng)該部件的總線允許線向該部件發(fā)送總線響應(yīng)信號,將總線控制器交給該部件。
分布仲裁:
每個設(shè)備有獨立的處理器分,不需要中央仲裁器,每個潛在的主模塊都有自己的仲裁號和仲裁器。進行比較。若仲裁總線上的仲裁號優(yōu)先級高,則它的總線請求不予響應(yīng),并撤銷它的仲裁號。最后,獲勝者的仲裁號保留在仲裁總線上。
3.3 總線操作和定時
3.3.1 總線傳輸4個階段
申請分配、尋址、傳輸、結(jié)束。
3.3.2 同步定時方式
系統(tǒng)采用一個統(tǒng)一的時鐘信號協(xié)調(diào)發(fā)送和接收雙方的傳遞定時關(guān)系.也就是發(fā)送方用系統(tǒng)時鐘前沿發(fā)信號,接受再用時鐘后沿判斷、識別。
3.3.3 異步定時方式
沒有統(tǒng)一的時鐘,依靠“握手”制約實現(xiàn)通信,不互鎖,半互鎖,全互鎖。速度要比同步定時方式慢,但可靠。
3.4 總線標準
3.4.1 分類
目前常見的總線標準有ISA、EISA、PCI、AGP、PCI-Express、VESA、USB、RS-232C、IDE(ATA)、SATA、 SCSI、 PCMCIA。詳解可自行去一一查看
注*:
機械特性:總線在機械連接方式上的一些性能,如插頭與插座的使用標準等.
電氣特性:總線上每一根傳輸線上信號的傳遞方向和有效的電平范。規(guī)定由CPU發(fā)出的信號為輸出信號,送入CPU的為輸入信號
功能特性:總線中每根傳輸線的功能
時間特性:總線中的任一根線在什么時間內(nèi)有效。可用信號時序圖表示
數(shù)據(jù)總線:雙向,與機器字長存儲字長相關(guān)
地址總線:單向,與存儲地址、IO地址有關(guān)
控制總線:雙向,控制信息的發(fā)送與反饋 作者:先生染 https://www.bilibili.com/read/cv11705285 出處:bilibili
算器只能完成運算,而控制器用于控制著整個CPU的工作。
圖1
1、 指令控制器
指令控制器是控制器中相當重要的部分,它要完成取指令、分析指令等操作,然后交給執(zhí)行單元(ALU或FPU)來執(zhí)行,同時還要形成 下一條指令的地址。
為了說明這個問題,這里轉(zhuǎn)載一個指令執(zhí)行示意圖。
圖2
從上圖可以看到,由CS:IP構(gòu)成的寄存器總是給出當前要執(zhí)行的指令地址,并在當前指令尚未執(zhí)行完成的時候,給出下一條將要執(zhí)行的指令地址。CS:IP就是圖1中的PC指針。這是控制器的最主要作用。
2、 時序控制器
時序控制器的作用是為每條指令按時間順序提供控制信號。時序 控制器包括時鐘發(fā)生器和倍頻定義單元,其中時鐘發(fā)生器由石英晶 體振蕩器發(fā)出非常穩(wěn)定的脈沖信號,就是CPU的主頻;而倍頻定義單元則定義了 CPU主頻是存儲器頻率(總線頻率)的幾倍。
圖3
假設(shè)現(xiàn)在要執(zhí)行一條指令:MOV A, data1,這條指令的意思很簡單,就是通過CPU找到內(nèi)存中的某個數(shù)據(jù)data1,然后把它放到寄存器A里面。這條指令執(zhí)行完應(yīng)該分為以下幾步:
第一步:找到這個數(shù)據(jù)在內(nèi)存中的位置(地址號)。
第二步:保證這個數(shù)據(jù)可以被CPU讀出(未被鎖定)。
第三步:把這個數(shù)據(jù)讀出來,并存入寄存器A中。
上面三步的時間順序不能亂,否則指令執(zhí)行肯定會出錯。從圖3可以看出,地址信號首先有效,然后是讀信號有效,最后才是被讀的數(shù)據(jù)出現(xiàn)在數(shù)據(jù)線上面。
這和我們實際生活中的這個例子非常類似,假設(shè)服務(wù)員要到賓館的某個房間登記里面客人的身份信息,同樣分為三步:
第一步:找到這個客人的位置(房間號)。
第二步:客人打開房門。
第三步:登記客人信息。
3、 總線控制器
總線控制器主要用于控制CPU的內(nèi)外部總線,包括地址總線、數(shù) 據(jù)總線、控制總線等等。
圖4
圖5
計算機內(nèi)部的主要工作過程是信息傳送和加工的過程,為了便于對總線進行管理,組成了總線結(jié)構(gòu),使不同來源的信息分時在總線上傳送。
從圖4圖5可以看到,總線的使用同樣受到時序控制部件的控制。總線控制同樣可以從圖3得到很好的理解:當把數(shù)據(jù)從存儲單元讀出以前,地址信號必須保持有效。
從上圖可以看到,一條指令何時占用總線,要由專門的時鐘脈沖產(chǎn)生的時鐘信號決定。
計算機還有一個DMA結(jié)構(gòu),當進行DMA操作時,cpu可以讓出自己對總線的控制權(quán)。
也就是說,總線上什么時候有何種信號,什么時候沒有,信號持續(xù)時間多長,甚至cpu的總線控制權(quán)都可以出讓,這些都屬于總線控制的內(nèi)容。
中斷控制器用于控制各種各樣的中斷請求,并根據(jù)優(yōu)先級的高低 對中斷請求進行排隊,逐個交給CPU處理。
上圖中有多個中斷源,這些中斷有可能同時產(chǎn)生中斷請求,為了對這種情況進行管理,每個中斷源都被賦予了一個優(yōu)先級,以保證某個時刻只有一個中斷可以得到響應(yīng)。中斷控制器有的在cpu芯片外部,比如8259A中斷控制器,也有集成在cpu芯片內(nèi)部的,例如ARM 的
Cortex系列。
按照上面的敘述,計算機控制器的功能主要包括:
指令控制、時序控制、總線控制和中斷控制等。