找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 1|回复: 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)
3 r8 J1 v1 ~8 {/ f8 i& J( w' t% v2 V( w& W6 v  f
电路设计漫谈之17 - 两个有趣的IP交换机电路) G) @6 j+ _, u7 T6 a% `- E
, _. F! g4 C: P- G1 Y- O% I
有些很复杂的技术其原理大多时是很简单。但往往人们看看到的是问题解决的办法或实现
6 q  O" F( I; `/ v/ `1 l; r后的复杂样子,更糟糕的是对初学者或者初次从事该技术的工程师也从最后已经
: {5 x( S, _: [& w: n实现的技术和系统讲解起。这往往忽略了问题的本质和技术的本来面目。始终认
1 c1 x, n% ^& @% \, y' u8 O为学数学物理前应该先读一本数学物理的发展史,了解当时科学家们遇到了什么. i0 Q6 R4 i6 ]: F. r+ ^
问题,受什么启发才发展出了相应的理论。不要一开始就微积分,量子力学方程
, G1 c- `6 T! J0 c  R9 j' t。电路技术也是一样。下边聊一下两个有意思的IP交换机原理和相应的电路。最
1 u; X/ ~8 u1 \5 Z! V后的实现很复杂,但其原理是可以可日常生活中大家最熟悉的交通系统来对应的。
$ Y' y6 A  A, }9 H6 W* i7 r4 L# C& Z+ ^
1)交换机的VOQ技术.
, z& l" Y. ^0 v% Q  d4 W9 z
' w* X# ^* `: C2 p6 y8 c1 x4 i9 O交换机可以等效成为一个N口入,N口出的简单模型。再简化一下可以等效成一个口
5 c+ _1 O. s& [5 H6 {(称为接口A)入,N个口出的模型(图1)。一般从A口来的packet会在一个输入: i) L# j& j) V) _
buffer里暂存一下,然后做header分析,lookup等操作来决定每个packet应该送到哪个目的口输出。$ q1 `4 i( }1 C- W+ ?

8 l3 w/ o6 z. [& D7 U5 k% u假设有这种情况:某个目的口(B)大家都朝它送traffic造成了堵塞,但这时其它; w8 n/ ^6 |- T. I! f4 {: c
目的口还是畅通的。 这时口A的buffer中送到口B的数据就要暂存一下直到口B解+ e' V7 ]. C. n$ |. s
除阻塞。而送到其它目的口的数据可以马上通过交换矩阵送出。可这时如果输入2 F6 G0 `) \. A0 h
口A只有一个buffer,送到口B的packet先来的,这样后来的送到其它目的口的packet
+ n1 ^% ^+ P8 I( {4 I+ ?被阻塞住了,即使它们的目的口是畅通的也送不出去。这种现象叫HOL(head of line / P, S4 Q" N! k6 B' A
blocking)。解决的办法可以借鉴交通道口的设计方式。+ l- y8 l* z. D4 F
      
3 S5 I) p. |2 ^% ^: b' G        Fig1                                             
0 G7 b, x$ ]3 @2 X6 v4 v# b: ~' Y
$ g% b8 }! f1 M4 r. Z9 C
5 X  |  q1 z) L3 _( N7 ~% B) P     Fig2A  5 o0 o+ Z, q1 b7 I" i4 Z& c& P* r6 L
5 j' P( o7 u) L# o, v9 R; t5 u

