找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 0|回复: 0
打印 上一主题 下一主题

[硬件] 电路设计漫谈之 - 两个有趣的IP交换机电路

[复制链接]

551

主题

1470

帖子

3万

积分

EDA365管理团队

Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

积分
39487
跳转到指定楼层
1#
发表于 2019-9-27 15:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您!

您需要 登录 才可以下载或查看,没有帐号?注册

x
(信息来源:EETOP BBS  作者:sun_ic)% a( S$ R& z) p9 r3 l, P

1 d0 ?' P# t: P. O: b电路设计漫谈之17 - 两个有趣的IP交换机电路
+ G/ s, t  g2 g1 F3 R- t8 Q7 Y5 V
# }  i1 v. H1 R1 G4 ~; x. v# I有些很复杂的技术其原理大多时是很简单。但往往人们看看到的是问题解决的办法或实现& [6 A. b, C$ K
后的复杂样子,更糟糕的是对初学者或者初次从事该技术的工程师也从最后已经5 m/ l- r1 v6 c+ O
实现的技术和系统讲解起。这往往忽略了问题的本质和技术的本来面目。始终认
9 s* E7 z1 s) i( j% ]; r9 e为学数学物理前应该先读一本数学物理的发展史,了解当时科学家们遇到了什么
$ n7 u$ v' g( g. U6 @0 R# C: V问题,受什么启发才发展出了相应的理论。不要一开始就微积分,量子力学方程
8 G- u6 \" L( g0 `* [2 T。电路技术也是一样。下边聊一下两个有意思的IP交换机原理和相应的电路。最
8 }( A: L: k  ?& ]8 U- ~后的实现很复杂,但其原理是可以可日常生活中大家最熟悉的交通系统来对应的。" Y) O) m. o- K8 ?. r
3 ]8 _4 F( s7 a3 w( P7 C
1)交换机的VOQ技术.
; d: [0 c+ |% a0 n  U. V* \) H$ A* u& v; }7 |# ?8 i
交换机可以等效成为一个N口入,N口出的简单模型。再简化一下可以等效成一个口
8 P1 k6 X, t5 }(称为接口A)入,N个口出的模型(图1)。一般从A口来的packet会在一个输入
# k' Z9 q+ M& E/ k1 V6 u* _. Abuffer里暂存一下,然后做header分析,lookup等操作来决定每个packet应该送到哪个目的口输出。
% Y. B6 X% z( j, P1 q5 `" ]* e4 w4 A* O% n$ E* Q
假设有这种情况:某个目的口(B)大家都朝它送traffic造成了堵塞,但这时其它  a5 h- _) m8 i! N% ^" I1 D
目的口还是畅通的。 这时口A的buffer中送到口B的数据就要暂存一下直到口B解4 }; @  R) D2 X
除阻塞。而送到其它目的口的数据可以马上通过交换矩阵送出。可这时如果输入, \( p: v0 f! C/ n0 H/ t/ N
口A只有一个buffer,送到口B的packet先来的,这样后来的送到其它目的口的packet  F' v# C6 _% v- \# z' g2 g) B
被阻塞住了,即使它们的目的口是畅通的也送不出去。这种现象叫HOL(head of line
, n( o+ N0 ~9 \2 i# I9 Z7 Hblocking)。解决的办法可以借鉴交通道口的设计方式。) ?6 H" `; f9 G
      
. E: }* t: U2 m6 h: O& Z        Fig1                                             + J3 F# [. H  X& J6 N, H
5 k, B- N8 T; R2 v( Y! I( h

: K7 E7 K4 i" t3 \     Fig2A  # {& n6 j6 I' x

: M5 ?7 m+ ~  H) w7 e& e; \3 a0 G
0 A5 |% ?* j/ Z6 e, o        Fig2B   
3 D) T% V% J8 Z* C  }9 j. N2 F( c+ v' X) w. \+ k
      
6 _0 S2 F1 m5 F% k& C; ?$ k4 K9 t8 A/ k: r) G9 k! _& L. y- B
     Fig3
  T: l" a$ a$ R5 V5 {
