IMPROVEMENT OF TCAM-BASED PACKET CLASSIFICATION ALGORITHM
- 格式:pdf
- 大小:244.37 KB
- 文档页数:7
tcam原理TCAM(Ternary Content-Addressable Memory)是一种高性能的存储器,具有快速的查找和匹配功能。
它可以在给定的时间内并行搜索多个存储单元,并返回匹配结果。
TCAM的原理可以通过以下几个方面来说明。
TCAM是一种内容寻址存储器,即根据数据内容来寻址存储单元。
与传统的RAM(Random Access Memory)不同,RAM是通过地址来寻址存储单元。
TCAM中的每个存储单元都有一个对应的比特串,称为标签。
当输入数据与某个存储单元的标签完全匹配时,该存储单元会被激活,输出相应的数据。
TCAM中的存储单元通常由三个状态表示:0、1和X(表示无关)。
这种三态逻辑使得TCAM可以进行三值逻辑的比较。
与传统的存储器不同,传统存储器只能进行二值比较,即0和1的比较。
而TCAM可以进行三值比较,即0、1和X的比较。
这使得TCAM在网络路由、防火墙等应用中具有更强大的匹配能力。
TCAM的查找过程是并行进行的,因此具有非常高的查找速度。
在传统的存储器中,查找操作需要逐个比较每个存储单元,直到找到匹配的数据为止。
而在TCAM中,所有存储单元都可以同时进行比较,只需要一个时钟周期即可完成查找操作。
这使得TCAM在高速网络设备中能够满足实时的数据处理需求。
TCAM还具有可编程的特性。
用户可以根据需要编程设置存储单元的标签和数据。
这使得TCAM能够适应不同的应用场景,提供灵活的匹配功能。
例如,在路由器中,可以根据IP地址、子网掩码等信息来编程设置TCAM的标签,从而实现高效的IP地址匹配。
然而,TCAM也存在一些局限性。
首先,由于TCAM的存储单元是并行比较的,因此其面积和功耗相对较大。
这使得TCAM在一些功耗敏感的应用中不太适用。
其次,由于TCAM的存储单元是固定的,因此其容量有限。
在一些大规模的应用中,可能需要多个TCAM进行级联扩展,增加系统的成本和复杂性。
TCAM是一种基于内容寻址的高性能存储器,具有快速的查找和匹配功能。
第24卷第2期2008年4月德州学院学报Journal of Dezhou U niversityV ol.24,N o.2Apr.,2008基于APPM 的TCM 码在无线光通信系统中的误码性能分析刘朋壶,李涛东,敖发良(桂林电子科技大学信息与通信工程学院,桂林 541004) 摘 要:把网格编码调制(TCM )引入到光脉冲幅度位置调制(APPM )中,研究其对无线光通信系统误码性能的改善.通过分析及对2×4-TCMA PPM 、4PPM 和2×8-TCMAPPM 、8PPM 分别进行MA TL AB 仿真,得到以下结论:在保持带宽不变的前提下,2×4-TCMAPPM 与4PPM 信息速率相同,但前者误码性能优于后者,且最大达到14.7dB ;2×8-TCMA PPM 的信息速率与8PPM 相同,但前者误码性能优于后者,且最大可达到11.7dB.TCM 确实能有效地改善系统的差错性能.关键词:脉冲幅度位置调制;网格编码调制;MA TL AB ;误码率中图分类号:TN911.3 文献标识码:A 文章编号:100429444(2008)022*******收稿日期:2008201220基金项目:军事预研项目(B00109)作者简介:刘朋壶(19742),男,湖南湘潭人,讲师,硕士,主要从事无线通信方面的研究.引言[1]近些年来无线激光通信研究成为研究的热点,由于PPM (脉冲位置调制)的高能量效率、高灵敏度和功率利用率而被广泛应用于无线光通信之中.网格编码调制(TCM )在不扩展带宽、不降低频带利用率,也不降低功率的情况下,能提高误码性能;A ×M -A PPM (脉冲幅度位置调制,A 代表幅度,M 代表位置)是对脉冲的幅度和位置进行混合调制来传递信息的.A PPM 继承了PPM 的高能量传输效率,且可以在不扩展带宽的情况下传递更大的码元.这使得A PPM 比PPM 更适合使用TCM (网格编码调制)技术,从而改善无线光通信系统的误码性能.文中将TCM 引入到光A PPM 系统中,设计出了TCM -A PPM 通信框图,对为什么在无线光通信中采用A ×M -A PPM 方案进行了详尽的分析,并对2×4-TCMA PPM 、4PPM 和2×8-TCMA PPM 、8PPM分别进行了MA TL AB 仿真,仿真结果表明:把TCM 引入光A PPM 系统中,确实能有效地改善系统的误码性能.1 系统模型[2-4]图1 基于无线光信道的光TCMAPPM 传输的系统模型图 图1是基于无线光信道的TCMA PPM 传输的系统模型图,输入二进制序列{a j }被编码、调制后转化为光能量信号X (t ).设传输信道对脉冲的响应函数为h (t )(对于图中的传输和接收系统为常数),功率谱密度为N 0的加性高斯白噪声(AWGN )N (t )是与X (t )独立的随机变量.接收端对每个码元的所有时隙进行积分,取最大值对应的位置,再对该位置脉冲的幅度进行判决得出幅度值,然后综合位置和幅度信息求得码元值,最后经过TCM 维特比译码恢复出比特信号{a j },在这里编码与调制以及译码与解调必须结合起来考虑.为了对加TCM 编码和不加TCM 编码的调制方案进行比较,定义信噪比为S N R =2P 2av R 2T cN 0(1)这里P av 、T c 分别表示平均光功率和脉冲持续时间,R 表示光电检测器的灵敏度.图2 PPM 和APPM 典型调制图a )4PPMb )APPM (2×4) 图2a )、b )分别是PPM 和A PPM 的典型调制例子,在M -PPM 调制中把k 个比特先转化为M (=2k )进制中的一个码元,把此码元对应的时间间隔分成M 个时隙,每个码元用一个不同的时隙来传送一个脉冲,因此有M 种可能的波形p k (t )=P p p T c (t -i T c )i ∈{0,1,…M -1}P T c (t )是幅度为1的矩形脉冲,脉冲宽度为T c =T s /M.脉冲平均功率和峰值功率的关系是P av =P p /MA ×M -A PPM 码元对应M 个持续时间为T c 的时隙,其中仅一个时隙有一个脉冲,脉冲幅度是A 种可能的幅度值之一,由脉冲的位置和幅度共同确定码元值.所以有A ×M 个码元波形p k (t )=j P p p T c (t -i T c ),j ∈{0,1,…,A },i ∈{0,1,…M -1}脉冲平均功率与峰值功率的关系是P av =P p (1+A )/2M2 A PPM 的带宽效率[2,4]传输脉冲信号所需的带宽与脉冲的宽度成反比.因此采用OO K 调制时,带宽就约等于比特速率R b ,那么比特速率为R b 的信号采用M -PPM ,所需的带宽为M R b /log 2M .假定码元之间是相互独立的,且出现的概率相等,则有如下的功率谱密度公式M -PPM :S PPM (f )=P (f )2T1-1M sin (πf T )sin (πf T/M )2(2)A ×M -A PPM :SA ×M -A P PM(f )=P (f )2(A ×M )TM∑Ai =1i 2-∑Ai =1i2(A ×M )sin (πf T )sin (πf T/M )2(3)根据以上两个公式可得出几个采用这两种调制的例子的功率谱密度图从图3可以看出,虽然M 值不63德州学院学报 第24卷 图3 当M 分别等于2和4时的M -PPM 和2×M -APPM 的功率谱密度图同,但M -PPM 和2×M -A PPM 的曲线几乎重合(对于A >2,也有同样的结果).因此,可以得出结论:把M -PPM 转化为A ×M -A PPM 几乎没有带宽的扩展;所以可以认为A PPM 的带宽也与脉冲宽度成反比.3 TCM 运用于光A PPM[2,4,5]传统的纠错方法是把调制和编码分开,这样往往导致带宽的增加,这对于带宽受限信道是不能接受的,比如对PPM 信号使用码率为1/2的卷积码,在没有编码的情况下2k -PPM 的脉冲宽度与比特宽度的关系为T c =k2kT b (4)而使用使用码率为1/2的卷积码后,则变为T c =k2×2kT b (5)假如带宽受限,根据前面的分析(脉冲宽度与带宽成反比),必须降低PPM 的维度;例如未编码的16-PPM 应变为编码的4-PPM ,未编码的64-PPM 应变为编码的16-PPM ,以阻止带宽的增加.这样平均功率将升高3分贝,也就意味着卷积码必须通过非常复杂的译码提供至少3分贝的编码增益,这是很难做到的.因此对于带宽受限信道,应该采用把调制和编码结合起来的调制方案:网格编码调制TCM.A ×M -A PPM 既能扩大M -PPM 的码元尺寸又不会增加带宽,可以很好的运用于TCM.根据网格编码调制的码元分割原则,得到了2×4-A PPM 和2×8-A PPM 的好码,并分别对4-PPM 、2×4-TCMA PPM (编码效率为2/3)和8-PPM 、2×8-TCMA PPM (编码效率为3/4)进行仿真.4 结论从图4和图5可以看出把TCM 编码引入A P 2PM 中,在保持带宽不变的前提下,2×4-TCMA P 2PM 与4-PPM 信息速率相同,但前者误码性能优于后者,且最大达到1417dB ;2×8-TCMA PPM 的信息速率与8-PPM 相同,但前者误码性能优于后者,且最大可达到1117dB.TCMA PPM 方案代替PPM 确实能有效地改善系统的误码性能;所以A ×M -A PPM 是一种简单有效的扩大PPM 码元尺寸从而更适合TCM 技术的方案.从图中还可看出2×4-TCMA PPM 误码性能优于4-PPM 的程度比2×8-TCMA PPM 误码性能优于8-PPM 的程度大,这是因为2×4-TCMA PPM 的冗余度高于2×8-TCMA PPM 的冗余度.参考文献:[1]柯熙政,席晓莉.无线激光通信概论[M ].北京:北京邮73 第2期 刘朋壶,等:基于A PPM 的TCM 码在无线光通信系统中的误码性能分析电大学出版社,2004.[2]R.Alve,A.Gameiro.Trellis Codes Based on Amplitudeand Position Modulation for Infrared WL ANπs[J].Am2 sterdasm,1999,5:2934-2938.[3]张宗橙.纠错编码原理和应用[M].北京:电子工业出版社,2003.[4]R.Alves,A.G ameiro.Coded Amplitude and Pulse Posi2tion for Inf rared WL ANπs[J].5th International Confer2 ence on Telecommunications,Zagreb,Croatia1999:15-17.[5]周海燕,敖发良.Turbo在光PPM通信系统中的性能分析[J].桂林电子工业学院学报,2002,22(3):1-4.BER Performance of Analysis of TCM Code B ased on APPM forOptical Wireless Communication SystemL IU Peng-hu,L I Tao-dong,AO Fa-liang(Guilin University of Electronic Technology,Guilin541004,China)Abstract:Trellis Coded Modulation(TCM)int roduced into A PPM in optical wireless communication sys2 tem,to find it s imp rovement of t he B ER performance of optical wireless communication system.Through a2 nalysis and MA TL AB simulation of2×4-TCMA PPM,4PPM and2×8-TCMA PPM,8PPM,result is t hat holding bandwidt h constant,The B ER of performance of2×4-TCMA PPM is above up to14.7dB times better t han4PPM as t heir information speed is t he same and t he B ER of performance of2×8-TC2 MA PPM is above up to11.7dB times better t han8PPM while t heir information speed is t he same.Conclu2 sion is acquired t hat TCM improves t he error performance of t hat system effectively.K ey w ords:A PPM;TCM;MA TLAB;error rate(上接第30页)参考文献:[1]V.Bo in,kic,V.Markovic′,M.Mateljevic′.Uniqueex t remalit y.[J].Anal.Math.1998,75:299-338. [2]kic.S t rebel points[J].Contemp.Math.211,A2mer.Math.Soc.Providence,RI,1997:417-431.[3] F.P.G ardiner,kic.Quasiconf ormal TeichmüllerT heory[J].Math Surveys and Monographs,2000,76: 32016.[4]H.Zhu,J.chen.On characteriz ations of unique ex t re2malit y.[J].Math.Anal.Appl,2002,273:283-293. [5]Guo Wu Yao,Y i Qi.S ome characeriz ations of uniqueex t remalit y[M].[6]李忠.拟共形映射及其在黎曼曲面中的应用[M]北京:科学出版社,1988.U nique Extremal Q uestion of T eichmüller SpaceWU Yan,WAN G Guang-lan(Depart ment of Mat hematics,Linyi Normal U niversity,Linyi Shandong276005,China)Abstract:It was shown t hat t here exist sμsuch t hatμhas non-constant modulus and is uniquely ext remal by Bo in et al.In t his paper,we give some equivalence conditions of unique ext remality forμwit h no n-constant modulus.In addition,some local p roperties of constant modulus Belt rami coeffcient s are given.K ey w ords:Teichmüller space;unique ext remality;Belt rami coeffcient83德州学院学报 第24卷 。
2021年2月第42卷 第2期计算机工程与设计C O M P U T E RE N G I N E E R I N GA N DDE S I G NF e b .2021V o l .42 N o .2基于分组T C A M 的T 比特高性能路由器快速查找更新技术刘宗宝,赵 鑫,张 力,李之乾,张 琨(中国航天科工集团第二研究院七〇六所,北京100854)摘 要:针对传统T C A M 查找更新方法复杂度高㊁无法满足高性能路由器线速查找转发需求的问题,提出一种基于分组T C A M 的路由查找更新技术㊂介绍T 比特高性能路由器的系统架构,提出基于分组T C A M 的路由查找更新架构,以及基于统计预测的预留表项空间算法,进行路由查找更新算法的设计㊂搭建测试验证环境,采用M A E -W E S T 和M A E -E A S T 路由表项数据,进行线速查找转发处理性能的分析测试㊂关键词:T 比特路由器;分组T C A M ;统计预测;查找更新;预留表项空间方法中图法分类号:T N 915.05 文献标识号:A 文章编号:1000-7024(2021)02-0343-06d o i :10.16208/j.i s s n 1000-7024.2021.02.007收稿日期:2019-10-21;修订日期:2020-11-02作者简介:刘宗宝(1988),男,山东泰安人,博士,高级工程师,研究方向为网络与计算机体系架构;赵鑫(1987),女,北京人,硕士,工程师,研究方向为计算机网络;张力(1985),男,陕西西安人,硕士,高级工程师,研究方向为网络与计算机体系架构;李之乾(1983),男,河南安阳人,硕士,高级工程师,研究方向为计算机体系架构;张琨(1987),男,山东青岛人,硕士,高级工程师,研究方向为计算机体系架构㊂E -m a i l :J A Y 7575@163.c o mF a s t l o o k u p a n du p d a t i n g f o r t e r a b i t r o u t e r b a s e d o nT C A M g r o u ps L I UZ o n g -b a o ,Z H A OX i n ,Z H A N GL i ,L I Z h i -qi a n ,Z H A N GK u n (I n s t i t u t e 706,S e c o n dA c a d e m y o f C h i n aA e r o s p a c e S c i e n c e a n d I n d u s t r y C o r p o r a t i o n ,B e i j i n g 100854,C h i n a )A b s t r a c t :T r a d i t i o n a l l o o k u p s c h e m e b a s e d o nT C A Mu s u a l l y n e e d s c o m p l e x u p d a t e o p e r a t i o n s d u e t o t h e p r e f i x -l e n g t h o r d e r i n gc o n s t r a i n t ,w h i c h c a n n o tm e e t t h ede m a n dof t e r a b i t r o u t e r .Af a s t l o o k u p a n du p d a t i ng m e th o d f o r t e r a bi t r o u t e rb a s e do n T C A M g r o u p sw a s p r o p o s e d .T h e a r c h i t e c t u r e o f t e r a b i t r o u t e r w a s i n t r o d u c e d ,a n d a l o o k u p a n d u p d a t i n g a r c h i t e c t u r e b a s e d o n T C A M g r o u p sw a s d e s i g n e d .W i t h t h e c h a r a c t e r i s t i c s o f p r e f i x d i s t r i b u t i o n ,a n e n t r y r e s e r v e d a l g o r i t h mb a s e d o n s t a t i s t i c a l p r e -d i c t i o nw a s d e s i g n e d .T e s t e n v i r o n m e n tw a s b u i l t t o v e r i f y p e r f o r m a n c e o f t h e p r o po s e dm e t h o dw i t h r e a l d a t aM A E -W E S Ta n d M A E -E A S T .K e y w o r d s :t e r a b i t r o u t e r ;T C A M g r o u p s ;s t a t i s t i c a l p r e d i c t i o n ;l o o k u p a n d u p d a t i n g ;s p a c e r e s e r v e dm e t h o d 0 引 言信息技术的发展推动核心路由器的线速转发率达到40G b ps 以上[1],路由查找是核心路由器实现高性能线速转发的关键技术㊂目前路由查找算法主要有软件查找算法和硬件查找算法,基于软件的路由查找方法需要多次内存操作才能完成路由查找,无法满足高速接口线速转发的要求㊂基于硬件的路由查找算法大多基于T C A M (t e r n a r y c o n t e n t a d d r e s s a b l em e m o r y)[2-4]技术实现,执行速度快,可以在一个时钟周期内完成路由表项的匹配查询,优先级编码器(p r i o r i t y en c o d e r ,P E )从多个匹配结果中选择最长前缀匹配(l o n ge s t p r ef i x m a t c h ,L P M )作为查找结果,因此T C A M 特别适合于高性能路由器,实现快速路由查找和转发㊂但是,传统T C A M 的更新性能较差[5]:路由表是动态变化的并且规模大幅增长,T C A M 中路由表项按照前缀长度降序排列,为保证路由表项的优先级,对路由表项的插入㊁删除等更新操作会造成大量的内存移动[6],最坏情况下的更新算法复杂度为O (N )(N 为T C A M 中的路由表项数量),导致路由查找性能大幅下降,无法满足高性能路由器线速查找转发的要求㊂针对T C A M 路由表项的更新算法国内外学者进行了大量的研究,提出了许多性能优化的算法,参见文献[7-9]等㊂P L O -O P T 更新算法是对选择移动更新算法的改进,即空闲前缀表项从T C A M 的底部移动到了T C A M 的中间,计算机工程与设计2021年因此一次更新操作最多需要L/2次(L是路由前缀的长度)路由表项移动㊂C A O_O P T更新算法把路由表转化为t r i e 树,只对同一条链路(从根节点到叶子节点)上的规则排序[10],一次更新操作最多需要D/2次(D是相互重叠的前缀的最大个数)路由表项移动㊂目前大部分基于T C A M 的路由表项更新算法都要求前缀表项按照前缀长度排序,时间复杂度高,影响了路由查找更新性能㊂为满足高性能路由器数据交换对快速路由查找功能的需求,本文提出了一种基于分组T C A M的T比特高性能路由器查找更新方法㊂1T比特高性能路由器系统架构T比特高性能路由器的系统架构为分布转发㊁集中控制,如图1所示,主要由热备份主控板㊁交换网板和多个接口业务板组成,各板之间通过高速背板总线互联㊂主控板是T比特高性能路由器的核心,完成以太网数据包处理㊁网络管理等功能,并为其它各板提供高精度的时钟源㊂交换网板具有高性能交换芯片,完成T比特级的高速数据包转发㊂接口业务板具有单独的控制系统,支持I P v4㊁I P v6㊁M P L S V P N㊁Q o s/H-Q o s㊁G R E㊁组播V P N等全业务功能㊂图1 T比特高性能路由器系统架构2基于分组T C A M的路由查找更新2.1路由查找更新架构本文提出的基于分组T C A M的路由查找更新架构如图2(a)所示,T C A M被分成几组T C A M1~T C A M m a x,每组内各T C A M表项的前缀互不相交,即T C A M i,jɣT C A M i,k=Ф,因此T C A M i(iɪ{1,m a x})是互不相交路由表项的集合,T C A M i中最多只有一个匹配前缀㊂m a x为路由表项前缀的最大长度,根据网络环境的不同可动态变化㊂由于在执行某项前缀的插入㊁删除等更新操作时,不需要对其它前缀进行操作,因此相比于传统T C A M,本文提出的路由查找更新架构的操作执行速度更快,算法复杂度低,高性能路由器的查找转发效率更高㊂本文提出的架构中还有一个T C A M e x为传统T C A M结构,用于存储无法放在T C A M i中的路由表项㊂选择逻辑基于最长前缀匹配算法(L P M)实现㊂图2基于分组T C A M的高性能路由器查找更新架构T C A M i(iɪ{1,m a x})和T C A M e x采用基于统计预测的预留表项空间设计,如图2(b)所示,灰色部分表示预㊃443㊃第42卷第2期刘宗宝,赵鑫,等:基于分组T C A M的T比特高性能路由器快速查找更新技术留的空间,预留空间大小由前缀的概率密度函数确定,对于T C A M i,前缀长度为m的表项预留空间为n i m= N T C A Mˑp d f m/(m a x+1),前缀为k的表项预留空间为n i k=N T C A Mˑp d f k/(m a x+1),详细计算过程在2.2.2节㊂通过基于统计预测的预留表项空间设计,有效减少了路由表项前缀的插入操作引起的其它表项的移动,路由表项更新效率大幅提升㊂2.2路由查找更新算法2.2.1搜索算法搜索算法基于最长前缀匹配(L M P)搜索技术,具体实现过程为:对于T C A M1~T C A M m a x,每个T C A M i独立地并行执行前缀匹配过程m a t c h(T C A M i,i p_a d d r),其中i p_a d d r为目的I P地址㊂由于T C A M i中的前缀互不相交,因此每个T C A M i中最多搜索到一个与i p_a d d r匹配的前缀;然后从多个匹配的前缀中选择e n t r y[k].l e n g t h 值最大的前缀,相应的e n t r y[k]即为i p_a d d r的路由查找结果,并返回路由转发表中相应的输出端口号(e n t r y [k].o u t p o r t)㊂如果所有T C A M i中没有匹配的前缀,前缀长度e n t r y[i].l e n g t h值为0,根据路由转发表中默认的表项信息进行转发㊂搜索算法的步骤如下:S e a r c h(i p_a d d r)(1)f o r i=1t o e x(2)e n t r y[i]=m a t c h(T C A M i,i p_a d d r)(3)e n d f o r(4)对于满足上述条件的路由表项e n t r y[i](iɪ{1,e x}),根据L M P原则,寻找kɪi,使得e n t r y[k].l e n g t h 值最大(5)r e t u r n e n t r y[k].o u t p o r t2.2.2基于统计预测的预留表项空间算法对于骨干网络,路由表项前缀的统计特性变化较小㊂基于统计预测的预留表项空间算法根据高性能路由器的历史表项数据,计算路由表项前缀的统计分布特性,进行预留表项空间的预测和分配,当有新的表项插入时,直接添加在预留空闲位置㊂算法步骤如下:(1)根据历史表项数据,计算长度为i的前缀的统计概率密度p d f i=N i N,其中N i是历史表项中长度为i的前缀数量,N是前缀的总数量;(2)计算长度为i的前缀的总预留空间大小n i= N T C A Mˑp d f i;(3)T C A M i中为长度为i的前缀预留大小为n i= N T C A Mˑp d f i/m a x+1的空间,路由表项动态更新时,新的路由表项直接插入预留空间内㊂2.2.3插入算法路由转发表中插入一个新的路由表项(前缀为p)的过程如下I n s e r t(p)函数所示㊂首先,从T C A M i~T C A M m a x中寻找出前缀p可以插入的所有T C A M i(iɪ{1,m a x}),要求前缀p与T C A M i中的任意前缀互不相交;如果存在满足上述条件的T C A M i,并且T C A M i中至少有一个空闲表项位置,标志变量a v a i l a b l e[i]值为t r u e;否则,前缀p的预留空间被占用,a v a i l a b l e[i]值为f a l s e㊂如果a v a i l a b l e[i]值为t r u e并且存在多个T C A-M i,插入函数i n s e r t_t o_t c a m()从可用的T C A M i中随机选择一个插入位置;如果a v a i l a b l e[i]值为f a l s e,则T C A M0~T C A M6中不存在可用的空闲表项位置,前缀p 插入传统T C A M e x㊂i n s e r t_t o_t c a m()函数对传统T C A M e x的插入操作需要满足传统T C A M的顺序约束,插入过程需要进行多次的内存移动;而T C A M1~T C A M m a x中的路由表项无顺序约束,因此对T C A M1~T C A M m a x的插入操作可在任意空闲位置执行㊂I n s e r t(p)(1)f o r i=1t om a x(2)I n i t i a l i z e a v a i l a b l e[i]=f a l s e(3)I f(对于任意的前缀e pɪT C A M i,p和e p是不相交的,并且T C A M i中有空余位置)(4)a v a i l a b l e[i]=t r u e(5)e n d i f(6)e n d f o r(7)i f(a v a i l a b l e[i]=f a l s e,对于任意的0ɤiɤm a x)(8)i n s e r t_t o_t c a m(p,T C A M e x)(9)e l s e(10)从a v a i l a b l e[i]中任意选取k,i n s e r t_t o_t c a m(p, T C A M k)(11)e n d i f2.2.4删除算法从转发表中删除前缀p的过程如下D e l e t e(p)函数所示㊂首先,需要寻找哪个T C A M含有前缀p(假设为k);然后,前缀可从T C A M k中删除㊂对于T C A M1~T C A M-m a x,删除过程不需要任何内存移动㊂对于传统T C A M,内存移动次数因更新算法的不同而有差异;如果相邻位置是空闲的,每次删除过程需要至少一次前缀移动操作㊂D e l e t e(p)(1)寻找k,使得pɪT C A M k(2)d e l e t e_f r o m(p,T C A M k)3实验验证与分析为验证本文提出算法的性能,搭建了测试验证环境,如图3所示,由T比特高性能路由器㊁S p i r e n t网络测试仪㊁以太网交换机㊁便携式P C机等组成㊂其中网络性能测试软件使用S p i r e n t公司的T e s t C e n t e rS T P-N11U,版本为v4.33.0086㊂㊃543㊃计算机工程与设计2021年图3 测试验证环境本文采用I P M A 的M A E -W E S T 和M A E -E A S T [11,12]路由表作为仿真数据来源,见表1㊂表1 仿真数据统计前缀数量插入删除M A E -W E S T 35217341141103M A E -E A S T43344342049140图4是数据1和数据2的前缀数量和内存移动次数关系,可以看出,96%的前缀只需要1次内存移动,仅有不到4%的前缀需要2次以上的内存移动㊂图4 前缀数量和内存移动次数关系分别采用本文提出的算法以及经典的P L O _O P T 算法㊁C A O _O P T 算法,计算M A E -W E S T 和M A E -E A S T路由表每次更新操作(插入㊁删除)的平均内存移动次数,结果见表2和表3㊂从对比结果可以看出,由于本文算法的路由表项没有顺序约束和优先级编码器,并且进行了预留表项空间的设计,对于插入和删除操作,本文算法的平均内存移动次数远小于P L O _O P T 算法和C A O _O P T 算法㊂由于传统T C A M e x 的存在,本文算法的插入操作和删除操作所需的平均内存移动次数不相同㊂需要指出,该算法以计算概率密度函数为代价,通过减少内存移动次数降低了路由表项更新的时间复杂度,但相比于频繁的内存移动操作,概率密度函数的计算复杂度较小㊂表2 不同算法每次更新操作的平均内存移动次数(M A E -W E S T )分组T C A M P L O _O P TC A O _O P T 插入删除0.210.163.561.05表3 不同算法每次更新操作的平均内存移动次数(M A E -E A S T )分组T C A M P L O _O P TC A O _O P T 插入删除0.190.164.11.02对采用本文提出的算法的T 比特高性能路由器的转发性能(吞吐量㊁时延)进行测试,测试中选用的数据包长分别为64㊁128㊁256㊁512㊁1024㊁1280㊁1518,测试时间为30s ,端口流量负载为100%,网络的转发方式选择F u l l m e s h e d 全双工对发㊂运行S pi r e n t 公司的T e s t C e n t e r R F 2544测试集,测试界面如图5所示㊂测试的T 比特高性能路由器的吞吐量及时延分别如图6㊁图7所示㊂可以看出,在以上7种数据包大小时,路由器的测试吞吐量与理论最大吞吐量吻合,包大小为1518b y t e s 时可达最大80G b ps 的线速转发,报文的丢包率为0㊂路由器的转发时延最大为6.12μs (包大小1518b yt e s )㊂测试结果表明,本文提出的算法可有效提高T 比特高性能路由器的线速查找转发性能㊂4 结束语针对传统T C A M 查找更新方法时间复杂度高㊁效率低的问题,以及T 比特路由器对高性能查找转发的需求,本文提出了一种基于分组T C A M 的路由查找更新架构,T C A M 被分成几组互不相交的路由表项的集合,路由表项不需要按优先级进行排序;提出了基于统计预测的预留表项空间算法,预留空间大小由前缀的概率密度函数确定,根据历史表项数据分配相应的空间大小㊂搭建了测试验证环境,测试结果表明,基于本文设计的T C A M 的内㊃643㊃第42卷 第2期 刘宗宝,赵鑫,等:基于分组T C A M 的T 比特高性能路由器快速查找更新技术图5 T e s t C e n t e r测试界面图6包转发吞吐量测试比较图7 系统转发时延比较存移动次数有效降低,T 比特高性能路由器可达最大80G b p s 的线速转发,转发时延最大为6.12μs ㊂因此,本文提出的基于分组T C A M 的T 比特高性能路由器查找更新技术,可有效提高T 比特路由器的查找转发性能,支撑未来网络发展的需要㊂由于T 比特路由器的动态变化特性,基于时变概率密度函数的预留表项空间算法是下一步的研究方向㊂参考文献:[1]Z h a n g B i n ,Q i n D o n g h o n g,D i a o X i n c h u n ,e ta l .E f f i c i e n t s e a r c h i n g w i t h aT C A M -b a s e d p a r a l l e l a r c h i t e c t u r e [J ].J o u r -n a l o f I n t e r n e tT e c h n o l o g y,2018,19(7):2215-2226.[2]M a W a n l i ,Z h a n g J i a n w e i ,T e n g F e i .A h yb r i dsc h e m ef o r r o u t i n g l o o k u p w i t h f a s t u pd a te sb a s e do nT C A M s [C ]//2n d I E E EI n t e r n a t i o n a lC o nf e r e n c eo n C o m pu t e ra n dC o m m u n i c a -t i o n s .I E E E ,2016:1985-1991.[3]W A N G H u i ,L I X i a o g e ,Z H A N G B i n ,e ta l .S u r v e y on T C A M -b a s e d p a r a l l e l I Pr o u t e l o o k u p s c h e m e [J ].C o m p u t e r A p pl i c a t i o n s a n dS o f t w a r e ,2016,33(7):139-144(i nC h i -n e s e ).[王辉,李晓歌,张宾,等.基于T C A M 的并行路由查找方案综述[J ].计算机应用与软件,2016,33(7):139-144.][4]S y e dF ,U l l a hZ ,J a i s w a l M K .F a s tc o n t e n tu p d a t i n g a l go -r i t h mf o r a n S R A M -b a s e dT C A Mo n F P G A [J ].I E E EE m b e d -d e d S ys t e m s L e t t e r s ,2017,10(3):73-76.[5]Z H A N G W e n y u a n .D e s i g n a n d i m p l e m e n t a t i o n o f T C A Mu pd a -t i n g a l g o r i t h m [D ].Be i j i n g :U n i v e r s i t y o fC h i n e s eA c a d e m y of S c i e n c e s ,2016:1-9(i nC h i n e s e ).[张文远.T C A M 更新算法的设计与实现[D ].北京:中国科学院大学,2016:1-9.][6]M A W a n l i .R e s e a r c ha n di m p l e m e n t a t i o no fe f f i c i e n tr o u t i n gs c h e m eb a s e do n T C A M [D ].D a l i a n :D a l i a n U n i v e r s i t y of T e c h n o l og y,2017:1-24(i n C h i n e s e ).[马万里.基于㊃743㊃计算机工程与设计2021年T C A M的高效路由方案研究与实现[D].大连:大连理工大学,2017:1-24.][7]A y y i l d i zN,S c h m i d tE G,G u r a n H C.S-D I R E C T:S c a l a b l ea n dd y n a m i c a l l y r e c o n f i g u r ab l e T C A M a rc h i t e c t u r ef o rh i g h-s p e ed I P l o o k u p[J].T h eC o m p u te r J o u r n a l,2015,58(6): 1443-1455.[8]C h a n g D Y,W a n g P C.T C A M-b a s e dm u l t i-m a t c h p a c k e t c l a s s i-f i c a t i o n u s i ng m u l t i d i m e n s i o n a l r u l e l a y e r i n g[J].I E E E/A C M T r a n s a c t i o n s o nN e t w o r k i n g,2015,24(2):1125-1138.[9]V a g i o n a sC,M a n i o t i sP,P i t r i sS,e ta l.I n t e g r a t e do p t i c a lc o n t e n t ad d re s s a b l em e m o r i e s(C A M)a n do p t i c a l r a n d o ma c-c e s sm e m o r i e s(R A M)f o r u l t r a-f a s t a d d r e s s l o o k-u p o p e r a t i o n s[J].A p p l i e d S c i e n c e s,2017,7(7):1-18.[10]H s uP C,S u nY H.M u l t i-i n h e r i t e d s e a r c h t r e e f o r d y n a m i c I P r o u t e r-t a b l e s[J].I E E E T r a n s a c t i o n so nC o m p u t e r s,2017, 66(1):114-126.[11]M e r i t N e t w o r k s,I n c.T h e I P M A(i n t e r n e t p e r f o r m a n c em e a s u r e m e n t a n da n a l y s i s)p r o j e c t[E B/O L].[2020-01-30].w w w.m e r i t.e d u/i p m a.[12]X UZ h o u b o,H U K u i,C H A N G L i a n g,e t a l.R o u t i n g l o o-k u p a l g o r i t h mb a s e d o n a l g e b r a i c d e c i s i o nd i a g r a m[J].C o m-p u t e r E n g i n e e r i n g,2017,34(3):99-104(i nC h i n e s e).[徐周波,胡魁,常亮,等.基于代数决策图的路由查找算法[J].计算机工程,2017,34(3):99-104.]㊃843㊃。
FACT SHEETSJA1110 The SJA1110 automotive Ethernet switchfamily offers innovative and dedicated safetyand security features designed for optimalintegration in auto ECUs. The four switchvariants enable modular ECU design andplatforms and support different automotiveapplications such as gateways, ADAS boxes,and infotainment ECUs.KEY FEATURES• I ntegrated 100BASE-T1 and 100BASE-TX PHYs• Integrated Arm® Cortex®-M7 based core• Best-in class packet inspection and DoS preventioncapabilities• Advanced secure boot capabilities• Purpose built functional safety features• Support for Wake-over-Ethernet (OPEN TC10)• Rich set of Time-Sensitive Networking (TSN) standards• Rich set of NXP original AVB and AUTOSAR® software• System solution with S32G Vehicle Networking Processorand VR5510 power management unitSJA1110 ETHERNET SWITCH BLOCK DIAGRAMENABLEMENT• Production-grade Software Development Kit (SDK)• Native integration with NXP Design Studio IDE• Production grade AUTOSAR drivers• Production grade AVB/802.1AS synchronization protocol middleware• Evaluation board compatible with NXP’s Smart Application Blueprint for Rapid Engineering (SABRE)• Linux® DriversSJA1110 TSN ETHERNET SWITCH/SJA1110NXP and the NXP logo are trademarks of NXP B.V. All other product or service names are the property of their respective owners. Arm and Cortex are trademarks or registered trademarks of Arm Limited (or its subsidiaries) in the US and/or elsewhere. The related technology may be protected by any or all of patents, copyrights, designs and trade secrets. All rights reserved. © 2022 NXP B.V.Document Number: SJA1110AUTESFS REV 1NETWORKING APPLICATIONS • Optimized NXP chipset solution with S32G processor enables unmatched routing, firewalling, intrusion/detection/prevention capabilities • Best-in-class TCAM-based frame inspection for IDPS support, DOS prevention and advanced frames management • BOM optimization features include compatibility with VR5510 PMIC, four pin-compatible variants and optimized cascaded configurationADAS APPLICATIONS• Functional safety-dedicated features improving ECU safety design • Safety manual enable optimized safety design up to ASIL-D ECUs • Automotive Grade 1 (-40 / +125° C) capability for optimized PCB design • High-SGMII count for EMC friendly design • Production-grade AUTOSAR drivers• Compatible with TTTEch ® MotionWise ® middleware INFOTAINMENT/CLUSTER APPLICATIONS• Multi-gigabit SGMII for external Gigabit and Multi-Gigabit PHYs • Autonomous operation support avoids dependency from untrusted external host • Avnu ®-Certified* AVB/gPTP stack for integrated controller• Support for Wake over Ethernet (OPEN TC10)• Integrated controller with programmable GPIOs。
TC2.0错误提示(C目信息)Call of non-function调用非函数Call of clipper procedure of function调用的函数没有原型Call of function 'xxxx' with no prototype调用的函数'xxx' 没有原型Can't cast objects as "far""far" 关键字不能用在类型强制转换中Can't cast objects as "near""near" 关键字不能用在类型强制转换中Cannot find file无法找到该文件Cannot generate COM file :data below initial CS:IP defined无法生成COM 文件,初始CS:IP已定义过Cannot generate COM file :invalid initial entry piont address无法生成COM 文件,初始入口点地址无效Cannot generate COM file :program exceeds 64K无法生成COM 文件,程序超过了64KCannot generate COM file :segment-relocatable items present无法生成COM 文件Cannot generate COM file :stack segment present无法生成COM 文件Cannot grow LE/LIDATA record buffer不能建立LE/LIDATA 记录缓冲区Cannot have mulitiple paths for implicit rule在隐式规则中,不能有多个路径Cannot have path list for target不能有目标路径表Cannot initialize indetiifer skip to这里无法初始化一个类成员Cannot modfiy a const object不能修改一个const目标Cannot overload /main/main 主函数不能重载Cannot use reserved DOS device name for file不能使用保留的DOS 设备名Cannot use tiny or luge memory model with windows不能使用小或大的内存模式窗口Cannot write GRPOEF list,extended dictionary aborted 不能写GRPOEF 列表,扩展字典中断Case bypasses initialization of a local variable跳过局部变量初始化是非法的Case expression not constantcase 语句的表达式不是常量Case expression not integralcase 语句的表达式不是整型Case of "viiod" term to non-viodviod类型不能被强制转换成任何其他类型Case outside of switchcase 或case 语句在switch 语句外面Case statement missing ':'case 语句缺少':'Case syntax errorcase 语法错Case to array type is illegal不能被强制转换为数组类型Case to function returning... is illegal不能被强制转换为函数类型Case value "n" already usedcase 情况值n 已使用过Character already used指定的关键字表标识符已经在使用Character constant must be one or two character long 字符常量须是一个或两个字符长Character constant too long字符常量太长Character 'K' and 'k' cannot be used不能使用字符'K' 和'k'Circular dependency exists in makefile在makefile中已存在循环依赖Class may not contain pure function(class) 类不可以包含纯函数Class member declared outside its class(case) 类成员函数不能在类说明里说明Code has no effect操作符代码无用Colon expected ':'需要':'Command argument too long命令参数太多Command syntax error命令语法错误Compiler could not generate Copy constructor for Class 编译器不能生成所需的拷贝构造函数Compiler could not generate Default constructor for Class 编译器不能生成所需的缺省构造函数Compiler could not generate oprator = for Class编译器不能生成所需的赋值运算符Compiler error (assertion) :filename,line n source = filename编译程序错误(一致性)文件名,文件,行号,源=文件名Compiler error (code engenration)编译程序错误(代码不能生成)Compiler limit too many actual parameters for macro编译程序限制: 宏的实参数太多Compiler limits : Initializers too deeply nested编译程序限制: 初始值镶嵌太深Compiler limit : struct / union nesting编译程序限制: 结构/联和嵌套Compiler table limit exceeded编译器内部表之一溢出Compound statement missing }编译器一直到文件结束也没找到}Compound statement missing '}'复和语句缺少}Condition is always falseCondition is always true条件总是假或条件总是真Conflicting type modfilers类型修饰符相冲突Const expression required数组长度须用常量定义Constant expression is not integral此处需要一个整数型常量表达式Constant expression required要求常量表达式Constant is long常量太长Constant member in class without constructors类的常量成员没有包含用户的构造函数Constant member is not initialized常量成员没有被出始化Constant out of range in comparision在比较中常数超界常量表达式超出了比较的范围Constant variable must be initialized可变常数须出始化Constructor cannot be declared const or volatile不能把构造函数说明为const或volatileConstructor cannot have a return type specification构造函数不能有一个返回类型说明Constructor is not a base class of classconstructor 不是class 的一个基类Context member already used in \[MAP]\ section上下文号在\[MAP]\ 节中被使用Context string name already assigned an alias指定的上下文串已被加了别名Context string already used in file上下文串在文件内已使用过Context string cannot be used alias别名字符串不能使用上下文件字符串Context string defined for index topic is unresolved为索引标题定义的上下文串是不可分解的Context string identifier already defined in topicof上下文串标识符在文件主题中已被定义过Context sting in MAP section not defined in any topic主题内定义MAP 节的上下文串Context string missing丢失了上下文串Conversion may lose significant digits转换操作可能丢失了有效值Conversion operator canot have a reutrn type specification 转换运算符不能有返回类型说明Conversion to type will fail for members of virtual base没有成员指针的类包含虚拟基,转换为另一类型将失败Could not allocate memory for per module data不能为每一个模块数据分配内存Could not create list file不能创建列表文件Could not find a match for argument(s)不能找到与提供的参数相匹配的函数Could not fined 'xxx.xxx'不能找到文件'xxx.xxx'Could not found file不能找到命令行里给出的文件Could not write executable不能写输出文件Couldn't get LE/LIDTA record buffer不能找到LE/LIDTA 记录缓冲区Coversion may lose significance digit bit转换可能丢失有效数据位Current font range overlaps previosly defined range 当前字体范围覆盖了前面定义过的范围。