基于离散事件的交换单元仿真系统及方法技术方案

技术编号:15942630 阅读:106 留言:0更新日期:2017-08-04 23:50
本发明专利技术公开一种基于离散事件的交换单元仿真系统及方法,主要解决现有技术仿真复杂度高,实现周期长的问题。其实现方案为:首先根据离散事件仿真机制设计二维事件链表和事件调度器,用于推动系统仿真;然后设计交换单元的一般组成模块;接着,根据模块的功能逻辑行为;设计具体的事件流程;再根据事件流程,用软件语言实现各种事件以及事件关系;最后调用事件调度器模块进行仿真,并调用性能统计模块统计各种性能参数。本发明专利技术缩短了交换单元的软件仿真时间,降低了仿真复杂度,为交换单元的方案设计提供了可靠的依据。

【技术实现步骤摘要】
基于离散事件的交换单元仿真系统及方法
本专利技术属于仿真
,特别涉及一种对交换单元的仿真技术,可用于网络设备。
技术介绍
信息技术的快速发展,对网络中的设备如路由器、交换机等提出了更严格的要求和更多的需求。而交换单元一直是网络设备中至关重要的一个节点,起到了连接链路、传输数据等关键作用。随着网络中数据流量的不断增加和业务越来越多种多样,交换单元的结构也变得越来越复杂。这同时也给交换单元的设计实现带来了更高的要求。因此如何在交换单元实现之前对设计方案进行仿真验证显得尤为重要。研究一款交换单元的步骤主要有分析需求、设计方案、软硬件仿真、方案修改、硬件实现、测试等组成。而软硬件的功能仿真在方案修改和硬件实现之前,起到了铺垫的作用。通过分析仿真结果,能够得到所设计的交换单元的各个性能参数,及时发现设计中的不足,对方案修改起到关键的指导作用。而硬件仿真和实现的周期一般都很长,所以对于软件仿真的要求主要包括程序运行时间短、易于扩展等。如果能够实现高效的软件仿真,将会大大缩短交换单元的设计实现周期,而且板级验证的结果还可以用于和软件仿真结果互相对比验证,从而改进软件仿真。硬件仿真一般借助ModelSim仿真实现,仿真过程采用Verilog语言编程,开发周期长,受时钟的限制比较大。硬件验证语言还有SystemC和SystemVerilog,它们的仿真验证更加接近于硬件实现,甚至是细化到时钟级别,而软件仿真不需要细化到时钟级别。近几年主要流行的软件仿真平台有Opnet、NS2等。其中NS2是一种面向对象的网络仿真器,本质上是一个离散事件模拟器。OPNET是一个网络仿真技术软件包,能够准确地分析复杂网络的性能和行为,能为用户提供一系列的仿真模型库。而Opnet和NS2仿真平台主要用于网络协议的仿真,交换单元内部的数据流动过程和网络协议差别大,而且这两个仿真平台仿真复杂度高,实现周期长,导致交换单元的方案得不到及时的验证,增加了交换单元的开发成本。
技术实现思路
本专利技术的目的在于针对上述软件仿真平台的不足,提出一种基于离散事件的交换单元仿真装置及方法,以减小仿真平台的复杂度,缩短仿真周期,获取交换单元的各个性能参数,降低交换单元的开发成本。本专利技术的技术方案是这样实现的:一、技术原理离散仿真机制就是在离散时间点上对系统进行仿真,分析方法采用的是数值方法,而不是通过解析。离散仿真会产生一系列的系统快照来表示系统随时间的变化。该机制中能够确保仿真事件按照正确的时间次序发生的依照就是二维事件链表。该机制中二维事件链表能够确保仿真事件按照正确的时间次序发生。在二维事件链表中,事件是按照发生时间顺序排列的,它包括了所有事先安排的即将要发生的事件,在任一时刻t,这些事件的发生时间都满足:t<t1≤t2≤t3≤…,其中t1,t2,t3表示即将发生的事件的发生时间,在当前的事件处理完成后,仿真时间就会推进到下一个时刻t1,即让系统时间变为t2;然后从事件链表中取出发生时间为t1的事件,并按照事件说明执行相应的逻辑;执行完之后,继续推进到t2时刻;这个过程一直重复到事件链表中没有事件可执行或者系统仿真结束时间到达为止。二维事件链表的两个维度分别是时间和同一时间下事件的执行顺序,逻辑结构图如图1所示。在二维事件链表中,相同时刻的事件被组成一个事件队列,然后不同时刻的事件队列按照时间顺序排列成一个事件队列链表。在二维事件链表中搜索元素的时候,首先根据时间搜索到相应的事件队列,然后在事件队列中查找到所需的事件。如果要在二维事件链表中插入一个新的事件,该事件的发生时间为t*,则一般的步骤如下:a.判断是否存在仿真时间为t*的事件队列,如果存在则转到步骤b,否则转到步骤c;b.在对应的事件队列尾部插入该新事件,插入结束;c.构造新的事件队列,设置该事件队列的时间为t*,再把新的事件插入到该事件队列的尾部,然后将该队列按时间顺序插入到事件链表中,结束插入。该离散事件仿真机制,为交换单元的软件仿真提供了思路。二、技术方案根据上述仿真机制,本专利技术基于离散事件的交换单元仿真系统,包括:二维事件链表1,用于存放交换单元数据流通过程中产生的事件;事件调度模块2,用于从二维事件链表中取出事件,按照事件内容调用相应模块执行相应操作,并将在事件内容被执行过程中产生的新事件添加到二维事件链表1中;数据源模块3,用于产生进入交换单元传输的数据帧,并将该数据帧提供给输入轮询模块4;输入轮询模块4,用于轮流查询每个输入端口的数据帧,并将数据帧传送给分组处理模块5;分组处理模块5,用于提取数据帧的帧信息,传输给入队调度控制模块7;队列管理6,用于提取数据帧的帧信息,构造相应的虚拟输出队列VOQ;入队调度控制模块7,用于分配缓存地址,实现数据帧的逻辑入队,同时生成接收调度信息,控制接收总线控制模块8的搬移操作;接收总线控制模块8,用于提取入队调度控制模块7生成的接收调度信息,并将数据帧从分组处理模块中的乒乓RAM搬移到共享缓存;发送轮询模块9,用于生成出队调度信息,传输给出队调度控制模块10;出队调度控制模块10,用于提取发送轮询模块生成的出队调度信息,生成发送调度信息,传输给发送总线控制模块11;发送总线控制模块11,用于提取发送调度信息,并将数据帧从共享缓存搬移到交叉节点缓存中;输出控制模块12,用于查询交叉节点缓存,将数据帧从交叉节点缓存中搬移到输出端口;性能统计模块13,用于统计各个数据帧进入各个模块的时间,并统计交换单元的吞吐率和时延性能。根据上述仿真机制,本专利技术基于离散事件的交换单元的仿真方法,包括:1)设计事件流程:1a)根据模块逻辑操作中所涉及的数据和数据结构,确定存放这些数据的存储器类型;1b)根据模块行为的发生规律,确定该模块行为的事件流程类型;1c)根据事件划分标准,将模块的逻辑操作划分成多个事件;1d)根据每个事件之间的逻辑关系,将每个事件用箭头串联,形成事件流程;1e)获得有关联关系的事件之间的时间间隔ti,把时间间隔加到事件之间的关系箭头上,形成完整的事件流程;2)根据事件流程,用软件语言定义事件,体现事件流程中事件之间的关系;3)调用事件调度模块把初始事件添加到二维事件链表中,设置仿真结束时刻;4)调用事件调度模块对二维事件链表中的事件进行调度,其过程如下:4a)获取交换单元系统仿真的结束时刻Te;4b)事件调度模块从二维事件列表中取出一个事件E,将仿真当前时刻Tn设置为事件E的属性发生时间t;4c)判断仿真结束时刻Te和当前时刻Tn的大小关系,如果Te大于等于Tn,则进入步骤5d;如果Te小于Tn,则进入步骤4f;5d)根据事件E的内容调用相应模块进行操作,并将该事件从二维事件链表中删除,删除后如果其所在的事件队列为空,则将该事件队列从二维事件链表中删除;5e)判断二维事件链表中是否还存在事件队列,如果存在事件队列,则返回步骤4b,如果不存在事件队列,则进入步骤4f;5f)结束仿真,调用性能统计模块统计性能参数,根据性能改进交换单元的设计方案。本专利技术与现有技术相比,具有以下优点:第一、仿真的复杂度,缩短了仿真时间。以往的交换单元软件仿真主要以时隙为时间单位,而时隙的划分在不同的交换单元设计中又不相同,而且时隙越多,仿真的复杂度越高且时间越本文档来自技高网
...
基于离散事件的交换单元仿真系统及方法

