在你的電腦裡的高速公路:談電腦裡的交通建設與管理 蔡文宗
電及電晶體的發明,開啟了第二次工業命。而電腦,這個第二次工業命所產生的代表性產 品,憑借著其與時俱進的龐大運算能量,正帶領著人們邁向嶄新的知識領域,並持續地開創了 許多前所未有的可能。在摩爾定律(Moore’s Law)不斷的鞭策下(Intel 創辦人,提出在相同 的晶圓面積及製造成本的條件下,電晶體的數目每一年半約可成長一倍)。時至今日,目前主 流的個人桌上型電腦售價已降低至新台幣一萬五千元左右;而其運算核心,中央處理器(CPU),
電晶體數已達三億顆(Intel Core 2 Duo),運算能力已達每秒兩百億次指令運算(SiSoft Sandra,
Dhrystone)。電腦在使用及操作上越來越方便,但其功能卻日益強大。其原理就在於各個組件 間,如中央處理器、通訊、顯示與音效晶片,彼此縝密的溝通合作。所以如何安排電腦內部龐 大的資料傳遞始終是電腦工程師的一個重要課題,其狀況正如同一個國家的政府如何妥善處理 日益龐大的交通需求一般。有關使用於電腦上的通訊功能,就讓我們從電腦機殼背後凌亂的接 線開始談起。
通用串列匯流排(Universal Serial Bus - USB),正如同其名稱,當使用者想擴充新功能時,
只要將買來的新裝置直接插入 USB 插座就可以立即使用了。然而在此方便使用的背後卻是一 連串繁複的運算與通訊程序。以隨身碟為例,當隨身碟被插入後的瞬間後,電腦就已完成下列 的動作:USB 插座向隨身碟供應電力並向作業系統回報有裝置新增的訊息,作業系統讀取隨身 碟的裝置代號與硬體需求,如耗電與頻寬。作業系統根據裝置的需求與本身的支援能力決定是 否接受此裝置的申請,若允許則再根據此裝置代號,確認出此裝置的型態為一隨身碟,並自硬
碟中載入相對應的驅動程式後與作業系統間完成資料傳輸連結,最後在檔案總管裡新增一個磁 碟機的圖示與代號。當使用者將一個位於隨身碟上的檔案拷貝至某硬碟上時,則其資料流程如 下:檔案總管將檔案名稱透過檔案管理系統轉換成目的磁碟機代號與檔案位址,驅動程式指揮 USB 控制器將位於隨身碟上的一段資料透過 USB 訊號線傳回 USB 控制器內,再經由晶片組 內的記憶體控制器將資料傳送到組記憶體中。完成後檔案總管通知硬碟介面控制器,將資料再 次透過記憶體控器轉送到硬碟的某處可用空間中並在檔案配置表中更新相關的記錄。以上的操 作都是透過電腦內的軟硬體協同工作所完成,然而其運作不會被使用者所直接感受。
1394,以美國電氣電子工程師協會(IEEE)1394號標準為名,並早在1995年即已提出。和 USB 的目的一樣,都是希望發展出一種通用的介面以便能適應各種影音與資料的不同需求,但是其 功能卻比 USB 更為強大。不同於 USB 裝置都只能被動地接受電腦主機的命令,1394 實現的 是一種裝置間對等的觀念(Peer to Peer);例如透過適當的設定,兩顆支援 1394 介面的硬碟即 可對接並互傳送檔案而不須要經由電腦主機的中介。透過此觀念的實現,1394 不只是一種周邊 的介面,更可形成一種樹狀的網路架構。1394 定義完整且功能強大,可惜因某些非技術性的因 素,而讓其市場目前只侷限在數位攝影機(Digital Video - DV)的領域。
顯示介面(Video Graphics Array - VGA),原本定義接頭形式為 D-Sub 用以傳送三原色(RGB)
的類比訊號(R表示Red,G表示Green,B表元Blue)以適應早期的類比映像管顯示技術。然而隨 著如 Liquid Crystal Display(LCD)等數位顯示技術的發展,若繼續採用 D-Sub 技術則會產生影 像訊號轉換上重複的情況發生,例如從數位轉類比再轉回數位。因此數位的顯示介面技術:如 High Definition Multimedia Interface(HDMI)的發展便應運而生,其支援頻寬高達 5.4Gbps,可傳
送解析度高達 3200x2048 畫素的影像資料,並加入了資料保護和控制訊號等相關功能的支援。
關於電腦網路介面,目前有線電腦網路支援以硬體的乙太網路卡加上 TCP/IP 的軟體協定 便可達成和全世界其他電腦互連網的功能(Internet)。網路的資料傳送觀念以封包為基礎,透 過網路線的連結將資料傳送至指定的目的地。具像的說,就比如貨物藉著卡車,經由高速公路,
轉運至台北或台南;相對於電腦網路,另一種網路概念是電信網路,是透過專用的線路將資料 傳送至目的地,就類似火車運輸一樣有專用的路權。有趣的是乙太網路這種古老、簡單、較無 管理的網路機制之所以能持續稱霸於電腦界,乃是因為光纖傳輸與訊號調變技術的突破性發 展,導致可用頻寬大幅增加的關係所導致。以現實世界比擬,如果台灣有一千條高速公路,卻 只有一千台汽車,那又何必需要做流量管制呢。
無線電腦網路介面,目前以 Wireless Fidelity(WiFi)為主流,因為無線電訊號調變技術的 增進,速度上已提升到實用的程度,加上免除接線的煩雜,所以近年來無線網路已成為電腦的 標準配備;不同於有線電腦網路,無線電腦網路因電腦間共用相同的無線電頻帶作資料傳輸媒 體,故媒體存取管理便採用了一種協調式的方法,如 Request To Send(RTS), Clear To Send
(CTS);具體的講,像是上課時發言要先舉手,老師點到的才能說話一樣,如此便可避免有兩 個人同時說話的情況發生。然而目前無線網路的傳輸速度仍遠低於有線網路,且根據可見的技 術發展而言亦無超越之可能,此外電磁波對人體的影響至今亦無定論。
關於電腦內部的通訊機制則可以從 Peripheral Component Interface(PCI)談起。PCI 稱霸於 電腦主機板上已超過十年,相對於他的上一代標準,Industry Standard Architecture(ISA),PCI 除
了速度更快之外,主要是增加了自動組態設定的功能,及 PCI 卡也能主動發出傳輸的能力 (Bus Master)。如此可以大幅提高效能並且減少使用者手動的設定的需要。近年來 PCI 的繼任者 PCI Express(PCIE)已經發表,PCIE 的設計理念是在維持 PCI 軟體架構的前提下,重新設計新的 實體傳輸方法,主要的精神就是將原先以頻寬分享的並列資料傳輸線機制,改成點對點,頻寬 保留的串列資料傳輸線機制。其中關於串列傳輸可能令人感到疑惑的是,為何一條銅線的傳輸 能力會比三十二條一起傳有效率呢?其中關鍵在於訊號調變技術中的同步問題,以現實生活中 的例子為例,就像是三十二部機車載著三十二人一起出發,但是有一個限制是必須要同時到達 目的地,因此這些機車必須沿途作確認以致降低了行車速度;改進的方法是用一台巴士一次載 三十二個人,因不必確認彼此,所以可全力衝刺以最快的速度到達。此外如 AT Attachment
(ATA),一種目前最常用且簡單的硬碟介面規範,可支援大區域定址並適合來用做大區塊的 資料傳輸。他的發展趨勢亦如同 PCI 一般,朝向序列化傳輸的方向發展,如 Serial ATA
(SATA)。
目前的主流的記憶體標準是 Double Date Rate 3 Synchronous DRAM(DDR3-SDRAM),這名 字有點奇怪,又是 Double 又是 3 的,其實其應正名為 Octuple Date Rate Synchronous DRAM
(ODR-SDRAM)才對。話說記憶體傳輸以一個區塊為單位,通常區塊長度等於一個快取記憶體 的單位長度時效率最好,區塊前頭為位址段,隨後為資料段。在以前 Synchronous DRAM
(SDRAM)的時代,位址段和資料段運作的速度是一樣的。因為資料段只需做資料擷取,不需 做解碼的動作,操作上較簡易,於是有人發明將資料段的傳輸升至兩倍,故稱為 DDR-SDRAM。
後來又有 DDR2、DDR3 的發明,所以 DDR3-SDRAM是原本 SDRAM 的八倍快,因此應該稱 為 Octuple Date Rate Synchronous DRAM(ODR-SDRAM)才對。另外值得一提的是,因為每世代
的記憶體標準改變如此之小,因此新的標準是能輕易相容於上一代標準地。但是記憶體模組的 規格卻是隨著每一次記憶體晶片規格更動時一起做改變,以致舊的記憶體模組無法適用於新的 電腦上,而必須丟棄並重新購買新的。此種作法可增加記憶體廠商的獲利,但不甚環保。
關於晶片內的傳輸標準,原先都是採取自家定義的協定,後來因晶片設計複雜度快速增加,
晶片內的部份設計模組可能必須採用其他公司的產品,於是相容性變成了重要的議題,晶片內 的傳輸標準內便逐漸統一了。目前 Advanced High performance Bus(AHB)是為業界主流,但別 被其名稱所迷惑了,其實 AHB 這個標準一點都不先進,也不具有高效能,大概只比古老了 ISA 好一點而已。即使新的標準已提出了,如 Advanced eXtensible Interface(AXI),但其發展依舊 緩慢,原因和相容性的維持有極大的關係,因為經過這幾年的發展,相容於 AHB 標準上的設 計模組已經相當的多了,更換通訊標準則模組必須重新設計與驗證,相較於效能的增進,其實 並不划算。廠商在相容性這一點的考量上,倒是與記憶體標準的發展大異其趣。
舊的以匯流排為主的設計方法正在進行的同時,新一代以網路封包為基礎的晶片內傳輸設 計方法論已悄然升起。其背後推動原因有兩個:一是因為晶片製程的進步,晶片的面積與電晶 體數迅速大幅增加,晶片內的傳輸延遲亦趨嚴重,訊號延遲時間的估計越來越難準確達成,因 此以訊號同步為基礎的設計方法逐漸變的不可行,於是原本用於網路上的非同傳送機制,正可 解決此問題。其二也是因為晶片製程的進步,晶片的操作電壓越來越低,導致雜訊阻抗的能力 變差,於是晶片內的傳輸訊號的品質便不再被保證,而網路上已經發展成熟的錯誤偵測與回復 機制便值得借鏡。
最後談到通訊,不得不提排隊理論。什麼!排隊也能成為一種理論,難道要教我如何插隊 嗎?是的,排隊的確是一門理論,許多大學教授都是靠他吃飯的。排隊理論也相當值得一學,它 是一門很窄的數學領域,但其應用卻相當廣泛。排隊理論不是教一般人如何排隊的,而是以商 店老闆的觀點去探討整體服務與需求的關係。排隊的現象無所不在:諸如買票、吃飯、購物等。
顧客揣度「應該排那一服務櫃台會比較快?」「到底還要排多久?」;相對的,老闆也要盤算 到底在何時要開幾個櫃台與配置多少人力才符合成本。探討這個問題的數學理論就稱為排隊理 論,首先老闆必須先觀察客人來店的分布頻率,其特徵可做成以下歸納:在某段時間內,平均 會有幾個客人來店,有時候很少,但有時又異常地多,因此事件發生的機率是一個隨機變數,
若此隨機變數是正規的分布(Normal Distribution)則以此機率所可能形成的一段事件分布的過程 就稱為卜瓦松程序(Poisson Process),若老闆運用此數學模式,即能預先得知在多少資源配置 的情況下客戶所能得到的服務品質為何,便可做出最佳的決策。然而卜瓦松程序是一個較簡單 的模型,使用上有一些限制;例如在馬路的交叉路口,當紅燈轉成綠燈時,所有汽機車一起衝 出來的流量狀況便無法模擬。而通訊上的資料流動的行為和實際生活上的交通行為相當類似,
如何善加運用排隊理論將特定的網路模型的效能以數學分析的方式做出完美的映證,即是相關 研究領域的所要克服研究難題。
為何電腦的通訊運作和人類的交通行為如此類似呢?我想原因就在於電腦是人所發明的,
所以日常生活的行為準則不自覺地又在晶片上實現了;相同地,現實世界所可能面對的問題和 限制也會在電腦世界裡重現,週而復始。
科學具有預測可被檢驗,結果可被重複等嚴謹的定義;現代工程技術巧妙地運用已知的的
自然現象,持續創造出許多令人驚奇的科技產品。然而科技並非萬能,許多現象仍非科學方法 所能解釋,許多問題也無法以工程技術的方法解決。有一個可口可樂的廣告,運用現代的動畫 技術,描述著一個人對飲料販賣機內的運作的奇幻想像;科技只是一種服務人類的工具,重要 的是如何運用所代表的背後含意。希望本文能增進你對電腦內部運作的了解,但不要減損原來 的想像與好奇心。