TWI760715B - 藉助於交易辨識碼之屬性來控制資料回應的方法以及系統 - Google Patents

藉助於交易辨識碼之屬性來控制資料回應的方法以及系統 Download PDF

Info

Publication number
TWI760715B
TWI760715B TW109109187A TW109109187A TWI760715B TW I760715 B TWI760715 B TW I760715B TW 109109187 A TW109109187 A TW 109109187A TW 109109187 A TW109109187 A TW 109109187A TW I760715 B TWI760715 B TW I760715B
Authority
TW
Taiwan
Prior art keywords
data
tag
attribute
identification code
master
Prior art date
Application number
TW109109187A
Other languages
English (en)
Other versions
TW202137005A (zh
Inventor
賴奇劭
Original Assignee
瑞昱半導體股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 瑞昱半導體股份有限公司 filed Critical 瑞昱半導體股份有限公司
Priority to TW109109187A priority Critical patent/TWI760715B/zh
Priority to US17/105,467 priority patent/US11269797B2/en
Publication of TW202137005A publication Critical patent/TW202137005A/zh
Application granted granted Critical
Publication of TWI760715B publication Critical patent/TWI760715B/zh

Links

Images

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
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)

Abstract

本發明提供一種藉助於一交易辨識碼之至少一屬性來控制資料回應的方法以及系統。該方法包含:將該至少一屬性連同該交易辨識碼自一或多個主裝置中之任一主裝置一併傳送至一僕裝置;以及依據該至少一屬性來判斷是否利用多個資料路徑中之一特定資料路徑將對應於該交易辨識碼的資料自該僕裝置中之一記憶裝置回應至所述任一主裝置。具體來說,該特定資料路徑係該多個資料路徑中具有最大傳輸效率的資料路徑。

Description

