媒体缓冲和流水线式处理组件的制作方法

文档序号:6333705阅读:235来源:国知局
专利名称:媒体缓冲和流水线式处理组件的制作方法
技术领域
一般来说,本公开涉及电子领域。更具体来说,本发明的实施例涉及媒体缓冲及流 水线式处理组件。
背景技术
在计算中,缓冲器一般是指临时存储数据的存储区域。大多数计算操作涉及某一 种类的缓冲,例如其中存储用于计算的输入数据或由计算产生的输出数据。当将数据从一 个位置移动到另一位置时,也可使用缓冲器。因此,如何实现缓冲器可对总的系统效率或等 待时间有显著影响。此外,不同类型的数据可能需要不同类型的实现以达到操作效率、更低的产品成 本或更快的速度。因此,缓冲器的设计变成一项复杂的任务。

发明内容
本发明涉及一种缓冲器,包括仲裁器,用于从产生器接收对应于数据结构的信息;存储器,用于存储对应于所述数据结构的所述信息;以及地址生成器,用于生成对应于所述存储器中的用于存储对应于所述数据结构的所 述信息的位置的所述存储器中的地址,其中用户响应指示所述信息整体存储在所述存储器中的信号从所述存储器读取 对应于所述数据结构的所述信息,并根据所述数据结构处理来自所述产生器的数据。本发明涉及一种方法,包括从产生器接收对应于数据结构的信息;将对应于所述数据结构的所述信息存储在存储器中;生成对应于所述存储器中的用于存储对应于所述数据结构的所述信息的位置的 所述存储器中的地址;以及响应指示所述信息整体存储在所述存储器中的信号而在用户处从所述存储器读 取对应于所述数据结构的所述信息。本发明涉及一种系统,包括用于控制仲裁器的控制器逻辑,其中所述仲裁器从产生器接收对应于数据结构的 fn息;用于用产生器或用户信息配置所述控制器逻辑的处理器;用于存储对应于所述数据结构的所述信息的存储器;以及地址生成器,用于生成对应于所述存储器中的用于存储对应于所述数据结构的所 述信息的位置的所述存储器中的地址,其中用户响应指示所述信息整体存储在所述存储器 中的信号从所述存储器读取对应于所述数据结构的所述信息,并根据所述数据结构处理来 自所述产生器的数据。
本发明涉及一种用于存储一个或多个指令的计算机可读介质,所述一个或多个指 令在由处理器执行时执行一个或多个操作以便从产生器接收对应于数据结构的信息;将对应于所述数据结构的所述信息存储在存储器中;生成对应于所述存储器中的用于存储对应于所述数据结构的所述信息的位置的 所述存储器中的地址;以及响应指示所述信息整体存储在所述存储器中的信号而在用户处从所述存储器读 取对应于所述数据结构的所述信息。


