總線概述
總線是鏈接多個部件的信息傳輸線,是各部件共享的傳輸介質。多個部件與總線相連時,若是出現兩個或者兩個以上部件同時向總線發送消息,將會致使信號衝突,傳輸無效。所以:某個時刻,只容許一個部件向總線發送消息,多個部件能夠同時接收相同的信息。總線由許多傳輸線或者通道組成,每條線能夠傳輸一位二進制代碼;形象類比於:Java中的可重入讀寫鎖ReentrantReadWriteLock,只能有一個線程在某個時刻擁有寫鎖,其餘線程沒法同時寫權限,讀鎖多個線程能夠同時從資源處得到讀權限。如下爲總線在計算機體系中所處位置:線程
![總線定位](http://static.javashuo.com/static/loading.gif)
從上圖能夠看到,總線主要爲CUP外鏈接存儲器,IO和CUP的系統總線--鏈接CUP和存儲器的成爲存儲總線(M總線),鏈接CUP和各IO設備成爲IO總線;以及CUP內部互連AUL,CU和寄存器的片內總線。資源
單總線結構:
同步
其中CUP,主存,IO設備都掛到一組總線上it
面向CPU的雙總線結構:
io
其中與單總線最大的特色是:單總線結構中IO設備與主存交換信息時,原則上不影響CPU工做。class
以存儲器爲中心的雙總線結構:
基礎
它在單總線基礎上開闢了CPU和主存之間的總線,成爲存儲總線,這組總線速度高,只供主存和CPU之間傳輸信息。既提升了傳輸速率,又減輕了系統總線負擔,還保留了IO和存儲器交換信息不通過CPU的特色。權限
總線分類(按鏈接部件的不一樣)
片內總線
主要爲芯片內部的總線,如CPU芯片內部,寄存器和寄存器之間,寄存器和AUL之間都由片內總線鏈接。二進制
系統總線(CPU,主存,IO互連)
- 數據總線:傳輸各功能部件之間的數據信息,爲雙向傳輸總線,位數與機器字長和存儲字長有關;若是數據總線寬度爲8,指令字長爲16位,那麼CPU取指階段必須兩次訪問主存。
- 地址總線:用來指出數據總線上源數據或者目的數據在主存單位地址或者IO設備地址;如:從存儲器中讀數據,CPU將此數據所在存儲單元地址送至地址線中,又:欲將某數據經IO輸出,則CPU除了須要將數據送到數據總線上,還須要將IO地址送到IO地址總線上;所以地址線的代碼用來指明CPU將訪問的存儲單元或IO端口地址,由CUP輸出,單向傳輸,與存儲單元個數有關;
- 控制總線:主要用於控制各部件在不一樣時刻的佔有總線使用權,就是用來發出各類控制信號的傳輸線。常見的控制信號:
- 時鐘:用來同步各類操做;
- 復位:初始化全部部件;
- 總線請求:表示某部件須要得到總線控制權;
- 總線容許:表示須要總線使用權的部件已經得到控制權;
- 中斷請求:某部件提出中斷請求;
- 中斷響應:中斷請求已接收;
- 存儲寫:數據總線數據寫入指定存儲單元;
- 存儲讀:指定存儲單元數據讀至數據總線上;
- IO讀:從指定IO端口將數據讀到數據總線;
- IO寫:數據總線數據輸出到指定IO端口內;
- 傳輸響應:表示數據已被接收,或送至數據總線上;
總線特性和指標
總線特性
- 機械特性:指總線在機械鏈接方式的特性,如:插頭和插座標準,幾何尺寸,引腳個數和排列順序,接頭處可靠鏈接;
- 電氣特性:總線每根傳輸線信號的傳遞方向和有效電平範圍,一般規定,CPU發出的信號爲輸出信號,送入CPU的信號爲輸入信號;有的定義爲高電平有效,也有定義爲低電平有效;
- 功能特性:總線中每根線功能,如地址總線用來指出地址碼,數據總線傳輸數據,控制總線發出控制信號;
- 時間特性:指總線中任一根線在什麼時間內有效,每條總線上各信號互相存在一種有效時序的關係;
總線指標
- 總線寬度:指數據總線根數,用位表示;
- 總線帶寬:可理解爲總線的傳輸速率,即單位時間內總線上傳輸數據的位數,一般用每秒傳輸的字節數衡量,單位MBps;
- 時鐘同步異步:總線上數據與時鐘同步工做的總線稱爲同步總線,與時鐘不一樣步工做的總線稱爲異步總線;
- 總線複用:一條信號線分時傳輸兩種信號;
總線結構
此文主要介紹多總線結構:雙總線結構和三總線結構
雙總線結構:
![雙總線](http://static.javashuo.com/static/loading.gif)
其特色是:將速度較低的IO設備從單總線中分離,造成主存總線和IO總線分開的結構,其中通道爲特殊功能的處理器,CPU將一部分功能下放到通道,使其對IO設備具備統一的管理能力。
三總線結構:
![三總線](http://static.javashuo.com/static/loading.gif)
此結構主要CPU和主存之間傳輸,IO總線CPU和各IO設備信息交換,DMA總線用於高速IO和主存之間交換信息,此結構中,任一時刻只能使用一種總線;主存總線和DMA沒法同時對主存操做,IO總線只有CPU執行IO指令時用到;