- M0 t' ^$ O* j5 R; K我们看一下在图2A中所示的一个交通路口,南来的车道原来只有一条。想直行的7 `9 @* j% F7 u# Z+ K
红色车由于是红灯等在了路口,虽然东西向的道路是畅通的,后边要右拐的车辆
- j- E: I) N8 p也只好等在那。在图2B中,把南来的车道重新设计了一下。在路口前分出了几个
+ B  p/ @; Q3 j" F* f“缓冲车道”,每个方向一个或者若干个。这样即使出现上述情况,右转的车辆也
, n" _/ t$ @; Q3 e可以走了。在这里,东西北三个方向相当于交换机的目的口。南来的车道是口A。3 e6 f+ r# F, I
南来车道的packet进入道口区域后根据去的目的口,分别放入相应的buffer(车道)。
/ R3 v! P8 M, K9 l% ?这样就解决了前边提的HOL问题。
; c* b! f' R- q4 ]3 ~
/ G1 `9 ?9 V$ E, t: |在交换机的设计中这种思想叫做VOQ(virtual output queue,虚拟的输出队列)" a3 Q  U- W) C: ]
。即在每个输入口,根据输出的目的地建立相应的缓存器(FIFO或Queue)。
8 y/ G/ z5 _" f4 j实际应用中还可以再根据packet的不同的优先级来进一步细分成更多的queue,7 X; D! |6 U7 D
来支持QoS及Diffserv等功能。如图3所示.
( U, i6 v' H+ V3 u' D% L9 x; x
, V0 O1 N3 B- o# s) ~, w* N电路设计时,一般是用一个大的DRAM来实现几千甚至几万以上的VOQ。DRAM一般
+ E+ A- U& U( u4 L+ g1 r分成一个个基本的小片,根据VOQ的大小和多少动态的分配若干片给每个VOQ。这" Z5 Z( @% C2 U$ X$ g
就牵扯到存储片的分配,管理,回收,竞争等等。这时数据结构的一些思想可以5 l& q  V  c0 v# M
应用到这里了。本人始终认为利用DRAM实现动态管理的FIFO是logic设计的最高
' v9 A: F; t- K境界之一。( z) h2 f8 k  Q

" }, k6 c: x% q8 x2)交换机流量控制的Leaky Bucket技术
! Z. N3 s' s" k9 P
& O1 D& s6 r9 e( x3 J7 u我们经常听到运营商说你付多少银子给你多少带宽。尤其是那种Ethernet to # b+ g) o# l. e0 w  H
home/building, 虽然传输带宽是100Mb/s但你实际得到的服务可能只是5M或者) t8 C4 f1 |( I- {8 q0 t5 A6 w
10M之类。这种功能在交换机实现上成为rate limiting,flow control,等等。
$ ^- @+ F& Q7 H( s这可以用高速公路入口的车辆控制来解释。  W. K6 X% T: Q$ Q7 r, M3 A, m% e

; G; @  I/ o+ V* }/ ?$ E6 Q美国的高速公路入口是这么设计的。入口处有一个或者几个信号灯,根据拥堵的4 a7 a& ~# Q, u+ z6 {: ~
情况每隔若干秒亮一次绿灯。每亮一次允许一辆车进入高速,以此达到控制流量) ^# ~8 ~1 J/ ^
的目的。图4所示.. ?' ^1 H# e2 b* n* x6 e
        0 q/ k( B8 j* b0 Z) i5 p8 ?0 O0 c
, P3 Z+ f: ^) i( T8 `/ o8 t
8 W* w2 m$ \: R  }: K
      Fig4         3 U6 O" a$ k* q+ i

% Y7 _+ ~. d! \3 h9 O& k                                $ b9 a; D- _& E" i

