存储器聚合设备的制造方法

文档序号:9620839阅读:217来源:国知局
存储器聚合设备的制造方法
【专利说明】存储器聚合设备
【背景技术】
[0001] 本发明涉及一种存储器聚合设备以及一种用于将多个输入数据流存储至一个 FIFO存储器组以及在所述FIFO存储器组中取出多个输出数据流的方法。
[0002] 高速硬件经常需要将很多数据流聚合成单个数据流。这在当前已普遍使用,其在 系统的输入中,以及在一种将流量作为单个数据流调度出的机制中使用多个FIFO。由于不 同的FIFO使用不用的存储器,且这些存储器并不共享,故存在缺陷,可能导致芯片存储区 域的大幅浪费。

【发明内容】

[0003] 本发明的目的在于提供一种单个聚合器FIFO的概念。
[0004] 该目的通过独立权利要求的特征来实现。通过权利要求、说明书和附图,更易于进 一步理解实施形式。
[0005] 本发明的主要思想在于提供一种通过一个FIFO存储器组以使用共享存储器的单 个聚合器FIFO。通过各单个的FIFO存储器的互连机制,使各FIFO存储器如使用共享存储 器的单个FIFO-样运行。
[0006] 所述互连机制包括将输入流量互连至所述FIFO存储器组的输入互连矩阵以及将 所述FIFO存储器互连至输出流量的输出互连矩阵。输入互连和输出互连由存储控制器根 据数据聚合规则控制。
[0007] 为详细描述本发明,将使用以下术语、缩写和符号:
[0008] FIFO :先进先出存储器(First-In First-〇ut memory),
[0009] VLSL:超大规模集成电路(Very large scale integration),
[0010] QoS:服务质量(qualityofservice),
[0011] CPU :中央处理器(central processing unit),
[0012] RR :轮询(round-robin),
[0013] RCS :速率控制选择单元或速率限制单元(rate control selection unit or rate limiting unit),
[0014] LVP :查找向量准备单元(lookup vector prepare unit),
[0015] PFF :前缀森林单元(pre-fix forest unit),
[0016] req_vec :请求组或请求向量(set of requests or vector of requests),
[0017] ack_vec :确认组或确认向量(set of acknowledgements or vector of acknowledgements),
[0018] raw_mask :选择掩码组或选择掩码向量(set of selection masks or vector of selection masks),
[0019] CMP :比较模块(compare module),
[0020] NASO :Not And Shift One module,
[0021]TE、Bid和Sel:指定可能有不同优先级的不同队列组(designate different queue groups which may have different priorities),
[0022]PD :传播延迟(propagation delay),
[0023]FA 和 HA :实现前缀树的加法器(adders implementing the prefix tree)〇
[0024] 根据第一方面,本发明涉及一种用于存储一个输入数据流组(set of input data streams)以及将数据取出至一个输出数据流组(set of output data streams)的存储器 聚合设备(memory aggregation device),其中,所述输入数据流组和所述输出数据流组 是可操作的从而在每个时钟周期内进行发送新数据和停止发送新数据中的任一项,所述存 储器聚合设备包括:一个FIFO存储器组(set of FIFO memories),其中,每个FIFO存储 器包括输入(input)和输出(output);输入互连器(input interconnector),用于根据输 入互连矩阵(input interconnection matrix),将所述输入数据流组中的每个输入数据流 与所述FIFO存储器组中的每个输入进行互连;输出互连器(output interconnector),用 于根据输出互连矩阵(output interconnection matrix),将所述FIFO存储器组中的每个 输出与所述输出数据流组中的每个输出数据流进行互连;输入选择器(input selector), 用于根据输入数据调度方案(output data scheduling scheme),选择所述输入互连矩阵; 输出选择器(output selector),用于根据输出数据调度方案(output data scheduling scheme),选择所述输出互连矩阵;存储控制器(memory controller),与所述输入选择器和 所述输出选择器耦合,其中,所述存储控制器用于:控制所述输入数据调度方案,以使来自 所述输入数据流组的数据通过轮询方式在所述FIFO存储器组中分发(spread),以及控制 所述输出数据调度方案,以使来自所述FIFO存储器组的数据通过轮询方式取出至所述输 出数据流组中。
[0025] 通过轮询机制,整个存储器聚合设备,即宽FIFO通过"先进先出"方式运行。每个 请求将几乎同时得到处理。因此,存储器聚合设备作为单个聚合器FIFO运行,且所述存储 器聚合设备有较高的吞吐量。
[0026] 当来自所述输入数据流组的数据在所述FIFO存储器组中分发,这些数据均匀加 载到所述FIFO存储器上,且不会发生过载,因而提高了所述FIFO存储器的吞吐量。
[0027] 输入/输出互连器可作为同步硬件电路调度器实现。所述输入/输出互连器能够 根据某一调度方案,选择N个请求,例如,输入队列或输出队列,且所述输入/输出互连器能 够在每个时钟周期内进行P次选择或发放。因此,所述输入/输出互连器允许以低时延和 高于系统时钟的速率来处理请求。
[0028] 所述输入/输出互连器可用作CPU中的任务调度器,或用于在切换元素或路由元 素时对数据包进行调度。为得到复杂的调度方案,所述输入/输出互连器作为存储器聚合 设备的构造块。所述输入/输出互连器与若干任务调度器连接,其中,为得到存储器聚合设 备的分层调度方案,输入/输出互连器配置不同。这样,存储器聚合设备能如单个共享存储 器一样运行,从而能够应用统一设计的FIFO存储器。
[0029] 根据第一方面,在所述存储器聚合设备的第一种可能的实施形式中,多个FIFO存 储器(901a、901b,......,901c) (a number of the FIFO memories)与多个输入数据流(902) (a number of the input data streams)对应。
[0030] 当FIFO存储器的数量与输入数据流的数量对应时,存储器聚合设备的设计较方 便。
[0031] 根据第一方面或根据第一方面的第一种实施形式,在所述存储器聚合设备的第二 种可能的实施形式中,所述输入互连器包括一个复用器组(set of multiplexers),用于实 现所述输入互连矩阵,且所述输出互连器包括一个复用器组,用于实现所述输出互连矩阵。
[0032] 所述复用器组,例如,作为VLSL系统设计中的标准门阵列(standard gate arrays)实现,便于所述存储器聚合设备的设计,且便于移动到不同的硬件平台。
[0033] 根据第一方面的第二种实施形式,在所述存储器聚合设备的第三种可能的实施形 式中,所述输入选择器包括一个门树仲裁器逻辑(gate-tree-arbiter logic),用于控制所 述输入互连器的所述复用器组,且所述输出选择器包括一个门树仲裁器逻辑,用于控制所 述输出互连器的所述复用器组。
[0034] 所述门树仲裁器逻辑是一种用于快速切换的高效硬件结构。
[0035] 根据第一方面或根据第一方面的上述实施形式中的任意一种,在所述存储器聚合 设备的第四种可能的实施形式中,所述输入选择器用于选择所述输入互连矩阵,使得所述 输入数据流组中,只有携带有效数据请求的数据流互连至所述FIFO存储器组。
[0036] 通过这种处理,由于不会对无效数据请求进行处理,也不会将无效数据请求存储 至所述存储器聚合设备中,因此,提高了所述存储器聚合设备的吞吐量。
[0037] 根据第二方面,本发明涉及一种用于存储一个输入数据流组以及将数据取出至 一个输出数据流组的存储器聚合设备,其中,所述输入数据流组和所述输出数据流组是可 操作的从而在每个时钟周期内进行发送新数据和停止发送新数据中的任一项,且所述存储 器聚合设备包括:一个FIFO存储器组,其中,每个FIFO存储器包括输入和输出;输入互连 器,用于根据输入互连矩阵,将所述输入数据流组中的每个输入数据流与所述FIFO存储器 组中的每个输入进行互连;输出互连器,用于根据输出互连矩阵,将所述FIFO存储器组中 的每个输出与所述输出数据流组中的每个输出数据流进行互连;输入选择器,用于选择所 述输入互连矩阵,使得所述输入数据流组中,携带有效数据请求(valid data requests) 的数据流压缩成所述FIFO存储器组中一个连续的数据请求组(continuous set of data requests);输出选择器,用于根据输出数据调度方案,选择所述输出互连矩阵;存储控制 器,与所述输入选择器和所述输出选择器耦合。
[0038] 为了使所述FIFO组作为一个宽FIFO运行,有必要对输入数据流进行压缩。
[0039] 根据第二方面,在所述存储器聚合设备的第一种可能的实施形式中,所述输入选 择器用于选择所述输入互连矩阵,使得所述输入数据流组中,携带有效数据请求的所述数 据流与指向所述FIFO存储器组的空条目(vacant entry)的FIFO指针(FIFO pointer)对 齐。
[0040] 当只有携带有效数据请求的数据流与指向空FIFO条目的FIFO指针对齐时,由于 未对无效数据请求进行互连,因而提高了数据吞吐量。
[0041] 根据第二方面或根据第二方面的第一种实施形式,在所述存储器聚合设备的第二 种可能的实施形式中,所述存储器聚合设备包括:时钟输入(clock input),用于接收时钟 信号,其中,所述输入选择器用于在所述时钟信号的每个时钟周期内,切换所述输入互连矩 阵,且所述输出选择器用于在所述时钟信号的每个时钟周期内,切换所述输出互连矩阵。
[0042] 当在每个时钟周期内切换输入互连矩阵和输出互连矩阵时,在每个时钟周期内, 可将新的数据请求存储至FIFO存储器中,从而减少了延迟时间,并提高了存储器聚合设备 的吞吐量。
[0043] 根据第二方面的第二种实施形式,在所述存储器聚合设备的第三种可能的实施形 式中,所述输入选择器用于接收指示所述输入数据流组中携带有效数据请求的多个数据 流的R位向量(R-bit vector),且用于选择所述输入互连矩阵,使得在所述时钟信号的每 个时钟周期内,所述输入数据流组中的所述多个数据流的前G个数据请求(first G data requests)互连至所述FIFO存储器组,其中,R和G为整数。
[0044] 因此,在每个时钟周期内,G个数据请求由存储器聚合设备进行处理,这提高了吞 吐率。
[0045] 根据第二方面的第二种实施形式或第三种实施形式,在所述存储器聚合设备的第 四种可能的实施形式中,所述输出选择器用于接收指示所述输出数据流组中携带有效数据 请求的多个数据流的R位向量,且用于选择所述输出互连矩阵,使得在所述时钟信号的每 个时钟周期内,所述输出数据流组中的所述多个数据流的前G个数据请求互连至所述FIFO 存储器组,其中,R和G为整数。
[0046] 通过这种处理,提高了所述存储器聚合设备的吞吐量。
[0047] 根据第二方面的第三种实施形式或第四种实施
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1