( H' p! Y/ H( j- h1 c% z        Fig2B    & t( U, ?, ^$ X

+ }5 A& [. U- b+ q      & \( `$ a# E# J; x: B
2 O) f/ k* P6 f3 F% Z7 |
     Fig32 d5 R  J. k- i4 F9 }% V

- m2 T1 M" I% O0 G" |& }6 S我们看一下在图2A中所示的一个交通路口,南来的车道原来只有一条。想直行的
0 w0 @- q; {7 U! S0 ^红色车由于是红灯等在了路口,虽然东西向的道路是畅通的,后边要右拐的车辆
- B1 |# R: h; a" Z$ G) O; S3 F也只好等在那。在图2B中,把南来的车道重新设计了一下。在路口前分出了几个6 w' u; T+ j, s" M, k0 d2 S2 d+ `
“缓冲车道”,每个方向一个或者若干个。这样即使出现上述情况,右转的车辆也
! y# [3 M. Y/ m( I% f5 e& W可以走了。在这里,东西北三个方向相当于交换机的目的口。南来的车道是口A。
8 i" ]% A- x& V% L南来车道的packet进入道口区域后根据去的目的口,分别放入相应的buffer(车道)。
/ d" e  \7 r) f# [  G) d% z这样就解决了前边提的HOL问题。
# j9 m! r& k2 f8 @) _+ x$ Q/ D+ v  h4 K. Z# w
在交换机的设计中这种思想叫做VOQ(virtual output queue,虚拟的输出队列)0 L% g, @% g+ g, p
。即在每个输入口,根据输出的目的地建立相应的缓存器(FIFO或Queue)。3 M/ c% e) F4 C1 C: O4 h
实际应用中还可以再根据packet的不同的优先级来进一步细分成更多的queue,
. s& ~5 L) {& p0 H来支持QoS及Diffserv等功能。如图3所示.
' n: K: A$ S- h- s0 B% P+ [* E3 b5 G( L
电路设计时,一般是用一个大的DRAM来实现几千甚至几万以上的VOQ。DRAM一般
$ T( {, \' l( k( J6 O, X8 Z; A分成一个个基本的小片,根据VOQ的大小和多少动态的分配若干片给每个VOQ。这
  C7 Q- d5 l- s/ K, ?就牵扯到存储片的分配,管理,回收,竞争等等。这时数据结构的一些思想可以+ n. [9 M& B7 ?$ r- t5 |! t
应用到这里了。本人始终认为利用DRAM实现动态管理的FIFO是logic设计的最高
8 c& V, b% e- n) G5 ]境界之一。* _: u1 r* S! K& p  H) y& e

; B- W' Q0 n8 \8 V# h( K" J: y2)交换机流量控制的Leaky Bucket技术
: ]* b& g* k1 ]+ I8 b# y  e% A7 Z+ h1 F; `9 U
我们经常听到运营商说你付多少银子给你多少带宽。尤其是那种Ethernet to
0 U8 C7 p( }5 [3 z. K5 a# Ihome/building, 虽然传输带宽是100Mb/s但你实际得到的服务可能只是5M或者
4 C# x5 z6 F' u% ^/ q10M之类。这种功能在交换机实现上成为rate limiting,flow control,等等。
3 z1 a# u, d* {4 ~; j这可以用高速公路入口的车辆控制来解释。' M7 |1 V3 y1 a# c9 Z% G% k9 F
4 s  C# e1 M# K2 s" O' q
美国的高速公路入口是这么设计的。入口处有一个或者几个信号灯,根据拥堵的
# \" T9 E/ g& k4 t* q* E5 [情况每隔若干秒亮一次绿灯。每亮一次允许一辆车进入高速,以此达到控制流量7 k" i. T! H# b$ a
的目的。图4所示.( N3 y, Y9 \) H( k& ]. V9 z
        / [  J: r" P5 Q% b" f2 L
% ^1 l+ ]% z, M! V2 \9 ?4 f
: {( _) s- W1 h5 Q4 V
      Fig4         
( J  G/ w3 q2 k4 S7 P- v# X' f% d+ f0 e. ]2 d
                                
/ c: F' G# b& w; y6 y! [. ]  G5 k5 {
8 v* B$ }) a8 L0 d2 Y* `5 L4 j      Fig5. o& o$ @5 G% n

$ ~# \+ W; {! k1 {( M9 |. n8 H  T3 g这个原理可以用到交换机的流量控制上。图5所示的一个篮子,每隔一定时间T朝7 o& C: t3 I, u+ {" ^( G& Q! f
里边扔进去一定数量N的硬币¥。篮子下边有个固定大小的口,硬币以一定的流) |. [3 j& H# l- J9 k" V- b
量漏出篮子。每流出一个硬币就可以放行一个packet。大家可以看出,通过控制
/ p8 Q# G6 p, C4 z* ~  h; J+ D篮子漏口的大小就可以控制每个口进入(或者流出)交换机的数据流量.  `! j0 `7 V9 U+ J' |
( ]% ?/ w+ f  j2 w/ n. B8 d+ C9 Q
packet是先在buffer中暂存的。如果某时间来了一串bursty的packet,也是先存
4 P8 D  u+ A% D1 s在buffer里,再根据漏出的硬币一个个(或一次几个)把packet取出。这样也达
, D! V, o/ N9 U到了平滑数据流的作用。如果口开大了,放进篮子的硬币少或者更新的周期长,数据可能
+ d0 D* x; V3 p+ L+ g4 U' f) y从buffer中一次送一段后(bursty),停一段时间等篮子里有了新的硬币再继续送。调
% E) V# ~) ?- Q! v. ~节参数T/N/¥可以调节允许的流量和bursty的大小。更复杂点的流量控制还有
) ?4 F% R$ k3 j8 I  \; J3 N6 Tguaranteed   bandwidth, best effort bandwidth等。这可以采用dual leaky 9 @5 N  F. [7 J- y$ \0 ^, p
bucket实现。一个篮子管保证的带宽控制,另一个篮子管best effort(不保证! S1 M* d2 n' O8 `  G, d: `
,只有在网路不阻塞时提供服务)。
, \) ]0 v8 y( h; ^1 e/ z/ L$ n$ ?. ~2 x% P" u! G5 }) ~) ]
leaky bucket控制电路的设计其实就是一个计数器。这个计数器每隔一定时间T
4 q  H! F( `! z5 p% h赋一个值。之后每次减一。每减一次就允许一定数量的packet通过。减到0了就  h9 }6 ]; m  G2 ]
要等下一次计数器赋值。实际应用中可能比这复杂,但基本原理如此。: {/ Z6 F. {% M# e2 w% m* Q9 h. N

( V' u- b. d+ N! B: v: x$ p( c( K4 N& Y+ W
当年上学看书学了不少数据处理交换机原理等,始终云里雾里的。尤其老师们总2 c5 b! ^/ p6 T  M7 R2 Q6 D
是卖力的介绍协议中每个bit的意义。做了几轮项目后,才领悟出交换机的好多" ~# p0 k5 s! w! x  h* z8 s
原理其实跟公路交通的设计类似。如果我去做教师教这门课,我会从交通系统讲
5 [" x/ l7 W, B  |/ e. r起。用集装箱和或者车皮的原理类比IP/ATM的packet和cell。道路路口的设计类
. v  T. j) O/ H比VOQ等输入/出口的数据处理。邮寄的快慢件处理类比数据优先级的处理。高速
% b- i9 f+ k" i& T路汇入车辆的控制类比flow/rate control等等。复杂的系统,原理一定都是很
) @) R9 i' ^" r, J6 Y简单的。只有简化到最简单的原理才算了解掌握。一开始千万不要被数学公式复
# r$ e2 q) [! G% s( G7 M' J- n; p杂的协议灌晕了。9 t, q5 C9 |& G6 @7 q( w4 R$ W
+ N" Y: @. r, u
以前的漫谈:! [3 t' e' ~$ |  B1 T

$ J* b6 b9 ]: w/ B6 X
. A6 A2 E9 l, x' C; ]1 e
电路设计漫谈之 1~9, T3 |0 w4 J4 ~7 h) ^
http://bbs.eetop.cn/thread-178347-1-1.html  ]" K( ~6 C0 H( V% ], ]

