分类: 嵌入式
2011-08-22 15:03:45
I/O Interfacing |
當電腦科技進展到更高階的應用,如複雜的醫療用影像等,都需要多個CPU和DSP才有足夠的能勝任。在此情況之下由處理器或是某片特定用途板中釋出的 資料,將不一定送往週邊設備。這些資料很可能會衱傳到其他的處理器,並且與系統的BUS和I/O能互相合併。因此增加I/O的速度和加強處理器之間的溝通 變成同等重要。I/O BUS也成為電腦整體效能的重要因素之一。
目前BUS和資料頻道俞來傾向於根據其功能來加以分類,而非按照導線長度或記憶字的寬度等等。大部份電腦,不論是大型系統或是個人PC都包含有系統BUS,以及依據所需赽行的功能而擁有各類型I/O通道。
而I/O通道所連接的週邊設備已不再侷限於儲存、顯示、或是資料列印裝置,其他如X光機,探測裝置,溫度感測器,訊號放大器,和資料轉換器等者是可能的週邊設備。以下將以目前最新的幾個I/O介面來說明,重點將放在:
1、PCI bus
2、AGP
3、USB
各種bus的規格比較
以下是現行的各種bus之規格比較:
ISA Bus : Industry Standard Architecture bus (aka. AT bus) 8/16 data bits, 24 address bits (16Meg addressable)
8 data lines,20 address lines
8-8.33MHz, asynchronous
8M/s burst
bus master support
edge triggered TTL interrupts (IRQs) - no sharing
low cost
two CPU cycles used for every read or write
DMA capable
Comments: ideal for low to mid bandwidth cards, though lack of IRQs can
quickly become annoying.
MCA Bus : Micro Channel Architecture bus
16/32 data bit, 32 address bits
80M/s burst, synchronous
full bus master capability
good bus arbitration
auto configurable
IBM proprietary (not ISA/EISA/VLB compatible)
Comments: Since MCA was proprietary, EISA was formed to compete with it. EISA gained much more acceptance; MCA is all but dead.
EISA Bus : Enhanced Industry Standard Architecture bus
32 data bits, 32 address bits
8-8.33MHz, synchronous
33M/s burst (sustained)
full bus master capability
good bus arbitration
auto configurable
sharable IRQs, DMA channels
backward compatible with ISA
some acceptance outside of the PC architecture
high cost
Comments: EISA is great for high bandwidth bus mastering cards
such as SCSI
VLB : VESA Local Bus
32 data bits, 32 address bits
25-40MHz, asynchronous
132M/s burst (sustained is closer to 32M/s)
bus master capability
will coexist with ISA/EISA
slot limited to 2 or 3 cards typical
backward compatible with ISA
moderate cost
Comments: VLB is great for video cards, but its lack of a good
bus arbiter limits its usefulness for bus mastering cards and
its moderate cost limits its usefulness for low to mid bandwidth
cards. Since it can coexist with EISA/ISA, a combination of all
three types of cards usually works best.
PCI : Peripheral Component Interconnect local bus
32 data bits (64 bit option), 32 address bits (64 bit option)
up to 33MHz, synchronous (upto 66MHz PCI 2.1 option)
132M/s burst at 33MHz (sustained) (524M/s with 64 bit option)
full bus master capability
good bus arbitration
slot limited to 3 or 4 cards typical
auto configurable
will coexist with ISA/EISA/MCA as well as another PCI bus
strong acceptance outside of the PC architecture
support for 5V and 3.3V peripheral cards
moderate cost
Comments: The newest of the buses, combining the speed of VLB with the advanced arbitration of EISA. Great for both video cards and bus mastering SCSI/network cards.
Notes: 64 bit option was defined in the original PCI 2.0 spec. 66MHz operation is an option of the PCI 2.1 spec and is only available for the 3.3V PCI bus.
PCI的全名為" Peripheral Component Interconnector",由此明稱,可了解其出發點大多出於對"周邊元件"的考慮。PCI的目的是希望達成Glueless PC,或是讓PC成為商用工作站,在Graphics方面提供較好的資料傳輸管道,另一方面 是希望屏除CPU的世代交替,不會因為新一代的CPU出現而導致Local Bus的全面更新。
簡介如下:
1.與處理器無關聯性-- 因為PCI區域匯流排和CPU匯流排之間有一個橋接器(bridge),可做一個緩衝器(buffer)設計介於兩者之間。
2.Multiplexed-- Address和Data Pin用Multiplexed方式,目的在於節省腳位數目,這也是為何PCI匯流排的腳位數目能遠少於ISA、EISA、MCA、VESA的腳位的原因之一,因此可減少成本。
3.同步傳輸,工作頻率20-33MHz。
4.Bandwidth可達120MB/sec(32bit時),當在64資料位元時,更高達240MB/sec。
5.支援多個Bus Master的功能--允許PCI匯流排上的Master獨立的Access任何PCI匯流排的Slave。
6.隱藏式的集中仲裁(Arvitration)。
7.位址線和資料線均含有偵錯位元。
8.採Burst傳輸的方式--只要一個Address Phase指示起始位址,隨後可接連著一連串的Data phase,Bus Master與Target雙方均依照+4的原則(64bit時+8)源源不斷地將資料收入 或送出,也因此在大量資料傳輸時,PCI的performance較能顯現出來。
腳位說明
以下就各腳位逐一說明:
D[31::00] | Address 與 Data Pin共用接腳,亦即位址與資料線採用Multiplexed的方式,第一個週期是Address,再來才轉換成Data的出現。 |
/BE#[3:00] | Bus command與Byte Enable共用接腳,Bus command是採編碼的方式;過了Bus command之後,當Cycle進入data階段時,C/BE#(3:0)變成了Byte enable了,C/BE#(0)表示目前傳送的是屬於Byte 0。 |
AR | 它是以AD[31::00]、C/BE#[3:0]加上自己PAR共37條線造出Even
Parity。 |
RAME# | 作為一個Cycle的指標,當其Active low時,則表示目前已經由 某一個Master發動cycle3,在整個Access的過程中,FRAME#一直是保持Active,一直到 所有的Access結束。 |
RDY#和IRDY# | 碍TRDY#表示 Target Ready,IRDY#表示Initiator Ready,當TRDY# active時,表示目前的 Target Device已經將資料準備在匯流排上,可以被Access 當IRDY#和TRDY#兩者都Active(low)時,代表Data的傳輸正在作用。由於AD line是採用multiplexed的方式,可能會有兩個Agents同時去Drive,為避免相互衝撞起見,PCI特別定義了一個Turn-Around-Cycle,符號則是以兩個半圓弧藉以區隔 。Turn-around-cycle最少須一個clock的時間。 |
TOP# | TOP#信號Active low時,表示目前的target元件正發出信號通知 bus master停止目前的cycle進行。 |
EVSEL# | Device Select,Target用來告知Bus Master現在Access的 Device正是該Target。 |
DSEL | Initialization Device Select,host CPU對各PCI Device 進行組態時所發出的訊號 |
EQ# | Request是Master向匯流排仲裁者(Arbiter)提出參加下一次仲裁 的要求,每個Master都必須有他自己的REQ#。 |
NT# | 恒Grant是仲裁者回應Master必須接受到此訊號才算是搶到bus,成 為匯流排的擁有者。PCI匯流排仲裁採用隱藏式集中仲裁,所謂隱藏式的仲裁是將仲裁的週期,藏在匯流排的傳輸週期中,因此在整個傳輸過程中看不到匯流排仲裁的週期。PCI採集中式仲裁,每個PCI主控器(MASTER)都有一對REQ#、GNT#的接腳、各自連接至仲裁器(ARBITER)上,完全由仲裁器決定該由誰取得匯流排得控制權,但是PCI對仲裁器內部的仲裁法則(ARBITRATION ALGORITHM)卻不予以定義,這是欲留給系統設計者有更大的彈性空間,另外還有一點就是PCI允許,若沒有任何的主控器對匯流排提出需求,仲裁器可將匯流排控制權交給事先設定的HOST CPU或是其中任何一個MASTER,此動作稱為ARBITRATION PARKING。 |
LK | Clock,PCI本身是個同步的傳輸協定,所有的傳輸行為全部隨CLK而動作,也就是說,所有的PCI元件都在CLK的正元觸發時擷取PCI匯流排上的訊號。目前PCI 頻率定在20-33MHz之間。 |
RST | Reset,PCI元件的重置訊號。 |
D[63::32] | 因為PCI匯流排除了基本上可支援32位元資料,亦可擴充到64位元資料匯流排。 |
E#[7::4] | 為了配合64位元所設定。 |
AR64 | 配合64位元的資料匯流排,PARITY BIT當然也要增加。 |
EQ64#和ACK64# | 献在執行64位元資料傳輸時,Agent需要有兩個信號來通知其匯流排另一端,所以REQ64#和ACK64#就應運而生了。REQ64#的Timing和FRAME#是完全相同的,當目前匯流排得BUS MASTER驅動REQ64#訊號時,表示此BUS MASTER希望接受你的資料以64位元方式傳送;ACK64#則是由輸送的另一方表明同意作64位元傳送之意,ACK64#的Timing則完全和DEVSEL#相同。 |
OCK# | 為選擇性腳位,Bus Master可對TARGET進行鎖定,用來防止其他MASER對該TARGET內部資料的破壞。 |
ERR#--PARITY ERROR | 不僅用在偵測資料線,位址線也同樣地檢查。 |
ERR#--SYSTEM ERROR | 當系統出現重大錯誤時,藉此回報產生NMI或其他方式 處理此一SYSTEM ERROR。 |
BO#和SDONE# | PCI為了支援Cache Coherency,提供了兩根接腳SDONE、SBO#代 表四種狀態。
01STAND BY--顯示目前BRIDGE/CACHE正準備窺探(Snoop)PCI匯流排上的位址線。 00BUSY-- BRIDGE/CACHE目前無法執行SNOOP的動作,目標會發出RETRY的訊號請BUS MASTER稍後 RETRY此一匯流排週期。 11CLEAN SNOOP--表示BRIDGE/CACHE SNOOP到的位址與CACHE內容並無衝突。HIT-MODIFITY則顯示目前位址線的內容已經被BRIDGE/CACHE更改過了,這時 候TARGET會發出RETRY的訊號,終止MASTER的週期,由BRIDGE/CACHE發出寫回週期,將被改過的資料寫回系統記憶體,寫完後再由BUS MASTER RETRY原來的匯流排週期。 |
專業測試腳位 | 在IEEE的標準規格1149.1中有定義一些專供測試元件內部狀態的一些功能,又稱之為"Test Access Port and Boundary Scan Architecture"。 |
粧
PCI Bus命令之定義
前面提過PCI Bus Command是採用編碼的方式。
1、Configuration Read& Write這兩個command,是host CPU對PCI元件組態設定時所使用的。PCI提供了每個元件各自擁有256 Byte的組態空間,所以當Configuration Read & Write時,AD[31::00]只看最低的8 Bit,較高的24 Bit
則不予考慮,但是為了省電起見,這24條AD lines必須被Drive為High或是Low,不可讓它成為Floating的狀態。
2、Memory Write and Invalidate這是個All Bytes Transfer Command,在組態空間裡有個暫存器存放著Cache Line Size,以利將 Dirty line清除完
畢。
3、如果要存取超過兩個32位元的資料,就可以使用Memory Read Long的command,它用在一連串的資料傳輸,使用的時機為:
1.讀取整條Cache line的資料。
2.若要讀取更多的Cache
Line可事先知曉。
4、Postable Memory Write這也是一連串的資料傳輸當 Cache Controller將內部資料寫回主記憶體時所使用,伴隨該Command之後會發出Special Cycle裡的Flash訊息。
組態空間
PCI提供256 Byte的組態空間供各元件與系統間訊息的傳遞,組態週期的方式可採用Byte、Word、D-Word甚至連Burst的讀寫都是被允許的。由於PCI只提供256 Byte組態空間,所以各元件只需對AD[7::0]進行解買,不必理會AD[31::8]的狀態,但是這些AD line為了易於Parity Check與省電起見,必須被驅動制穩定的狀態而不可隨意讓它Floating。
PCI將組態空間分為兩部份:一為表頭定義部份,另一為元件自行定義部份。PCI規定 都必須提供前面64 Byte的表頭定義部份。下表2所視為PCI組態空間表頭定義部份,其中有Device ID、Verdor ID、Revision ID等組態時所需要的資訊,為了相容性起見,PCI規定表中Reserved的暫存器遇到寫入週期,該元件發出TRDY#訊號結束此一週期且不做任何動作,若是遇到讀取週期,則送出資料值為零,並正常地結束該讀取週期。
PCI之未來發展
Intel PCI Chip Set
1996年二月12日,Intel公司發表了專為個人電腦及Pentium CPU設計的新一代PCI控制 晶片組,分為430HX及430VX,其中430VX通常用於家用電腦,而430HX則應用於商用電腦,這些晶片組,有下列幾項特色:
Concurrent PCI -- Intel 430HX及430VX PCIsets是第一個支援 Intel新的Concurrent PCI Processing architecture。Concurrent PCI可同時動作CPU、PCI及ISA Bus,因此增進了 系統的執行效率,另外,藉由Multi-Transactional Timer、Enhanced Write Performance、支援PCI 2.1版的PCI延遲處理(delayed transaction),增進了PCI的bandwidth,增進程式執行效率及影像聲音的表現。
Universal Serial Bus -- Intel 430HX及430VX支援 USB,USB提供了真正的Plug & Play,並簡化PC周邊的連結,performance也較佳,因此,USB有可能成為一種標準。
Intel 430HX PCIset包含兩部份:82439HX System Controller (TXC),採用BGA(Ball Grid Array)包裝,另一部份為82371SB PCI ISA IDE Accelerator (PIIX3),採用208-pin PQFP(Plastic Quad Flat Packaging)包裝。Intel 430VXPCIset包含四部份:82437VX System Controller(TVX),採用208-pinQFP包裝,兩個82328VX Data Path Units (TDX),用100-pin QFP包裝,以及82371SB PCI ISA IDE accelerator (PIIX3),採用208-pin QFP package。430VX支援 SMBA (Shared Memory Buffer Architecture),可分享系統記憶體給顯示卡,另外,也支援SDRAM。82731SB的用途為作為PCI bus及ISA 之間的橋樑,也當作PCI Bus Master IDE Controller。
2. PCI in MAC
Macintosh原本採用NuBus,但是PCI界面可提供較好的performance,一張PCI卡大約比一張NuBus相似的卡快了三倍,另外,PCI以成為一種工業標準;因此,在新的Power Macintosh(TM)電腦上將支援PCI (完全支援到PCI 2.0)。此外,PCI on a Power Macintosh (此種系統只含有PCI)能使 RISC 的power發揮到極致,能使所有PCI卡用 33MHz 的極速工作。
PCI Special Interest Group (SIG)已經制定出新的PCI 64-bit及3.3-volt系統 的規格,在新的PCI 2.1規格上,PCI bus的bandwidth可達524Mb/s,工作頻率在66 MHz,速度為原先PCI 2.0的四倍,因此,未來在顯示卡、網路卡及SCSI控制卡等PCI卡上,若採用新的PCI 2.1 規格,速度將提升兩倍以上。
前言:
先進圖形埠(Advanced Graphic Port ,AGP)係由INTEL聯合繪圖處理晶片廠商共同為PC在3D圖形處理能力的加強所制定的。英代爾從1996年7月提出AGP INTERFACE SPECIFICATION,REV 1.0後即陸續展現實質的推動工作:像是成立AGP執行公會在PENTIUM II晶片組上注入了AGP新規格;INTEL亦開發一顆叫AUBURN的3D繪圖處理晶片,用以搭配具備AGP之晶片組。此外,微軟公司下準備在其WINDOWS97之中支援AGP所擁有的動態記憶配置新功能。
概念
AGP在系統主記憶體與繪圖卡上的圖框緩衝器之間建立一個新的資料傳輸路徑,即跳離PCI匯流排,將3D繪圖處理時的深度緩衝處理、透明化處理及紋理映像等資料由CPU直接置於系主記憶體內,另外資料存取則由匯流排分工處理,如下圖
而AGP是一個32bit、66MHz的匯流排,系由66MHz的PCI演化出來,透過側邊信號傳遞AGP存取的需求。
AGP與PCI匯流排之比較 | ||
比較參數 | PCI | AGP |
傳輸方式 | 同步 | 同步 |
資料匯流排寬度 | 32BIT | 32BIT |
匯流排時脈 | 33MHz | 66MHz |
峰值資料傳輸率 | 133MB/S | 528MB/S |
記憶體存取方式 | 非管線化 | 管線化 |
記憶存取的優先權 | 不受支援 | 受支援 |
讀寫位址/資料 | 多重發訊 | 分開傳輸 |
信號線 | 49條 | 65條 |
AGP之架構原理
AGP與PCI的關鍵差異在:
(1)AGP為點對點介面,只連結繪圖晶片
(2)66MHz的時脈下,以32bit發出資料,其峰值資料傳輸率
32bit×66MHz×2=528M/sec
(3)資料讀取/寫入分成兩種優先權等級的命令,如果係低優先權為系統
主記憶體存取;如果系高優光權則為中央處理位元存取;假設週邊晶
片組的低優先權需求為Queue,則高優先權的需求率先處理。而等級
可以用軟體來決定。
(4)AGP連結繪圖卡之連接器也有別於架在主機板上的PCI匯流排。如下
圖:
AGP以管線化工作,共享大多數的PCI信號,並以PCI主控端或受控端的工作 方式交錯使用在同一連結:新定義的信號PIPE#用以讀取及寫入,如同FRAME#用於PCI位址處理部份。AD及C/BE#負責攜帶AGP需求部份的位 址及命令訊息。AGP的最大管線深度係由主控端、目標端的組態時間來決定。記憶體位址是以Q-WORD為單元,存取的長度由需求相位占掉3位元,剩餘29 位元由記憶體位址占用;在需求相位的C/BE#所包含的匯流排命令,如讀取、寫入、高優先權讀取/寫入、長型讀取、長型高優先權讀、FLUSH及 FENCE。其中“Flush”用以同步化,以確認AGP主抭端執行至系統的狀況,當此指令執行時,主控端確認您的同步事件,像是中斷處理或旗標設定Flush占有AGP管理的一個槽;“fence”用以區隔前後命令,避免寫入超越讀取。
在相同優先權之下,AGP傳送執行有四階規則:(1)從目標端讀取的資料其位階如同由主控端起始的讀取需求(2)目標端處理寫入動作相當於主控端起始的寫入需求。(3)寫入存取可繞過先前已產生的讀取存取(4)資料取自AGP讀取需求係與前面主控端的寫入需求具同等地位。
結論
AGP將對晶片組供應商造成兩大拱戰,其一是減少系統的公用記憶體功能甘會降低,降低部份,這得由AGP緩衝記憶體來處理;其二是晶片組可以精確刺制AGP的66MHZ資料存取率。
擁有AGP的PC可在1997年第4季進入市場,屆時PC將整合3D繪圖晶片的功能及處理MPEG-II視訊數據,全動態顯示。而有了AGP,繪圖可快速存取資料至系統主記憶體,3D繪圖所需的資料就可儲存在系統主記憶體,節省昂貴的視訊記憶體,有效降低成本。
週邊設備介面
SCSI 介面的快速發展已面臨瓶頸(即使是 40MBps 的 Ultra-SCSI ),而工業界對於未來的走向卻仍舉棋不定。問題的原因不是因為沒有其它介面可供選擇,而是替代方案太多了。 例如 USB(通用性串列匯流排 )、 SSA( 串列儲存架構 )、 FireWire、 Fibre Channel-Arbitrated Loop(FC-AL;光纖通道 )。 每一種介面都有值得推薦的優點,但卻互不相容。USB介面對於鍵盤、滑鼠、印表機與數據機以外的裝置而言可能太慢了。FireWire 介面雖然較快, 但卻僅適用於數位週邊設備(例如,數位照相機、攝影機)。 SSA 介面相當快速, 但照目前的情勢發展下去,以後可能只有到 IBM才買的到。 最後,某種形式的 FC-AL ( Fibre Channel-Arbitrated Loop,光纖通道仲裁式迴路)將可能成為高速儲存設備的連接介面。
SCSI 介面的問題,可能要歸咎於 PCI 匯流排的提出。 在 PCI 提出之前,SCSI介面在人們的印象中是高速的代名詞;但物換星移,與目前 33 MHz PCI 匯流排的 132MBps,或66MHz的524MBps傳輸速度相比, SCSI-1 與 SCSI-2的5MBps傳輸速度似乎相形見絀。也許你會問:為什麼不讓 SCSI 介面再快點?當然沒問題,Adaptec 公司已經提供 80MBps 的雙通道 Ultrawide SCSI 介面卡,甚至 ANSI XT310 委員會也正在討論傳輸速度達 80MBps 的 Ultra-SCSI-2 和 160MBps 的 Ultra-SCSI-3。不過,遲早我們都會面臨到傳輸介面的物理特性限制問題。一般來說,有兩種方式可增加介面的傳輸速度:增加傳輸通道,或提高傳輸 速度。如果增加傳輸通道的話,可能會導致纜線寬度愈來愈厚(標準的 SCSI 排線有50 條線,Wide SCSI 則有 68 條線 )。 如果提高傳輸速度的話,會使得匯流排上的週邊設備處理時序( clocking )時更加困難–如何決定傳輸資料位元的起迄位置。因為,當介面速度愈來愈快時,每一個位元信號則愈來愈短,在時序上可接受的誤差則更小。
此外,多條傳輸線欲同步平行(parallel)傳輸,也可能會發生時序無法一致的問題。換句話說,提高 SCSI 的傳輸速度所引起的麻煩反而更為棘手。 基本上,一個系統要改採用不同的介面方法需要一段時間才能實現,所以工程師們現已開始尋找比 SCSI 更有潛力的替代方案,答案似乎就在串列傳輸。串列傳輸一次只在一條線上傳輸一個位元(全雙工串列傳輸則在不同的兩條線上,以不同方向一次傳輸一個位元)。 串列傳輸沒有多條線時速度不一致的問題,因為,時序與資料都在同一個傳輸資料流中,而且電腦與週邊設備的連接也較簡單,每一個傳輸線只需一對電線,所以全 雙工串列傳輸只需要 4 條電線即可。 因此,結論是串列傳輸不但速度可以更快,纜線也不會變寬。接下來的問題是,要用什麼方式來提高傳輸速度呢?
源起:
由於個人電腦的中央處理器的性能不斷提升,幾乎每18個月性能就提升一倍,為因應中央處理器性能的提升,個人電腦的架構也須進一步的改 變以應急速改變的須求。大部分的結構改變是在於現有bus-es技術上來使用更高性能的I/O為主,而這多半是為了多媒體、繪圖、以及通牧架訊上的高速需 求。例如PCI BUS就是例子之一。而其他的電腦週邊設備與電腦主機之間的溝通方式,由於早期電腦架構的影響,種類相當的繁多,而且也沒有一定的標準,使得使用者在為自 己的電腦擴充設備時,必須經過相當繁雜的過程。第一、他必須找對插的,也就是說,使用者必須知道什麼是COM PORT,什麼是PRINTER PORT,MOUSE有分RS-232以及PS/2介面;除此之外,使用者還必須懂得如何安裝驅動程式、選擇IRQ、選擇I/O位址、還必須要拆開機箱, 調整JUMPER等,造成了許多人的PC恐懼症。
近幾年來高喊要將個人電腦推廣到所謂的SOHO以及家用市場之中,前述的狀況可以說是一大障礙,雖然有一些聰明的製造商利用顏色分別
來幫助使用者將正確的電線插在正確的位置上,但使用者不免還是要面對一大堆的線,再加上原本個人電腦系統架本可供擴充的接口不多,因此使用者無不將設備擴
備視為一大困擾。
基本目標:
其實,在USB的製訂過程中是依照下面幾個方向來考慮的。
第一,將個人電腦與電話連接起來。由於目前對電腦與通訊相結合的要求愈來愈高,因此這樣的趨勢愈來愈明顯,再加上SOHO市場的興起,使得個人電腦必須也扮演一個通訊中心的角色。
第二,使用的簡易性。如前面所提到的,目前的個人電腦外加的週邊設備,如鍵盤、滑鼠、搖桿等都各有各的連接方式,並且並不具有所謂的即插即用的功能,因此並不具有所謂的即插即用的功能,因此以使用者的角度來看,使用上並不容易,USB希望能解決這些問題。
第三,週邊的擴充性。目前在為個人電腦擴充備時,相臨的一個很大的困擾就是擴充能力不足,因為每一個週邊設備都必須佔掉一個擴充插座,再加上週邊設備之種類繁多,因此使用者還可能在新的週邊加入時面臨無處可插的問題。例如時有聽聞電腦需要增加COM PORT,或是IRQ不夠的情形。因此,USB必須要有能夠輕鬆擴充的功能。
基本硬體架構:
基於以上的幾個理由在這個情況之下,由COMPAQ , DIGITAL , IBM,
INTEL , MICROSOFT , NEC NORTHERN TELECOM等七家電腦電信相關廠商就一同製訂了一個新的規格,稱做通用型串列傳輸介面---Universal
Serial Bus,簡稱USB。而USB的結構主要分為:主控制器、集線器以及周邊三大部分。
1、主控制器:存在PC內的主控制器(HOST CONTROLLER),須具備負責CPU與USB週邊的連絡、控制及資料傳輸。它同時須具系統資源分配的責任,例如,使用者接了一台USB的印表機到 USB埠上,主控制器必須偵測到該台印表機接上了USB,並且確認其基本資料,並且告訴CPU,如果這台印表機有錯誤訊息產生,主控制器也須將此一訊息傳 到CPU,讓系統知道這台印表機是暫時無使用的。
除此之外,連接任何新的USB週邊設備,系統並不須要重新開即可偵測到,同時安裝所須的驅動軟體,便可立即使用此週邊設備。
2、集線器:集線器(HUB)基本上的工作是分配系統的電源以及資料的流向。佳且藉由集線器的協助,最高可連接至127個USB連結週邊,集線器將接收上層的電源及資料,將之傳輸到下層所指向的週邊。例如一個4個埠的集線器負責將上層PC的資料傳到它的4個埠上,而集線器也須負責回傳下層週邊要傳回PC的資料。
所以在PC的日架構內,除了主機控制器之外還必須有一個ROOT集線器的存在,以提供資料的分佈。所以在USB系統內最上層的集線器,通常
底部集線器會有至少二個USB連接埠,這連接埠可連接其他USB週邊或者下一層的集線器。由此類推,藉由下層集線器的連接,全部連接可到127部週邊元
件。大部分的USB週邊元件會將集線器,內建設計進其內,例如一個USB的顯示器可能包含一個七個埠的集線器。因此,其中一個埠作為顯示器與PC之間的資
料傳輸,其餘6個埠可作為其他USB周邊元件的連接埠。
3、週邊:USB為支援低到中速度的週邊產品,傳輸速度分二種模式,一為1.5Mbps,另一為12Mbps,藉由二種速度的選擇,資料的
傳輸可以更有效率。例如滑鼠、鍵盤、搖桿等,可運用1.5Mbps的傳輸速度進行資料流程。印表機、顯示器、MIDI等,可能須使用12Mbps的速度來
進行資料傳輸。
而在編碼上,USB採用NRZI(NON RETURN TO ZERO INVERT)的編碼方式,因此可以省掉時脈信號。實體上,USB採用最長5公尺,共四個信號的電纜線,這四個信號分別為Vbus及GND,提供BUS或 週邊設備所需的電源,另外兩則為差動方式驅動的data+與data-二條線做為信號傳輸之用。
基本的軟體架構:
USB的軟體架構為了和當前的作業系統WINDOWS 95,WINDOWS NT作相當程度的配合,將之分為三個模組。這三個模組也採取了物件導向的方式。在最低層的模組設計中,主控制器驅動軟體對USB主控制器進行控管,主控制 器設計者並定義了一個硬體介面的指標,提供一個獨特的主控制器的程式介面。例如INTEL的82430 PCISet USB Host Controller,採用了Universal Host Controller Interface (UHCD)。USCD將會處理與INTEL USB HOST CONTROLLER之間的通訊。較高層的物件是架在UHCD之上,利用UHCD的軟體介面和HOST CONTROLLER之間的溝通,如此就達到和HOST CONTROLLER的獨立。
第二個模組為USBD(Universal Series Bus Driver)。usbd提供了一個元件驅動軟體介面可以和現存的元件驅動軟體共存。藉由一些以往元件驅動軟體的經驗和嘗試,USB軟體架構定義了USB DRIVER INTERFACE(USBDI) 於USB規格,而細節有關於USBDI將因不同的OS而有不同的規定。
第三個模組為USB CLIENT SOFTWARE。通常USBD的CLIENT是負責處理USB
DEVICE或者DEVICE的等級。在WINDOWS 95上,這些DEVICE DRIVERS使用Plug
& Play的方式去處理USB device的attach /detach的問題和Configuration
events。
USB的優點:
傳輸速度12Mbps的USB介雖然比SCSI介面還慢,但它可同時提供高速與隨插即用的功能。這對於以往必須使用串列、平行埠或特殊 連接埠的週邊設備來說很管用。另外,USB也可適用於一小部分過去使用SCSI或專屬判面的週邊設備(例如掃描器)。與一般非SCSI介面的週邊設備相 比,例如傳輸速度最高上限為115kbps的串列埠,USB的效能要快上100倍。平行埠一般傳輸速度為2Mbps,也比USB慢上了6倍。
此外,USB還可用串接方式連接最多可接127個裝置,而只需要一個USB埠,無須增加任何電腦資源,如IRQ等等。相反地,不管是 串列埠、平行埠、或鍵盤、燭幕接頭一般都只能支援一個裝置。再則,低消耗功率的USB裝置還可以直接從匯流排取得電力,無須另外準備電源線(但高功率的裝 置如掃描器仍需自備電源)。
USB也具個“熱抽換”(HOT SWAPPING)的功能,也就是說無須關PC電源就可進行週邊設備的更換。不過,具有雙向溝通功的裝置,例如鍵盤及滑鼠,目前進行熱抽換時比較不可靠。最後,由於所有USB裝置只有一個標準的纜線,使得纜線的更換更容易且更便宜。
而USB的加入,讓PC的設計工程師打開了更新更廣的應用,包括數位音響和高頻寬的電腦電話技術,特別是連接器的統一,對於OEM和IHV的廠商減少了很多的風險,因此會有更多的設計者與廠商的加入。
USB的發展現況:
USB在96年11月13日出爐的1.0FDR(FINAL DRAFT REVISION)版之後規格仍然搖擺不定,再加上COMPAQ聯合MICROSOFT與National semicoductor 於1.0FDR版前自行推出OPEN HCI (OPEN HOST CONTROLLER INTERFACE)的規格,使得USB未來的發展更橫生變數。
而儘極力推動USB的發展,領導業界規範硬體設計,不過由於USB成功的因素非僅硬體條件,軟體環境的成熟才是關鍵。業界此刻正等待微軟新版作業系統的安全問世,否則設計年餘的產品豈不泡湯。同時所有號稱USB相容的產品還需經過上百種產品之間的相容性測試。
而台灣身為全球主要鍵盤,顯示器與主要電腦週邊生產國,台灣產業的支持程度對USB的前景發展有相當的影響。以下是USB的規格表。
PERFORMANCE | APPLICATIONS | ATTRIBUTES |
Low Speed
Interactive Devices 10-100Kb/s | keyboard, Mouse
Stylus Game peripherals Virtual Reality peripheral Monitor Configuration | Lower cost
Hot Plug -unplug Ease of use Multiple peripherals |
Medium Speed
Phone , Audio Compressed Video 500Kb/s-10Mbp/s | ISDN
PBX POTS AUDIO | Lower cost
Ease of use Guaranteed Bandwidth Guaranteed latency Dynamic Attach -Detach Multiple devices |
一直到 1995年中,IBM推動SSA以取代SCSI介面的努力,似乎就要成功了。SSA 有優於 SCSI 介面的兩個賣點:速度與排線。SSA 提供兩個全雙工的通道,每個通道單一方向的傳輸速度為 20MBps, 合計總傳輸速度可達 80MBps, 是SCSI 介面的兩倍;而且 SSA 只需要四條電線,也就是兩條雙絞線(每個通道需一條雙絞線)。到 1995 年為止,ANSI 委員會( X3T10.1 )從事制定正式 SSA標準已有兩年,而 SSA 協會也向外宣稱會員已超過 40 個。 SSA 晶片一般是由IBM 供應, Pathlight 科技公司則代工生產( OEM ) SSA 介面卡,Conner 的硬碟機則支援 SSA 介面。然而, SSA 所承諾的 OEM 技術一直未能實現。 美國 ENDL 顧問公司的創始人Dal Allan 說:「在漫長的兩年期待落空之後,廠商們發現在類似系統比較下,SSA 也沒有比 SCSI 更具吸引力」。問提出現在 SSA 所需的 DMA 連線數目上,根據 Allan 指出,SSA 的最大 80MBps 傳輸速度, 是假定每條 20MBps 的 DMA連線都有資料不斷地傳輸。
「不過,若是同時掛上四個 SCSI 介面(需要 4 個DMA 通道)的話,也會達到 160MBps 的傳輸速度,遠遠超過 SSA, 而且一片具有 4 個 DMA 通道的 SSA 介面卡,比四個 SCSI 介面卡還貴。」 FC-AL 聯盟成員之一的 Seagate 於 1995 年 10 月併購Conner 之後, 已靜悄悄的放棄 SSA (據正式消息指出, Seagate 是於 1996 年 2 月停止 SSA 的發展)。 既然連世界最大的硬碟機生產廠商都放棄支援 SSA 介面,其他的硬碟機廠商如 Micropolis 公司也都相繼捨 SSA 而去; 在眼見 SSA 逐漸淪為 IBM 的專屬技術後,Adaptec 公司也將其 SSA 的支援計畫束之高閣。其實, SSA 介面本身也有其技術上的限制。 位於美國科羅拉多州,專門整合以Alpha 處理器為主之高效能圖形伺服器的 Hybinette 公司, 原本打算發表一款具有 PCI 控制卡的 SSA 磁碟陣列( disk array );然而,在試圖共享磁碟陣列時卻出現了檔案毀損的問題, 唯一的補救辦法竟是一套需花費 3,000 美元的套裝軟體或硬體交換裝置。 這二種方式都太昂貴了,再且 Hybinette 也發現將SSA 應用在 Alpha 伺服器時,只達到 5MBps 的傳輸速度而已。IBM 目前提供數種適用於 RS/6000 系統的四個連接埠 SSA 介面卡,以及二種高效能、高容量的磁碟次系統,型號分別為 7131 SSA Multi-Storage Tower 以及7133 SSA Disk Subsystem,另外也跟 La Cie 與 Groupe Bull 這兩家公司簽有代工合約。
到目前為止,IBM 仍然支持 SSA 介面。根據加州聖荷西( San Jose)的
IBM 儲存系統部門的開放系統儲存裝置行銷經理 Bill Pinkkerton 所言,IBM
甚至計畫於 1998 年推出傳輸速度為原來兩倍, 達 160MBps 的下一代
SSA。 但 SSA 畢竟是一種壽命有限的技術, 不久的將來, 會被涵括於下一代的Fibre
Channel 中。
FC-AL 提供的頻寬改善遠勝於 SCSI。 FC-AL 的最佳傳輸速度為100M Bps,不過大部分產品都是雙連接埠設計,所以總傳輸速度可達 200MBps;雙連接埠的另一個好處是在連接裝置時,提供備份線路做容錯處理。 基本傳輸速度為 200、400、800 或甚至更高的產品預計會相繼出現, 所以 FC-AL 的速度可能會一直是最快速 SCSI 的兩倍以上。假如以上的說明你還覺得不夠,我們再提出其它三項理由,讓你心甘情願地掏出荷包:
第一,FC-AL具有自我組態功能,不用關掉電源就可直接進行安裝。
第二,目前已有許多主機使用FC-AL作為主機間的連接。
第三,FC-AL 可使用 30 公尺長的同軸電纜,或 10 公里長的光纖進行連接,甚至早已有雙絞線的產品在使用,例如 Transoft 公司的 FibreNet 傳輸線與磁碟陣列,最多可長達 65 呎。
FC-AL 支援的主要週邊設備命令介面包括有: SCSI-3、 HIPPI ( High Performance Peripheral Interface, 高效能週邊設備介面)、 IPI-3 (Intelligent Peripheral Interface,智慧型週邊設備介面 ),足以減少軟體更換的需求。 相反的, SCSI 唯一支援的標準介面就只有它本身。 而且,單一的FC-AL 連接埠可連接高達 126 個設備, 而一個 SCSI 連接埠只能支援 15 個設備。FC-AL 的主要目標是高階的伺服器應用,可以讓你盡其所能的獲得所有執行效能,而其容錯功能也是其中的主要賣點之一。FC-AL 超長的纜線連接也有另一個妙用,譬如說你可以將映射( mirrored )的兩台磁碟機置於不同的建築物,以避免一些意外。FC-AL 未能受到某些桌上型與消費型應用系統(例如影像剪輯)的青睞,其原因有三: 第一,在標準的 Intel 機器上,可能無法充份發揮 FC-AL 的優點(這點可能會隨機器平台的發展而改觀,許多業界專家預測,公元 2000 年將會出現桌上型應用的 FC-AL )。 第二,桌上型與消費型應用系統對於容錯處理與異地備援的需求較不殷切。 第三,個人電腦消費市場對於價格非常敏感,而 FC-AL 相對地較為昂貴。
FCL:FC-AL+SSA1996 年 9 月,Adaptec、IBM 的儲存設備部門,以及 Seagate 聯合發表聲明,將把 FC-AL 與 SSA 合併成一項新的規格,稱之為〝 Fibre Channel Loop 〞(FCL,剛開始時稱為 Fibre Channel-Enhanced Loop )。根據這項協議,IBM 實質上等於承認 FC-AL 已經打敗 SSA。 不過, FCL 規格目前仍處於揮手階段。 「 FCL 目前實際上並不存在,」Adaptec 的商業關鍵任務次系統發展部門經理 Joel Warford 表示:「它只是未來 Fibre Channel 與 SSA 最佳部分結合後之代名詞。實際產品還要過幾年才有, 某些廠商可能於 1998 與 1999 年底領先市場推出,其他廠商則要等至 2002年。未來的變化還很難說,不過 FCL 在 2000 年時可能會成為主流技術。」FCL 比較近似 FC-AL 而非 SSA。舉例來說,FCL 的 100MBps 基本傳輸速度就跟FC-AL 相同, 它的起草委員會是 ANSI X3T11,Fibre Channel 也是這個委員會負責的。
FCL 與 FC-AL 的相容性,是透過雙模式的功能達成,相反地,SSA 裝置就無法直接與 FCL 介面相連, 兩者之間的相容性是透過複合式的介面卡達成,有點像是閘道器( gateway )的丞。FCL 之所以與 SSA 結合,可能是因為SSA 有兩個特點:〝善用空間〞與〝無須仲裁〞。 所謂善用空間, 是指在 SSA迴路上的設備可直接互相溝通,而與電腦系統或 SSA 控制卡無關。 至於無須仲裁,是指多個裝置可同時與匯流排溝通。
FireWire ( IEEE 1394 )具有 FC-AL 的某些特點, 例如熱抽換功能與較細的纜線等,但速度上比 FC-AL 較慢。 目前的 1394 標準支援的傳輸速度為 100、200 與 400Mbps, 也就是 12.5、25 與 50MBps。 FireWire 在其它方面也不如FC-AL,例如它在單一匯流排上只能連接 63 個裝置,纜線的長度最大只能到 14呎。不過,這些限制在個人使用的場合中,可能不是很重要。但話又說回來,它也有某些應用特點比 FC-AL 更吸引人。 例如,消費性的數位影像處理。這點並不令人感到意外,因為 FireWire 原本就是為了這個用途而設計的。
1394的規格概要
1、1394的協定階層及符號化方式
IEEE1394這一個週邊裝置介具有底下所描述的幾個特點:
朝多媒體的用途而發展出來的串列式介面。
具有Isochronous的資料傳送機能,可同步傳送動畫或聲音
資料的傳送速率可以達400Mbps。
DS-link的符號化方式。
採用tree的topology
系統的構成,可以自動設定。
而IEEE1394的規格定義了實體層及DATA LINK層,而實體層含括了信號的電器規格及串列信號的符號化的方式。實體層所伴演的具體角色不外乎下面幾件事:
第一:當電源投入時,有新的裝置連接或拆離某個裝置時,系統的構今可以自動設定。
第二:進行Arbitration來取得匯流排的使用權。
第三:傳達介的traffic狀況給全體系統。
2、1394的TOPOLOGY
IEEE1394具有自動設定其TOPOLOGY的機能。一般的進行自動設定,是指電源投入,連接上裝置或切離裝置的場合而說的,實體層的控制器會自動實行介面的自動設定。自動設定的過程有三個階段。
首先進行RESET,一但開始RESET,全部節點的讀出或寫入的作業就會停止,也就是停止資料傳送。再來檢查其TREE構造,來決定親子的關係。最後,每個節點會將其自的節點號碼告知其它的節點。
IEEE1394介面允許連接至63個節點;而可以擴充到1023個介面,換句話說,最多的裝置連接數最多為1023*63個節點。
3、資料傳送方式
1394可以有兩種資料傳輸方式:一為通常的資料傳送方式“Asynchronous”傳送,另一種就是“Isochronous”。 “ASYNCHRONOUS”的傳送方式,僅保證安全的資料傳送,但不能保證傳送的延遲時間。而多媒體的動畫、聲音等資訊必需在一定的時間內傳送;否則就 會有不同步的現象產生了。“ISOCHRONOUS”傳送方式,保證在125us,將資料傳送完畢。
ASYNCHRONOUS的資料傳送方式是利用記憶體I/O映射的方式來傳送資料的。所謂的記憶體映射,是指在存取I/O時,和存取 記憶體空間是一樣的方式。簡言之節點間是下應於位址空間來傳資料的。位址空間是由64位元所構成。一般而言Asynchronous的資料傳送方式是從“ 要求節點”送出要求框到“應答節點”,“應答節點”會回應確認信號,返回應答框而告之資料處理結束。對一個要求框而言,“應答節點”不會回應兩個以上的應 答框。不管是要求框或是應答框,接收節點必需對於每一個資料框,回應確認信號。確認信號是由4位元的情報及4位元的checksum所組成,情報的合義範 圍包括成功、busy、pending等。
返回確認信落,並不需要Arbitration。若是回應Pending的確認時,接下來就是從“應答節點”,傳送應答框。 Pending後的應答框在送出時,是必需要經過仲裁的過程的。接收節點也有可能返回busy的承認信號,這是表示接收節點呈現忙碌的狀態,而傳送端可以 再行重試。
而Isochronous傳送與Asynchronous的資料傳送方式,略有不同。它並未利用64位元的位址空間,卻是採用8位元的channel號碼,它的理由大致如下:
第一、可以同時對多數各channel傳資料。它由8位元來組成此channel號碼;最多可傳送256種類。
第二、另一個原因是資料框標頭的情報會比較少。
而Isochronous資料傳送方式,介面上會在某個一定時間內將資料傳送完畢。這一個CYCLEewf 125us。一個稱之為cycle master之節點會負責Isochronous資料傳送;只有root節點才有資格擔當cycle master的角色。
1996 下半年, IBM 已經推出 200Mbps 的 FireWire 傳輸晶片, 而Adaptec 與 Skipstone 也代工製造 200Mbps 的 FireWire 介面卡;Adaptec 應該會在今年推出適用於個人的FireWire PCI 板,定價約為 350 至 400 美元,這個價格大約與高階 SCSI 介面卡相同。 據 Adaptec 表示,FC-AL 介面卡則接近 1,000 美元。Adaptec 與 Skipstone 兩家公司曾宣稱計畫與數位影像剪輯產品廠商結盟,預計今年上半年推出產品,並將於今年稍後推出 400Mbps 的FireWire產品。Compaq、Intel 與 Microsoft 都將支援 FireWire,以作為策略性的介面。大部分觀察家預測 1998 年左右,FireWire 將出現在 Intel 的主機板上。Allan 說:「在 1997 年可能會有某些 FireWire 產品,但是總要給硬碟生產廠商一點時間以轉換到 1394 標準。 所以說,目前的硬碟介面將會維持一段時間。 初期的FireWire 週邊設備將包括磁帶機、數位攝影機與 DVD 在內。不過,直到目前為止,沒有硬碟廠商宣布推出 FireWire 產品。
1996 年春季,出現一個專門研究 FireWire的次團體( splinter group)出現: 1394.2 研究協會。這個團體的目的,是要創立一個傳輸速度達 100 至400MBps的1394 新版本,纜線的連接方式採用光纖而非同軸電纜。Apple、Intel 與 Sun 等公司都是這個新規格建議案的推動者之一。很不幸的, 1394.2 標準與目前的 FireWire 在實體介面階層並不相容,換句話說, 如果你有一個 1394-1995 連接埠的裝置(例如數位攝影機),必須要準備另一個轉接裝置,才能連至 1394.2 連接埠的電腦。 將賭注全部押在 1394-1995 (有時也稱為 1394a 或 1394.0 )規格的公司,對於這種在實體上與之不相容標準的出現,可不太高興,因為這會導致價格昇揚,而市場一向對價格非常敏感。 因此, 廠商正在尋求傳輸速度 800Mbps, 甚至1,600Mbps 的方法,而且能維持實體上的相容性。Microsoft 公司中大力推動 1394 的 Steve Timm 表示:「我們認為 1394.2 比較適於伺服器 / 工作站,而非個人電腦的應用場合; 而且 1394.2 並沒有被廣泛接受而成為主機板的的標準。另外,在儲存設備的應用上,大部分的支援也都是在確定解決方案能回溯相容。」
SCSI並列介面的大將
雖然更快速的界面已經有廠商開始研發,但是業界仍然看好SCSI,認為這是目前的主流產品。SCSI最初用於電腦工作站和一些高階的桌上型電 腦,但是目前已經愈加普及側一般形式的電腦,其主要原因現分別敘述如下,第一、新型的作業系統軟體,如WINDOWS95和WINDOWS NT等都有多 工作業的功能。SCSI的序列式命令處理方式,能夠讓配接卡應付不同作業之間的資料傳輸要求。
另外一個原因是有關逐漸普及的PnP功能。具備此種功能的外接卡必須能夠自行對CPU回應出本身的所在,以及在記憶體方面的需求。 SCSI設備均內建有自動組態設定功能,足夠應付SCSI版本的PnP操作要求。最後的原因與PCI匯排流有關,目前的SCSI卡能將SCSI設備和 PCI BUS直接連接。同時,PCI完全支援視訊和多媒體形式的資料傳輸,使Pentium為基礎的PC在效能罣面能與高階的工作站匹敵。
SCSI 當然不會就這樣銷聲匿跡。 它將會暫時保有目前大量的中低階磁碟市場。串列傳輸最後可能瓜分市場如下:USB
主宰一般的設備(例如滑鼠、鍵盤、數據機等等),FC-AL 取得高階伺服器與工作站的儲存設備市場,而
FireWire 則是消費性設備(如數位攝影機、DVD 等)。最後,FireWire
或 Fibre Channel (或兩者)將會把 SCSI 排擠掉。FireWire如果免費附贈於主機板上的話,
佔有率將會快速竄升(尤其是 800Mbps 的版本)。另一方面,Fibre Channel
則沒有任何跡象顯示在公元 2000 年之前,其價格會降低至足以搶走SCSI市場的程度。
根據 Adaptec 公司 PC I/O 事業部門經理Sundi Sundaresh表示:「輸出入介面的未來在於串列傳輸,
問題是在公元2000之後,平行傳輸技術還能維持多久?。」
參考資料:
1、新電子科技雜誌133期,121期。
2、零組件1996‧一月號
3、電子情報雜誌數篇。
4、WWW
原文连接地址:http://host.cc.ntu.edu.tw/other/Thomas/Document/IOFACE/IO2.htm#pci