【計算機組成原理】主板與總線

計算機基本結構

馮諾依曼在《關於EDVAC的報告草案》,詳細描述了EDVAC這臺計算機的設計方案,從那之後,現在幾乎所有的計算機都是遵循的馮諾依曼結構。

這份報告有幾個關鍵點:

  • 程序應該存儲起來的,而不是通過開關連線。
  • 用二進制存數據而不是十進制。
  • 計算機能自動的從存儲器中取出指令並加以執行。
  • 明確了計算機的五個部分:輸入,控制器,運算器,存儲器,輸出。

南北橋架構的演變

可以清楚的看到,早先的主板上是三片結構,CPU,北橋,南橋。其中,主存和顯卡都是要通過北橋來和CPU連接的。

現代的主板變成了兩片結構,cpu裏面集成了很多東西,比如,現在是cpu直接與主存相連,還與PCIe相連。

總線系統

早期計算機內總線的模型,以cpu爲主導,數據總線,地址總線,控制總線都是一起用,所有的數據傳輸都要靠cpu來指揮。這樣總線的設計就很依賴於特定的cpu,所以各個部件之間也不自由,通用性差。

當代的總線模型,追求的是標準化,遵循cpu和其他部件結構無關的開發標準。在下圖中,公用線是電源之類的線,其他的線下文會講。

三總線結構,這個好處就是cpu和主存之間可以快速交換信息,主存和IO設備交流的速度也大大提升了。

相比之前的只能由CPU指揮數據在總線上的傳輸,當代總線上的CPU,I/O模塊,DMA控制器都可以擁有總線的使用權

那麼問題來了,如何調度它們來使用總線呢?這就需要一個仲裁機制,這東西就叫中央仲裁器,在cpu內部,獨立的部件。我想程序經常有取地址,和存數據,內存到IO或者cpu到內存,這時候應該就是通過仲裁誰來擁有對總線的控制權,然後讓設備自己去決定怎麼傳輸。

這個仲裁的方式,有三種,它們都有一個BS線表示當前總線佔用狀態,BR線請求總線使用權。

  • 鏈式查詢,主要特點就是從靠近cpu的部件來詢問是否需要佔用總線,如果不需要,繼續問相鄰的下一個設備,這樣子其實很不好,只對優先級高的有利,而且前面的部件壞了後面的就永遠讀不到了。
  • 計數器定時查詢,這個比上個就有很大進步,每當BR線發了請求之後,中央仲裁器就往設備地址線上發一個地址,如果這個地址代表的設備發了請求就把控制權賦給他,否則地址加一繼續廣播,初始地址可以從0開始,也可以從上一次終止廣播的設備地址開始,發一個循環。還可以用軟件的方式決定從哪個設備地址開始計數,這就意味着你可以自己決定賦給哪個設備最高優先級,然而說到底這種方式也是按順序去查找,浪費了和很多時間。
  • 獨立請求方式,每個設備都有自己獨立的BS,BR線,不再是共用了,直接連到總線控制部件,排隊判優的裝置被安置在了總線控制部件內部,它可以是利用循環的那種分配優先級的方法,也可以是自己設計的複雜算法,這種方式的好處就是各個設備可以同時發出請求,至於怎麼判優就交給總線控制部件裏的專門的裝置了,這比前面兩種要智能一些,不過線也多了點。

現在設備佔用總線的方式我們知道了,那麼各個設備之間怎麼通信的呢?

  • 同步通信的方式,其實就是按照總線的時鐘週期來規定從設備識別完地址碼,什麼時候把對方要取的數據發出來,這個時間間隔就是存取時間,它是遵守的公共時鐘,而各個設備的存取時間其實是相差很大的,這樣就必須按照最慢的那個模塊來設計公共時鐘,不然會出錯啊,所以這樣就造成了效率的低下。總結來解釋什麼是同步通信,就是要在固定的時間點上給出固定的操作,就是在一個總線傳輸週期內,先做完什麼再做完什麼,最後再撤銷什麼。
  • 異步通信的方式,不互鎖,就是主設備請求之後,繼續走自己的週期,不管從設備響應了沒有,半互鎖就是從設備響應了,主設備才撤銷,全互鎖就是主設備撤銷了從設備才撤銷。感覺這樣數據傳輸就沒有同步那麼可靠了。
  • 半同步,就是多了一個wait信號,來處理不同模塊存取週期不同的鍋。總結會發現,在從設備準備數據的時候,這段時間總線是被佔用的但是沒有做事,就浪費了。於是人們又想出個分離式通信,就是把上面過程分開,把中間那個浪費的時間拿出來,就是主設備發出請求完了以後就放棄總線的使用權,從設備準備好了數據以後再申請佔用總線(之前是一直佔用)。

好了,通俗的總結一下計算機裏面那些線怎麼傳數據。首先大家都要傳,所以弄出個總線仲裁器來給請求排隊,然後輪到某個設備傳了,這時候就叫做一個總線傳輸週期,在這個週期裏面,規定請求方爲主設備,響應數據方爲從設備,它們之間傳信息怎麼傳是根據時鐘週期來看的,所以有同步和異步的概念,其實也不難,就是把從發出請求,到響應數據之間的過程弄清楚就行了,同步就是按照公共時鐘週期,異步就是主設備不等待,跟阻塞和非阻塞的概念有點像。

參考資料

https://www.coursera.org/learn/jisuanji-zucheng/home/welcome
http://mooc.study.163.com/course/HIT-1000002002#/info

發佈了57 篇原創文章 · 獲贊 15 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章