FIFO非常類似于在超市里的結(jié)賬通道,每個客戶到達結(jié)賬臺的時間多少有點隨機性,結(jié)賬速度在一定意義上說是勻速的。有時候結(jié)賬客戶可能會很少,而其他某些時候又會突發(fā)很多客戶需要結(jié)賬,收款員不可能立刻為每個客戶服務(wù),所以需要排隊。
抽象地來說,我們稱這種排成一隊的數(shù)據(jù)為一個序列。隨后,收款員會以或多或少平均的速度為每一個顧客服務(wù),并不會理會隊列的長度。假如需要結(jié)賬的顧客涌入收銀臺的速度超過了收款員的服務(wù)速度,那么這種收款結(jié)構(gòu)就無法支撐了。那么此時,就需要采取措施,要么加快收款員的服務(wù)速率,要么減少新增顧客數(shù)。
同樣的道理也存在于數(shù)據(jù)傳輸中,數(shù)據(jù)可能到達某個時鐘域的間隔是完全隨機的,有時候或許會面臨一個很大突發(fā)數(shù)據(jù)塊。這種情況下,處在另一個時鐘域的接收設(shè)備只能以的速率來處理數(shù)據(jù)。如圖12所示,一個FIFO被用于緩存數(shù)據(jù),這樣在設(shè)備中就形成了一個數(shù)據(jù)序列。
圖12:異步FIFO
通過使用異步FIFO,數(shù)據(jù)發(fā)送端可以以隨意的間隔發(fā)送數(shù)據(jù),而接收端也可以以其固有的帶寬從數(shù)據(jù)序列里取出數(shù)據(jù)并進行處理。由于任何由FIFO實現(xiàn)的數(shù)據(jù)序列的長度都不能無限制,所以需要一些控制來防止FIFO溢出。這時候,有兩種選項可以采用:
l 事先定義好的發(fā)送速率(可突發(fā)或不可突發(fā)),最小接收速率以及對應(yīng)的序列尺寸。l 握手控制。
注意,發(fā)送設(shè)備的時鐘頻率沒有必要高于接收端設(shè)備,否則容易造成溢出。以較慢的頻率將數(shù)據(jù)送入FIFO,那么數(shù)據(jù)寫入FIFO的時鐘周期數(shù)要少于接收端將要處理數(shù)據(jù)的時鐘周期數(shù)。那么,如果不采取握手控制,就必須要理解以上描述會產(chǎn)生溢出的最壞的情況。
在任何一段時間內(nèi),假設(shè)數(shù)據(jù)發(fā)送寫FIFO的速率大于接收處理數(shù)據(jù)的速率,那么很輕易地使系統(tǒng)無法維持。因為沒有任何存儲設(shè)備可以存得下無限的數(shù)據(jù),這種問題需要在系統(tǒng)結(jié)構(gòu)層級才能解決。通常來說,突發(fā)發(fā)送一般是以小周期性或非周期性發(fā)生。所以FIFO的尺寸要大于等于(具體還要根據(jù)數(shù)據(jù)接收器的屬性)突發(fā)的尺寸。
FANUC IC693BEM331J Foxboro 2808-SABA-TSA-G Magnetic 8" Flow Tube
Allis-Chalmers LA-3000 3000 Amp A Air Circuit Breaker
Square D I-Line LX LXI36400 I-Limiter 400 Amp 400A A
ABB 1600 Amp Type LKE-16 LKE16 MPS-5 MPS5 Air Breaker
Dynamatic Eddy Curr. Clutch AT-441000-4041 90 DC 100HP
Reliance Electric WR-D4004 PSC 4000 Series WRD4004 CPU
Fanuc A20B-2901-0060/03C Vision Module RJ3 A20B29010060
Mitsubishi Melsec A2UCPU-S1 CPU Module A2UCPUS1 14K NIB
GE AKR-7D-30S 800 A Amp Air Breaker MVT Plus TR8B800
Siemens RL-1600 RL 1600 Amp Static Trip III RMS LSIG
Bolt Loc Bolted Pressure Switch VL 3612 G5 3000 Amp Gnd
Hitran 280 kVA 575 Delta / 460 Y/ 266 3ph 280kVA 460Y
Allen Bradley 150-A135NBD SMC Plus 100HP Soft Start
Modicon PC-E984-785 Programmable Controller PC-E984785
Eaton Cutler Hammer 400 Amp Bus Fusible Switch P3F365RN
Westinghouse DS-632 DS632 3200 Amp Amptector I - A LS
ITE Gould Imperial 5600 5640 Sz 5 Fused MCC Bucket 270A
Siemens SHMD69800AH SHMD 800 Amp 800A A Sensitrip 3 III
Square D Breaker MXF36800G 800Amp 800 A Electronic Trip
Sew Eurodrive DFV132M4 10 HP 1730 RPM Gear Reducer NEW
GE General Electric 3000 Amp Spectra End Tap Box 3P 4W
Westinghouse SPB 65 Pow-R Breaker SPB65 1200 Amp A
Siemens RL-1600 RL 1600 Amp Static Trip III RMS LSIG
Bolt Loc Bolted Pressure Switch VL 3612 G5 3000 Amp Gnd
ABB MultiDrive Multi Drive ACN684-0375-50000030A905 NEW
GE Transformer 275kVA 460/230Y/133 V 275 kVA 3 PH 230 Y
Square D 8538 Sz 5 Combination Starter Stainless SS 3R
Square D 8538 Sz 5 Combination Starter Stainless SS 3R
GE AKR-6D-50 1600 A Amp Air Breaker NO TRIP 635V
Bently Nevada 3300/35 6 Ch Temperature Monitor 330035
FSI FSP-1000-CS filter bag vessel Carbon Steel CS 5"
Cutler Hammer Eaton Breaker LDC3600F LT3600T 600 Amp A
Cutler Hammer Eaton Breaker LDC3600 LT3600T 600 Amp A
ITE Circuit Breaker CP3 B160 Type ET 1600 Amp Trip
Square D I Line ME ME36400LIG ME36400 400 Amp Frame
GE AKR-7D-30S 800 A Amp Air Breaker RMS-9 TS20LIT1 LI
Reliance Electric Motor 100 HP 1785 RPM Efficient 445U
GE Power Break Switch TCYY7625E1C 2500 Amp 2500A A
Cutler Hammer Westinghouse 600 Amp A HLD3600T107W
Reliance Electric S-D4007-E Network Module SD4007E PLC
ABB Circuit Breaker S6H S6H800EW 800 Amp 800A A
Square D Schneider Masterpact NW12L 1200 A CRADLE NIB
GE Fanuc IC600RM716 Data Prom IC600RM716 Rev M & L
Square D I-Line NX NX361200 1200 Amp 1200A A LSI
Siemens 6AV3627-1LK00-1AX0 Simatic OP27 Operator Panel
Westinghouse DSL-206 DSL206 800 Amp Digitrip RMS 700 LS
Square D MINI-flex Medium Voltage Controller 400HP 200A
Cutler Hammer Westinghouse 600 Amp A HLD3600T107W
Square D Altivar 66 ATV66D46N4U AC VS Drive 40HP 30kW
Square D I Line II AL Busway AF2516GBBCM PAF20 1600A 4W
Sew Eurodrive KA87TDT100 5 HP Ratio:63.00 Gear Reducer
Siemens Transformer 300kVA 480 / 208Y / 120 300 kVA Y