Maxim T1、E1和J1器件内部的弹性存储器用作器件线路侧和系统侧之间的双端口缓冲区。它允许双方在不同的时钟域甚至不同的频率下工作。弹性存储的性质使得很难理解设备在给定条件下的反应。本应用说明提供了许多不同的示例,应该消除有关弹性存储如何在这些不同条件下运行的大多数问题。
介绍
Maxim T1、E1和J1器件内部的弹性存储器用作器件线路侧和系统侧之间的双端口缓冲区。它允许双方在不同的时钟域甚至不同的频率下工作。弹性存储的性质使得很难理解设备在给定条件下的反应。本应用说明提供了许多不同的示例,应该消除有关弹性存储如何在这些不同条件下运行的大多数问题。
弹性存储操作
弹性存储是深度为 512 位的双端口缓冲区。由于帧的位长度在 T1 和 E1 之间变化,因此使用的缓冲区位数取决于操作模式。有四种基本操作模式:
T1 模式:193 位帧
E1 模式:256 位帧
T1 到 E1 速率转换模式:线路(网络)端为 193 位帧,系统(背板)端为 256 位帧
交错总线操作模式:线路(网络)端为193位或256位帧,系统(背板)端为256位帧,具有高速间隙系统时钟
为了阐明弹性存储的操作,创建了以下一系列关系图。每个示例都基于 E1 模式下具有 256 位帧的接收弹性存储。写入指针(由白点指示)由 RCLK 计时,并将数据写入弹性存储。由黑点指示的读取指针由 RSYSCLK 计时,并从弹性存储中读取数据(如果在示例中使用传输弹性存储,则写入指针将由 TSYSCLK 计时,读取指针将由 TCLK 计时)。图 1 说明了写入指针和读取指针“理想情况下”以一帧为中心的情况。
图1.弹性存储读取和写入指针正好相隔一帧。
在图 2 中,读取指针(黑点)即将进入帧 B。当任一指针越过帧边界时,将比较两个指针之间的距离。任何低于设定阈值的距离都将导致帧滑动,并且刚刚越过帧边界的指针将移动到下一帧的开头。根据滑动的指针,将出现重复或删除的帧。阈值取决于工作模式:E1模式下为16位,所有其他模式下为9位。在下面的示例中,写入指针(白点)几乎相距一帧,因此不会发生滑移,读取指针将继续进入帧 B。
图2.读取和写入指针相距足够远,因此在比较后不会发生滑移。
在图 3 中,读取指针(黑点)的运行速度比写入指针(白点)快,并且最终会赶上。当读取指针越过边界进入帧 A 时,它会检测到写入指针在帧 A 开始的 16 位范围内。读取指针不会进入帧 A,而是滑动并返回到帧 B 的开头,位于位位置 256。由于读取指针滑动,因此将重复从缓冲区读取的最后一帧,并报告接收弹性存储空事件。
图3.在比较过程中,读取指针与写入指针太近,导致滑移。
当写入指针的运行速度快于读取指针时,情况也是如此。如果写入指针检测到读取指针距离帧 B 的开头在 16 位以内,则写入指针将滑动并返回到帧 A 的位位置 0 的开头。由于写入指针滑动,因此将删除写入缓冲区的最后一帧,并报告接收弹性存储已满事件。导致滑移的写入指针示例如图 4 所示。
图4.在比较过程中,写入指针与读取指针太近,导致滑移。
在上面的接收弹性存储示例中,两个指针应始终以恒定速率在缓冲区周围移动。写入指针由接收时钟计时,并且基于恢复的时钟或载波丢失时的主时钟保持恒定。读取指针由接收系统时钟计时,并且应基于外部时钟或背板时钟保持恒定。因此,滑移争用逻辑将始终能够检测到滑移事件。逻辑将重复或删除数据帧,弹性存储将立即恢复,仅出现单个帧错误。
审核编辑:郭婷
-
Maxim
+关注
关注
8文章
859浏览量
87088 -
存储器
+关注
关注
38文章
7452浏览量
163591 -
存储
+关注
关注
13文章
4261浏览量
85656 -
时钟
+关注
关注
10文章
1720浏览量
131349 -
指针
+关注
关注
1文章
479浏览量
70506
发布评论请先 登录
相关推荐
评论