藉助於交易辨識碼之屬性來控制資料回應的方法以及系統
本發明係關於資料回應控制,尤指一種藉助於一交易(transaction)辨識碼之至少一屬性(attribute)來控制資料回應的方法以及系統。
在一系統中的許多傳輸介面均可配置有讀取重排序緩衝器(read re-order buffer),以容許該系統針對同時發出的多個互不相干的指令進行重排序,以達到最佳化的回應效率。然而,雖然一特定指令與其他指令互不相干(表示這些指令之間可進行重排序),該特定指令的回應資料可能會在某些情況下被上述其他指令的回應資料阻擋,從而大幅增加了資料回應的延遲時間。
因此,需要一種新穎的資料回應控制機制以及相關系統,以容許與其他指令不相干的特定指令的回應資料不會受到其他指令的回應資料阻擋,達到最佳的資料回應效率。
本發明之一目的在於提供一種藉助於一交易(transaction)辨識碼之至少一屬性(attribute)來控制資料回應的方法以及系統,以容許與其他指令不相干的特定指令的回應資料不會受到其他指令的回應資料阻擋,達到最佳的資料回應效率。
本發明至少一實施例提供一種藉助於一交易辨識碼之至少一屬性來控制資料回應的方法。該方法包含:將該至少一屬性連同該交易辨識碼自一或 多個主裝置(master device)中之任一主裝置一併傳送至一僕裝置(slave device);以及依據該至少一屬性來判斷是否利用多個資料路徑中之一特定資料路徑將對應於該交易辨識碼的資料自該僕裝置中之一記憶裝置回應至所述任一主裝置。例如,該特定資料路徑可為該多個資料路徑中具有最大傳輸效率的資料路徑。
本發明至少一實施例提供一種藉助於一交易辨識碼之至少一屬性來控制資料回應的系統。該系統包含一僕裝置以及一或多個主裝置,其中該一或多個主裝置透過一傳輸介面電路耦接至該僕裝置。該僕裝置可包含用來儲存資料的一記憶裝置,該一或多個主裝置可透過該傳輸介面電路來取得儲存於該記憶裝置中的資料。具體來說,該一或多個主裝置中之任一主裝置可將該至少一屬性連同該交易辨識碼一併傳送至該僕裝置;以及依據該至少一屬性,該僕裝置可判斷是否利用多個資料路徑中之一特定資料路徑將對應於該交易辨識碼的資料自該記憶裝置回應至所述任一主裝置。例如,該特定資料路徑係該多個資料路徑中具有最大傳輸效率的資料路徑。
本發明之實施例提供的方法及系統能在傳送一交易辨識碼時一併傳送其屬性,以供判斷是否利用一旁通路徑來最佳化資料回應的效率。相較於相關技術,本發明之實施例不會大幅地增加額外成本。因此本發明能在沒有副作用或較不會帶來副作用的情況下解決相關技術的問題。
120_1,120_n,120_N:主裝置
140:僕裝置
10,141:原子化器
20,142:讀取重排序緩衝器
30,143:記憶裝置
142A,142B:儲存區域
160:傳輸介面電路
162_1,162_N:主介面
164:僕介面
Master_Tag_ID(0),Master_Tag_ID(n),Master_Tag_ID(N):標籤辨識碼
Master_ID(0),Master_ID(n),Master_ID(N),Is_unique_ID(0),Is_unique_ID(n),Is_unique_ID(N):屬性
302~324,402~424:步驟
200:標籤辨識碼映射及讀取重排序緩衝控制器
220:控制電路
240,280:選擇電路
260:映射電路
Tag_ID:標籤辨識碼
Group_ID:群組辨識碼
W_pointer:寫入指標
R_pointer:讀取指標
cmd_index,RRB_index:索引
第1圖為依據本發明一實施例之一讀取重排序緩衝器在一讀取運作中的某些實施細節。
第2圖為依據本發明一實施例之一種藉助於一交易辨識碼之至少一屬性來控制 資料回應的系統的示意圖。
第3圖為依據本發明一實施例之一種藉助於一標籤辨識碼之至少一屬性來控制資料回應的方法的工作流程。
第4圖為依據本發明一實施例之第2圖所示之該系統中之一僕裝置在一標籤辨識碼在該系統中是唯一的情況下的某些實施細節。
第5圖為依據本發明一實施例之第2圖所示之該系統中之一僕裝置在一標籤辨識碼在該系統中不是唯一的情況下的某些實施細節。
第6圖為依據本發明一實施例之一種藉助於一標籤辨識碼之至少一屬性來控制資料回應的方法的工作流程。
第7圖為依據本發明一實施例之第2圖所示之該系統中之一僕裝置在一標籤辨識碼在該系統中是唯一的情況下的某些實施細節。
第8圖為依據本發明一實施例之第2圖所示之該系統中之一僕裝置在一標籤辨識碼在該系統中不是唯一的情況下的某些實施細節。
第1圖為依據本發明一實施例之一讀取重排序緩衝器(read re-order buffer,RRB)20在一讀取運作中的某些實施細節,其中該讀取重排序緩衝器可耦接於一原子化器(atomizer)10與一記憶裝置30之間。如第1圖所示,標示「讀取指令請求」的箭號可表示該讀取運作中讀取指令請求的方向,標示「讀取資料回應」的箭號可表示該讀取運作中讀取資料回應的方向。在記憶裝置30接收固定的突發長度(burst length)進行存取控制的情況下,原子化器10讀取帶有交易(transaction)辨識碼(identifier,ID)諸如標籤(tag)辨識碼指令,再將交易(transaction)進行截斷(chop)處理以產生具有上述固定的突發長度的多個突發截斷指令,並且賦予該多個突發截斷指令的每一者一索引諸如rrb_index,再將 帶有索引rrb_index的標籤辨識碼儲存於該讀取重排序緩衝器。記憶裝置30可讀取帶有索引rrb_index的突發截斷指令並據以回應帶有rrb_index的有效資料,以容許讀取重排序緩衝器20儲存帶有索引rrb_index的有效回應,其中記憶裝置30可用亂序(out-of-order)的方式回應資料以最佳化整體的讀取效能(例如最小化讀取延遲時間及提高動態亂序存取的使用率),而記憶裝置30的例子可包含隨機存取記憶體(random access memory,RAM)例如靜態隨機存取記憶體(static RAM,SRAM)以及動態隨機存取記憶體(dynamic RAM,DRAM)。在某些實施例中,讀取重排序緩衝器20可利用一先進先出(first in first out,FIFO)緩衝器來實施,而原子化器10可取得讀取重排序緩衝器20的底部條目的標籤諸如標幟(flag)及這個底部條目的索引(在第1圖中標示為「RRB底部條目之標幟、索引」),並且自讀取重排序緩衝器20的頂部取得包含有標籤辨識碼的有效回應(在第1圖中標示為「自RRB頂部取得有效回應(包含標籤辨識碼)」),以容許原子化器10有序地(in-order)回應帶有標籤辨識碼的資料。
在某些實施例中,記憶裝置30可用不同的突發長度來進行存取控制,因此原子化器10可使用一封裝器(wrapper)來取代,以在不對標籤辨識碼進行截斷處理的狀況下將完整的指令傳送至記憶裝置30,但本發明不限於此。為便於理解,以下實施例可用記憶裝置30以固定的突發長度進行存取控制的情況來說明。
第2圖為依據本發明一實施例之一種藉助於一交易辨識碼之至少一屬性(attribute)來控制資料回應的系統100的示意圖。如第2圖所示,系統100可包含一僕裝置140以及一或多個主裝置諸如N個主裝置120_1、...及120_N,其中N為正整數。僕裝置140可包含一原子化器141、一讀取重排序緩衝器142以及一記憶裝置143,其中原子化器10、讀取重排序緩衝器20以及記憶裝置30可分別作為第1圖所示之原子化器141、讀取重排序緩衝器142以及記憶裝置143的例 子。在本實施例中,記憶裝置143可用來儲存資料。在本實施例中,該一或多個主裝置諸如主裝置120_1、...及120_N可透過一傳輸介面電路160(例如片上網路(Network-on-Chip,NoC)或匯流排/互聯(interconnection)電路)耦接至僕裝置140,以取得儲存於記憶裝置143中的資料。例如,主裝置120_1可透過主介面162_1耦接至傳輸介面電路160,主裝置120_N可透過主介面162_N耦接至傳輸介面電路160,而僕裝置140可透過僕介面164耦接至傳輸介面電路160,但本發明不限於此。在本實施例中,主裝置120_1、...及120_N中之任一主裝置(例如主裝置120_n,其中n為1與N之間的任意整數)可將上述至少一屬性連同該交易辨識碼一併傳送至僕裝置140。例如,主裝置120_1可利用其內的主核心電路發送一交易辨識碼諸如標籤辨識碼Master_Tag_ID(0),並且利用其內的核心封裝器透過擴充欄位的方式加入標籤辨識碼Master_Tag_ID(0)的屬性Is_unique_ID(0),而主介面162_1可再透過擴充欄位的方式加入標籤辨識碼Master_Tag_ID(0)的屬性Master_ID(0);依此類推,主裝置120_N可利用其內的主核心電路發送一交易辨識碼諸如標籤辨識碼Master_Tag_ID(N),並且利用其內的核心封裝器透過擴充欄位的方式加入標籤辨識碼Master_Tag_ID(0)的屬性Is_unique_ID(N),而主介面162_N可再透過擴充欄位的方式加入標籤辨識碼Master_Tag_ID(0)的屬性Master_ID(0)。其中標籤辨識碼Master_Tag_ID(n)可表示自主裝置120_n內的主核心電路發出的交易辨識碼,屬性Is_unique_ID(n)可指出標籤辨識碼Master_Tag_ID(n)在整個系統100中是否為唯一(unique)的,而屬性Master_ID(n)則指出Master_Tag_ID(n)是自主裝置120_n發出。
詳細來說,若任兩個交易辨識碼是相同的,表示這兩個交易辨識碼必須要有序地回應對應的資料(例如依照一預定順序回應);而若這兩個交易辨識碼是相異的,表示這兩個交易辨識碼之對應的資料可進行重排序(例如不必依照上述預定順序回應)以最佳化資料回應的效率。當某個指令具有快速取得 回應資料的需求時,系統開發者可賦予這個指令一唯一的辨識碼,表示此辨識碼所對應的回應資料可被重排序,以在最小化延遲時間的情況下回應資料。
為了使僕裝置140能在不內建查找表(lookup table)的情況下判斷標籤辨識碼Master_Tag_ID(n)在系統100中是否為唯一的辨識碼,主裝置120_n可將屬性Is_unique_ID(n)連同標籤辨識碼Master_Tag_ID(n)自主裝置120_n一併傳送至僕裝置140。依據屬性Is_unique_ID(n),僕裝置140可判斷是否利用多個資料路徑中之一特定資料路徑將對應於標籤辨識碼Master_Tag_ID(n)的資料自記憶裝置143回應至主裝置120_n,其中該特定資料路徑係該多個資料路徑中具有最大傳輸效率的資料路徑。例如,當屬性Is_unique_ID(n)指出標籤辨識碼Master_Tag_ID(n)在系統100中不是唯一的(例如Is_unique_ID(n)為「0」),讀取重排序緩衝器142可自記憶裝置143接收對應於標籤辨識碼Master_Tag_ID(n)的資料,以容許這個資料以有序的方式(例如依照上述預定順序)自僕裝置140回應至主裝置120_n。又例如,當屬性Is_unique_ID(n)指出標籤辨識碼Master_Tag_ID(n)在系統100中是唯一的(例如Is_unique_ID(n)為「1」),僕裝置140可利用一旁通(bypass)路徑以將對應於標籤辨識碼Master_Tag_ID(n)的資料自記憶裝置143直接回應至主裝置120_n而避免透過讀取重排序緩衝器142來傳送。這表示對應於唯一的交易辨識碼的資料不會因為在讀取重排序緩衝器142中的其他資料尚未備妥而無法回應,從而確保唯一的交易辨識碼的資料回應效率。
第3圖為依據本發明一實施例之一種藉助於標籤辨識碼Tag_ID之至少一屬性來控制資料回應的方法的工作流程,第4圖為依據本發明一實施例之第2圖所示之僕裝置140在標籤辨識碼Tag_ID在系統100中是唯一的情況下的某些實施細節,而第5圖為依據本發明一實施例之第2圖所示之僕裝置140在標籤辨識碼Tag_ID在系統100中不是唯一的情況下的某些實施細節,其中在本實施例中標籤辨識碼Tag_ID的長度小於或等於記憶裝置140進行存取控制時的突發長度。需 注意的是,第3圖所示之工作流程只是為了說明之目的,並非本發明的限制,其中一或多個步驟可在該工作流程中被新增、刪除或修改。此外,假若可得到相同的結果,則這些步驟不一定要完全遵照第3圖所示的順序來執行。另外,標籤辨識碼Tag_ID可為第2圖所示之標籤辨識碼{Master_Tag_ID(n),Master_ID(n),Is_unique_ID(n)}的例子,其中標籤辨識碼Tag_ID的最低位元(以Tag_ID[0]表示)可為Is_unique_ID(n)的例子,而標籤辨識碼Tag_ID的其他位元(以Tag_ID[k:1]來表示)可為{Master_Tag_ID(n),Master_ID(n)}的例子。另外,讀取重排序緩衝器142可與其他相關控制電路整合在一標籤辨識碼映射及讀取重排序緩衝控制器200,尤其讀取重排序緩衝器142可包含儲存區域142A及142B,但本發明不限於此。
在步驟302中,僕裝置140可讀取帶有標籤辨識碼Tag_ID的指令。
在步驟304中,僕裝置140可判斷標籤辨識碼Tag_ID在系統100中是否為唯一的,例如依據Tag_ID[0]判斷標籤辨識碼Tag_ID在系統100中是否為唯一的。若是,進入步驟312;否則,進入步驟306。
在步驟306中,僕裝置140可檢查讀取重排序緩衝器142(例如儲存區域142A及/或142B)是否已滿。若是,表示此時無法接收指令,進入步驟308;否則,進入步驟310。
在步驟308中,由於僕裝置140(例如其內的讀取重排序緩衝器142)尚未準備好接收指令與回應對應的資料,因此流程回到步驟306進行再次確認,直到讀取重排序緩衝器142有空間為止。
在步驟310中,由於Tag_ID[0]指出標籤辨識碼Tag_ID在系統100中不是唯一的(例如Tag_ID[0]為1’b0),僕裝置140可分配讀取重排序緩衝器142的一或多個條目以儲存標籤辨識碼Tag_ID,並且標籤辨識碼映射及讀取重排序緩衝控制器200內的一控制電路220在加上填充位元後以讀取辨識碼{cmd_index, 1’b0}將該一或多個條目的索引cmd_index及屬性Tag_ID[0](例如1’b0)發送至記憶裝置143,如第4圖所示。另外,該一或多個條目的每一者可包含一有效位元、Tag_ID[k:1]、Tag_ID[0]、資料有效計數器、寫入指標W_pointer、讀取指標R_pointer,但本發明不限於此。
在步驟312中,由於Tag_ID[0]指出標籤辨識碼Tag_ID在系統100中是唯一的(例如Tag_ID[0]為1’b1),僕裝置140可旁通讀取重排序緩衝器142,並且僕裝置140內的控制電路220可在加上填充位元後以讀取辨識碼{Tag_ID[k:1],1’b1}直接將標籤辨識碼Tag_ID發送至記憶裝置143,如第5圖所示。
在步驟314中,記憶裝置143可依據接收到的指令(例如上述讀取辨識碼)回應資料。
在步驟316中,記憶裝置143可依據回應辨識碼的最低位元來判斷對應於這個資料的標籤辨識碼是否是唯一的。若是,例如回應辨識碼為{Tag_ID[k:1],1’b1}如第5圖所示,進入步驟322;否則,例如回應辨識碼為{cmd_index,1’b0}如第4圖所示,進入步驟318。
在步驟318中,僕裝置140可用讀取重排序緩衝器寫入索引{cmd_index,W_pointer}(可對應於儲存區域142B的索引RRB_index)將回應資料儲存至讀取重排序緩衝器142中的儲存區域142B,如第4圖所示。
在步驟320中,僕裝置140可透過標籤辨識碼映射及讀取重排序緩衝控制器200內的一選擇電路240(標示為「MUX」以求簡明)自讀取重排序緩衝器142(例如儲存區域142A及/或142B)的頂部條目輸出有效資料以及標籤辨識碼Tag_ID,例如依據讀取索引{cmd_index,R_pointer}(可對應於儲存區域142B的索引RRB_index)自儲存區域142B讀取有效資料,如第4圖所示。
在步驟322中,僕裝置140可旁通讀取重排序緩衝器140,並且自標籤辨識碼移除填充位元。即選擇電路240使用一旁通路徑自記憶裝置143直接輸出 標籤辨識碼Tag_ID以及回應資料,避免透過讀取重排序緩衝器142來傳送(即資料不會進入讀取重排序緩衝器142),如第5圖所示。
在步驟324中,僕裝置140可將資料回應至主裝置(例如主裝置120_n)。
如上所述,由於記憶裝置143以所述固定的突發長度進行存取控制且標籤辨識碼Tag_ID的長度小於或等於所述固定的突發長度,若標籤辨識碼Tag_ID在系統100中是唯一的(Tag_ID[0]為1’b1),標籤辨識碼映射及讀取重排序緩衝控制器200能直接將標籤辨識碼Tag_ID傳送至記憶裝置143而避免將標籤辨識碼儲存於讀取重排序緩衝器142(例如儲存區域142A),並且在回應資料時能將對應於標籤辨識碼Tag_ID的資料自記憶裝置143直接回應至主裝置120_n而避免透過讀取重排序緩衝器142來傳送。因此,當標籤辨識碼Tag_ID在系統100中是唯一的時,僕裝置140能以最佳化的效率回應資料,而不會為了等待讀取重排序緩衝器142中的資料而被阻擋。
第6圖為依據本發明一實施例之一種藉助於標籤辨識碼Tag_ID之至少一屬性來控制資料回應的方法的工作流程。在本實施例中,標籤辨識碼Tag_ID的長度大於記憶裝置140進行存取控制時所使用的標籤辨識碼長度。需注意的是,第6圖所示之工作流程只是為了說明之目的,並非本發明的限制,其中一或多個步驟可在該工作流程中被新增、刪除或修改。此外,假若可得到相同的結果,則這些步驟不一定要完全遵照第6圖所示的順序來執行。第7圖為依據本發明一實施例之第2圖所示之僕裝置140在標籤辨識碼Tag_ID在系統100中是唯一的情況下的某些實施細節。另外,當標籤辨識碼Tag_ID的長度大於記憶裝置140進行存取控制時所使用的標籤辨識碼長度時,僕裝置140在標籤辨識碼Tag_ID在系統100中不是唯一的情況下的實施細節可參照第4圖。
在步驟402中,僕裝置140可讀取帶有標籤辨識碼Tag_ID的指令。
在步驟406中,僕裝置140可檢查讀取重排序緩衝器142(例如儲存區域142A及/或142B)是否已滿。若是,表示此時無法接收指令,進入步驟408;否則,進入步驟410。
在步驟408中,由於僕裝置140(例如其內的讀取重排序緩衝器142)尚未準備好接收指令與回應對應的資料,因此流程回到步驟406進行再次確認,直到讀取重排序緩衝器142有空間為止。
在步驟410中,不論標籤辨識碼Tag_ID在系統100中是否為唯一的,僕裝置140可分配讀取重排序緩衝器142的該一或多個條目以儲存標籤辨識碼Tag_ID,並且控制電路220可用讀取辨識碼{cmd_index,Tag_ID[0]}將該一或多個條目的索引cmd_index及屬性Tag_ID[0](例如1’b0或1’b1)發送至記憶裝置143。例如,控制電路220發送{cmd_index,1’b0},如第4圖所示;又例如,控制電路220發送{cmd_index,1’b1},如第7圖所示。
在步驟414中,記憶裝置143可依據接收到的指令(例如上述讀取辨識碼)回應資料。
在步驟416中,記憶裝置143可依據回應辨識碼的最低位元來判斷對應於這個資料的標籤辨識碼是否是唯一的。若是,例如回應辨識碼為{cmd_index,1’b1}如第7圖所示,進入步驟422;否則,例如回應辨識碼為{cmd_index,1’b0}如第4圖所示,進入步驟418。
在步驟418中,僕裝置140可用讀取重排序緩衝器寫入索引{cmd_index,W_pointer}(可對應於儲存區域142B的索引RRB_index)將回應資料儲存至讀取重排序緩衝器142中的儲存區域142B,如第4圖所示。
在步驟420中,僕裝置140可透過標籤辨識碼映射及讀取重排序緩衝控制器200內的選擇電路240自讀取重排序緩衝器142(例如儲存區域142A及/或142B)的頂部條目輸出有效資料以及標籤辨識碼Tag_ID,例如依據讀取索引 {cmd_index,R_pointer}(可對應於儲存區域142B的索引RRB_index)自儲存區域142B讀取有效資料,如第4圖所示。
在步驟422中,僕裝置140可使用索引cmd_index自讀取重排序緩衝器142(例如其內的儲存區域142A)取的標籤辨識碼Tag_ID,並且直接回應對應於標籤辨識碼Tag_ID的資料以及標籤辨識碼Tag_ID,避免透過讀取重排序緩衝器142來傳送資料(即資料不會進入讀取重排序緩衝器142,例如其內的儲存區域142B),如第5圖所示。
在步驟424中,僕裝置140可將資料回應至主裝置(例如主裝置120_n)。
如上所述,由於記憶裝置143以所述固定的突發長度進行存取控制且標籤辨識碼Tag_ID的長度大於所述固定的突發長度所使用的標籤辨識碼,若標籤辨識碼Tag_ID在系統100中是唯一的(Tag_ID[0]為1’b1),原子化器141能將標籤辨識碼Tag_ID進行截斷處理以產生具有所述固定的突發長度的多個突發截斷指令(例如固定大小的讀取指令),以容許標籤辨識碼映射及讀取重排序緩衝控制器200將標籤辨識碼Tag_ID儲存於讀取重排序緩衝器142(例如儲存區域142A),並且利用該多個突發截斷指令自記憶裝置143取得對應於標籤辨識碼Tag_ID的資料,再利用該特定資料路徑(例如該旁通路徑)將儲存於讀取重排序緩衝器142中的儲存區域142A的標籤辨識碼Tag_ID連同對應於標籤辨識碼Tag_ID的資料一併回應至主裝置120_n。因此,當標籤辨識碼Tag_ID在系統100中是唯一的時,僕裝置140能以最佳化的效率回應資料,而在回應資料時不會為了等待讀取重排序緩衝器142中的資料而被阻擋。
除了屬性Is_unique_ID(n)以外,僕裝置140可另參考屬性Master_ID(n)來控制資料回應。例如,某些標籤辨識碼在系統100中不是唯一的,但這些標籤辨識碼若來自不同的主裝置(這些標籤辨識碼的屬性Master_ID(n)互不相同), 則這些標籤辨識碼對應的資料的回應順序是可被重排序的。第8圖為依據本發明一實施例之第2圖所示之僕裝置140在標籤辨識碼Tag_ID在系統100中不是唯一的情況下的某些實施細節。
舉例來說,在步驟410中,僕裝置140可分配讀取重排序緩衝器142的該一或多個條目並且依據屬性Master_ID(n)進行分組(例如透過標籤辨識碼映射及讀取重排序緩衝控制器200內的一映射電路260將屬性Master_ID(n)映射至群組辨識碼Group_ID,如第8圖所示)以利用索引cmd_index儲存標籤辨識碼Tag_ID以及群組辨識碼Group_ID,並且控制電路220可用讀取辨識碼{cmd_index,Tag_ID[0]}將該一或多個條目的索引cmd_index及屬性Tag_ID[0](例如1’b0或1’b1)發送至記憶裝置143。另外,在步驟420中,僕裝置140可透過標籤辨識碼映射及讀取重排序緩衝控制器200內的選擇電路280(標示為「MUX」以求簡明)依據群組辨識碼Group_ID選擇儲存區域142B內的多個群組中之對應的群組,再利用選擇電路240自讀取重排序緩衝器142(例如儲存區域142A及/或142B中之該對應的群組)的頂部條目輸出有效資料以及標籤辨識碼Tag_ID,如第8圖所示。
如上所述,由於讀取重排序緩衝器142被可分群為分別對應於主裝置120_1、...及120_N的多個群組,因此來自不同主裝置的交易辨識碼的資料回應運作可各自獨立的進行,使得僕裝置140在接收到分別來自不同主裝置的多個讀取指令時可將對應的回應資料重排序以達到最佳化的效能。
另外,在某些實施例中,第2圖所示之傳輸介面電路可包含多個資料路徑,且給多個資料路徑可包含一專用資料路徑(可為上述特定資料路徑的例子),以專用於傳送對應於唯一的交易辨識碼的資料。
另外,在以上實施例中,上述至少一屬性(例如屬性Is_unique_ID(n))係利用該交易辨識碼的擴充欄位(例如Tag_ID[0])來傳送。在其他實施例中,上述至少一屬性可利用一邊帶(sideband)通道來傳送。凡是能將關於該交易辨 識碼的屬性的資訊(例如該交易辨識碼在系統100中是否為唯一的)傳送給僕裝置140,以供僕裝置140判斷是否提供專用的通道來回應資料者,均隸屬於本發明之範疇。
總結來說,主裝置120_n在傳送指令時能連同該指令的屬性資訊一併傳送給僕裝置140,以容許僕裝置140依據該屬性資訊提供對應的資料回應路徑,以達到最佳化的效能。例如,當該屬性資訊的一部分指出該指令的標籤辨識碼在該系統中是唯一的,對應於該指令的資料可透過專用的訊號路徑來回應;又例如,當該屬性資訊的該部分指出該指令的標籤辨識碼在該系統中不是唯一的,僕裝置140可再依據該指令的另一部分判斷該指令是來自哪一個主裝置,以容許不同主裝置所要求的資料可用亂序的方式回應。因此,本發明能充分地發揮以亂序的方式回應資料的優勢,提升系統的整體效能。以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
120_1,120_n,120_N:主裝置
140:僕裝置
141:原子化器
142:讀取重排序緩衝器
143:記憶裝置
160:傳輸介面電路
162_1,162_N:主介面
164:僕介面
Master_Tag_ID(0),Master_Tag_ID(n),Master_Tag_ID(N):標籤辨識碼
Master_ID(0),Master_ID(n),Master_ID(N),Is_unique_ID(0),Is_unique_ID(n),Is_unique_ID(N):屬性

