TWI536257B - 可擴充性輸入/輸出系統及技術 - Google Patents

可擴充性輸入/輸出系統及技術 Download PDF

Info

Publication number
TWI536257B
TWI536257B TW103140998A TW103140998A TWI536257B TW I536257 B TWI536257 B TW I536257B TW 103140998 A TW103140998 A TW 103140998A TW 103140998 A TW103140998 A TW 103140998A TW I536257 B TWI536257 B TW I536257B
Authority
TW
Taiwan
Prior art keywords
data
stream
accelerator
memory
streaming
Prior art date
Application number
TW103140998A
Other languages
English (en)
Other versions
TW201535253A (zh
Inventor
約翰 霍華德
史蒂夫B 麥葛文
可茲斯托夫 裴克茲
Original Assignee
英特爾公司
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 英特爾公司 filed Critical 英特爾公司
Publication of TW201535253A publication Critical patent/TW201535253A/zh
Application granted granted Critical
Publication of TWI536257B publication Critical patent/TWI536257B/zh

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)
  • Mobile Radio Communication Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

可擴充性輸入/輸出系統及技術 發明領域
本實施例是關於資料處理,並且尤其是關於可擴充性輸入/輸出架構。
發明背景
在歷史上的個人電腦(PC)已經圍繞一模式被設計,於其中一般處理器(CPU)處理進入或離開系統的所有資料。相對地簡單之輸入/輸出(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管線中之設備的軟體組態處理程序可對於一所給予的I/O操作,例如,播放一MP3檔案,可能發生一次。但是,設備驅動器資料管理活動可能發生頻率是在資料率以及被使用以儲存資料之FIFO緩衝 器的尺寸之函數。通常FIFO緩衝器被配置具有一小的尺寸,以便降低在設備之間的潛伏等待時間,其導致軟體活動頻率之增加。最近新的設備或平臺管理已被開發以最大化系統閒置時間而致能較長的以及更深的睡眠狀態。為達成這點,大的硬體FIFO緩衝器可以被添加至I/O控制器,因而它們可以較低的頻率自主記憶體叢發大數量的I/O資料,以最小化可能增加潛伏等待時間之設備驅動器資料管理活動。
發明概要
依據本發明之一實施例,係特地提出一種用以管理輸入/輸出(I/O)資料之裝置,其包括:一串流I/O控制器,其用以接收來自一裝載/儲存域構件之資料並且輸出該資料作為包括一第一資料移動型式及第一資料格式型式之一第一資料型式的第一串流資料;至少一加速器,其被耦合至該串流I/O控制器以接收該第一串流資料,將該第一串流資料轉換至具有不同於該第一資料型式之一第二資料型式的第二串流資料,並且輸出該第二串流資料;以及一串流互連,其用以引導該第二資料至被組態以接收該第二資料型式之資料的一對等設備。
100‧‧‧SIO架構
102‧‧‧裝載/儲存域
104‧‧‧I/O串流域
106‧‧‧平臺
108‧‧‧外部域
110‧‧‧CPU
112‧‧‧記憶體
114‧‧‧GPU
116‧‧‧I/O構件
118‧‧‧串流I/O控制器
120‧‧‧串流互連
122-126‧‧‧加速器(ACC)
132-138‧‧‧FIFO緩衝器
200‧‧‧SIO架構
202‧‧‧I/O串流域
204‧‧‧平臺
210‧‧‧SoC串流互連
212-216‧‧‧加速器
220‧‧‧平臺串流互連
222、224‧‧‧加速器
226、228‧‧‧加速器
230‧‧‧平臺間串流互連(A)
232、242‧‧‧加速器
240‧‧‧平臺間串流互連(B)
300‧‧‧串流I/O架構
302‧‧‧裝載/儲存域
304‧‧‧加速器管理構件
306、308‧‧‧驅動器
310‧‧‧通用親系驅動器
312‧‧‧I/O串流域
314‧‧‧串流I/O控制器
320‧‧‧串流互連
322-328‧‧‧加速器
324‧‧‧加速器
332-338‧‧‧資料流片段
340‧‧‧控制傳信
350、352‧‧‧輸入接腳
354、356‧‧‧輸出接腳
355、357‧‧‧控制接腳
360‧‧‧外部資料埠
400‧‧‧SIO架構
402‧‧‧藍牙設備驅動器
404‧‧‧USB匯流排驅動器堆疊
406‧‧‧SIO通用主機控制器
408‧‧‧串流互連
410‧‧‧USB加速器
412‧‧‧音訊數位信號處理器
414‧‧‧藍牙控制器
420‧‧‧設備端點資料流動
422‧‧‧組態資料流
500‧‧‧SIO架構
501‧‧‧平臺
520‧‧‧顯示設備
502‧‧‧人類介面設備(HID)類驅動器
504‧‧‧USB匯流排驅動器堆疊
506‧‧‧串流I/O控制器
508‧‧‧串流互連
510‧‧‧USB加速器
512‧‧‧音訊DSP
514‧‧‧網路堆疊
516‧‧‧無線網路介面控制器(WNIC)驅動器
518‧‧‧WNIC
520‧‧‧顯示設備
524‧‧‧網路堆疊
526‧‧‧WNIC驅動器
528‧‧‧WNIC
530‧‧‧串流互連
532‧‧‧USB加速器
534‧‧‧USB HID觸控式控制器
536‧‧‧資料流
600‧‧‧SIO架構
602‧‧‧平臺
604‧‧‧訊框緩衝器
606‧‧‧HID類驅動器
608‧‧‧USB匯流排驅動器堆疊
610‧‧‧網路堆疊
612‧‧‧WNIC驅動器
614‧‧‧串流I/O控制器
616‧‧‧WNIC
618‧‧‧串流互連
620‧‧‧H.264編碼器加速器
622‧‧‧WiDi封包化器加速器
624‧‧‧USB AV封包化器加速器
626‧‧‧USB加速器
632、634‧‧‧資料流動
640‧‧‧遠端顯示器
650‧‧‧遠端顯示器
700‧‧‧SIO架構
702‧‧‧平臺
704‧‧‧遠端儲存器
706‧‧‧應用
708‧‧‧USB儲存器類驅動器
710‧‧‧USB匯流排驅動器堆疊
712‧‧‧網路堆疊
714‧‧‧WNIC驅動器
716‧‧‧串流I/O控制器
718‧‧‧WNIC
720‧‧‧串流互連
722‧‧‧備份加速器
724‧‧‧儲存器共用加速器
726‧‧‧USB加速器
728‧‧‧儲存驅動器
730-734‧‧‧資料流
800‧‧‧第一邏輯流程
802-814‧‧‧第一邏輯流程步驟
900‧‧‧系統
902‧‧‧處理器/圖形核心
904‧‧‧晶片組/平臺控制中樞
906‧‧‧輸入/輸出(I/O)設備、
908‧‧‧隨機存取記憶體(RAM)
910‧‧‧唯讀記憶體(ROM)
912‧‧‧匯流排
914‧‧‧各種其他平臺構件
圖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緩衝器之需要。該SIO架構可以移動資料至或自記憶體,僅如果一處理器(例如,一CPU)是用以操作資料時,而此外以不同樣方式旁通移動進入及進出系統記憶體之資料。尤其是,該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控制器和加速器之間的硬體點對點轉移,消除用於致動設備至設備轉移之軟體複雜情況的需求。該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中,其可以是一PC、電腦伺服器、膝上型電腦電腦、小筆電、平板電腦設備、智慧型手機、或其他移動式設備。該等實施例是不受限定於這文章脈絡中。該裝載/儲存域102可包含一個一般處理器電路(CPU 110)、記憶體112、圖形處理器單元(GPU)114。該裝載/儲存域102可包含其他構件(未被展示),如包含CPU 110可經由記憶體(裝載和儲存)處理而存取的那些者。
當操作時,該SIO架構100可以實行二個主要機構:一資料平面以及控制平面(未分別地被展示)。一資料平面代表用以在串流域104之內輸送資料以及用以將資料輸送至及自裝載/儲存域102的平面。一控制平面功能作用以組態及監視該資料平面之構件。
該裝載/儲存域102可包含至少一I/O設備,被展示如I/O構件116。該I/O構件116可以呈現映射暫存器或直 接地與記憶體112互動之記憶體,例如,經由直接記憶體存取(DMA)操作。由於此裝載/儲存域102可以呈現一習見的構件之配置,其可以採用主記憶體(例如,記憶體112)而進行各種硬體功能以便彼此或與CPU 110介面。
接著轉至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,可以提供一架構介面至該裝載/儲存域102,如圖1中之例示。該架構介面可以允許該CPU 110發現以及組態存在於該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之任何設備所使用以管理在輸入和輸出之間的串流資料轉移。第二型式是資料格式,其辨識無關於其移動的串流資料之格式以及其他特徵。資料格式資訊可以被加速器(例如,加速器122、124、126)、以及系統軟體所使用,如在一資料流被終止於系統記憶體(例如記憶體112)之事件,其藉由經由一I/O控制器(例如,串流I/O控制器118)而移動資料流。與本實施例符合地,該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中,其可以是一電腦、通訊設備、混合設備、移動式設備、遊戲設備、或以不同變化之其他硬體。但是,該I/O串流域202包含複數個I/O串流互連並且延伸超出平臺204,如於圖2之展示。尤其是,一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架構同時也產生一架構而揭露以‘傳統模式’(例如,使用用於經由一週邊構件互連快送(PCIe)串流控制器介面之設備的一現存驅動器),以及一‘串流模式’(例如,能夠使用串流資料流中之設備)兩模式中連接到一I/O串流域之加速器,如下面所例示。
圖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之範例中,一資料流利用軟體堆疊A被啟動於裝載/儲存域302中並且經由資料流片段、332、334、336、338而依序地流動入及出I/O串流域312。例如,一應用可能需要能夠利用串流I/O域312執行而將被進行的某些任務。將被輸出之資料接著可以經由串流I/O控制器314利用軟體堆疊A被傳送至串流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可以指示各別的加速器,如何建立一邏輯資料流,其包含代表設備(例如,下一個加速器)之一位址,以接收來自一所給予的加速器之輸出資料。
利用SIO架構被提供之一優點,尤其是如被例示於圖3中,是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設備。
如上所述地,被例示的SIO架構之另一新穎論點,尤其是於圖2中者,是其之可擴充性,亦即,邏輯地延伸一串流域使超越一單一平臺/SoC之能力。該SIO架構產生可跨越使用者設備以及雲端之資料處理圖形之能力,開啟對於新應用的機會。SIO允許典型地被實行於CPU之外部的電路中之一I/O子系統,可藉由支援串流I/O的邏輯之添加而被延伸。
SIO架構同時也經由習見的裝載/儲存方法而便利存在一串流域之構件的存取以及使用,並且提供此等構件與習見軟體之兼容性,雖然此等實行例可能無法享有在此處被揭示之串流域特點的利益。
此外,SIO架構界定用於在二個設備(例如,加速器)之間的串流資料之一標準方法,以及用於描述在一串流域中之資料轉移以及介面至一裝載/儲存域之一標準方法。於各種實施例中,該SIO架構可以支援界定每個設備的許多“接腳”介面至其之串流互連,其各者具有完全地獨立流量控制。實行一接腳之成本是低的,因此即使需數百個資料流之支援,亦容易地使得加速器採用硬體管理流程控制。SIO架構之另一優點是,一單一“要求”型式經單一接腳被允許,因而避免可能導致鎖死之阻塞情況,並且因此降低接腳之“成本”。於各種實施例中,該SIO架構可以採用帶寬計量以及二個優先序位準之組合以確保同時地在數百個接腳上之即時I/O資料之及時以及確實的傳送, 其是一優點,因為對於即時資料之硬體支援於現代使用模式是逐漸地受重視。
此外,於本實施例之SIO架構中,各個資料接腳可用作一獨立、流量控制之資料流。尤其是,經由一串流I/O控制器,一SIO接腳可被映射至系統記憶體中之一轉移環。因此SIO架構可以提供橫跨串流I/O域以及裝載/儲存域兩者的一I/O資料流之一致表示。
有關於強調利用SIO架構所提供之各種上述優點的使用情節之另外實施例將在下面進一步地被說明。圖4展示對於藍牙(Bluetooth®)音訊卸載所採用的一SIO架構400之使用情節(藍牙(Bluetooth)是藍牙特別相關族群(SIG)公司之一商標,藍牙是一個不以營利為目的,非股份公司,成立於1998)。該SIO架構400包含一SIO通用主機控制器406、串流互連408、USB加速器410以及音訊數位信號處理器(DSP)412。該USB加速器410被耦合至一藍牙控制器414。一藍牙設備驅動器402以及USB匯流排驅動器堆疊404可以被呈現於一裝載/儲存域(未被展示)中,其經由可以作用如一DMA引擎的一串流I/O控制器406而介面於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、音訊DSP 512、以及WNIC 518。
接著轉至顯示設備520,一網路堆疊524和WNIC驅動器526以及一WNIC 528被提供。該顯示設備520進一 步地包含一串流互連530以及USB加速器532,其被耦合至一USB HID觸控式控制器534。
於一情節中,平臺501以及顯示設備520可能首先發現彼此。依序地,USB HID觸控式控制器534,其被連接到顯示設備520上之USB加速器532,可以被列舉作為經由駐留在平臺501上之串流I/O 506的一設備。一軟體構件可以被採用以使得平臺501發覺USB加速器532,但是另外的資料流(參看資料流536)它們也是主機軟體透明的。在WNIC 518和WNIC 528之間的通訊可以經任何方便的協定被進行,例如,WiFi Direct®(WiFi Direct是Wi-Fi聯盟的商標)。這由於WNIC構件之強健性而可以允許通訊發生而不需要一高大的網路堆疊。因此,於顯示設備520中,等待時間可被降低,安全性被增加,以及成本被降低,因為對於顯示設備520之計算需求被降低並且USB功能性藉由一硬體加速器被提供。
接著轉至圖6,其展示與進一步的實施例符合之另一情節以及SIO架構600。圖6之情節明確地展示使用可擴充性I/O以支援與不同遠端顯示設備之通訊。如於圖6之展示,平臺602可以與一遠端顯示器640和遠端顯示器650通訊。於一範例中,遠端顯示器640可以經由WiDi®被鏈接至平臺602(WiDi是英特爾公司的一商標)。一遠端顯示器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之情節中,二個不同的資料流634和632被例示在平臺602以及各別的遠端顯示器640和650之間。該資料流動開始自一訊框緩衝器604,其是駐留在一裝載/儲存域中,例如,平臺602之系統記憶體(未被展示)中。該訊框緩衝器604可以被使用於串流視訊內容,例如,對於遠端顯示器640或遠端顯示器650之一影片。如所指出地,於這範例中,多種加速器被連接到串流互連618。除了一主要WNIC埠之外,一次要埠(未被展示)可以被提供至WNIC 616,其是連接到一系統匯流排以及WNIC驅動器612。
於本實施例中,一硬體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已發現一USB AV顯示器,亦即,顯示器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以及至一儲存驅動器728,其對於平臺702可以是區域性的。該平臺702可包含USB儲存器類驅動器708、USB匯流排驅動器堆疊710、網路堆疊712、以及WNIC驅動器714。於SIO串流域(未各別地被展示)中,該平臺702可包含一串流I/O控制器716、WNIC 718、串流互連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、RAM 908、以及ROM 910藉由晶片組904被耦合至處理器902。晶片組904可以利用匯流排912被耦合至處理器902。因此,匯流排912可包含複數條線。
處理器902可以是包括一個或多個處理器核心之一中央處理單元並且可包含具有任何數量的處理器核心之任何數量的處理器。該處理器902可包含任何型式的處理單元,例如,CPU、多處理單元、一簡化指令集電腦(RISC)、具有一管線之一處理器、一複雜指令集電腦(CISC)、數位信號處理器(DSP)、以及其它者。於一些實施例中,處理器902可以是被置於單獨積體電路晶片上之複數個單獨處理器。於一些實施例中,處理器902可以是具有整合圖形之一處理器,而於其他實施例處理器902中,則可以是一圖形核心或多核心。
下面的範例係關於進一步的實施例。
實施例,如先前所述地,可以使用各種硬體元 件、軟體元件、或其二者之組合被實行。硬體元件之範例可包含設備、邏輯設備、構件、處理器、微處理器、電路、處理器電路、電路元件(例如,電晶體、電阻器、電容器、電感器、以及其它者)、積體電路、特定應用積體電路(ASIC)、可程控邏輯裝置(PLD)、數位信號處理器(DSP)、場式可程控閘陣列(FPGA)、記憶體單元、邏輯閘、暫存器、半導體裝置、晶片、微晶片、晶片組、以及其它者。軟體元件之範例可包含軟體構件、程式、應用、電腦程式、應用程式、系統程式、軟體發展程式、機器程式、操作系統軟體、中介軟體、韌體、軟體模組、例行程式、例行子程式、函數、方法、步驟、軟體介面、應用程式介面(API)、指令組、計算碼、電腦程式碼、程式段、電腦程式段、字組、數值、符號、或其任何組合。決定一實施例是否使用硬體元件及/或軟體元件被實行可依據下列任何數量之因素而變化,例如,所需的計算率、電力位準、熱容忍度、處理週期預算、輸入資料率、輸出資料率、記憶體資源、資料匯流排速率以及如用於一所給予的實行例所需的其他設計或性能限定。
於一些實施例中,一元件被界定如進行一個或多個操作之一特定結構。但是,應可了解,任何被界定作為進行一特定功能之一特定結構的元件可以被表示如用以進行指定功能之一構件或步驟而不必有陳述之結構、材料,或支援其之動作,並且此等構件或步驟是意旨涵蓋上述詳細說明之對應的結構、材料、或動作以及其等效者。 該等實施例是不受限定於這文章脈絡。
一些實施例可使用詞句“一實施例”或“一個實施例”與它們的衍生詞一起被說明。這些用詞意指的是被說明於配合的實施例中之一特定的特點、結構、或特徵被包含於至少一實施例中。在說明文中各處出現之詞組“於一實施例中”不必定得都涉及相同實施例。進一步地,一些實施例可使用詞組“被耦合”以及“被連接”與它們的衍生詞一起被說明。這些用詞不必定得都意指作為彼此之同義詞。例如,一些實施例可使用用詞“連接”及/或“耦合”被說明以指示二個或更多個元件是以直接之實際或電氣方式彼此接觸。用詞“耦合”,但是,也可以指示二個或更多個元件不是彼此直接接觸,但是仍然彼此協調或互動。
此外,於前面的詳細說明中,可以明白為了簡化本揭示之目的,各種特點一起被群聚在一單一實施例。這揭示之方法不欲被詮釋作為反映請求專利權之實施例需要更多於各申請專利範圍中明確被陳述之特點的一意圖。然而,如下面申請專利範圍所反映,本發明主題比所有單一被揭示之實施例展現較少之特點。因此,下面的申請專利範圍被合併於詳細說明中,而各申請專利範圍項本身作為一各別的實施例。於附加之申請專利範圍中,用詞“包含”以及“於其中”分別地被使用作為各別的用詞“包括”以及“在其中”之平易英文等效詞。此外,用詞“第一”、“第二”、“第三”、以及其它者,僅被使用作為標記,並且不意指在強加數值要求於它們之目的上。
已於上面被說明者包含被揭示的結構之範例。當然,其是不可能說明每個可想到的構件及/或方法之組合,但是本領域之一般技術人員應可辨識,許多進一步的組合以及置換都是可能的。因此,新穎結構是欲涵蓋落在附加申請專利範圍之精神以及範疇內的所有替代、修改以及變化。
100‧‧‧SIO架構
102‧‧‧裝載/儲存域
104‧‧‧I/O串流域
106‧‧‧平臺
108‧‧‧外部域
110‧‧‧CPU
112‧‧‧記憶體
114‧‧‧GPU
116‧‧‧I/O構件
118‧‧‧串流I/O控制器
120‧‧‧串流互連
122-126‧‧‧加速器(ACC)
132-138‧‧‧FIFO緩衝器

Claims (25)

  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之至少一電腦可讀取儲存媒體,其包括指令,當該等指令被執行時,將導致一系統進行下列動作:在該第一設備處接收指示該第二設備之一位址的一控制信號。
  20. 如請求項15之至少一電腦可讀取儲存媒體,其包括指令,當該等指令被執行時,將導致一系統進行下列動作:在發送至該第二設備之前,將該第二串流資料儲存於一先入先出(FIFO)緩衝器中。
  21. 一種管理輸入/輸出(I/O)資料之方法,其包括下列步驟:自記憶體取得資料;將該所取得的資料發送至一第一設備作為包括一第一資料移動型式及第一資料格式型式之一第一資料型式的第一串流資料; 將該第一串流資料轉換至具有不同於該第一資料型式之一第二資料型式的第二串流資料;並且將該第二串流資料發送至一第二設備,該第二設備被組態以接收該第二資料型式之資料。
  22. 如請求項21之方法,其包括下列步驟:自該記憶體將該第一串流資料遞送至一串流互連以藉由至少一加速器加以處理;並且將處理之後自該串流互連所接收的該第二串流資料發送至該記憶體。
  23. 如請求項21之方法,其包括下列步驟:實行用於至少一加速器之組態以及監控的一控制路線。
  24. 如請求項21之方法,其包括下列步驟:將該第二串流資料轉換至具有不同於該第二資料型式之一第三資料型式的第三串流資料;並且將該第三串流資料發送至一第三設備,該第三設備被組態以接收該第三資料型式之資料,而不必將該第二串流資料或第三串流資料返回至該記憶體。
  25. 如請求項21之方法,包括在該第一設備處接收指示該第二設備之一位址的一控制信號。
TW103140998A 2013-12-27 2014-11-26 可擴充性輸入/輸出系統及技術 TWI536257B (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
TW201535253A TW201535253A (zh) 2015-09-16
TWI536257B true TWI536257B (zh) 2016-06-01

Family

ID=53479426

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103140998A TWI536257B (zh) 2013-12-27 2014-11-26 可擴充性輸入/輸出系統及技術

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)

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
US11397694B2 (en) 2019-09-17 2022-07-26 Micron Technology, Inc. Memory chip connecting a system on a chip and an accelerator chip
US11416422B2 (en) 2019-09-17 2022-08-16 Micron Technology, Inc. Memory chip having an integrated data mover
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 瑞昱半导体股份有限公司 数据传输系统
CN112559075B (zh) * 2020-12-18 2022-02-01 核工业西南物理研究院 一种ioc远程控制系统
CN115309693A (zh) 2021-05-07 2022-11-08 脸萌有限公司 集成电路、数据处理装置和方法
TWI827034B (zh) * 2022-05-03 2023-12-21 開曼群島商臉萌有限公司 積體電路、資料處理裝置和方法
US20240184641A1 (en) * 2022-12-03 2024-06-06 Samsung Electronics Co., Ltd. Near-storage format transformation

Family Cites Families (13)

* 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
US5408605A (en) * 1993-06-04 1995-04-18 Sun Microsystems, Inc. Command preprocessor for a high performance three dimensional graphics accelerator
WO2002087235A1 (en) * 2001-04-19 2002-10-31 Vividon, Inc. System for applying metric to multimedia files over network
US7353362B2 (en) * 2003-07-25 2008-04-01 International Business Machines Corporation Multiprocessor subsystem in SoC with bridge between processor clusters interconnetion and SoC system bus
US7631119B2 (en) * 2004-06-25 2009-12-08 Apple Inc. Techniques for providing audio for synchronized playback by multiple devices
US8914522B2 (en) 2004-07-23 2014-12-16 Citrix Systems, Inc. Systems and methods for facilitating a peer to peer route via a gateway
TWI450096B (zh) 2010-04-13 2014-08-21 Wistron Corp 具可擴充性之混合式儲存裝置及電腦系統與控制方法
US8161212B1 (en) 2010-09-22 2012-04-17 Xilinx, Inc. Data operations across parallel non-volatile input/output devices
US9552206B2 (en) * 2010-11-18 2017-01-24 Texas Instruments Incorporated Integrated circuit with control node circuitry and processing circuitry
US8972667B2 (en) 2011-06-28 2015-03-03 International Business Machines Corporation Exchanging data between memory controllers
US9819949B2 (en) * 2011-12-16 2017-11-14 Microsoft Technology Licensing, Llc Hardware-accelerated decoding of scalable video bitstreams
US8996840B2 (en) * 2011-12-23 2015-03-31 International Business Machines Corporation I/O controller and method for operating an I/O controller
EP3087472B1 (en) * 2013-12-27 2019-05-08 Intel Corporation Scalable input/output system and techniques

Also Published As

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

Similar Documents

Publication Publication Date Title
TWI536257B (zh) 可擴充性輸入/輸出系統及技術
US9747245B2 (en) Method, apparatus and system for integrating devices in a root complex
TWI634432B (zh) 多晶片封裝鏈結技術
CN107077441B (zh) 用于提供使用rdma和主动消息的异构i/o的方法和装置
US8446903B1 (en) Providing a load/store communication protocol with a low power physical unit
US8437343B1 (en) Optimized link training and management mechanism
US8549205B1 (en) Providing a consolidated sideband communication channel between devices
CN113434446A (zh) 灵活总线协议协商和启用序列
US20140006670A1 (en) Controlling A Physical Link Of A First Protocol Using An Extended Capability Structure Of A Second Protocol
US20210055777A1 (en) System power management in multi-port i/o hybrid systems
CN106407522B (zh) 基于fpga的逻辑ip总线互联实现装置
JP2021090188A (ja) ストリーミングファブリックインタフェース
US8234425B1 (en) Arbiter module
TWI450098B (zh) 主控端電子裝置以及主控端操作方法
US20140068131A1 (en) Limiting bandwidth for write transactions across networks of components in computer systems
JP2023094532A (ja) メモリ帯域幅のボトルネックを軽減し、電力管理を容易にするSoCアーキテクチャ

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees