計算機(jī)組成原理(1)

首先這門課跟計算機(jī)系統(tǒng)概論的區(qū)別在于這個更偏向于底層實(shí)現(xiàn)(最煩的東西……),而后者則是在此基礎(chǔ)上進(jìn)行優(yōu)化和改進(jìn)

那么就先看總線

首先就要回顧一下之前所學(xué)習(xí)過的只是,也就是計算機(jī)的基本架構(gòu)馮諾依曼或者是哈夫架構(gòu)(后者的去區(qū)別只不過是將程序和數(shù)據(jù)的存儲分開來了),其中包含了五大部件,而這些不見的互聯(lián)方式有兩種,其中一個是使用單獨(dú)的連線,稱為分散連接,還有一種是將各部件都連接到一組公共信息的傳輸線上,稱為總線連接

早期的計算機(jī)大多數(shù)是分散連接方式,以運(yùn)算器為中心。
這種內(nèi)部連線復(fù)雜,尤其是當(dāng)i/o與存儲器交換信息的時候需要經(jīng)過運(yùn)算器,致使后者停止了運(yùn)算,嚴(yán)重影響了cpu的工作效率。
后來改進(jìn)為以存儲器為中心,交換信息可以不用經(jīng)過運(yùn)算器,還添加了中斷、DMA等技術(shù),使得cpu工作效率得到了提高,但是仍然不具有靈活性

于是總線連接出現(xiàn)了
總線,也即是連接多個部件的信息傳輸線,是各部件共享的傳輸介質(zhì),可以想象為是一大堆部件掛在一條線上跟葡萄一樣,在某一個時刻只允許一個部件發(fā)送信息,但是可以有多個部件同時接收信息
總線實(shí)際上是由許多傳輸線或者是通路組成的,每條都可以一位一位地傳輸二進(jìn)制代碼,這樣16條傳輸線所組成的總線就可以同時傳輸16條二進(jìn)制代碼

其中一種是雙總線結(jié)構(gòu),也就是主存與cpu連接(這個稱之為存儲總線(m總線))而cpu與i/o總線連接,i/o總線又管理了若干的外接i/o接口和對應(yīng)的設(shè)備(這邊的稱為輸入輸出總線),這種結(jié)構(gòu)便于設(shè)備的增刪,但是在與主存進(jìn)行交換信息的時候由于必定要經(jīng)過cpu所以會影響到后者的效率

還有一種是單總線結(jié)構(gòu),其實(shí)就是去掉了主存和cpu之間的線而保留了主存和總線的直接連接,原則上避免了對于cpu的影響,cpu仍然可以繼續(xù)處理不用訪問主存和i/o設(shè)備的別種無關(guān)操作,效率提高,但是因?yàn)橹挥幸唤M總線,會在各部件都使用總線的時候發(fā)生沖突,所以必須設(shè)置判優(yōu)邏輯

眾所周知,任何事物的最佳解決方法一定是折中,所以又出現(xiàn)了以存儲器為中心的雙總線結(jié)構(gòu),總的來說就是能連的都連了,順帶一提這個鏈接了cpu和主存的總線稱之為存儲總線,這組總線速度很高,只提供為在cpu和主存之間傳輸信息,同時提高了傳輸效率并且減輕了系統(tǒng)負(fù)擔(dān),并且保留了iO設(shè)備和存儲器交換信息不用經(jīng)過主存的特點(diǎn)

總線的分類:

按照數(shù)據(jù)傳送方式可以分為:并行和串行(沒有絕對的優(yōu)劣關(guān)系)
在并行傳輸中 ,又可以按照傳輸數(shù)據(jù)的寬度分為8位,16位,32位,64位,等傳輸總線
按照總線的使用范圍又可以劃分為,計算機(jī)總線(外設(shè)總線),測控總線,網(wǎng)絡(luò)通信總線

片內(nèi)總線

也就是芯片內(nèi)部的總線,比如cpu芯片啦寄存器和寄存器之間啦寄存器和算數(shù)邏輯單元alu之間啦

系統(tǒng)總線

也就是cpu、主存、io設(shè)備各大部件之間的信息傳輸線,又由于這些部件通常都是安在主板和插件版上的,那么又稱之為是班級總線或者是板間總線

按照系統(tǒng)總線傳輸?shù)男畔⒌牟煌挚梢苑譃槿?/p>

1、數(shù)據(jù)總線

也就是用來傳輸各功能部件之間的數(shù)據(jù)信息,同時它也是雙向傳輸總線,位數(shù)和機(jī)器字長、存儲字長有關(guān),一般都是8位、16位、32位,這個總線的位數(shù)也就稱之為是數(shù)據(jù)總線寬度,是衡量系統(tǒng)性能的重要參數(shù),好比說這個是8位寬度而指令字長是16位的話,那么cpu取值階段必須兩次訪問

2、地址總線

主要是用來指出數(shù)據(jù)總線上的源數(shù)據(jù)或者是目的數(shù)據(jù)在主存單元上的地址或者是io設(shè)備上的地址,比如要從存儲器讀出一個數(shù)據(jù),cpu就得把這個數(shù)據(jù)所在的存儲單元的地址先送到地址線上(然后再讀),再比如要將數(shù)據(jù)經(jīng)過io輸出,cpu除了要將數(shù)據(jù)送到數(shù)據(jù)總線,還需要將輸出設(shè)備的地址 (通常是經(jīng)由io接口)這個地址也送到地址總線上
可見地址總線上的代碼們呢就是用來指明cpu想要訪問的存儲單元和io端口的地址的,由cpu輸出并且單向傳輸(cpu管理地址,單向到了地址總線上)
地址線的位數(shù)跟存儲單元的個數(shù)有關(guān),比方說地址線是20根的話對應(yīng)的存儲單元的個數(shù)就應(yīng)該是2的20方

3、控制總線

數(shù)據(jù)總線和地址總線都是由掛在總線上的所有部件共享的,如何使各部件在不同時刻占有其使用權(quán)
所以控制總線出現(xiàn)了
控制總線呢總是用來發(fā)出各種控制信號的傳輸線
對于任何一條控制線來說應(yīng)該都是單向的,信號嘛,給了你你知道了就行了別墨跡,好比說相應(yīng)的存儲器讀寫命令,io設(shè)備讀寫命令都是由cpu發(fā)出的。
但是對于控制總線總體又是雙向的,比如某設(shè)備準(zhǔn)備就緒就向cpu發(fā)出中斷請求,當(dāng)某部件(DMA接口)獲得總線使用權(quán)的時候,也需要發(fā)出總線請求

另外呢這個控制總線還有監(jiān)視其他各部件狀態(tài)的作用,比如忙不忙,比如有沒有出錯,所以從這方面,對于cpu來說,控制信號,輸入和輸出都有

常見的控制信號?
時鐘:同步操作
復(fù)位:初始化所有部件(注意對象都是部件)
總線請求:某部件需要獲得使用權(quán)
總線允許:某部件已經(jīng)獲得控制權(quán)
中斷請求:某部件提出中斷請求
中斷響應(yīng):中斷請求被接收
存儲器寫:將數(shù)據(jù)總線上的數(shù)據(jù)寫到存儲器的指定地址單元內(nèi)(別誤會這個“指定”是 cpu指定的)
存儲器讀:同上
io讀:從指定的io端口中將數(shù)據(jù)讀到數(shù)據(jù)總線上
io寫:將數(shù)據(jù)總線上的數(shù)據(jù)輸出到指定的io端口內(nèi)
傳輸響應(yīng):表示數(shù)據(jù)已被接收或者已被傳送至數(shù)據(jù)總線上

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容