計算機組成原理(唐朔飛)--第二篇 計算機系統的硬件結構之系統總線

第三章 系統總線

3.1 總線的基本概念

前面的博客計算機組成原理(唐朔飛)–第一篇 概論中,我們提到馮諾依曼體系結構的機器,它是由五大部件構成,五大部件需要通過互連,實現通信。互聯方式一般有兩種。

  1. 分散連接:各部件之間單獨用線連接。
  2. 總線連接:將各部件連接到一組公共信息傳輸線上。
    隨着計算機領域的不斷擴大,I/O設備的種類和數量不斷增多,人們希望能隨時增減I/O設備,而分散連接無法解決I/O與主機之間連接的靈活性,因此出現了總線連接方式。

下面介紹部分總線結構
單總線結構
在這裏插入圖片描述
該結構存在的問題:當I/O設備與主存通信佔用總線,此時CPU只能暫時停止執行程序,因爲CPU的指令和數據都是需要在主存中取出,而此時總線已被佔用,因此該結構效率不高。所有信息傳輸都要通過總線,總線負擔重。

以CPU爲中心的雙總線結構

在這裏插入圖片描述
與上面的結構相比,該結構採用在CPU與主存之間加上一條M總線的方法,提高了主存與CPU的信息傳輸效率,又減輕了總線的負擔,解決了上述問題。
該結構存在的問題:當I/O設備需要和主存通信時必須要經過CPU,這樣會影響CPU的工作效率。

以存儲器爲中心的雙總線結構
在這裏插入圖片描述
這種雙線結構既提高了CPU與主存間的傳輸效率,又減輕了總線的負擔,還保留了I/O設備與存儲器交換信息時不經過CPU的特點。

3.2 總線的分類

要給總線進行分類,首先的又不同的分類標準,按數據傳輸方式可以分爲並行傳輸總線和串行傳輸總線。按數據傳輸寬度可以分爲8位、16位、32位、64位等傳輸總線。
下面按照連接部件不同,詳細介紹三類總線

3.2.1 片內總線

片內總線是指在芯片內部的總線,如CPU內部寄存器與寄存器之間是使用片內總線連接的。

3.2.2 系統總線

系統總線是指CPU、主存、I/O設備各大部件之間的信息傳輸線。由於這些設備通常安放在主板或各個插板上,又稱板級總線。
按系統總線傳輸信息的不同,又分爲三類:數據總線、控制總線、地址總線。

  1. 數據總線:用於傳輸各部件之間的數據信息,雙向傳輸,位數與機器字長、存儲字長有關。
  2. 地址總線:用於指出數據總線上的源數據或目的數據在主存單元的地址或I/O設備的地址。單向傳輸,位數與存儲單元的個數有關。
  3. 控制總線:用於發出各種控制信號,由於數據總線和地址總線被掛在總線上的所有部件共享,如何能使各部件在不同時刻佔有總線使用權,需要依靠控制總線完成。通常對於任一控制線而言,是單向傳輸的,例如存儲器的讀/寫命令,但是由於控制總線還能夠監視各部件的狀態,並將各部件的狀態返回,CPU有輸入有輸出,因此我們也可以認爲控制總線是雙向傳輸。

3.2.3 通信總線

這類總線用於計算機系統之間或計算機與其他系統之間的通信,按傳輸方式可分爲兩種:串行通信和並行通信。

3.3 總線特性及性能指標

3.3.1 總線特性

爲確保機械上的可靠連接,我們需要規定其機械特性。爲確保電氣上的正確連接,必須規定其電氣特性。爲保證正確地連接不同部件,還需規定其功能特性和時間特性。
下面我們分別介紹這些特性:

  • 機械特性:指機械連接方式的特性,如插頭與插座的使用標準,幾何尺寸、形狀、引腳個數、排列順序。
  • 電氣特性:指總線傳輸信號的傳輸方向和有效電平範圍。如什麼範圍爲高電平,高電平定義爲1。輸入CPU的爲輸入信號,輸出CPU的爲輸出信號。
  • 功能特性:指每根傳輸線的功能。
  • 時間特性:總線中的任一根線在什麼時間內有效。

3.3.2 總線性能指標

  1. 總線寬度:指數據總線的根數。
  2. 總線帶寬:總線的數據傳輸速率。每秒傳輸的字節數,單位MBps兆字節每秒。
  3. 時鐘同步/異步:總線上的數據與時鐘同步工作的總線稱爲同步總線,與時鐘不同步工作的稱爲異步總線。
  4. 總線複用:一條信號線上分時傳兩種信號。
  5. 信號線數:地址、數據、控制總線三種總線數的總和。
  6. 總線控制方式:突發工作、自動配置、仲裁方式、邏輯方式、計數方式等。