; r8 m, M" H3 m" e# O
, Q- F+ s  W8 ^: n: ~+ w) m
电路设计漫谈之10: 接地(1)% ~' r( b8 [- H) H/ T
http://bbs.eetop.cn/thread-197205-1-1.html
' N- @0 f5 K* |
8 F. W! C& e* k0 A  o1 k电路设计漫谈之11:物联网大跃进http://bbs.eetop.cn/thread-251965-1-1.html1 r8 r6 ^! D  U0 B

, O- L& d, w) R8 F
& [; B" |+ u5 N电路设计漫谈之12:高频喜欢低感抗,低频喜欢低(电)阻抗 - 再谈接地。http://bbs.eetop.cn/thread-253126-1-1.html
# \9 |, Z: _( ]$ c& z  V
- ]& k  a1 O3 M电路设计漫谈之13 - Accuracy/Precision 和数模系统的参数选择
7 b, E: k; x# R* v  _( W& P! Jhttp://bbs.eetop.cn/thread-257967-1-1.html! C- C) L/ w( r) d, t
/ W' M9 r; L3 M( ?  w
$ q1 z" f; m& D6 d  a
电路设计漫谈之14 - 放大器漫谈% I& R; A4 J% U3 X0 T! q/ P
http://bbs.eetop.cn/thread-260935-1-1.html0 v" E5 }1 [: c/ b7 S; t
; s- Z& K  P6 S0 D
% G( t6 g& {& m) i" P- z
电路设计漫谈之15 - 同步/异步设计及metastability
3 o! ]& {  n3 i2 Zhttp://bbs.eetop.cn/viewthread.php?tid=262937&highlight=%B5%E7%C2%B7%C9%E8%BC%C6%C2%FE%CC%B8%D6%AE15

% b- n, ^, }1 t: g# @! M, I. T# p1 Q6 @
5 |6 b. ^. d6 V% I0 r
电路设计漫谈之16 - (转贴)编程高手的故事和一些回忆http://bbs.eetop.cn/thread-287087-1-1.html
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2025-4-9 20:30 , Processed in 0.054903 second(s), 32 queries , Gzip On.

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

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

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