TW201435574A - 用於表示、指定和使用期限之方法、設備及系統 - Google Patents

用於表示、指定和使用期限之方法、設備及系統 Download PDF

Info

Publication number
TW201435574A
TW201435574A TW103104734A TW103104734A TW201435574A TW 201435574 A TW201435574 A TW 201435574A TW 103104734 A TW103104734 A TW 103104734A TW 103104734 A TW103104734 A TW 103104734A TW 201435574 A TW201435574 A TW 201435574A
Authority
TW
Taiwan
Prior art keywords
memory
value
organization
request
deadline
Prior art date
Application number
TW103104734A
Other languages
English (en)
Other versions
TWI522792B (zh
Inventor
Daniel F Cutter
Blaise Fanning
Ramadass Nagarajan
Ravishankar Iyer
Quang T Le
Ravi Kolagotla
Ioannis T Schoinas
Jose S Niell
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 TW201435574A publication Critical patent/TW201435574A/zh
Application granted granted Critical
Publication of TWI522792B publication Critical patent/TWI522792B/zh

Links

Classifications

    • 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
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • 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

Abstract

於一實施例中,一共用記憶體組織被組態以接收來自多重代理者的記憶體要求,其中該等要求之至少一些具有一關聯的順序識別符及一期限值以指示在記憶體要求完成之前的一最大等待時間。響應於該等要求,該組織至少部分地基於該等期限值而在該等要求之間仲裁。其他實施例被說明並且請求權益保護。

Description

用於表示、指定和使用期限之方法、設備及系統 發明領域
這揭示係關於電腦系統,並且尤其是(但不是唯一地)關於包含耦合複數個裝置至一記憶體的一組織之系統。
發明背景
由於電腦系統是正在進步,其構件亦成為更複雜。因而,用以在該等構件之間耦合及通訊之互連構造的複雜性也增加,以確保符合最佳構件操作之帶寬需求。更進一步地,不同市場區段要求不同的互連構造面向以適應市場之需求。例如,伺服器需要較高的性能,而易變之生態系統有時為了功率節省則是可能犧牲全部的性能。然而,多數的組織的單一目的是提供具有最大功率節省之最高可能性能。在下面,一些互連被討論,其將可能受益自此處所說明之本發明的論點。
發明概要
依據本發明之一實施例,係特地提出一種設備,其包含:耦合至一組織構件之一半導體裝置的複數個智慧財產(IP)區塊,其中該等複數個IP區塊之至少一些是與一期限構件相關聯,該期限構件用以產生一期限值以指示完成一記憶體要求之一等待時間並且將該記憶體要求與該期限值傳遞至該組織構件。
100‧‧‧處理器
101、102‧‧‧核心
101a、101b‧‧‧硬體線程
102a、102b‧‧‧結構狀態暫存器
105‧‧‧匯流排
110‧‧‧介面模組
115‧‧‧低階資料快取及資料
120‧‧‧指令轉譯緩衝器
125‧‧‧解碼模組/解碼邏輯/解碼器
126‧‧‧解碼器
130‧‧‧定位器及重新命名器
135‧‧‧重排序/除役單元
140‧‧‧執行單元
150‧‧‧較低位準資料快取及資 料轉譯緩衝器
175‧‧‧記憶體
176‧‧‧應用程式碼
177‧‧‧轉譯器數碼
180‧‧‧圖形處理器
200‧‧‧共用記憶體組織
214‧‧‧期限邏輯
215‧‧‧代理者
2150-2153‧‧‧代理者
2173‧‧‧介面邏輯
2180-2183‧‧‧中繼器先進先出緩衝器
220‧‧‧容許仲裁器
230‧‧‧排程器仲裁器
240‧‧‧同調追蹤器
242‧‧‧計分板
244‧‧‧資料緩衝器
245‧‧‧位址標籤儲存器
246‧‧‧控制佇列
248‧‧‧資源分配邏輯
250‧‧‧全局計時器
260‧‧‧組態暫存器
270‧‧‧記憶體控制器
300‧‧‧系統晶片(SoC)
310、315‧‧‧資料緩衝器
310‧‧‧讀取資料緩衝器
3110-31115‧‧‧項目
315‧‧‧寫入資料緩衝器
320‧‧‧寫入期限邏輯
325‧‧‧讀取期限邏輯
330‧‧‧選擇器
400‧‧‧系統晶片(SoC)
410、415‧‧‧資料緩衝器
420‧‧‧第一期限邏輯
425‧‧‧第二期限邏輯
500‧‧‧儲存器
510‧‧‧FIFO
520‧‧‧第一邏輯
530‧‧‧第二邏輯
540‧‧‧比較邏輯
600‧‧‧邏輯
610‧‧‧容許仲裁器
6120-612n‧‧‧優先序計算邏輯
616‧‧‧低優先序仲裁器
618‧‧‧高優先序仲裁器
620‧‧‧組態儲存器
630‧‧‧要求期限陣列
632‧‧‧退出自更新等待時間數值
634‧‧‧全局計時器值
6400-640n‧‧‧退出自更新邏輯
6450-645n‧‧‧退出自更新邏輯
650、652‧‧‧邏輯電路
654‧‧‧邏輯電路
700‧‧‧邏輯
7100-710n‧‧‧優先序計算邏輯
712‧‧‧全局計時器值
714‧‧‧高優先序臨界值
720‧‧‧要求期限陣列
800‧‧‧要求處理方法
810-840‧‧‧要求處理步驟
900‧‧‧要求處理方法
910-970‧‧‧要求處理步驟
1000‧‧‧單一晶粒半導體裝置
10100-1010n‧‧‧核心
1015‧‧‧共用快取記憶體
10200-1020n‧‧‧獨立圖形單元
1025‧‧‧共用快取記憶體
1028、1029‧‧‧晶粒內互連
1030‧‧‧系統代理者
1035‧‧‧共用記憶體組織
1040‧‧‧記憶體控制器
1044、1046‧‧‧互連
1050‧‧‧內部代理者
1100‧‧‧系統
1110‧‧‧處理器
1115‧‧‧系統記憶體
1120‧‧‧大量儲存器
1122‧‧‧快閃裝置
1124‧‧‧顯示器
1125‧‧‧觸控螢幕
1130‧‧‧觸控墊
1135‧‧‧嵌入式控制器
1136‧‧‧鍵盤
1137‧‧‧風扇
1138‧‧‧信用平臺模組(TPM)
1139‧‧‧熱感知器
1140‧‧‧感知器中樞
1141‧‧‧加速器
1142‧‧‧環境光感知器(ALS)
1143‧‧‧羅盤
1144‧‧‧回旋儀
1145‧‧‧近場通訊(NFC)單元
1146‧‧‧熱感知器
1150‧‧‧WLAN單元
1152‧‧‧藍牙單元
1154‧‧‧攝影機模組
1155‧‧‧GPS模組
1156‧‧‧WWAN單元
1157‧‧‧用戶身份模組(SIM)
1160‧‧‧數位信號處理器(DSP)
1162‧‧‧編解碼器/放大器
1163‧‧‧輸出擴音機
1165‧‧‧麥克風
1164‧‧‧頭戴式耳機插孔
圖1是例示包含一多核心處理器之電腦系統的一實施例之方塊圖。
圖2是依據本發明一實施例之一共用記憶體組織的一部份之方塊圖。
圖3是依據本發明一實施例之一系統晶片(SoC)的一部份之方塊圖。
圖4是依據本發明另一實施例之一系統晶片的另一部份之方塊圖。
圖5是依據本發明一實施例之中繼器儲存器的方塊圖。
圖6是依據本發明一實施例之仲裁邏輯的方塊圖。
圖7是依據本發明一實施例而例示在一要求追蹤器及記憶體排程器內之邏輯的方塊圖。
圖8是依據本發明一實施例用以產生要求之方法的流程圖。
圖9是依據本發明一實施例用以處理進入的要求 之方法的流程圖。
圖10是依據本發明一實施例之一系統晶片的方塊圖。
圖11是依據本發明一實施例而呈現於一電腦系統中之構件的方塊圖。
較佳實施例之詳細說明
於下面說明中,許多特定細節被提出,例如特定型式之處理器以及系統組態、特定硬體結構、特定體系結構和微結構細節、特定暫存器組態、特定UltrabookTM特性、特定指令型式、特定系統構件、特定量度/高度、特定處理器管線步驟以及操作等等之範例,以便提供本發明之透徹了解。明顯地,但是,一熟習本技術者應明白這些特定細節不一定需要被採用以實施本發明。於其他實例中,為了避免非必要地混淆本發明,習知的構件或方法,例如,特定以及不同的處理器結構、用以所述演算法之特定邏輯電路/數碼、特定韌體數碼、特定互連操作、特定邏輯組態、特定製造技術以及材料、特定編譯器實作例、演算法的數碼特定表示、電腦系統的特定斷電與閘控技術/邏輯以及其他特定操作細節不於此詳細被說明。
雖然下面的實施例可參考特定積體電路中(例如,電腦平臺或微處理器中)之能量節省以及能量效能被說明,其他實施例也是可應用至其他型式的積體電路以及邏輯裝置。此處說明之實施例的相似技術以及原理可被應 用至也可能得利自較佳能量效能以及能量節省之其他型式的電路或半導體裝置。例如,揭示之實施例是不受限定於桌上型電腦系統或UltrabookTM,以及也可被使用於其他裝置中,例如,手持裝置、平板電腦、其他薄型筆記型電腦、系統晶片(SOC)裝置、以及嵌入式應用。手持裝置之一些範例包含行動電話、網際網路協定裝置、數位攝影機、個人數位助理(PDA)、以及手持個人電腦。嵌入式應用一般包含微控制器、數位信號處理器(DSP)、系統晶片、網路電腦(NetPC)、機上盒、網路中樞、廣域網路(WAN)交換機、或可進行此處所述之功能以及操作的任何其他系統。此外,此處所述之設備、方法、以及系統是不受限定於實際的電腦裝置,但是也可以是有關用於能量節省以及效能之軟體最佳化。如在下面說明中將更明顯地,於此處所述的方法、設備、以及系統之實施例(不論是否關於硬體、韌體、軟體、或其之組合)在性能考慮方面是著重於‘綠色技術’之未來平衡。
由於電腦系統是正在進步,其構件亦成為更複雜。因而,用以在該等構件之間耦合及通訊之互連構造的複雜性也增加,以確保符合最佳構件操作之帶寬需求。更進一步地,不同市場區段要求不同的互連構造面向以適應市場之需求。例如,伺服器需要較高的性能,而易變之生態系統有時為了功率節省則是可能犧牲全部的性能。然而,多數的組織的單一目的是提供具有最大功率節省之最高可能性能。在下面,一些互連被討論,其將可能受益自 此處所說明之本發明的論點。
參看至圖1,包含複數個核心之一處理器的實施例圖解地被展示。處理器100包含用以執行程式碼之任何處理器或處理裝置,例如,一微處理器、一嵌入式處理器、一數位信號處理器(DSP)、一網路處理器、一手持處理器、一應用處理器、一協同處理器、一系統晶片(SOC)、或用以執行程式碼之其他裝置。處理器100,於一實施例中,包含至少二個核心一核心101及102,其可包含非對稱的核心或對稱的核心(如所例示之實施例)。但是,處理器100可包含可以是對稱或不對稱的任何數量之處理元件。
於一實施例中,一處理元件係指支援一軟體線程之硬體或邏輯。硬體處理元件之範例包含:一線程單元、一線程槽、一線程、一處理單元、一脈絡、一脈絡單元、一邏輯處理器、一硬體線程、一核心、及/或任何其他元件,其是可保持對於一處理器之狀態,例如,一執行狀態或建構狀態。換言之,一處理元件,於一實施例中,係指可獨自地關聯程式碼(例如,一軟體線程、操作系統、應用、或其他程式碼)之任何硬體。一實體處理器一般係指一積體電路,其可能包含任何數量之其他處理元件,例如,核心或硬體線程。
一核心通常係指被置放於可維持一獨立建構狀態的一積體電路上之邏輯,其中各獨立地維持建構狀態是關聯於至少一些專用之執行資源。相對至核心,一硬體線 程一般係指任何被置放於可維持一獨立建構狀態的一積體電路上之邏輯,其中該等獨立地維持建構狀態共享存取之執行資源。可看出,當某些資源被共用且其他者是專用至一建構狀態時,在一硬體線程的術語及核心之間的線重疊。然而,通常地一核心以及一硬體線程利用一操作系統被觀看作為分別的邏輯處理器,其中該操作系統是可分別地排程於各邏輯處理器上之操作。
實體處理器100,如所例示於圖1中,包含二核心-核心101及102。此處,核心101及102被考慮為對稱的核心,亦即,具有相同組態、功能單元、及/或邏輯的核心。於另一實施例中,核心101包含一失序處理器核心,而核心102則包含一有序處理器核心。但是,核心101及102可以是分別地選自任何型式之核心,例如,一本機核心、一軟體管理核心、適用於執行一本機指令集結構(ISA)之一核心、適用於執行一轉譯指令集結構(ISA)之一核心、一協同設計核心、或其他習知核心。於一異質核心環境(亦即,非對稱的核心)中,一些轉譯型式,如一二進制轉譯,可被採用以於一個或兩個核心上排程或執行編碼。再進一步地討論,如核心102中之單元的相似方式而操作之被例示於核心101中的功能單元,將在下面進一步詳細地被說明。
如所展示地,核心101包含二硬體線程101a及101b,其也可被稱為硬體線程槽101a及101b。因此,軟體實體,例如,一操作系統,於一實施例中,可能視處理器 100如四個分別的處理器,亦即,可同時地執行四個軟體線程的四個邏輯處理器或處理元件。如上所述,一第一線程是關聯結構狀態暫存器101a,一第二線程是關聯結構狀態暫存器101b,一第三線程可以是關聯結構狀態暫存器102a,以及一第四線程可以是關聯結構狀態暫存器102b。於此,該等結構狀態暫存器(101a、101b、102a、以及102b)之各者可如上所述地被稱為處理元件、線程槽、或線程單元。如例示,結構狀態暫存器101a被複製於結構狀態暫存器101b中,因此分別的結構狀態/脈絡是可能被儲存以供用於邏輯處理器101a及邏輯處理器101b。於核心101中,其他較小的資源,例如,於定位器及重新命名器區塊130中之指令指標以及重新命名邏輯也可被複製以供用於線程101a及101b。一些資源,例如,於重排序/除役單元135中之重排序緩衝器、ILTB120、負載/儲存緩衝器、以及佇列可經由分區而被共用。其他資源,例如,一般用途內部暫存器,頁表基址暫存器、低階資料快取及資料TLB115、執行單元140、以及失序單元135之部份是可能完全地被共用。
處理器100時常包含其他資源,其可完全地被共用,經由分區被共用,或被處理元件所專用/被專用於處理元件。於圖1中具有一處理器之例示性邏輯單元/資源之處理器的一單純實施範例被例示。注意到,一處理器可包含,或省略,任何的這些功能單元,以及包含未被展示之任何其他習知的功能單元、邏輯、或韌體。如例示,核心 101包含一簡化的代表性失序(OOO)的處理器核心。但是一有序處理器可被採用於不同的實施例中。該OOO核心包含一分支目標緩衝器120以預測將被執行/被採用的分支以及一指令轉譯緩衝器(I-TLB)120以儲存用於指令之位址轉譯項目。
核心101進一步地包含被耦合至擷取單元120之解碼模組125以解碼所擷取的元件。擷取邏輯,於一實施例中,包含分別地關聯線程槽101a、101b之個別的順序器。通常核心101是關聯一第一ISA,其界定/指定指令可於處理器100上執行的指令。通常機器碼指令(其是第一ISA之部份)包含指令之一部份(稱為一操作碼),其參考/指定將被進行的一指令或操作。解碼邏輯125包含電路,其自它們的操作碼確認這些指令並且傳送如利用第一ISA被界定而於管線上被解碼的指令以供處理。例如,如在下面之更詳細地討論,於一實施例中,解碼器125,包含被設計或適用於辨識特定指令(例如,交易指令)之邏輯。因而,藉由解碼器125之辨識,構造或核心101採用特定、預定動作以進行關聯該適當指令的工作。重要地應注意到,此處所述之任何的工作、區塊、操作、以及方法可響應於一單一或複數個指令而被進行;其之一些可以是新的或舊的指令。注意到,於一實施例中,解碼器126辨識相同的ISA(或其之一子集)。另外地,於一異質核心環境中,解碼器126辨識一第二ISA(第一ISA的一子集或一獨特ISA之任一者)。
於一範例中,定位器以及重新命名器區塊130包含一定位器以保留資源,例如,暫存的檔案,以儲存指令處理結果。但是,線程101a及101b是可能失序執行,其中定位器及重新命名器區塊130同時也保留其他的資源,例如,重排序緩衝器,以追蹤指令結果。單元130也可包含一暫存器重新命名器以重新命名程式/指令參考暫存器至內接於處理器100之其他暫存器。重排序/除役單元135包含構件,例如,上述之重排序緩衝器、負載緩衝器、以及儲存緩衝器,以支援失序被執行之指令的失序執行以及稍後的依序除役。
排程器和執行單元區塊140,於一實施例中,包含一排程器單元以排程執行單元上之指令/操作。例如,一浮動點指令在具有一可用的浮動點執行單元之一執行單元的一接埠上被排程。關聯該執行單元之暫存器檔案也被包含以儲存資訊指令處理結果。執行單元範例包含一浮動點執行單元、一整數執行單元、一跳躍執行單元、一負載執行單元、一儲存執行單元、以及其他習知的執行單元。
較低位準資料快取及資料轉譯緩衝器(D-TLB)150被耦合至執行單元140。該資料快取是用以儲存最近被使用/被操作之元素,例如,資料運算元,其是可能以記憶體同調狀態被保持。D-TLB是用以儲存最近虛擬/線性至實體的位址轉譯。如一特定範例,一處理器可包含一頁表結構以分割實體記憶體成為複數個虛擬頁面。
此處,核心101及102共用存取較高位準或進一 步超出快取,例如,關聯晶片上介面110之一第二位準快取。注意到,較高位準或進一步超出係指快取位準自執行單元增加或得到進一步的方式。於一實施例中,較高位準快取是一最後位準資料快取-處理器100上之最後快取記憶體層次結構-例如,一第二或第三位準資料快取。但是,較高的位準快取是不因此受此限定,由於其可以是關聯或包含一指令快取。一追蹤快取-指令快取之一型式-可取代被耦合在解碼器125之後以儲存最近被解碼軌跡。此處,一指令可能是指一巨指令(亦即,藉由解碼器識別的一般指令),其可解碼成為一些微指令(微操作)。
於展示之組態中,處理器100也包含晶片上介面模組110。歷史性地,一記憶體控制器,其將在下面更詳細地被說明,已被被包含於處理器100外部的電腦系統中。於這情節中,晶片上介面11是用以與處理器100外部之裝置通訊,例如,系統記憶體175、一晶片組(通常包含一記憶體控制器中樞以連接至記憶體175以及一I/O控制器中樞以連接週邊裝置)、一記憶體控制器中樞、一北橋、或其他積體電路。並且於這情節中,匯流排105可包含任何習知的互連,例如,多點匯流排、一點對點互連、一串列互連、一併列匯流排、一同調(例如,快取同調)匯流排、一分層協定結構、一差動匯流排、以及一GTL匯流排。
記憶體175可以是專用於處理器100或與系統中之其他裝置共用。記憶體175之通常型式範例包含 DRAM、SRAM、非依電性記憶體(NV記憶體)、以及其他習知的儲存裝置。注意到,裝置180可包含一圖形加速裝置、處理器或耦合至一記憶體控制器中樞之卡、耦合至一I/O控制器中樞之資料儲存器、一無線收發器、一快閃裝置、一音訊控制器、一網路控制器、或其他習知的裝置。
但是,最近隨著更多的邏輯和裝置被整合於一單一晶片上,例如,SoC,這些裝置之各者可被包含於處理器100上。例如,於一實施例中,一記憶體控制器中樞是在與處理器100之相同封裝及/或晶片上。此處,核心110之一部份(一核心上之部份)包含一個或多個控制器以供介面於其他裝置,例如,記憶體175或圖形裝置180。包含用以介面於此等裝置之一互連及控制器的組態時常被稱為一核心上者(或非核心組態)。如一範例,晶片上介面110包含用於晶片上通訊之一環互連以及用於晶片外通訊之一高速串列點對點鏈路105。然而,於SoC環境中,即使更多的裝置,例如,網路介面、協同處理器、記憶體175、圖形處理器180、以及任何其他習知的電腦裝置/介面可被整合於一單一晶片或積體電路上以提供具有高性能及低電力消耗之小的形式因素。
於一實施例中,處理器100是可執行一編譯器、最佳化,及/或轉譯器數碼177,以編譯、轉譯、及/或最佳化應用程式碼176以支援或與其介面之此處所述之設備及方法。一編譯器通常包含一程式或程式集以翻譯源文字/數碼成為目標文字/數碼。通常,藉由一編譯器之程式/應 用程式碼的編譯於複數個階段及回合中被完成以轉換高階程式語言數碼成為低階機器或組合語言數碼。然而,單一回合編譯器仍然可被採用於簡單編譯中。一編譯器可採用任何習知的編譯技術並且進行任何習知的編譯器操作,例如,詞法分析、預處理、語法分析、語義分析、數碼產生、數碼轉換、以及數碼最佳化。
較大的編譯器通常包含複數個階段,但是這些階段最時常被包含在二個之一般階段內:(1)一前端,亦即,通常其中語意程序、語法程序、及一些轉換/最佳化可能發生,以及(2)一後端,亦即,通常其中分析、轉換、最佳化、及數碼產生發生。一些編譯器涉及一中間部份,其例示在一編譯器的一前端及後端之間的描寫之模糊處。因而,指示一編譯器的插入、聯結、產生、或其他操作可能發生於任何上述階段或回合中,以及一編譯器之任何其他習知階段或回合中。如一例示之範例,一編譯器可能於編譯的一個或多個階段中插入操作、呼叫、函數等等,例如,於編譯的一前端階段中之呼叫/操作的插入並且接著在一轉換階段期間,使呼叫/操作之轉換成為較低階數碼。應注意到,在動態編譯期間,編譯器數碼或動態最佳化數碼可插入此等操作/呼叫,以及最佳化該數碼以供在進行時之期間的執行。如一特定例示性範例,二進制數碼(先前已被編譯的數碼)可在進行時之期間動態地被最佳化。於此處,該程式碼可包含動態最佳化數碼、二進制數碼、或其之組合。
相似於一編譯器,一轉譯器,例如,一個二進制轉譯器,靜態地或動態地轉譯數碼以最佳化及/或轉譯數碼。因此,數碼、應用數碼、程式碼、或其他軟體環境之執行可指示:(1)一編譯器程式、最佳化數碼最佳化器、或轉譯器之執行動態地或靜態地編譯程式碼、保持軟體結構、進行其他操作、最佳化數碼、或轉譯數碼;(2)主要程式碼之執行包含操作/呼叫,例如應用程式碼已被最佳化/被編譯;(3)其他程式碼,例如,程式庫,關聯該主要程式碼之執行,保持軟體結構、進行相關操作的其他軟體、或最佳化數碼;或(4)其之組合。
於各種實施例中,一共用記憶體組織耦合多個獨立裝置(其在此也被稱為代理者),至一共用記憶體(例如,經由一中介記憶體控制器)。於許多實施例中,該共用記憶體組織是包含不同型式之智慧財產(IP)邏輯區塊(例如,一北合成、南合成、多媒體邏輯或特定IP邏輯)之一單一晶粒半導體裝置的一互連構造。該共用記憶體組織被組態以致能應允於時間緊要等時裝置的服務品質(QoS)要求而同時提供對於非等時裝置,其於此處也稱為最大努力裝置,之記憶體帶寬比例。
以此方式,記憶體帶寬之可靠的及可預測的分配以及排程發生以支援連接到該共用記憶體組織之複數個裝置以及裝置型式。藉由包含QoS功能於一通常共用記憶體組織中(而不是一記憶體控制器或其他非組織電路),設計可以是更容易地越過複數個半導體裝置,例如,系統晶 片(SoC),而被重複使用,因為該設計是無關於記憶體技術。
實施例因此於一共用記憶體組織中進行資源分配、帶寬分派以及時間感知QoS性質,以提供可預測的及可靠的記憶體帶寬以及等待時間以符合連接到組織之裝置的需求。
一服務分類之等級被分派至耦合共用記憶體組織的各裝置。於一實施例中,這分派可使用組織之組態暫存器被辨識。複數個服務等級可藉由該組織被支援。雖然本發明之範疇是不受這方面之限定,於一實施例中,二個等級的服務分類之裝置可被呈現,而包含被使用於等待時間敏感裝置之一等時等級的服務分類以及被使用於可容忍較長的等待時間之裝置的一最大努力等級的服務分類,以服務它們對記憶體的要求。雖然本發明之範疇是不受這方面之限定,於一些實施例中,等待時間敏感裝置包含內容呈現裝置,例如,音訊或視訊播放機、攝影機裝置以及其它者,而較低優先序的裝置則包含處理器核心、圖形處理單元以及其它者。
時間,於一要求期限之形式中,是自等時裝置被通訊至組織以指示所需的等待時間至該組織以完成對記憶體之一要求。為了能夠同步,該組織廣播一全局計時器至所有的等時要求代理者。這全局計時器自該組織輸出上連續地被驅動,因而是可供用於利用等時裝置的取樣。響應於這時間數值,該等代理者決定對於一要求之完成的一 等待時間需求,並且增加這等待時間數值至該全局計時器值以形成該要求的一期限。如一範例,對於一讀取之等待時間可藉由代理者之資料緩衝器中的資料數量以及藉由該代理者之緩衝器的排出率而被決定。如果該代理者每250奈秒(ns)消耗1個資料快取線並且緩衝器中具有8個資料快取線,在緩衝器是淨空之前對於一新的要求之所需的期限將是8x250奈秒或2微秒(us)。基於這通訊等待時間或期限值,該組織可基於記憶體之目前功率狀態的了解以及對於在組織中待決之其他未排程的記憶體要求所需的等待時間而達成較佳地排程決定。這期限通訊可改進記憶體帶寬並且也節省系統功率。
要求期限之使用提供對於來自一等時裝置之各要求的等待時間資訊給予組織。在該組織內被規劃之組態暫存器提供關於記憶體組態之資訊給予組織,例如,供用於記憶體退出一低功率(例如,自更新)狀態所需的等待時間。該組織同時也藉由傳送一指示至該記憶體控制器而控制何時該記憶體控制器將導致附帶的記憶體進入及退出該自更新狀態,例如,以一狀態通道之形式。該組織藉由評估對於所有的待決記憶體要求之等待時間需求而決定何時該記憶體應進入及退出自更新狀態。因為該組織具有對於所有的待決記憶體要求所需的等待時間以及退出自更新狀態所需的等待時間之了解,較大的記憶體之功率狀態轉換的管理可能導致功率之節省。
實施例也可藉由允許記憶體要求失序地被排程 而提供記憶體帶寬中之效能;但是這可能對於一些要求而導致長的排程等待時間。為了解決此問題,該組織分派一優先序位準至各個等時記憶體要求,例如,一高的或低的優先序。當排程高優先序等時要求時,被允許的失序排程數量是較少於當排程最大努力或低的優先序等時要求時之可接受的數量。限定失序排程之數量以供用於高優先序要求被完成,以便確保滿足該要求等待時間需求。因為自要求之期限的要求優先序被決定,該組織可在一要求被排程之後即時地決定,其他待決要求之哪個優先序位準是供用於一等時裝置。使用該期限方法,當全局計時器遞增時,僅所有的待決要求之優先序位準改變。
這等待時間是用以完成來自一等時裝置之一要求的時間。這是因為,由於許多等時裝置具有限定的資料緩衝器資源,其導致共用記憶體組織以一等待時間保證服務來自這些裝置之要求,以防止這些資料緩衝器之下溢或上溢。
於一實施例中,一等時裝置基於其對一資料緩衝器之一存取率(例如,一排出或充填率)、資料緩衝器之大小、以及留在資料緩衝器中之可用項目數量的了解而決定完成一要求所需的等待時間。當然於其他實施例中,另外的或不同的資訊可於決定一適當的等待時間中被考慮。依據等時裝置之實作例,許多方法可被使用以決定對於該要求之一期限值。
於一實施例中,期限被指定作為一絕對值並且 可以藉由添加對於一要求之所需的等待時間(一等待時間數值)至廣播到所有的等時裝置之一全局計時器值而被導出。以此方式,各要求可被標記一唯一的期限值。這允許共用記憶體組織從來自相同裝置之非緊要的要求中辨認等待時間緊要的要求。當比較至對於一裝置之固定的或變化的優先序位準時,這期限為基礎的技術則改進記憶體排程並且可提供記憶體之較低的等待時間保證、較佳的功率效能,以及改進整體的記憶體帶寬。
接著參看至圖2,所展示的是依據本發明一實施例之一共用記憶體組織之一部份的方塊圖。如於圖2之展示,一共用記憶體組織200被耦合在複數個裝置或代理者2150-2153(泛稱為代理者215)以及一記憶體控制器270之間。注意到,於一些實施例中,呈現多於一個記憶體控制器。當然,為便於說明起見,應了解,雖然未被例示出,記憶體控制器可被耦合至一系統記憶體,例如,一動態隨機存取記憶體(DRAM)或其他系統記憶體。
在被展示於圖2之實施例中,不同型式的代理者被耦合至共用記憶體組織200。明確地說,該等不同代理者包含一第一等級的服務(COS)代理者型式,亦即等時代理者,以及一第二等級的服務代理者型式,亦即最大努力COS代理者。如圖所示,該等代理者215之各者可通訊要求資訊至一容許仲裁器220。接著,容許仲裁器220可通訊對應的控制型式資訊返回至該等代理者。此外,該等等時代理者(亦即,圖2之實施例中的代理者2151及2153)進一步 包含一另外的鏈路以通訊要求期限資訊至容許的仲裁器220。因此,這些代理者進一步被組態以自一全局計時器250接收全局時序資訊,同時也耦合至容許仲裁器220以及一排程器仲裁器230兩者。在展示於圖2之實施例中,一第一等時代理者2151包含可產生如此處說明之一期限值的一期限邏輯214。如此一範例,這等時裝置可以是SoC之一廠商的一IP區塊,並且該SoC廠商在設計階段期間如此處說明地將期限邏輯包含於該裝置內。替代於其他型式的等時裝置,例如,代理者2153,其可以是第三方廠商之一IP區塊,耦合至代理者2153的一介面邏輯2173可包含如此處說明之期限邏輯。於這範例中,該SoC廠商可提供這介面邏輯作為一密合墊層以介面這第三方邏輯與SoC其餘者。
注意到,在圖2展示的實施例中,要求中繼器先進先出(FIFO)緩衝器2180-2183可被提供在一對應的代理者以及容許仲裁器220之間,例如,於其中晶片上是具有路由議題之實例中。但是,應明白,這些中繼器FIFO的存在是可選擇的並且可能不呈現於一些實施例中。
於圖2之實施例中,容許仲裁器220可被組態以自代理者215接收進入的要求(以及來自等時代理者之要求期限資訊)並且選擇適當的要求以容許至排程器仲裁器230。為了有助於其之仲裁處理程序,容許仲裁器220自一組組態暫存器260接收組態資訊,進一步地被耦合至排程器仲裁器230。此外,一要求及同調追蹤器240可被耦合至仲裁器220及230。通常,追蹤器240可包含複數個計分板 242、一資料緩衝器244及對應的位址標籤儲存器245、控制佇列246以及其他資源,例如,各種緩衝器、邏輯,例如,資源分配邏輯248、以及其它者。於一些實作例中,該標籤陣列及資料緩衝器可被安置於追蹤器之另一處。雖然圖2之實施例中以這高位準被展示,應理解,本發明之範疇是不受這方面之限定。
共用記憶體組織可包含在來自一要求代理者的一要求之前首先被分配之可由容許仲裁器所認可的某些限定資源。這些資源包含在內部資料緩衝器以及位址標籤儲存器中之可用的項目。其他限定的資源包含在記憶體排程器以及要求追蹤器計分板中之可用的項目。於資源中對於組織之內部資料緩衝器、標籤陣列以及記憶體排程器計分板有一種一對一的對應。於一實施例中,這些資源被分配至記憶體之一預定區域(例如,一快取線寬度,例如,64位元組)。各作用要求也被分配其之自己項目於要求及同調追蹤器中,但是對於記憶體中之相同區域的複數個要求分享資料緩衝器、標籤陣列以及記憶體排程器計分板中之相同項目。雖然其是可能對於多於一個的要求被分配至相同資料緩衝器、標籤陣列、以及排程器計分板項目,但對於要求及同調追蹤器中之所有未處理的讀取要求僅一讀取要求被排程至記憶體控制器。
於一實施例中,對於所有裝置的要求介面連接至組織之容許仲裁器。等時裝置使用要求匯流排之期限欄以指示至該組織完成該要求所需要的等待時間。對於將被 傳送至該組織的各要求,該等時裝置,例如,於一期限邏輯中,決定用以完成該要求所需的等待時間並且增加該數值至全局計時器之目前數值,以便產生該要求期限。不同的方法可被不同等時裝置所使用以決定用於該要求所需的等待時間,但是於一實施例中,所有之等時裝置使用要求介面之一期限欄而指示該要求等待時間至該組織。
於一實施例中,容許仲裁器具有兩個優先序位準。在容許仲裁器中有一個高優先序路線,其被使用於緊急等時要求。如果要求代理者被組態如一等時代理者並且該要求之期限欄是較少於被儲存於一組態暫存器中而指明一臨界值之一數值,其係指一緊急臨界值,則一要求被考慮為緊急的。該容許仲裁器也具有被使用於最大努力要求以及於不被考慮為緊急的等時要求中之一低優先序路線。仲裁之最後位準是使用選擇於在高優先序仲裁的優勝者以及低優先序仲裁的優勝者之間的一優先序選擇器而被完成。
於一實施例中,容許仲裁器最後選擇器具有兩個模式,其可使用一組態暫存器被選擇。第一模式是固定優先序模式,於其中,假設至少一高優先序要求是呈現在容許仲裁之輸入,選擇器在選擇低優先序仲裁路線的優勝者之前先選擇高優先序仲裁路線之優勝者。最後選擇器之第二模式是一加權輪循模式,於其中該選擇器在高優先序要求的N數目被許可之後於許可該高優先序路線以及許可該低優先序路線之間切換。該選擇器接著在自高優先序路 線切換回至許可要求之前自低優先序路線之優勝者而許可M數目的低優先序要求。於一實施例中,對於N及M之數值使用組態暫存器被指定。
接著參看至列表1,所展示的是依據本發明一實施例之一全局計時器以及期限格式。
如於列表1之展示,全局計時器可以是一11位元數值,其自共用記憶體組織被傳送至所有的裝置。接著,各裝置具有一內部等待時間數值,其於一實施例中是10位元。自這二數值,該裝置可因此產生一期限要求,於一實施例中是11位元。例如,裝置之邏輯(或在該裝置的任一介面邏輯之內或被耦合至該裝置)可增加該等待時間數值至該全局計時器值以得到一期限值。
於一實施例中,該全局計時器是一自由運行的二進制計數器,其以一已知的固定時間區間而增量。正被使用之時間區間是已知於所有的等時裝置,以便正確地計算供用於記憶體要求之期限值。於一實施例中,該全局計 時器具有一額外位元,其精確度大於可被指定以供用於一要求之期限值的最大偏移量。這精確度之額外位元可以依序地被使用於共用記憶體組織以決定對於該要求之期限是否為一正的或負的數值。於一實施例中,該全局計時器利用系統重設被重設至0並且以該固定時間區間被增量1。當該全局計時器達到全為1的最大數值時,該計時器繞回至0。當等時裝置計算該期限值時,該期限之上方位元可被截短,因而被返回至共用記憶體組織的該期限值之最大寬度是如全局計時器寬度之相同寬度,亦即,於列表1之實施例中的11位元。
因此為了產生期限值,該等時裝置計算對於該要求之等待時間需求並且增加這等待時間數值至該全局計時器,其是自共用記憶體組織廣播至所有的等時裝置。於一實施例中,一等時裝置可指定之最大等待時間是全局計時器之最大範圍的一半。
計算一期限值之一範例是如下所示:假設該全局計時器寬度如於上述列表1中地被指定為11位元。被使用以增量該全局計時器的時間區間是250奈秒(ns)。這給予該全局計時器0-7FF十六進制的一範圍,或於時間單位中之0-511.75微秒(us)的一範圍。使用一11位元全局計時器,最大期限值可以僅是10位元。因此,一等時裝置被允許以於這範例中指定的最大偏移量是255.75微秒。
下面的範例展示一等時裝置如何使用11位元以及每250奈秒被增量的一全局計時器,而計算對於一要求 的一要求期限,其中該要求所需的等待時間是5微秒。
目前全局計時器值=7FE十六進制
要求等待時間需求=5微秒=14十六進制
期限值=7FE十六進制+14十六進制=802十六進制=與要求被傳送至組織之被截短期限的002十六進制。
下面的範例展示等時裝置如何使用11位元以及每250奈秒被增量的一全局計時器,而計算對於一要求之一要求期限,其中該要求所需的等待時間是255微秒。
目前全局計時器值=7FE十六進制
要求等待時間需求=256微秒=3FF十六進制
期限值=7FE十六進制+3FF十六進制=BFD十六進制=與要求被傳送至組織之被截短期限的3FD十六進制。
於一實施例中,一要求子通道被使用以啟動自一裝置至共用記憶體組織之記憶體異動。至共用記憶體組織之介面的其他子通道包含被使用於讀取資料返回之一資料輸入子通道以及被使用於寫入資料之一資料輸出子通道。依據一實施例,要求欄被展示於下面的列表2中。
使用本發明之一實施例,藉由包含要求期限以及順序識別符(ID),來自一裝置的一些要求可被排程,如具有較大於來自相同裝置的其他要求之緊急性。因此,分別的要求可被辨識如具有不同的優先序位準。例如,一裝置可傳送具有不同要求之不同的順序ID。因此,一裝置可使用一順序ID以及指示長的所需等待時間之對應的期限時間,而傳送一第一族群的一個或多個要求(例如,低優先序要求)。稍後,其可使用一不同的順序ID以及指示非常低的所需等待時間之期限時間,而傳送一第二族群的一個或多個要求(例如,高優先序或緊急要求)。使用這期限資訊,共用記憶體組織可自低優先序要求而辨認緊急要求並且首先有序地排程那些的要求以提供對於這些要求的最短可能等待時間。稍後,其可使用一失序排程演算法切換排程該等低優先序要求,該演算法被最佳化之使對於該等要求之記憶體帶寬最大化。
相對地,使用對於來自一單一裝置之要求的相同優先序位準可防止一組織免於區分來自該裝置之緊急要求與非緊急要求。並且,使用一分別優先序狀態通道指示 該組織中之待決緊急要求可能影響對於來自該裝置的所有要求之優先序位準,因該組織未能決定哪些要求是緊急,並且因此其對待所有的要求如同它們都是高優先序。這方法導致較長的等待時間排程對於一裝置之緊急要求並且可導致較低的總記憶體帶寬。
使用一順序ID欄隨著要求傳送可因此指示該組織,其可失序地將資料返回至一裝置。對於自具有相同順序ID之一裝置被傳送的記憶體要求,該等資料以其中該等要求被接收之相同順序被返回至該要求裝置。對於僅使用一順序ID而產生要求之裝置,所有的資料以該等要求被接收的相同順序被返回至該裝置。對於使用複數個順序ID之裝置,資料可失序地被送返。亦即,對於以一個順序ID之要求被返回的讀取資料被允許以一不同的順序ID而傳送供用於要求之資料。
使用順序ID欄以供返回資料至裝置之範例被展示在下面之列表3中。於這範例中,一裝置使用三個不同的順序ID數值而傳送一要求序列。該組織可對於具有不同的順序ID之要求而失序地返回資料,但是以該等要求如對於具有相同順序ID之要求被傳送之相同順序而返回資料。
為了當排程等時記憶體要求時,使得共用記憶體組織能夠提供可預測的最壞情況等待時間保證之能力,某些法則可被界定以供指明來自相同裝置之要求的期限。於一實施例中,如果一裝置使用期限以及有序讀取返回,則於各個進入的要求之期限等於或大於具有相同順序ID之先前要求的期限。來自具有不同順序ID的一裝置之要求不必定得遵循這法則。同樣地,於一實施例中,如果對於一要求之一期限值是較小於具有相同順序ID之一先前要求的一期限值時,共用記憶體組織是無法保證將滿足供用於後者要求之期限。這是由於該記憶體排程器基於該期限值而排程要求。如果具有相同順序ID的一先前要求具有一較大期限值,其可被排程在具有較短期限的要求之後。因為該要求及同調追蹤器依序地返回對於相同順序ID之所有的讀取資料,先前的要求阻斷對於後者要求之返回資料,直至 來自該先前要求的資料自該記憶體控制器被返回為止。
等時裝置如以上所討論地,基於它們對內部資料緩衝器之緩衝器大小以及存取率(例如,排出/充填率)的了解而計算對於記憶體要求之期限。使用這期限方法之一優點是裝置可調適於裝置組態中之改變並且修改它們的期限計算。一裝置組態之改變,例如,利用一裝置驅動器被完成者,可能改變該裝置之內部資料緩衝器的排出或充填率。一範例是一顯示驅動器,其改變一顯示解析度至一較高或較低的解析度,其影響顯示緩衝器之排出率。使用如此處被說明之一期限技術,如果裝置之組態改變,則該裝置可修改該期限計算以適應該改變,而不需該共用記憶體組織意識到該改變。
接著參看至圖3,被展示的是依據本發明一實施例之一SoC的一部份之方塊圖。如於圖3之展示,該SoC部份300包含資料緩衝器310及315,其於被展示的實施例中被組態分別地作為一讀取資料緩衝器以及一寫入資料緩衝器。於一實施例中,這些緩衝器可被實作於該SoC之一獨立裝置之內。但是,應了解,本發明之範疇是不受限定於這方面,並且於其他實施例中,這些緩衝器(以及裝置)可被安置於晶片之外。
如一範例,一IP區塊可以是一顯示裝置(或對於此裝置之控制邏輯),其具有供用於不同所謂的管道之不同緩衝器。於此範例中,這些不同的緩衝器之各者可以具有不同的存取率,例如,排出及/或充填率以形成在關聯 的顯示器上之不同型式資訊的顯示。為此,關聯這些不同緩衝器型式之各者的記憶體要求可具有關聯這之一不同的順序ID以指示對於所給予的顯示型式之記憶體要求是具有不同的相關優先序。
如此可見,資料緩衝器310被組態作為一資料輸入緩衝器以自共用記憶體組織接收進入的資料。於展示之實作例中,一個16項目緩衝器被呈現而包含複數個項目3110-31115。於一範例中,於其中每0.625微秒有一項目自這緩衝器被排出,消耗8項目耗費5微秒並且消耗所有的16個項目則耗費10微秒。
同樣地,資料緩衝器315被組態作為一資料輸出緩衝器以提供資料至共用記憶體組織。於這實作例中,一個16項目緩衝器被呈現而包含複數個項目3160-31615。於一範例中,於其中每0.625微秒有一項目自這緩衝器被排出,消耗8項目耗費5微秒並且消耗所有的16個項目則耗費10微秒。
如進一步地於圖3中被展示,期限邏輯可以是關聯這些緩衝器之各者。明確地說,一寫入期限邏輯320是關聯寫入資料緩衝器315以及一讀取期限邏輯325是關聯讀取資料緩衝器310。如此可見,這些邏輯之各者接收對應至可用緩衝器項目之數量的一輸入。此外,這些邏輯之各者接收全局計時器之數值。基於這資訊,各邏輯可產生對於一對應的讀取或寫入要求之一要求期限。這些數值可被通訊至一選擇器330,其經由一讀取命令信號被控制,因 此導致這些要求期限值之被選擇的一者被傳送至組織。雖然於圖3實施例中以這高位準被展示,應了解,本發明之範疇是不受這方面之限定。
一些等時裝置可使用FIFO緩衝器以緩衝正在裝置以及共用記憶體組織之間被轉移之資料。於其中該裝置具有對於讀取資料之一固定排出率之情況中,一計算可被進行以指定隨著記憶體要求而被傳送之期限值。
如一範例,考慮到一FIFO為基礎之裝置具有一個於10微秒中排出之16級深度的FIFO。假設這裝置每0.625微秒消耗來自FIFO之一項目的資料。如果該FIFO包含8個價值資料之項目,則於目前週期中被發出之對於一新要求的資料不預期被消耗,直至在經過(8*0.625微秒)5微秒之後。對於新要求的未來期限是5微秒。於一實施例中,對於FIFO為基礎的裝置之讀取期限可依據方程式1如下所示地被計算:期限=目前全局時間+排出率*(有效FIFO項目的數目)-鬆弛時間 [方程式1]
在上面方程式1中,有效FIFO項目的數目對應至已具有資料以及未處理讀取要求數目之FIFO項目的數目之總和,並且鬆弛時間對應至一裝置特定允許,以適應在裝置內之另外等待時間而發出要求及/或消費資料。此一鬆弛時間之範例將是對於該裝置內之複數個子要求者的仲裁時間。
對於如上所述之裝置,當該FIFO啟始地是空白 時,一新的要求將使其之期限被設定至目前全局時間,而指示至共用記憶體組織,該裝置可即時地消耗該資料。隨著要求被傳送至該組織以及隨著讀取完成並且充填該FIFO,新的要求將積累一些等待時間。例如,當該FIFO具有8個價值資料之項目時,一新的要求將具有期限(目前全局時間+5微秒)。當該FIFO是充滿時,一新的要求將具有期限(目前全局時間+10微秒)。
對於寫入要求之期限同樣地可依據方程式2被計算:期限=目前全局時間+充填率*(FIFO大小-有效FIFO項目的數目)-鬆弛時間 [方程式2]
上面方程式假定一裝置充填一FIFO。寫入資料在FIFO充填滿之前利用共用記憶體組織被拉升。有效FIFO項目的數目變量對應至先前已具有等待將被寫入之資料的FIFO項目之數量。於此情況中,如果FIFO大小再次地是0.625微秒之充填率的16個,當裝置傳送第一寫入要求時,對於該要求之等待時間將是0.625*(16-1)=9.375微秒。
接著參看至圖4,被展示的是依據本發明一實施例之一SoC的另一部份之方塊圖。如於圖4之展示,該SoC部份400包含資料緩衝器410及415,其於被展示之實施例中被組態作為雙重緩衝器。於一實施例中,這些緩衝器可被實作於SoC之一獨立裝置內。但是,應了解,本發明之範疇是不受這方面之限定,並且於其他實施例中,這些緩 衝器(以及裝置)可被安置於晶片之外。
如此可見,第一緩衝器410以及第二緩衝器415兩者被組態作為100個項目快取線緩衝器,其具有一個25微秒之等待時間以處理所有的100個項目。如進一步地被展示於圖4中,期限邏輯可以是關聯於這些緩衝器之各者。明確地說,一第一期限邏輯420是關聯第一緩衝器410以及一第二期限邏輯425是關聯第二緩衝器415。如此可見,這些邏輯之各者接收對應至被傳送至供用於對應的緩衝器之組織的要求數量之一輸入。此外,這些邏輯之各者接收全局計時器之數值。基於這資訊,各邏輯可產生供用於一對應的讀取要求之一要求期限。這些數值可被通訊至經由一緩衝器控制信號被控制之一選擇器330,以因此導致這些要求期限值之被選擇的一者將被傳送至該組織。雖然於圖4之實施例中以這高位準被展示,應了解,本發明之範疇是不受這方面之限定。
對於期限排程之另一可能的使用是,其中在一等時裝置可開始處理自組織被返回的任何資料之前,該等時裝置需要大量的資料之情況。如此一範例,一攝影機或其他影像擷取處理引擎可包含此等緩衝器。於這型式之設計中,裝置可使用一雙重緩衝器方法以供儲存資料。使用這方法,一緩衝器是將完全地充滿,因此該裝置可開始處理來自資料緩衝器之資料。當一緩衝器成為閒置時,由於該裝置完成資料之處理,該組織完成所有記憶體要求以在裝置於另一緩衝器中結束處理該等資料之前充填緩衝器。
考慮到一裝置,其具有二個各儲存100條快取線之資料緩衝器。假設如一範例,其花費該裝置25微秒以處理這些緩衝器之一者中的資料。為了滿足等待時間需求,組織平均每250奈秒(25微秒/100)返回資料。對於一新的要求之期限是因此依據於當第一要求被傳送時之時間以及未處理要求之數量。於一實施例中,對於這型式的裝置之期限可依據方程式3如下所示地被計算:期限=首先要求之全局時間+要求率*(未處理要求數目+1)-鬆弛時間 [方程式3]
此使用之一範例是,其中一裝置在時間1000奈秒完成緩衝器之一者的處理並且切換至其他緩衝器。對於充填這緩衝器之100個要求的期限是在1250奈秒至26000奈秒範圍中。在處理第一緩衝器中的資料之後,裝置花費25微秒以處理第二緩衝器中之資料。第二緩衝器因此在時間26000奈秒成為閒置。一旦該第二緩衝器是閒置,用以充填該第二緩衝器之100個要求的期限是在26250奈秒至51000奈秒的範圍中。
於某些情況中,一些等時裝置可藉由低等待時間以及低記憶體帶寬兩者而操作。如果決定對於一低帶寬等時裝置之記憶體帶寬留下供用於連接到共用記憶體組織的所有其他裝置之足夠的記憶體帶寬,則等時裝置可實作用以指明其之期限值的一簡化方法。
於此一裝置中可計算對於其之記憶體要求之期限的方式是,簡單地增加一固定或可組態延遲至該記憶體 要求。這操作之一範例是對於該等時裝置以包含一組態暫存器,其是被規劃以反映該裝置可容忍對於自該裝置被傳送的所有記憶體要求之最壞的情況等待時間需求。於此情況中,當一要求被傳送至該組織時,該裝置可將於該組態暫存器中被規劃的數值增加至全局計時器之目前數值。如果於組態暫存器中被規劃的數值是較小於在該組織中被規劃的臨界值以決定何時一要求將被考慮為一高優先序要求時,則自該裝置被傳送的所有要求藉由該組織被考慮為高優先序要求。
如一低資料率裝置之一範例,一個或多個的IP區塊可以是以一相對低的資料率操作之一音訊引擎。雖然以一相對低的資料率操作,這裝置仍然可尋求對於其之低速率記憶體要求具有相對地低的等待時間。為此,音訊裝置可以是關聯依據全局計時器值以及一固定等待時間數值而產生一期限值之一期限邏輯,其可被組態在一組態暫存器之內。於一實施例中,這等待時間數值可以是一相對低的數值(例如,5微秒)以因此指示這些記憶體要求是將以相對低的等待時間被進行。當然低資料率裝置之其他範例也是可能的。
於一些情況中,於自等時裝置至共用記憶體組織之要求介面的全部晶片接線中之長延遲可能導致中繼器FIFO將被添加,以便符合某種時脈頻率,因而實施例可包含在要求裝置以及組織之間的要求中繼器FIFO。但是等時裝置使用要求期限可以實作往前轉送期限資訊之一FIFO, 以避免因要求中繼器FIFO之線頭阻塞所引起的問題。
如果一個一般的FIFO設計被使用作為一要求中繼器,則線頭阻塞問題可能導致使用期限之等時要求的排程。因為於一般的FIFO設計中,僅在FIFO之前頭對於要求之要求資訊是共用記憶體組織所可見的,該組織可能不注意到一高優先序要求呈現在中繼器FIFO之輸入或尾端項目中。
這線頭阻塞問題的一範例是,於其中一裝置傳送一要求至具有一需求等待時間10微秒之組織。如果該組織是無法在容許仲裁器許可該要求,則待決之要求可被儲存在要求中繼器FIFO中一些時間。如果當要求被保持於中繼器FIFO中時,該裝置發出具有一較短的期限(例如,1微秒)之一新的要求,該組織將沒意識到具有一較短的期限值之該新要求已自該等時裝置被傳送。於此情況中,一般FIFO設計之線頭阻塞可能導致組織錯失對於該第二要求之所需的等待時間。
接著參看至圖5,所展示的是依據本發明一實施例之一中繼器儲存器的方塊圖。如於圖5之展示,儲存器500被實作如一中繼器FIFO以將關於自一相關的裝置進入的等時要求之資訊儲存至共用記憶體組織。如此可見,儲存器500包含一包含複數個項目之FIFO 510。各個此項目可包含來自一所給予的記憶體要求之資訊並且可包含實際要求資訊以及對於該要求之一對應的期限。FIFO 510被組態,以至於在緩衝器前頭之項目被輸出並且新進入的項目 在FIFO尾端被輸入。為了防止如此處說明的線頭阻塞,儲存器500包含一第一邏輯520以及一第二邏輯530。這些邏輯之各者被組態以接收一要求期限,亦即,邏輯520接收進入的要求期限,而邏輯530在FIFO前頭接收對於該要求之期限。此外,這些邏輯之各者接收全局計時器值以決定對於該對應的要求之一要求等待時間。這些數值於一比較邏輯540中被比較。當對於至FIFO之輸入數值的要求等待時間是較小於在FIFO前頭之對於該要求的要求等待時間時,一期限更新可以被形成至,例如,對於FIFO 510之所有的項目,以導致將被更新之期限值對應至對於進入要求的期限值。雖然於圖5之實施例中以這高位準被展示,應了解,本發明之範疇是不受這方面之限定。
因此,為了解決一般FIFO設計的線頭阻塞,於各種實施例中,往前轉送期限資訊至FIFO之前頭項目的一FIFO設計被使用。相減之結果是對於要求所需的等待時間。如果對於在FIFO輸入之要求的等待時間是負數或如果對於該要求之等待時間是較小於對於在FIFO前頭之要求的等待時間,則對於中繼器FIFO的所有項目之期限欄藉由在FIFO輸入之要求的期限值被更新。
要求期限資訊之消費者是共用記憶體組織,其使用該要求期限以決定對於自等時裝置被接收的要求之所需的等待時間。如果對於一要求的等待時間是較小於使用組織中之一組態暫存器所被指定的一可程控臨界值時,該要求被考慮為是高優先序。系統中之大多數記憶體交通被 假定為低優先序等時或最大努力交通。共用記憶體組織中之各種仲裁點包含對於被決定為高優先序之等時要求的高優先序旁通路線。這些旁通路線允許高優先序等時要求旁通組織中之大部分的交通並且因此允許一較低的等待時間以供用於自該組織被返回之讀取資料以及自該裝置被傳送的寫入資料。
因此,使用具有期限方法之本發明的一實施例,共用記憶體組織可更快地作出反應以改變要求等待時間需求。相對地,使用一狀態通道致能一改變至僅在讀取被返回至裝置的資料之後的狀態指示。此來自作為高優先序的裝置之排程要求的切換之延遲限定對於記憶體帶寬最佳地排程要求之記憶體排程器之能力。
更進一步地,本發明一實施例可較長地推遲退出自更新,因為共用記憶體組織具有相關資訊,關於記憶體控制器狀態、退出自更新的等待時間、多少其他等時記憶體要求是待決以及被儲存於組織中之所有的等時要求之等待時間,等範例。因此,需要一第三方可程控引擎涉及對於排程等時記憶體要求之退出自更新可被避免。
當共用記憶體組織自一等時裝置接收一要求時,其決定該要求所需的等待時間。為了決定一新的等時記憶體要求之等待時間,該組織將自全局計時器之目前數值減去要求期限值。該組織藉由檢查減去之結果的MSB而決定相減的結果是否為一正的或負的數目。因為可利用裝置被指定之最大允許的等待時間是全局計時器範圍的一 半,如果相減之MSB被設定,則對於該要求之期限被考慮是為一負數。這資訊被展示於下面之列表4中。
在計算要求所需的等待時間之後,組織接著決定該要求是否將被考慮為對記憶體之一高優先序等時要求。如果相減之結果的MSB被設定,指示一負的期限,則該要求被該組織考慮為是一高優先序要求。如果相減的結果之MSB是0,則該期限值被考慮是為一正數。如果對於要求之期限是一正數值,相減之結果是對於該要求所需的等待時間。
在計算對於該要求的等待時間之後,該組織接著比較該要求等待時間與被儲存在一組態暫存器中之數值,其於一實施例中是藉由軟體或基本輸入輸出系統 (BIOS)被規劃而指定用於當一要求被該組織考慮為一高優先序要求時的一臨界值。此外該組織也比較該要求等待時間與藉由用於記憶體所需的等待時間被規劃之一第二組態暫存器,以退出它們的低電力或自更新狀態。
於一實施例中,該共用記憶體組織包含在等時裝置之要求介面的輸入上之邏輯以決定是否任何待決記憶體要求將導致該記憶體控制器以退出低電力自更新狀態。接著參看至圖6,所展示的是依據本發明一實施例之仲裁邏輯的方塊圖。如於圖6之展示,邏輯600包含一容許仲裁器610,其包含一低優先序仲裁器616以及一高優先序仲裁器618。如此可見,低優先序仲裁器616直接地自相關的裝置而接收進入的裝置要求。反之,高優先序仲裁器618之前,一優先序計算邏輯6120-612n則決定對於進入的裝置要求之一優先序計算。為此,這些邏輯之各者接收一進入的裝置要求以及來自一組態儲存器620之資訊,其於一實施例中包含一高優先序臨界值以及一服務等級之數值。這高優先序臨界值可對於組織之控制邏輯的最差情況等待時間被規劃以完成一讀取要求。並且服務等級之資訊指示一所給予的裝置是否為一等時裝置或一最大努力裝置。此外,優先序計算邏輯612進一步地接收全局計時器值。基於這所有的資訊,一所給予的要求是否為一高優先序要求之決定可形成。因此,共用記憶體組織之這組態儲存器620包含一組態暫存器,其對於各要求裝置被規劃以指示對於該裝置之服務等級是否為等時或最大努力,並且對於高優先 序臨界值之一組態暫存器對於記憶體排程器以及記憶體控制器之最差情況等待時間被規劃以完成一讀取要求。
於一實施例中,容許仲裁器具有2個優先序位準:一低等待時間高優先序通道,其被使用於高優先序等時要求;以及一低優先序通道,其被使用於最大努力以及低優先序等時要求。依據一個實施例,利用邏輯612被進行而使用該要求期限以決定該要求是否為高優先序的計算,被展示在下面之方程式4中。
高優先序計算=要求期限值<全局計時器+高優先序臨界值[方程式4]
隨後,在容許仲裁器610之內一最後仲裁發生以輸出一選擇的要求。接著一自仲裁器610產生的要求被提供至一要求期限陣列630,其於一實施例中,作用如同一計分板並且可包含複數個追蹤器項目,其各指示關聯一所給予的要求之一期限。依序地,這些期限值可被提供至一組退出自更新邏輯6400-640n,其之各者也被組態以接收全局計時器值634以及一退出自更新等待時間數值632。如進一步地所示,該等裝置要求之各者也可直接地被提供至一第二組退出自更新邏輯6450-645n。這些邏輯640以及645之各者可進行一退出自更新計算,其依序地提供分別地被提供至邏輯電路650以及652之退出自更新數值。於一實施例中,這些邏輯電路可被組態作為OR閘,以當這些自更新數值之一所給予的一者指示關聯記憶體是退出自更新以符合一要求之所需的等待時間時,則因此產生一致動自更新 退出信號。在最後組合於另一邏輯電路654中之後,其也被組態作為一OR閘,一退出自更新狀態信號可被通訊至該記憶體控制器。於一實施例中,這通訊可以是經由一狀態通道。因此,如果來自一等時裝置之任何要求具有較小於全局以及退出自更新臨界值組態暫存器之目前數值總和的一期限值時,一指示被傳送至該記憶體控制器以退出自更新。雖然以這高位準被展示於圖6之實施例中,應了解,本發明之範疇是不受這方面之限定。於一實施例中,當狀態通道被設定為0時,記憶體控制器被允許進入自更新,並且當狀態通道是非零時,該記憶體控制器可能退出自更新。
於一實施例中,組織也儲存對於每個要求之期限於要求及同調追蹤器計分板中,以決定何時記憶體控制器應該退出自更新。如果僅有低優先序等時要求被儲存於組織計分板中,則該組織在傳送一指示至記憶體控制器以退出自更新之前盡可能長時間等待。退出自更新狀態之延遲,允許該組織在退出自更新之前盡可能累積許多的記憶體要求,以符合等時裝置之所需的等待時間。於一實施例中,用以決定何時退出自更新之計算是如下面方程式5中之所示:退出自更新計算=要求期限值<全局計時器+退出自更新臨界值 [方程式5]
容許仲裁器選擇仲裁之優勝者並且傳送該要求至組織之要求及同調追蹤器和記憶體排程器計分板。如果 該要求在容許仲裁器被決定是為高優先序,於一實施例中,其是同時被該要求及同調追蹤器和記憶體排程器考慮為高優先序。當該要求藉由容許仲裁被許可時,要求資訊被儲存在該要求及同調追蹤器和記憶體排程器計分板中。該等2個計分板隨著被使用於它們之分別功能而包含關於該要求的不同資訊。於一實施例中,該等2個計分板可以是不同的大小並且具有不同數目之計分板項目。對於該要求之期限被儲存以供用於要求及同調追蹤器中之各項目。邏輯可以是關聯各期限項目以決定一要求是否為高或低的優先序。當全局計時器增量時,低優先序等時要求可基於對於該要求之期限值而被提升至高優先序要求。於一實施例中,被使用以供決定一要求是否為高或低優先序之邏輯是相同如在該容許仲裁器被使用者。
對於寫入要求,寫入資料可使用要求裝置之介面的資料輸出子通道被轉移至組織。於一實施例中,該要求及同調追蹤器支援用於寫入要求之優先序的二個位準。對於各項目之期限資訊被檢查以決定該要求是否為高或低的優先序。對於高優先序寫入要求,要求及同調追蹤器提供自要求裝置之資料輸出子通道至內部資料緩衝器之一高優先序旁通路線。最大努力以及低優先序等時寫入要求可使用至該組織之內部資料緩衝器之低優先序通道。要求及同調追蹤器也具有可使該高優先序寫入路線失能的一組態模式暫存器,其當被致能時將導致寫入要求使用低優先序路線而將資料自該裝置之資料輸出子通道轉移至該組織之 資料緩衝器。
對於讀取要求,被返回至裝置之讀取資料使用該要求裝置之介面的資料輸入子通道而自該組織被轉移。於一實施例中,要求及同調追蹤器也支援對於讀取要求之優先序的二位準。對於各項目之期限資訊也被使用以決定該讀取要求是否為高或低的優先序。相似於寫入要求,要求及同調追蹤器提供自該組織之內部資料緩衝器至該要求裝置之資料輸入子通道的一低等待時間通道。最大努力或低優先序等時讀取要求可使用來自該組織之內部資料緩衝器的低優先序通道。要求及同調追蹤器也具有供用於該讀取資料路線之一組態模式暫存器,其當被致能時,將使該高優先序路線失能,並且當被致能時,所有的讀取要求則使用低優先序路線而將資料自該組織之資料緩衝器轉移至該裝置之資料輸入子通道。
於一實施例中,記憶體排程器支援用以排程讀取要求之優先序的三位準。最高的優先序位準被使用於排程高優先序等時讀取要求,下一個優先序位準被使用於排程最大努力讀取要求,並且最低位準被使用於排程低優先序等時讀取要求。對於至記憶體之寫入要求,在資料自裝置被拉出之後,將不再有對於將該資料寫入至記憶體之一等待時間需求。因此,自該組織被傳送至該記憶體控制器的所有寫入要求使用相同的優先序位準。
當一要求藉由容許仲裁器被許可時,對於該要求之服務等級被儲存於計分板中以指示該要求是供用於一 最大努力或等時裝置。於一實施例中,對於被儲存在要求及同調追蹤器中之各記憶體要求,於記憶體排程器計分板中有一關聯項目。要求及同調追蹤器中之複數個項目可以是關聯該記憶體排程器計分板中之相同項目。於一實施例中,進入該記憶體排程器計分板之指標或標籤被儲存以供用於要求及同調追蹤器中之每個記憶體要求。為通訊至該記憶體排程器,不論一要求是否為高或低的優先序,具有長度等於記憶體排程器計分板中之項目數量的一位元向量可被使用。如果要求及同調追蹤器中之一項目是高優先序,則使用被儲存於要求及同調追蹤器中之標籤作為被輸入至位元向量之指標而使一位元被設定於輸入該記憶體排程器中之位元向量。當排程等時記憶體讀取要求時,記憶體排程器測試對於計分板項目之位元向量中的位元以決定該要求是為高或低的優先序。
接著參看至圖7,所展示的是依據本發明一實施例例示在一要求追蹤器以及記憶體排程器內的邏輯之方塊圖。如於圖7之展示,邏輯700被耦合以自圖6之要求期限陣列630而接收相同要求期限資訊。如此可見,這期限資訊被提供至複數個優先序計算邏輯7100-710n,其之各者進一步被組態以接收一全局計時器值712以及一高優先序臨界值714。基於這資訊,對於一對應的要求追蹤器之一優先序數值被產生並且被提供至一要求期限陣列720,其於一實施例中,包含記憶體排程器項目以提供對於各對應的排程器項目之一對應的優先序。如進一步可見,陣列720 進一步被組態以自一要求追蹤器計分板而接收一位元向量。雖然如圖7之實施例中以這高位準被展示,應了解,本發明之範疇是不受這方面之限定。
接著參看至圖8,所展示的是依據本發明一實施例之方法的流程圖。如於圖8之展示,方法800可藉由期限邏輯被進行,該期限邏輯被包含於或關聯在一SoC內的複數個裝置之一所給予的裝置,例如,獨立之IP區塊。注意到,於一些實施例中,這期限邏輯可以呈現在IP區塊本身之內。於其他實作例中,尤其是於其中一所給予的IP區塊是一第三方之許可區塊情況,該期限邏輯可被包含於介面這第三方IP邏輯在該SoC內之介面邏輯中,例如,一所給予的密合墊層或邏輯。當然,仍然於其他實施例中,期限邏輯可被實作於關聯一所給予的裝置之SoC的其他位置中。
因此,如圖8中之所示,當一記憶體要求是將自裝置被傳送至共用記憶體組織時,方法800開始。如上面之討論,包含讀取、寫入、偵聽要求以及其它者之各種型式的記憶體要求可被發出。在方塊810,對於一要求之一等待時間數值可被計算,以便得到一期限值。取決於裝置之型式以及其之配置,例如,緩衝器配置以及裝置的其他組態,一期限值可因此被產生。例如,一等待時間數值可被得到或被計算並且與一全局計時器值被組合以產生該期限值。接著在方塊820,一順序ID可以是關聯於該要求。藉由這順序ID,一相對優先序因此是關聯於該要求。例 如,假設一裝置,其傳送不同型式的記憶體要求,例如,關聯平常讀取要求之一第一型式、關聯寫入要求之一第二型式的要求、以及一第三型式之記憶體要求,例如,由於一快取錯失,因此指示需要資料之一高優先序。因此,不同的順序ID可以是關聯這些不同型式的記憶體要求。如此一範例,一第一順序ID可以是關聯讀取要求,一第二順序ID可以是關聯寫入要求,以及一第三順序ID可以是關聯於關聯快取錯失之讀取要求。於這範例中,第三順序ID可以指示最高的優先序並且關聯讀取要求之第一順序ID可以指示一第二最高相對優先序。進一步地注意到,配合這些相對優先序,組織可依序地或失序地提供響應至記憶體要求。
仍然參看至圖8,接著期限邏輯可傳送具有期限值以及順序ID數值之要求至共用記憶體組織(方塊830)。當然應了解,另外的資訊,例如,被使用於存取以保護記憶體區域安全之要求位元組長度及/或安全屬性,也可被包含於此等記憶體要求中。最後,如圖8中所示,在稍後時間,例如,當要求的資料已自一關聯的記憶體被得到時,對於一所給予的要求之一反應可藉由裝置被接收(方塊840)。雖然於圖8之實施例中以這高位準被展示,應了解,本發明之範疇是不受這方面之限定。
接著參看至圖9,所展示的是依據本發明一實施例而用以處理進入的要求之方法的流程圖。於圖9之實施例中,方法900可以利用一共用記憶體組織之各種仲裁邏 輯被進行,該共用記憶體組織可自複數個裝置(例如,一SoC,或另外被耦合至該共用記憶體組織者)接收以及處理進入的記憶體要求。如此可見,方法900開始於接收來自一裝置之一要求(方塊910)。注意到,這記憶體要求可以基於裝置型式而包含或不包含一期限值。為了不包含一期限值之一記憶體要求的目的,其可被假設為是一低優先序要求。因此在菱形915,對於被接收自最大努力裝置的此記憶體要求,該決定是否定的並且控制傳送至方塊925。
相反地,在菱形915,對於被接收自一等時裝置而具有一期限值的要求,其可基於該期限值以及組態資訊(例如,指示一要求是否將被考慮為一高優先序要求的一臨界值)而被決定該要求是否為一高優先序。基於這分析控制接著傳送至區塊920以及925的一者。
於一實施例中,仲裁邏輯,例如,一容許仲裁器可包含一低優先序通道以及一高優先序路線,其兩者操作以仲裁具有相似型式的其他要求之一所給予的要求(例如,高以及低的優先序要求)。因此在兩區塊920以及925,一仲裁被進行以因此輸出一所選擇的記憶體要求。接著在方塊930,一最後容許仲裁可被進行以自容許仲裁器的各種要求路線而輸出這些複數個要求之一所選擇的要求。
這選擇的要求接著可被傳送至另外的仲裁邏輯,例如,一記憶體排程器仲裁器,其中該要求可與其他待決要求依據關聯不同要求之期限而被仲裁(方塊940)。控 制接著傳送至菱形950,於其中可決定一關聯的記憶體是否處於一自更新狀態中。如果否,則控制直接地傳送至方塊955,於其中所選擇的要求可被傳送至記憶體控制器並且在隨後可傳送至記憶體它本身。
相反地,如果決定記憶體是處於一自更新狀態中,則控制傳送至菱形960。其可決定所給予的要求是否為一讀取要求。如果是,則控制傳送至方塊965,基於關聯該要求之一期限值,記憶體可被導致以退出該自更新狀態(方塊965)。例如,用以導致記憶體退出該自更新狀態之期限值與一等待時間數值的一比較可被進行,以決定記憶體退出自更新狀態之適當時間。注意到,於一些實施例中,當一要求不具有一期限關聯於它之時,記憶體可被導致以退出自更新狀態。自方塊965,如上所述地,控制傳送至方塊955。此外如果該要求不是一讀取要求(例如,其是一寫入要求),則控制傳送至方塊970,於其中基於待決寫入要求數量與一浮水印臨界值之比較,該記憶體可被導致以退出該自更新狀態。亦即,為了有助於電力節省,一些寫入要求可被群聚在一起並且當此等寫入要求的一些臨界值是可用時,該記憶體可被導致以退出該自更新狀態以進行這些記憶體要求。雖然以這高位準被展示於圖9之實施例中,應了解,本發明之範疇是不受這方面之限定。
實施例可被使用於許多不同的SoC或其他半導體裝置中,其整合各種IP至一單一晶粒上以經由一記憶體組織而連接這些IP至記憶體。更進一步地,依據本發明一 實施例之一記憶體組織可被使用以提供一QoS位準以供滿足這些IP之至少一些的等時需求。
接著參看至圖10,被展示的是依據本發明一實施例之一SoC的方塊圖。如於圖10之展示,SoC1000是一單一晶粒半導體裝置,其如上所述地,包含複數個IP區塊與一共用記憶體仲裁器。於圖10之實施例中,複數個核心10100-1010n被提供,其之各者可以獨立地執行指令。於一實施例中,所有的這些核心是一單一設計,例如,一有序核心設計,例如,一英特爾構造(Intel ArchitectureTM),例如,一AtomTM為基礎之核心。於其他實施例中,該等核心可以是失序處理器,例如,一英特爾構造(IA)32核心,例如,一英特爾核心(Intel CoreTM)為基礎之設計。於其他實施例中,一異種核心之混合可被提供。此外,複數個圖形引擎,亦即,獨立圖形單元10200-1020n可被提供,其各可獨立地進行圖形操作。如此可見,該等複數個核心被耦合至一共用快取記憶體1015,例如,一位準2(L2)快取並且相似地,該等圖形引擎被耦合至另一共用快取記憶體1025。
一系統代理者1030可經由對應的晶粒內互連1028以及1029而被耦合至這些核心以及圖形引擎。如此可見,系統代理者1030包含一可如此處說明地被組態之共用記憶體組織1035。當然,各種其他邏輯、控制器以及其他單元,例如,一電力管理單元也可呈現在系統代理者1030之內。如此可見,共用記憶體組織1035通訊於一記憶體控 制器1040,其接著耦合至一晶片外記憶體,例如,一被組態作為DRAM的系統記憶體。此外,系統代理者1030經由一組互連1044被耦合至一個或多個內部代理者1050,例如,各種週邊裝置。於一實施例中,互連1044可包含一優先序通道互連、一邊帶通道互連、以及一記憶體通道互連。一相似地被組態之互連1046提供在系統代理者1030以及一個或多個晶片外代理者(為容易展示起見,其未被例示於圖10之實施例中)之間的通訊。雖然以這高位準被展示於圖10中,應了解,本發明之範疇是不受這方面之限定。
接著參看至圖11,所展示的是依據本發明一實施例之呈現於一電腦系統中的構件之方塊圖。如於圖11之展示,系統1100可包含許多不同構件。於一實施例中,系統1100是一使用者設備,其包含如此處被說明之一SoC的觸控致能裝置。注意到,系統1100之構件可被實作如積體電路、積體電路之部份、離散電子裝置、或適用於一電路板之其他模組,例如,電腦系統之一主機板或內加卡、或如此外以不同方式被包含在電腦系統之一框架內的構件。同時應注意到,圖11之方塊圖是意欲展示電腦系統之許多構件的一高位準圖形。但是,應了解,另外的構件也可呈現於某些實作例中,並且更進一步地,所展示的該等構件之不同配置可發生於其他實作例中。
如於圖11中所示,一處理器1110,其可以是一低功率多核心處理器插座,例如,一超低電壓處理器,其 可以作用如同用以與系統各種構件通訊之一主要處理單元以及中央中樞。此處理器可被實作如此處說明之一SoC。於一實施例中,處理器1110可以是一Intel®構造核心(CoreTM)為基礎之處理器,例如,可由美國加州聖克拉拉之英特爾公司所供應之一i3、i5、i7或另一此類處理器,例如,組合一個或多個CoreTM為基礎之核心以及一個或多個Intel®ATOMTM-為基礎之核心的一處理器,以因此實現高功率以及低功率核心於一單一SoC中。但是,應了解,其他低功率處理器,例如,可由加州之桑尼維爾的先進微裝置公司(AMD)所供應者、來自ARM控股公司之一ARM為基礎之設計、或由加州桑尼維爾之MIPS科技公司的MIPS為基礎之設計,或它們的授權者或選定者可代替地呈現於其他實施例中,例如,一蘋果A5或A6處理器。
處理器1110可通訊於一系統記憶體1115,於一實施例中,其可經由複數個記憶體裝置被實作以提供一所給予數量的系統記憶體。為了提供資訊(例如,資料、應用、一個或多個操作系統以及其它者)之永久儲存,大量儲存器1120也可耦合至處理器1110。同時如圖11中之展示,一快閃裝置1122可被耦合至處理器1110,例如,經由一串列週邊介面(SPI)。這快閃裝置可提供系統軟體之非依電性儲存器,其包含系統之一基本輸入/輸出軟體(BIOS)以及其他韌體。
各種輸入/輸出(IO)裝置可呈現在系統1100內。明確地說,於圖11之實施例中所展示的是一顯示器1124, 其可以是被組態在內框架之一盒蓋部份的一高清晰度LCD或LED面板。這顯示面板也可提供一觸控螢幕1125,例如,外部地被配合於顯示面板者,以至於經由一使用者與這觸控螢幕之互動,使用者輸入可被提供至系統以致能所需的操作,例如,關於資訊之顯示、資訊之存取以及其它者。於一實施例中,顯示器1124可經由可被實作如一高性能圖形互連的一顯示器互連而被耦合至處理器1110。觸控螢幕1125可經由另一互連被耦合至處理器1110,於一實施例中,其可以是一I2C互連。如於圖11中之進一步地被展示,除了觸控螢幕1125之外,藉由觸控之使用者輸入也可經由一觸控墊1130而發生,其可被組態在框架之內並且也可被耦合至相同I2C互連作為觸控螢幕1125。
為了知覺性之計算以及其他目的,各種感知器可以呈現在系統之內並且可以不同方式被耦合至處理器1110。某些慣性以及環境式感知器可經由一感知器中樞1140(例如,經由一I2C互連)而耦合至處理器1110。於圖11所展示之實施例中,這些感知器可包含一加速器1141、一環境光感知器(ALS)1142、一羅盤1143以及一回旋儀1144。於一實施例中,其他環境感知器可包含一個或多個熱感知器1146,其可經由一系統管理匯流排(SMBus)而耦合至處理器1110。
同時於圖11中所見,各種週邊裝置可經由一低引腳數(LPC)互連而耦合至處理器1110。於所展示之實施例中,各種構件可經由一嵌入式控制器1135被耦合。此等 構件可包含鍵盤1136(例如,其經由PS2介面被耦合)、風扇1137、以及熱感知器1139。於一些實施例中,觸控墊1130也可經由PS2介面耦合至EC1135。此外,一安全處理器,例如,依據2003年10月2日之信用電腦團隊(TCG)TPM規範1.2版的一信用平臺模組(TPM)1138,也可經由這LPC互連而耦合至處理器1110。
系統1100可以多種方式(包含無線地)而與外部裝置通訊。於圖11所展示之實施例中,各可對應至被組態以供用於一特定無線通訊協定的一無線電之各種無線模組被呈現。一用於在一短範圍(例如,一近場)中之無線通訊的方式可以是經由一近場通訊(NFC)單元1145,於一實施例中,其可經由一SMBus而與處理器1110通訊。注意到,經由這NFC單元1145,彼此接近的裝置可通訊。例如,例如,一使用者可經由一起調整這兩個接近關係的裝置,並且致能資訊(例如,辨識資訊、付款資訊)、資料(例如,影像資料或其它者)之轉移,而致能系統1100以通訊於另一輕便型裝置,例如,使用者之一智慧型手機。無線電力轉移也可以使用一NFC系統而被進行。
如於圖11中之進一步地所見,另外的無線單元可包含其他短範圍無線引擎(其包含一WLAN單元1150以及一藍牙單元1152)。使用WLAN單元1150,依照一所給予的電機與電子工程師協會(IEEE)802.11標準,Wi-FiTM通訊可被實現,而經由藍牙單元1152,經由一藍牙協定之短範圍通訊可發生。這些單元可以經由,例如,一USB鏈路或一 通用非同步接收器發送器(UART)鏈路,而與處理器1110通訊。或這些單元可依據一週邊構件互連ExpressTM(PCIeTM)協定(例如,依照PCIExpressTM規格基本規格3.0版本(頒佈於2007年1月17日))、或另一這樣的協定(例如,一串列資料輸入/輸出(SDIO)標準),以經由一互連而耦合至處理器1110。當然,在這些週邊裝置(其可被組態於一個或多個附加卡上)之間的實際之實體連接,可以是經由適用於一主機板之下一代形式因素(NGFF)連接器。
此外,無線廣域地區通訊,例如,依據一行動電話或其他無線廣域地區協定,可經由可依序地耦合至一用戶身份模組(SIM)1157的一WWAN單元1156而發生。此外,此外,為了致能位置資訊之接收及使用,GPS模組1155也可被呈現。注意到,於所展示之圖11的實施例中,WWAN單元1156以及一整合擷取裝置,例如,一攝影機模組1154可經由一給予的USB協定(例如,USB2.0或3.0鏈路、或UART或I2C協定)而通訊。再次地,這些單元之實際的實體連接可以是經由一NGFF附加卡之轉換而連接至在主機板上被組態的一NGFF連接器。
為了提供音訊輸入及輸出,一音訊處理器可經由一數位信號處理器(DSP)1160被實作,該處理器1160可經由高畫質音訊(HDA)鏈路而耦合至處理器1110。同樣地,DSP1160可通訊於一整合式編碼器/解碼器(CODEC)及放大器1162,其可依序地耦合至可在框架內被實作之輸出擴音機1163。同樣地,放大器以及CODEC1162可被耦合以 接收來自麥克風1165之音訊輸入,於一實施例中,其可經由雙重陣列麥克風被實作以提供高品質音訊輸入以致能在系統內之各種操作的聲音致動控制。同時注意到,音訊輸出也可自放大器/CODEC1162被提供至頭戴式耳機插孔1164。雖然於圖11之實施例中展示了這些特定構件,應了解,本發明之範疇是不受這方面之限定。
下面的範例涉及到進一步的實施例。
於一範例中,一設備包含耦合至一組織構件之一半導體裝置的複數個智慧財產(IP)區塊,該等複數個IP區塊之至少一些是關聯一期限邏輯,其用以產生一期限值以指示完成一記憶體要求之一等待時間並且將該記憶體要求與該期限值傳遞至該組織。
於一範例中,該組織包含一容許仲裁器,其自該等複數個IP區塊接收複數個記憶體要求且選擇該等複數個記憶體要求之一者以提供至一記憶體排程器仲裁器,並且該記憶體排程器仲裁器被耦合至該容許仲裁器以自一群記憶體要求選擇一第一記憶體要求以提供至耦合於該組織的一記憶體控制器。
於一範例中,該組織構件是至少部分地基於該第一記憶體要求之期限值而在該等複數個記憶體要求之間仲裁。
於一範例中,該等複數個IP區塊之至少一些包含等待時間敏感裝置。
於一範例中,一介面邏輯被耦合至一第一IP區 塊,該介面邏輯包含關聯該第一IP區塊之期限邏輯。
於一範例中,該期限構件是用以使一第一順序識別符與一第一記憶體要求相關聯以指示該第一記憶體要求的一第一優先序,並且用以傳遞該第一記憶體要求與該第一順序識別符。
於一範例中,該期限邏輯是用以使一第二順序識別符與一第二記憶體要求相關聯以指示該第二記憶體要求的一第二優先序,其中該第二優先序是大於該第一優先序,並且該組織是基於該第二順序識別符失序地且領先於該第一記憶體要求而處理該第二記憶體要求。
於一範例中,該期限邏輯是基於對於該第一IP區塊之該第一記憶體要求的一等待時間需求以及自該組織所接收之一全局計時器值而產生該期限值。
於一範例中,該期限值包含一將來的絕對時間。
於一範例中,該期限邏輯是用以至少部分地基於自該組織所接收之一全局計時器值、在該等複數個IP區塊之一第一裝置的一第一資料緩衝器中之一些項目、以及該第一資料緩衝器之一存取率而計算對於一讀取要求之一第一期限值。
於一範例中,該期限邏輯是至少部分地基於對於關聯一第一緩衝器項目之一第一記憶體要求而自該組織構件所接收之一全局計時器值、在該等複數個IP區塊之一第一裝置的一第一緩衝器中之一些項目、以及該第一緩衝 器之一存取率而計算對於一讀取要求之一第一期限值。
於一範例中,該期限邏輯包括用以儲存一等待時間數值的一組態暫存器,並且其中該期限邏輯是基於自該組織構件所接收之一全局計時器值以及該等待時間數值而產生該期限值。
注意到,上面之範例設備可使用各種構件被實作。
於另一範例中,一方法包含下列步驟:於被耦合至一系統晶片(SoC)之一共用記憶體組織的複數個裝置之一裝置中產生一記憶體要求;至少部分地基於自該共用記憶體組織所接收的一全局計時器值而計算對於該記憶體要求的一期限值;將一順序識別符與該記憶體要求相關聯;以及將該記憶體要求與該期限值及該順序識別符一起傳送至該共用記憶體組織。
於一範例中,該共用記憶體組織基於該期限值以及一等待時間臨界值而轉送該記憶體要求至該共用記憶體組織之一第一仲裁器,至少部分地基於該等複數個記憶體要求之該等期限值在包括該記憶體要求的一第一複數個記憶體要求之間於該第一仲裁器進行一仲裁並且轉送該等第一複數個記憶體要求之一優勝者記憶體要求至該共用記憶體組織之一最後仲裁器。
於一範例中,一方法包括決定被耦合至該共用記憶體組織的一記憶體是否處於一自更新狀態中,並且如果是,則決定是否至少部分地基於該優勝者記憶體要求之 該期限值而致使該記憶體要退出該自更新狀態。
於一範例中,一方法包含決定被耦合至該共用記憶體組織之一記憶體是否處於一自更新狀態中,並且如果是,則決定是否至少部分地基於一些待決要求對一第一臨界值的比較而致使該記憶體要退出該自更新狀態。
於一範例中,至少一機器可讀取媒體包括複數個指令,該等指令當響應於一電腦裝置上被執行時,將導致該電腦裝置進行一個或多個之上面範例的一方法。
於一範例中,一設備包含用以進行如上所述之方法的構件。
於另一範例中,一系統晶片包含各自獨立地執行指令之複數個核心,各自獨立地執行圖形操作之複數個圖形引擎,一對應至一第一等待時間敏感裝置的第一內容呈現裝置,一對應至一第二等待時間敏感裝置的第二內容呈現裝置,被耦合至該等複數個核心、該等複數個圖形引擎、該等第一和第二內容呈現裝置、及一記憶體控制器之一組織,以及一被耦合在該第一內容呈現裝置以及該組織之間的第一介面邏輯,該第一介面邏輯包含一期限邏輯,以產生與一第一記憶體要求相關聯之一期限值。
於一範例中,該組織是用以接收來自該等複數個核心、該等複數個圖形引擎與該等第一和第二內容呈現裝置之記憶體要求,並且用以至少部分地基於來自該等第一和第二內容呈現裝置之該等記憶體要求的該期限值而在該等記憶體要求之間仲裁。
於一範例中,該第一介面邏輯被耦合在該第一內容呈現裝置以及該組織之間。
於一範例中,一中繼器緩衝器被耦合在該第一介面構件及該組織之間,以及一控制邏輯,其用以響應於來自具有一第二期限值之該第一內容呈現裝置之一進入的要求而致使被儲存於該中繼器緩衝器的一第一項目中之一第一期限值要被更新至一第二期限值。
於另一範例中,一設備,其包含:一被耦合在一半導體裝置之複數個智慧財產(IP)區塊以及一記憶體控制器之間的組織,該組織接收來自該等複數個IP區塊之複數個記憶體要求,其中該等複數個記憶體要求之一記憶體要求是關聯一期限值以指示在該記憶體要求完成之前的一最大等待時間,以及一順序識別符以指示該記憶體要求之一優先序,並且其中該組織是至少部分地基於該記憶體要求之期限值以在該等複數個記憶體要求之間仲裁。
於一範例中,該組織包含一容許仲裁器以接收該等複數個記憶體要求並且選擇該等複數個記憶體要求之一者以提供至一記憶體排程器仲裁器,並且記憶體排程器仲裁器被耦合至容許仲裁器以自一群記憶體要求而選擇一第一記憶體要求以提供至記憶體控制器。
於一範例中,容許仲裁器包含一第一仲裁器以自複數個IP區塊之一第一子集而接收記憶體要求,且自複數個IP區塊之一第二子集而接收複數個記憶體要求之一第一部份,以及一第二仲裁器以自複數個IP區塊之第二子集 而接收複數個記憶體要求之一第二部份。
於一範例中,複數個IP區塊之第二子集包含等待時間敏感裝置。
於一範例中,第二仲裁器是進一步地藉由自複數個IP區塊之第二子集被接收的複數個記憶體要求的第二部份之各者而接收一期限值。
於一範例中,容許仲裁器是可控制的而以一第一模式操作,於其中來自該第二仲裁器之記憶體要求在來自第一仲裁器之記憶體要求上被選擇,並且於一第二模式操作中,在來自該第二仲裁器的N記憶體要求被選擇之後,來自該第一仲裁器之M記憶體要求被選擇,其中M以及N自一組態暫存器被得到。
於一範例中,該組織是用以接收一第二順序識別符與一第二記憶體要求,其中當第二優先序是大於該優先序時,組織是用以失序地且領先於記憶體要求地處理第二記憶體要求。
於一範例中,該組織是基於第二順序識別符以失序地處理第二記憶體要求。
於一範例中,該組織是基於第一以及第二順序識別符以領先於來自第一IP區塊之具有一第二順序識別符的一第二記憶體要求以重排序來自一第一IP區塊之具有一第一順序識別符的一第一記憶體要求。
於一範例中,設備包含被併入一使用者設備觸控致能裝置中之一系統晶片(SoC)。
於另一範例中,一設備包含被耦合至一組織構件之一半導體裝置的複數個智慧財產(IP)區塊,其中該等複數個IP區塊之至少一些是關聯於一期限構件,該期限構件用以產生一期限值之以指示完成一記憶體要求之一等待時間並且將該記憶體要求與該期限值傳遞至組織構件。
於一範例中,組織構件包含一容許仲裁器,其自該等複數個IP區塊接收複數個記憶體要求且選擇該等複數個記憶體要求之一者以提供至一記憶體排程器仲裁器,且該記憶體排程器仲裁器被耦合至該容許仲裁器以自一群記憶體要求選擇一第一記憶體要求以提供至耦合於該組織的一記憶體控制器。
於一範例中,一介面構件被耦合至一第一IP區塊,該介面構件包含與該第一IP區塊相關聯之期限構件。
於一範例中,該期限構件是用以使一第一順序識別符與一第一記憶體要求相關聯以指示該第一記憶體要求的一第一優先序,並且用以傳遞該第一記憶體要求與該第一順序識別符。
於一範例中,該期限構件是用以使一第二順序識別符與一第二記憶體要求相關聯以指示該第二記憶體要求的一第二優先序,其中該第二優先序是大於該第一優先序,並且該組織構件是基於該第二順序識別符失序地且領先於該第一記憶體要求而處理該第二記憶體要求。
於一範例中,該期限構件是基於對於該第一IP區塊之該第一記憶體要求的一等待時間需求以及自該組織 構件所接收之一全局計時器值而產生該期限值。
於一範例中,該期限構件是用以至少部分地基於自該組織構件被接收之一全局計時器值、該等複數個IP區塊之一第一裝置的一第一資料緩衝器中之一些項目、以及該第一資料緩衝器之一存取率而計算對於一讀取要求之一第一期限值。
於一範例中,該等複數個IP區塊之至少一者是選自由一音訊播放機、一視訊播放機、以及一擷取裝置所組成的一族群。
於一範例中,一設備包含:各獨立地執行指令之複數個核心、各獨立地執行圖形操作之複數個圖形引擎、一對應至一第一等待時間敏感裝置的第一內容呈現裝置、以及一對應至一第二等待時間敏感裝置的第二內容呈現裝置,其中該組織構件被耦合至複數個核心,複數個圖形引擎、第一及第二內容呈現裝置、以及一記憶體控制器。
於另一範例中,一用以進行記憶體要求之設備,該設備包含耦合至一組織構件之一半導體裝置的複數個智慧財產(IP)區塊,其中該等複數個IP區塊之至少一些是關聯一期限構件,該期限構件用以產生一期限值以指示完成一記憶體要求之一等待時間並且通訊該記憶體要求至具有該期限值之該組織構件。
於一範例中,該組織構件包含一容許仲裁器,其自該等複數個IP區塊接收複數個記憶體要求且選擇該等 複數個記憶體要求之一者以提供至一記憶體排程器仲裁器,並且該記憶體排程器仲裁器耦合至該容許仲裁器以自一群記憶體要求選擇一第一記憶體要求以提供至耦合於該組織的一記憶體控制器。
於一範例中,該組織構件是是至少部分地基於該第一記憶體要求之該期限值而在該等複數個記憶體要求之間仲裁。
於一範例中,一介面構件被耦合至一第一IP區塊,該介面構件包括與該第一IP區塊相關聯之該期限構件。
於一範例中,該期限構件是是用以使一第一順序識別符與一第一記憶體要求相關聯以指示該第一記憶體要求的一第一優先序,並且用以傳遞該第一記憶體要求與該第一順序識別符。
於一範例中,該期限構件用以使一第二順序識別符與一第二記憶體要求相關聯以指示該第二記憶體要求的一第二優先序,其中該第二優先序是大於該第一優先序,並且該組織構件是基於該第二順序識別符失序地且領先於該第一記憶體要求而處理該第二記憶體要求。
於一範例中,該期限構件是基於對於該第一IP區塊之該第一記憶體要求的一等待時間需求以及自該組織構件所接收之一全局計時器值而產生該期限值。
於一範例中,該期限構件是用以至少部分地基於自該組織構件所接收之一全局計時器值、在該等複數個 IP區塊之一第一裝置的一第一資料緩衝器中之一些項目、以及該第一資料緩衝器之一存取率而計算對於一讀取要求之一第一期限值。
於一範例中,該期限構件是至少部分地基於對於與一第一緩衝器項目相關聯之一第一記憶體要求而自該組織構件所接收之一全局計時器值、在該等複數個IP區塊之一第一裝置的一第一緩衝器中之一些項目、以及該第一緩衝器之一存取率而計算對於一讀取要求之一第一期限值。
於一範例中,該期限構件包括用以儲存一等待時間數值的一組態暫存器,並且其中該期限構件是基於自該組織構件所接收之一全局計時器值以及該等待時間數值而產生該期限值。
於另一範例中,一用以進行記憶體要求之設備,該設備包含一被耦合至一組織的要求代理者,該要求代理者包含用以產生一要求之一第一構件,該要求包含基於自該組織被接收的一全局計時器值以及對於該組織完成該要求之一等待時間數值的一期限值,該要求進一步地包含一順序識別符。
於一範例中,該順序識別符是用以指示該組織是否可將關於利用該要求代理者被傳遞至該組織的至少一其他要求為失序之一響應返回至該要求。
於一範例中,一中繼器緩衝器被耦合在該要求代理者與該組織之間並且具有各用以儲存一要求與一期限 值之複數個項目,以及一控制構件,其被耦合至該中繼器緩衝器以響應於來自該要求代理者而具有一第二期限值之一進入的要求,而致使被儲存於該中繼器緩衝器之一第一項目中的一第一期限值要被更新至該第二期限值。
於一範例中,該要求代理者包括具有各用以儲存資料之複數個項目的一第一緩衝器,並且其中該第一構件是用以至少部分地基於該第一緩衝器之一存取率及該等複數個項目之一可用的數目而產生該期限值。
於一範例中,該要求代理者是選自由一音訊播放機、一視訊播放機、以及一擷取裝置所組成的一族群。
於一範例中,全局計時器值包含一N-位元值並且該等待時間數值包含一M-位元值,其中M是小於N。
於一範例中,第一構件是用以組合該全局計時器值及等待時間數值以產生期限值。
於一範例中,該組織是用以基於該期限值而提供該要求至一第一仲裁器。
於一範例中,組織是基於該期限值及一目前全局計時器值而決定一組織等待時間數值,並且如果該組織等待時間數值是大於一第一臨界值則用以進一步地分類該要求作為具有一第一優先序位準。
於一範例中,該組織等待時間值是大於一第二臨界值,則該組織是用以致使被耦合至該組織的一記憶體退出一自更新狀態。
於另一範例中,一設備包含被耦合至一組織之 一要求代理者,該要求代理者包括用以產生一要求之一第一邏輯,該要求包含基於自該組織被接收的一全局計時器值以及對於該組織完成該要求之一等待時間數值的一期限值,該要求進一步地包括一順序識別符。
於一範例中,順序識別符是用以指示該組織是否可將關於利用該要求代理者被傳遞至該組織的至少一其他要求為失序之一響應返回至該要求。
於一範例中,一中繼器緩衝器被耦合被耦合在該要求代理者與該組織之間並且具有各用以儲存一要求與一期限值之複數個項目,以及一控制邏輯,其被耦合至該中繼器緩衝器以響應於來自該要求代理者而具有一第二期限值之一進入的要求,而致使被儲存於該中繼器緩衝器之一第一項目中的一第一期限值要被更新至該第二期限值。
於一範例中,該要求代理者包括具有各用以儲存資料之複數個項目的一第一緩衝器,並且其中該第一邏輯是用以至少部分地基於該第一緩衝器之一存取率及該等複數個項目之一可用的數目而產生該期限值。
於一範例中,該要求代理者是選自由一音訊播放機、一視訊播放機、以及一擷取裝置所組成的一族群。
於一範例中,全局計時器值包含一N-位元值並且該等待時間數值包含一M-位元值,其中M是小於N。
於一範例中,該第一邏輯是用以組合該全局計時器值及該等待時間數值以產生該期限值。
於一範例中,組織是用以基於該期限值而提供 該要求至一第一仲裁器。
於一範例中,組織是用以基於該期限值及一目前全局計時器值而決定一組織等待時間數值,並且如果該組織等待時間數值是大於一第一臨界值則用以進一步地分類該要求作為具有一第一優先序位準。
於一範例中,如果組織等待時間值是大於一第二臨界值,則該組織是用以致使被耦合至該組織的一記憶體退出一自更新狀態。
實施例可以程式碼被實作並且可被儲存於具有指令被儲存於其上之一非暫態儲存媒體上,其可被使用以程規一系統以進行該等指令。該儲存媒體可包含,但是不受限定於,任何型式之碟片(如包含軟式磁碟片、光學碟片、固態驅動器(SSD)、小型碟片唯讀記憶體(CD-ROM)、可重寫小型碟片(CD-RW)、以及磁光碟片)、半導體裝置,例如,唯讀記憶體(ROM)、隨機存取記憶體(RAM),例如,動態隨機存取記憶體(DRAM)、靜態隨機存取記憶體(SRAM)、可清除可程控唯讀記憶體(EPROM)、快閃記憶體、電氣可清除可程控唯讀記憶體(EEPROM)、磁或光學卡、或適用於儲存電子指令之任何其他型式的媒體。
雖然本發明已有關於限定數目的實施例被說明,那些熟習本技術者應明白,從該處本發明可有許多的修改以及變化。附加申請專利範圍意欲涵蓋如落在本發明之真正精神以及範疇內的所有此等修改以及變化。
100‧‧‧處理器
101、102‧‧‧核心
101a、101b‧‧‧硬體線程
102a、102b‧‧‧結構狀態暫存器
105‧‧‧匯流排
110‧‧‧介面模組
120‧‧‧指令轉譯緩衝器(I-TLB)
125‧‧‧解碼模組/解碼邏輯/解碼器
126‧‧‧解碼器
130‧‧‧定位器及重新命名器區塊
135‧‧‧重排序/除役單元
140‧‧‧執行單元
150‧‧‧資料快取及資料轉譯緩衝器(D-TLB)
175‧‧‧記憶體
176‧‧‧應用程式碼
177‧‧‧轉譯器數碼
180‧‧‧圖形處理器

Claims (30)

  1. 一種設備,其包含:耦合至一組織(fabric)構件之一半導體裝置的複數個智慧財產(IP)區塊,其中該等複數個IP區塊之至少一些是與一期限構件相關聯,該期限構件用以產生一期限值以指示完成一記憶體要求之一等待時間(latency)並且將該記憶體要求與該期限值一起傳遞至該組織構件。
  2. 如請求項1之設備,其中該組織構件包含:一容許仲裁器,其自該等複數個IP區塊接收複數個記憶體要求且選擇該等複數個記憶體要求之一者以提供至一記憶體排程器仲裁器;並且該記憶體排程器仲裁器耦合至該容許仲裁器以自一群記憶體要求選擇一第一記憶體要求以提供至耦合於該組織的一記憶體控制器。
  3. 如請求項2之設備,其中該組織構件是至少部分地基於該第一記憶體要求之該期限值而在該等複數個記憶體要求之間仲裁。
  4. 如請求項1之設備,其中該等複數個IP區塊之該至少一些包含等待時間敏感裝置。
  5. 如請求項1之設備,其進一步包含耦合至一第一IP區塊之一介面構件,該介面構件包括與該第一IP區塊相關聯之該期限構件。
  6. 如請求項5之設備,其中該期限構件是用以使一第一順序識別符與一第一記憶體要求相關聯以指示該第一記憶體要求的一第一優先序,並且用以傳遞該第一記憶體要求與該第一順序識別符。
  7. 如請求項6之設備,其中該期限構件是用以使一第二順序識別符與一第二記憶體要求相關聯以指示該第二記憶體要求的一第二優先序,其中該第二優先序是大於該第一優先序,並且該組織構件是基於該第二順序識別符失序地(out of order)且領先於該第一記憶體要求而處理該第二記憶體要求。
  8. 如請求項6之設備,其中該期限構件是基於對於該第一IP區塊之該第一記憶體要求的一等待時間需求以及自該組織構件所接收之一全局計時器值而產生該期限值。
  9. 如請求項8之設備,其中該期限值包含一未來的絕對時間。
  10. 如請求項1之設備,其中該期限構件是用以至少部分地基於自該組織構件所接收之一全局計時器值、在該等複數個IP區塊之一第一裝置的一第一資料緩衝器中之一些項目、以及該第一資料緩衝器之一存取率而計算對於一讀取要求之一第一期限值。
  11. 如請求項1之設備,其中該期限構件是至少部分地基於對於與一第一緩衝器項目相關聯之一第一記憶體要求而自該組織構件所接收之一全局計時器值、在該等複數個IP區塊之一第一裝置的一第一緩衝器中之一些項 目、以及該第一緩衝器之一存取率而計算對於一讀取要求之一第一期限值。
  12. 如請求項1之設備,其中該期限構件包括用以儲存一等待時間數值的一組態暫存器,並且其中該期限構件是基於自該組織構件所接收之一全局計時器值以及該等待時間數值而產生該期限值。
  13. 一種方法,其包含下列步驟:於被耦合至一系統晶片(SoC)之一共用記憶體組織的複數個裝置之一裝置中產生一記憶體要求;至少部分地基於自該共用記憶體組織所接收的一全局計時器值而計算對於該記憶體要求的一期限值;將一順序識別符與該記憶體要求相關聯;以及將該記憶體要求與該期限值及該順序識別符一起傳送至該共用記憶體組織。
  14. 如請求項13之方法,其中該共用記憶體組織基於該期限值以及一等待時間臨界值而轉送該記憶體要求至該共用記憶體組織之一第一仲裁器,至少部分地基於該等複數個記憶體要求之該等期限值在包括該記憶體要求的第一複數個記憶體要求之間於該第一仲裁器進行一仲裁並且轉送該等第一複數個記憶體要求之一優勝者記憶體要求至該共用記憶體組織之一最後仲裁器。
  15. 如請求項13之方法,進一步地包含決定被耦合至該共用記憶體組織的一記憶體是否處於一自更新狀態中,並且 如果是,則決定是否至少部分地基於該優勝者記憶體要求之該期限值而致使該記憶體要退出該自更新狀態。
  16. 如請求項13之方法,進一步地包含決定被耦合至該共用記憶體組織之一記憶體是否處於一自更新狀態中,並且如果是,則決定是否至少部分地基於一些待決要求對一第一臨界值的比較而致使該記憶體要退出該自更新狀態。
  17. 一種系統,其包含:複數個核心,其等各自獨立地執行指令;複數個圖形引擎,其等各自獨立地執行圖形操作;一對應至一第一等待時間敏感裝置的第一內容呈現裝置;一對應至一第二等待時間敏感裝置的第二內容呈現裝置;一組織(fabric),其被耦合至該等複數個核心、該等複數個圖形引擎、該等第一和第二內容呈現裝置、及一記憶體控制器;以及一被耦合在該第一內容呈現裝置及該組織之間的第一介面構件,該第一介面構件包括一期限構件,該期限構件用以產生與一第一記憶體要求相關聯的一期限值,以指示在該第一記憶體要求完成之前由該第一內容呈現裝置所要求的一等待時間。
  18. 如請求項17之系統晶片,其中該組織是用以接收來自該等複數個核心、該等複數個圖形引擎與該等第一和第二 內容呈現裝置之記憶體要求,並且用以至少部分地基於來自該等第一和第二內容呈現裝置之該等記憶體要求的該期限值而在該等記憶體要求之間仲裁。
  19. 如請求項17之系統晶片,其中該第一介面構件被耦合而安置在該第一內容呈現裝置之內。
  20. 如請求項17之系統晶片,進一步包含被耦合在該第一介面構件及該組織之間的一中繼器緩衝器,以及一控制構件,其用以響應於來自具有一第二期限值之該第一內容呈現裝置之一進入的要求而致使被儲存於該中繼器緩衝器的一第一項目中之一第一期限值要被更新至一第二期限值。
  21. 一種設備,其包含:一被耦合至一組織(fabric)的要求代理者(agent),該要求代理者包括用以產生一要求之一第一構件,該要求包括基於自該組織所接收的一全局計時器值以及對於該組織要完成該要求之一等待時間數值的一期限值,該要求進一步地包括一順序識別符。
  22. 如請求項21之設備,其中該順序識別符是用以指示該組織是否可將關於利用該要求代理者被傳遞至該組織的至少一其他要求為失序之一響應返回至該要求。
  23. 如請求項21之設備,進一步包含:一中繼器緩衝器,其被耦合在該要求代理者與該組織之間並且具有各用以儲存一要求與一期限值之複數個項目;以及 一控制構件,其被耦合至該中繼器緩衝器以響應於來自該要求代理者而具有一第二期限值之一進入的要求,而致使被儲存於該中繼器緩衝器之一第一項目中的一第一期限值要被更新至該第二期限值。
  24. 如請求項21之設備,其中該要求代理者包括具有各用以儲存資料之複數個項目的一第一緩衝器,並且其中該第一構件是用以至少部分地基於該第一緩衝器之一存取率及該等複數個項目之一可用的數目而產生該期限值。
  25. 如請求項21之設備,其中該要求代理者是選自由一音訊播放機、一視訊播放機、以及一擷取裝置所組成的一族群。
  26. 如請求項21之設備,其中該全局計時器值包含一N-位元值並且該等待時間數值包含一M-位元值,其中M是小於N。
  27. 如請求項26之設備,其中該第一構件是用以組合該全局計時器值及該等待時間數值以產生該期限值。
  28. 如請求項21之設備,其中該組織是用以基於該期限值而提供該要求至一第一仲裁器。
  29. 如請求項28之設備,其中該組織是用以基於該期限值及一目前全局計時器值而決定一組織等待時間數值,並且如果該組織等待時間數值是大於一第一臨界值則用以進一步地分類該要求作為具有一第一優先序位準。
  30. 如請求項29之設備,其中如果該組織等待時間數值是大於一第二臨界值,則該組織是用以致使被耦合至該組織的一記憶體退出一自更新狀態。
TW103104734A 2013-02-28 2014-02-13 用以產生要求之設備、用於記憶體要求之方法、及運算系統 TWI522792B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/780,117 US9563579B2 (en) 2013-02-28 2013-02-28 Method, apparatus, system for representing, specifying and using deadlines

Publications (2)

Publication Number Publication Date
TW201435574A true TW201435574A (zh) 2014-09-16
TWI522792B TWI522792B (zh) 2016-02-21

Family

ID=51387666

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103104734A TWI522792B (zh) 2013-02-28 2014-02-13 用以產生要求之設備、用於記憶體要求之方法、及運算系統

Country Status (3)

Country Link
US (1) US9563579B2 (zh)
TW (1) TWI522792B (zh)
WO (1) WO2014133705A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI803211B (zh) * 2022-02-25 2023-05-21 南亞科技股份有限公司 隨機指令產生系統及隨機指令產生方法
TWI811134B (zh) * 2022-10-13 2023-08-01 金麗科技股份有限公司 亂序緩衝器及其相關管理方法

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101814412B1 (ko) 2013-03-15 2018-01-03 인텔 코포레이션 데이터 버퍼와 연관된 스누프 필터링의 제공
US9298654B2 (en) 2013-03-15 2016-03-29 International Business Machines Corporation Local bypass in memory computing
WO2015024680A1 (de) * 2013-08-21 2015-02-26 Siemens Ag Österreich Verfahren und schaltungsanordnung zur zeitlichen eingrenzung und trennung von zugriffen in einem ein-chip-system
US9246852B2 (en) * 2013-11-05 2016-01-26 National Instruments Corporation Lossless time based data acquisition and control in a distributed system
US9276938B2 (en) * 2013-11-27 2016-03-01 General Electric Company Cross-enterprise workflow
US9864647B2 (en) 2014-10-23 2018-01-09 Qualcom Incorporated System and method for dynamic bandwidth throttling based on danger signals monitored from one more elements utilizing shared resources
US9971711B2 (en) 2014-12-25 2018-05-15 Intel Corporation Tightly-coupled distributed uncore coherent fabric
CN105159852B (zh) * 2015-08-18 2018-05-15 珠海市一微半导体有限公司 双接口nfc标签电路及其数据传输方法
US11550982B2 (en) 2015-11-04 2023-01-10 Chronos Tech Llc Application specific integrated circuit interconnect
US9977853B2 (en) 2015-11-04 2018-05-22 Chronos Tech Llc Application specific integrated circuit link
US10073939B2 (en) 2015-11-04 2018-09-11 Chronos Tech Llc System and method for application specific integrated circuit design
US10181939B2 (en) 2016-07-08 2019-01-15 Chronos Tech Llc Systems and methods for the design and implementation of an input and output ports for circuit design
TWI661352B (zh) * 2016-09-22 2019-06-01 慧榮科技股份有限公司 資料儲存裝置及其資料寫入方法
US10372642B2 (en) * 2016-09-29 2019-08-06 Intel Corporation System, apparatus and method for performing distributed arbitration
US11003602B2 (en) * 2017-01-24 2021-05-11 Micron Technology, Inc. Memory protocol with command priority
US10067691B1 (en) * 2017-03-02 2018-09-04 Qualcomm Incorporated System and method for dynamic control of shared memory management resources
US10637592B2 (en) 2017-08-04 2020-04-28 Chronos Tech Llc System and methods for measuring performance of an application specific integrated circuit interconnect
US10819647B2 (en) * 2017-12-06 2020-10-27 Marvell Israel (M.I.S.L) Ltd. Network device having reduced latency
US10649922B2 (en) * 2018-08-06 2020-05-12 Apple Inc. Systems and methods for scheduling different types of memory requests with varying data sizes
US11087057B1 (en) 2019-03-22 2021-08-10 Chronos Tech Llc System and method for application specific integrated circuit design related application information including a double nature arc abstraction

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5923859A (en) * 1995-04-13 1999-07-13 Compaq Computer Corporation Dual arbiters for arbitrating access to a first and second bus in a computer system having bus masters on each bus
US6078998A (en) * 1997-02-11 2000-06-20 Matsushita Electric Industrial Co., Ltd. Real time scheduling of prioritized disk requests
US6006303A (en) * 1997-08-28 1999-12-21 Oki Electric Industry Co., Inc. Priority encoding and decoding for memory architecture
US6941419B2 (en) * 2000-05-24 2005-09-06 Seagate Technology Llc Method and apparatus for disc drive buffer segment management
US6415369B1 (en) * 2000-08-29 2002-07-02 Agere Systems Guardian Corp. Shared devices and memory using split bus and time slot interface bus arbitration
JP3982353B2 (ja) 2002-07-12 2007-09-26 日本電気株式会社 フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム
US7191349B2 (en) 2002-12-26 2007-03-13 Intel Corporation Mechanism for processor power state aware distribution of lowest priority interrupt
US7343502B2 (en) * 2004-07-26 2008-03-11 Intel Corporation Method and apparatus for dynamic DLL powerdown and memory self-refresh
EP1899828B1 (en) * 2005-06-30 2009-11-25 Freescale Semiconductor, Inc. Device and method for arbitrating between direct memory access task requests
US7797467B2 (en) * 2005-11-01 2010-09-14 Lsi Corporation Systems for implementing SDRAM controllers, and buses adapted to include advanced high performance bus features
WO2007109894A1 (en) 2006-03-28 2007-10-04 Radisys Canada, Inc. Multimedia processing in parallel multi-core computation architectures
US7673264B1 (en) * 2006-04-06 2010-03-02 Virage Logic Corp. System and method for verifying IP integrity in system-on-chip (SOC) design
US8151008B2 (en) 2008-07-02 2012-04-03 Cradle Ip, Llc Method and system for performing DMA in a multi-core system-on-chip using deadline-based scheduling
US8190804B1 (en) * 2009-03-12 2012-05-29 Sonics, Inc. Various methods and apparatus for a memory scheduler with an arbiter
EP2284714A1 (en) * 2009-08-14 2011-02-16 Nxp B.V. Memory controller with external refresh mechanism
US8745335B2 (en) * 2011-06-29 2014-06-03 Synopsys, Inc. Memory arbiter with latency guarantees for multiple ports
KR101814412B1 (ko) 2013-03-15 2018-01-03 인텔 코포레이션 데이터 버퍼와 연관된 스누프 필터링의 제공

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI803211B (zh) * 2022-02-25 2023-05-21 南亞科技股份有限公司 隨機指令產生系統及隨機指令產生方法
TWI811134B (zh) * 2022-10-13 2023-08-01 金麗科技股份有限公司 亂序緩衝器及其相關管理方法

Also Published As

Publication number Publication date
US9563579B2 (en) 2017-02-07
WO2014133705A1 (en) 2014-09-04
US20140240326A1 (en) 2014-08-28
TWI522792B (zh) 2016-02-21

Similar Documents

Publication Publication Date Title
TWI522792B (zh) 用以產生要求之設備、用於記憶體要求之方法、及運算系統
KR101814412B1 (ko) 데이터 버퍼와 연관된 스누프 필터링의 제공
TWI599887B (zh) 經由共享記憶體組織來仲裁記憶體存取之技術
EP3238080B1 (en) Guaranteed quality of service in system-on-a-chip uncore fabric
US9405687B2 (en) Method, apparatus and system for handling cache misses in a processor
US20160191420A1 (en) Mitigating traffic steering inefficiencies in distributed uncore fabric
TWI633424B (zh) 在非核心組織中之電力管理技術
KR101775569B1 (ko) 가상 재시도 큐
CN107003962B (zh) 保持计算系统中高速缓存一致性的方法、装置和计算系统
KR20160004365A (ko) 크레딧 기반의 중재를 위한 서비스 레이트 재분배
US9971711B2 (en) Tightly-coupled distributed uncore coherent fabric
CN107003959B (zh) 虚拟遗留线