Claims (8)

  1. 一種藉助於一交易(transaction)辨識碼之至少一屬性(attribute)來控制資料回應的方法,包含:將該至少一屬性連同該交易辨識碼自一或多個主裝置(master device)中之任一主裝置一併傳送至一僕裝置(slave device);以及依據該至少一屬性來判斷是否利用多個資料路徑中之一特定資料路徑將對應於該交易辨識碼的資料自該僕裝置中之一記憶裝置回應至所述任一主裝置;其中該特定資料路徑係該多個資料路徑中具有最大傳輸效率的資料路徑;該僕裝置包含一讀取重排序緩衝器(read re-order buffer,RRB)以用來將來自該記憶裝置之亂序(out-of-order)的資料以有序的方式自該僕裝置回應至所述任一主裝置;以及該特定資料路徑包含一旁通路徑以用來將對應於該交易辨識碼的該資料自該記憶裝置直接回應至所述任一主裝置而避免透過該讀取重排序緩衝器來傳送。
  2. 如申請專利範圍第1項所述之方法,其中該至少一屬性指出該交易辨識碼在整個系統中是否為唯一的(unique),而該整個系統包含該一或多個主裝置以及該僕裝置。
  3. 如申請專利範圍第1項所述之方法,其另包含:因應該記憶裝置以固定的突發長度(burst length)進行存取控制、該交易辨識碼的長度小於或等於所述固定的突發長度、以及該至少一屬性指出該交易辨識碼在整個系統中是唯一的,直接將該交易辨識碼傳送至該記憶裝置而避免將該交易辨識碼儲存於該讀取重排序緩衝器。
  4. 如申請專利範圍第1項所述之方法,其另包含:因應該記憶裝置以固定的突發長度(burst length)進行存取控制且該交易辨識碼的長度大於所述固定的突發長度,將該交易辨識碼進行截斷處理以產生具有所述固定的突發長度的多個突發截斷指令,並且將該交易辨識碼儲存於該讀取重排序緩衝器;利用該多個突發截斷指令自該記憶裝置取得對應於該交易辨識碼的該資料;以及利用該特定資料路徑將儲存於該讀取重排序緩衝器的該交易辨識碼連同對應於該交易辨識碼的該資料一併回應至所述任一主裝置。
  5. 如申請專利範圍第1項所述之方法,其中所述任一主裝置以及該僕裝置係透過一傳輸介面電路來互相耦接,該傳輸介面電路包含該多個資料路徑,以及該特定資料路徑專用於回應對應於唯一的交易辨識碼的資料。
  6. 如申請專利範圍第1項所述之方法,其中該至少一屬性係利用該交易辨識碼的擴充欄位或一邊帶(sideband)通道來傳送。
  7. 一種藉助於一交易(transaction)辨識碼之至少一屬性(attribute)來控制資料回應的系統,包含:一僕裝置(slave device),包含用來儲存資料的一記憶裝置;一或多個主裝置(master device),透過一傳輸介面電路耦接至該僕裝置,用來取得儲存於該記憶裝置中的資料;其中: 該一或多個主裝置中之任一主裝置將該至少一屬性連同該交易辨識碼一併傳送至該僕裝置;依據該至少一屬性,該僕裝置判斷是否利用多個資料路徑中之一特定資料路徑將對應於該交易辨識碼的資料自該記憶裝置回應至所述任一主裝置;該僕裝置包含一讀取重排序緩衝器(read re-order buffer,RRB),耦接至該記憶裝置,用來將來自該記憶裝置之亂序(out-of-order)的資料以有序的方式自該僕裝置回應至所述任一主裝置;以及該特定資料路徑包含一旁通路徑,用來將對應於該交易辨識碼的該資料自該記憶裝置直接回應至所述任一主裝置而避免透過該讀取重排序緩衝器來傳送;其中該至少一屬性指出該交易辨識碼在整個系統中是否為唯一的(unique),該整個系統包含該一或多個主裝置以及該僕裝置,以及該特定資料路徑係該多個資料路徑中具有最大傳輸效率的資料路徑。
  8. 如申請專利範圍第7項所述之系統,其中該至少一屬性係利用該交易辨識碼的擴充欄位或一邊帶(sideband)通道來傳送。
