当前位置:首页 > 消费电子 > 消费电子
[导读]  所以采用状态机来设计USB3.0中SKP对的删除,如下图。当SKP窗口无效的时候,状态处于idle;当SKP窗口有效而且删除阀值触发时,状态进入了屏蔽状态;在SKP窗口 有效的情况,屏蔽状态持续到删除阀值标志无效;当SKP

  所以采用状态机来设计USB3.0中SKP对的删除,如下图。当SKP窗口无效的时候,状态处于idle;当SKP窗口有效而且删除阀值触发时,状态进入了屏蔽状态;在SKP窗口 有效的情况,屏蔽状态持续到删除阀值标志无效;当SKP窗口无效,或者删除阀值标志无效而且被屏蔽SKP个数是偶数个,则状态返回到idle状态。

  指针屏蔽verilog代码如下。

  3.2 USB3.0中SKP添加

  SKP添加模块包括断点保存、写指针跳跃与握手、读指针生成与输出控制模块 SKP添加发生在读时钟快于写时钟的时候,在正常情况下,弹性缓冲的读操作与普通的FIFO没有任何区别。

图 9 SKP添加结构

  3.2.1 断点保存

  在常半满模式下,读写指针相差8个时钟。因此在写指针发生事件,要经过8个左右的 时钟才能传递到读指针。在出现SKP窗口的时候,如果添加阀值标志触发,则读指针要经过8个时钟才能添加SKP。

  对于添加SKP对,读指针如何才能知道要添加多少呢?因此读指针需要写指针去引导。在设计中,采用了断点保存和握手来解决。在SKP窗口出现和添加阀值标志有效时候,写指针在此时计算FIFO中的有效数据个数,根据FIFO中有效数据的个数与8的差距来决定wrptr_nxt所指向的下一个指针点,这就是写指针跳跃。并且在写时钟域把当前的写指针和下一个所指向的指针点保存起来。在弹性缓冲设计中,读指针永远落后于写指针。

图 10 写指针保存断点

  3.2.2 握手

  写指针在出现SKP窗口和SKP添加阀值触发的时候,发生了跳跃,并保存了断点,但这只是在写时钟域。由于读指针晚于写指针,因此采用握手来通知读时钟域何时添加SKP。如下图,当SKP窗口出现,并且添加阀值触发时,弹性缓冲保存了断点,并向读时钟域发起了请求(req),请求一直持续到读指针读到了断点的起始地址(start_rptr),此时,读指针读到了断点的起始地址,并向写时钟发送收到(ack)。当写时钟域收到读时钟域的ack信号,撤销req。读时钟域一旦读到了截止地址(end_ptr)自动撤销ack信号。在整个读时钟域的ack过程中,SKP对被添加。

图11 握手

  3.2.3 输出控制

  弹性缓冲FIFO读写控制的过程中,写先于读,首先根绝延迟要写到规定的要求,此时写有效读无效(定义为W1R0)。当达到规定的阀值之后,读写同时有效(W1R1)。等到写结束, 即一个包接收完毕,但是读不一定结束(W0R1),直至读到空,即所有数据已经同步到本地了(W0R0)表示此次任务结束。这种流程控制为了保持这个数据的完整性。

图 12 读写流程控制

  USB协议中明确规定SKP对为2个连续的SKP symbol。根据8b10b原则,2个连续的SKP对的游程是相反的,并且SKP对的添加要符合8b10b3的规则。

  中要求,在弹性缓冲下溢的时候,要添加一个EDB字符,并且显性的用下溢标志。如下图,在rx-g与rx-h之间,由于读快于写,导致了下溢。因此需要添加一个EDB字符,并使能一个时钟的下溢,并且置状态。

图 13 弹性缓冲下溢

  PIPE3.0中要求,在弹性缓冲上溢的时候,丢掉一个数据,并且置状态。如下图rx-f、rx-g与rx-h,由于溢出,rx-g被丢弃,并且置状态。

