CN102033818A - 媒体缓冲和流水线式处理组件 - Google Patents

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

Info

Publication number
CN102033818A
CN102033818A CN2010105074751A CN201010507475A CN102033818A CN 102033818 A CN102033818 A CN 102033818A CN 2010105074751 A CN2010105074751 A CN 2010105074751A CN 201010507475 A CN201010507475 A CN 201010507475A CN 102033818 A CN102033818 A CN 102033818A
Authority
CN
China
Prior art keywords
impact damper
generator
storer
data structure
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2010105074751A
Other languages
English (en)
Other versions
CN102033818B (zh
Inventor
S·G·蒂登斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN102033818A publication Critical patent/CN102033818A/zh
Application granted granted Critical
Publication of CN102033818B publication Critical patent/CN102033818B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Transfer Systems (AREA)
  • Storage Device Security (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Generation (AREA)

Abstract

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

Description

媒体缓冲和流水线式处理组件
技术领域
一般来说,本公开涉及电子领域。更具体来说,本发明的实施例涉及媒体缓冲及流水线式处理组件。
背景技术
在计算中,缓冲器一般是指临时存储数据的存储区域。大多数计算操作涉及某一种类的缓冲,例如其中存储用于计算的输入数据或由计算产生的输出数据。当将数据从一个位置移动到另一位置时,也可使用缓冲器。因此,如何实现缓冲器可对总的系统效率或等待时间有显著影响。
此外,不同类型的数据可能需要不同类型的实现以达到操作效率、更低的产品成本或更快的速度。因此,缓冲器的设计变成一项复杂的任务。
发明内容
本发明涉及一种缓冲器,包括:
仲裁器,用于从产生器接收对应于数据结构的信息;
存储器,用于存储对应于所述数据结构的所述信息;以及
地址生成器,用于生成对应于所述存储器中的用于存储对应于所述数据结构的所述信息的位置的所述存储器中的地址,
其中用户响应指示所述信息整体存储在所述存储器中的信号从所述存储器读取对应于所述数据结构的所述信息,并根据所述数据结构处理来自所述产生器的数据。
本发明涉及一种方法,包括:
从产生器接收对应于数据结构的信息;
将对应于所述数据结构的所述信息存储在存储器中;
生成对应于所述存储器中的用于存储对应于所述数据结构的所述信息的位置的所述存储器中的地址;以及
响应指示所述信息整体存储在所述存储器中的信号而在用户处从所述存储器读取对应于所述数据结构的所述信息。
本发明涉及一种系统,包括:
用于控制仲裁器的控制器逻辑,其中所述仲裁器从产生器接收对应于数据结构的信息;
用于用产生器或用户信息配置所述控制器逻辑的处理器;
用于存储对应于所述数据结构的所述信息的存储器;以及
地址生成器,用于生成对应于所述存储器中的用于存储对应于所述数据结构的所述信息的位置的所述存储器中的地址,其中用户响应指示所述信息整体存储在所述存储器中的信号从所述存储器读取对应于所述数据结构的所述信息,并根据所述数据结构处理来自所述产生器的数据。
本发明涉及一种用于存储一个或多个指令的计算机可读介质,所述一个或多个指令在由处理器执行时执行一个或多个操作以便:
从产生器接收对应于数据结构的信息;
将对应于所述数据结构的所述信息存储在存储器中;
生成对应于所述存储器中的用于存储对应于所述数据结构的所述信息的位置的所述存储器中的地址;以及
响应指示所述信息整体存储在所述存储器中的信号而在用户处从所述存储器读取对应于所述数据结构的所述信息。
附图说明
参考附图提供详细描述。在图中,附图标记左边的数字标识该附图标记第一次出现时所在的图。不同图中使用相同的附图标记表示类似或等同项。
图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”是指具有所列举的周期的时钟信号)。
Figure BSA00000303609700091
Figure BSA00000303609700101
表1-对应于图4中的信号
Figure BSA00000303609700102
表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论述的存储装置。另外,这些计算机可读介质可作为计算机程序产品下载,其中程序可通过在载波或其它传播介质中提供的数据信号经由通信链路(例如,总线、调制解调器或网络连接)从远程计算机(例如,服务器)传送到请求计算机(例如,客户端)。
本说明书中提到“一个实施例”或“实施例”时表示,结合该实施例描述的特定特征、结构或特性可包含在至少一个实现中。本说明书的各个地方出现短语“在一个实施例中”时可以或者可以不全都指相同的实施例。
并且,在本描述和权利要求书中,可使用术语“耦合”和“连接”及其派生词。在本发明的一些实施例中,“连接”可用于指示两个或两个以上元件彼此直接物理或电接触。“耦合”可表示两个或两个以上元件直接物理或电接触。但是,“耦合”也可表示两个或两个以上元件彼此不直接接触,但仍然彼此共同协作或交互。
因此,尽管用结构特征和/或方法动作所特有的语言描述了本发明的实施例,但应了解,要求权利的主题不限于所描述的特定特征或动作。而是,这些特定特征和动作是作为实现要求权利的主题的样本形式公开的。

Claims (30)

1.一种缓冲器,包括:
仲裁器,用于从产生器接收对应于数据结构的信息;
存储器,用于存储对应于所述数据结构的所述信息;以及
地址生成器,用于生成对应于所述存储器中的用于存储对应于所述数据结构的所述信息的位置的所述存储器中的地址,
其中用户响应指示所述信息整体存储在所述存储器中的信号从所述存储器读取对应于所述数据结构的所述信息,并根据所述数据结构处理来自所述产生器的数据。
2.如权利要求1所述的缓冲器,还包括用于控制所述仲裁器和所述地址生成器的操作的控制器逻辑。
3.如权利要求1所述的缓冲器,还包括用于将对应于所述产生器的数据预取到所述缓冲器的本地存储器中的控制器逻辑。
4.如权利要求1所述的缓冲器,其中所述缓冲器包括包含所述存储器、所述地址生成器和所述仲裁器的第一级,其中所述缓冲器还包括第二级,所述第二级包括:
另一仲裁器,用于从所述产生器接收对应于所述数据结构的信息;
另一地址生成器,用于生成对应于存储器子系统中的用于存储对应于所述数据结构的所述信息的位置的所述存储器子系统中的地址;以及
总线代理,用于将所述另一地址生成器耦合到所述存储器子系统。
5.如权利要求4所述的缓冲器,其中所述用户响应指示所述信息整体存储在所述存储器子系统中的准予信号从所述存储器子系统读取对应于所述数据结构的所述信息。
6.如权利要求1所述的缓冲器,其中所述缓冲器是先填后溢(FFLS)缓冲器。
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所述的系统,其中所述缓冲器是先填后溢(FFLS)缓冲器。
22.如权利要求19所述的系统,其中所述缓冲器包括多个缓冲器级,并且至少第一级缓冲器和第二级缓冲器均包括所述存储器、所述地址生成器和所述仲裁器。
23.如权利要求18所述的系统,其中所述存储器基于基地址和偏移存储所述数据结构。
24.一种用于存储一个或多个指令的计算机可读介质,所述一个或多个指令在由处理器执行时执行一个或多个操作以便:
从产生器接收对应于数据结构的信息;
将对应于所述数据结构的所述信息存储在存储器中;
生成对应于所述存储器中的用于存储对应于所述数据结构的所述信息的位置的所述存储器中的地址;以及
响应指示所述信息整体存储在所述存储器中的信号而在用户处从所述存储器读取对应于所述数据结构的所述信息。
25.如权利要求24所述的介质,其中所述一个或多个指令使所述处理器根据所述数据结构处理来自所述产生器的数据。
26.如权利要求24所述的介质,其中所述一个或多个指令使所述处理器将对应于所述产生器的数据预取到耦合在所述用户与所述产生器之间的缓冲器的本地存储器中。
27.如权利要求24所述的介质,其中所述一个或多个指令使所述处理器将数据从耦合在所述产生器与所述用户之间的缓冲器的第一级传送到所述缓冲器的第二级,其中所述第一级包括所述存储器,而所述第二级包括用于访问存储器子系统的总线代理。
28.如权利要求27所述的介质,其中所述一个或多个指令使所述处理器响应所述第一级缓冲器已满的判定而将所述数据从所述第一级传送到所述第二级。
29.如权利要求27所述的介质,其中所述一个或多个指令使所述用户响应指示所述信息整体存储在所述存储器子系统中的准予信号而从所述存储器子系统读取对应于所述数据结构的所述信息。
30.如权利要求24所述的介质,其中所述一个或多个指令使所述处理器基于基地址和偏移将所述信息存储在所述存储器中待执行。
CN201010507475.1A 2009-09-25 2010-09-27 媒体缓冲和流水线式处理组件 Expired - Fee Related CN102033818B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/567733 2009-09-25
US12/567,733 US8738863B2 (en) 2009-09-25 2009-09-25 Configurable multi-level buffering in media and pipelined processing components

Publications (2)

Publication Number Publication Date
CN102033818A true CN102033818A (zh) 2011-04-27
CN102033818B CN102033818B (zh) 2017-08-15

Family

ID=42931405

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010507475.1A Expired - Fee Related CN102033818B (zh) 2009-09-25 2010-09-27 媒体缓冲和流水线式处理组件

Country Status (5)

Country Link
US (1) US8738863B2 (zh)
CN (1) CN102033818B (zh)
DE (1) DE102010033615A1 (zh)
GB (1) GB2473914B (zh)
TW (1) TWI469048B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103164838A (zh) * 2011-12-12 2013-06-19 扬智科技股份有限公司 图形数据处理方法
CN109614152A (zh) * 2018-12-06 2019-04-12 青岛镕铭半导体有限公司 硬件加速模块及存储设备
CN111183418A (zh) * 2017-10-08 2020-05-19 华为技术有限公司 可配置硬件加速器

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9141831B2 (en) * 2010-07-08 2015-09-22 Texas Instruments Incorporated Scheduler, security context cache, packet processor, and authentication, encryption modules
DE102014220802A1 (de) 2014-10-14 2016-04-14 Robert Bosch Gmbh Elektronisches Bauelement mit einem Anschlusselement
US10713189B2 (en) * 2017-06-27 2020-07-14 Qualcomm Incorporated System and method for dynamic buffer sizing in a computing device
EP4387194A2 (en) 2019-12-02 2024-06-19 DRW Technologies, LLC System and method for latency critical quality of service using continuous bandwidth control
CN111611180B (zh) * 2020-06-29 2023-06-13 中国人民解放军国防科技大学 一种支持多协议的动态共享缓冲区
US20230057633A1 (en) * 2021-08-20 2023-02-23 Samsung Electronics Co., Ltd. Systems, methods, and apparatus for transferring data between interconnected devices

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6055429A (en) * 1996-10-07 2000-04-25 Lynch; Michael R. Distributed wireless call processing system
US20020082997A1 (en) * 2000-07-14 2002-06-27 Hiroshi Kobata Controlling and managing digital assets
CN101221543A (zh) * 2007-01-10 2008-07-16 国际商业机器公司 执行dma块移动的方法、dma设备和数据处理系统
US7568057B2 (en) * 2006-12-19 2009-07-28 Intel Corporation Method and apparatus for maintaining synchronization of audio in a computing system

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5660950A (en) 1979-10-23 1981-05-26 Toshiba Corp Data processor
US4442487A (en) * 1981-12-31 1984-04-10 International Business Machines Corporation Three level memory hierarchy using write and share flags
US4719568A (en) * 1982-12-30 1988-01-12 International Business Machines Corporation Hierarchical memory system including separate cache memories for storing data and instructions
JPH06131153A (ja) 1992-10-16 1994-05-13 Just Syst Corp 情報処理方法及び装置
US6292855B1 (en) * 1998-12-18 2001-09-18 Lsi Logic Corporation Method to allow hardware configurable data structures
US7054986B2 (en) * 2001-03-30 2006-05-30 Nokia Corporation Programmable CPU/interface buffer structure using dual port RAM
US6868485B1 (en) * 2002-09-27 2005-03-15 Advanced Micro Devices, Inc. Computer system with integrated directory and processor cache
US7783769B2 (en) 2004-03-31 2010-08-24 Intel Corporation Accelerated TCP (Transport Control Protocol) stack processing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6055429A (en) * 1996-10-07 2000-04-25 Lynch; Michael R. Distributed wireless call processing system
US20020082997A1 (en) * 2000-07-14 2002-06-27 Hiroshi Kobata Controlling and managing digital assets
US7568057B2 (en) * 2006-12-19 2009-07-28 Intel Corporation Method and apparatus for maintaining synchronization of audio in a computing system
CN101221543A (zh) * 2007-01-10 2008-07-16 国际商业机器公司 执行dma块移动的方法、dma设备和数据处理系统

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103164838A (zh) * 2011-12-12 2013-06-19 扬智科技股份有限公司 图形数据处理方法
CN103164838B (zh) * 2011-12-12 2015-11-04 扬智科技股份有限公司 图形数据处理方法
CN111183418A (zh) * 2017-10-08 2020-05-19 华为技术有限公司 可配置硬件加速器
CN111183418B (zh) * 2017-10-08 2021-07-20 华为技术有限公司 可配置硬件加速器
CN109614152A (zh) * 2018-12-06 2019-04-12 青岛镕铭半导体有限公司 硬件加速模块及存储设备
CN109614152B (zh) * 2018-12-06 2022-11-04 镕铭微电子(济南)有限公司 硬件加速模块及存储设备

Also Published As

Publication number Publication date
CN102033818B (zh) 2017-08-15
TWI469048B (zh) 2015-01-11
US20110078386A1 (en) 2011-03-31
TW201124911A (en) 2011-07-16
GB201013383D0 (en) 2010-09-22
GB2473914A (en) 2011-03-30
GB2473914B (en) 2013-12-25
US8738863B2 (en) 2014-05-27
DE102010033615A1 (de) 2011-07-07

Similar Documents

Publication Publication Date Title
CN102033818A (zh) 媒体缓冲和流水线式处理组件
US10389839B2 (en) Method and apparatus for generating data prefetches specifying various sizes to prefetch data from a remote computing node
KR101691756B1 (ko) 코히어런스 프로토콜 테이블
CN104572517B (zh) 提供被请求数据的方法、控制器以及计算机系统
CN110442540A (zh) 灵活总线协议协商和启用序列
CN104094222B (zh) 用于执行指令的电路和方法
CN105718390A (zh) 共享存储器链路中的低功率进入
CN110036380A (zh) 用于高速互连中低延迟的双模phy
TWI465908B (zh) 用於在階層式快取設計之快取記憶體間有效通訊的方法及設備
CN101853227B (zh) 改进存储器映射输入/输出请求处理的方法和处理器
CN109154924A (zh) 多个上行链路端口设备
CN110442532A (zh) 用于与主机相链接的设备的全球可存储存储器
CN102541779B (zh) 一种提高多数据缓冲区dma效率的系统和方法
CN104583976A (zh) 具有预取的转译后备缓冲器
CN108604209A (zh) 扁平化端口桥
CN109844725A (zh) 点对点互连中的非对称通道
CN111880925A (zh) 用于提供带外处理器遥测的技术
CN109314103B (zh) 用于远程现场可编程门阵列处理的方法和装置
CN107003838A (zh) 解码信息库
CN105045789A (zh) 一种游戏服务器数据库缓存方法及系统
US8909862B2 (en) Processing out of order transactions for mirrored subsystems using a cache to track write operations
CN100557584C (zh) 用于对网络和存储器进行耦合的存储器控制器和方法
Kwon et al. Gen‐Z memory pool system implementation and performance measurement
CN114297131B (zh) 传感器控制系统、片上系统和计算装置
CN105045753A (zh) 基于fpga的pci总线控制器及控制方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170815

Termination date: 20200927