媒体缓冲和流水线式处理组件.pdf

上传人:54 文档编号:1281090 上传时间:2018-04-12 格式:PDF 页数:22 大小:843.13KB
返回 下载 相关 举报
摘要
申请专利号:

CN201010507475.1

申请日:

2010.09.27

公开号:

CN102033818A

公开日:

2011.04.27

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 12/08申请日:20100927|||公开

IPC分类号:

G06F12/08; G06F13/16

主分类号:

G06F12/08

申请人:

英特尔公司

发明人:

S·G·蒂登斯

地址:

美国加利福尼亚州

优先权:

2009.09.25 US 12/567733

专利代理机构:

中国专利代理(香港)有限公司 72001

代理人:

曲卫涛;徐予红

PDF下载: PDF下载
内容摘要

描述与媒体缓冲和流水线式处理组件有关的方法和设备。在一个实施例中,一种缓冲器可包括:用于从产生器接收数据结构信息的仲裁器;用于存储信息的存储器;以及用于指示存储器中的用于存储数据结构信息的位置的地址生成器。还公开了其它实施例。

权利要求书

1: 一种缓冲器, 包括 : 仲裁器, 用于从产生器接收对应于数据结构的信息 ; 存储器, 用于存储对应于所述数据结构的所述信息 ; 以及 地址生成器, 用于生成对应于所述存储器中的用于存储对应于所述数据结构的所述信 息的位置的所述存储器中的地址, 其中用户响应指示所述信息整体存储在所述存储器中的信号从所述存储器读取对应 于所述数据结构的所述信息, 并根据所述数据结构处理来自所述产生器的数据。
2: 如权利要求 1 所述的缓冲器, 还包括用于控制所述仲裁器和所述地址生成器的操作 的控制器逻辑。
3: 如权利要求 1 所述的缓冲器, 还包括用于将对应于所述产生器的数据预取到所述缓 冲器的本地存储器中的控制器逻辑。
4: 如权利要求 1 所述的缓冲器, 其中所述缓冲器包括包含所述存储器、 所述地址生成 器和所述仲裁器的第一级, 其中所述缓冲器还包括第二级, 所述第二级包括 : 另一仲裁器, 用于从所述产生器接收对应于所述数据结构的信息 ; 另一地址生成器, 用于生成对应于存储器子系统中的用于存储对应于所述数据结构的 所述信息的位置的所述存储器子系统中的地址 ; 以及 总线代理, 用于将所述另一地址生成器耦合到所述存储器子系统。
5: 如权利要求 4 所述的缓冲器, 其中所述用户响应指示所述信息整体存储在所述存储 器子系统中的准予信号从所述存储器子系统读取对应于所述数据结构的所述信息。
6: 如权利要求 1 所述的缓冲器, 其中所述缓冲器是先填后溢 (FFLS) 缓冲器。
7: 如权利要求 1 所述的缓冲器, 其中所述缓冲器包括多个缓冲器级, 并且至少第一级 缓冲器和第二级缓冲器均包括所述存储器、 所述地址生成器和所述仲裁器。
8: 如权利要求 7 所述的缓冲器, 其中来自所述产生器的数据响应所述第一级缓冲器已 满的判定而经过所述第一级缓冲器到达所述第二级缓冲器。
9: 如权利要求 1 所述的缓冲器, 其中所述存储器基于基地址和偏移存储所述数据结 构。
10: 如权利要求 1 所述的缓冲器, 还包括用于控制所述仲裁器和所述地址生成器的操 作的控制器逻辑, 其中所述控制器逻辑通过处理器用包括以下信息中的一种或多种信息的 产生器或用户信息进行配置 : 数据总线宽度, 为每个产生器存储的数据结构数, 用于从下游 缓冲器级提取溢出结构的水印, 一次提取的缓冲器数, 每个产生器的第一结构的基数据结 构地址, 低缓冲器水印级, 溢出操作, 或仲裁操作。
11: 一种方法, 包括 : 从产生器接收对应于数据结构的信息 ; 将对应于所述数据结构的所述信息存储在存储器中 ; 生成对应于所述存储器中的用于存储对应于所述数据结构的所述信息的位置的所述 存储器中的地址 ; 以及 响应指示所述信息整体存储在所述存储器中的信号而在用户处从所述存储器读取对 应于所述数据结构的所述信息。
12: 如权利要求 11 所述的方法, 还包括根据所述数据结构处理来自所述产生器的数 2 据。
13: 如权利要求 11 所述的方法, 还包括将对应于所述产生器的数据预取到耦合在所述 用户与所述产生器之间的缓冲器的本地存储器中。
14: 如权利要求 11 所述的方法, 还包括将数据从耦合在所述产生器与所述用户之间的 缓冲器的第一级传递到所述缓冲器的第二级, 其中所述第一级包括所述存储器, 而所述第 二级包括用于访问存储器子系统的总线代理。
15: 如权利要求 14 所述的方法, 其中将所述数据从所述第一级传送到所述第二级是响 应所述第一级缓冲器已满的判定而执行的。
16: 如权利要求 14 所述的方法, 还包括所述用户响应指示所述信息整体存储在所述存 储器子系统中的准予信号从所述存储器子系统读取对应于所述数据结构的所述信息。
17: 如权利要求 11 所述的方法, 其中基于基地址和偏移执行将所述信息存储在所述存 储器中。
18: 一种系统, 包括 : 用于控制仲裁器的控制器逻辑, 其中所述仲裁器从产生器接收对应于数据结构的信 息; 用于用产生器或用户信息配置所述控制器逻辑的处理器 ; 用于存储对应于所述数据结构的所述信息的存储器 ; 以及 地址生成器, 用于生成对应于所述存储器中的用于存储对应于所述数据结构的所述信 息的位置的所述存储器中的地址, 其中用户响应指示所述信息整体存储在所述存储器中的 信号从所述存储器读取对应于所述数据结构的所述信息, 并根据所述数据结构处理来自所 述产生器的数据。
19: 如权利要求 18 所述的系统, 其中所述控制器逻辑控制所述地址生成器的操作。
20: 如权利要求 18 所述的系统, 其中所述控制器逻辑将对应于所述产生器的数据预取 到耦合在所述产生器与所述用户之间的缓冲器的本地存储器中。
21: 如权利要求 20 所述的系统, 其中所述缓冲器是先填后溢 (FFLS) 缓冲器。
22: 如权利要求 19 所述的系统, 其中所述缓冲器包括多个缓冲器级, 并且至少第一级 缓冲器和第二级缓冲器均包括所述存储器、 所述地址生成器和所述仲裁器。
23: 如权利要求 18 所述的系统, 其中所述存储器基于基地址和偏移存储所述数据结 构。
24: 一种用于存储一个或多个指令的计算机可读介质, 所述一个或多个指令在由处理 器执行时执行一个或多个操作以便 : 从产生器接收对应于数据结构的信息 ; 将对应于所述数据结构的所述信息存储在存储器中 ; 生成对应于所述存储器中的用于存储对应于所述数据结构的所述信息的位置的所述 存储器中的地址 ; 以及 响应指示所述信息整体存储在所述存储器中的信号而在用户处从所述存储器读取对 应于所述数据结构的所述信息。
25: 如权利要求 24 所述的介质, 其中所述一个或多个指令使所述处理器根据所述数据 结构处理来自所述产生器的数据。 3
26: 如权利要求 24 所述的介质, 其中所述一个或多个指令使所述处理器将对应于所述 产生器的数据预取到耦合在所述用户与所述产生器之间的缓冲器的本地存储器中。
27: 如权利要求 24 所述的介质, 其中所述一个或多个指令使所述处理器将数据从耦合 在所述产生器与所述用户之间的缓冲器的第一级传送到所述缓冲器的第二级, 其中所述第 一级包括所述存储器, 而所述第二级包括用于访问存储器子系统的总线代理。
28: 如权利要求 27 所述的介质, 其中所述一个或多个指令使所述处理器响应所述第一 级缓冲器已满的判定而将所述数据从所述第一级传送到所述第二级。
29: 如权利要求 27 所述的介质, 其中所述一个或多个指令使所述用户响应指示所述信 息整体存储在所述存储器子系统中的准予信号而从所述存储器子系统读取对应于所述数 据结构的所述信息。
30: 如权利要求 24 所述的介质, 其中所述一个或多个指令使所述处理器基于基地址和 偏移将所述信息存储在所述存储器中待执行。

