关于一种面向异步FIFO的低开销容错机制研究.doc
《关于一种面向异步FIFO的低开销容错机制研究.doc》由会员分享,可在线阅读,更多相关《关于一种面向异步FIFO的低开销容错机制研究.doc(6页珍藏版)》请在三一文库上搜索。
1、关于一种面向异步FIFO的低开销容错机制研究0 引言异步FIFO(Fist-In-First-Out)是一种先入先出的数据缓冲器1。由于可以很好地解决跨时钟域问题和不同模块之间的速度匹配问题,而被广泛应用于全局异步局部同步2(Globally Asynchronous Locally Synchronous,GALS)数字系统中。在片上网络(Network-on-Chip,NoC)3等复杂的通信系统中,通常会使用异步FIFO处理跨时钟域问题。异步FIFO在这些系统中所占面积比例不低,例如在NI中,异步FIFO的面积超过50%4。为提高这类数字系统的整体容错能力,对异步FIFO进行容错设计是很有
2、必要的。当前面向FIFO的容错方法主要分为两类:第一类方法通过优化控制逻辑,跳过故障单元进行容错5。但文献5提出的方法由于无法使用格雷码1,6的缘故,不能直接在异步FIFO中使用。第二类方法通过增加硬件冗余,提高单元本身的容错能力,如文献7增加备用单元用于替代故障单元,文献8采用检错纠错码等方式。比较两类方法,第一类通常面积开销较小,而第二类方法对FIFO性能影响较小。本文提出一种与第一类方法兼容的新方法。该方法可以在降低故障对异步FIFO可靠性影响的同时,只引入少量的面积开销。1 折叠式容错方案由于格雷码自身的特点,通常只能支持2n进制计数器。异步FIFO使用格雷码计数器作为不同时钟域之间的
3、同步指针意味FIFO的深度必须保持为2的幂次方,才能保证格雷码不出现跳码和漏码。本文针对这一问题,通过改进FIFO的控制逻辑进行容错。这就要使FIFO深度保持为2的幂次方,需要在FIFO出现故障以后只选择2的幂次方个无故障存储单元作为工作单元。为了便于描述,本文首先定义两个概念:组集和组。组集使用S表示,组使用G表示。在本方案中,组是可可以被操作的最小单位。假设FIFO的初始深度为2n,那么FIFO可以被平均划分为2i(in)组,每组拥有2n-i个存储单元。根据i的取值,可以将FIFO分为不同的组集,每个组集中有2i个组。下面将组集命名为“Si”,组集中的组命名为“Gik”,其中i代表i的值,
4、k代表某一组在组集中的序号。如图1所示,一个深度为8的FIFO,根据i的不同值,被划分为3个不同的组集:S1、S2、S3。图中的G11表示这个组属于组集S1,并且是S1中的第一个组。当i=1时,FIFO被分为了21组,每组有23-1个单元。不同组集的组之间有一定的关系,在组集Si中的组可以由两个属于组集Si+1的组组成。如图1所示,组G11可以由G21和G22组成。在组集和组的概念基础上,需要再定义一个特殊的备选组集合U。该集合包含所有无故障的组。初始状态时,每个组都将被标记为无故障,因此备选组集合U包含所有的组。发现故障单元以后,包含该单元的所有组都将被标记为故障,并从集合U中移除。此时为了
5、保障FIFO能正常工作,需要从集合U中选择出可以继续工作的组。组之间的优先级遵循两条规则,第一,组集Si中的组优先级高于组集Si+1中的组,这是因为Si中的组包含的单元数大于Si+1中的组。第二,同一组集中,序号越小的组优先级越高。根据这两个原则必然可以得到一个优先级最高的组。图2展示了发生故障以后FIFO的处理方式,其中粗框表示在实际工作中FIFO将会用到的单元。图2(a)中,第3个单元发生了故障,此时将包含此单元的组G11、G22、G33从集合U中排除。根据优先级原则,在集合U中剩余的组里面G12的优先级最高,因此,组G12中的单元被选中,FIFO的深度将会变成4。在图2(b)中,除了第3
6、个单元,第7个单元也出现了故障。G12、G24、G37被标记为故障,从集合U中移除。此时,优先级最高的组是G21,因此G21包含的单元被选中,FIFO的深度变为2。图2(c)和图2(d)包含更多的例子展示容错机制,在此不再赘述。此时FIFO的容错能力达到最大。将这个容错方法被命名为Fold-i,其中i为imax的值。2 备用单元的引入方法及分析虽然Fold-i方法容错能力很强,但是其对FIFO深度影响很大。根据Fold-i方法,当一个深度为16的FIFO出现一个故障存储单元,整个FIFO的深度将会变为8。这会严重影响FIFO的性能。因此,在Fold-i方法的基础上引入备用单元,在提高FIFO容
7、错能力的同时适当减少故障对FIFO深度的影响。2.1 故障单元替代方法引入备用单元的核心是明确替代故障单元的方法。理想的情况是备用单元可以任意替代故障单元,但这会使控制逻辑变得非常复杂。为了简化控制逻辑,可将备用单元的替代方法简化为两条原则:首先,根据数量将备用单元与组集进行绑定,使得组集中每组拥有一个备用单元;其次,在检测到故障单元以后,只用与该组对应的备用单元进行替换。图3展示了在深度为16的FIFO中添加4个备用单元的方法。由于备用单元的数量与组集S2中组的数量一致,因此将备用单元与组集S2绑定。此时组集S2中的每一组拥都有一个备用单元。在图3中,发现组G21中有一个故障单元,根据替代规
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关于 一种 面向 异步 FIFO 开销 容错 机制 研究
链接地址:https://www.31doc.com/p-3387921.html