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