3.3.3 總線標準

隨着計算機領域的不斷擴大,計算機系統中各類模塊品種及其複雜,往往一種模塊要配一種總線,很難在總線上更換、組合各類模塊或設備。我們需要一個標準來解決系統、模塊、總線、設備間不適應、不匹配、不通用的問題。
因此出現了總線標準,總線標準可視爲系統與各模塊之間的一個互連的標準界面。界面的任一方只需要根據總線標準完成自身一方接口的功能要求,無需瞭解對方接口與總線的連接要求。總線標準爲計算機接口的軟硬件設計提供方便,對硬件而言,各個模塊的接口芯片設計相對獨立;對軟件設計而言,更有利於接口軟件的模塊化設計。

3.4 總線結構

總線結構分爲單總線結構和多總線結構。

3.4.1 單總線結構

在前面總線的基本概念介紹過不再累述。只補充一點,單總線多數被用於小型計算機或微型計算機。

3.4.2 多總線結構

雙總線結構:
在這裏插入圖片描述
特點是將速度較低的I/O設備從單總線上分離開,形成主存總線和I/O總線,其中,爲實現I/O設備與CPU、主存的通信,使用了通道這一具有特殊功能的處理器,CPU將一部分功能下放給通道,使通道有自己的控制器有自己的指令系統,能執行自己的通道程序,使其對I/O設備有統一的管理。這種結構多用於大、中型計算機系統。

三總線結構:
在這裏插入圖片描述
主存總線用於CPU和主存之間的傳輸,I/O總線供CPU和各類I/O設備的傳輸,DMA總線用於主存和高速I/O設備的傳輸,任一時刻只能使用一種總線,主存總線和DMA總線不能同時對主存進行存取。

另一種三總線結構:
在這裏插入圖片描述
局部總線將CPU和Cache相連,Cache與主存通過系統總線相連,I/O設備與主存之間的傳輸不用通過CPU。還有一條擴展總線,上面連接着各種擴展接口,通過各種擴展接口又可與I/O設備連接在一起,系統總線又與擴展總線通過擴展總線接口相連,實現了兩總線之間的信息交互。

四總線結構
在這裏插入圖片描述
相較於前面的三總線結構,這種結構從Cache中分離出了高速總線,將高速I/O設備與低速I/O設備分離開,高速I/O設備與CPU的聯繫更緊密,而較低速的I/O設備用擴展總線通過擴展總線接口與高速總線相連。

3.4.3 總線結構舉例

  1. 傳統微型計算機的總線結構
    在這裏插入圖片描述
    這種連接方式並沒有把高速I/O設備和低速I/O設備分離開,會出現總線數據傳輸的瓶頸。只有將高速設備儘量靠近CPU本身的總線,並與CPU同步或者準同步,纔可消除瓶頸問題。
  2. VL-BUS局部總線的結構
    在這裏插入圖片描述
    圖中我們可以看到基本結構和傳統微型計算機的總線結構相似,但它用VL-BUS總線連接了高速的I/O設備,再通過標準總線控制器連接低速I/O設備。
  3. PCI總線結構
    在這裏插入圖片描述
    因爲VL-BUS很難支持功能更強的CPU,因此出現了PCI總線,該結構與VL-BUS局部總線的結構類似。
  4. 多層PCI總線結構
    在這裏插入圖片描述
    當PCI總線驅動能力不足時,可以採用多層結構。

3.5 總線控制

3.5.1 總線的判優控制

總線上連接的設備按照其對總線有無控制能力可以分爲主設備和從設備。主設備對總線有控制權,從設備只能響應從主設備發來的總線命令。如果多個主設備要使用總線,就由總線控制器的判優、仲裁邏輯按一定的優先順序來確定哪個主設備來使用總線,獲得總線使用權的主設備才能開始傳送數據。
總線判優控制可分爲集中式和分佈式,前者將控制邏輯集中在一處,後者將控制邏輯分散在與總線連接的各個部件或設備上。
集中的仲裁方式有三種:

  1. 鏈式查詢
    在這裏插入圖片描述
    總線同意信號BG是串行地從一個I/O接口送到下一個I/O接口,當BG到達的接口有總線請求BR,BG信號就不再往下傳,意味着該接口獲得了總線使用權,並建立總線忙的BR信號,表示它佔用了總線。因此離總線近的設備具有較高的優先級。優點是隻需要幾根線就能按照優先次序實現總線控制,並且很容易擴充設備,缺點是對電路故障很敏感,且級別低的設備可能很難獲得請求。

  2. 計數器定時查詢
    在這裏插入圖片描述
    計數器定時查詢的方式,與前面一種方式相比多了一組設備地址線,少了一條總線同意線BG。設備通過BR向總線控制部件發送請求,總線控制部件中的計數器開始計數,並通過設備地址線,向各設備發出一組地址信號,當某個請求佔用的地址與發送的地址信號相同時,該設備獲得總線使用權,計數器停止計數。優點是,通過計數的方式確定優先級較爲靈活。缺點是增加了控制線數,控制複雜。

  3. 獨立請求方式
    在這裏插入圖片描述
    當設備要求使用總線時,便發出該設備的請求信號,總線控制部件內部有一排隊電路,可根據優先次序確定響應哪一臺設備的請求。優點是響應速度快,優先次序靈活。缺點是控制線數量多,總線控制複雜。

