CN105814537A - 可扩展输入/输出系统和技术 - Google Patents

可扩展输入/输出系统和技术 Download PDF

Info

Publication number
CN105814537A
CN105814537A CN201380081287.9A CN201380081287A CN105814537A CN 105814537 A CN105814537 A CN 105814537A CN 201380081287 A CN201380081287 A CN 201380081287A CN 105814537 A CN105814537 A CN 105814537A
Authority
CN
China
Prior art keywords
data
streaming
accelerator
type
streamed
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
CN201380081287.9A
Other languages
English (en)
Other versions
CN105814537B (zh
Inventor
J·霍华德
S·B·麦高恩
K·佩雷奇
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 CN105814537A publication Critical patent/CN105814537A/zh
Application granted granted Critical
Publication of CN105814537B publication Critical patent/CN105814537B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • 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
    • G06F5/12Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
    • G06F5/14Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations for overflow or underflow handling, e.g. full or empty flags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/06Indexing scheme relating to groups G06F5/06 - G06F5/16
    • G06F2205/067Bidirectional FIFO, i.e. system allowing data transfer in two directions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/12Indexing scheme relating to groups G06F5/12 - G06F5/14
    • G06F2205/126Monitoring of intermediate fill level, i.e. with additional means for monitoring the fill level, e.g. half full flag, almost empty flag
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Advance Control (AREA)
  • Information Transfer Systems (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

一种用于管理输入/输出(I/O)数据的装置可以包括:流送I/O控制器,用于从加载/存储域部件接收数据,并将所述数据输出为包括第一数据移动类型和第一数据格式类型的第一数据类型的第一流送数据。所述装置还可以包括至少一个加速器,其耦合到所述流送I/O控制器,用于接收所述第一流送数据,将所述第一流送数据转换为具有与第一数据类型不同的第二数据类型的第二流送数据,并输出所述第二流送数据。此外,所述装置可以包括流送互连,用于将所述第二数据引导到配置为接收所述第二数据类型的数据的对等设备。

Description

可扩展输入/输出系统和技术
技术领域
本实施例涉及数据处理,并且更具体地,涉及可扩展输入/输出架构。
背景技术
历史上,已经围绕其中通用处理器(CPU)处理进入或离开系统的所有数据的模型来设计个人计算机(PC)。使用相对简单的输入/输出(I/O)控制器来将数据从外部I/O数据源移动到存储器中以供CPU处理,并将处理过的数据从存储器移动到外部I/O数据槽中。事实上,所有I/O数据作为数据单元流进入或离开平台,不论是来自“云”的网络数据、来自麦克风或输出到扬声器的音频样本、来自磁盘的数据块等。常规的I/O控制器在I/O设备到主存储器之间简单地移动本地数据单元流,以使得CPU可以操纵数据。
为了适应对功率效率非常敏感的移动平台的需要,PC架构近来得以快速发展。已经展现出的是,存在许多移动使用模型,其比使用采用CPU更加功率高效地实现专用硬件功能(加速器)来处理数据。大部分加速器处理作为去往和来自存储器的数据单元的顺序流的I/O数据。例如,在常见的MPEG-2音频层III(MP3)回放场景中,I/O控制器用于将封装MP3文件的以太网帧从远程源流送到存储器缓冲器。然后,第一加速器可以被采用,以输入来自存储器的以太网帧,并且将MP3编码数据输出到另一个存储器缓冲器。第二加速器可以输入来自存储器的MP3数据,并且将音频样本输出回又一个存储器缓冲器。最后,另一个I/O控制器可以被采用,以从存储器取回音频样本,并且将其输出到回放设备,例如,耳机。
因此,处理I/O的典型场景是这样的场景:其中,CPU将I/O控制器配置为将I/O数据传送到存储器中,将一个或多个加速器配置为处理该数据,并且将另一个I/O控制器配置为输出数据。在该场景中,存储器被简单地用作针对在I/O控制器和加速器之间流送的数据的先入先出(FIFO)设备。当前的I/O控制器和加速器的另一个显著特征是其每一个限定将数据移入和移出存储器的唯一方法。该模型要求针对每个设备的唯一的设备程序(驱动器)以便移动数据,以及更高级的应用来协调所述驱动器,以使得以先进先出(FIFO)方式在它们之间传递数据。
在当今的架构中,对于给定的I/O操作(例如,播放MP3文件),在I/O流水线中设备的软件配置过程可以发生一次。然而,设备驱动器数据管理活动可以以作为数据速率和用于存储数据的FIFO缓冲器的大小的函数的频率发生。通常,FIFO缓冲器被布置具有小的尺寸以便减少设备之间的时延,这会导致软件活动的频率的增加。最近,已经开发了新的设备或平台管理来最大化系统空闲时间,以支持更长和更深的睡眠状态。为此,可以将大的硬件FIFO缓冲器添加到I/O控制器上,以使得它们能够从主存储器以更低的频率迸发大量I/O数据,以最小化设备驱动器数据管理活动,这可能增加时延。
附图说明
图1描绘了根据各种实施例的SIO架构。
图2示出了根据额外实施例的另一个SIO架构。
图3描绘了根据本实施例的在流送I/O架构300中处理数据的一个场景。
图4描绘了采用SIO架构的示例性使用场景。
图5描绘了另一个示例性使用场景和SIO架构。
图6示出了又一个示例性使用场景和SIO架构。
图7示出了再一个使用场景和SIO架构。
图8示出了示例性第一逻辑流。
图9示出了示例性系统架构。
具体实施方式
实施例提供了用于管理输入/输出(I/O)数据,并且尤其是用于以功率高效方式处理I/O数据流的架构、部件和技术。在各种实施例中,提供了可扩展I/O(SIO)架构,其包括与加载/存储域交互的新颖的I/O流送域,以更高效地处理I/O数据。参照下文的附图详细地描述了各种实施例的操作。然而,简言之,可扩展I/O架构可以包括任何数量的下面特征。例如,SIO架构可以向后兼容常规的I/O架构;可以支持本地数据类型的I/O流送;并且可以消除将系统存储器用作FIFO缓冲器的需要。仅当处理器(例如CPU)要操纵数据时,SIO架构可以移动数据到存储器或从存储器移出数据,而否则对进入或离开系统存储器的数据的移动进行旁路。特别地,SIO架构可以提供“FIFO池”,用于缓冲主系统随机存取存储器(RAM)外部的I/O数据流。
在各种实施例中,SIO架构可以包括提供高度的灵活性的多个独立的、低时延的硬件FIFO缓冲器。这些缓冲器可以被动态创建和设置大小,并且随后连接在I/O控制器和加速器之间,以最好地匹配具体I/O操作的要求。一旦I/O操作完成,FIFO就可以被重配置用于另一个I/O操作。
此外,SIO架构可以提供超出常规I/O架构的以下优点。SIO架构可以最小化I/O控制器和加速器之间的时延。SIO架构可以便于对其它类型的硬件FIFO缓冲器重新分配任务,例如之前专用于独立的I/O控制器和加速器的“片上系统工作周期”缓冲器。这可以通过根据工作负载将这些FIFO缓冲器移动到能动态分配到不同设备的池中来完成,从而最大化硬件利用率和系统空闲时间。
SIO架构还可以限定用于I/O控制器和加速器之间的硬件对等(peer-to-peer)传送的标准架构方法,消除对在设备到设备传送中涉及活动的软件的需要。SIO架构可以减少或消除对点加速器方案的需要,即,具有很大程度上不能重新用于其它问题的逻辑的特定点问题。在各种实施例中,SIO架构可以部署于个人计算机(PC)设备、服务器或移动设备上。特别地,SIO架构可以跨片上系统(SoC)、片间和平台间边界地缩放。
本实施例的SIO架构所提供的另一个优点在于将通过平台的I/O数据的移动与对该I/O数据的处理清楚地划分。在执行上述特征中的一个或多个时,SIO架构可以利用常规的I/O堆栈,以使得任何所需的启用和验证被最小化,由此保存与其中部署SIO架构的平台相关联的常规的软件、技术和产品投资。
图1描绘了根据各种实施例的SIO架构100。SIO架构100包括用于处理I/O数据的单独的域,其在本文中被称为加载/存储域102和I/O流送域104。加载/存储域102至少可以通过流送I/O控制器118链接到I/O流送域104。在图1的实施例中,加载/存储域102和I/O流送域104包含于平台106中,该平台106可以是PC、计算机服务器、膝上型计算机、上网本、平板设备、智能电话或其它移动设备。实施例不限于该上下文。加载/存储域102可以包括通用处理器电路(CPU110)、存储器112、图形处理器单元(GPU)114。加载/存储域102可以包括其它部件(未示出),包括CPU110可以经由存储器(加载和存储)事务访问的那些部件。
在操作中,SIO架构100可以实现两个主要机构:数据平面和控制平面(未单独示出)。数据平面表示在流送域104中传输数据并将数据传送到加载/存储域102或从加载/存储域102传送数据的平面。控制平面用于配置和监测数据平面的部件。
加载/存储域102可以包括至少一个I/O设备,其示出为I/O部件116。I/O部件116可以呈现存储器映射寄存器或例如经由直接存储器存取(DMA)操作来直接与存储器112进行交互。由此,加载/存储域102可以呈现执行利用主存储器(例如存储器112)以便于彼此连接或与CPU110连接的各种硬件功能的部件的常规布置。
现在转向I/O流送域104,该域可以被提供具有至少一个I/O控制器,示出为流送I/O控制器118。I/O流送域104还可以包括至少一个加速器,在图1中示出为加速器(ACC)122、124、126。加速器可以表示一种类型的I/O硬件设备,其操作以处理在I/O流送域(加速器122-124)中的流送数据或者将流送数据(加速器126)输入或输出到外部域108。此外,I/O流送域可以包括至少一个流送互连,示出为流送互连120,将在下文详述其操作。在各种实施例中,I/O流送域104的I/O控制器(例如,流送I/O控制器118)可以提供如图1所示的到加载/存储域102的架构接口。该架构接口可以允许CPU110发现和配置驻留在I/O流送域104内的加速器,例如加速器122-126。此外,流送I/O控制器118可以将加载/存储域102的数据传送语义转换为I/O流送域104的数据传送语义,或者可以将I/O流送域104的数据传送语义转换为加载/存储域102的数据传送语义。此外,流送I/O控制器118可以呈现到流送互连120的流输入和流输出,其将数据移入或移出在加载/存储域102中存在的存储器缓冲器。
在操作中,I/O流送域的加速器(例如,加速器122、124、126)可以对由I/O流送域104处理的在输入和输出之间的信息流送进行转换。在一些实施例中,加速器(例如,加速器122、124、126中的任一个)可以执行I/O控制器的功能。这些包括管理协议、信令发送或者将数据从外部I/O数据源移动到输入或者将数据从输出移动到外部I/O数据槽所需的其它操作。
如图1所示,I/O流送域104还可以包括多个FIFO缓冲器,其由FIFO缓冲器132、134、136、138例示出。FIFO缓冲器132-138中的每一个可以是低时延的硬件FIFO,其可以被动态创建和设置大小,并且随后连接在I/O流送域的部件(例如,SIO控制器118和加速器122-128)之间。可以执行FIFO缓冲器的创建、设置大小和链接以最佳匹配具体I/O操作的要求。一旦I/O操作完成,FIFO缓冲器可以被重新配置用于另一个I/O操作。这可以用于最小化SIO控制器118和加速器132-138之间的时延,并且更好地跨多个设备分布工作负载,以最大化硬件利用率和系统空闲时间。
现在转向流送互连120,该部件可以以软件和硬件的任意组合来实现,以提供在加速器和I/O控制器之间的能够跨越硬件部件之间的边界(例如,SoC边界和平台边界)的通信传输和协议。流送输入和输出可以由流送互连120处理,并且可以被分类为两个级别。第一类型是数据移动,其标识特定于在流送连接上传输数据的特性,例如服务质量(QoS)、带宽等。数据移动信息可以由流送互连120和连接到流送互连120上的任意设备使用,以管理输入和输出之间流送数据传送。第二类型是数据格式,其标识与流送数据的移动不相关的流送数据的格式和其它特性。通过将数据流移动通过I/O控制器(例如流送I/O控制器118),数据格式信息可以由加速器(例如,加速器122、124、126)使用,并且在数据流在系统存储器(例如,存储器112)中终止的情况下由系统软件使用。根据本实施例,I/O流送域可以布置为使得仅具有兼容数据移动和数据格式类型的流送输入和输出可以通过流送互连120交换信息。该流送互连120尤其可以确保对通过流送I/O域104处理的输入和输出的QoS要求,并且确保输入和输出之间的信息的安全交付。
尽管在图1中未描绘,但在各种实施例中,多个I/O控制器可以附接到给定的流送域上,并且可以与到相同加载/存储域的给定的流送域连接。在其它实施例中,多个I/O控制器可以将给定的流送域连接到多个不同的加载/存储域。本实施例的特点在于架构部件(例如,I/O控制器和流送域)的模块性和可扩展性。下文将讨论强调SIO架构的可扩展性的其它实施例。
图2示出了根据额外实施例的另一个SIO架构200。SIO架构200可以包括如上所述的加载/存储域102和I/O流送域202。在该实施例中,加载/存储域102和I/O流送域202的部分实现于平台204中,该平台204可以是计算机、通信设备、混合设备、移动设备、游戏设备或者不同变型中的其它硬件。然而,如图2所示,I/O流送域202包括多个I/O流送互连,并延伸超过平台204。特别地,SoC流送互连210经由流送I/O控制器118与加载/存储域202连接。SoC流送互连210可以包括至少一个加速器,如加速器212、214所示,其可以操作以管理片上系统硬件部件中的部件之间的I/O数据流送。在平台204中包含额外的平台级别的流送互连,其示出为平台流送互连220。SoC流送互连210经由加速器216耦合到平台流送互连220,如图所示。平台流送互连220可以包括至少一个加速器,例如加速器222、224,其可以在平台级别辅助对I/O数据流送的管理。
I/O流送域还包括平台间流送互连(A)230,并且包括平台间流送互连(B)240,其分别经由加速器226和228耦合到平台流送互连220。并且,这些平台间流送互连中的每一个可以包括至少一个加速器,如加速器232、242所示。
在本实施例中,例如图1和图2所示的那些,I/O流送域的元件的组成(例如,控制器、加速器和流送互连)允许通过将数据流路由通过一个或多个加速器来构造数据流图,其中每个加速器执行对流中的数据的不同处理。
图1和图2中所示的可扩展I/O架构提供了用于通过实际上位于任何地方的加速器来构造数据流图的框架。SIO架构因此提供了灵活的框架,在该框架上,可以实现对数据处理的功率高效的卸载,这扩展超过了平台边界。
此外,SIO架构,尤其是图2所示的,可以便于在与平台204分离的平台中的I/O数据移动。这提供了关于SIO架构可以如何促进跨物理平台边界的I/O数据处理的示例,包括将I/O数据处理延伸到远程设备和在计算云中的位置。因此,SIO架构还支持创建新的使用模型,例如使用加速器作为基于云的服务。该架构还创建了管理平面,用于列举和管理在流送域内的I/O控制器、加速器和流送互连。SIO架构还创建了框架,用于将连接到I/O流送域的加速器暴露在“传统模式”(例如,通过高速外围部件互连(PCIe)流送控制器接口使用针对设备的现有驱动器)以及“流送模式”(例如,在流送数据流中使用设备的能力)二者中,如下文所述。
图3描绘了根据本实施例的在流送I/O架构300中处理数据的一个场景。由标签A指示的软件堆栈在加载/存储域302中提供。软件堆栈A被布置为单独暴露I/O设备,并允许管理数据流。该软件堆栈A包括加速器管理部件304、驱动器306、驱动器308以及通用父驱动器310,其可以经由流送I/O控制器314与I/O流送域312中的加速器通信。软件堆栈A可以被进一步划分,以使得通用父驱动器310管理数据移动类型,并且设备驱动器306、308管理独立加速器322-328及其相应的数据格式类型。每个加速器可以实现有多个引脚。例如,加速器324包括输入引脚350、输出引脚354以及用于接收控制信号的控制引脚355。类似地,加速器326包括输入引脚352、输出引脚356和用于接收控制信号的控制引脚357。同样地可以适用于其它加速器322、328。此外,加速器328的特征在于外部数据端口360,其提供朝向其它现有I/O技术(未示出)的接口。
还如图3所示,在流送互连320中创建了数据流图B,其包括分类数据流段332、334、336和338。在图3的示例中,数据流由加载/存储域302中的软件堆栈A启动,并且通过数据流段332、334、336、338(以这个顺序)流入和流出I/O流送域312。例如,应用可能要求执行能够由流送I/O域312执行的某些任务。要输出的数据然后由软件堆栈A经由流送I/O控制器314发送到流送I/O域312。在数据流图B中创建的结果数据流段由处理数据流图B的一系列加速器322、324、326约束。加速器322、324、326中的每一个接收数据流段332、334和336作为相应的输入,并输出相应的数据流段334、336和338。数据流图B在数据流段338处返回到软件堆栈A。数据流段332、334、336和338中的每一个的特征在于数据格式类型和数据移动类型的不同组合。图3中还示出了加速器328,其在I/O流送域312中可用,但是没有被配置为数据流图B的一部分。
如图3所示,加速器管理部件304生成控制信令340,其包括到加速器322-328的信号。控制信令340可以指示相应的加速器如何建立逻辑数据流,包括表示设备(例如,下一加速器)的地址以接收来自给定加速器的输出数据。
如图3具体示例出的SIO架构提供的一个优点在于:可以以对等方式将I/O数据流送通过多个设备,而不受到加载/存储域302的干预。因此,在数据图B中,采用了三个不同的加速器322、324、326来处理流送数据,在点344和342之间,数据流没有跨过加载/存储域302和I/O流送域312之间的边界。以这种方式,不需要涉及CPU,也不需要加载/存储域302中主(系统)存储器(未示出)中的任何存储器访问事件。特别地,这允许知道I/O流送域312的应用对流送域驻留的加速器(如加速器322、324、326所示例出的)的数据流处理进行配置和启动。一旦启动,则流送I/O数据域流型304中的数据流处理可以自动进行,整体旁路加载/存储域302的主机CPU(未示出)。这使得主机(例如,CPU、GPU)或其它平台部件(未示出)能够进入较低功率状态持续较长的时间段,因为在I/O流送域312中的流送数据处理期间没有调用DMA或其它类似操作。
本实施例的SIO架构的另一个优点在于:从应用软件角度看,用于处理流送I/O数据的加速器(例如,加速器322-328)的确切位置并不重要,只要加速器能够满足应用的要求即可。此外,构造数据图来在流送I/O数据域中处理流送I/O数据是和设备无关的:给定数据移动类型和数据格式类型的知识,流送I/O数据可以通过一系列不同设备(加速器)来处理,而无需在对等设备之间提供设备专用信息。换言之,因为设备彼此之间传送数据的能力取决于对数据格式类型和数据移动类型的识别,所以不需要接收设备或发送设备具有或获得其对等设备的设备信息。
总之,本实施例中给出的SIO架构提供了在常规I/O架构中找不到的多个特征。这尤其有助于解决常规加载/存储架构在其处理流送数据能力方面的系统级别的架构低效率。SIO架构还专门布置被用于处理流送数据,并与常规加载/存储架构无缝共存。通过避免在不需要时使用加载/存储域中的CPU/存储器资源,SIO架构使得能够更好的整体利用系统资源,这例如可以产生包括对多媒体回放在内的广泛类别的一般应用的显著的功率节省。
注意,尽管图3的实施例描绘了在加载/存储域中开始和结束的数据图,但是在其它实施例中,数据图的一个或多个端点可以在加载/存储域外部终止。由于本实施例中的加速器可以用作到标准I/O设备的接口,所以在一些实施例中,可以通过流送域来处理工作负载,而根本不将数据路由通过加载/存储域。例如,MP3文件可以由在流送域中配置的无线加速器接收,然后可以通过一个或多个(解码、均衡器等)加速器处理,并通过附接到扬声器的加速器输出,而不涉及加载/存储域部件。
SIO架构的若干有益特征包括高效地处理数据流的能力。特别地,SIO架构提供以下能力:动态选择最适合的可用的数据传送/数据处理元件来完成给定任务,在一些情况下允许完全旁路CPU和主存储器。SIO架构还提供对兼容的流送域I/O资源,(例如加速器、FIFO缓冲器等)的动态检测、使用和释放的支持。SIO架构以软件透明的方式额外提供对流送域的延伸,由此便于虚拟I/O空间的创建。SIO架构还提供对动态I/O域重新配置的支持,这可以基于期望的度量,例如能量效率。
此外,使用加速器来转换SIO架构中的数据是与实现方式无关的,只要求遵从通信和配置/监测规则。这可以充当用于创建工业生态系统发展所围绕的开放性规范的基础。
SIO架构还可以将加速器配置有用于在流送域中移动数据的多个接入点,例如输入引脚、输出引脚和控制引脚;以及用于在流送域外部进行通信的可选的外部数据端口。SIO架构还操作以使得远程流送域I/O设备表现为主机操作系统的本地常规I/O设备。
如上所述,在图2中特别示出的SIO架构的另一个新颖方面在于其可扩展性,也就是,逻辑上将流送域延伸超过单个平台/SoC的能力。SIO架构创建能够跨越用户设备和云的数据处理图的能力对新的应用开放了机会。SIO允许通过添加支持流送I/O的逻辑来延伸I/O子系统(通常在CPU外部的电路中实现)。
SIO架构还便于经由常规的加载/存储方法来访问和使用驻留在流送域内的部件,并提供这些部件与常规软件的兼容性,但是这种实现方式可能不能享有本文公开的流送域特征的好处。
此外,SIO架构定义了用于在两个设备(例如,加速器)之间流送数据的标准方法,以及用于描述流送域内的数据传送的标准方法和到加载/存储域的接口。在各种实施例中,SIO架构可以支持定义到其流送互连的每个设备接口多个“引脚”,每一个具有完全独立的流控制。实现引脚的成本是低的,这使得加速器容易利用硬件管理的流控制,即使需要支持上百个数据流。SIO架构的另一优点在于:在单个引脚上允许单个“请求”类型,由此消除了可能导致死锁的阻塞条件,并因此降低了引脚的“成本”。在各种实施例中,SIO架构可以采用带宽测量和两个优先级的组合来保证上百个引脚上的实时I/O数据的同时及时和可靠的交付,这是一个优点,因为对于现代使用模式而言,对实时数据的硬件支持越来越有价值。
此外,在SIO架构的本实施例中,每个数据引脚可以服务独立的流控制的数据流。特别地,通过流送I/O控制器,SIO引脚可以被映射到系统存储器中的传送环。这样,SIO架构因此可以提供对跨越流送I/O域与和加载/存储域二者的I/O数据流的一致表示。
以下结合使用场景进一步描述了额外的实施例,在所述使用场景中,强调由SIO架构所提供的前述各种优点。图4描绘了针对蓝牙音频卸载(蓝牙是1998年成立的非营利、非上市公司蓝牙特别兴趣小组(SIG)公司的商标)采用SIO架构400的使用场景。SIO架构400包括SIO通用主机控制器406、流送互连408、USB加速器410和音频数字信号处理器(DSP)412。USB加速器410耦合到蓝牙控制器414。蓝牙设备驱动器402和USB总线驱动器堆栈404可以存在于经由流送I/O控制器406(其可以用作DMA引擎)与USB加速器410和音频数字信号处理器(DSP)412相接的加载/存储域(未示出)中。USB加速器410可以执行到USB端点到事务。在操作中,SIO架构400可以在常规模式中操作,以使得设备端点数据流420被配置为流动通过USB加速器410、通过流送I/O控制器406,并最终到主存储器(未单独示出)中的蓝牙设备驱动器端点队列。在采用流送互连408的另一种操作模式中,可以经由配置的数据流422将音频端点数据流直接路由到另一个硬件设备,例如音频DSP412。与需要到蓝牙控制器的至少四个接口的常规方法相比,这种方法提供了对于传统蓝牙设备的更简单的接口,即,一种类型的I/O引脚、一个驱动器堆栈。SIO架构400还提供了对于卸载的灵活框架,其支持容易地将音频流再路由到平台中任意合适的槽中,例如DSP、传统驱动器等。
图5描绘了另一个使用场景和SIO架构500,其可以用于实现远程USB处理。近来,开发了经由本地无线技术耦合到显示设备,以要求远程显示器(例如触摸屏设备)也提供USB服务,并提供USB端口来允许用户将设备添加到系统上,例如包含图像的拇指驱动。根据图5的实施例,给出了可扩展的I/O实现方式来远程地执行USB数据传送。在图5中,平台501通过无线链接(未示出)与显示设备520连接。平台501包括人机接口设备(HID)类驱动器502、USB总线驱动器堆栈504、网络堆栈514以及无线网络接口控制器(WNIC)516,其所有都可以是驻留在加载/存储域中的常规部件。平台501还包括流送I/O控制器506、流送互连508、USB加速器510、音频DSP512以及WNIC518。
现在转向显示设备520,网络堆栈524、WNIC驱动器526以及WNIC528被提供。显示设备520还包括流送互连530和USB加速器532,其耦合到USBHID触摸控制器534。
在一个场景中,平台501和显示设备520可以首先发现彼此。随后,USBHID触摸控制器534(其在显示设备520上与USB加速器532连接)可以通过驻留在平台501上的流送I/O506被列举为设备。可以采用软件部件使得平台501知道USB加速器532,但是额外的数据流(参见数据流536)是这样的,以使得它们是主机软件透明的。可以通过任意常规的协议来执行WNIC518和WNIC528之间的通信,所述协议例如是WiFi(WiFiDirect是WiFi联盟的商标)。由于WNIC部件的鲁棒性,这可以允许发生通信,而无需高的网络堆栈。因此,可以在显示设备520中减少时延、增加安全性并降低成本,这是因为减少了用于显示设备520的计算请求并且通过硬件加速器提供流USB功能。
现在转向图6,示出了根据其它实施例的另一个场景和SIO架构600。图6的场景具体描绘了使用可扩展I/O来支持与不同远程显示设备的通信。如图6所示,平台602可以与远程显示器640和远程显示器650通信。在一个示例中,远程显示器640可以经由链接到平台602(WiDi是Intel公司的商标)。远程显示器650还可以经由USB音频/视频(AV)链接到平台602。平台602可以包括HID类驱动器606、USB总线驱动器堆栈608、网络堆栈610以及WNIC驱动器612。在SIO流送域(未单独示出)中,平台602可以包括流送I/O控制器614、WNIC616、流送互连618以及多个加速器,例如,H.264编码器加速器620、WiDi打包器加速器622、USBAV打包器加速器624、以及USB加速器626。
在图6的场景中,示出了平台602与相应的远程显示器640和650之间的两个不同的数据流634和632。数据流源自驻留在加载/存储域(例如在平台602的系统存储器(未示出)中)中的帧缓冲器604。帧缓冲器604可以用于将视频内容(例如电影)流送到远程显示器640或远程显示器650。注意,在该示例中,各种加速器连接到流送互连618。除了连接到系统总线和WNIC驱动器612的主要WNIC端口之外,次要端口(未示出)可以被提供给WNIC616。
在本实施例中,使用硬件H.264编码器加速器620允许平台602实时处理电影以用于显示,而不超过其热封套。注意,在常规的处理中,在加载/存储域中的CPU(未示出)可能基本上实时地编码电影。然而,为了远超过简短片段的视频内容进行实时编码,CPU处理器将可能超过平台602的热封套。此外,在这种编码期间消耗的电力可能大幅地降低电池的寿命。
在图6所示的一个场景中,一旦平台602已经发现了WiDi显示器,即,远程显示器640,则数据流634被配置为通过流送互连618来将数据从帧缓冲器604路由到H.264编码器加速器620,到WiDi打包器加速器622,并最终通过WNIC616到远程显示器640。该数据流634对来自帧缓冲器604的视频帧输出进行编码,并以可兼容形式对其进行渲染,以由WiDi设备(远程显示器640)接收,而没有涉及加载/存储域中的CPU和存储器,并因此在处理视频中消耗了更少的电力。
在可替代场景中,一旦平台602已经发现了USBAV显示器,即显示器650,则数据流632被配置为通过流送互连618来将数据从帧缓冲器604路由到H.264编码器加速器620、到USBAV打包器加速器624,并最终通过USB主机加速器626到远程显示器650。
在这两个场景中,都可能发生软件辅助,以便于使得主机(即,平台602)知道新的远程显示器640、650并且配置数据流634、632,但是一旦已经建立了数据流,则视频渲染过程是主机软件透明的,并且不涉及对主存储器的DMA操作。
在进一步的场景中,可以并发地建立数据流632和634,以使得显示器640和显示器650二者同时呈现流送视频。因为数据流632、634在离开帧缓冲器604、USB音频/视频类驱动器606和USB总线驱动器堆栈608之后没有路由通过加载/域,所以同时操作数据流632、634二者仅非常适量地增加了电力消耗。
现在转向图7,示出了根据其它实施例的另一个使用场景和SIO架构700。图7的场景具体描绘了使用可扩展I/O来支持存储共享。如图所示,平台702可以耦合到远程存储设备704和可能是平台702本地的存储驱动728上。平台702可以包括USB存储类驱动器708、USB总线驱动器堆栈710、网络堆栈712、以及WNIC驱动器714。在SIO流送域(未单独示出)中,平台702可以包括流送I/O控制器716、WNIC718、流送互连720以及多个加速器,例如,备份加速器722、存储共享加速器724、和USB加速器726。
图7示出了存储共享加速器724的示例,其使得附接到USB加速器726上的本地驱动728表现为是双端口的,尽管其只是单端口的。在该场景中,一个端口通常由应用706表示的操作系统访问,如数据流730、732所示。另一个端口连接到备份加速器722上。备份加速器722可以被装备以将本地驱动728的图像流送到远程云存储服务(由远程存储设备704示出),同时平台702的其余部分则处于休眠。这通过不涉及加载/存储域的部件的数据流732、734例示出。
需要注意的是,在当今的数据存储设备中存在多种实例,在其中管理引擎和其它平台子系统可能想要隐藏对系统存储设备的访问。在当前技术中,所有这些实体必须通过OS路由其请求,因为驱动是单端口的,并且该端口是OS所拥有的。存储共享加速器724支持对OS透明地共享系统存储设备。
本文包括表示用于执行所公开的架构的新颖方面的示例性方法的一组流程图。尽管出于便于说明的目的,本文示出的一个或多个方法例如以流程图表或流程图的形式给出并且被描述为一系列动作,但是应该理解和认识的是,方法并不局限于动作的顺序,因为根据本文,一些动作可以以与本文所示和所描述的不同的顺序发生和/或与其他动作并发发生。例如,本领域技术人员可以理解和认识的是,例如在状态图中,方法可以被替代地表示为一系列相互关联的状态或事件。此外,不是在方法中示出的所有动作都需要用于新颖的实现。
图8示出了示例性第一逻辑流800。在框802处,从主存储器接收第一数据传送语义形式的第一流送数据。该流送数据可以是适合由加载/存储域的部件(例如,CPU、GPU和主存储器)处理的形式。
在框804处,将第一流送数据布置为包括第一数据移动类型和第一数据格式类型的第一数据类型中,其中数据移动类型可以标识特定于在流送互连上传输的流送数据的特性,并且数据格式类型可以标识与数据移动不相关的流送数据的格式和其它特性。
在框806处,将第一流送数据转变为第二流送数据。数据转换的示例包括从以太网帧中提取MP3编码数据、将MP3数据转换为音频样本数据、将编码视频数据转换为打包的数据以用于无线传输、以及其它操作。在一些示例中,该转换可以由第一硬件加速器执行。
在框808处,以包括第二数据移动类型和第二数据格式类型的第二数据类型输出第二流送数据,其中第二数据移动类型、第二数据格式类型或两者不同于相应的第一数据移动类型和第一数据格式类型。第二数据类型可以适合于由另外的部件(例如第二硬件加速器)接收第二流送数据,以处理第二流送数据。
在框810处,将第二流送数据转换为第三流送数据。在框812处,以包括第三数据移动类型和第三数据格式类型的第三数据类型输出第三流送数据,其中第三数据移动类型、第三数据格式类型或者两者都不同于相应的第二数据移动类型和第二数据格式类型。第三数据类型可以适合于由另外的部件(例如,第三硬件加速器)来接收第三流送数据,以处理第三流送数据。在框814处,将第三流送数据转换为第一数据传送语义形式,以返回到主存储器。
图9是示例性系统实施例的图,并且具体地,图9是示出了可以包括各种元件的系统900的图。例如,图9示出了系统(平台)900可以包括处理器/图形核心(本文中被称作处理器902)、芯片组/平台控制中心(PCH)(本文中被称作芯片组904)、输入/输出(I/O)设备906、随机存取存储器(RAM)(例如,动态RAM(DRAM))908以及只读存储器(ROM)910、显示电子设备920、显示背光设备922,以及各种其它平台部件914(例如,风扇、横流式吹风机、散热器、DTM系统、冷却系统、壳体、通风孔等)。系统900还可以包括无线通信芯片916和图形设备918、非易失性存储器端口(NVMP)924以及天线926。然而,实施例并不局限于这些元件。
如图9所示,I/O设备906、RAM908、和ROM910通过芯片组904耦合到处理器902。芯片组904可以通过总线912耦合到处理器902。因此,总线912可以包括多条线。
处理器902可以是中央处理单元,其包括一个或多个处理器核心,并可以包括具有任意数量的处理器核心的任意数量的处理器。处理器902可以包括任意类型的处理单元,例如,CPU、多处理单元、精简指令集计算机(RISC)、具有流水线的处理器、复杂指令集计算机(CISC)、数字信号处理器(DSP)等。在一些实施例中,处理器902可以是位于单独的集成电路芯片上的多个单独的处理器。在一些实施例中,处理器902可以是具有集成图形的处理器,而在其它实施例中,处理器902可以是一个或多个图形核心。
下述示例涉及其它的实施例。
在示例1中,一种用于管理输入/输出(I/O)数据的装置,包括:流送I/O控制器,用于从加载/存储域部件接收数据,并且将所述数据输出为包括第一数据移动类型和第一数据格式类型的第一数据类型的第一流送数据;至少一个加速器,其耦合到所述流送I/O控制器以接收所述第一流送数据,将所述第一流送数据转换为具有与第一数据类型不同的第二数据类型的第二流送数据,并且输出所述第二流送数据;以及流送互连,用于将所述第二数据引导到被配置为接收所述第二数据类型的数据的对等设备。
在示例2中,示例1的所述加载/存储域可以包括:主存储器,用于存储数据;以及处理器电路,用于取回数据并且将所述数据发送给所述流送I/O控制器。
在示例3中,示例1-2中任一项所述的流送I/O控制器可以将第一数据从所述主存储器转发到所述流送互连以供至少一个加速器处理,并且将在处理之后从所述流送互连接收到的第二数据传送到所述主存储器。
在示例4中,示例1-3中任一项所述的流送互连可以耦合到多个加速器,所述处理器被配置为生成数据流图,所述数据流图包括多个数据流段,每个数据流段将一对加速器或一加速器链接到所述流送I/O控制器,每个数据流段包括与每个其它数据流段不同的数据移动类型或不同的数据格式类型,所述数据移动类型用于标识特定于在流送连接上传输的流送数据的特性,数据格式类型用于标识与数据移动不相关的流送数据的格式和其他特性。
在示例5中,示例1-4中任一项所述的至少一个加速器可以包括多个加速器,所述流送互连用于在多个加速器之间引导流送数据以进行处理,而不使用所述主存储器。
在示例6中,示例1-5中任一项所述的流送I/O控制器可以用于实现对所述至少一个加速器进行配置和监测的控制路径。
在示例7中,示例1-6中任一项所述的数据移动类型可以包括特定于在流送连接上传输的流送数据的信息;所述流送互连用于标识数据移动类型,并且使用所述数据移动类型来管理流送数据传送。
在示例8中,示例1-7中任一项所述的流送互连可以用于标识与数据移动不相关的数据流的数据格式信息和其它特性。
在示例9中,示例1-8中任一项所述的至少一个加速器的每个加速器可以包括输入引脚、输出引脚以及从所述加载/存储域接收控制信号的控制引脚。
在示例10中,示例1-9中任一项所述的至少一个加速器可以用于管理信令或协议,以将I/O数据从数据源传送到输入,或者将数据从输出传送到I/O数据槽中。
在示例11中,示例1-10中任一项所述的加载/存储域部件形成加载/存储域的一部分,所述加载/存储域包括通用处理器电路(CPU)和主存储器,所述流送I/O控制器、流送互连和至少一个加速器包括位于对所述加载/存储域公共的平台上的第一流送域。
在示例12中,示例1-11中任一项的装置可以包括桥加速器,用于在所述第一流送I/O域和不位于所述平台上的第二流送I/O域之间引导数据。
在示例13中,示例1-12中任一项所述的至少一个加速器可以用于从所述加载/存储域接收只是对等设备的地址的控制信号。
在示例14中,示例1-13中任一项所述的装置可以包括被动态地设置大小并且链接到所述至少一个加速器的多个先进先出(FIFO)缓冲器。
在示例15中,至少一种机器可读存储介质,其包括指令,当被执行时,使得系统:从存储器取回数据;将所取回的数据作为包括第一数据移动类型和第一数据格式类型的第一数据类型的第一流送数据传送到第一设备;将所述第一流送数据转换为具有与所述第一数据类型不同的第二数据类型的第二流送数据;以及将所述第二流送数据传送到第二设备,所述第二设备被配置为接收第二数据类型的数据。
在示例16中,示例15所述的至少一种机器可读存储介质可以包括指令,当被执行时,使得系统:将第一数据从所述主存储器转发到所述流送互连以供至少一个加速器处理,并将在处理之后从所述流送互连接收到的第二数据传送到所述主存储器。
在示例17中,示例15-16中任一项所述的至少一种机器可读存储介质可以包括指令,当被执行时,所述指令使得系统:在多个加速器之间引导流送数据以进行处理,而不使用存储器。
在示例18中,示例15-17中任一项所述的至少一种机器可读存储介质可以包括指令,当被执行时,所述指令使得系统:实现对所述至少一个加速器进行配置和监测的控制路径。
在示例19中,示例15-18中任一项所述的至少一种机器可读存储介质可以包括指令,当被执行时,所述指令使得系统:标识与数据移动不相关的数据流的数据格式信息和其它特性。
在示例20中,示例15-19中任一项所述的至少一种机器可读存储介质可以包括指令,当被执行时,所述指令使得系统:将所述第二流送数据转换为具有与所述第二数据类型不同的第三数据类型的第三流送数据;以及将所述第三流送数据传送到第三设备,所述第三设备被配置为接收第三数据类型的数据,而不将所述第二流送数据或第三流送数据返回到所述存储器。
在示例21中,示例15-20中任一项所述的至少一种机器可读存储介质可以包括指令,当被执行时,所述指令使得系统:在所述第一设备处接收指示所述第二设备的地址的控制信号。
在示例22中,示例15-21中任一项所述的至少一种机器可读存储介质可以包括指令,当被执行时,所述指令使得系统:在将所述第二流送数据传送到所述第二设备之前,将所述第二流送数据存储到先进先出(FIFO)缓冲器中。
在示例23中,一种管理输入/输出(I/O)数据的方法,包括:从存储器取回数据;将所取回的数据作为包括第一数据移动类型和第一数据格式类型的第一数据类型的第一流送数据传送到第一设备;将所述第一流送数据转换为具有与所述第一数据类型不同的第二数据类型的第二流送数据;以及将所述第二流送数据传送到第二设备,所述第二设备被配置为接收第二数据类型的数据。
在示例24中,示例23所述的方法可以包括:将第一数据从所述主存储器转发到所述流送互连以供至少一个加速器处理;并且将在处理之后从所述流送互连接收到的第二数据传送到存储器。
在示例25中,示例23-24中任一项所述的方法可以包括:实现对所述至少一个加速器进行配置和监测的控制路径。
在示例26中,示例23-25中任一项所述的方法可以包括:将所述第二流送数据转换为具有与所述第二数据类型不同的第三数据类型的第三流送数据;以及将所述第三流送数据传送到第三设备,所述第三设备配置为接收第三数据类型的数据,而不将所述第二流送数据或第三流送数据返回到所述存储器。
在示例27中,示例23-26中任一项所述的数据移动类型可以包括:特定于在流送互连上传输的数据的信息,所述流送互连用于标识数据移动类型,并且使用所述数据移动类型来管理流送数据传送。
在示例28中,示例23-27中任一项所述的方法可以包括:在所述第一设备处接收指示所述第二设备的地址的控制信号。
在示例29中,示例23-28中任一项所述的方法可以包括:在将所述第二流送数据传送到所述第二设备之前,将所述第二流送数据存储到先进先出(FIFO)缓冲器中。
示例30是一种用于管理I/O数据的用户设备,包括用于执行示例23-29中任一项的方法的单元。
示例31是一种用于管理I/O数据的装置,包括用于执行示例23-29中任一项的方法的单元。
可以使用各种硬件元件、软件元件或两者的组合实现如前所述的实施例。硬件元件的示例可以包括设备、逻辑设备、部件、处理器、微处理器、电路、处理器电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件元件的示例可以包括软件部件、程序、应用、计算机程序、应用程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任意组合。确定实施例是否是使用硬件元件和/或软件元件来实现的可能根据任何数量的因素而变化,例如对于给定实现方式所期望的,期望的计算速率、功率水平、耐热性、处理周期预算、输入数据率、输出数据率、存储器资源、数据总线速度以及其它设计或性能约束。
在一些实施例中,将元件定义为执行一个或多个操作的具体结构。然而,可以认识到,被定义为执行具体功能的具体结构的任何元件可以表达为用于执行指定功能的单元或步骤,而无需记叙支持其的结构、材料或动作,并且这种单元或步骤意图覆盖在具体实施方式中描述的相对应的结构、材料、或动作以及其等同。实施例并不局限于该上下文。
可以使用表达“一个实施例”或“实施例”及其衍生词来描述一些实施例。这些术语表示结合实施例描述的特定特征、结构或特性被包括在至少一个实施例中。在说明书中各处出现的短语“在一个实施例中”不必都指代同一实施例。此外,使用表达“耦合”和“连接”及其衍生词描述了一些实施例。这些术语不必作为彼此的同义词。例如,可以使用术语“连接”和/或“耦合”描述一些实施例以表示两个或更多个元件彼此直接物理或电接触。但是术语“耦合”还可以表示两个或更多个元件彼此不直接接触,但仍彼此合作或交互。
此外,在上述具体实施方式中,可以看出为了使公开顺畅,各种特征在单个实施例中被分组在一起。这种公开方法不应被解释为反映所要求保护的实施例需要比在每个权利要求中明确记叙的多的特征的意图。事实上,如下述权利要求所反映的,创造性的主题在于少于单个的公开实施例的所有特征。因此,后续权利要求被并入到具体实施方式中,每个权利要求自身表示单独的实施例。在随附权利要求中,术语“包含”和“在…中”分别用作各自术语“包括”和“其中”的简明英语等价物。此外,术语“第一”、“第二”、“第三”等仅用作标记,并不是要对它们的对象施加数字要求。
上文已经描述的内容包括公开的架构的示例。当然,不可能描述部件和/或方法的每个能想到的组合,但是本领域技术人员可以认识到许多进一步的组合以及置换是可能的。因此,新颖的架构意在包含落入随附权利要求的精神和范围内的所有这样的替代、修改和变型。

Claims (20)

1.一种用于管理输入/输出(I/O)数据的装置,包括:
流送I/O控制器,其用于从加载/存储域部件接收数据,并且将所述数据输出为包括第一数据移动类型和第一数据格式类型的第一数据类型的第一流送数据;
至少一个加速器,其耦合到所述流送I/O控制器以接收所述第一流送数据,将所述第一流送数据转换为具有与所述第一数据类型不同的第二数据类型的第二流送数据,并且输出所述第二流送数据;以及
流送互连,其用于将所述第二数据引导到被配置为接收所述第二数据类型的数据的对等设备。
2.根据权利要求1所述的装置,所述加载/存储域包括:主存储器,其用于存储所述数据;以及处理器电路,其用于取回所述数据并且将所述数据发送给所述流送I/O控制器。
3.根据权利要求2所述的装置,所述流送I/O控制器用于将第一数据从所述主存储器转发到所述流送互连以供所述至少一个加速器处理,并且将在处理之后从所述流送互连接收到的第二数据传送到所述主存储器。
4.根据权利要求2所述的装置,所述流送互连耦合到多个加速器,所述处理器被配置为生成数据流图,所述数据流图包括多个数据流段,每个所述数据流段将一对加速器或一加速器链接到所述流送I/O控制器,每个数据流段包括与每个其它数据流段不同的数据移动类型或不同的数据格式类型,数据移动类型用于标识特定于在流送连接上传输的流送数据的特性,并且数据格式类型用于标识与数据移动不相关的流送数据的格式和其它特性。
5.根据权利要求2所述的装置,所述至少一个加速器包括多个加速器,所述流送互连用于在所述多个加速器之间引导流送数据以供处理,而不使用所述主存储器。
6.根据权利要求1所述的装置,所述流送I/O控制器用于实现对所述至少一个加速器进行配置和监测的控制路径。
7.根据权利要求1所述的装置,所述数据移动类型包括特定于在流送连接上传输数据的信息;所述流送互连用于标识数据移动类型,并且使用所述数据移动类型来管理流送数据传送。
8.根据权利要求1所述的装置,所述流送互连用于标识与数据移动不相关的数据流的数据格式信息和其它特性。
9.根据权利要求1所述的装置,所述至少一个加速器中的每个加速器包括输入引脚、输出引脚以及用于从所述加载/存储域接收控制信号的控制引脚。
10.根据权利要求9所述的装置,至少一个加速器用于管理信令或协议,以将I/O数据从数据源传送到所述输入,或者将数据从所述输出传送到I/O数据槽。
11.根据权利要求1所述的装置,所述加载/存储域部件形成加载/存储域的一部分,所述加载/存储域包括通用处理器电路(CPU)和主存储器,所述流送I/O控制器、流送互连和至少一个加速器包括位于对所述加载/存储域公共的平台上的第一流送域。
12.根据权利要求11所述的装置,包括桥加速器,用于在所述第一流送I/O域和不位于所述平台上的第二流送I/O域之间引导数据。
13.根据权利要求1所述的装置,其中,所述至少一个加速器用于从所述加载/存储域接收用于指示所述对等设备的地址的控制信号。
14.根据权利要求1所述的装置,包括要被动态地设置大小并且链接到所述至少一个加速器的多个先进先出(FIFO)缓冲器。
15.至少一种机器可读存储介质,其包括指令,当由计算设备执行时,所述指令使得所述计算设备:
从存储器取回数据;
将所取回的数据作为包括第一数据移动类型和第一数据格式类型的第一数据类型的第一流送数据传送到第一设备;
将所述第一流送数据转换为具有与所述第一数据类型不同的第二数据类型的第二流送数据;以及
将所述第二流送数据传送到第二设备,所述第二设备被配置为接收所述第二数据类型的数据。
16.根据权利要求15所述的至少一种机器可读存储介质,其包括指令,当由计算设备执行时,所述指令使得所述计算设备:
将所述第二流送数据转换为具有与所述第二数据类型不同的第三数据类型的第三流送数据;以及
将所述第三流送数据传送到第三设备,所述第三设备被配置为接收所述第三数据类型的数据,而不将所述第二流送数据或第三流送数据返回到所述存储器。
17.根据权利要求15所述的至少一种机器可读存储介质,其包括指令,当由计算设备执行时,所述指令使得所述计算设备:
标识数据移动类型;以及
使用所述数据移动类型来管理流送数据传送,所述数据移动类型包括特定于在流送连接上传输数据的信息。
18.根据权利要求15所述的至少一种机器可读存储介质,其包括指令,当由计算设备执行时,所述指令使得所述计算设备:
在所述第一设备处接收用于指示所述第二设备的地址的控制信号。
19.根据权利要求15所述的至少一种机器可读存储介质,其包括指令,当由计算设备执行时,所述指令使得所述计算设备:
在到所述第二设备的所述传送之前,将所述第二流送数据存储到先进先出(FIFO)缓冲器中。
20.根据权利要求15所述的至少一种机器可读存储介质,其包括指令,当由计算设备执行时,所述指令使得所述计算设备:
标识与数据移动不相关的数据流的数据格式信息和其它特性。
CN201380081287.9A 2013-12-27 2013-12-27 可扩展输入/输出系统和技术 Active CN105814537B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/078006 WO2015099767A1 (en) 2013-12-27 2013-12-27 Scalable input/output system and techniques

Publications (2)

Publication Number Publication Date
CN105814537A true CN105814537A (zh) 2016-07-27
CN105814537B CN105814537B (zh) 2019-07-09

Family

ID=53479426

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380081287.9A Active CN105814537B (zh) 2013-12-27 2013-12-27 可扩展输入/输出系统和技术

Country Status (5)

Country Link
US (4) US10127012B2 (zh)
EP (1) EP3087472B1 (zh)
CN (1) CN105814537B (zh)
TW (1) TWI536257B (zh)
WO (1) WO2015099767A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112559075A (zh) * 2020-12-18 2021-03-26 核工业西南物理研究院 一种ioc远程控制系统

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3087472B1 (en) * 2013-12-27 2019-05-08 Intel Corporation Scalable input/output system and techniques
US10628251B2 (en) * 2017-09-26 2020-04-21 At&T Intellectual Property I, L.P. Intelligent preventative maintenance of critical applications in cloud environments
US10366017B2 (en) 2018-03-30 2019-07-30 Intel Corporation Methods and apparatus to offload media streams in host devices
US10802995B2 (en) 2018-07-26 2020-10-13 Xilinx, Inc. Unified address space for multiple hardware accelerators using dedicated low latency links
US11243817B2 (en) * 2019-03-29 2022-02-08 Intel Corporation Technologies for data migration between edge accelerators hosted on different edge locations
US11416422B2 (en) 2019-09-17 2022-08-16 Micron Technology, Inc. Memory chip having an integrated data mover
US11397694B2 (en) 2019-09-17 2022-07-26 Micron Technology, Inc. Memory chip connecting a system on a chip and an accelerator chip
US11410264B2 (en) 2019-09-27 2022-08-09 Intel Corporation Switchable image source in a hybrid graphics systems
CN112835834B (zh) * 2019-11-25 2024-03-19 瑞昱半导体股份有限公司 数据传输系统
CN115309693A (zh) 2021-05-07 2022-11-08 脸萌有限公司 集成电路、数据处理装置和方法
TWI827034B (zh) * 2022-05-03 2023-12-21 開曼群島商臉萌有限公司 積體電路、資料處理裝置和方法
US20240114200A1 (en) * 2022-09-30 2024-04-04 Cypress Semiconductor Corporation System and Method for High Resolution, High Frame Rate Video Capture Using a USB Port
US20240184641A1 (en) * 2022-12-03 2024-06-06 Samsung Electronics Co., Ltd. Near-storage format transformation

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5408605A (en) * 1993-06-04 1995-04-18 Sun Microsystems, Inc. Command preprocessor for a high performance three dimensional graphics accelerator
CN1910571A (zh) * 2003-07-25 2007-02-07 国际商业机器公司 单芯片协议转换器
US8161212B1 (en) * 2010-09-22 2012-04-17 Xilinx, Inc. Data operations across parallel non-volatile input/output devices
US20130007375A1 (en) * 2011-06-28 2013-01-03 International Business Machines Corporation Device and method for exchanging data between memory controllers
US20130166874A1 (en) * 2011-12-23 2013-06-27 International Business Machines Corporation I/o controller and method for operating an i/o controller
CN103221937A (zh) * 2010-11-18 2013-07-24 德克萨斯仪器股份有限公司 用于处理集群的加载/存储电路

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3161212A (en) 1960-08-12 1964-12-15 Bemis Bro Bag Co Packaging
WO2002087235A1 (en) * 2001-04-19 2002-10-31 Vividon, Inc. System for applying metric to multimedia files over network
US7631119B2 (en) * 2004-06-25 2009-12-08 Apple Inc. Techniques for providing audio for synchronized playback by multiple devices
US8046830B2 (en) 2004-07-23 2011-10-25 Citrix Systems, Inc. Systems and methods for network disruption shielding techniques
TWI450096B (zh) 2010-04-13 2014-08-21 Wistron Corp 具可擴充性之混合式儲存裝置及電腦系統與控制方法
US9819949B2 (en) * 2011-12-16 2017-11-14 Microsoft Technology Licensing, Llc Hardware-accelerated decoding of scalable video bitstreams
EP3087472B1 (en) 2013-12-27 2019-05-08 Intel Corporation Scalable input/output system and techniques

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5408605A (en) * 1993-06-04 1995-04-18 Sun Microsystems, Inc. Command preprocessor for a high performance three dimensional graphics accelerator
CN1910571A (zh) * 2003-07-25 2007-02-07 国际商业机器公司 单芯片协议转换器
US8161212B1 (en) * 2010-09-22 2012-04-17 Xilinx, Inc. Data operations across parallel non-volatile input/output devices
CN103221937A (zh) * 2010-11-18 2013-07-24 德克萨斯仪器股份有限公司 用于处理集群的加载/存储电路
US20130007375A1 (en) * 2011-06-28 2013-01-03 International Business Machines Corporation Device and method for exchanging data between memory controllers
US20130166874A1 (en) * 2011-12-23 2013-06-27 International Business Machines Corporation I/o controller and method for operating an i/o controller

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112559075A (zh) * 2020-12-18 2021-03-26 核工业西南物理研究院 一种ioc远程控制系统

Also Published As

Publication number Publication date
EP3087472B1 (en) 2019-05-08
US20190073194A1 (en) 2019-03-07
EP3087472A1 (en) 2016-11-02
TWI536257B (zh) 2016-06-01
US11561765B2 (en) 2023-01-24
CN105814537B (zh) 2019-07-09
US20220050662A1 (en) 2022-02-17
US10127012B2 (en) 2018-11-13
US10592205B2 (en) 2020-03-17
WO2015099767A1 (en) 2015-07-02
US11074042B2 (en) 2021-07-27
TW201535253A (zh) 2015-09-16
US20200218505A1 (en) 2020-07-09
EP3087472A4 (en) 2017-09-13
US20170212724A1 (en) 2017-07-27

Similar Documents

Publication Publication Date Title
CN105814537A (zh) 可扩展输入/输出系统和技术
TWI746878B (zh) 高頻寬記憶體系統以及邏輯裸片
US10324873B2 (en) Hardware accelerated communications over a chip-to-chip interface
TWI601010B (zh) 用於整合在根複合體中的裝置之方法、設備及系統
CN102138297B (zh) 图形多媒体集成电路及其运作方法
JP2019508915A (ja) メッセージングおよび入出力転送インターフェースのための最適レイテンシパケタイザ有限ステートマシン
US11531636B2 (en) Storage system, method, and apparatus for fast IO on PCIE devices
CN103559156B (zh) 一种fpga与计算机之间的通信系统
TW201903620A (zh) 在改良式內部積體電路匯流排拓撲中從屬對從屬之通信
TW201832089A (zh) 多點分支串列匯流排上的多埠多邊頻帶gpio合併技術
TW201901467A (zh) 從設備主設備-寫入/讀取資料包有效負荷擴展
CN116886751A (zh) 一种异构设备的高速通信方法、装置和异构通信系统
US10176133B2 (en) Smart device with no AP
CN107660282A (zh) 处理多根系统中的分区复位
CN111209231B (zh) 数据处理方法、装置及相关产品
CN208367733U (zh) 嵌入式ai机器视觉硬件结构
CN115022424A (zh) 水电lcu控制器网卡虚拟控制方法、系统、设备及其介质
JP7206485B2 (ja) 情報処理システム、半導体集積回路及び情報処理方法
CN117421268A (zh) 一种互联系统、设备及网络
KR101267611B1 (ko) 고속무선통신모뎀에서 외부 장치에 저장된 펌웨어 실행 방법
CN115543908A (zh) 基于FPGA的Aurora总线数据交互系统及方法
CN117851313A (zh) 一种适用于片上网络架构芯片的dma控制系统

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