TW109109187A 2020-03-19 2020-03-19 藉助於交易辨識碼之屬性來控制資料回應的方法以及系統 TWI760715B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW109109187A TWI760715B (zh) 2020-03-19 2020-03-19 藉助於交易辨識碼之屬性來控制資料回應的方法以及系統
US17/105,467 US11269797B2 (en) 2020-03-19 2020-11-25 Method and system for controlling data response with aid of attribute of transaction identifier

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW109109187A TWI760715B (zh) 2020-03-19 2020-03-19 藉助於交易辨識碼之屬性來控制資料回應的方法以及系統

Publications (2)

Publication Number Publication Date
TW202137005A TW202137005A (zh) 2021-10-01
TWI760715B true TWI760715B (zh) 2022-04-11

Family

ID=77747955

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109109187A TWI760715B (zh) 2020-03-19 2020-03-19 藉助於交易辨識碼之屬性來控制資料回應的方法以及系統

Country Status (2)

Country Link
US (1) US11269797B2 (zh)
TW (1) TWI760715B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030005119A1 (en) * 2001-06-28 2003-01-02 Intersan, Inc., A Delaware Corporation Automated creation of application data paths in storage area networks
US20040017820A1 (en) * 2002-07-29 2004-01-29 Garinger Ned D. On chip network
US20040203800A1 (en) * 2002-10-24 2004-10-14 John Myhre System and method for content delivery using alternate data paths in a wireless network
US20150006244A1 (en) * 2013-06-26 2015-01-01 Edatanetworks Inc. Systems and methods for loyalty programs

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7617291B2 (en) * 2003-12-19 2009-11-10 Broadcom Corporation System and method for supporting TCP out-of-order receive data using generic buffer
US20110208948A1 (en) * 2010-02-23 2011-08-25 Infineon Technologies Ag Reading to and writing from peripherals with temporally separated redundant processor execution
US20150012679A1 (en) * 2013-07-03 2015-01-08 Iii Holdings 2, Llc Implementing remote transaction functionalities between data processing nodes of a switched interconnect fabric
US9471320B2 (en) * 2014-07-18 2016-10-18 Texas Instruments Incorporated Using L1 cache as re-order buffer
US10282109B1 (en) * 2016-09-15 2019-05-07 Altera Corporation Memory interface circuitry with distributed data reordering capabilities

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030005119A1 (en) * 2001-06-28 2003-01-02 Intersan, Inc., A Delaware Corporation Automated creation of application data paths in storage area networks
US20040017820A1 (en) * 2002-07-29 2004-01-29 Garinger Ned D. On chip network
US20040203800A1 (en) * 2002-10-24 2004-10-14 John Myhre System and method for content delivery using alternate data paths in a wireless network
US20150006244A1 (en) * 2013-06-26 2015-01-01 Edatanetworks Inc. Systems and methods for loyalty programs