参考附图提供详细描述。在图中,附图标记左边的数字标识该附图标记第一次出 现时所在的图。不同图中使用相同的附图标记表示类似或等同项。图1和图6-7示出可用于实现本文论述的各种实施例的计算系统的实施例的框 图。图2-3示出根据一些实施例的缓冲器的框图。图4-5示出根据一些实施例的时序图。
具体实施例方式在以下描述中,阐述了众多具体细节以充分理解各个实施例。但是,没有这些具体 细节也可实现一些实施例。在其它情况下,没有详细描述公知的方法、过程、组件和电路,以 免使这些具体实施例晦涩难懂。一些实施例提供媒体(及非媒体)缓冲流水线式处理组件。在一个实施例中,利 用协议来允许在产生器(producer)、用户(consumer)、和/或硬件体系结构的多个级之间 进行协调。例如,产生器可将数据结构(例如,阐述格式化信息)传送给缓冲器,然后由用 户读取该缓冲器。这允许缓冲器的可配置性。并且,缓冲器可包括多个缓冲级,这些缓冲级 可根据需要配置或添加(例如,其中对于特定实现需要更多存储空间)。如本文所论述,产生器一般是指产生将由用户处理的事务的代理。协议一般可表 示从产生器到用户的事务的抽象化。如本文所论述,术语事务可与分组互换使用。分组一 般可指可包括一个或多个位的数据合集。在一些当前的系统中,当在产生器与用户之间进行缓冲时,可使用状态机,并且状 态机可能必须随实现而改变。相比之下,即使当分组中的数据改变、分组的字宽改变等时, 实施例仍可利用相同的状态机(例如,实现相同的协议)。这减少了重新设计的需要、将产 品推向市场所需的时间和/或设计成本。在一个实施例中,耦合在用户与产生器之间的缓 冲器还可包括地址生成逻辑,以用于例如在用户或产生器需要访问系统存储器时提供地址 生成。另外,在一些实施例中,缓冲器可具有弹性或动态可调的大小。可使用各种计算系统来实现本文论述的实施例,例如参考图1和图6-7论述的系 统。更具体地说,图1示出根据本发明一个实施例的计算系统100的框图。系统100可包括 一个或多个代理102-1至102-M(在本文中统称为“多个代理102”,或更一般地统称为“代 理102”)。在一个实施例中,其中一个或多个代理102可以是计算系统(例如,参考图6-7论述的计算系统)的任何组件。此外,代理102可以是用户或产生器。
如图1所示,代理102可经由网络架构104通信。在一个实施例中,网络架构104 可包括允许各种代理(如计算装置)传送数据的计算机网络。在一个实施例中,网络架构 104可包括经由串行(例如,点对点)链路和/或共享通信网络通信的一个或多个互连(或 互连网络)。例如,一些实施例可便于在允许与全缓冲双列直插存储器模块(FBD)通信的 链路上进行组件调试或验证,例如其中FBD链路是用于将存储器模块耦合到主控制器装置 (例如,处理器或存储器集线器)的串行链路。调试信息可从FBD信道主机传送,以便可以 沿该信道通过信道业务轨迹捕获工具(例如,一个或多个逻辑分析器)观察调试信息。
在一个实施例中,系统100可支持分层协议方案,它可包括物理层、链路层、路由 层、传输层和/或协议层。架构104还可便于对于点对点或共享网络将数据(例如以分组 形式)从一个协议(例如,缓存处理器或缓存感知存储器控制器)传送到另一协议。并且, 在一些实施例中,网络架构104还可提供遵守一个或多个高速缓存一致性协议的通信。
此外,如图1中的箭头方向所示,代理102可经由网络架构104传送和/或接收数 据。因此,一些代理可利用单向链路来通信,而其它代理可利用双向链路来通信。例如,一 个或多个代理(如代理102-M)可传送数据(例如,经由单向链路106),其它代理(如代理 102-2)可接收数据(例如,经由单向链路108),而一些代理(如代理102-1)可传送和接收 数据(例如,经由双向链路110)。
另外,如图1所示,代理102可经由一个或多个缓冲器120耦合到其它代理。在一 个实施例中,缓冲器120可作为网络架构104的一部分来实现。关于缓冲器120的各种实 施例的更多细节将参考图2-7进行论述。
参考图2,示出根据一个实施例的缓冲器120的框图。如图所示,图2中的缓冲器 120作为流水线来实现。在一个实施例中,将流水线缓冲协议(例如,如本文参考例如图1-7 所论述)设计为位于产品特定缓冲实现之上的层。这允许硬件加速器或协处理器在几代设 计和产品上保持相当稳定。
并且,图2中示出的体系结构提供服务于产生器和用户的多级缓冲方案,并且提 供最小集合的访问信息和几乎为零的产生器与用户之间的通信以存储、溢出和提取数据。 在一些实施例中,多个先填后溢(First Fill Last Spills, FFLS)级可耦合在一起(其中, 每一级可包括图2中示出的一个或多个组件),其中最后一级(例如,图3中的FFLS最后一 级300)经由总线代理(例如,图3中的总线代理304)耦合到存储器子系统(例如,图3中 的存储器302)。
如图2所示,产生器可将数据结构写入到缓冲器中(例如,经由在多个产生器输入 202/204之间仲裁的写端口仲裁器201),并且用户可通过用户接口(未示出)从缓冲器120 中检索数据206 (它还可包括数据结构信息)(例如,存储在存储器208中的数据,在一些实 施例中,存储器208可以是随机存取存储器(RAM)或DDR(双倍数据速率)存储器)。在一 个实施例中,用户响应指示对应于数据结构的信息整体存储在存储器中的信号从存储器读 取该信息,然后用户可根据该数据结构处理来自产生器的数据。控制处理器209(它可以是 本文论述的任一处理器,例如参考图6或图7论述的处理器)或处理器软件可建立产生器 和用户配对以及每个缓冲器中所允许的数据结构的数量。配对和缓冲器深度以及本文论述 的其它数据可编程到控制器存储器210中。
此外,将最小集合的ID(标识符)、结构编号/索引、和/或子结构偏移从产生器 (如202或204)传送到缓冲器120 (包括传送到仲裁器201和可生成对应于存储器208中 的位置的地址的写端口地址生成211),或从用户传送到缓冲控制器,包括例如读端口仲裁 器212 (它在多个用户输入214/216之间仲裁)和读端口地址生成器218 (它可生成用于访 问存储器208中的位置的地址)。
流水线缓冲(PB)控制器逻辑220可基于例如存储在存储器210(它可以是RAM或 只读存储器(ROM)或本文参考图6或图7论述的其它形式的存储器)中的数据控制在芯片 上存储器208(例如,RAM或DDR存储器)中寻找数据和确定物理地址的其它方面。在一个 实施例中,控制器220和处理器209可经由多路复用器耦合到存储器210 ;但是,其它实施 例可利用多端口存储器而不是多路复用器来允许访问存储器210。另外,如果某一缓冲级 或缓冲阶已经被任意产生器的数据222/224(或任何额外数据)填满,则该产生器的数据 222/2M可流过这一缓冲级或缓冲阶(例如,通过在数据222或数据2M之间选择的多路复 用器226)。这样,除非采用例如利用“单个最近缓冲”的修改过的保留策略,否则无需重新 缓冲或逐出数据。多级缓冲系统可通过例如耦合多个缓冲器120而构建在相同的可配置硬 件上,其中将产生器数据222/2M和/或产生器数据结构202/204传递到下一级缓冲器。
此外,控制处理器209 (或主处理器)可以用产生器/用户信息编程或配置流水线 缓冲器控制器220(例如,经由存储器210),产生器/用户信息包括例如以下一种或多种 数据总线宽度或以数据总线宽度/RAM字计的结构大小,为每个产生器存储的数据结构数, 用于从下游本地缓冲器提取溢出结构的水印(在本文中又可互换地称为“阈”级),一次提 取的缓冲器数,每个产生器的第一结构的基数据结构地址,低缓冲器水印级,溢出操作,和/ 或仲裁操作。流水线缓冲器还可包含允许控制处理器(或主处理器)充当产生器或用户的 端口。这例如允许在两个硬件加速器或流水线缓冲器120之间插入软件进程。
在一个实施例中,产生器可将包括以下一种或多种信息的信息传送给缓冲器120 产生器ID,请求/准予,停顿(stall),行进序列/数据缓冲器/结构编号/计数,内部偏移 地址(例如,以数据字计),和/或结构访问完成信号。在一个实施例中,用户可将包括以下 一种或多种信息的信息传送给缓冲器120 用户ID,请求/准予,停顿,行进序列/数据缓冲 器/结构编号/计数,内部偏移地址(例如,以数据字计),和/或结构访问完成信号。此 外,在一些实施例中,每个产生器/用户对具有用于定义第一数据结构的物理位置的共享 初始“基数据结构地址”。但是,产生器“当前数据结构地址”可以用产生器的结构写完成信 号来更新。用户“当前数据结构地址”可以类似地用用户的结构读完成信号来更新。控制 器220可提供对执行物理地址计算和端口仲裁的硬件(例如,分别为仲裁器201和地址生 成器211)的更新。因此,在一个实施例中,控制器220可以不在数据流的关键路径中。
此外,流水线缓冲器控制器可以按层级方式分级以便向总线代理(例如,图3中的 总线代理304)提供额外的芯片上缓冲或简化的接口。总线代理304可以提供共享总线拓 扑以使一个或多个其它代理在通信上彼此耦合(例如,如参考图1中的架构104所论述,或 者本文参考例如图6或图7论述的其它总线)。在一些实施例中,来自产生器的数据可基于 对于该产生器第一级缓冲器已满(或者用其它方式已满并且不能存储任何额外数据)的判 定而直接经过第一级缓冲器到达下一个流水线缓冲器级。流水线缓冲器控制器220可根据 由控制处理器209(或主处理器)设置的水印将任何数据预取到例如存储器210中。为用户提取的数据可直接传递给用户或未满的下一个流水线(其中下一个流水线可与满的流 水线直接相邻,或经由其它流水线级耦合到满的流水线)。
并非所有层级链都在DDR终止。一些只是芯片上的,并最终使产生器停顿。甚至 连没有一路溢到(spill all the way to)DDR的加速器之间的本地缓冲器也可在简化接口 的益处胜过流水线缓冲器控制器的任何等待时间和区域考虑时利用流水线缓冲器协议。
图3示出根据一个实施例的最后一级FFLS 300的框图。如图3所示,FFLS 300可 包括与图2中的缓冲器120相同或类似的组件。取代包括存储器(例如,图2中的存储器 208), FFLS 300可如上所述经由总线代理304访问存储器子系统302。在一些实施例中,图 3示出当FFLS控制器利用包括总线代理304和存储器子系统302的配置在内的多级系统配 置来确定哪个请求者要服务时的情形,而图2示出按照条目206通过写端口仲裁器201控 制数据多路复用器226(例如,其中206是较简单的方法,它可在无需了解304和302的第 一或单级系统中实现)。
此外,下一代消费型电子硅组件可能要求硬件可配置性、可编程性和灵活性以便 以最少的重新设计和重新验证来同时支持多个产品系列。来自不同细分市场的不同功率、 区域和存储器性能要求的并行产品开发要求加快进度。本文论述的体系结构将加速器的设 计与流水线缓冲的设计分开。这提供了相依性的减少,并且允许在正确的领域解决正确的 设计问题。加速器可设计成具有变化的像素处理宽度和可编程控制以支持多种格式的硬件 可配置块。加速器可对于给定格式集合设计和验证一次。流水线缓冲只设计一次,但是可 对于每种产品进行优化。加速器可以设计成具有标准化协议和简化的接口以便支持自或到 流水线中的其它主要加速器的数据传输。如本文所论述,一个完整的流水线可包括通过流 水线缓冲耦合在一起的一组加速器。流水线缓冲提供用于将数据从一个加速器传送到另一 个加速器的机制。它还为例如具有不匹配的吞吐量的加速器提供过缓冲管理和预取能力。
另外,加速器中解决的设计问题可包括定义内部数据结构以支持多格式处理; 满足复杂功率、区域和实时处理空间中的吞吐量要求;各处理元件之间的等待时间;和/或 保持数据排序,例如光栅行排序。流水线缓冲中解决的设计问题可包括缓冲器体系结构 (例如,高速缓存对线性缓冲);过缓冲器管理;缓冲器大小设计;总线代理复杂性(例如, 在写附近读取(read around writes));仲裁策略;存储器控制器接口 ;预取等级和大小设 计;和/或逐出策略。一旦将加速器和流水线缓冲一起放到一个完整的流水线中,则基于性 能验证进行进一步优化便成为可能。在一些实施例中,优化可能局限于流水线缓冲中的缓 冲器大小设计和总线宽度大小设计。
因此,一些实施例(例如,包括本文所论述的协议、设备、方法、系统等)可用于并 行设计下一代音频、视频、安全性、网络、芯片组、处理器和其它流水线式加速器以在硅组件 中使用。这些设计可提供改进的缓冲器优化和加快的时间进度,同时潜在地节约成本。
图4示出根据一个实施例的产生器接口时序图。图5示出根据一个实施例的用户 接口时序图。下表1和表2分别指示根据一些实施例图4-5中的每个信号所指的内容(其 中“elk”是指具有所列举的周期的时钟信号)。
名称FFLS I/O宽度(位)描述acc_c_consumer_idI8-在 MFX 级参数化这是在FFLS流水线缓冲中的用 户的唯一 ID0acc_c—reqI1从FFLS缓冲器读取的用户请求。acc_c—indexI16- 在 MFX级参 数化到存储在包括存储器/DDR的 FFLS缓冲器系统中的分组阵列的 唯一索引。这个索引值不暗示特定 分组的位置,而是指允许控制器确 定其在芯片上存储器(如SRAM 或系统DDR)中的位置的标签。acc_c_index_validI1指示FFLS利用来自用户的索引。 否则,利用在指示完成时递增的简 单计数器。
权利要求
1.一种缓冲器,包括仲裁器,用于从产生器接收对应于数据结构的信息;存储器,用于存储对应于所述数据结构的所述信息;以及地址生成器,用于生成对应于所述存储器中的用于存储对应于所述数据结构的所述信 息的位置的所述存储器中的地址,其中用户响应指示所述信息整体存储在所述存储器中的信号从所述存储器读取对应 于所述数据结构的所述信息,并根据所述数据结构处理来自所述产生器的数据。
2.如权利要求1所述的缓冲器,还包括用于控制所述仲裁器和所述地址生成器的操作 的控制器逻辑。
3.如权利要求1所述的缓冲器,还包括用于将对应于所述产生器的数据预取到所述缓 冲器的本地存储器中的控制器逻辑。
4.如权利要求1所述的缓冲器,其中所述缓冲器包括包含所述存储器、所述地址生成 器和所述仲裁器的第一级,其中所述缓冲器还包括第二级,所述第二级包括另一仲裁器,用于从所述产生器接收对应于所述数据结构的信息;另一地址生成器,用于生成对应于存储器子系统中的用于存储对应于所述数据结构的 所述信息的位置的所述存储器子系统中的地址;以及总线代理,用于将所述另一地址生成器耦合到所述存储器子系统。
5.如权利要求4所述的缓冲器,其中所述用户响应指示所述信息整体存储在所述存储 器子系统中的准予信号从所述存储器子系统读取对应于所述数据结构的所述信息。
6.如权利要求1所述的缓冲器,其中所述缓冲器是先填后溢(FFLQ缓冲器。
7.如权利要求1所述的缓冲器,其中所述缓冲器包括多个缓冲器级,并且至少第一级 缓冲器和第二级缓冲器均包括所述存储器、所述地址生成器和所述仲裁器。
8.如权利要求7所述的缓冲器,其中来自所述产生器的数据响应所述第一级缓冲器已 满的判定而经过所述第一级缓冲器到达所述第二级缓冲器。
9.如权利要求1所述的缓冲器,其中所述存储器基于基地址和偏移存储所述数据结构。
10.如权利要求1所述的缓冲器,还包括用于控制所述仲裁器和所述地址生成器的操 作的控制器逻辑,其中所述控制器逻辑通过处理器用包括以下信息中的一种或多种信息的 产生器或用户信息进行配置数据总线宽度,为每个产生器存储的数据结构数,用于从下游 缓冲器级提取溢出结构的水印,一次提取的缓冲器数,每个产生器的第一结构的基数据结 构地址,低缓冲器水印级,溢出操作,或仲裁操作。
11.一种方法,包括从产生器接收对应于数据结构的信息;将对应于所述数据结构的所述信息存储在存储器中;生成对应于所述存储器中的用于存储对应于所述数据结构的所述信息的位置的所述 存储器中的地址;以及响应指示所述信息整体存储在所述存储器中的信号而在用户处从所述存储器读取对 应于所述数据结构的所述信息。
12.如权利要求11所述的方法,还包括根据所述数据结构处理来自所述产生器的数据。
13.如权利要求11所述的方法,还包括将对应于所述产生器的数据预取到耦合在所述 用户与所述产生器之间的缓冲器的本地存储器中。
14.如权利要求11所述的方法,还包括将数据从耦合在所述产生器与所述用户之间的 缓冲器的第一级传递到所述缓冲器的第二级,其中所述第一级包括所述存储器,而所述第 二级包括用于访问存储器子系统的总线代理。
15.如权利要求14所述的方法,其中将所述数据从所述第一级传送到所述第二级是响 应所述第一级缓冲器已满的判定而执行的。
16.如权利要求14所述的方法,还包括所述用户响应指示所述信息整体存储在所述存 储器子系统中的准予信号从所述存储器子系统读取对应于所述数据结构的所述信息。
17.如权利要求11所述的方法,其中基于基地址和偏移执行将所述信息存储在所述存 储器中。
18.一种系统,包括用于控制仲裁器的控制器逻辑,其中所述仲裁器从产生器接收对应于数据结构的信息;用于用产生器或用户信息配置所述控制器逻辑的处理器; 用于存储对应于所述数据结构的所述信息的存储器;以及地址生成器,用于生成对应于所述存储器中的用于存储对应于所述数据结构的所述信 息的位置的所述存储器中的地址,其中用户响应指示所述信息整体存储在所述存储器中的 信号从所述存储器读取对应于所述数据结构的所述信息,并根据所述数据结构处理来自所 述产生器的数据。
19.如权利要求18所述的系统,其中所述控制器逻辑控制所述地址生成器的操作。
20.如权利要求18所述的系统,其中所述控制器逻辑将对应于所述产生器的数据预取 到耦合在所述产生器与所述用户之间的缓冲器的本地存储器中。
21.如权利要求20所述的系统,其中所述缓冲器是先填后溢(FFLQ缓冲器。
22.如权利要求19所述的系统,其中所述缓冲器包括多个缓冲器级,并且至少第一级 缓冲器和第二级缓冲器均包括所述存储器、所述地址生成器和所述仲裁器。
23.如权利要求18所述的系统,其中所述存储器基于基地址和偏移存储所述数据结构。
24.一种用于存储一个或多个指令的计算机可读介质,所述一个或多个指令在由处理 器执行时执行一个或多个操作以便从产生器接收对应于数据结构的信息; 将对应于所述数据结构的所述信息存储在存储器中;生成对应于所述存储器中的用于存储对应于所述数据结构的所述信息的位置的所述 存储器中的地址;以及响应指示所述信息整体存储在所述存储器中的信号而在用户处从所述存储器读取对 应于所述数据结构的所述信息。
25.如权利要求M所述的介质,其中所述一个或多个指令使所述处理器根据所述数据 结构处理来自所述产生器的数据。
26.如权利要求M所述的介质,其中所述一个或多个指令使所述处理器将对应于所述 产生器的数据预取到耦合在所述用户与所述产生器之间的缓冲器的本地存储器中。
27.如权利要求M所述的介质,其中所述一个或多个指令使所述处理器将数据从耦合 在所述产生器与所述用户之间的缓冲器的第一级传送到所述缓冲器的第二级,其中所述第 一级包括所述存储器,而所述第二级包括用于访问存储器子系统的总线代理。
28.如权利要求27所述的介质,其中所述一个或多个指令使所述处理器响应所述第一 级缓冲器已满的判定而将所述数据从所述第一级传送到所述第二级。
29.如权利要求27所述的介质,其中所述一个或多个指令使所述用户响应指示所述信 息整体存储在所述存储器子系统中的准予信号而从所述存储器子系统读取对应于所述数 据结构的所述信息。
30.如权利要求M所述的介质,其中所述一个或多个指令使所述处理器基于基地址和 偏移将所述信息存储在所述存储器中待执行。
全文摘要
描述与媒体缓冲和流水线式处理组件有关的方法和设备。在一个实施例中,一种缓冲器可包括用于从产生器接收数据结构信息的仲裁器;用于存储信息的存储器;以及用于指示存储器中的用于存储数据结构信息的位置的地址生成器。还公开了其它实施例。
文档编号G06F13/16GK102033818SQ20101050747
公开日2011年4月27日 申请日期2010年9月27日 优先权日2009年9月25日
发明者S·G·蒂登斯 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1