说明书


媒体缓冲和流水线式处理组件

    技术领域 一般来说, 本公开涉及电子领域。 更具体来说, 本发明的实施例涉及媒体缓冲及流 水线式处理组件。
     背景技术 在计算中, 缓冲器一般是指临时存储数据的存储区域。大多数计算操作涉及某一 种类的缓冲, 例如其中存储用于计算的输入数据或由计算产生的输出数据。当将数据从一 个位置移动到另一位置时, 也可使用缓冲器。 因此, 如何实现缓冲器可对总的系统效率或等 待时间有显著影响。
     此外, 不同类型的数据可能需要不同类型的实现以达到操作效率、 更低的产品成 本或更快的速度。因此, 缓冲器的设计变成一项复杂的任务。
     发明内容 本发明涉及一种缓冲器, 包括 :
     仲裁器, 用于从产生器接收对应于数据结构的信息 ;
     存储器, 用于存储对应于所述数据结构的所述信息 ; 以及
     地址生成器, 用于生成对应于所述存储器中的用于存储对应于所述数据结构的所 述信息的位置的所述存储器中的地址,
     其中用户响应指示所述信息整体存储在所述存储器中的信号从所述存储器读取 对应于所述数据结构的所述信息, 并根据所述数据结构处理来自所述产生器的数据。
     本发明涉及一种方法, 包括 :
     从产生器接收对应于数据结构的信息 ;
     将对应于所述数据结构的所述信息存储在存储器中 ;
     生成对应于所述存储器中的用于存储对应于所述数据结构的所述信息的位置的 所述存储器中的地址 ; 以及
     响应指示所述信息整体存储在所述存储器中的信号而在用户处从所述存储器读 取对应于所述数据结构的所述信息。
     本发明涉及一种系统, 包括 :
     用于控制仲裁器的控制器逻辑, 其中所述仲裁器从产生器接收对应于数据结构的 信息 ;
     用于用产生器或用户信息配置所述控制器逻辑的处理器 ;
     用于存储对应于所述数据结构的所述信息的存储器 ; 以及
     地址生成器, 用于生成对应于所述存储器中的用于存储对应于所述数据结构的所 述信息的位置的所述存储器中的地址, 其中用户响应指示所述信息整体存储在所述存储器 中的信号从所述存储器读取对应于所述数据结构的所述信息, 并根据所述数据结构处理来 自所述产生器的数据。
     本发明涉及一种用于存储一个或多个指令的计算机可读介质, 所述一个或多个指 令在由处理器执行时执行一个或多个操作以便 :
     从产生器接收对应于数据结构的信息 ;
     将对应于所述数据结构的所述信息存储在存储器中 ;
     生成对应于所述存储器中的用于存储对应于所述数据结构的所述信息的位置的 所述存储器中的地址 ; 以及
     响应指示所述信息整体存储在所述存储器中的信号而在用户处从所述存储器读 取对应于所述数据结构的所述信息。 附图说明 参考附图提供详细描述。在图中, 附图标记左边的数字标识该附图标记第一次出 现时所在的图。不同图中使用相同的附图标记表示类似或等同项。
     图 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/224 可流过这一缓冲级或缓冲阶 ( 例如, 通过在数据 222 或数据 224 之间选择的多路复 用器 226)。这样, 除非采用例如利用 “单个最近缓冲” 的修改过的保留策略, 否则无需重新 缓冲或逐出数据。多级缓冲系统可通过例如耦合多个缓冲器 120 而构建在相同的可配置硬 件上, 其中将产生器数据 222/224 和 / 或产生器数据结构 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 中的每个信号所指的内容 ( 其 中 “clk” 是指具有所列举的周期的时钟信号 )。
     表 1- 对应于图 4 中的信号
     表 2- 对应于图 5 中的信号
     图 6 示出计算系统 600 的一个实施例的框图。图 1 中的一个或多个代理可包括计 算系统 600 的一个或多个组件。并且, 系统 600 的各个组件可包括缓冲器 ( 例如, 如图 1-5 中的缓冲器 120/300)。计算系统 600 可包括耦合到互连网络 ( 或总线 )604 的一个或多个 中央处理单元 (CPU)602( 在本文中可统称为 “多个处理器 602” , 或更一般地统称为 “处理 器 602” )。处理器 602 可以是任何类型的处理器, 例如通用处理器、 网络处理器 ( 它可处理 通过计算机网络 605 传送的数据 ) 等 ( 包括精简指令集计算机 (RISC) 处理器或复杂指令 集计算机 (CISC))。此外, 处理器 602 可具有单核或多核设计。具有多核设计的处理器 602
     可在相同的集成电路 (IC) 管芯上集成不同类型的处理器核。并且, 具有多核设计的处理器 602 可作为对称或非对称多处理器来实现。
     处理器 602 可包括一个或多个缓冲器 ( 例如, 不同于所示的缓冲器 120 和 / 或 300), 在各种实施例中, 这一个或多个缓冲器可以是私有的和 / 或共享的。一般来说, 高速 缓存存储对应于存储在其它位置或较早计算的原始数据的数据。 为了减少存储器访问等待 时间, 一旦将数据存储在高速缓存中, 便可通过访问所缓存的副本来用于未来使用, 而不是 重新提取或重新计算原始数据。高速缓存可以是任何类型的高速缓存, 如 1 级 (L1) 高速缓 存、 2 级 (L2) 高速缓存、 3 级 (L3) 高速缓存、 中间级高速缓存、 最后一级高速缓存 (LLC) 等, 以便存储供系统 600 的一个或多个组件使用的电子数据 ( 例如, 包括指令 )。 另外, 这个 ( 或 这些 ) 高速缓存可设置在各种位置 ( 例如, 设置在本文论述的计算系统 ( 包括图 1 或图 7 中的系统 ) 的其它组件内 )。
     芯片组 606 可另外耦合到互连网络 604。此外, 芯片组 606 可包括图形存储器控 制集线器 (GMCH)608。GMCH 608 可包括耦合到存储器 612 的存储器控制器 610。存储器 612 可存储数据, 包括例如供处理器 602 或与计算系统 600 的组件通信的任何其它装置执 行的指令序列。并且, 在本发明的一个实施例中, 存储器 612 可包括一个或多个易失性存储 ( 或存储器 ) 装置, 例如随机存取存储器 (RAM)、 动态 RAM(DRAM)、 同步 DRAM(SDRAM)、 静态 RAM(SRAM) 等。也可使用非易失性存储器, 如硬盘。另外的装置可耦合到互连网络 604, 如 多个处理器和 / 或多个系统存储器。
     GMCH 608 还可包括耦合到显示器装置 616( 例如, 在一个实施例中, 经由图形加速 器 ) 的图形接口 614。在一个实施例中, 图形接口 614 可经由加速图形端口 (AGP) 耦合到显 示器装置 616。在本发明的一个实施例中, 显示器装置 616( 如平板显示器 ) 可通过例如信 号转换器耦合到图形接口 614, 信号转换器将存储在诸如视频存储器或系统存储器 ( 如存 储器 612) 的存储装置中的图像的数字表示转化为由显示器 616 解释和显示的显示信号。
     如 图 6 所 示, 集 线 器 接 口 618 可 将 GMCH 608 耦 合 到 输 入 / 输 出 控 制 集 线 器 (ICH)620。ICH 620 可提供到耦合到计算系统 600 的输入 / 输出 (I/O) 装置的接口。ICH 620 可通过诸如遵照 PCIe 规范的外围组件互连 (PCI) 桥的外围桥 ( 或控制器 )624、 通用串 行总线 (USB) 控制器等耦合到总线 622。桥 624 可在处理器 602 与外围装置之间提供数据 路径。也可利用其它类型的拓扑。并且, 多条总线可通过例如多个桥或控制器耦合到 ICH 620。此外, 总线 622 可包括其它类型和配置的总线系统。而且, 在本发明的各个实施例中, 耦合到 ICH 620 的其它外围设备可包括集成驱动电子设备 (IDE) 或小型计算机系统接口 (SCSI) 硬盘驱动器、 USB 端口、 键盘、 鼠标、 并行端口、 串行端口、 软盘驱动器、 数字输出支持 ( 例如, 数字视频接口 (DVI)) 等。
     总线 622 可耦合到音频装置 626、 一个或多个盘驱动器 628 和网络适配器 630( 在 一个实施例中, 它可以是 NIC)。 在一个实施例中, 耦合到总线 622 的网络适配器 630 或其它 装置可与芯片组 606 通信。 并且, 在本发明的一些实施例中, 各个组件 ( 如网络适配器 630) 可耦合到 GMCH 608。此外, 处理器 602 和 GMCH 608 可进行组合以形成单个芯片。在一个实 施例中, 存储器控制器 610 可设置在其中一个或多个 CPU 602 中。此外, 在一个实施例中, GMCH 608 和 ICH 620 可组合到外围控制集线器 (PCH) 中。
     另外, 计算系统 600 可包括易失性和 / 或非易失性存储器 ( 或存储设备 )。例如, 非易失性存储器可包括以下一个或多个 : 只读存储器 (ROM)、 可编程 ROM(PROM)、 可擦除 PROM(EPROM)、 电 EPROM(EEPROM)、 盘驱动器 ( 如 628)、 软盘、 致密盘 ROM(CD-ROM)、 数字通用 盘 (DVD)、 闪速存储器、 磁光盘、 或能够存储电子数据 ( 例如, 包括指令 ) 的其它类型的非易 失性机器可读介质。
     在一个实施例中, 存储器 612 可包括以下一个或多个 : 操作系统 (O/S)632、 应用 634、 目录 601 和 / 或装置驱动程序 636。 存储器 612 还可包括专用于存储器映射 I/O(MMIO) 操作的区域。存储在存储器 612 中的程序和 / 或数据可作为存储器管理操作的一部分交换 到盘驱动器 628 中。应用 634 可 ( 例如, 在处理器 602 上 ) 执行以便与耦合到网络 605 的 一个或多个计算装置传送一个或多个分组。在一个实施例中, 分组可以是可由从至少一个 发送器传送到至少一个接收器 ( 例如, 通过诸如网络 605 的网络 ) 的一个或多个电信号编 码的一个或多个符号和 / 或值的序列。例如, 每个分组可具有报头, 报头包括可用于路由和 / 或处理分组的各种信息, 例如源地址、 目的地地址、 分组类型等。 每个分组还可具有有效载 荷, 有效载荷包括分组正在通过计算机网络 ( 如网络 605) 在各个计算装置之间传送的原始 数据 ( 或内容 )。
     在一个实施例中, 应用 634 可利用 O/S 632 来通过例如装置驱动程序 636 与系统 600 的各个组件通信。 因此, 装置驱动程序 636 可包括用于在 O/S 632 与网络适配器 630、 或 经由例如芯片组 606 耦合到系统 600 的其它 I/O 装置之间提供通信接口的网络适配器 630 特定命令。
     在一个实施例中, O/S 632 可包括网络协议栈。协议栈一般是指可执行以处理通 过网络 605 发送的分组的过程或程序集合, 其中分组可遵照指定协议。例如, TCP/IP( 传输 控制协议 / 互联网协议 ) 分组可利用 TCP/IP 栈来进行处理。装置驱动程序 636 可指示存 储器 612 中将经由例如该协议栈处理的缓冲器。
     网络 605 可包括任何类型的计算机网络。网络适配器 630 还可包括直接存储器访 问 (DMA) 引擎, 它将分组写入到指定给可用描述符 ( 例如, 存储在存储器 612 中 ) 的缓冲器 ( 例如, 存储在存储器 612 中 ), 以便通过网络 605 传送和 / 或接收数据。另外, 网络适配器 630 可包括网络适配器控制器, 它可包括用于执行与适配器有关的操作的逻辑 ( 例如, 一个 或多个可编程处理器 )。 在一个实施例中, 适配器控制器可以是 MAC( 媒体访问控制 ) 组件。 网络适配器 630 还可包括存储器, 例如任何类型的易失性 / 非易失性存储器 ( 例如, 包括一 个或多个高速缓存和 / 或参考存储器 612 论述的其它存储器类型 )。
     图 7 示出根据本发明一个实施例按照点对点 (PtP) 配置布置的计算系统 700。具 体而言, 图 7 示出其中处理器、 存储器和输入 / 输出装置通过多个点对点接口互连的系统。 参考图 1-6 论述的操作可由系统 700 的一个或多个组件来执行。
     如图 7 所示, 系统 700 可包括数个处理器, 为清楚起见, 只示出其中两个处理器 702 和 704。处理器 702 和 704 均可包括使得能够与存储器 710 和 712 通信的本地存储器控制 器集线器 (GMCH)706 和 708。存储器 710 和 / 或 712 可存储各种数据, 例如参考图 6 中的存 储器 612 论述的数据。如图 7 所示, 处理器 702 和 704( 或系统 700 的其它组件, 例如芯片 组 720、 I/O 装置 743 等 ) 还可包括一个或多个高速缓存, 例如参考图 1-6 论述的高速缓存。
     在一个实施例中, 处理器 702 和 704 可以是参考图 6 论述的处理器 602 之一。 处理 器 702 和 704 可分别利用点对点 (PtP) 接口电路 716 和 718 经由 PtP 接口 714 交换数据。并且, 处理器 702 和 704 均可利用点对点接口电路 726、 728、 730 和 732 经由单独 PtP 接口 722 和 724 与芯片组 720 交换数据。芯片组 720 还可利用例如 PtP 接口电路 737 经由高性 能图形接口 736 与高性能图形电路 734 交换数据。
     在至少一个实施例中, 可在处理器 702、 704 和 / 或芯片组 720 的一个或多个中提 供图 2 中的缓冲器 120( 和 / 或图 3 中的 300)。但是, 本发明的其它实施例可存在于图 7 的 系统 700 内的其它电路、 逻辑单元或装置中。此外, 本发明的其它实施例可分布在如图 7 所 示的几个电路、 逻辑单元或装置中。
     芯片组 720 可利用 PtP 接口电路 741 与总线 740 通信。总线 740 可具有与它通信 的一个或多个装置, 例如总线桥 742 和 I/O 装置 743。经由总线 744, 总线桥 742 可与其它 装置通信, 例如键盘 / 鼠标 745、 通信装置 746( 例如, 调制解调器、 网络接口装置或可与计算 机网络 605 通信的其它通信装置 )、 音频 I/O 装置、 和 / 或数据存储装置 748。数据存储装 置 748 可存储可由处理器 702 和 / 或 704 执行的代码 749。
     在本发明的各个实施例中, 本文参考例如图 1-7 论述的操作可作为硬件 ( 如电 路 )、 软件、 固件、 微代码或其组合来实现, 其可作为计算机程序产品来提供, 计算机程序产 品可包括例如其上存储有用于将计算机编程为执行本文论述的过程的指令 ( 或软件过程 ) 的机器可读或计算机可读介质。并且, 术语 “逻辑” 可包括例如软件、 硬件、 或软件和硬件的 组合。机器可读介质可包括存储装置, 例如关于图 1-7 论述的存储装置。另外, 这些计算机 可读介质可作为计算机程序产品下载, 其中程序可通过在载波或其它传播介质中提供的数 据信号经由通信链路 ( 例如, 总线、 调制解调器或网络连接 ) 从远程计算机 ( 例如, 服务器 ) 传送到请求计算机 ( 例如, 客户端 )。 本说明书中提到 “一个实施例” 或 “实施例” 时表示, 结合该实施例描述的特定特 征、 结构或特性可包含在至少一个实现中。本说明书的各个地方出现短语 “在一个实施例 中” 时可以或者可以不全都指相同的实施例。
     并且, 在本描述和权利要求书中, 可使用术语 “耦合” 和 “连接” 及其派生词。在本 发明的一些实施例中, “连接” 可用于指示两个或两个以上元件彼此直接物理或电接触。 “耦 合” 可表示两个或两个以上元件直接物理或电接触。但是, “耦合” 也可表示两个或两个以 上元件彼此不直接接触, 但仍然彼此共同协作或交互。
     因此, 尽管用结构特征和 / 或方法动作所特有的语言描述了本发明的实施例, 但 应了解, 要求权利的主题不限于所描述的特定特征或动作。 而是, 这些特定特征和动作是作 为实现要求权利的主题的样本形式公开的。
    

