TWI819428B - 處理器設備 - Google Patents
處理器設備 Download PDFInfo
- Publication number
- TWI819428B TWI819428B TW110145976A TW110145976A TWI819428B TW I819428 B TWI819428 B TW I819428B TW 110145976 A TW110145976 A TW 110145976A TW 110145976 A TW110145976 A TW 110145976A TW I819428 B TWI819428 B TW I819428B
- Authority
- TW
- Taiwan
- Prior art keywords
- response
- transaction
- bridge
- request
- client
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1626—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Saccharide Compounds (AREA)
- Preparation Of Compounds By Using Micro-Organisms (AREA)
- Multi Processors (AREA)
Abstract
本文件描述用於用以支持無序執行之一低延遲橋接之系統及技術。所描述系統及技術可促進由一記憶體控制器對有序異動請求之無序執行。當其接收與有序異動請求相關聯之異動回應時,橋接器可發送一第一異動回應而不將其儲存於一重新排序緩衝器中。類似地,該橋接器可判定下一異動回應是否可用於發送至各自用戶端。僅當首先接收到有序異動回應之一二次回應(例如,並非第一回應)時,該橋接器才對一更大系統(例如,一SoC)引入延遲。以此方式,該記憶體控制器可用由該橋接器及一較小重新排序緩衝器引入的最小延遲處理來自一或多個用戶端的異動請求。
Description
本發明係關於處理器。特定而言,本發明關於低延遲處理器。
處理器(諸如中央處理單元(CPU)及系統單晶片(SoC))可以無序執行(有時被稱為動態執行)進行操作以利用否則被浪費之指令週期。無序執行導致一處理器按由輸入資料及執行單元之可用性而非由其等在一程式中之原始順序管控之一順序執行指令。無序執行可增加並行處理量且提高處理器處理量。然而,無序執行並不總是可行的,因為一些用戶端(有時被稱為起始器或主控裝置)發出有序異動請求或命令。一些處理器使用用戶端與記憶體系統之間的一橋接器來接受有序請求,但支持對記憶體系統之無序執行。此等橋接器通常增加有序至無序轉換期間的延遲,從而導致降低之處理器處理量。
本文件描述用於用以支持無序執行之一低延遲橋接之系統及技術。所描述系統及技術可促進由一記憶體控制器對有序異動請求之無序執行。當其接收與有序異動請求相關聯之異動回應時,橋接器可發送一第一異動回應而不將其儲存於一重新排序緩衝器中。類似地,該橋接器可
判定下一異動回應是否可用於發送至各自用戶端。僅當首先接收有序異動回應之一二次回應(例如,並非第一回應)時,該橋接器才對一更大系統(例如,一SoC)引入延遲。以此方式,該記憶體控制器可以由該橋接器及一較小重新排序緩衝器引入之最小延遲來處理來自一或多個用戶端之異動請求。
例如,一種設備包含一橋接器及一記憶體控制器。該記憶體控制器可操作地連接至一或多個記憶體(例如,隨機存取記憶體(RAM))。該記憶體控制器可處理來自一或多個用戶端之異動請求以存取該等記憶體中之資料。該橋接器可操作地連接至該記憶體控制器及該等用戶端。該橋接器包含一重新排序緩衝器且可自一第一用戶端接收異動請求。該橋接器亦可自該記憶體控制器接收異動回應以有序返回至該第一用戶端。各異動回應係與一對應異動請求相關聯。回應於接收到一第一異動回應,該橋接器可將與該第一異動回應相關聯之資料發送至該第一用戶端且略過將該資料儲存於該重新排序緩衝器中。
作為另一實例,一種方法包含藉由一橋接器自一或多個用戶端之一第一用戶端接收多個異動請求。該橋接器可操作地連接至該等用戶端且包含一重新排序緩衝器。該方法亦包含藉由該橋接器自一記憶體控制器接收多個異動回應。各異動回應係與一對應異動請求相關聯。該橋接器可將該多個異動回應有序返回至該第一用戶端。該記憶體控制器可操作地連接至一或多個記憶體且可處理來自該等用戶端之異動請求以存取該等記憶體中之資料。該方法進一步包含,回應於接收到該多個異動回應之一第一異動回應,將與該第一異動回應相關聯之資料發送至該第一用戶端且略過將該資料儲存於該重新排序緩衝器中。
本文件亦描述用於用以支持無序執行之一低延遲橋接之其他方法、組態及系統。
此[發明內容]介紹下文在[實施方式]及[圖式簡單說明]中進一步描述之用以支持無序執行之一低延遲橋接之簡化概念。此[發明內容]並不旨在識別所主張標的物之基本特徵,亦不旨在用於判定所主張標的物之範疇。
100:裝置圖
102:使用者裝置
102-1:行動電話
102-2:平板電腦裝置
102-3:膝上型電腦
102-4:桌上型電腦
102-5:電腦化手錶
102-6:可穿戴裝置
102-7:可攜式視訊遊戲控制台
102-8:語音助理系統
104:射頻(RF)收發器
106:系統單晶片(SoC)
108:用戶端
108-1:用戶端A
108-2:用戶端B
108-3:用戶端C
110:記憶體子系統
112:隨機存取記憶體(RAM)
114:記憶體控制器
116:低延遲橋接/橋接器
118:緩衝器/重新排序緩衝器
120:電腦可讀儲存媒體(CRM)
200:裝置圖
202:有序請求
204:無序請求
206-1:同步動態隨機存取記憶體(SDRAM)
206-2:同步動態隨機存取記憶體(SDRAM)
208:緩衝器
210:控制器
300:圖式
302-1:虛擬通道
302-2:虛擬通道
302-3:虛擬通道
304:內部匯流排
306-1:內部匯流排
306-2:內部匯流排
308:組構
402:連結表結構/連結表
402-1:連結表條目
402-2:連結表條目
404:讀取請求
404-1:讀取請求
404-2:讀取請求
404-3:讀取請求
406:讀取請求
406-1:讀取請求
406-2:讀取請求
406-3:讀取請求
406-4:讀取請求
406-5:讀取請求
500:異動請求(REQ)
502:ID旗標(IDF)
504:請求佇列號(RQN)
506:請求佇列元素(RQE)
508:異動回應(RSP)/傳輸回應
510:回應序列號(RSN)
512:讀取資料緩衝器(RDB)元素
600:操作
602:操作
604:操作
606:操作
608:操作
610:操作
612:操作
614:操作
616:操作
700:操作
702:操作
704:操作
706:操作
708:操作
710:操作
712:操作
714:操作
716:操作
800:操作
802:操作
804:操作
806:操作
900:系統單晶片(SoC)
902:應用程式處理器
904:記憶體子系統
906:記憶體
908:系統資料
910:韌體
912:應用程式
914:通信收發器/處理器
916:無線數據機/處理器
918:資料輸入/處理器
920:圖形處理器/處理器
922:音訊處理器/處理器
924:影像感測器處理器/處理器
926:感測器介面/處理器
本文件中參考以下圖式描述支持無序執行之一低延遲橋接之一或多項態樣之細節。貫穿多個圖式使用相同數字來引用相同特徵及組件。
圖1繪示其中可實施用於用以支持無序執行之一低延遲橋接之系統及技術之一使用者裝置之一實例性裝置圖。
圖2繪示其中可實施用於用以支持無序執行之一低延遲橋接之系統及技術之一SoC之一實例性裝置圖。
圖3繪示使用用以支持無序執行之一低延遲橋接之一記憶體子系統之一實例性圖式。
圖4繪示用以支持無序執行之所描述低延遲橋接之一實例性連結表(linked list)。
圖5-1及圖5-2繪示與用於用以支持無序執行之一低延遲橋接之一異動請求及一異動回應相關聯之實例性資料。
圖6繪示用以支持無序執行之一低延遲橋接回應於一異動請求之實例性操作之一流程圖。
圖7繪示用以支持無序執行之一低延遲橋接回應於一異動
回應之實例性操作之一流程圖。
圖8係繪示用以支持無序執行之一低延遲橋接之實例性操作之一流程圖。
圖9繪示可實施用以支持無序執行之所描述低延遲橋接之態樣之一實例性SoC。
本文件描述用於用以支持無序執行之一低延遲橋接之系統及技術。處理器可有序或無序地向記憶體系統發出異動請求。處理器利用無序執行來避免浪費之指令週期及降低之處理器處理量。然而,如上文所闡釋,無序執行可能不可行,此係因為一些用戶端發出有序異動請求且沒有能力處置無序異動回應。因此,一些處理器可使用用戶端與記憶體子系統之間的一橋接器以接受有序請求但支持由記憶體子系統之無序執行。
一些橋接器增加有序至無序處理期間的延遲。此等及其他橋接器需要相對較大之一重新排序緩衝器。例如,工程師通常對重新排序緩衝器設定大小以儲存最大數目個可行的未處理異動請求。
相比而言,用於一低延遲橋接之所描述系統及技術支持具有最小或至少減少之延遲之有序異動請求之無序執行。當其接收與有序異動請求相關聯之異動回應時,橋接器可發送一第一異動回應而不將其儲存於一重新排序緩衝器中。類似地,橋接器可判定下一異動回應是否可用於發送至各自用戶端。所描述之低延遲橋接器對處理器處理量增加最小延遲,此係因為通常僅當在主回應之前接收對一有序異動請求之一二次回應時才增加延遲。橋接器亦可藉由將對應於一連結表之一頭(或頭指標)之異
動回應發送至各自用戶端而不緩衝用於一頭元素之資料,從而使用一相對較小重新排序緩衝器來處理來自用戶端之異動請求。
作為一非限制性實例,一設備或一記憶體子系統包含一記憶體控制器及一橋接器。該記憶體控制器可操作地連接至一或多個記憶體(例如,RAM)及該橋接器。橋接器可操作地連接至一或多個用戶端。記憶體控制器可處理來自該等用戶端之異動請求以存取記憶體中之資料。橋接器可自一第一用戶端接收包含待有序返回之異動請求之異動請求。橋接器亦可自記憶體控制器接收與對應異動請求相關聯之異動回應。該等異動回應待由橋接器有序返回至第一用戶端。回應於接收到一第一異動回應,橋接器可將與該第一異動回應相關聯之資料發送至第一用戶端且略過將該資料儲存於重新排序緩衝器中。
此實例僅為用以支持無序執行以提高一處理器之處理量或減少橋接之資源要求之一低延遲橋接之一個圖解說明。貫穿本文件描述其他實例性組態及方法。本文件描述用於用以支持無序執行之所描述低延遲橋接之額外實例性方法、組態及組件。
圖1繪示其中可實施用於用以支持無序執行之一低延遲橋接116之系統及技術之一使用者裝置102之一實例性裝置圖100。使用者裝置102可包含為清楚起見自圖1省略之額外組件及介面。
使用者裝置102可為各種各樣的消費性電子裝置。作為非限制性實例,使用者裝置102可為一行動電話102-1、一平板電腦裝置102-2、一膝上型電腦102-3、一桌上型電腦102-4、一電腦化手錶102-5、一可穿戴裝置102-6、一可攜式視訊遊戲控制台102-7或一語音助理系統102-
8。
使用者裝置102可包含用於經由無線網路通信之一或多個射頻(RF)收發器104。使用者裝置102可將RF收發器104及支持電路系統(例如,天線、前端模組、放大器)調諧至由各種通信標準定義之一或多個頻帶。
使用者裝置102亦包含一SoC 106。SoC 106通常將使用者裝置102之若干組件(包含一中央處理單元、記憶體及輸入及輸出埠)整合至一單個晶片中。SoC 106可包含一單個核心或多個核心。在所描繪實施方案中,SoC 106包含一或多個用戶端108及一記憶體子系統110。SoC 106可包含其他組件,包含通信單元(例如,數據機)、輸入/輸出控制器及系統介面。
用戶端108提供讀取或寫入資料至記憶體子系統110之隨機存取記憶體(RAM)112之異動請求。作為非限制性實例,用戶端108可包含一顯示系統、一圖形處理單元、一中央處理單元、一通信單元、輸入/輸出控制器及SoC 106之系統介面。
記憶體子系統110包含RAM 112、一記憶體控制器114及橋接器116。RAM 112係用以儲存用戶端108可存取之資料之一合適儲存裝置(例如,靜態RAM(SRAM)、動態RAM(DRAM)、非揮發性RAM(NVRAM)、同步動態RAM(SDRAM))。在其他實施方案中,RAM 112可定位於SoC 106之外。
記憶體控制器114管理用戶端108至RAM 112之異動請求。記憶體控制器114可將異動請求緩衝及供應至RAM 112以增加記憶體子系統110之頻寬。特定言之,記憶體控制器114可對異動請求進行排程以改
良RAM 112與記憶體控制器114之間的一介面之頻寬。記憶體控制器114可包含硬體、韌體、軟體或其等之一組合。
橋接器116可分析異動請求且識別一特定用戶端108之異動請求之重新排序程度。橋接器116可使用一緩衝器118來暫時儲存用戶端108之異動請求或異動回應。藉由使用重新排序緩衝器118執行此動態重新排序,橋接器116可減少重新排序緩衝器118之緩衝空間以支持有序執行。以此方式,橋接器116可最小化所引入之延遲。橋接器116可包含硬體、韌體、軟體或其等之一組合。
一組構(圖1中未繪示)經由各自虛擬通道可操作地連接至用戶端108。該組構可將異動請求自用戶端108轉送至記憶體控制器114。在一些實施方案中,組構係一多工器。橋接器116可在組構中、在任何或所有用戶端108中實施,作為SoC 106中之一獨立組件,或作為SoC 106之外之一獨立組件實施。
使用者裝置102亦包含電腦可讀儲存媒體(CRM)120。CRM 120係用以儲存使用者裝置102之裝置資料之一合適儲存裝置(例如,隨機存取記憶體(RAM)、靜態RAM(SRAM)、動態RAM(DRAM)、非揮發性RAM(NVRAM)、唯讀記憶體(ROM)、快閃記憶體)。裝置資料可包含一作業系統、一或多個應用程式、使用者資料及多媒體資料。在其他實施方案中,CRM 120可儲存SoC 106之作業系統及一應用程式子集、使用者資料及多媒體資料。
作業系統通常管理使用者裝置102之硬體及軟體資源且提供常用服務。作業系統及應用程式通常可由SoC 106執行以實現與使用者裝置102之通信及使用者互動,此可需要存取記憶體子系統110之RAM
112中之資料。
圖2繪示其中可實施用於用以支持無序執行之低延遲橋接之系統及技術之SoC 106之一實例性裝置圖200。SoC 106及記憶體子系統110可包含圖2中未繪示之額外組件。
SoC 106包含多個用戶端108及記憶體子系統110。在所描繪實施方案中,用戶端108包含一用戶端A 108-1、一用戶端B 108-2及一用戶端C 108-3。SoC 106可包含更少或額外用戶端108。在此實例中,用戶端108定位於記憶體子系統110之外。在其他實施方案中,用戶端108或用戶端108之一部分可定位於記憶體子系統110中。
如上文所描述,用戶端108可提供讀取或寫入資料至RAM 112之異動請求。一或多個用戶端108可將有序請求202及無序請求204提供至記憶體子系統110。有序請求202表示通常必須以循序順序返回之異動請求。無序請求204表示通常可以任何順序執行且無需以循序順序返回之異動請求。在此實例中,用戶端A 108-1之異動請求包含有序請求202及無序請求204。儘管未繪示,但用戶端B 108-2可僅提供有序請求202,且用戶端C 108-3可僅提供無序請求204。
記憶體子系統110包含RAM 112、記憶體控制器114及橋接器116。RAM 112包含至少一個儲存裝置。在所描繪實施方案中,RAM 112包含兩個儲存裝置:一SDRAM 206-1及一SDRAM 206-2。SDRAM 206-1及SDRAM 206-2可儲存用於用戶端108之資料或可由用戶端108存取之資料。SDRAM 206-1及SDRAM 206-2可操作地連接至記憶體控制器114。
記憶體控制器114可包含一緩衝器208。緩衝器208暫時儲
存用戶端108之異動請求。緩衝器208或記憶體控制器114之另一組件亦可發送異動請求至SDRAM 206-1及SDRAM 206-2以增加記憶體介面處之頻寬。記憶體控制器114可包含圖2中未繪示之額外組件。
橋接器116可包含重新排序緩衝器118及一控制器210。重新排序緩衝器118可暫時儲存用戶端108之有序請求202或自記憶體控制器114無序接收之回應。橋接器116可使用控制器210分析來自一特定用戶端108之異動請求且判定彼等異動請求可能之重新排序程度。以此方式,橋接器116可將其對重新排序緩衝器118中之緩衝空間之使用限於支持特定用戶端108之有序程度之所需。另外,藉由直接傳遞無序請求204及有序請求202之可無序實行之部分,橋接器116之控制器210減少記憶體子系統110在實行異動時之延遲。
本文件參考圖3更詳細描述記憶體子系統110之操作,明確言之橋接器116及控制器210之操作。
此章節繪示具有用以支持無序執行(其可單獨地或全部或部分一起發生)之一低延遲橋接之一基於硬體之記憶體子系統之一實例性組態。為便於閱讀,此章節關於一圖式描述該實例性組態。
圖3繪示具有用以支持無序執行之一低延遲橋接之記憶體子系統110之一實例性圖式300。記憶體子系統110可包含圖3中未繪示之額外組件,包含重新排序緩衝器118及控制器210。記憶體子系統110提供用以最小化在提供來自用戶端108之異動請求之無序執行時的延遲之一硬體實施方案。記憶體子系統110亦提供最小化橋接器116之重新排序緩衝器118(圖3中未繪示)之大小之一硬體實施方案。以此方式,橋接器116可
增加SoC 106之處理量。
類似於圖2,記憶體子系統110包含一或多個RAM 112(例如,SDRAM 206-1及SDRAM 206-2)、記憶體控制器114、橋接器116及一或多個用戶端108(例如,用戶端A 108-1、用戶端B 108-2、用戶端C 108-3)。記憶體子系統110亦包含一組構308。用戶端108經由內部匯流排可操作地連接至組構308。本文件將內部匯流排稱為虛擬通道302。各虛擬通道302可被指派一唯一識別。
在所描繪實施方案中,用戶端A 108-1經由虛擬通道302-1可操作地連接至組構308。用戶端B 108-2經由虛擬通道302-2可操作地連接至組構308,且用戶端C 108-3經由虛擬通道302-3可操作地連接至組構308。
組構308經由內部匯流排304可操作地連接至記憶體控制器114。組構308經由內部匯流排304將來自用戶端108之記憶體異動發送至記憶體控制器114。記憶體控制器114將異動請求暫時儲存於緩衝器208(圖3中未繪示)中。
記憶體控制器114經由內部匯流排306可操作地連接至SDRAM 206。在所描繪實施方案中,記憶體控制器114分別經由內部匯流排306-1及306-2可操作地連接至SDRAM 206-1及206-2。記憶體控制器114經由各自內部匯流排306將異動請求供應至SDRAM 206。
橋接器116可使用重新排序緩衝器118暫時儲存用戶端108之有序請求202。橋接器116可分析來自一特定用戶端108之異動請求且判定彼等異動請求可能之重新排序程度。異動請求之分析係參考圖4更詳細描述。以此方式,重新排序緩衝器118可將其對緩衝空間之使用限於支持
特定用戶端108之有序程度之所需。另外,藉由直接傳遞無序請求204及有序請求202之可無序實行之部分,橋接器116減少記憶體子系統110在實行異動時之延遲。
在操作中,橋接器116可處理來自用戶端108之請求及來自記憶體子系統110之回應以提高SoC 106之處理量。由橋接器116對異動請求之處理係參考圖6更詳細描述。由橋接器116對異動回應之處理係參考圖7更詳細描述。
如圖3中所描繪,記憶體子系統110可在硬體中實施橋接器116。在其他實施方案中,異動請求之無序執行可至少某一部分在內核級或一驅動器級實施。
圖4繪示用以支持無序執行之所描述低延遲橋接之一實例性連結表結構402。圖4之橋接器可為圖1至圖3之橋接器116。
橋接器116可接收讀取請求(例如,讀取請求404及讀取請求406)。具有相同請求ID(ARID)之讀取請求需要回應以相同順序到達。例如,讀取請求404包含讀取請求404-1、404-2及404-3。讀取請求404-1、404-2及404-3具有如由連結表條目402-1指示之對應於「X」之一ARID。類似地,讀取請求406包含讀取請求406-1、406-2、406-3、406-4及406-5,其等具有如由連結表條目402-2指示之對應於「Y」之一ARID。具有不同ARID之讀取請求可具有重新排序之回應。與具有相同ARID之讀取請求相關聯之回應係有序返回至對應用戶端108。
橋接器116可維持連結表402以追蹤讀取請求及對其對應之回應進行排序。連結表402中之條目之數目通常等於可操作地連接至記憶體子系統110及橋接器116之用戶端之數目。
在其接收一異動請求(例如,讀取請求404-1)時,橋接器116針對一位元旗標檢查相關聯ARID以判定是否存在具有相同ARID之一未決讀取請求404。若找到一匹配,則橋接器116將當前讀取請求(例如,讀取請求404-2)附至給定ARID之連結表條目(例如,連結表條目402-1)。例如,若橋接器116在先前接收讀取請求404-1之後接收讀取請求404-2,則其將讀取請求404-2附至與X之ARID相關聯之連結表條目402-1。若未找到一匹配,則橋接器116將讀取請求404指派至與讀取請求404相關聯之一新連結表條目。
圖5-1及圖5-2繪示與用於用以支持無序執行之一低延遲橋接之一異動請求500及一異動回應508相關聯之實例性資料。圖4之橋接器可為圖1至圖3之橋接器116。
如圖5-1中所繪示,橋接器116可接收異動請求(REQ)500(例如,讀取請求404及讀取請求406)。異動請求500可包含所請求之資料之一請求ID(ARID)及一位址。為在可自記憶體控制器無序返回回應時處理來自用戶端之有序請求,橋接器116可產生用於各異動請求之一或多個變數或與各異動請求相關聯之資料。此等值之實例係一ID旗標(IDF)502、一請求佇列號(RQN)504及一請求佇列元素(RQE)506。異動請求500或相關聯資料可包含圖5-1中未繪示之額外內容。
ID旗標502係異動請求500之請求ID(ARID)之一旗標。ID旗標502通常係一1位元旗標。ID旗標502可在重設時初始化且在重設之後將所有位元設定為零。
對於各傳入請求ID(ARID),橋接器116儲存異動請求500之請求佇列號504。請求佇列號504指示具有相同ARID之一組異動請求內
之異動請求500之一序列編號(例如,排序)。橋接器116使用請求佇列號504來判定與異動請求500相關聯之一異動回應508的排序。請求佇列號504對各ARID提供一運行計數器。請求佇列號504的深度可等於2之讀取資料緩衝器(RDB)元素512的深度次方(例如,2^(RDB深度位元))。用於請求佇列號504之計數器可自零運行至其寬度減一(例如,2^(RDB深度位元)-1)。
橋接器116將與異動請求500有關之背景內容儲存於請求佇列元素506中。橋接器116通常僅儲存用於對異動回應508重新排序所需之背景內容且可省略其他背景內容以減少記憶體需求。在實例性實施方案中,橋接器未將任何連結表之頭或第一元素儲存至重新排序緩衝器118中,以減少延遲或降低儲存需求(或兩者)。
如圖5-2中所繪示,橋接器116可將異動回應(RSP)508傳輸至各自用戶端。傳輸回應508可包含經存取之ARID或位址及針對請求擷取之資料。為處理無序回應,橋接器116可產生一回應序列號(RSN)510及一讀取資料緩衝器(RDB)元素512。傳輸回應508可包含圖5-2中未展示之額外內容。
回應序列號510指示具有相同ARID之一組異動回應內之異動回應508之一序列編號。橋接器116使用回應序列號510來判定異動回應508之排序。回應序列號510對各ARID提供一運行計數器。回應序列號510的深度等於2之讀取資料緩衝器(RDB)元素512的深度次方(例如,2^(RDB深度位元))。用於回應序列號510之計數器可自零運行至其寬度減一(例如,2^(RDB深度位元)-1)。
橋接器116將對應於與異動回應508有關之讀取資料的讀取
資料緩衝器元素512儲存於重新排序緩衝器118中。橋接器116通常僅儲存與經重新排序之異動回應508相關聯的讀取資料。未將任何連結表之頭或第一元素儲存至重新排序緩衝器118中。橋接器116檢查回應序列號510以識別傳入異動回應508是否係一連結表之頭或第一回應。
圖6繪示用以支持無序執行之一低延遲橋接回應於一異動請求之實例性操作600之一流程圖。操作600係在下文在圖1至圖3之橋接器116的背景內容中進行描述。操作600可係以不同於圖6中所繪示之順序之一順序執行或用額外或更少操作執行。
在602,橋接器116接收一異動請求。例如,用戶端A 108-1可發送一讀取請求以存取SDRAM 206-1中之資料。
在604,橋接器116針對一位元旗標(IDF)檢查異動請求之一請求ID(ARID)以判定是否存在具有相同請求ID之一未決異動請求。例如,橋接器116可檢查與請求ID相關聯之ID旗標是否等於1(例如,IDF[ARID]==1)或與一組有序異動請求中之第一異動請求相關聯之另一值。
在606,若未找到一ARID匹配,則橋接器116設定位元旗標(IDF)之值且設定請求ID(ARID)之值(例如,輸出ID={1,ARID,0})。
在608,操作600結束。在610,若找到一ARID匹配,則橋接器116檢查ID管理器(IDM)(例如,控制器210)中之一自由ID(例如,自由空間)之可用性。若傳出異動請求(例如,發送至記憶體控制器114之經接收讀取請求)並非一給定連結表之頭或第一項,則IDM將自由ID指派至該等傳出異動請求。自由ID可表示一特定連結表內之異動請求之一唯一ID。
在612,若一自由ID不可用,則橋接器116等待一自由ID。例如,若沒有自由ID可用,則停止異動請求。
在614,若一自由ID可用,則橋接器116判定連結表是否在同一週期中被解除分配。
在616,若連結表未在同一週期中被解除分配,則橋接器116自IDM選擇一ID。橋接器116將當前異動請求附至給定ARID之連結表條目且遞增地增加請求佇列號(RQN)(例如,RQN[ARID]=RQN[ARID]+1)。與當前異動請求有關之背景內容或資料係儲存於請求佇列元素(RQE)中(例如,RQE[IDM_ID]={curr_seq_num,prev_tail_ptr,1})。另外,設定輸出ID(例如,輸出ID={0,ARID,IDM_ID})。在完成時,橋接器116繼續進行至操作608且操作600結束。
若連結表未在同一週期中被解除分配,則橋接器116執行操作606。明確言之,橋接器116設定位元旗標(IDF)及請求ID(ARID)之值(例如,輸出ID={1,ARID,0})。
圖7繪示用以支持無序執行之一低延遲橋接回應於一異動回應之實例性操作700之一流程圖。操作700在下文在圖1至圖3之橋接器116之背景內容中進行描述。操作700可以不同於圖7中所繪示之順序之一順序執行或用額外或更少操作執行。
在702,橋接器116接收一異動回應。例如,記憶體控制器114可自旨在用於用戶端A 108-1之SDRAM 206-1發送一讀取回應。
在704,橋接器116判定回應序列號(RSN)是否等於1(例如,RSN[MSB]==1?)。例如,橋接器116判定異動回應是否係連結表之頭或第一回應。橋接器116亦可判定異動回應是否係連結表之待發送至用戶
端A 108-1之下一回應。回應序列號指示異動回應待返回至用戶端A 108-1所依之一順序。
在706,若RSN不等於1,則橋接器116將異動回應之資料寫入至重新排序緩衝器118。橋接器116亦可將與RSN相關聯之條目標記為可用。
在708,操作700結束。
在710,若RSN等於1,則橋接器116發送異動回應而不將其儲存於重新排序緩衝器118中。例如,異動回應可經發送至用戶端A 108-1且避免異動回應之儲存(例如,未緩衝)。
在712,橋接器116使回應計數器遞增1。
在714,橋接器116判定連結表中之下一條目是否可用。若下一條目不可用,則操作700在操作708結束。
在716,若連結表中之下一條目可用,則橋接器116自重新排序緩衝器118讀取回應資料且將回應發送至對應用戶端。橋接器116亦可使回應計數器遞增1。橋接器116接著重複操作714以檢查連結表中之下一條目是否可用。
圖8係繪示用以支持無序執行之一低延遲橋接之實例性操作800之一流程圖。操作800係在圖1至圖7之記憶體子系統110之背景內容中進行描述。操作800可以一不同順序執行或用額外或更少操作執行。
在802,藉由一橋接器接收來自一或多個用戶端之一第一用戶端之多個異動請求。該橋接器可以可操作地連接至一設備之一記憶體控制器且包含一重新排序緩衝器。該記憶體控制器可以可操作地連接至一
或多個記憶體且處理來自一或多個用戶端之異動請求以存取該一或多個記憶體中之資料。例如,設備可為包含具有記憶體子系統110之SoC 106之使用者裝置102。設備亦可為嵌入於使用者裝置102中之SoC 106。記憶體子系統110包含可操作地連接至RAM 112之記憶體控制器114。記憶體控制器114可處理來自用戶端108之包含有序請求202及無序請求204之異動請求以存取RAM 112中之資料。記憶體子系統110亦包含可操作地連接至記憶體控制器114及用戶端108之包含重新排序緩衝器118之橋接器116。橋接器116可自用戶端A 108-1接收異動請求。
在804,可自記憶體控制器接收多個異動回應。各異動回應係與一對應異動請求相關聯且待由橋接器有序返回至第一用戶端。例如,橋接器116可自記憶體控制器114接收異動回應。各異動回應係與一對應異動請求相關聯。橋接器116將異動回應有序返回至用戶端A 108-1。
在806,回應於接收到一第一異動回應,將與該第一異動回應相關聯之資料發送至第一用戶端。資料係由橋接器發送且略過重新排序緩衝器中之儲存。例如,回應於接收到多個異動回應之一第一異動回應,橋接器116將與該第一異動回應相關聯之資料發送至用戶端A 108-1且略過將資料儲存於重新排序緩衝器118中。
橋接器116可根據指派至異動回應之回應序列號將多個異動回應傳輸至用戶端A 108-1。回應序列號指示異動回應待返回至用戶端A 108-1所依之一順序。回應於自記憶體控制器114接收各異動回應,橋接器116可判定與該異動回應相關聯之一回應序列號。回應於對應於異動回應之回應序列號為第一(例如,等於1)且為一連結表之頭元素或第一異動回應,橋接器116可將與異動回應相關聯之資料發送至用戶端A 108-1。回
應於不對應於異動回應之回應序列號為第一或連結表之頭條目,橋接器116可將與異動回應相關聯之資料寫入至重新排序緩衝器118且將回應序列號標記為可用於發送至用戶端A 108-1。基於重新排序緩衝器118中不存在一相關無序異動請求,橋接器116亦可將與第一異動回應相關聯之資料發送至用戶端A 108-1而不將資料儲存於重新排序緩衝器118中。
回應於將第一異動回應發送至用戶端A 108-1,橋接器116可判定一第二異動回應是否可用於發送至用戶端A 108-1,其中對應於該第二異動回應之一回應序列號為第二(例如,等於2)。回應於判定第二異動回應可用於發送至用戶端A 108-1,橋接器116可自重新排序緩衝器118讀取與第二異動回應相關聯之資料。橋接器116接著可將與第二異動回應相關聯之資料發送至用戶端A 108-1且使一回應計數器值遞增1。該回應計數器值具有遞增地增加(例如,自1)且指示發送至用戶端A 108-1之下一異動回應之一值。回應序列號及回應計數器值係與指示由橋接器116有序返回之一組異動請求之一請求識別(ARID)相關聯。
在其他實施方案中且回應於自記憶體控制器114接收各異動回應,橋接器116可判定與該異動回應相關聯之一回應序列號。橋接器可判定指示發送至用戶端A 108-1之下一異動回應之一回應計數器值。該回應計數器值遞增地增加(例如,自1)。回應於回應序列號等於回應計數器值,橋接器116可將與異動回應相關聯之資料發送至用戶端A 108-1。回應於回應序列號不等於回應計數器值,橋接器116可將與異動回應相關聯之資料寫入至重新排序緩衝器118且將回應序列號標記為可用於發送至用戶端A 108-1。
回應於將第一異動回應發送至用戶端A 108-1,橋接器116
可使回應計數器值遞增1。橋接器116接著可判定具有等於回應計數器值之一回應序列號之另一異動回應是否可用於發送至用戶端A 108-1。回應於判定具有等於回應計數器值之回應序列號之另一異動回應可用於發送至用戶端A 108-1,橋接器116可自重新排序緩衝器118讀取與另一異動回應相關聯之資料。橋接器116接著可將與另一異動回應相關聯之資料發送至用戶端A 108-1且使回應計數器值遞增1。
回應於自用戶端A 108-1接收一第一異動請求,橋接器116可判定與該第一異動請求相關聯之一請求識別。橋接器116接著可判定該請求識別是否匹配在記憶體子系統110中未決之另一異動請求之請求識別。回應於請求識別匹配在記憶體子系統110中未決之另一異動請求之請求識別之一判定,橋接器116可將第一異動請求附至與請求識別相關聯之一連結表。橋接器116亦可判定一回應序列號是否可用於第一異動請求。回應於一回應序列號可用於第一異動請求之一判定,橋接器116可將一第一回應序列號指派至第一異動請求。該第一回應序列號可具有遞增地大於另一異動請求之回應序列號之一值之一值。回應於一回應序列號不可用於第一異動請求之一判定,橋接器116可停止第一異動請求之執行直至一回應序列號可用。
回應於請求識別不匹配在記憶體子系統110中未決之另一異動請求之請求識別之一判定,橋接器116可將一值指派至與第一異動請求相關聯之請求識別之一識別旗標。該識別旗標可為與第一異動請求相關聯之請求識別之一1位元旗標。識別旗標可經初始化且在由橋接器116重設之後改變至零位元。
圖9繪示可實施用以支持無序執行之所描述低延遲橋接之態樣之一實例性SoC 900。SoC 900可體現為任何類型之使用者裝置102、使用者裝備、設備、其他裝置或如參考圖1至圖8所描述之系統或在其等內體現以實施所描述低延遲橋接之態樣。儘管參考基於晶片之封裝進行描述,但圖9中所繪示之組件亦可體現為其他系統或組件組態,諸如一FPGA、ASIC、特定應用標準產品(ASSP)、數位信號處理器(DSP)、複雜可程式化邏輯裝置(CPLD)、系統級封裝(SiP)、堆疊式封裝(PoP)、處理及通信晶片組、通信共處理器、感測器共處理器或類似者。
在此實例中,SoC 900包含一或多個應用程式處理器902(例如,處理器核心),該一或多個應用程式處理器902處理各種電腦可執行指令以控制SoC 900之操作及實現用於所描述低延遲橋接(例如,橋接器116)之技術。替代性地或此外,SoC 900可用結合處理及控制電路(圖9中未繪示)實施之硬體、韌體或固定邏輯電路系統之任一者或組合來實施。儘管未展示,但SoC 900亦可包含耦合系統內之各種組件之一匯流排、互連件、縱橫式連接件(crossbar)或組構。
SoC 900亦包含類似於或相同於參考圖1至圖8所描述之記憶體子系統110之一記憶體子系統904。記憶體子系統904包含記憶體906(例如,電腦可讀儲存媒體),諸如實現永久性或非暫時性資料儲存且因此不包含暫時性信號或載波之一或多個記憶體電路。記憶體906之實例包含RAM、非揮發性記憶體(例如,ROM、EPROM、EEPROM等)或快閃記憶體。記憶體906提供對系統資料908,以及韌體910、應用程式912及與SoC 900之操作態樣有關之任何其他類型之資訊或資料的資料儲存。例如,韌體910可維持為在記憶體906內之一作業系統(例如,即時OS)之處
理器可執行指令且可在應用程式處理器902上執行。
應用程式912可包含一系統管理器,諸如一控制應用程式、軟體應用程式、信號處理及控制模組、原生於一特定系統之程式碼、一抽象模組或手勢模組等等之任何形式。記憶體906亦可儲存用於實施所描述低延遲橋接之態樣之系統組件或公用程式。
記憶體子系統904亦包含一記憶體控制器114及根據所描述低延遲橋接之一或多項態樣實施之橋接器116。通常,記憶體控制器114及橋接器116耦合於應用程式處理器902與SoC 900之功能區塊(例如,用戶端108)之間以實現橋接器116之所描述技術及方法。在此實例中,SoC 900亦包含各種功能區塊或處理器914至926,其等之任一者可實施為向記憶體子系統904發出有序或無序異動請求以供如本文中所描述之橋接器116處理之一用戶端108。
如圖9中所展示,SoC 900包含實現系統資料908(例如,經接收資料、正接收之資料、經排程用於廣播之資料、封包化之資料或類似者)之有線或無線通信之通信收發器914及一無線數據機916。在一些態樣中,無線數據機916係可組態以根據各種通信協定或在不同頻帶中通信之一多模式多頻帶數據機或基頻處理器。無線數據機916可包含用於與收發器電路系統(例如,RF收發器104)進行經編碼或經調變信號通信之一收發器介面(未展示)。
SoC 900可包含一或多個資料輸入918,可經由該一或多個資料輸入918接收任何類型之資料、媒體內容或輸入,諸如使用者輸入、使用者可選擇輸入(顯式或隱式),或自一內容或資料源接收之任何其他類型之音訊、視訊或影像資料。替代性地或此外,資料輸入918可包含各種
資料介面,該等資料介面可實施為一串列或平行介面、一無線介面、一網路介面之任一或多者,且實施為實現與其他裝置或系統之通信之任何其他類型之通信介面。
SoC 900亦包含實現其他功能性之額外處理器或共處理器(例如,圖1至圖8之用戶端108),諸如一圖形處理器920、音訊處理器922及影像感測器處理器924。圖形處理器920可呈現與SoC 900之一使用者介面、作業系統或應用程式相關聯之圖形內容。在一些情況中,音訊處理器922編碼或解碼音訊資料及信號(諸如與語音呼叫或經編碼音訊資料相關聯之音訊信號及資訊)用於回放。影像感測器處理器924可耦合至一影像感測器且提供影像資料處理、視訊擷取及其他視覺媒體調節及處理功能。SoC亦可包含一感測器介面926。感測器介面926使SoC 900能夠自各種感測器(諸如電容及運動感測器)接收資料。
在以下章節中,提供實例。
實例1:一種設備,其包括:一記憶體控制器,其可操作地連接至一或多個記憶體,該記憶體控制器經組態以處理來自一或多個用戶端之異動請求以存取該一或多個記憶體中之資料;及一橋接器,其可操作地連接至該記憶體控制器及該一或多個用戶端,該橋接器包括一重新排序緩衝器且經組態以:自該一或多個用戶端之一第一用戶端接收多個異動請求;自該記憶體控制器接收多個異動回應,各異動回應與該多個異動請求之一對應異動請求相關聯,該多個異動回應由該橋接器有序返回至該第一用戶端;及回應於接收到該多個異動回應之一第一異動回應,略過將與該第一異動回應相關聯之資料儲存於該重新排序緩衝器中且將該資料發送
至該第一用戶端。
實例2:如實例1之設備,其中該橋接器進一步經組態以根據指派至該多個異動回應之回應序列號將該多個異動回應傳輸至該第一用戶端,該等回應序列號指示該多個異動回應待返回至該第一用戶端所依之一順序。
實例3:如實例1之設備,其中回應於自該記憶體控制器接收該多個異動回應之各異動回應,該橋接器進一步經組態以:判定與該異動回應相關聯之一回應序列號;回應於對應於該異動回應之該回應序列號為第一,將與該異動回應相關聯之資料發送至該第一用戶端,該異動回應為該第一異動回應;及回應於不對應於該異動回應之該回應序列號為第一,將與該異動回應相關聯之資料寫入至該重新排序緩衝器且將該回應序列號標記為可用於發送至該第一用戶端。
實例4:如實例3之設備,其中回應於將該第一異動回應發送至該第一用戶端,該橋接器進一步經組態以:判定一第二異動回應是否可用於發送至該第一用戶端,其中對應於該第二異動回應之一回應序列號為第二;及回應於該第二異動回應可用於發送至該第一用戶端之一判定:自該重新排序緩衝器讀取與該第二異動回應相關聯之資料;將與該第二異動回應相關聯之該資料發送至該第一用戶端;及使一回應計數器值遞增1,該回應計數器值具有遞增地增加之一值且指示發送至該第一用戶端之下一異動回應。
實例5:如實例1之設備,其中回應於自該記憶體控制器接收該多個異動回應之各異動回應,該橋接器進一步經組態以:判定與該異動回應相關聯之一回應序列號;判定一回應計數器值,該回應計數器值具
有遞增地增加之一值且指示發送至該第一用戶端之下一異動回應;回應於該回應序列號等於該回應計數器值,將與該異動回應相關聯之資料發送至該第一用戶端;及回應於該回應序列號不等於該回應計數器值,將與該異動回應相關聯之資料寫入至該重新排序緩衝器且將該回應序列號標記為可用於發送至該第一用戶端。
實例6:如實例5之設備,其中回應於將該異動回應發送至該第一用戶端,該橋接器進一步經組態以:使該回應計數器值遞增1;判定具有等於該回應計數器值之一回應序列號之另一異動回應是否可用於發送至該第一用戶端;及回應於具有等於該回應計數器值之該回應序列號之該另一異動回應可用於發送至該第一用戶端之一判定:自該重新排序緩衝器讀取與該另一異動回應相關聯之資料;將與該另一異動回應相關聯之該資料發送至該第一用戶端;及使該回應計數器值遞增1。
實例7:如實例4至6中任一項之設備,其中該回應序列號及該回應計數器值係與一請求識別相關聯,該請求識別指示待由該橋接器有序返回之一組異動請求。
實例8:如實例1至7中任一項之設備,其中回應於自該第一用戶端接收一第一異動請求,該橋接器進一步經組態以:判定與該第一異動請求相關聯之一請求識別;判定該請求識別是否匹配在該記憶體子系統中未決之另一異動請求之該請求識別;回應於該請求識別匹配在該記憶體子系統中未決之另一異動請求之該請求識別之一判定,將該第一異動請求附至與該請求識別相關聯之一連結表;及回應於該請求識別不匹配在該記憶體子系統中未決之另一異動請求之該請求識別之一判定,將一值指派至與該第一異動請求相關聯之該請求識別之一識別旗標。
實例9:如實例8之設備,其中回應於該請求識別匹配在該記憶體子系統中未決之另一異動請求之該請求識別之該判定,該橋接器進一步經組態以:判定一回應序列號是否可用於該第一異動請求;及回應於一回應序列號可用於該第一異動請求之一判定,將一第一回應序列號指派至該第一異動請求,該第一回應序列號具有遞增地大於該另一異動請求之該回應序列號之一值之一值。
實例10:如實例9之設備,其中回應於一回應序列號不可用於該第一異動請求之一判定,該橋接器進一步經組態以停止該第一異動請求之執行直至一回應序列號可用。
實例11:如實例8至10中任一項之設備,其中該識別旗標包括與該第一異動請求相關聯之該請求識別之一1位元旗標。
實例12:如實例11之設備,其中該識別旗標經初始化且在由該橋接器重設之後改變至零位元。
實例13:如實例1至12中任一項之設備,其中該橋接器進一步經組態以基於該重新排序緩衝器中不存在一相關無序異動請求,將與該第一異動回應相關聯之該資料發送至該第一用戶端,而不將該資料儲存於該重新排序緩衝器中。
實例14:如實例1至13中任一項之設備,其中該設備包括經嵌入於一使用者裝置中之一系統單晶片(SoC)。
實例15:如實例14之設備,其中該使用者裝置包括一行動電話、一膝上型電腦、一平板電腦、一可攜式視訊遊戲控制台,或一可穿戴裝置。
實例16:如實例1至12中任一項之設備,其中該記憶體控
制器包括一特定應用積體電路(ASIC)記憶體控制器。
實例17:一種方法,其包括:藉由一橋接器,自一或多個用戶端之一第一用戶端接收多個異動請求,該橋接器經可操作地連接至該一或多個用戶端且包括一重新排序緩衝器;藉由該橋接器,自一記憶體控制器接收多個異動回應,各異動回應係與該多個異動請求之一對應異動請求相關聯,該多個異動回應待由該橋接器有序返回至該第一用戶端,該記憶體控制器經可操作地連接至一或多個記憶體,且經組態以處理來自該一或多個用戶端之異動請求以存取該一或多個記憶體中之資料;及回應於接收到該多個異動回應之一第一異動回應,略過將與該第一異動回應相關聯之資料儲存於該重新排序緩衝器中,且將該資料發送至該第一用戶端。
實例18:如實例17之方法,該方法進一步包括:根據指派至該多個異動回應之回應序列號,將該多個異動回應傳輸至該第一用戶端,該等回應序列號指示該多個異動回應待返回至該第一用戶端所依之一順序。
實例19:如實例17之方法,該方法進一步包括回應於自該記憶體控制器接收該多個異動回應之各異動回應:判定與該異動回應相關聯之一回應序列號;回應於對應於該異動回應之該回應序列號為第一,將與該異動回應相關聯之資料發送至該第一用戶端,該異動回應為該第一異動回應;及回應於不對應於該異動回應之該回應序列號為第一,將與該異動回應相關聯之資料寫入至該重新排序緩衝器,且將該回應序列號標記為可用於發送至該第一用戶端。
實例20:如實例19之方法,該方法進一步包括回應於將該第一異動回應發送至該第一用戶端:判定一第二異動回應是否可用於發送
至該第一用戶端,其中對應於該第二異動回應之一回應序列號為第二;及回應於判定該第二異動回應可用於發送至該第一用戶端:自該重新排序緩衝器讀取與該第二異動回應相關聯之資料;將與該第二異動回應相關聯之該資料發送至該第一用戶端;及使一回應計數器值遞增1,該回應計數器值具有遞增地增加之一值且指示發送至該第一用戶端之下一異動回應。
實例21:如實例17之方法,該方法進一步包括回應於自該記憶體控制器接收該多個異動回應之各異動回應:判定與該異動回應相關聯之一回應序列號;判定一回應計數器值,該回應計數器值具有遞增地增加之一值且指示發送至該第一用戶端之下一異動回應;回應於該回應序列號等於該回應計數器值,將與該異動回應相關聯之資料發送至該第一用戶端;及回應於該回應序列號不等於該回應計數器值,將與該異動回應相關聯之資料寫入至該重新排序緩衝器且將該回應序列號標記為可用於發送至該第一用戶端。
實例22:如實例21之方法,該方法進一步包括回應於將該異動回應發送至該第一用戶端:使該回應計數器值遞增1;判定具有等於該回應計數器值之一回應序列號之另一異動回應是否可用於發送至該第一用戶端;及回應於判定具有等於該回應計數器值之該回應序列號之該另一異動回應可用於發送至該第一用戶端:自該重新排序緩衝器讀取與該另一異動回應相關聯之資料;將與該另一異動回應相關聯之該資料發送至該第一用戶端;及使該回應計數器值遞增1。
實例23:如實例20至22中任一項之方法,其中該回應序列號及該回應計數器值係與一請求識別相關聯,該請求識別指示待由該橋接器有序返回之一組異動請求。
實例24:如實例17至23中任一項之方法,該方法進一步包括回應於自該第一用戶端接收一第一異動請求:判定與該第一異動請求相關聯之一請求識別;判定該請求識別是否匹配在該記憶體子系統中未決之另一異動請求之該請求識別;回應於判定該請求識別匹配在該記憶體子系統中未決之另一異動請求之該請求識別,將該第一異動請求附至與該請求識別相關聯之一連結表;及回應於判定該請求識別不匹配在該記憶體子系統中未決之另一異動請求之該請求識別,將一值指派至與該第一異動請求相關聯之該請求識別之一識別旗標。
實例25:如實例24之方法,該方法進一步包括回應於判定該請求識別匹配在該記憶體子系統中未決之另一異動請求之該請求識別:判定一回應序列號是否可用於該第一異動請求;及回應於判定一回應序列號可用於該第一異動請求,將一第一回應序列號指派至該第一異動請求,該第一回應序列號具有遞增地大於該另一異動請求之該回應序列號之一值之一值。
實例26:如實例9之方法,該方法進一步包括回應於判定一回應序列號不可用於該第一異動請求,停止該第一異動請求之執行直至一回應序列號可用。
實例27:如實例24至26中任一項之方法,其中該識別旗標包括與該第一異動請求相關聯之該請求識別之一1位元旗標。
實例28:如實例27之方法,其中該識別旗標經初始化且在由該橋接器重設之後改變至零位元。
實例29:如實例17至28中任一項之方法,該方法進一步包括基於該重新排序緩衝器中不存在一相關無序異動請求,將與該第一異動
回應相關聯之該資料發送至該第一用戶端而不將該資料儲存於該重新排序緩衝器中。
儘管已依特定於特徵及/或方法之語言描述用於用以支持無序執行之一低延遲橋接之各種組態及方法,但應理解,隨附發明申請專利範圍之標的並不一定限於所描述之特定特徵或方法。實情係,特定特徵及方法經揭示為用以支持無序執行之一低延遲橋接之非限制性實例。
100:裝置圖
102:使用者裝置
102-1:行動電話
102-2:平板電腦裝置
102-3:膝上型電腦
102-4:桌上型電腦
102-5:電腦化手錶
102-6:可穿戴裝置
102-7:可攜式視訊遊戲控制台
102-8:語音助理系統
104:射頻(RF)收發器
106:系統單晶片(SoC)
108:用戶端
110:記憶體子系統
112:隨機存取記憶體(RAM)
114:記憶體控制器
116:低延遲橋接/橋接器
118:緩衝器/重新排序緩衝器
120:電腦可讀儲存媒體(CRM)
Claims (15)
- 一種處理器設備,其包括:一記憶體控制器,其經可操作地連接至一或多個記憶體,該記憶體控制器經組態以處理來自一或多個用戶端之異動請求以存取該一或多個記憶體中之資料;及一橋接器,其經可操作地連接至該記憶體控制器及該一或多個用戶端,該橋接器包括一重新排序緩衝器且經組態以:自該一或多個用戶端之一第一用戶端接收多個異動請求(transaction requests);自該記憶體控制器接收多個異動回應,各異動回應係與該多個異動請求之一對應異動請求相關聯,該多個異動回應待由該橋接器有序返回至該第一用戶端;及回應於接收到該多個異動回應之一第一異動回應,略過將與該第一異動回應相關聯之資料儲存於該重新排序緩衝器中且將該資料發送至該第一用戶端。
- 如請求項1之處理器設備,其中該橋接器進一步經組態以根據經指派至該多個異動回應之回應序列號將該多個異動回應傳輸至該第一用戶端,該等回應序列號指示該多個異動回應待返回至該第一用戶端所依之一順序。
- 如請求項1之處理器設備,其中回應於自該記憶體控制器接收該多個 異動回應之各異動回應,該橋接器進一步經組態以:判定與該異動回應相關聯之一回應序列號;回應於對應於該異動回應之該回應序列號為第一,將與該異動回應相關聯之資料發送至該第一用戶端,該異動回應為該第一異動回應;及回應於不對應於該異動回應之該回應序列號為第一,將與該異動回應相關聯之資料寫入至該重新排序緩衝器且將該回應序列號標記為可用於發送至該第一用戶端。
- 如請求項3之處理器設備,其中回應於將該第一異動回應發送至該第一用戶端,該橋接器進一步經組態以:判定一第二異動回應是否可用於發送至該第一用戶端,其中對應於該第二異動回應之一回應序列號為第二;及回應於該第二異動回應可用於發送至該第一用戶端之一判定:自該重新排序緩衝器讀取與該第二異動回應相關聯之資料;將與該第二異動回應相關聯之該資料發送至該第一用戶端;及使一回應計數器值遞增1,該回應計數器值具有遞增地增加之一值且指示發送至該第一用戶端之下一異動回應。
- 如請求項1之處理器設備,其中回應於自該記憶體控制器接收該多個異動回應之各異動回應,該橋接器進一步經組態以:判定與該異動回應相關聯之一回應序列號;判定一回應計數器值,該回應計數器值具有遞增地增加之一值且指示發送至該第一用戶端之下一異動回應; 回應於該回應序列號等於該回應計數器值,將與該異動回應相關聯之資料發送至該第一用戶端;及回應於該回應序列號不等於該回應計數器值,將與該異動回應相關聯之資料寫入至該重新排序緩衝器且將該回應序列號標記為可用於發送至該第一用戶端。
- 如請求項5之處理器設備,其中回應於將該異動回應發送至該第一用戶端,該橋接器進一步經組態以:使該回應計數器值遞增1;判定具有等於該回應計數器值之一回應序列號之另一異動回應是否可用於發送至該第一用戶端;及回應於具有等於該回應計數器值之該回應序列號之該另一異動回應可用於發送至該第一用戶端之一判定:自該重新排序緩衝器讀取與該另一異動回應相關聯之資料;將與該另一異動回應相關聯之該資料發送至該第一用戶端;及使該回應計數器值遞增1。
- 如請求項4至6中任一項之處理器設備,其中該回應序列號及該回應計數器值係與一請求識別相關聯,該請求識別指示待由該橋接器有序返回之一組異動請求。
- 如請求項1至6中任一項之處理器設備,其中回應於自該第一用戶端接收一第一異動請求,該橋接器進一步經組態以: 判定與該第一異動請求相關聯之一請求識別;判定該請求識別是否匹配在該處理器設備中未決之另一異動請求之該請求識別;回應於該請求識別匹配在該處理器設備中未決之另一異動請求之該請求識別之一判定,將該第一異動請求附至與該請求識別相關聯之一連結表;及回應於該請求識別不匹配在該處理器設備中未決之另一異動請求之該請求識別之一判定,將一值指派至與該第一異動請求相關聯之該請求識別之一識別旗標。
- 如請求項8之處理器設備,其中回應於該請求識別匹配在該處理器設備中未決之另一異動請求之該請求識別之該判定,該橋接器進一步經組態以:判定一回應序列號是否可用於該第一異動請求;及回應於該回應序列號可用於該第一異動請求之一判定,將一第一回應序列號指派至該第一異動請求,該第一回應序列號具有遞增地大於該另一異動請求之該回應序列號之一值之一值。
- 如請求項9之處理器設備,其中回應於該回應序列號不可用於該第一異動請求之一判定,該橋接器進一步經組態以停止該第一異動請求之執行直至一回應序列號可用。
- 如請求項8之處理器設備,其中該識別旗標包括與該第一異動請求相 關聯之該請求識別之一1位元旗標。
- 如請求項11之處理器設備,其中該識別旗標經初始化且在由該橋接器重設之後改變至零位元。
- 如請求項1至6中任一項之處理器設備,其中該橋接器進一步經組態以基於該重新排序緩衝器中不存在一相關無序異動請求,將與該第一異動回應相關聯之該資料發送至該第一用戶端而不將該資料儲存於該重新排序緩衝器中。
- 如請求項1至6中任一項之處理器設備,其中該處理器設備包括經嵌入於一使用者裝置中之一系統單晶片(SoC)。
- 如請求項14之處理器設備,其中該使用者裝置包括一行動電話、一膝上型電腦、一平板電腦、一可攜式視訊遊戲控制台,或一可穿戴裝置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/US2021/042186 WO2023003533A1 (en) | 2021-07-19 | 2021-07-19 | Low-latency bridge to support out-of-order execution |
| WOPCT/US21/42186 | 2021-07-19 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202305606A TW202305606A (zh) | 2023-02-01 |
| TWI819428B true TWI819428B (zh) | 2023-10-21 |
Family
ID=77367479
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW110145976A TWI819428B (zh) | 2021-07-19 | 2021-12-09 | 處理器設備 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US20240320166A1 (zh) |
| EP (1) | EP4352624A1 (zh) |
| CN (1) | CN117616403A (zh) |
| TW (1) | TWI819428B (zh) |
| WO (1) | WO2023003533A1 (zh) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7096345B1 (en) * | 2003-09-26 | 2006-08-22 | Marvell International Ltd. | Data processing system with bypass reorder buffer having non-bypassable locations and combined load/store arithmetic logic unit and processing method thereof |
| US20160188501A1 (en) * | 2014-12-19 | 2016-06-30 | Sonics, Inc. | Reordering Responses in a High Performance On-Chip Network |
| US20190004878A1 (en) * | 2017-07-01 | 2019-01-03 | Intel Corporation | Processors, methods, and systems for a configurable spatial accelerator with security, power reduction, and performace features |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6615295B2 (en) * | 2000-12-26 | 2003-09-02 | Hewlett-Packard Development Company, L.P. | Relaxed read completion ordering in a system using transaction order queue |
| JP3518510B2 (ja) * | 2001-01-10 | 2004-04-12 | 日本電気株式会社 | リオーダバッファの管理方法及びプロセッサ |
| US8656117B1 (en) * | 2008-10-30 | 2014-02-18 | Nvidia Corporation | Read completion data management |
| US9740646B2 (en) * | 2014-12-20 | 2017-08-22 | Intel Corporation | Early identification in transactional buffered memory |
| WO2017196141A1 (en) * | 2016-05-12 | 2017-11-16 | Lg Electronics Inc. | Autonomous prefetch engine |
| US10282109B1 (en) * | 2016-09-15 | 2019-05-07 | Altera Corporation | Memory interface circuitry with distributed data reordering capabilities |
| US10255103B2 (en) * | 2017-04-04 | 2019-04-09 | Arm Limited | Transaction handling |
| US10628340B2 (en) * | 2018-01-18 | 2020-04-21 | Nxp Usa, Inc. | Method for reordering out of order responses from decomposed requests in bridge IP |
| US10891084B2 (en) * | 2019-03-14 | 2021-01-12 | Arm Limited | Apparatus and method for providing data to a master device |
| US11899969B1 (en) * | 2022-06-06 | 2024-02-13 | Amazon Technologies, Inc. | Re-order buffer for in-order execution of dependent write transactions |
-
2021
- 2021-07-19 WO PCT/US2021/042186 patent/WO2023003533A1/en not_active Ceased
- 2021-07-19 US US18/577,636 patent/US20240320166A1/en active Pending
- 2021-07-19 CN CN202180100474.1A patent/CN117616403A/zh active Pending
- 2021-07-19 EP EP21755866.7A patent/EP4352624A1/en active Pending
- 2021-12-09 TW TW110145976A patent/TWI819428B/zh active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7096345B1 (en) * | 2003-09-26 | 2006-08-22 | Marvell International Ltd. | Data processing system with bypass reorder buffer having non-bypassable locations and combined load/store arithmetic logic unit and processing method thereof |
| US20160188501A1 (en) * | 2014-12-19 | 2016-06-30 | Sonics, Inc. | Reordering Responses in a High Performance On-Chip Network |
| US20190004878A1 (en) * | 2017-07-01 | 2019-01-03 | Intel Corporation | Processors, methods, and systems for a configurable spatial accelerator with security, power reduction, and performace features |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2023003533A1 (en) | 2023-01-26 |
| TW202305606A (zh) | 2023-02-01 |
| US20240320166A1 (en) | 2024-09-26 |
| EP4352624A1 (en) | 2024-04-17 |
| CN117616403A (zh) | 2024-02-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111274025A (zh) | 用于在ssd中加速数据处理的系统和方法 | |
| US20240264963A1 (en) | Scatter and Gather Streaming Data through a Circular FIFO | |
| CN114662136A (zh) | 一种基于pcie通道的多算法ip核的高速加解密系统及方法 | |
| US7191262B2 (en) | High-throughput UART interfaces | |
| US20220237020A1 (en) | Self-scheduling threads in a programmable atomic unit | |
| CN117992125A (zh) | 减少用于基于存储器的通信队列的索引更新消息 | |
| US10489322B2 (en) | Apparatus and method to improve performance in DMA transfer of data | |
| TWI819428B (zh) | 處理器設備 | |
| CN116450554A (zh) | 中断处理方法、根复合体设备及电子设备 | |
| CN110413540A (zh) | 一种fpga数据缓存的方法、系统、设备及存储介质 | |
| CN109947390A (zh) | 缓冲器系统及其操作方法 | |
| US20250063107A1 (en) | Method, device and computer program product for transmitting data block | |
| CN102984599B (zh) | 基于RapidIO协议网络的视频采集传输装置及方法 | |
| CN110647355B (zh) | 数据处理器和数据处理方法 | |
| CN223582089U (zh) | 预加载控制测试系统和测试机 | |
| CN212873459U (zh) | 一种用于数据压缩存储的系统 | |
| US12475063B2 (en) | Data transmission device with FIFO circuits for reading and writing operations and method | |
| CN120803988B (zh) | 基于ROCEv2的高带宽低延迟数据处理方法 | |
| US20250251877A1 (en) | Separate command address (sca) based memory controller | |
| CN115604198B (zh) | 一种网卡控制器、网卡控制方法、设备及介质 | |
| CN111159070A (zh) | 基于ahb总线的标记压缩系统和片上系统 | |
| US20020181456A1 (en) | Switch device and data transfer system | |
| CN117743022A (zh) | 数据处理方法及设备 | |
| CN120658696A (zh) | 一种数据包发送方法、数据处理单元、主机及网卡 | |
| US20120137039A1 (en) | Information processing apparatus |