【技术保护点】
一种基于离散事件的交换单元仿真系统,包括:二维事件链表(1),用于存放交换单元数据流通过程中产生的事件;事件调度模块(2),用于从二维事件链表中取出事件,按照事件内容调用相应模块执行相应操作,并将在事件内容被执行过程中产生的新事件添加到二维事件链表(1)中;数据源模块(3),用于产生进入交换单元传输的数据帧,并将该数据帧提供给输入轮询模块(4);输入轮询模块(4),用于轮流查询每个输入端口的数据帧,并将数据帧传送给分组处理模块(5);分组处理模块(5),用于提取数据帧的帧信息,传输给入队调度控制模块(7);队列管理(6),用于提取数据帧的帧信息,构造相应的虚拟输出队列VOQ;入队调度控制模块(7),用于分配缓存地址,实现数据帧的逻辑入队,同时生成接收调度信息,控制接收总线控制模块(8)的搬移操作;接收总线控制模块(8),用于提取入队调度控制模块(7)生成的接收调度信息,并将数据帧从分组处理模块中的乒乓RAM搬移到共享缓存;发送轮询模块(9),用于生成出队调度信息,传输给出队调度控制模块(10);出队调度控制模块(10),用于提取发送轮询模块生成的出队调度信息,生成发送调度信息,传输给发送总线控制模块(11);发送总线控制模块(11),用于提取发送调度信息,并将数据帧从共享缓存搬移到交叉节点缓存中;输出控制模块(12),用于查询交叉节点缓存,将数据帧从交叉节点缓存中搬移到输出端口;性能统计模块(13),用于统计各个数据帧进出各个模块的时间,并统计交换单元的吞吐率和时延性能。...