媒体缓冲和流水线式处理组件.pdf_第1页
第1页 / 共22页
媒体缓冲和流水线式处理组件.pdf_第2页
第2页 / 共22页
媒体缓冲和流水线式处理组件.pdf_第3页
第3页 / 共22页
点击查看更多>>
资源描述

《媒体缓冲和流水线式处理组件.pdf》由会员分享,可在线阅读,更多相关《媒体缓冲和流水线式处理组件.pdf(22页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN102033818A43申请公布日20110427CN102033818ACN102033818A21申请号201010507475122申请日2010092712/56773320090925USG06F12/08200601G06F13/1620060171申请人英特尔公司地址美国加利福尼亚州72发明人SG蒂登斯74专利代理机构中国专利代理香港有限公司72001代理人曲卫涛徐予红54发明名称媒体缓冲和流水线式处理组件57摘要描述与媒体缓冲和流水线式处理组件有关的方法和设备。在一个实施例中,一种缓冲器可包括用于从产生器接收数据结构信息的仲裁器;用于存储信息的存储器;以及用于。

2、指示存储器中的用于存储数据结构信息的位置的地址生成器。还公开了其它实施例。30优先权数据51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书3页说明书11页附图7页CN102033821A1/3页21一种缓冲器,包括仲裁器,用于从产生器接收对应于数据结构的信息;存储器,用于存储对应于所述数据结构的所述信息;以及地址生成器,用于生成对应于所述存储器中的用于存储对应于所述数据结构的所述信息的位置的所述存储器中的地址,其中用户响应指示所述信息整体存储在所述存储器中的信号从所述存储器读取对应于所述数据结构的所述信息,并根据所述数据结构处理来自所述产生器的数据。2如权利要求1所述的缓。

3、冲器,还包括用于控制所述仲裁器和所述地址生成器的操作的控制器逻辑。3如权利要求1所述的缓冲器,还包括用于将对应于所述产生器的数据预取到所述缓冲器的本地存储器中的控制器逻辑。4如权利要求1所述的缓冲器,其中所述缓冲器包括包含所述存储器、所述地址生成器和所述仲裁器的第一级,其中所述缓冲器还包括第二级,所述第二级包括另一仲裁器,用于从所述产生器接收对应于所述数据结构的信息;另一地址生成器,用于生成对应于存储器子系统中的用于存储对应于所述数据结构的所述信息的位置的所述存储器子系统中的地址;以及总线代理,用于将所述另一地址生成器耦合到所述存储器子系统。5如权利要求4所述的缓冲器,其中所述用户响应指示所述。

4、信息整体存储在所述存储器子系统中的准予信号从所述存储器子系统读取对应于所述数据结构的所述信息。6如权利要求1所述的缓冲器,其中所述缓冲器是先填后溢FFLS缓冲器。7如权利要求1所述的缓冲器,其中所述缓冲器包括多个缓冲器级,并且至少第一级缓冲器和第二级缓冲器均包括所述存储器、所述地址生成器和所述仲裁器。8如权利要求7所述的缓冲器,其中来自所述产生器的数据响应所述第一级缓冲器已满的判定而经过所述第一级缓冲器到达所述第二级缓冲器。9如权利要求1所述的缓冲器,其中所述存储器基于基地址和偏移存储所述数据结构。10如权利要求1所述的缓冲器,还包括用于控制所述仲裁器和所述地址生成器的操作的控制器逻辑,其中所。

5、述控制器逻辑通过处理器用包括以下信息中的一种或多种信息的产生器或用户信息进行配置数据总线宽度,为每个产生器存储的数据结构数,用于从下游缓冲器级提取溢出结构的水印,一次提取的缓冲器数,每个产生器的第一结构的基数据结构地址,低缓冲器水印级,溢出操作,或仲裁操作。11一种方法,包括从产生器接收对应于数据结构的信息;将对应于所述数据结构的所述信息存储在存储器中;生成对应于所述存储器中的用于存储对应于所述数据结构的所述信息的位置的所述存储器中的地址;以及响应指示所述信息整体存储在所述存储器中的信号而在用户处从所述存储器读取对应于所述数据结构的所述信息。12如权利要求11所述的方法,还包括根据所述数据结构。

6、处理来自所述产生器的数权利要求书CN102033818ACN102033821A2/3页3据。13如权利要求11所述的方法,还包括将对应于所述产生器的数据预取到耦合在所述用户与所述产生器之间的缓冲器的本地存储器中。14如权利要求11所述的方法,还包括将数据从耦合在所述产生器与所述用户之间的缓冲器的第一级传递到所述缓冲器的第二级,其中所述第一级包括所述存储器,而所述第二级包括用于访问存储器子系统的总线代理。15如权利要求14所述的方法,其中将所述数据从所述第一级传送到所述第二级是响应所述第一级缓冲器已满的判定而执行的。16如权利要求14所述的方法,还包括所述用户响应指示所述信息整体存储在所述存储。

7、器子系统中的准予信号从所述存储器子系统读取对应于所述数据结构的所述信息。17如权利要求11所述的方法,其中基于基地址和偏移执行将所述信息存储在所述存储器中。18一种系统,包括用于控制仲裁器的控制器逻辑,其中所述仲裁器从产生器接收对应于数据结构的信息;用于用产生器或用户信息配置所述控制器逻辑的处理器;用于存储对应于所述数据结构的所述信息的存储器;以及地址生成器,用于生成对应于所述存储器中的用于存储对应于所述数据结构的所述信息的位置的所述存储器中的地址,其中用户响应指示所述信息整体存储在所述存储器中的信号从所述存储器读取对应于所述数据结构的所述信息,并根据所述数据结构处理来自所述产生器的数据。19。

8、如权利要求18所述的系统,其中所述控制器逻辑控制所述地址生成器的操作。20如权利要求18所述的系统,其中所述控制器逻辑将对应于所述产生器的数据预取到耦合在所述产生器与所述用户之间的缓冲器的本地存储器中。21如权利要求20所述的系统,其中所述缓冲器是先填后溢FFLS缓冲器。22如权利要求19所述的系统,其中所述缓冲器包括多个缓冲器级,并且至少第一级缓冲器和第二级缓冲器均包括所述存储器、所述地址生成器和所述仲裁器。23如权利要求18所述的系统,其中所述存储器基于基地址和偏移存储所述数据结构。24一种用于存储一个或多个指令的计算机可读介质,所述一个或多个指令在由处理器执行时执行一个或多个操作以便从产。

9、生器接收对应于数据结构的信息;将对应于所述数据结构的所述信息存储在存储器中;生成对应于所述存储器中的用于存储对应于所述数据结构的所述信息的位置的所述存储器中的地址;以及响应指示所述信息整体存储在所述存储器中的信号而在用户处从所述存储器读取对应于所述数据结构的所述信息。25如权利要求24所述的介质,其中所述一个或多个指令使所述处理器根据所述数据结构处理来自所述产生器的数据。权利要求书CN102033818ACN102033821A3/3页426如权利要求24所述的介质,其中所述一个或多个指令使所述处理器将对应于所述产生器的数据预取到耦合在所述用户与所述产生器之间的缓冲器的本地存储器中。27如权利。

10、要求24所述的介质,其中所述一个或多个指令使所述处理器将数据从耦合在所述产生器与所述用户之间的缓冲器的第一级传送到所述缓冲器的第二级,其中所述第一级包括所述存储器,而所述第二级包括用于访问存储器子系统的总线代理。28如权利要求27所述的介质,其中所述一个或多个指令使所述处理器响应所述第一级缓冲器已满的判定而将所述数据从所述第一级传送到所述第二级。29如权利要求27所述的介质,其中所述一个或多个指令使所述用户响应指示所述信息整体存储在所述存储器子系统中的准予信号而从所述存储器子系统读取对应于所述数据结构的所述信息。30如权利要求24所述的介质,其中所述一个或多个指令使所述处理器基于基地址和偏移将。

11、所述信息存储在所述存储器中待执行。权利要求书CN102033818ACN102033821A1/11页5媒体缓冲和流水线式处理组件技术领域0001一般来说,本公开涉及电子领域。更具体来说,本发明的实施例涉及媒体缓冲及流水线式处理组件。背景技术0002在计算中,缓冲器一般是指临时存储数据的存储区域。大多数计算操作涉及某一种类的缓冲,例如其中存储用于计算的输入数据或由计算产生的输出数据。当将数据从一个位置移动到另一位置时,也可使用缓冲器。因此,如何实现缓冲器可对总的系统效率或等待时间有显著影响。0003此外,不同类型的数据可能需要不同类型的实现以达到操作效率、更低的产品成本或更快的速度。因此,缓冲。

12、器的设计变成一项复杂的任务。发明内容0004本发明涉及一种缓冲器,包括0005仲裁器,用于从产生器接收对应于数据结构的信息;0006存储器,用于存储对应于所述数据结构的所述信息;以及0007地址生成器,用于生成对应于所述存储器中的用于存储对应于所述数据结构的所述信息的位置的所述存储器中的地址,0008其中用户响应指示所述信息整体存储在所述存储器中的信号从所述存储器读取对应于所述数据结构的所述信息,并根据所述数据结构处理来自所述产生器的数据。0009本发明涉及一种方法,包括0010从产生器接收对应于数据结构的信息;0011将对应于所述数据结构的所述信息存储在存储器中;0012生成对应于所述存储器。

13、中的用于存储对应于所述数据结构的所述信息的位置的所述存储器中的地址;以及0013响应指示所述信息整体存储在所述存储器中的信号而在用户处从所述存储器读取对应于所述数据结构的所述信息。0014本发明涉及一种系统,包括0015用于控制仲裁器的控制器逻辑,其中所述仲裁器从产生器接收对应于数据结构的信息;0016用于用产生器或用户信息配置所述控制器逻辑的处理器;0017用于存储对应于所述数据结构的所述信息的存储器;以及0018地址生成器,用于生成对应于所述存储器中的用于存储对应于所述数据结构的所述信息的位置的所述存储器中的地址,其中用户响应指示所述信息整体存储在所述存储器中的信号从所述存储器读取对应于所。

14、述数据结构的所述信息,并根据所述数据结构处理来自所述产生器的数据。说明书CN102033818ACN102033821A2/11页60019本发明涉及一种用于存储一个或多个指令的计算机可读介质,所述一个或多个指令在由处理器执行时执行一个或多个操作以便0020从产生器接收对应于数据结构的信息;0021将对应于所述数据结构的所述信息存储在存储器中;0022生成对应于所述存储器中的用于存储对应于所述数据结构的所述信息的位置的所述存储器中的地址;以及0023响应指示所述信息整体存储在所述存储器中的信号而在用户处从所述存储器读取对应于所述数据结构的所述信息。附图说明0024参考附图提供详细描述。在图中,。

15、附图标记左边的数字标识该附图标记第一次出现时所在的图。不同图中使用相同的附图标记表示类似或等同项。0025图1和图67示出可用于实现本文论述的各种实施例的计算系统的实施例的框图。0026图23示出根据一些实施例的缓冲器的框图。0027图45示出根据一些实施例的时序图。具体实施方式0028在以下描述中,阐述了众多具体细节以充分理解各个实施例。但是,没有这些具体细节也可实现一些实施例。在其它情况下,没有详细描述公知的方法、过程、组件和电路,以免使这些具体实施例晦涩难懂。0029一些实施例提供媒体及非媒体缓冲流水线式处理组件。在一个实施例中,利用协议来允许在产生器PRODUCER、用户CONSUME。

16、R、和/或硬件体系结构的多个级之间进行协调。例如,产生器可将数据结构例如,阐述格式化信息传送给缓冲器,然后由用户读取该缓冲器。这允许缓冲器的可配置性。并且,缓冲器可包括多个缓冲级,这些缓冲级可根据需要配置或添加例如,其中对于特定实现需要更多存储空间。0030如本文所论述,产生器一般是指产生将由用户处理的事务的代理。协议一般可表示从产生器到用户的事务的抽象化。如本文所论述,术语事务可与分组互换使用。分组一般可指可包括一个或多个位的数据合集。0031在一些当前的系统中,当在产生器与用户之间进行缓冲时,可使用状态机,并且状态机可能必须随实现而改变。相比之下,即使当分组中的数据改变、分组的字宽改变等时。

17、,实施例仍可利用相同的状态机例如,实现相同的协议。这减少了重新设计的需要、将产品推向市场所需的时间和/或设计成本。在一个实施例中,耦合在用户与产生器之间的缓冲器还可包括地址生成逻辑,以用于例如在用户或产生器需要访问系统存储器时提供地址生成。另外,在一些实施例中,缓冲器可具有弹性或动态可调的大小。0032可使用各种计算系统来实现本文论述的实施例,例如参考图1和图67论述的系统。更具体地说,图1示出根据本发明一个实施例的计算系统100的框图。系统100可包括一个或多个代理1021至102M在本文中统称为“多个代理102”,或更一般地统称为“代理102”。在一个实施例中,其中一个或多个代理102可以。

18、是计算系统例如,参考图67说明书CN102033818ACN102033821A3/11页7论述的计算系统的任何组件。此外,代理102可以是用户或产生器。0033如图1所示,代理102可经由网络架构104通信。在一个实施例中,网络架构104可包括允许各种代理如计算装置传送数据的计算机网络。在一个实施例中,网络架构104可包括经由串行例如,点对点链路和/或共享通信网络通信的一个或多个互连或互连网络。例如,一些实施例可便于在允许与全缓冲双列直插存储器模块FBD通信的链路上进行组件调试或验证,例如其中FBD链路是用于将存储器模块耦合到主控制器装置例如,处理器或存储器集线器的串行链路。调试信息可从FB。

19、D信道主机传送,以便可以沿该信道通过信道业务轨迹捕获工具例如,一个或多个逻辑分析器观察调试信息。0034在一个实施例中,系统100可支持分层协议方案,它可包括物理层、链路层、路由层、传输层和/或协议层。架构104还可便于对于点对点或共享网络将数据例如以分组形式从一个协议例如,缓存处理器或缓存感知存储器控制器传送到另一协议。并且,在一些实施例中,网络架构104还可提供遵守一个或多个高速缓存一致性协议的通信。0035此外,如图1中的箭头方向所示,代理102可经由网络架构104传送和/或接收数据。因此,一些代理可利用单向链路来通信,而其它代理可利用双向链路来通信。例如,一个或多个代理如代理102M可。

20、传送数据例如,经由单向链路106,其它代理如代理1022可接收数据例如,经由单向链路108,而一些代理如代理1021可传送和接收数据例如,经由双向链路110。0036另外,如图1所示,代理102可经由一个或多个缓冲器120耦合到其它代理。在一个实施例中,缓冲器120可作为网络架构104的一部分来实现。关于缓冲器120的各种实施例的更多细节将参考图27进行论述。0037参考图2,示出根据一个实施例的缓冲器120的框图。如图所示,图2中的缓冲器120作为流水线来实现。在一个实施例中,将流水线缓冲协议例如,如本文参考例如图17所论述设计为位于产品特定缓冲实现之上的层。这允许硬件加速器或协处理器在几代。

21、设计和产品上保持相当稳定。0038并且,图2中示出的体系结构提供服务于产生器和用户的多级缓冲方案,并且提供最小集合的访问信息和几乎为零的产生器与用户之间的通信以存储、溢出和提取数据。在一些实施例中,多个先填后溢FIRSTFILLLASTSPILLS,FFLS级可耦合在一起其中,每一级可包括图2中示出的一个或多个组件,其中最后一级例如,图3中的FFLS最后一级300经由总线代理例如,图3中的总线代理304耦合到存储器子系统例如,图3中的存储器302。0039如图2所示,产生器可将数据结构写入到缓冲器中例如,经由在多个产生器输入202/204之间仲裁的写端口仲裁器201,并且用户可通过用户接口未示。

22、出从缓冲器120中检索数据206它还可包括数据结构信息例如,存储在存储器208中的数据,在一些实施例中,存储器208可以是随机存取存储器RAM或DDR双倍数据速率存储器。在一个实施例中,用户响应指示对应于数据结构的信息整体存储在存储器中的信号从存储器读取该信息,然后用户可根据该数据结构处理来自产生器的数据。控制处理器209它可以是本文论述的任一处理器,例如参考图6或图7论述的处理器或处理器软件可建立产生器和用户配对以及每个缓冲器中所允许的数据结构的数量。配对和缓冲器深度以及本文论述的其它数据可编程到控制器存储器210中。说明书CN102033818ACN102033821A4/11页80040。

23、此外,将最小集合的ID标识符、结构编号/索引、和/或子结构偏移从产生器如202或204传送到缓冲器120包括传送到仲裁器201和可生成对应于存储器208中的位置的地址的写端口地址生成211,或从用户传送到缓冲控制器,包括例如读端口仲裁器212它在多个用户输入214/216之间仲裁和读端口地址生成器218它可生成用于访问存储器208中的位置的地址。0041流水线缓冲PB控制器逻辑220可基于例如存储在存储器210它可以是RAM或只读存储器ROM或本文参考图6或图7论述的其它形式的存储器中的数据控制在芯片上存储器208例如,RAM或DDR存储器中寻找数据和确定物理地址的其它方面。在一个实施例中,控。

24、制器220和处理器209可经由多路复用器耦合到存储器210;但是,其它实施例可利用多端口存储器而不是多路复用器来允许访问存储器210。另外,如果某一缓冲级或缓冲阶已经被任意产生器的数据222/224或任何额外数据填满,则该产生器的数据222/224可流过这一缓冲级或缓冲阶例如,通过在数据222或数据224之间选择的多路复用器226。这样,除非采用例如利用“单个最近缓冲”的修改过的保留策略,否则无需重新缓冲或逐出数据。多级缓冲系统可通过例如耦合多个缓冲器120而构建在相同的可配置硬件上,其中将产生器数据222/224和/或产生器数据结构202/204传递到下一级缓冲器。0042此外,控制处理器2。

25、09或主处理器可以用产生器/用户信息编程或配置流水线缓冲器控制器220例如,经由存储器210,产生器/用户信息包括例如以下一种或多种数据总线宽度或以数据总线宽度/RAM字计的结构大小,为每个产生器存储的数据结构数,用于从下游本地缓冲器提取溢出结构的水印在本文中又可互换地称为“阈”级,一次提取的缓冲器数,每个产生器的第一结构的基数据结构地址,低缓冲器水印级,溢出操作,和/或仲裁操作。流水线缓冲器还可包含允许控制处理器或主处理器充当产生器或用户的端口。这例如允许在两个硬件加速器或流水线缓冲器120之间插入软件进程。0043在一个实施例中,产生器可将包括以下一种或多种信息的信息传送给缓冲器120产生。

26、器ID,请求/准予,停顿STALL,行进序列/数据缓冲器/结构编号/计数,内部偏移地址例如,以数据字计,和/或结构访问完成信号。在一个实施例中,用户可将包括以下一种或多种信息的信息传送给缓冲器120用户ID,请求/准予,停顿,行进序列/数据缓冲器/结构编号/计数,内部偏移地址例如,以数据字计,和/或结构访问完成信号。此外,在一些实施例中,每个产生器/用户对具有用于定义第一数据结构的物理位置的共享初始“基数据结构地址”。但是,产生器“当前数据结构地址”可以用产生器的结构写完成信号来更新。用户“当前数据结构地址”可以类似地用用户的结构读完成信号来更新。控制器220可提供对执行物理地址计算和端口仲裁。

27、的硬件例如,分别为仲裁器201和地址生成器211的更新。因此,在一个实施例中,控制器220可以不在数据流的关键路径中。0044此外,流水线缓冲器控制器可以按层级方式分级以便向总线代理例如,图3中的总线代理304提供额外的芯片上缓冲或简化的接口。总线代理304可以提供共享总线拓扑以使一个或多个其它代理在通信上彼此耦合例如,如参考图1中的架构104所论述,或者本文参考例如图6或图7论述的其它总线。在一些实施例中,来自产生器的数据可基于对于该产生器第一级缓冲器已满或者用其它方式已满并且不能存储任何额外数据的判定而直接经过第一级缓冲器到达下一个流水线缓冲器级。流水线缓冲器控制器220可根据由控制处理器。

28、209或主处理器设置的水印将任何数据预取到例如存储器210中。为用说明书CN102033818ACN102033821A5/11页9户提取的数据可直接传递给用户或未满的下一个流水线其中下一个流水线可与满的流水线直接相邻,或经由其它流水线级耦合到满的流水线。0045并非所有层级链都在DDR终止。一些只是芯片上的,并最终使产生器停顿。甚至连没有一路溢到SPILLALLTHEWAYTODDR的加速器之间的本地缓冲器也可在简化接口的益处胜过流水线缓冲器控制器的任何等待时间和区域考虑时利用流水线缓冲器协议。0046图3示出根据一个实施例的最后一级FFLS300的框图。如图3所示,FFLS300可包括与图。

29、2中的缓冲器120相同或类似的组件。取代包括存储器例如,图2中的存储器208,FFLS300可如上所述经由总线代理304访问存储器子系统302。在一些实施例中,图3示出当FFLS控制器利用包括总线代理304和存储器子系统302的配置在内的多级系统配置来确定哪个请求者要服务时的情形,而图2示出按照条目206通过写端口仲裁器201控制数据多路复用器226例如,其中206是较简单的方法,它可在无需了解304和302的第一或单级系统中实现。0047此外,下一代消费型电子硅组件可能要求硬件可配置性、可编程性和灵活性以便以最少的重新设计和重新验证来同时支持多个产品系列。来自不同细分市场的不同功率、区域和存。

30、储器性能要求的并行产品开发要求加快进度。本文论述的体系结构将加速器的设计与流水线缓冲的设计分开。这提供了相依性的减少,并且允许在正确的领域解决正确的设计问题。加速器可设计成具有变化的像素处理宽度和可编程控制以支持多种格式的硬件可配置块。加速器可对于给定格式集合设计和验证一次。流水线缓冲只设计一次,但是可对于每种产品进行优化。加速器可以设计成具有标准化协议和简化的接口以便支持自或到流水线中的其它主要加速器的数据传输。如本文所论述,一个完整的流水线可包括通过流水线缓冲耦合在一起的一组加速器。流水线缓冲提供用于将数据从一个加速器传送到另一个加速器的机制。它还为例如具有不匹配的吞吐量的加速器提供过缓冲。

31、管理和预取能力。0048另外,加速器中解决的设计问题可包括定义内部数据结构以支持多格式处理;满足复杂功率、区域和实时处理空间中的吞吐量要求;各处理元件之间的等待时间;和/或保持数据排序,例如光栅行排序。流水线缓冲中解决的设计问题可包括缓冲器体系结构例如,高速缓存对线性缓冲;过缓冲器管理;缓冲器大小设计;总线代理复杂性例如,在写附近读取READAROUNDWRITES;仲裁策略;存储器控制器接口;预取等级和大小设计;和/或逐出策略。一旦将加速器和流水线缓冲一起放到一个完整的流水线中,则基于性能验证进行进一步优化便成为可能。在一些实施例中,优化可能局限于流水线缓冲中的缓冲器大小设计和总线宽度大小设。

32、计。0049因此,一些实施例例如,包括本文所论述的协议、设备、方法、系统等可用于并行设计下一代音频、视频、安全性、网络、芯片组、处理器和其它流水线式加速器以在硅组件中使用。这些设计可提供改进的缓冲器优化和加快的时间进度,同时潜在地节约成本。0050图4示出根据一个实施例的产生器接口时序图。图5示出根据一个实施例的用户接口时序图。下表1和表2分别指示根据一些实施例图45中的每个信号所指的内容其中“CLK”是指具有所列举的周期的时钟信号。0051说明书CN102033818ACN102033821A6/11页100052说明书CN102033818ACN102033821A7/11页110053表。

33、1对应于图4中的信号00540055说明书CN102033818ACN102033821A8/11页120056表2对应于图5中的信号0057图6示出计算系统600的一个实施例的框图。图1中的一个或多个代理可包括计算系统600的一个或多个组件。并且,系统600的各个组件可包括缓冲器例如,如图15中的缓冲器120/300。计算系统600可包括耦合到互连网络或总线604的一个或多个中央处理单元CPU602在本文中可统称为“多个处理器602”,或更一般地统称为“处理器602”。处理器602可以是任何类型的处理器,例如通用处理器、网络处理器它可处理通过计算机网络605传送的数据等包括精简指令集计算机R。

34、ISC处理器或复杂指令集计算机CISC。此外,处理器602可具有单核或多核设计。具有多核设计的处理器602说明书CN102033818ACN102033821A9/11页13可在相同的集成电路IC管芯上集成不同类型的处理器核。并且,具有多核设计的处理器602可作为对称或非对称多处理器来实现。0058处理器602可包括一个或多个缓冲器例如,不同于所示的缓冲器120和/或300,在各种实施例中,这一个或多个缓冲器可以是私有的和/或共享的。一般来说,高速缓存存储对应于存储在其它位置或较早计算的原始数据的数据。为了减少存储器访问等待时间,一旦将数据存储在高速缓存中,便可通过访问所缓存的副本来用于未来使。

35、用,而不是重新提取或重新计算原始数据。高速缓存可以是任何类型的高速缓存,如1级L1高速缓存、2级L2高速缓存、3级L3高速缓存、中间级高速缓存、最后一级高速缓存LLC等,以便存储供系统600的一个或多个组件使用的电子数据例如,包括指令。另外,这个或这些高速缓存可设置在各种位置例如,设置在本文论述的计算系统包括图1或图7中的系统的其它组件内。0059芯片组606可另外耦合到互连网络604。此外,芯片组606可包括图形存储器控制集线器GMCH608。GMCH608可包括耦合到存储器612的存储器控制器610。存储器612可存储数据,包括例如供处理器602或与计算系统600的组件通信的任何其它装置执。

36、行的指令序列。并且,在本发明的一个实施例中,存储器612可包括一个或多个易失性存储或存储器装置,例如随机存取存储器RAM、动态RAMDRAM、同步DRAMSDRAM、静态RAMSRAM等。也可使用非易失性存储器,如硬盘。另外的装置可耦合到互连网络604,如多个处理器和/或多个系统存储器。0060GMCH608还可包括耦合到显示器装置616例如,在一个实施例中,经由图形加速器的图形接口614。在一个实施例中,图形接口614可经由加速图形端口AGP耦合到显示器装置616。在本发明的一个实施例中,显示器装置616如平板显示器可通过例如信号转换器耦合到图形接口614,信号转换器将存储在诸如视频存储器或。

37、系统存储器如存储器612的存储装置中的图像的数字表示转化为由显示器616解释和显示的显示信号。0061如图6所示,集线器接口618可将GMCH608耦合到输入/输出控制集线器ICH620。ICH620可提供到耦合到计算系统600的输入/输出I/O装置的接口。ICH620可通过诸如遵照PCIE规范的外围组件互连PCI桥的外围桥或控制器624、通用串行总线USB控制器等耦合到总线622。桥624可在处理器602与外围装置之间提供数据路径。也可利用其它类型的拓扑。并且,多条总线可通过例如多个桥或控制器耦合到ICH620。此外,总线622可包括其它类型和配置的总线系统。而且,在本发明的各个实施例中,耦。

38、合到ICH620的其它外围设备可包括集成驱动电子设备IDE或小型计算机系统接口SCSI硬盘驱动器、USB端口、键盘、鼠标、并行端口、串行端口、软盘驱动器、数字输出支持例如,数字视频接口DVI等。0062总线622可耦合到音频装置626、一个或多个盘驱动器628和网络适配器630在一个实施例中,它可以是NIC。在一个实施例中,耦合到总线622的网络适配器630或其它装置可与芯片组606通信。并且,在本发明的一些实施例中,各个组件如网络适配器630可耦合到GMCH608。此外,处理器602和GMCH608可进行组合以形成单个芯片。在一个实施例中,存储器控制器610可设置在其中一个或多个CPU602。

39、中。此外,在一个实施例中,GMCH608和ICH620可组合到外围控制集线器PCH中。0063另外,计算系统600可包括易失性和/或非易失性存储器或存储设备。例说明书CN102033818ACN102033821A10/11页14如,非易失性存储器可包括以下一个或多个只读存储器ROM、可编程ROMPROM、可擦除PROMEPROM、电EPROMEEPROM、盘驱动器如628、软盘、致密盘ROMCDROM、数字通用盘DVD、闪速存储器、磁光盘、或能够存储电子数据例如,包括指令的其它类型的非易失性机器可读介质。0064在一个实施例中,存储器612可包括以下一个或多个操作系统O/S632、应用634。

40、、目录601和/或装置驱动程序636。存储器612还可包括专用于存储器映射I/OMMIO操作的区域。存储在存储器612中的程序和/或数据可作为存储器管理操作的一部分交换到盘驱动器628中。应用634可例如,在处理器602上执行以便与耦合到网络605的一个或多个计算装置传送一个或多个分组。在一个实施例中,分组可以是可由从至少一个发送器传送到至少一个接收器例如,通过诸如网络605的网络的一个或多个电信号编码的一个或多个符号和/或值的序列。例如,每个分组可具有报头,报头包括可用于路由和/或处理分组的各种信息,例如源地址、目的地地址、分组类型等。每个分组还可具有有效载荷,有效载荷包括分组正在通过计算机。

41、网络如网络605在各个计算装置之间传送的原始数据或内容。0065在一个实施例中,应用634可利用O/S632来通过例如装置驱动程序636与系统600的各个组件通信。因此,装置驱动程序636可包括用于在O/S632与网络适配器630、或经由例如芯片组606耦合到系统600的其它I/O装置之间提供通信接口的网络适配器630特定命令。0066在一个实施例中,O/S632可包括网络协议栈。协议栈一般是指可执行以处理通过网络605发送的分组的过程或程序集合,其中分组可遵照指定协议。例如,TCP/IP传输控制协议/互联网协议分组可利用TCP/IP栈来进行处理。装置驱动程序636可指示存储器612中将经由例。

42、如该协议栈处理的缓冲器。0067网络605可包括任何类型的计算机网络。网络适配器630还可包括直接存储器访问DMA引擎,它将分组写入到指定给可用描述符例如,存储在存储器612中的缓冲器例如,存储在存储器612中,以便通过网络605传送和/或接收数据。另外,网络适配器630可包括网络适配器控制器,它可包括用于执行与适配器有关的操作的逻辑例如,一个或多个可编程处理器。在一个实施例中,适配器控制器可以是MAC媒体访问控制组件。网络适配器630还可包括存储器,例如任何类型的易失性/非易失性存储器例如,包括一个或多个高速缓存和/或参考存储器612论述的其它存储器类型。0068图7示出根据本发明一个实施例。

43、按照点对点PTP配置布置的计算系统700。具体而言,图7示出其中处理器、存储器和输入/输出装置通过多个点对点接口互连的系统。参考图16论述的操作可由系统700的一个或多个组件来执行。0069如图7所示,系统700可包括数个处理器,为清楚起见,只示出其中两个处理器702和704。处理器702和704均可包括使得能够与存储器710和712通信的本地存储器控制器集线器GMCH706和708。存储器710和/或712可存储各种数据,例如参考图6中的存储器612论述的数据。如图7所示,处理器702和704或系统700的其它组件,例如芯片组720、I/O装置743等还可包括一个或多个高速缓存,例如参考图1。

44、6论述的高速缓存。0070在一个实施例中,处理器702和704可以是参考图6论述的处理器602之一。处理器702和704可分别利用点对点PTP接口电路716和718经由PTP接口714交换数据。说明书CN102033818ACN102033821A11/11页15并且,处理器702和704均可利用点对点接口电路726、728、730和732经由单独PTP接口722和724与芯片组720交换数据。芯片组720还可利用例如PTP接口电路737经由高性能图形接口736与高性能图形电路734交换数据。0071在至少一个实施例中,可在处理器702、704和/或芯片组720的一个或多个中提供图2中的缓冲器。

45、120和/或图3中的300。但是,本发明的其它实施例可存在于图7的系统700内的其它电路、逻辑单元或装置中。此外,本发明的其它实施例可分布在如图7所示的几个电路、逻辑单元或装置中。0072芯片组720可利用PTP接口电路741与总线740通信。总线740可具有与它通信的一个或多个装置,例如总线桥742和I/O装置743。经由总线744,总线桥742可与其它装置通信,例如键盘/鼠标745、通信装置746例如,调制解调器、网络接口装置或可与计算机网络605通信的其它通信装置、音频I/O装置、和/或数据存储装置748。数据存储装置748可存储可由处理器702和/或704执行的代码749。0073在本。

46、发明的各个实施例中,本文参考例如图17论述的操作可作为硬件如电路、软件、固件、微代码或其组合来实现,其可作为计算机程序产品来提供,计算机程序产品可包括例如其上存储有用于将计算机编程为执行本文论述的过程的指令或软件过程的机器可读或计算机可读介质。并且,术语“逻辑”可包括例如软件、硬件、或软件和硬件的组合。机器可读介质可包括存储装置,例如关于图17论述的存储装置。另外,这些计算机可读介质可作为计算机程序产品下载,其中程序可通过在载波或其它传播介质中提供的数据信号经由通信链路例如,总线、调制解调器或网络连接从远程计算机例如,服务器传送到请求计算机例如,客户端。0074本说明书中提到“一个实施例”或“。

47、实施例”时表示,结合该实施例描述的特定特征、结构或特性可包含在至少一个实现中。本说明书的各个地方出现短语“在一个实施例中”时可以或者可以不全都指相同的实施例。0075并且,在本描述和权利要求书中,可使用术语“耦合”和“连接”及其派生词。在本发明的一些实施例中,“连接”可用于指示两个或两个以上元件彼此直接物理或电接触。“耦合”可表示两个或两个以上元件直接物理或电接触。但是,“耦合”也可表示两个或两个以上元件彼此不直接接触,但仍然彼此共同协作或交互。0076因此,尽管用结构特征和/或方法动作所特有的语言描述了本发明的实施例,但应了解,要求权利的主题不限于所描述的特定特征或动作。而是,这些特定特征和动作是作为实现要求权利的主题的样本形式公开的。说明书CN102033818ACN102033821A1/7页16图1说明书附图CN102033818ACN102033821A2/7页17图2说明书附图CN102033818ACN102033821A3/7页18图3说明书附图CN102033818ACN102033821A4/7页19图4说明书附图CN102033818ACN102033821A5/7页20图5说明书附图CN102033818ACN102033821A6/7页21图6说明书附图CN102033818ACN102033821A7/7页22图7说明书附图CN102033818A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1