5 x0 Z: H* p4 y6 C. M+ N      Fig5- c, _# N4 S; A8 e. f* c
9 w3 G/ |& i( g) |% f* L2 y0 c
这个原理可以用到交换机的流量控制上。图5所示的一个篮子,每隔一定时间T朝
1 V, P) y, v) J/ F& W1 N3 m里边扔进去一定数量N的硬币¥。篮子下边有个固定大小的口,硬币以一定的流
0 R3 e/ F" z( q3 m$ I2 ]( L" ?+ n量漏出篮子。每流出一个硬币就可以放行一个packet。大家可以看出,通过控制5 m' V( T* J; x8 g( b! ~  B; M
篮子漏口的大小就可以控制每个口进入(或者流出)交换机的数据流量.
( l5 _$ L! k$ S; c* r7 O- X7 N9 U  L7 ?( p
packet是先在buffer中暂存的。如果某时间来了一串bursty的packet,也是先存
3 A7 O+ ]" ~  c在buffer里,再根据漏出的硬币一个个(或一次几个)把packet取出。这样也达
) ~& i. i5 v0 m  O0 C; ?  P; Y. f到了平滑数据流的作用。如果口开大了,放进篮子的硬币少或者更新的周期长,数据可能
. S9 p- v  E0 o5 M4 q9 ?9 B从buffer中一次送一段后(bursty),停一段时间等篮子里有了新的硬币再继续送。调
0 o5 X$ K& O. u& T节参数T/N/¥可以调节允许的流量和bursty的大小。更复杂点的流量控制还有
% O! P7 M/ {% U' r; ^6 A4 hguaranteed   bandwidth, best effort bandwidth等。这可以采用dual leaky , J3 S9 u' I3 \" L
bucket实现。一个篮子管保证的带宽控制,另一个篮子管best effort(不保证' a, A! k8 v* H) M: ]
,只有在网路不阻塞时提供服务)。+ g" X; D* J# K- G0 u+ G6 n) x0 B
- ^; Y6 u# n7 R) `1 \( @- z& `
leaky bucket控制电路的设计其实就是一个计数器。这个计数器每隔一定时间T
: F8 A- G& ]9 ~/ E* R+ o7 E& @赋一个值。之后每次减一。每减一次就允许一定数量的packet通过。减到0了就8 m: f  i" W" w8 A
要等下一次计数器赋值。实际应用中可能比这复杂,但基本原理如此。
5 K; g- e6 }7 ]5 a: G& L' V' x4 h. L% j# X& @2 S+ e
3 w. R  P5 J, C* \1 q; m, y
当年上学看书学了不少数据处理交换机原理等,始终云里雾里的。尤其老师们总
% x7 p/ Y+ p0 S0 }, [是卖力的介绍协议中每个bit的意义。做了几轮项目后,才领悟出交换机的好多9 x3 g1 w5 j6 l" A
原理其实跟公路交通的设计类似。如果我去做教师教这门课,我会从交通系统讲! [. i# i4 X0 l- k' ]
起。用集装箱和或者车皮的原理类比IP/ATM的packet和cell。道路路口的设计类8 r! L- o5 b+ x  h* G
比VOQ等输入/出口的数据处理。邮寄的快慢件处理类比数据优先级的处理。高速1 Y* U4 g  w% I1 ^# z
路汇入车辆的控制类比flow/rate control等等。复杂的系统,原理一定都是很$ o: ~) ]1 e# X5 q
简单的。只有简化到最简单的原理才算了解掌握。一开始千万不要被数学公式复1 o% c# b2 b7 `" E8 x4 h
杂的协议灌晕了。8 B- F% }, w! C( @3 k1 Y& y4 e

7 _% }/ {  Z" d  ?& }$ F. P$ |以前的漫谈:: G/ E( l& i6 X/ @! {* \
9 \! t$ X- L: ?, S6 y0 t) d
& A5 X# t/ P( C
电路设计漫谈之 1~9
  ^% K$ N$ H- x0 L. \" Bhttp://bbs.eetop.cn/thread-178347-1-1.html2 X0 C% A) k: S# I2 N

" u8 i+ M  y5 H& `7 F
5 X3 c) V: O: o, }
电路设计漫谈之10: 接地(1)
' @, [/ `0 t" e8 h' L" I* O4 ohttp://bbs.eetop.cn/thread-197205-1-1.html8 f/ a% u/ k3 o, C) N  x8 z
0 n$ f( A9 H8 r1 e2 B( b2 L" w
电路设计漫谈之11:物联网大跃进http://bbs.eetop.cn/thread-251965-1-1.html, q, `# }& {( C" R
1 t* R/ L% O; r( C7 v( x
1 g/ C2 f  ^' C/ x
电路设计漫谈之12:高频喜欢低感抗,低频喜欢低(电)阻抗 - 再谈接地。http://bbs.eetop.cn/thread-253126-1-1.html" N7 O8 q: M$ Y. [: G' H
3 B7 |+ W+ x& V; p0 O# o  o' u1 n" U
电路设计漫谈之13 - Accuracy/Precision 和数模系统的参数选择
/ k" @# {0 z# f( C' o3 whttp://bbs.eetop.cn/thread-257967-1-1.html
& z* A3 n6 Q7 K6 {- V% P& M5 q1 X' A7 B4 `

# O9 `, M# o$ i5 S: e电路设计漫谈之14 - 放大器漫谈5 Z1 |! u$ ^- p( k
http://bbs.eetop.cn/thread-260935-1-1.html% @' N3 s% t' p% q8 R* j

* r+ h: K9 v: W& _+ J, V
/ a7 |' i! g- p- v& B& Z电路设计漫谈之15 - 同步/异步设计及metastability
9 b; \/ [& x( x5 Y" H4 whttp://bbs.eetop.cn/viewthread.php?tid=262937&highlight=%B5%E7%C2%B7%C9%E8%BC%C6%C2%FE%CC%B8%D6%AE15
3 r& H+ y0 n* ?; e4 D
5 @1 z8 h! B7 E- q" ]

+ n2 Y8 x6 F& B7 I5 D电路设计漫谈之16 - (转贴)编程高手的故事和一些回忆http://bbs.eetop.cn/thread-287087-1-1.html
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2025-4-7 09:45 , Processed in 0.055596 second(s), 32 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表