【技术特征摘要】
1.一种基于离散事件的交换单元仿真系统,包括:二维事件链表(1),用于存放交换单元数据流通过程中产生的事件;事件调度模块(2),用于从二维事件链表中取出事件,按照事件内容调用相应模块执行相应操作,并将在事件内容被执行过程中产生的新事件添加到二维事件链表(1)中;数据源模块(3),用于产生进入交换单元传输的数据帧,并将该数据帧提供给输入轮询模块(4);输入轮询模块(4),用于轮流查询每个输入端口的数据帧,并将数据帧传送给分组处理模块(5);分组处理模块(5),用于提取数据帧的帧信息,传输给入队调度控制模块(7);队列管理(6),用于提取数据帧的帧信息,构造相应的虚拟输出队列VOQ;入队调度控制模块(7),用于分配缓存地址,实现数据帧的逻辑入队,同时生成接收调度信息,控制接收总线控制模块(8)的搬移操作;接收总线控制模块(8),用于提取入队调度控制模块(7)生成的接收调度信息,并将数据帧从分组处理模块中的乒乓RAM搬移到共享缓存;发送轮询模块(9),用于生成出队调度信息,传输给出队调度控制模块(10);出队调度控制模块(10),用于提取发送轮询模块生成的出队调度信息,生成发送调度信息,传输给发送总线控制模块(11);发送总线控制模块(11),用于提取发送调度信息,并将数据帧从共享缓存搬移到交叉节点缓存中;输出控制模块(12),用于查询交叉节点缓存,将数据帧从交叉节点缓存中搬移到输出端口;性能统计模块(13),用于统计各个数据帧进出各个模块的时间,并统计交换单元的吞吐率和时延性能。2.一种基于离散事件的交换单元仿真系统进行仿真的方法,包括:1)设计事件流程:1a)根据模块逻辑操作中所涉及的数据和数据操作特点,确定存放这些数据的数据结构类型;1b)根据模块行为的发生规律,确定该模块行为的事件流程类型;1c)根据事件划分标准,将模块的逻辑操作划分成多个事件;1d)根据每个事件之间的逻辑关系,将每个事件用箭头串联,形成事件流程;1e)获得有关联关系的事件之间的时间间隔ti,把时间间隔加到事件之间的关系箭头上,形成完整的事件流程;2)根据事件流程,用软件语言定义事件,体现事件流程中事件之间的关系;3)调用事件调度模块把初始事件添加到二维事件链表中,设置仿真结束时刻;4)调用事件调度模块对二维事件链表中的事件进行调度,其过程如下:4a)获取交换单元系统仿真的结束时刻Te;4b)事件调度模块从二维事件列表中取出一个事件E,将仿真当前时刻Tn设置为事件E的属性发生时间t;4c)判断仿真结束时刻Te和当前时刻Tn的大小关系,如果Te大于等于...

【专利技术属性】
技术研发人员:邱智亮陈珊珊潘伟涛朱振轩陈郝明鲍民权
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1