Also Published As

Publication number Publication date
US11269797B2 (en) 2022-03-08
US20210294765A1 (en) 2021-09-23
TW202137005A (zh) 2021-10-01

Similar Documents

Publication Publication Date Title
US7822908B2 (en) Discovery of a bridge device in a SAS communication system
US6757768B1 (en) Apparatus and technique for maintaining order among requests issued over an external bus of an intermediate network node
JP5440067B2 (ja) キャッシュメモリ制御装置およびキャッシュメモリ制御方法
US8683126B2 (en) Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory
CN110928811B (zh) 用于处理突发读取事务的装置和方法
US6820165B2 (en) System and method for increasing the count of outstanding split transactions
EP3608790B1 (en) Modifying nvme physical region page list pointers and data pointers to facilitate routing of pcie memory requests
JP2002510079A (ja) メモリ・インタフェース間で読み書きの順序付けられた実行を強制する方法と装置
US8090892B2 (en) Ordered queue and methods therefor
CN114265872B (zh) 一种用于总线的互联装置
US20060036817A1 (en) Method and system for supporting memory unaligned writes in a memory controller
CN113791994A (zh) 一种基于AXI协议wrap访问的DDR控制器及处理方法
US8417853B2 (en) Universal serial bus host control methods and universal serial bus host controllers
JP3288712B2 (ja) コンテキストデータ検索用のリンクキャッシュ
JPH0532775B2 (zh)
JP2000194606A (ja) 情報処理装置
TWI760715B (zh) 藉助於交易辨識碼之屬性來控制資料回應的方法以及系統
CN109285580B (zh) 数据预处理装置、方法及异步双端随机存取存储器***
TW569219B (en) Architecture and method for updating cache data
KR101690568B1 (ko) 네트워크 온 칩 소켓 프로토콜
CN112347012B (zh) 支持SR-IOV的NVMe控制器及方法
US20060277326A1 (en) Data transfer system and method
US6898684B2 (en) Control chip with multiple-layer defer queue
CN113448899A (zh) 借助于交易辨识码的属性来控制数据响应的方法以及***
US6847990B2 (en) Data transfer unit with support for multiple coherency granules