EDA365电子工程师网
标题:
电路设计漫谈之 - 两个有趣的IP交换机电路
[打印本页]
作者:
admin
时间:
2019-9-27 15:10
标题:
电路设计漫谈之 - 两个有趣的IP交换机电路
(信息来源:EETOP BBS 作者:sun_ic)
3 {8 U0 W1 D! D5 C! Y: v
. Q% P& ]5 c9 B3 V
电路设计漫谈之17 - 两个有趣的IP交换机电路
7 {% V3 p5 l$ W2 B, _
4 s7 X5 L ~6 _3 p- _
有些很复杂的技术其原理大多时是很简单。但往往人们看看到的是问题解决的办法或实现
! G _$ {, r, K
后的复杂样子,更糟糕的是对初学者或者初次从事该技术的工程师也从最后已经
4 q0 E" ?" E0 |3 P7 }' n1 k
实现的技术和系统讲解起。这往往忽略了问题的本质和技术的本来面目。始终认
( l9 P/ _# u* x9 e0 t/ d
为学数学物理前应该先读一本数学物理的发展史,了解当时科学家们遇到了什么
" R4 V9 U5 J% b
问题,受什么启发才发展出了相应的理论。不要一开始就微积分,量子力学方程
- I; P( Q& e0 o+ L, U, m
。电路技术也是一样。下边聊一下两个有意思的IP交换机原理和相应的电路。最
8 U% d: z& c" V6 S1 }+ t# \
后的实现很复杂,但其原理是可以可日常生活中大家最熟悉的交通系统来对应的。
. \: r3 b8 `8 v3 ~: M
1 R0 C& I4 e4 R- ~- m- K
1)交换机的VOQ技术.
$ L/ |; s6 c' r6 v2 P" k
! F) A' y( w [& o
交换机可以等效成为一个N口入,N口出的简单模型。再简化一下可以等效成一个口
/ Z$ p Q' U/ `2 G" g% t9 C
(称为接口A)入,N个口出的模型(图1)。一般从A口来的packet会在一个输入
% y- [1 L: X+ }% e1 I8 h
buffer里暂存一下,然后做header分析,lookup等操作来决定每个packet应该送到哪个目的口输出。
% p0 W- ~+ Q# p! s
$ M! D* g" {: k$ b1 z @- {' Y( ]
假设有这种情况:某个目的口(B)大家都朝它送traffic造成了堵塞,但这时其它
, s9 c5 e7 n% N$ n
目的口还是畅通的。 这时口A的buffer中送到口B的数据就要暂存一下直到口B解
) o: i8 \2 i# e' j$ w! e
除阻塞。而送到其它目的口的数据可以马上通过交换矩阵送出。可这时如果输入
) A: ]- B. v$ W) o2 y$ p' @! I
口A只有一个buffer,送到口B的packet先来的,这样后来的送到其它目的口的packet
, E: M& `3 R6 Z( K' @
被阻塞住了,即使它们的目的口是畅通的也送不出去。这种现象叫HOL(head of line
/ m9 t- Z/ m7 e. r) d) r2 J
blocking)。解决的办法可以借鉴交通道口的设计方式。
6 ~5 b+ u& X0 K* Q
5 T$ k% ^ z8 b7 v6 W
Fig1
! J0 R# Z3 z) y6 O" Q+ P
# }7 B' d; p* W8 j) h
g8 d& g* A. H6 B; ^9 c6 F
Fig2A
- G3 I+ d, A* n' [8 |: A* ~
* p! W6 E$ j: V" M
; Q/ f" E" b' ^$ Z5 }
Fig2B
8 s' S* [$ I% z5 j( g4 S
; ]4 D$ [( I* W) r5 ?
7 q( i( C* o- j9 w: I6 s
k9 c- i3 B: p& l' m0 J
Fig3
; P" a' G( ]- }+ S& a- }3 a
, z7 e: B$ Y* c, ?) _
我们看一下在图2A中所示的一个交通路口,南来的车道原来只有一条。想直行的
0 m# a' t' S4 p& Z" b
红色车由于是红灯等在了路口,虽然东西向的道路是畅通的,后边要右拐的车辆
( u, z# F8 }& B. k
也只好等在那。在图2B中,把南来的车道重新设计了一下。在路口前分出了几个
0 b5 _$ \7 t% N: W* p1 u
“缓冲车道”,每个方向一个或者若干个。这样即使出现上述情况,右转的车辆也
4 K5 _ L' L B) U( x- h
可以走了。在这里,东西北三个方向相当于交换机的目的口。南来的车道是口A。
3 q! z7 J& M( Y. Z% m
南来车道的packet进入道口区域后根据去的目的口,分别放入相应的buffer(车道)。
) X E2 n. i, I6 V6 K
这样就解决了前边提的HOL问题。
/ y; e2 N" I6 \' a3 P/ [
' z6 G' e! Y8 F4 [% i' d; C
在交换机的设计中这种思想叫做VOQ(virtual output queue,虚拟的输出队列)
4 O0 m o7 P \ ^- Y( U
。即在每个输入口,根据输出的目的地建立相应的缓存器(FIFO或Queue)。
) l8 Z4 _, a. r+ b1 F( G' n
实际应用中还可以再根据packet的不同的优先级来进一步细分成更多的queue,
_! x. q) _: G. ~& N' Y
来支持QoS及Diffserv等功能。如图3所示.
! P& d# B" Z/ j$ K' Q
# j, b9 e6 j. f! E, ?. p, J: P
电路设计时,一般是用一个大的DRAM来实现几千甚至几万以上的VOQ。DRAM一般
4 h( C% G( M8 A* M7 P% C, ~
分成一个个基本的小片,根据VOQ的大小和多少动态的分配若干片给每个VOQ。这
3 [6 |8 `6 _' y5 j9 L# W
就牵扯到存储片的分配,管理,回收,竞争等等。这时数据结构的一些思想可以
" W0 E% t9 f" i) T: H% J6 g6 T
应用到这里了。本人始终认为利用DRAM实现动态管理的FIFO是logic设计的最高
) E' @, E' v1 F
境界之一。
8 r* d4 G! {( W1 s B# |$ x
* x# d( W/ k; v, I2 N& D
2)交换机流量控制的Leaky Bucket技术
( t+ u5 w8 ]8 T, v
$ E, i2 g* _6 `3 x
我们经常听到运营商说你付多少银子给你多少带宽。尤其是那种Ethernet to
/ | C' l; H, [: U
home/building, 虽然传输带宽是100Mb/s但你实际得到的服务可能只是5M或者
$ O, w: H" Z, I3 Q
10M之类。这种功能在交换机实现上成为rate limiting,flow control,等等。
1 X; c3 x+ x2 z# O+ i9 [& z" O# |
这可以用高速公路入口的车辆控制来解释。
. m& q) F% d. `
( R6 U. x/ ~& y y! i; ]
美国的高速公路入口是这么设计的。入口处有一个或者几个信号灯,根据拥堵的
0 G: |/ B3 _9 {: a
情况每隔若干秒亮一次绿灯。每亮一次允许一辆车进入高速,以此达到控制流量
7 y. D( [5 ~( @
的目的。图4所示.
5 s% k+ `/ q/ P* A" t) Z
; Z/ `# V" a, u, P7 N2 i
& }+ {* X1 {! S3 Z9 f- ^6 Y
% B# x j$ p; Q* F! M6 w5 H
Fig4
1 Y: }; D j0 R+ W
3 `0 {$ N; @0 z: L& t3 H
5 a8 t; Z% z" k# ~
: ^8 j9 r6 O, F ]- T4 a
Fig5
! _6 K2 S/ _( C3 ^% p0 }3 o
, a- e& s) }. N$ l- |9 q% t, ?
这个原理可以用到交换机的流量控制上。图5所示的一个篮子,每隔一定时间T朝
$ X* S0 N+ T x8 X- o
里边扔进去一定数量N的硬币¥。篮子下边有个固定大小的口,硬币以一定的流
; {) K1 X9 ?1 M/ q. `: T( R
量漏出篮子。每流出一个硬币就可以放行一个packet。大家可以看出,通过控制
0 x" {* S# E. R3 G7 r
篮子漏口的大小就可以控制每个口进入(或者流出)交换机的数据流量.
) n4 f5 E0 R7 i( s3 G
) p( X( `) d! x% q+ g) w
packet是先在buffer中暂存的。如果某时间来了一串bursty的packet,也是先存
. F& o3 _3 s( n! u# `+ z2 B# \
在buffer里,再根据漏出的硬币一个个(或一次几个)把packet取出。这样也达
, n# I( B8 g( [' J
到了平滑数据流的作用。如果口开大了,放进篮子的硬币少或者更新的周期长,数据可能
7 t3 Y6 F6 c- n% x& q
从buffer中一次送一段后(bursty),停一段时间等篮子里有了新的硬币再继续送。调
4 ]) x/ `' n6 h4 I6 C6 c' y
节参数T/N/¥可以调节允许的流量和bursty的大小。更复杂点的流量控制还有
5 [& h. C c, _3 C# G. h
guaranteed bandwidth, best effort bandwidth等。这可以采用dual leaky
6 U( F9 ^' j( E* ]. v% ~5 ^
bucket实现。一个篮子管保证的带宽控制,另一个篮子管best effort(不保证
. { y) X0 C" G3 \
,只有在网路不阻塞时提供服务)。
0 o) d0 w& u/ q9 [. m; N( v
- @! i" j/ S: [2 S6 D
leaky bucket控制电路的设计其实就是一个计数器。这个计数器每隔一定时间T
+ l+ ^0 O' l( T0 d
赋一个值。之后每次减一。每减一次就允许一定数量的packet通过。减到0了就
% f1 A$ y* j# \% W) f* n
要等下一次计数器赋值。实际应用中可能比这复杂,但基本原理如此。
) l" f; V' c3 K' m" G0 w
' P- o& F/ a9 y
. v- b! t& R* T4 X# U+ m! r
当年上学看书学了不少数据处理交换机原理等,始终云里雾里的。尤其老师们总
# R3 B" _1 R3 Z& H
是卖力的介绍协议中每个bit的意义。做了几轮项目后,才领悟出交换机的好多
/ N9 T6 I8 g2 R( Y# P2 z
原理其实跟公路交通的设计类似。如果我去做教师教这门课,我会从交通系统讲
& H. i+ O4 c: E6 T7 l4 o
起。用集装箱和或者车皮的原理类比IP/ATM的packet和cell。道路路口的设计类
% Z) _( j6 w4 Y
比VOQ等输入/出口的数据处理。邮寄的快慢件处理类比数据优先级的处理。高速
3 E4 L- ?2 G- m# |
路汇入车辆的控制类比flow/rate control等等。复杂的系统,原理一定都是很
) U1 f3 ~* p' Y: Z6 x* x- s# v
简单的。只有简化到最简单的原理才算了解掌握。一开始千万不要被数学公式复
3 p4 X* A3 n3 z9 \2 q% o
杂的协议灌晕了。
8 B/ D4 j" F: |% a1 O8 a/ X
0 `3 | {* u( c0 Z) E" I
以前的漫谈:
" F3 @( {6 M; m
6 q! n# Z+ ~/ U; _9 @
3 L# T( D( |+ y% O* Z
电路设计漫谈之 1~9
6 \9 D/ i& N) Z- c
http://bbs.eetop.cn/thread-178347-1-1.html
) ~" i8 ~6 ~9 T8 F
# @0 P0 E! M0 }4 Y
+ P; i" V) D) i* r& f. J
电路设计漫谈之10: 接地(1)
7 o' o* W; [3 j c; Q0 B! a
http://bbs.eetop.cn/thread-197205-1-1.html
! o9 b T) q# o ^
, e/ I! c, ], s) S/ n+ _
电路设计漫谈之11:物联网大跃进
http://bbs.eetop.cn/thread-251965-1-1.html
5 h4 p; {8 ~9 s' q1 g/ H
- E! i+ W' |3 d9 \6 q
" D) g# L7 L8 V& z1 Z1 s
电路设计漫谈之12:高频喜欢低感抗,低频喜欢低(电)阻抗 - 再谈接地。
http://bbs.eetop.cn/thread-253126-1-1.html
[( p. F$ R" A
2 f5 F: W: z/ J% X6 y ]$ q
电路设计漫谈之13 - Accuracy/Precision 和数模系统的参数选择
6 m. a2 H" N1 C: H" ]$ C$ @9 A
http://bbs.eetop.cn/thread-257967-1-1.html
# ?( A( m z' C S
7 [5 {2 N1 X# a
; _! P! E0 P2 B+ o2 Q2 I( T# i0 R
电路设计漫谈之14 - 放大器漫谈
- E) }2 q; `) \. {
http://bbs.eetop.cn/thread-260935-1-1.html
$ B8 u4 D$ u" [
, X% |- i3 z. p4 H( j8 U
C/ H9 }: P, \5 p. }( i
电路设计漫谈之15 - 同步/异步设计及metastability
' H& P6 `5 x, N: g5 \+ m7 h* |
http://bbs.eetop.cn/viewthread.php?tid=262937&highlight=%B5%E7%C2%B7%C9%E8%BC%C6%C2%FE%CC%B8%D6%AE15
" T! _2 z2 l' w( }
4 t6 E2 J- a0 Z. J9 m
- f" h: B! [: ?, k* D/ ?; Z+ ~
电路设计漫谈之16 - (转贴)编程高手的故事和一些回忆http://bbs.eetop.cn/thread-287087-1-1.html
欢迎光临 EDA365电子工程师网 (http://bbs.elecnest.cn/)
Powered by Discuz! X3.2