5.4 Subsystem Interconnection

--------------------連接 CPU 與記憶體 Connecting CPU and memory--------------------

CPU 與記憶體通常由三組線路連接,每一組線路稱為匯流排(bus) : 資料匯流排、位址匯流排、控制匯流排。

資料匯流排(data bus) : 由數條線路組成,每一條一次傳送 1 位元。線路的數目取決於計算機所使用字組的大小,如果字組是 32 位元(4 位元組),則需要 32 條線路的資料匯流排,因此一個 32 位元的字組可以同時傳送。

位址匯流排(address bus) : 允許存取記憶體中特定的字組。位址匯流排線路的數目取決於記憶體位址空間,如果記憶體有 2^n 個字組,位址匯流排需要一次傳送 n 個位元,因此,它必須有 n 條線路。

控制匯流排(control bus) : 在 CPU 與記憶體之間傳送聯絡訊號。例如,必須有一個從 CPU 送至記憶體的碼,以便指明示讀取或是寫入的動作。控制匯流排所使用的線路數目取決於計算機所需要的命令之總數量,如果一計算機有 2^m 個控制動作,則控制匯流排需要 m 條線路,因為 m 個位元可以定義 2^m 個不同的運算。

--------------------連結 I/O 設備 Connecting I/O devices--------------------

I/O 設備不能直接連接到 CPU 和記憶體的匯流排上,因為 I/O 設備的性質與 CPU 及記憶體的性質不同。I/O 設備士電機的、磁性的或光學的設備,而 CPU 及記憶體式電子設備。I/O 設備運作的速度也遠比 CPU / 記憶體慢,因此,需要一個媒介來處理中間的差異。I/O 設備經由 "輸入 / 輸出控制器 (input / output controller)" 或 "介面 (interface)" 而連接到匯流排上,每一個 I/O 設備有一個特殊的控制器。

控制器或介面彌補了 I/O 設備與 CPU 和記憶體之性質間的差異。控制器可以是串列或並列設備,串列控制器只有一條資料線路,而並列控制器有數條資料線路,因此一次可以傳輸數個位元。目前有數種控制器在使用中。現在最常見的是 "SCSI"、"FireWire"、"USB"。

小型電腦系統介面(small computer system interface ; SCSI) : 最初是由 Macintosh 電腦於 1984 年所發展,今日它已經被使用於許多系統之中。SCSI 具有 8、16 或 32 條線路的並列介面,SCSI 介面提供 雛菊鏈式(daisy chained) 的連接,雛菊鏈式的兩端必須加上一個稱為終端電阻的特殊設備來加以阻隔,而且每一個設備必須有一個唯一的位址(目標 ID)。

火線(FireWire) : 它是 IEEE 標準 1394 定義一個串列介面的通稱。它是一個以封包傳送資料的高速串列介面,最高傳送速率可達 50 MB/sec,在最近的版本甚至是其兩倍的速率。它可以用雛菊鏈方式或樹狀連結方式(只用一條連結線)連接多達63個設備。而它不需要像 SCSI 控制器中使用終端電阻。

通用串列匯流排(Universal Serial Bus ; USB) : 是 FireWire 的一個競爭對手。雖然命名中使用了專門術語的會匯流排,但是 USB 是一個船列控制器,用來連接慢速和快速設備到電腦匯流排。許多設備可連接到 USB 控制器,也因此它也稱為根集線器(root hub)。

--------------------定址輸入 / 輸出設備 Addressing input / output devices--------------------

CPU 通常使用相同的匯流排來讀取或寫入資料到主記憶體和 I/O 設備,而唯一的差異是指令本身。如果指令參考到記憶體中的字組,則資料的傳輸是在記憶體與 CPU 之間。如果指令指定一個輸入 / 輸出設備,則資料的傳輸是在輸入/輸出設備與 CPU 之間。處理輸入/輸出設備的定址有兩種方法 "獨立式 I/O" 與 "記憶體對映 I/O"。

獨立式 I/O (isolated I/O) : 用來讀 / 寫記憶體的指令完全不同於用來讀 / 寫輸入 / 輸出設備的指令。這些指令有測試、控制、讀取和寫入輸入 / 輸出設備。每一個輸入 / 輸出設備有自己的位址,輸入 / 輸出位址可以與記憶體的位址重疊而不會模稜兩可,因為指令本身就不同。

記憶體對映 I/O (memory-mapped I/O) : CPU 將輸入 / 輸出控制器中的每一個暫存器視為記憶體的字組。換言之,CPU 並沒有不同的指令來辨別從記憶體或是輸入 / 輸出設備傳輸資料。記憶體對映 I/O 組態的優點是指令數量較少,所有記憶體指令可以被輸入 / 輸出設備使用 ; 其缺點是記憶體的部份位址空間被配置給輸入 / 輸出控制器中的暫存器。