TWI469048B - 緩衝器、運算系統、電腦可讀取的媒體以及媒體及管線式處理元件中的緩衝方法 - Google Patents

緩衝器、運算系統、電腦可讀取的媒體以及媒體及管線式處理元件中的緩衝方法 Download PDF

Info

Publication number
TWI469048B
TWI469048B TW99125944A TW99125944A TWI469048B TW I469048 B TWI469048 B TW I469048B TW 99125944 A TW99125944 A TW 99125944A TW 99125944 A TW99125944 A TW 99125944A TW I469048 B TWI469048 B TW I469048B
Authority
TW
Taiwan
Prior art keywords
buffer
memory
level
producer
data
Prior art date
Application number
TW99125944A
Other languages
English (en)
Other versions
TW201124911A (en
Inventor
Stanley G Tiedens
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 TW201124911A publication Critical patent/TW201124911A/zh
Application granted granted Critical
Publication of TWI469048B publication Critical patent/TWI469048B/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/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
    • 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

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)
  • Image Generation (AREA)
  • Information Transfer Systems (AREA)
  • Storage Device Security (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

緩衝器、運算系統、電腦可讀取的媒體以及媒體及管線式處理元件中的緩衝方法
本發明之揭示係大致有關電子學之領域。更具體而言,本發明之一實施例係有關媒體及管線式處理元件中之緩衝。
於運算領域中,緩衝器通常意指用來暫時儲存資料之儲存區。大部分的運算操作涉及某種緩衝儲存,例如,儲存用於計算之輸入資料,或儲存自計算得到的輸出資料。當資料自一位置被移到另一位置時,也可使用緩衝器。因此,實施緩衝器之方式可能對總體系統效率或潛時有顯著的影響。
此外,不同類型的資料可能需要不同類型的實施方式,以便實現操作效率、低產品成本、或較快之速度。因此,緩衝器的設計可能成為一複雜的工作。
【發明內容及實施方式】
在下文的說明中,述及許多特定細節,以便提供對各實施例的徹底了解。然而,可在沒有這些特定細節的情形下實施某些實施例。在其他的情形中,並未詳述習知的方法、程序、元件、及電路,以便不會模糊了該等特定實施例。
某些實施例提供了媒體(及非媒體)及管線式處理元件中之緩衝。在一實施例中,使用一協定,以便可協調各生產者、各消費者、及/或硬體架構的多個層級。例如,一生產者可將一資料結構傳送到(例如,傳送出格式化資訊)一緩衝器,然後由一消費者讀取該緩衝器。此種方式可進行該緩衝器的配置。此外,該緩衝器可包括可視需要而被配置或加入之多個緩衝等級(例如,當一特定實施例需要更多的儲存空間時)。
在本說明書的說明中,生產者通常意指產生交易之一代理器(agent),而該交易將被一消費者處理。協定通常可代表自生產者傳送到消費者的交易之抽象概念。在本說明書的說明中,術語交易可以與封包互換使用。封包通常可意指可能包含一或多個位元之一組資料。
在某些現有系統中,當在一生產者與一消費者之間進行緩衝時,可使用一狀態機,且可能必須根據實施例而改變該狀態機。對比之下,一實施例在縱然發生封包中之資料改變或封包的字組寬度改變等的情況時,也可利用相同的狀態機(例如,實施相同的協定)。此種方式減少了對重新設計的需求,也減少了產品上市時間及/或設計成本。在一實施例中,被耦合到一消費者與一生產者之間的一緩衝器亦可包含一位址產生邏輯,以便諸如在消費者或生產者需要存取系統記憶體時提供位址產生。此外,在某些實施例中,該緩衝器可動態地具有彈性的或可調整的大小。
可將諸如參照第1及6-7圖所述之該等系統等的各種運算系統用來實施本發明述及的各實施例。更具體而言,第1圖示出根據本發明的一實施例的一運算系統100之一方塊圖。系統100可包含一或多個代理器102-1至102-M(在本說明書中共同地被稱為"該等代理器102"或更一般性地被稱為"代理器102")。在一實施例中,該等代理器102中之一或多個代理器可以是諸如參照第6-7圖所述的運算系統等的一運算系統之任何元件。此外,該等代理器102可以是消費者或生產者。
如第1圖所示,該等代理器102可經由一網路結構104而通訊。在一實施例中,網路結構104可包括可讓各代理器(諸如運算裝置)傳送及接收資料之一電腦網路。在一實施例中,網路結構104可包括經由一序列(例如,點對點)鏈路及/或一共用式通訊網路而通訊之一或多個互連(或互連網路)。例如,某些實施例可促進可與全緩衝式雙直列記憶體模組(Fully Buffered Dual-in-line memory module;簡稱FBD)間之通訊的鏈路上之元件除錯或驗證,例如,其中該FBD鏈路是用來將記憶體模組耦合到一主機控制裝置(諸如一處理器或一記憶體控制中心)之一序列鏈路。可自該FBD通道主機傳輸除錯資訊,使通道流量蹤跡擷取工具(諸如一或多個邏輯分析器)可沿著該通道觀測該除錯資訊。
在一實施例中,系統100可支援一分層協定體系,該分層協定體系可包含一實體層、一鏈路層、一路由層、一傳輸層、及/或一協定層。結構104可針對點對點或共用式網路而進一步促進自一協定(例如,快取處理器或考慮快取(caching aware)之記憶體控制器)至另一協定的資料(例如,形式為封包)之傳輸。此外,在某些實施例中,網路結構104可提供遵守一或多種快取一致性協定之通訊。
此外,如第1圖之箭頭方向所示,代理器102可經由網路結構104而傳輸及/或接收資料。因此,某些代理器可將單向鏈路用於通訊,而其他的代理器可將雙向鏈路用於通訊。例如,一或多個代理器(諸如代理器102-M)可傳輸資料(例如,經由一單向鏈路106),其他一或多個代理器(例如,代理器102-2)可接收資料(例如,經由一單向鏈路108),而某一或多個代理器(例如,代理器102-1)可同時傳輸及接收資料(例如,經由一雙向鏈路110)。
此外,如第1圖所示,該等代理器102可經由一或多個緩衝器120而被耦合到其他代理器。在一實施例中,可將緩衝器120實施為網路結構104的一部分。下文中將參照第2-7圖而說明與緩衝器120的各實施例有關之進一步細節。
請參閱第2圖,根據一實施例而示出緩衝器120之一方塊圖。如圖所示,第2圖所示之緩衝器120被實施為一管線。在一實施例中,一管線緩衝協定(例如,在本說明書的說明中,諸如參照第1-7圖所述之管線緩衝協定)被設計成分層係在特定產品緩衝實施方式之上。此種方式可讓硬體加速器或協同處理器在數個設計世代及產品上仍然保持相當穩定。
此外,第2圖所示之架構提供了用來服務各生產者及各消費者之一多層級緩衝體系,且提供了一最小組的存取資訊,而且幾乎沒有生產者與消費者之間為了儲存、溢流、及提取資料而進行之通訊。在某些實施例中,多個先進後出(First Fill Last Spill;簡稱FFLS)層級可被耦合在一起(其中每一層級可包含第2圖所示該等元件中之一或多個元件),而最後一層級(諸如第3圖所示之FFLS最後層級300)經由一匯流排代理器(諸如第3圖所示之匯流排代理器304)而被耦合到一記憶體子系統(諸如第3圖所示之記憶體302)。
如第2圖所示,各生產者可將資料結構寫到該緩衝器(例如,經由仲裁多個生產者輸入202/204之寫入埠仲裁器201),且各消費者可經由一消費者介面(圖中未示出)而自緩衝器120(例如,資料可被儲存在記憶體208中,而在某些實施例中,該記憶體208可以是一隨機存取記憶體(Random Access Memory;簡稱RAM)或雙倍資料速率(Double Data Rate;簡稱DDR)記憶體)擷取資料206(該資料亦可包括資料結構資訊)。在一實施例中,一消費者回應用來指示對應於資料結構之資訊被儲存在記憶體的全部位置之一信號而自該記憶體讀取該資訊,且該消費者然後可根據該資料結構而處理來自該生產者之資料。控制處理器209(該控制處理器可以是諸如參照第6或7圖所述的那些處理器等的本發明述及之任何處理器)或處理器軟體可建立生產者及消費者配對、以及每一緩衝器中容許的資料結構之數目。該配對及緩衝器深度可連同本發明中述及的其他資料而被程式化到一控制器記憶體210。
此外,一最小組的識別碼(Identifier;簡稱ID)、結構編號/索引、及/或子結構偏移量自生產者(例如,202或204)而被傳送到緩衝器120(其中包括仲裁器201及一寫入埠位址產生器211,該寫入埠位址產生器211可產生對應於記憶體208中之各位置的一或多個位址),或自消費者傳送到諸如其中包括讀取埠仲裁器212(該讀取埠仲裁器212仲裁多個消費者輸入214/216)之緩衝控制器、以及一讀取埠位址產生器218(該讀取埠位址產生器218可產生用來存取記憶體208中之位置的位址)。
一管線緩衝(Pipeline Buffering;簡稱PB)控制邏輯220可諸如根據記憶體210(記憶體210可以是一RAM、唯讀記憶體(Read Only Memory;簡稱ROM)、或本發明中參照第6或7圖所示的其他形式之記憶體)中儲存之資料而控制尋找資料及決定晶載記憶體208(例如,RAM或DDR記憶體)中之實體位址的其他方面。在一實施例中,控制器220及處理器209可經由一多工器而被耦合到記憶體210;然而,其他實施例可使用一多埠記憶體,而可在沒有多工器之情形下存取記憶體210。此外,任何生產者的資料222/224可在緩衝的一層級或階段已經充滿了該生產者的資料(或任何額外的資料)之情形下流過該緩衝層級(例如,流過用來選擇資料222或224之一多工器226)。在此種方式下,除非使用了一被修改的保留策略(例如,具有"單一最新被緩衝儲存的"保留策略),否則將不需要重新緩衝儲存或資料的收回(eviction)。可藉由耦合多個緩衝器120,而在相同的可配置之硬體上建立一多層級緩衝系統,其中生產者的資料222/224及/或生產者的資料結構202/204被傳送到次一層級的緩衝器。
此外,控制處理器209(或一主機處理器)可以生產者/消費者資訊程式化或配置管線緩衝控制器220(例如,經由記憶體210),該生產者/消費者資訊包括諸如下列資訊中之一或多個資訊:以資料匯流排寬度/RAM字組表示之資料滙流排或結構大小、每一生產者要被儲存的資料結構之數目、用來自下游區域緩衝器提取被溢流的結構之浮水印(watermark)(在本說明書中也被可互換地稱為"臨界"層級)、立即提取的緩衝器之數目、每一生產者的第一結構之資料結構基址、低緩衝器浮水印層級、溢流操作、及/或仲裁操作。該等管線緩衝器亦可包含可讓該控制處理器(或一主機處理器)被用來作為生產者或消費者之埠。例如,此種方式可容許在兩個硬體加速器或管線緩衝器120之間插入一軟體程序。
在一實施例中,一生產者可將其中包括下列資訊中之一或多個資訊的資訊傳送到緩衝器120:生產者識別碼、要求/允許(grant)、停頓(stall)、進行中之序列/資料緩衝器/結構數目/計數、內部偏移位址(offset address)(例如,以資料字組表示)、及/或結構存取完成信號。在一實施例中,一消費者可將其中包括下列資訊中之一或多個資訊的資訊傳送到緩衝器120:消費者識別碼、要求/允許、停頓、進行中之序列/資料緩衝器/結構數目/計數、內部偏移位址(例如,以資料字組表示)、及/或結構存取完成信號。此外,在某些實施例中,每一生產者/消費者對具有用來界定第一資料結構的實體位置之一共用之起始"資料結構基址"。然而,可以生產者的結構寫入完成信號更新該生產者之"目前資料結構位址"。同樣可以消費者的結構讀取完成信號更新該消費者的"目前資料結構位址"。控制器220可將更新提供給執行實體位址計算及埠仲裁之硬體(例如,分別為仲裁器201及位址產生器211)。因此,在一實施例中,控制器220可能不在資料流的關鍵路徑內。
此外,可將該等管線緩衝器控制器階層式地分層,以便將額外的晶載緩衝或簡化的介面提供給各匯流排代理器(諸如第3圖所示之匯流排代理器304)。匯流排代理器304可提供一共用匯流排拓撲,用以使一或多個其他代理器在通訊上相互耦合(例如,前文中參照第1圖所示之結構104而說明的,或本發明參照諸如第6或7圖所述之其他匯流排)。在某些實施例中,可根據第一層級的緩衝器已充滿了一生產者的資料(或充滿了其他資料,且無法儲存任何額外的資料),而使來自該生產者之資料直接通過該第一層級的緩衝器而進入次一管線緩衝器層級。管線緩衝控制器220可根據控制處理器209(或一主機處理器)設定的浮水印而例如將任何資料預先提取到記憶體210內。為消費者提取的資料可直接被傳送到一消費者或並未充滿的次一管線(其中該次一管線可與該充滿的管線直接鄰接,或經由其他一或多個管線層級而被耦合到該充滿的管線)。
並非所有的階層式鍊終止於DDR。某些階層式鍊只是晶載的,且最後停頓於生產者。當該簡化式介面之效益超過管線緩衝控制器的任何潛時及面積考慮時,在各加速器之間的且始終並未溢出到DDR的各區域緩衝器亦可利用該管線緩衝器協定。
第3圖示出根據一實施例的一最後層級FFLS 300之一方塊圖。如第3圖所示,FFLS 300可包含與第2圖所示緩衝器120相同的或類似的元件。FFLS 300並不包含一記憶體(諸如第2圖所示之記憶體208),而是可經由前文所述之匯流排代理器304而存取記憶體子系統302。在某些實施例中,第3圖示出當該FFLS控制器將其中包括匯流排代理器304及憶體子系統302的組態之多層級系統組態用來決定哪一提出要求者要被服務之例子,且第2圖示出寫入埠仲裁器201根據項目206而控制資料多工器226(其中206是較簡單的方法,且可在不需要304及302的知識之第一或單一層級系統中被實施)。
此外,次一世代的消費電子產品矽元件可能需要硬體組態設定能力、可程式能力、及使用彈性,以便在最少的重新設計及重新驗證下同時支援個多個產品線。具有來自不同的市場區隔的不同功率、面積、及記憶體性能要求之並行產品開發要求加速的開發日程。本發明述及的架構將加速器的設計與管線緩衝的設計分離。此種方式提供了相依性的減少,且可在正確的領域中解決正確的設計問題。可將該等加速器設計為具有可變的像素處理寬度以及用來支援多種格式的可程式控制之可設定硬體組態之區塊。可針對一特定組的格式而一次性地設計及驗證該等加速器。一次性地設計該管線緩衝,但是可針對每一產品而將該管線緩衝最佳化。可以一標準化的協定及簡化的介面設計該等加速器,以便支援將資料轉移進或出該等管線中之其他主要加速器。在本說明書的說明中,一完整的管線可包含經由管線緩衝而被耦合在一起的一組加速器。該管線緩衝提供了一種將資料自一加速器轉移到另一加速器之機制。該管線緩衝也針對諸如具有不匹配的執行率(throughput)的加速器而提供了過度緩衝(over buffering)管理及預先提取能力。
此外,在該等加速器中被解決的設計問題可包括:用來支援多格式處理的內部資料結構之定義;滿足複雜的功率、面積、及即時處理空間中之執行率要求;各處理元件間之潛時;及/或維持諸如點陣式影像列(raster row)排序等的資料排序。在該管線緩衝中被解決的設計問題可包括:緩衝器架構(例如,快取相對於線性緩衝);過度緩衝管理;緩衝器大小設定;匯流排代理器複雜度(例如,寫入前再讀取(read around writes);仲裁策略;記憶體控制器介面;預先提取層級及大小設定;及/或收回策略。一旦將該等加速器及管線緩衝整合到一完整的管線之後,即可根據效能驗證而進行進一步之最佳化。在某些實施例中,該最佳化可能限於管線緩衝中之緩衝器大小設定及匯流排寬度大小設定。
因此,可將某些實施例(例如,其中包括本發明中述及的協定、裝置、方法、及系統等的某些實施例)用於次一世代的音訊、視訊、安全、網路、晶片組、處理器、以及其他的管線式加速器之並行設計,以供用於矽元件。某些設計可提供改善的緩衝器最佳化以及加速的產品日程,且同時可節省成本。
第4圖示出根據一實施例的一生產者介面時序圖。第5圖示出根據一實施例的一消費者介面時序圖。下表1及2分別示出根據某些實施例的第4-5圖所示之每一信號所參照到之意義(其中"clk"意指具有列舉型周期之時脈信號)。
第6圖示出一運算系統600的一實施例之一方塊圖。第1圖所示之該等代理器102中之一或多個代理器可包含運算系統600的一或多個元件。此外,系統600之各元件可包括一緩衝器(例如,第1-5圖所示之緩衝器120/300)。運算系統600可包含被耦合到一互連網路(或匯流排)604之一或多個中央處理單元(Central Processing Unit;簡稱CPU)602(該一或多個CPU在本說明書中可被共同地稱為"該等處理器602",或更一般性地被稱為"處理器602")。處理器602可以是諸如一般用途處理器、(可處理經由一電腦網路605傳送的資料)之網路處理器、或其他類型之處理器(其中包括精簡指令集電腦(Reduced Instruction Set Computer;簡稱RISC)處理器或複雜指令集電腦(Complex Instruction Set Computer;簡稱CISC)處理器)之任何類型的處理器。此外,處理器602可具有單一或多個核心的設計。具有多個核心設計之處理器602可將不同類型的處理器核心整合到相同的積體電路(Integrated Circuit;簡稱IC)晶粒中。此外,可將有多個核心設計之處理器602實施為對稱式或非對稱式多處理器。
處理器602可包含一或多個緩衝器(例如,不同於所示之緩衝器120及/或300之緩衝器),該一或多個緩衝器在各實施例中可以是專有的及/或被共用的。一般而言,快取記憶體儲存對應於被儲存在其他位置的或先前被計算出的原始資料之資料。為了減少記憶體存取潛時,一旦資料被儲存在一快取記憶體之後,將不重新提取或重新計算該原始資料,而是可藉由存取被儲存在該快取記憶體中之版本,而提供未來的使用。該一或多個快取記憶體可以是諸如第一層級(L1)快取記憶體、第二層級(L2)快取記憶體、第三層級(L3)快取記憶體、中間層級快取記憶體、最後一層級快取記憶體(Last Level Cache;簡稱LLC)等的用來儲存被系統600的一或多個元件利用的電子資料(例如,其中包括指令)之任何類型之快取記憶體。此外,該一或多個快取記憶體可被設置在各種位置(例如,被設置在其中包括第1或7圖所示系統的本發明述及的運算系統之其他元件之內)。
一晶片組606可額外地被耦合到互連網路604。此外,晶片組606可包含一圖形及記憶體控制中心(Graphics Memory Control Hub;簡稱GMCH)608。GMCH 608可包含被耦合到一記憶體612之一記憶體控制器610。記憶體612可儲存可被處理器602或與運算系統600中的元件通訊的任何其他裝置執行的諸如其中包括指令序列之資料。此外,在本發明的一實施例中,記憶體612可包括一或多個諸如隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)、同步動態隨機存取記憶體(Synchronous DRAM;簡稱SDRAM)、靜態機存取記憶體(Static RAM;簡稱SRAM)等的揮發性儲存(或記憶體)裝置。亦可使用諸如硬碟等的非揮發性記憶體。諸如多個處理器及/或多個系統記憶體等的額外之裝置可被耦合到互連網路604。
GMCH 608可進一步包含被耦合到一顯示裝置616之一圖形介面614(例如,經由一實施例中之一圖形加速器)。在一實施例中,圖形介面614可經由一加速圖形埠(Accelerated Graphics Port;簡稱AGP)而被耦合到顯示裝置616。在本發明的一實施例中,顯示裝置616(諸如一平板顯示器)可經由諸如一信號轉換器而被耦合到圖形介面614,該信號轉換器將諸如視訊記憶體或系統記憶體(例如,記憶體612)等的一儲存裝置中儲存的影像之數位表示法轉換為將被該顯示器616解譯及顯示之顯示信號。
如第6圖所示,一中心介面618可將GMCH 608耦合到一輸入/輸出控制中心(Input/output Control Hub;簡稱ICH) 620。ICH 620可將一介面提供給被耦合到運算系統600之輸入/輸出(I/O)裝置。ICH 620可經由諸如可符合PCIe規格之一周邊組件互連(Peripheral Component Interconnect;簡稱PCI)橋接器及通用序列匯流排(Universal Serial Bus;簡稱USB)控制器等的一周邊裝置橋接器(或控制器)624而被耦合到一匯流排622。橋接器624可提供處理器602與各周邊裝置間之一資料路徑。可使用其他類型的拓撲。此外,多個匯流排可諸如經由多個橋接器或控制器而被耦合到ICH 620。此外,匯流排622可包含其他類型及組態之匯流排系統。此外,在本發明的各實施例中,被耦合到ICH 620的其他周邊裝置可包括整合式磁碟電子介面(Integrated Drive Electronics;簡稱IDE)或小型電腦系統介面(Small Computer System Interface;簡稱SCSI)硬碟機、USB埠、鍵盤、滑鼠、平行埠、序列埠、軟碟機、以及數位輸出支援(例如,數位視訊介面(Digital Video Interface;簡稱DVI)等的周邊裝置。
匯流排622可被耦合到一音訊裝置626、一或多個磁碟機628、以及一網路配接器630(該網路配接器630在一實施例中可以是一網路介面卡(NIC))。在一實施例中,被耦合到匯流排622之網路配接器630或其他裝置可與晶片組606通訊。此外,在本發明之某些實施例中,各種元件(例如,網路配接器630)可被耦合到GMCH 608。此外,處理器602及GMCH 608可被合併,而構成一單晶片。在一實施例中,可在該等CPU 602中之一或多個CPU中設置記憶體控制器610。此外,在一實施例中,GMCH 608及ICH 620可被合併成一周邊裝置控制中心(Peripheral Control Hub;簡稱PCH)。
此外,運算系統600可包含揮發性及/或非揮發性記憶體(或儲存裝置)。例如,非揮發性記憶體可包括下列各項中之一或多項:唯讀記憶體(Read Only Memory;簡稱ROM)、可程式唯讀記憶體(Programmable ROM;簡稱PROM)、可抹除可程式唯讀記憶體(Erasable PROM;簡稱EPROM)、電氣可抹除可程式唯讀記憶體(Electrically EPROM;簡稱EEPROM)、磁碟機(例如628)、軟碟、唯讀光碟(Compact Disk ROM;簡稱CD-ROM)、數位多功能光碟(Digital Versatile Disk;簡稱DVD)、快閃記憶體、磁光碟、或可儲存電子資料(例如,其中包括指令)的其他類型之非揮發性機器可讀取的媒體。
在一實施例中,記憶體612可包含下列各項中之一或多項:作業系統(Operating System;簡稱O/S)632、應用程式634、目錄601、及/或裝置驅動程式636。記憶體612亦可包含記憶體映射式輸入/輸出(Memory Mapped I/O;簡稱MMIO)專用的一些區域。記憶體612中儲存之程式及/或資料可被交換到磁碟機628,作為記憶體管理操作的一部分。該一或多個應用程式634可(諸如在該一或多個處理器602上)被執行,而將一或多個封包傳送到被耦合到網路605之一或多個運算裝置。在一實施例中,封包可以是可被自至少一傳送器傳輸到至少一接收器(例如,經由諸如網路605等的一網路)的一或多個電信號編碼之一序列的一或多個符號及/或值。例如,每一封包可具有一標頭,該標頭包含諸如來源位址、目標位址、及封包類型等的可被用於路由及/或處理該封包之各種資訊。每一封包亦可具有一酬載,該酬載包含經由一電腦網路而在各運算裝置之間傳輸的該封包之原始資料(或內容)。
在一實施例中,應用程式634可將O/S 632用來諸如經由裝置驅動程式636而與系統600的各元件通訊。因此,裝置驅動程式636可包括網路配接器630特有命令,用以提供O/S 632與網路配接器630或經由晶片組606而被耦合到系統600的其他I/O裝置間之一通訊介面。
在一實施例中,O/S 632可包含一網路協定堆疊。協定堆疊通常意指可被執行而處理經由一網路605傳送的封包之一組程序或程式,其中該等封包可符合一特定協定。例如,可使用一傳輸控制協定/網際網路協定(Transfer Control Protocol/Internet Protocol;簡稱TCP/IP)堆疊以處理TCP/IP封包。裝置驅動程式636可指示記憶體612中將諸如經由該協定堆疊而被處理之緩衝器。
網路605可包括任何類型之電腦網路。網路配接器630可進一步包含一直接記憶體存取(Direct Memory Access;簡稱DMA)引擎,該DMA引擎將封包寫到被指定給用來經由網路605而傳輸及/或接收資料的(諸如被儲存在記憶體612之)可用描述符(descriptor)之緩衝器(例如,被儲存在記憶體612中)。此外,網路配接器630可包含一網路配接器控制器,該網路配接器控制器可包含用來執行與配接器有關的操作之邏輯(諸如一或多個可程式處理器)。在一實施例中,該配接器控制器可以是一媒體存取控制(Media Access Control;簡稱MAC)元件。網路配接器630可進一步包含諸如任何類型之揮發性/非揮發性記憶體(例如,其中包括一或多個快取記憶體及/或參照記憶體612述及的其他記憶體類型)等的一記憶體。
第7圖示出根據本發明的一實施例而被配置成點對點(Point-to-Point;簡稱PtP)組態之一運算系統700。第7圖尤其示出以一些點對點介面將處理器、記憶體、及輸入/輸出裝置互連之一系統。系統700的一或多個元件可執行前文中參照第1-6圖所述之操作。
如第7圖所示,系統700可包含數個處理器,而為了顧及圖式的清晰,圖中只示出兩個處理器702及704。處理器702及704可分別包含一區域記憶體控制中心(GMCH)706及708,用以進行與記憶體710及712間之通訊。記憶體710及/或712可儲存諸如前文中參照第6圖的記憶體612所述之各種資料。如第7圖所示,處理器702及704(或系統700的諸如晶片組720或I/O裝置743等的其他元件)亦可包含諸如前文中參照第1-6圖所述的那些快取記憶體等的一或多個快取記憶體。
在一實施例中,處理器702及704可以是前文中參照第6圖所述的該等處理器602中之一處理器。處理器702及704可分別使用點對點介面電路716及718而經由一點對點介面714交換資料。此外,處理器702及704可分別使用點對點介面電路726、728、730、及732而經由個別的點對點介面722及724與一晶片組720交換資料。晶片組720可進一步使用諸如一點對點介面電路737以經由一高效能圖形介面736而與一高效能圖形電路734交換資料。
在至少一實施例中,可在處理器702、704、及/或晶片組720中之一者或多者中設置第2圖所示之緩衝器120(及/或第3圖所示之300)。然而,本發明之其他實施例可在第7圖所示之系統700內存在有其他的電路、邏輯單元、或裝置。此外,本發明的其他實施例可能被分佈在第7圖所示之數個電路、邏輯單元、或裝置。
晶片組720可使用一點對點介面電路741與一匯流排740通訊。匯流排740可具有與其通訊之諸如一匯流排橋接器742及I/O裝置743等的一或多個裝置。匯流排橋接器742可經由一匯流排744而與諸如鍵盤/滑鼠745、通訊裝置746(例如,可與電腦網路605通訊的數據機、網路介面裝置、或其他通訊裝置)、音訊I/O裝置、及/或資料儲存裝置748等的其他裝置通訊。資料儲存裝置748可儲存處理器702及/或704可執行的碼749。
在本發明之各實施例中,可參照諸如第1-7圖所述之該等操作實施為硬體(例如,電路)、軟體、韌體、微碼、或以上各項之組合,且可以電腦程式產品之形式提供以上各項或其組合,例如,該電腦程式產品包括儲存有用來將電腦程式化成執行本發明中述及的程序的指令(或軟體程序)之機器可讀取的或電腦可讀取的媒體。此外,術語"邏輯"可包括諸如軟體、硬體、或軟體及硬體之組合。該機器可讀取的媒體可包括諸如參照第1-7圖述及的那些儲存裝置等的儲存裝置。此外,可以電腦程式產品之形式下載此種電腦可讀取的媒體,其中可經由一通訊鏈路(例如,一匯流排、一數據機、或一網路連線)且利用載波或其他傳播媒體中提供之資料信號而將程式自一遠端電腦(例如,一伺服器)傳輸到提出要求的電腦(例如,一用戶端電腦)。
在本說明書中提及"一個實施例"或"一實施例"時意指參照該實施例述及的一特定的特性、結構、或特徵可被包含在至少一實施方式中。在本說明書的各處中出現詞語"在一實施例中"時,可以或可以不都參照到相同的實施例。
此外,在說明及申請專利範圍中,可使用術語"被耦合"及"被連接"以及其派生詞。在本發明之某些實施例中,"被連接"可被用來指示兩個或更多個元件相互在實體上或電氣上直接接觸。"被耦合"可意指:兩個或更多個元件在實體上或電氣上直接接觸。然而,"被耦合"亦可意指:兩個或更多個元件可能沒有相互直接接觸,但仍然可相互配合或作用。
因此,雖然已以與結構特徵及/或方法行動有關的語文說明了本發明之實施例,但是我們應可了解:申請專利範圍的主題可不限於本說明書中述及的該等特定的特徵或行動。更確切地說,係以實施申請專利範圍的主題之樣本形式之方式揭示該等特定的特徵或行動。
100,600,700...運算系統
102,102-1-102-M...代理器
104...網路結構
106,108...單向鏈路
110...雙向鏈路
120...緩衝器
300...先進後出最後層級
304...匯流排代理器
208,302,612,710,712...記憶體
202,204...生產者輸入
201...寫入埠仲裁器
206...資料
209...控制處理器
210...控制器記憶體
211...寫入埠位址產生器
212...讀取埠仲裁器
214,216...消費者輸入
218...讀取埠位址產生器
220...管線緩衝控制邏輯
222,224...生產者的資料
226...多工器
602,702,704...處理器
604...互連網路
605...電腦網路
606,720...晶片組
608,706,708...圖形及記憶體控制中心
610...記憶體控制器
614...圖形介面
616...顯示裝置
618...中心介面
620...輸入/輸出控制中心
622,740,744...匯流排
624...周邊裝置橋接器
626...音訊裝置
628...磁碟機
630...網路配接器
632...作業系統
634...應用程式
601...目錄
636...裝置驅動程式
743...輸入/輸出裝置
714,722,724...點對點介面
716,718,726,728,730,732,737,741...點對點介面電路
734...高效能圖形電路
736...高效能圖形介面
742...匯流排橋接器
745...鍵盤/滑鼠
746...通訊裝置
748...資料儲存裝置
749...碼
前文中已參照各附圖而提供了實施方式。在該等圖式中,代號最左方的數字識別該代號首次出現的圖式。在不同的圖式中將使用相同的代號標示類似的或相同的項目。
第1及6-7圖示出可被用來實施本發明中述及的各實施例的運算系統的實施例之方塊圖。
第2-3圖示出根據某些實施例的緩衝器之方塊圖。
第4-5圖示出根據某些實施例的時序圖。
120...緩衝器
208...記憶體
202,204...生產者輸入
201...寫入埠仲裁器
206...資料
209...控制處理器
210...控制器記憶體
211...寫入埠位址產生器
212...讀取埠仲裁器
214,216...消費者輸入
218...讀取埠位址產生器
220...管線緩衝控制邏輯
222,224...生產者的資料
226...多工器

Claims (25)

  1. 一種緩衝器,包含:一仲裁器,用以自一生產者接收對應於一資料結構之資訊;記憶體,用以儲存對應於該資料結構的該資訊;以及一位址產生器,用以產生該記憶體中之一位址,此位址對應於該記憶體中將儲存對應於該資料結構的該資訊的一位置,其中一消費者回應用來指示該資訊的全部被儲存在該記憶體之一信號,而自該記憶體讀取對應於該資料結構的該資訊,且根據該資料結構而處理來自該生產者之資料,其中該緩衝器包含複數個緩衝器層級,且至少一第一層級緩衝器及一第二層級緩衝器分別包含該記憶體、該位址產生器、及該仲裁器,以及其中來自該生產者之資料回應該第一層級緩衝器已充滿之一決定而通過該第一層級緩衝器到達該第二層級緩衝器。
  2. 如申請專利範圍第1項之緩衝器,進一步包含一控制邏輯,用以控制該仲裁器及該位址產生器之操作。
  3. 如申請專利範圍第1項之緩衝器,進一步包含一控制邏輯,用以將對應於該生產者之資料預先提取到該緩衝器之一區域記憶體內。
  4. 如申請專利範圍第1項之緩衝器,其中該緩衝器包含一第一層級,該第一層級包含該記憶體、該位址產生器、及該仲裁器,其中該緩衝器進一步包含一第二層 級,該第二層級包含:另一仲裁器,用以自該生產者接收對應於該資料結構之資訊;另一位址產生器,用以產生一記憶體子系統之一位址,此位址對應於該記憶體子系統中將儲存對應於該資料結構的該資訊的一位置;以及一匯流排代理器,用以將該另一位址產生器耦合到該記憶體子系統。
  5. 如申請專利範圍第4項之緩衝器,其中該消費者回應用來指示該資訊的全部被儲存在該記憶體子系統之一允許信號,而自該記憶體子系統讀取對應於該資料結構的該資訊。
  6. 如申請專利範圍第1項之緩衝器,其中該緩衝器是一先進後出(FFLS)緩衝器。
  7. 如申請專利範圍第1項之緩衝器,其中該記憶體根據一基址及一偏移量而儲存該資料結構。
  8. 如申請專利範圍第1項之緩衝器,進一步包含一控制邏輯,用以控制該仲裁器及該位址產生器之操作,其中一處理器以其中包含下列各資訊中之一或多個資訊的生產者或消費者資訊設定該控制邏輯之組態:資料匯流排寬度、要被儲存的每一生產者之資料結構數目、用來自下游緩衝器層級提取溢流結構之浮水印、立即提取的緩衝器數目、每一生產者的第一結構之資料結構基址、低緩衝器浮水印層級、溢流操作、或仲裁操作。
  9. 一種媒體及管線式處理元件中的緩衝方法,包含:自一生產者接收對應於一資料結構之資訊;將對應於該資料結構的該資訊儲存在記憶體;產生該記憶體中之一位址,此位址對應於該記憶體中將儲存對應於該資料結構的該資訊的一位置;將資料自被耦合於該生產者與該消費者間之一緩衝器之一第一層級傳送到該緩衝器之一第二層級,其中該第一層級包含該記憶體,且該第二層級包含用來存取一記憶體子系統之一匯流排代理器,以及其中係回應該第一層級緩衝器已充滿之一決定而執行將該資料自該第一層級傳送到該第二層級;以及回應用來指示該資訊的全部被儲存在該記憶體之一信號,在一消費者自該記憶體讀取對應於該資料結構的該資訊。
  10. 如申請專利範圍第9項之方法,進一步包含:根據該資料結構而處理來自該生產者之資料。
  11. 如申請專利範圍第9項之方法,進一步包含:將對應於該生產者之資料預先提取到被耦合於該消費者與該生產者間之一緩衝器之一區域記憶體內。
  12. 如申請專利範圍第9項之方法,進一步包含:該消費者回應用來指示該資訊的全部被儲存在該記憶體子系統之一允許信號,而自該記憶體子系統讀取對應於該資料結構的該資訊。
  13. 如申請專利範圍第9項之方法,其中係根據一基址及一偏移量而執行將該資訊儲存在該記憶體內。
  14. 一種運算系統,包含:一緩衝器,包含:一控制邏輯,用以控制一仲裁器,其中該仲裁器自一生產者接收對應於一資料結構之資訊;記憶體,用以儲存對應於該資料結構之資訊;一位址產生器,用以產生該記憶體中之一位址,此位址對應於該記憶體中將儲存對應於該資料結構的該資訊的一位置;以及一處理器,該處理器以生產者或消費者資訊設定該控制邏輯之組態,其中一消費者回應用來指示該資訊的全部被儲存在該記憶體之一信號,而自該記憶體讀取對應於該資料結構的該資訊,且根據該資料結構而處理來自該生產者之資料,其中該緩衝器包含複數個緩衝器層級,且至少一第一層級緩衝器及一第二層級緩衝器分別包含該記憶體、該位址產生器、及該仲裁器,以及其中來自該生產者之資料回應該第一層級緩衝器已充滿之一決定而通過該第一層級緩衝器到達該第二層級緩衝器。
  15. 如申請專利範圍第14項之系統,其中該控制邏輯控制該位址產生器之操作。
  16. 如申請專利範圍第14項之系統,其中該控制邏輯將對應於該生產者之資料預先提取到被耦合於該生產者與該消費者間之該緩衝器之一區域記憶體內。
  17. 如申請專利範圍第14項之系統,其中該緩衝器是一先進後出(FFLS)緩衝器。
  18. 如申請專利範圍第14項之系統,其中該記憶體根據一基址及一偏移量而儲存該資料結構。
  19. 一種儲存一或多個指令之電腦可讀取的媒體,該一或多個指令被一處理器執行時將執行下列一或多個操作:自一生產者接收對應於一資料結構之資訊;將對應於該資料結構的該資訊儲存在一記憶體;產生該記憶體中之一位址,此位址對應於該記憶體中將儲存對應於該資料結構的該資訊的一位置;以及回應用來指示該資訊的全部被儲存在該記憶體之一信號,在一消費者自該記憶體讀取對應於該資料結構的該資訊,其中一緩衝器包含複數個緩衝器層級,且至少一第一層級緩衝器及一第二層級緩衝器分別包含該記憶體,其中來自該生產者之額外資料回應該第一層級緩衝器已充滿且未從該第一層級緩衝器移出任何資料之一決定而通過該第一層級緩衝器到達該第二層級緩衝器。
  20. 如申請專利範圍第19項之媒體,其中該一或多個指令使該處理器根據該資料結構而處理來自該生產者之資料。
  21. 如申請專利範圍第19項之媒體,其中該一或多個指令使該處理器將對應於該生產者之資料預先提取到該緩衝器之一區域記憶體內。
  22. 如申請專利範圍第19項之媒體,其中該第二層級包含用來存取一記憶體子系統之一匯流排代理器。
  23. 如申請專利範圍第19項之媒體,其中該一或多個指令使該處理器回應該第一層級緩衝器已充滿之一決定而執行將該資料自該第一層級傳送到該第二層級。
  24. 如申請專利範圍第19項之媒體,其中該一或多個指令使該消費者回應用來指示該資訊的全部被儲存在該記憶體子系統之一允許信號,而自該記憶體子系統讀取對應於該資料結構的該資訊。
  25. 如申請專利範圍第19項之媒體,其中該一或多個指令使該處理器根據一基址及一偏移量而執行將該資訊儲存在該記憶體內。
TW99125944A 2009-09-25 2010-08-04 緩衝器、運算系統、電腦可讀取的媒體以及媒體及管線式處理元件中的緩衝方法 TWI469048B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
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
TW201124911A TW201124911A (en) 2011-07-16
TWI469048B true TWI469048B (zh) 2015-01-11

Family

ID=42931405

Family Applications (1)

Application Number Title Priority Date Filing Date
TW99125944A TWI469048B (zh) 2009-09-25 2010-08-04 緩衝器、運算系統、電腦可讀取的媒體以及媒體及管線式處理元件中的緩衝方法

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)

Families Citing this family (9)

* 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
CN103164838B (zh) * 2011-12-12 2015-11-04 扬智科技股份有限公司 图形数据处理方法
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
US10303630B2 (en) * 2017-10-08 2019-05-28 Huawei Technologies Co., Ltd. Configurable hardware accelerators
CN109614152B (zh) * 2018-12-06 2022-11-04 镕铭微电子(济南)有限公司 硬件加速模块及存储设备
CN115004660B (zh) 2019-12-02 2023-08-11 Drw技术有限责任公司 使用连续带宽控制的用于时延关键服务质量的系统和方法
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
US4442487A (en) * 1981-12-31 1984-04-10 International Business Machines Corporation Three level memory hierarchy using write and share flags
EP0115036B1 (en) * 1982-12-30 1991-02-27 International Business Machines Corporation A hierarchical memory system including separate cache memories for storing data and instructions
TW200406676A (en) * 2002-09-27 2004-05-01 Advanced Micro Devices Inc Computer system with integrated directory and processor cache
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
JPH06131153A (ja) 1992-10-16 1994-05-13 Just Syst Corp 情報処理方法及び装置
US6055429A (en) * 1996-10-07 2000-04-25 Lynch; Michael R. Distributed wireless call processing system
US6292855B1 (en) 1998-12-18 2001-09-18 Lsi Logic Corporation Method to allow hardware configurable data structures
AU7593601A (en) * 2000-07-14 2002-01-30 Atabok Inc Controlling and managing digital assets
US7054986B2 (en) 2001-03-30 2006-05-30 Nokia Corporation Programmable CPU/interface buffer structure using dual port RAM
US7783769B2 (en) 2004-03-31 2010-08-24 Intel Corporation Accelerated TCP (Transport Control Protocol) stack processing
US7620749B2 (en) 2007-01-10 2009-11-17 International Business Machines Corporation Descriptor prefetch mechanism for high latency and out of order DMA device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4442487A (en) * 1981-12-31 1984-04-10 International Business Machines Corporation Three level memory hierarchy using write and share flags
EP0115036B1 (en) * 1982-12-30 1991-02-27 International Business Machines Corporation A hierarchical memory system including separate cache memories for storing data and instructions
TW200406676A (en) * 2002-09-27 2004-05-01 Advanced Micro Devices Inc Computer system with integrated directory and processor cache
US7568057B2 (en) * 2006-12-19 2009-07-28 Intel Corporation Method and apparatus for maintaining synchronization of audio in a computing system

Also Published As

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

Similar Documents

Publication Publication Date Title
TWI469048B (zh) 緩衝器、運算系統、電腦可讀取的媒體以及媒體及管線式處理元件中的緩衝方法
US10795844B2 (en) Multicore bus architecture with non-blocking high performance transaction credit system
US11831565B2 (en) Method for maintaining cache consistency during reordering
CN110741356A (zh) 多处理器系统中的中继一致存储器管理
JP5681782B2 (ja) オン・ダイ・システム・ファブリック・ブロックの制御
TWI506444B (zh) 改良mmio請求處置之處理器及方法
US11803505B2 (en) Multicore bus architecture with wire reduction and physical congestion minimization via shared transaction channels
CN110442532A (zh) 用于与主机相链接的设备的全球可存储存储器
JP2007220046A (ja) バス装置、バスシステムおよび情報転送方法
US8443148B2 (en) System-wide quiescence and per-thread transaction fence in a distributed caching agent
US10459860B2 (en) EMI mitigation on high-speed lanes using false stall
KR101845465B1 (ko) 듀얼 전압 데이터 전송을 이용한 메시 성능 향상
CN115328832B (zh) 一种基于pcie dma的数据调度系统与方法
CN117435549A (zh) 用于硬件组件之间的通信的方法和系统

Legal Events

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