图 14 弹性缓冲上溢

  5.总结

  本文通过分析弹性缓冲的作用与机制,采用异步时钟FIFO来设计弹性缓冲。并且根据USB3.0协议要求,提出了断点保存、指针跳跃与握手、指针屏蔽等方法来设计弹性缓冲。本设计充分考虑了PIPE 3.0标准的要求与实际需要,并且应用于工程中,实现了弹性缓冲补偿时钟的目的。

 

 1.引言

  弹性缓冲由Maurice Karnaugh在电话网络中传输PCM信号中提出来的。随后人们在很多不同的应用中采用了弹性缓冲技术来同步数据,很多协议例如USB、PCIE、以太网等。

  USB3.0是一个高速,串行,源同步数据传输协议。但是数据经过传输线与原数据发生了很大的偏差。本文从USB3.0的角度分析了弹性缓冲机制,解释了与其他设计的不同,并采用指针控制与握手的设计方法实现。

  2.弹性缓冲作用

  2.1 USB3.0弹性缓冲作用域

  在USB3.0中数据传输采用双单工,因此物理层设计为接收、发送2组差分对传输部分。传输线是承载数据传输的载体。因此如何从传输线正确接收数据,并把它同步到系统内部时钟域,变的十分关键。

  USB3.0中规定的物理层接收部分结构图如下,它包括差分接收、时钟数据恢复、串并转换和8B10B译码。

图 1USB3.0物理层接收部分结构

  整个数据流向自上而下,差分输入经过差分接收,从差分信号中提取出时钟,并用恢复出来的时钟来恢复出数据(CDR)。恢复出来的数据在接收时钟域进行串并转换为10bit位宽并行数据1,并检测USB3.0包起始标志符(K28.5)。一旦检测到起始标志符K28.5,使能符号有效(symbol lock),直至检测到结束符号,才结束符号有效。

  弹性缓冲从串并转换接收数据,所有的接收数据与控制都工作在接收时钟域(receive clock)。因此弹性缓冲要把数据与控制同步到系统时钟域(system clock)。把数据向下传递给8B10B译码模块,而后传递给系统内部。

  2.2 弹性缓冲容量

  USB3.0中,协议规定允许的时钟精度为-5300ppm到300ppm。而符号时钟频率为2ns即2000ps,最坏情况下每178个symbol添加或者删除一个SKP,也就是每356个symbol添加或者删除一个SKP对(SKP Order Sets)。USB3.0中包最长为1052字节,所以最差情况下,最多可以添加或删除8个SKP或者4个SKP对,所以弹性缓冲至少要能缓冲8个SKP。USB3.0协议规定每个SKP order sets为2个连续的SKP symbol。因此在10B8B译码前,SKP order set的游程(running disparity)应该是互补的。

  通过计算得知,弹性缓冲的缓冲容量为8。本文设计采用常半满2(normal half full)模式来设计弹性缓冲,所以弹性缓冲容量为16,在正常情况下里面应该有8个数据,剩下的8个为缓冲空间,因此叫常半满。常半满模式首先要向缓冲中写满8个symbol,达到半满,然后读使能才可以有效,因此大约有8个时钟的延迟。常半满模式只有在symbol队列中出现SKP对才能添加或者删除SKP对。下图为常半满输入输出时序图。

图 2 常半满输入输出时序

  从上图可以看出,rx_valid_out有效要晚于rx_valid_in约8个时钟沿;而无效却晚于rx_valid_out约0至16个时钟沿(取决于时钟精度差)。因此常半满需要8个时钟延迟才能输出数据。

  2.3 弹性缓冲机制

  弹性缓冲本质上是读写同时受控的异步FIFO,常半满(normal half full)FIFO,其深度为16,首先要写满8个有效数据,并一直维持在半满的状态。因此在正常情况下,FIFO一直处于或接近半满状态,当读写时钟一样快慢的时候,FIFO中有8个有效数据。

图 3 常半满读写同等速率

  当读时钟快于写时钟,读出的数据多于写入的数据,常半满模式可能导致FIFO中的数据数量少于8,甚至有可能被读空。如下图所示,在出现SKP窗口的时候,FIFO中的有效数据为4,比常态少4。所以此时,弹性缓冲应该添加4个SKP,使得FIFO维持半满,以此来调节时钟。此时读指针向前跳跃4个间隔,并且当读指针读到跳跃区间时,完成SKP添加。

图 4 常半满模式读快于写

  当读时钟慢于写时钟,写入的数据多于读出的数据,常半满模式可能导致FIFO中的数据数量多于8,甚至有可能被写满。如下图所示,在出现SKP窗口的时候, FIFO中有效数据为10,比常态多2. 所以此时,弹性缓冲应该删除2个SKP,使得FIFO维持半满,以此来调节时钟。此时写指针应该暂停2个时钟周期,完成SKP删除。

图 5 常半满写快于读

  3.弹性缓冲结构

  常半满模式下弹性缓冲的结构设计,可以分为接收时钟域控制、系统时钟域控制、阀值检测与同步。接收时钟域控制包括,写控制与写指针控制。系统时钟域控制包括读控制与读指针控制。阀值检测与同步包括SKP添加删除阀值与时钟域之间的同步。

图 6 常半满模式弹性缓冲结构

  3.1 USB3.0中SKP删除

  当接收时钟域的symbol lock有效时,写使能才可能有效。一直可以写到FIFO处于半满状态,此时FIFO处于临界状态,读写速率的差别将导致不同阀值的触发。下图是SKP对的删除。

图 7 SKP对删除

检测单元用来检测进入FIFO的数据是否为SKP,起到标注SKP窗口的作用,为SKP的删除提供了窗口。阀值监测单元一直监测FIFO中有效数据的数量。如果数量大于删除阀值(FIFO中有10个有效数据),并且SKP窗口有效,那么弹性缓冲暂停指针,屏蔽SKP对,以此来达到删除SKP对的目的。但是USB3.0中的SKP都是成对出现的,因此删除SKP对的时候要注意奇偶性。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

(全球TMT2023年9月11日讯)罗克韦尔自动化将亮相第23届中国国际工业博览会(工博会)6.1馆E010展台,围绕智慧城市、产业数字化、碳中和与跨界创新等方面,从不同维度集中展示在各领域的先进技术、产品与解决方案。...

关键字: 自动化 数字化 智能运维 CK

北京2023年9月5日 /美通社/ -- 浪潮云海在2023年5月正式发布新一代InCloud Rail G7系列超融合一体机,其内置的InCloud dSAN超融合存储组件,基于新一代的硬件平台设计,支持全栈RDMA协...

关键字: IO 读写 软件 测试

苏州2023年8月29日 /美通社/ -- 8月28日晚,协鑫能科公告,下属控股子公司年产20GWh储能系统项目在张家港经济技术开发区投产。这标志着协鑫集团正式完成从上游储能...

关键字: AC CK 电力系统 电源

纽约2023年8月4日 /美通社/ -- Resuticks因不懈追求创新性受众参与解决方案而受到认可,现在正在重新定义这一领域,专注于通过其旗舰产品RESUL为品牌及其受众...

关键字: TI IC CK RAM

北京2023年2月23日 /美通社/ -- 晴空万里、群星璀璨的丽江高美古,在纳西语中的释义是"天气好、星星多、离天最近的地方"。这里的年平均晴天超200天,视宁度达到世界优良台址的水平,大气洁净透明...

关键字: 分布式 望远镜 节点 读写

中位随访三年数据显示,欧狄沃辅助治疗组患者的无病生存期、尿路外无复发生存期、无远处转移生存期和无二次进展生存期对比安慰剂组均获得显著改善 所有随机人群中,欧狄沃组的无病生存时间依然维持是安慰剂组的两倍以上; ...

关键字: TE CK PD BSP

欧狄沃是首个且目前唯一经全球III期临床研究证实,用于尿路上皮癌辅助治疗可显著降低患者术后复发风险的PD-1抑制剂。 与对照组相比,欧狄沃用于肌层浸润性尿路上皮癌辅助治疗可使全人群患者的中位无病生存期(DFS)...

关键字: BSP PD CK AD

深圳2022年12月26日 /美通社/ -- 为更好地满足超大规模的数据应用,忆联发布数据中心级NVMe SSD -- UH711a以及UH711a E3.S形态。该系列产品使用自研控制器与长江存储128L 3...

关键字: SSD 数据中心 IO 读写

全球领先的投资公司选择亚马逊云科技作为首选云服务供应商,以获取业务洞察,提高工作场所安全性,实现水电、风能和太阳能的自动化运营 博枫可再生能源将为亚马逊在三大洲的运营提供清洁能源电力 北京2022年12月...

关键字: 亚马逊 可再生能源 电力 CK

深圳2022年11月30日 /美通社/ -- 不久前,专业存储研究机构Forward Insights发布了新版《中国固态硬盘市场》报告,本次报告包含了其对2021年中国固态硬盘市场份额统计分析。在中国Clie...

关键字: CLIENT OEM SSD 读写
关闭
关闭