3.5.2 總線的通信控制

目的是解決通信雙方協調配合問題

  • 申請分配階段:主模塊申請,總線進行仲裁決定。
  • 尋址階段:主模塊給出地址和命令,啓動參與本次傳輸的從模塊。
  • 傳數階段:主模塊和從模塊交換數據。
  • 結束階段:主模塊的有關信息均從系統總線上撤除,讓出總線使用權。

總線通信的四種方式

  • 同步通信:由時標控制數據的傳送,時標由CPU的總線控制部件發出,或由各部件各自的時序發生器發出,但必須由總線控制部件發出的時鐘信號來對它們進行同步。
    同步式數據輸入傳輸:
    在這裏插入圖片描述
    上圖是同步式數據輸入傳輸,CPU在T1上升沿發出地址信息,在T2上升沿發出讀命令,與地址信號相符合的輸入設備按命令進行一系列的內部操作,在T3上升沿之前將CPU所需數據送到數據總線上,CPU在T3時鐘週期內,將數據線上的信息送到內部寄存器中,CPU在T4上升沿撤銷讀命令,輸入設備不再向數據總線上傳送數據,撤銷它對數據總線的驅動。
    同步式數據輸出傳輸:
    在這裏插入圖片描述
    整理一下:
    對於讀命令
    T1:主模塊發地址。
    T2:主模塊發送讀命令。
    T3:從模塊提供數據。
    T4:主模塊撤銷讀命令,從模塊撤銷數據。
    對於寫命令
    T1:主模塊發地址。
    T1.5:主模塊提供數據。
    T2:主模塊發送寫命令,從模塊將數據總線上的數據寫到地址總線指明的單元中。
    T4:主模塊撤銷寫命令、數據。
    缺點:對於不同速度的部件而言,必須按最慢的部件來設計公共時鐘,影響總線工作效率。
    優點:同步通信一般用於總線長度短、各部件存取時間較一致的場合。
  • 異步通信:沒有公共的時鐘標準,允許各模塊速度不一致,採用應答方式通信。
    應答方式又分爲不互鎖、半互鎖、全互鎖
  1. 不互鎖:主模塊向從模塊發送請求信號,一段時間後,不論是否接收到從模塊的回答,自動撤銷請求信號。從模塊接收到請求信號後,執行操作,條件允許的情況下發出回答信號,一段時間後,不論從模塊是否接收到主模塊的回答,都會取消回答信號。
  2. 半互鎖:主模塊發送請求信號後,必須接收到從模塊的回答信號後再撤銷。而從模塊在接收到請求信號後發送應答信號,不必知道主模塊是否接收到應答信號,一段時間後自動撤銷從模塊的應答信號。
  3. 全互鎖:主模塊發出請求信號,必須接收到從模塊的回答信號後再撤銷,從模塊在接收到請求信號後發送應答信號,必須獲知主模塊的請求信號已撤銷,纔會撤銷應答信號。
  • 半同步通信:
    在這裏插入圖片描述
    以輸入數據爲例
    T1:主模塊發送地址。
    T2:主模塊發送讀命令。
    Tw:WAIT爲低電平時,等待一個T。
    T3:從模塊提供數據。
    T4:主模塊撤銷讀命令,從模塊撤銷數據。
  • 分離式通信:
    除了申請總線這一階段外,總線使用的其餘時間主要花費在三個方面
  1. 主模塊通過傳輸總線向從模塊發送地址和讀寫命令。
  2. 從模塊準備數據。
  3. 從模塊向數據總線提供數據。
    其中2是沒有佔用總線資源的,爲了充分挖掘總線每個瞬間的潛力,我們把總線的傳輸週期變爲兩個子週期,子週期1:主模塊申請佔用總線,使用完後,放棄對總線的使用權。子週期2:從模塊申請佔用總線,向總線上傳輸數據。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章