论文研究-RapidIO接口IP核的设计与验证 .pdf

所需积分/C币:16 2019-08-15 13:09:13 377KB .PDF

RapidIO接口IP核的设计与验证,吴冰冰,张建华,摘要:介绍了一种基于RapidIO协议的接口IP核设计,着重研究了逻辑层协议处理、事务匹配、物理层包缓存和队列管理的实现。设计支持逻
山国科技记文在线 被全部占用后,就不能再接受大于此优先级的包。当有多个包存储在物理层时,调度器应该选择最高优先级的最早到达的包发 送。所以如图2所示结构屮的包缓冲区需要支持以任意顺序读写包缓冲空间的操作,而且需要为每一个优先级实现一个队列来 存放凵经写入缓冲区的包的控制信息,调度器可以根据这些控制信息来完成对包的调度 来白逻辑层 刭用户 去往逻辑层 发送 附控制器 加 字段 队列状 物理层仲裁器 态信息 寄存器 发送寄存接 收L「接 队列 管埋管理鬥队 冲区 包缓冲区 管理 读同可写 调度 差错检测 队列队列 发方 收方 状态 状态 发送列表 机 机 接收器 发送器 控制符 串行发送 号处理 串行接收 模块 模块 发送差分线 接收差分线↑ 图2 Rapidl0接口物理层模块框图 包缓冲区由控制器和双口RMM实现。RAV实现N个包缓冲空间,每个空间能存储276个字节。用一个ogN位的位置标识符PID 来标识包缓冲空间的位置。控制器从调度模块的可写位置标识符PⅠD队列中读出一个可用PID,然后利用此PID得到RAM中包缓冲 空间的起始地址,最后以此为起始地址将包写入包缓冲空间,冋时将相应的PID、包优先级和包长信息组成排队符号QI给发送 队,进行写操作的同时,控制模块还从调器调度出的可读位置标识符队刎中读出下一个可读包的PID和包长,根据此PID可 以找到对应包缓冲空间在RAM里的起始地址,然后从该地址起根据包长将包读出RAM。 缓冲空间的释放山调度器、发送器和状夵机完成。在发送状下,发送方状态机使能调度模块对发送队列进行调度。调度 器将调度结果发送给包缓冲控制器,包缓冲控制器将包从缓冲中读岀并交给调度器。调庋器将包和包的一起送给发 送器,发送在发送包的同时将分配给包的 优先级和 起组成一个信息符号,并写入当前已发送未确认包列 表。当收到控制符号处理器送来的确认控制符后,发送器将已经被确认的读出并写入调度器中的可用存储空间位置队列中, 这样可释放已经被确认包的缓冲空同 队列管理由队列模块和队列管理器共同实现。发送队列模块里面有4个优先级队列,队列里存储的内容是包优先级、包位 置标识符PID和包长信息,记为QⅠD。PID用于识别包在缓冲区中的位置和包长。包优先级作为调度模块的仲裁依据。队列用FIFO 来实现。充分考虑∫ Rapid0协议的事务排序规则和死锁避免规则后,以为每个优先级的包保留M个包缓冲空间为例,队列的 实现如图3所示,总共需要4M个包缓冲空间。 写指针 写指针 读指钅 读指针 各份指 个 优先绂为的优先级为的 个优先级列 发送队列指针接收队列指针 图队列示意图 3 山国利技论义在线 各优先级队列的FIFO长度分别为4M,3M,2M和M。写入队列的规则如下: 当优先级为S(0≤S≤3)的QID到达时,如果标号为SS的位置没有用完就将QID写入SS的位置:如果SS刚好用完就将 QID同时写入SS-1位置和队刎S-1;如果SS-1刚好用完就将QID同时写入SS2位置、队列S1和队列S2;如果SS2刚 好完就将QID写入SS-3位置、队列S-1、队列S-2和队列S-3。 图3给出了发送队列指针示意图,写指针w指向下一个可写入的FIFO单元。读指针RP指向下一个可读出的FIFO单元, 备份指针RP指向下一个期望得到确认的单元。读写指针之间的是待发送队列。读指针和备份指针之间的是已发送未确认队列。 当队列满的时侯不能继续向包缓冲区写入包。当队列空的时候,不能从缓冲区该出包。 优先级为S的队列满判决规则为下列条件之一:①W=BP则FIFO队列满;②当优先级为S的FIFO里标号为Si(4>i>0 S>0)位置用完,且发现优先级为i-1的队列己满,则认为S队列满。 刈优先级为S的队列的空判决规则:①当RP=Ⅶ则发送队列空。②当优先级为S的队列满标志有效,且优先级低于S 的队列空标志有效时,则认为S队列空。 调度模块调度包出队列时应该从队列中得到最先到达的优先级最高的QⅠD。队列调度规则如下:调度时先检査非空的优先 级最高的FIFO。如果该FIFO中的待发送队列非空就从中读出一个QID,然后检查QID的优先级字段,如果此字段等于队列的优 先级就接受Q1,香则抛弃比并读出下一个,直到读出的QD等于队列优先级 重发和确认引起旳指针的移动规则:①如果发送队列管哩器发现需要重新发送未确认包,就跟据发送器提供的匚发送未确 认包列表计算出每个优先级需要重发的包的个数,然后控制发送队列里的各个优先级队列的RP指针向后移动相应的个数,这样 就可以将需要重发的包亘新放入待发送队列里。②如果发送队列管理器收到确认A,就跟据A旦的优先级字段,控制相 的优先级FIFO中BP向前移一个位置。 采用上述包缓冲方法和队列管理方法允许优先级高的包占用优先级低的包的存储空间,优点是可以用1M个包缓冲空间实现 为每一个优先级保留M个包缓冲空间,允许优先级为S包最多可占用M(S+1)个包缓冲空间,缓冲空间利用率大大优于为每 个优先级的包缓冲空间都分配4M个缓冲空间的做法 接收侧的包缓冲区和接收队列管理的实现与发送侧相似。不冋的地方仅仅在于实玩接收队列的FIF0没有BP指针,对满标 志的判断是发生写操作的时候W=P。仲裁器控制包缓冲空问的分配,方法与调度器类似。 3.2接收方流控的实现 图发送列表示意图 接收方流控的实现方法如下:发送器在模块内部建立一个如图所示,窗口人小用表示,到之间距离等 于窗凵大小。和之间的是已发送未确认列表,到之间的距离表示在未收到指向的包的确认控制符号之前 可以继续发送的包个数。当收到包确认控制符号时将和同时加。当有新的包发出时将加。当等于时 窗口满,停止发包。 4.验证和结论 逻辑层 物理层 物玨层 逻辑层 测试 序列 结果 发生 等效模型 图5 Ridi0接口IP核验证方案 通过ⅦHD编程在 xilinx7.1i软件平台上完成了该 Rapid0接口IP核的仿真验证,并最终在 xilinx VirtexIi Pro FPga上实现了 该接口IP核。验证方案如图5所示,采用两个 Rapidio接口IP核进行发送和接收数据试验并将数据处理结果与等效模犁提供的数据 4 血国利技论文在线 处理结果进行比较来验证 Rapid0接口P核功能。测试序列输入到 Rapidio逻辑层的1ca11irk接口上,经过左侧的逻辑层和物理层 处理后调用4个绑定的M通过4对差分线发送到右侧的对端MG上,然后数据经对端的 RapidIo(接口物理层和逻辑层依次处理后存 入RAM,最后将RAM中的数据与等效模型产生的结果进行比较得到统讣数据。 仿真工作重点考察了在接收方流空方式下,信道误码率、最佳包长和链路利用率之间的关系。统计结果数据如图6所示,在 链路误字率小于0.002和采用4x串行物理层的情况卜,使用 Write操作和256字节数据荷载能实现最大约9.2Cbps的全双工的 有效数据传输。实际电路调试采样波形如图7、8所小。最终在8对差分线上实现了最大η.8Gbps的全双工的有效数据传输。导致 该速率低于最大有效数据传输速率的主要原因是信号在LWDS差分线上传输时有一定误码率。 150 0c0501001500200250303 图6链路性能数据统计分析结果 data o 64 nn4R."1RAr 20n mnrnmnAF Tim nmnrnmnnaFnmnmmmmnnR mn nmmmmmmmna1rrmn 图7包发送过程 estell 出0①mm0面 000003900JJ004 00000003B00003C O0CC003D00000D3EM0000J03F000C0040二 图8包接收过程 参考文献: [1]王勇等.εpidI0:嵌入式系统气连—面向嵌入式应用的卜一代通信交换结构北京:电子工业出版社,2006 2 RapidIo Trade Association. RapidIO Interconnect Specification v1.3 2005 [3]林珨等. Rapidio作多处理器系统互连中的应用计算机工稈,206 [4 Xilinx [5]谢希仁.计算机网络北京:电子工业出版社2003 5

...展开详情
试读 5P 论文研究-RapidIO接口IP核的设计与验证 .pdf
img

关注 私信 TA的资源

上传资源赚积分,得勋章
    最新推荐
    论文研究-RapidIO接口IP核的设计与验证 .pdf 16积分/C币 立即下载
    1/5
    论文研究-RapidIO接口IP核的设计与验证 .pdf第1页
    论文研究-RapidIO接口IP核的设计与验证 .pdf第2页

    试读已结束,剩余3页未读...

    16积分/C币 立即下载 >