并行成帧器接收10位未成帧数据字,输出10位成帧数据。按照ASI规范,成帧器在5字节窗口中寻找2个逗号特征字符,若能检测到第2个逗号特征字符,数据成帧并设定已成帧标志。成帧数据送入10b/8b译码器。10b/8b码是直流平衡的,有较好的电缆均衡性,并提供0或1的最短运行长度。译码器具有8路10位编码输入通道,因而最多可恢复8个ASI数据流。
多流数据存储/捕获:译码器输出送入stream-in(1:8)模块。较低级stream-in模块从单一数据流串行地接纳4个顺序的有效8位并行数据,并将它转换为32位并行输出数据,只有有效的(非零)字节加以存储。每个输入数据是以27MHz(37ns)装载的,因而每个stream-in模块输出32位字的准备就绪时间为148ns。输出的读出速率为100MHz,stream-in模块总共有8块,分别从模块1扫描至模块8,这样8个数据流可在80ns内处理完毕,小于上述的148ns。当扫描器发现32位字已可使用,就将它送入512×32位块RAM。倘若模块输出未有32位准备就绪,则扫描下一个模块,如此往复循环。控制逻辑为每个数据流生成读指针和写指针。当每个stream-in模块在输出寄存器准备好32位字,写指针就加1。某个数据流读指针是否加1则取决于512×32位块RAM的后端要读取该数据,事实上,每个数据流的读指针是较大地址的一个子集,也就是指示较大DDR存储器的当前数据流,下一个单元将会用到这个地址。
多流数据装入DDR存储器:块RAM分成8节,每节256个字节。每节保留来自上面每个模块的数据。控制逻辑扫描块RAM,看8节存储器中任何一个是否是半满的,换句话说,至少有128字节。如果是半满的,表示数据已准备就绪可以从该节读出,并写入DDR存储器。在此之前,32位数据是以管线字和非管线字读出的,共同组成64位字。64位字先写入CORE Generator FIFO。控制逻辑相应地监视所有8节块RAM以及送入FIFO的输出数据。当FIFO含有128字节数据,就向仲裁器发送一个请求,要求输入数据流进入DDR内存。一旦从DDR多端口内存控制器接收到确认信号,FIFO以16个连续周期成组地输出64位数据,进入多端口存储器控制器,最后移入较大的DDR存储器。写入地址就是上节已描述的扩展指针所指示的地址。
ASI发送器接口
发送器实现视频的回放,图2简要地列出了从存储器回放ASI流所需的物理层方框,包括回放速率控制、回放地址生成器、以及多数据流并—串化。
回放速率控制:存储在DDR存储器中的数据是通过多端口存储器控制器(MPMC2)的读接口读出的。速度控制逻辑扫描8个数据流,以确定哪个输出已准备就绪来送出数据,回放速率控制内置8个48位累加器(更精细的速率控制),速率是从处理器程序装载的。每个累加器的溢出速率是由累加的值确定的。当数据流溢出时,溢出标志记录在一个寄存器中。扫描器监视8个寄存器的输出,以确定计数器是否已达到最大计数值。一旦发现某个数据流已变成“1”,就激活输出流数据请求。
回放地址生成器和回放缓冲器:请求寄存器的非零值将流地址与存储器请求控制块中的回放流地址指针加1。该地址和读请求一起送到DDR存储器。仲裁器最终确定是否从DDR存储器读取数据。经仲裁器允许后,一个读请求标志发送至MPMC2。当接收到来自MPMC2的确认信号后,则从DDR存储器的地址处取出数据,送至输出FIFO,数据是以连续的16个64位字发送的。当流地址与存储器请求控制块接收到DDR存储器的确认信号,该数据流的请求计数器减1。然后,请求扫描器继续扫描下一个数据流,如此往复循环。每个输出流具有一个单独的16×16 FIFO,当数据流请求时,由DDR存储器填充。
仲裁逻辑
仲裁逻辑是一个独立的、少位数逻辑单元。它跟踪stream-ill逻辑与DDR存储器之间的数据以及DDR存储器与stream-out逻辑之间的数据。该控制块接收来自strean-in的写请求、写数据和写地址;也接收stream-out送来的读请求、读数据和读地址。在未发现读或写请求时,仲裁逻辑通知MPMC2中的DDR存储器,从存储器读出数据或将数据写入存储器。写和读请求同时发生时,写请求有更的优先权。由于MPMC2是每个端口单地址结构,该控制逻辑还起到DDR存储器地址的多路开关作用,共享读出与写入。
千兆位系统参改设计(GSRD)
GSRD是实现IP基传输协议(如ICP或UDP)的一个高性能设计。它的内部设置了高性能的嵌入式三态以太网MAC和嵌入式处理器。该设计充分利用MPMCP功能,在PPC 405处理器指令和PLB数据接口与两个端口之间分配存储器带宽。每个端口都内置了双通道动态存储器存取(DMA)引擎来重新调整数据,GSRD的一个端口连接千兆位MAC或三态以太网MAC外设,以太网外设和DMA引擎两者都是由PPC 405处理器的设备控制寄存器(DCR)控制的。其余的DMA端口供参改系统的附加外设使用。
事实表明,GSRD可进行高性能的UDP处理。设计特性让处理器仅执行协议和控制功能,但不参与有效负载数据路径,而让DMA引擎完成数据传送。数据调整和校验及有效负载为软件实现零拷贝功能提供了必要的支持,让设计实现在IP基协议与用户数据接口之间的高性能桥接。
MPMC2
MPMC2内核是GSRD的一个重要部件(图3)。MPMC2通过实现跨端口并行处理,减少了总线仲裁,提高了系统级业务流量。此外,与之紧密相关的DMA引擎实现了对存储器高带宽访问,并降低了资源利用率。
本设计中,MPMC2允许32位DDR存储器资源共亨5个以上的独立接口(最多可达8个)。3个MPMC2端口通过PLB至MPMC2接口模块连接至PP405处理器的PLB口,完成MPMC2与高速缓存之间的数据交易,MMC处理两者之间的交换信号和时钟同步;一个端口连接出端口接口模块(PIM),实现进/出视频流之间的数据传送;另一个接口连接至通信直接存储器访问控制器(CDMAC),访问以太网MAC和本地数据。这样,通过访问同一个共享的存储器资源来实现:
数据的快速写入与读出;