TWI240166B - Method and related apparatus for reordering access requests used to access main memory of a data processing system - Google Patents
Method and related apparatus for reordering access requests used to access main memory of a data processing system Download PDFInfo
- Publication number
- TWI240166B TWI240166B TW093100948A TW93100948A TWI240166B TW I240166 B TWI240166 B TW I240166B TW 093100948 A TW093100948 A TW 093100948A TW 93100948 A TW93100948 A TW 93100948A TW I240166 B TWI240166 B TW I240166B
- Authority
- TW
- Taiwan
- Prior art keywords
- instruction
- data access
- data
- access instruction
- memory
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 167
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000012545 processing Methods 0.000 title abstract description 24
- 238000012544 monitoring process Methods 0.000 claims description 43
- 239000000463 material Substances 0.000 claims description 22
- 230000008707 rearrangement Effects 0.000 claims description 14
- 238000013500 data storage Methods 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 2
- 210000004556 brain Anatomy 0.000 claims 1
- 238000000151 deposition Methods 0.000 claims 1
- 238000004519 manufacturing process Methods 0.000 claims 1
- 230000035939 shock Effects 0.000 claims 1
- 230000001755 vocal effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 11
- 230000003111 delayed effect Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000001934 delay Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 241000283984 Rodentia Species 0.000 description 1
- YTAHJIFKAKIKAV-XNMGPUDCSA-N [(1R)-3-morpholin-4-yl-1-phenylpropyl] N-[(3S)-2-oxo-5-phenyl-1,3-dihydro-1,4-benzodiazepin-3-yl]carbamate Chemical compound O=C1[C@H](N=C(C2=C(N1)C=CC=C2)C1=CC=CC=C1)NC(O[C@H](CCN1CCOCC1)C1=CC=CC=C1)=O YTAHJIFKAKIKAV-XNMGPUDCSA-N 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000002542 deteriorative effect Effects 0.000 description 1
- 238000009313 farming Methods 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007334 memory performance Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000002689 soil Substances 0.000 description 1
- 238000012353 t test Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06F13/1631—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
- Advance Control (AREA)
Description
1240166 五、發明說明(1) 1【發明所屬之技術領域】 本發明提供一種存取電腦系統之記憶壯 裝置,尤指一種重排複數個用來存取t 考 法與相關 憶裝置之資料存取指令的方法與相關^ ;置泛理系統上記 【先前技術】 眾所皆知,資料處理系統係用來運算、 料,而個人電腦系統與其相關子系二均二1 t,儲存資 糸統,睛參閱圖一,圖一為習知電腦^ 、、資料處理
電腦系統1 0包含有一中央處理器i 2,f統10的示意圖。 南橋電路16,一顯示控制電路18,一 = 路14,一 入/輸出裝置22,以及一硬碟24。Φ 思衣置2〇,一輸 制電腦系統1 0的整體運作/而北产、处理器1 2係用來老 央處理器12與高速週邊穿:置路14係用來協調中 4 傳遞。顯示控制電路⑺則是用來 &像-貝枓,而3己憶裝置20係用來處理盥儲存資料。 卜’南橋電路16係用來協調北橋
冗以般來說久二 存裝置。記…心㈡二
1240166 五、發明說明(2) 存處理中的程式碼與資料。舉例來說,原先儲存於硬碟 24上的程式碼與資料被載入至記憶裝置20中,所以中央 處理器1 2便可更迅速地存取該程式碼,然後,中央處理 器1 2於處理該資料後將其回存至記憶裝置2 0中。 北橋電路1 4中設置有一記憶體控制電路2 6 ,用來控制記 憶裝置20的資料存取操作。當一主控制器(master d e v i c e),例如中央處理器1 2或顯示控制電路1 8,輸出 資料存取指令(access request)至記憶裝置20時,記 憶裝置2 0便會根據所接收之資料存取指令將相對應資料 回覆予該主控制器。若記憶體控制電路2 6啟動一依序存 取(i η - 〇 r d e r a c c e s s)的機制,則記憶裝置2 0會根據所 接收之資料存取指令的順序來逐一地將相對應資料回覆 予該主控制器。舉例來說,顯示控制電路1 8依據一預定 順序來發出資料讀取指令(read reQuest) RA1、RA2、 RA3、RA4、RA5以分別擷取記憶裝置20上所紀錄的資料 Dl、D2、D3、D4、D5,然而,即使記憶體控制電路26不 依循該預定順序而隨意地執行資料讀取指令R A1、R A 2、 RA3、RA4、RA,記憶體控制電路26仍需將其所接收的資 料D卜D2、D3、D4、D5依照該預定順序而回傳至顯示控 制電路1 8 ° 請參閱圖二,圖二為記憶裝置2 0之第一種習知資料存取 操作的示意圖。舉例來說,中央處理器1 2依序產生複數
第13頁 1240166 五、發明說明(3) 個資料讀取指令 RA1、RA2、RBI、RB2、RA3、RA4、RB3、 RB4、RA5、RA6以便擷取儲存於記憶裝置20上的資料 DA卜 DA2、 DB卜 DB2、 DA3、 DA4、 DB3、 DB4、 DA5、 DA6,此外,假設所有資料 DAI、DA2、DA3、DA4、DA5、 DA6均儲存於一記憶分頁A,以及所有資料DB1、DB2、 DB3、DB4、DB5、DB6均儲存於另一記憶分頁B。如圖二所 示,記憶體控制電路2 6依據資料讀取指令Ra 1、RA2、 RB卜 RB2、 RA3、 RA4、 RB3、 RB4、 RA5、 RA6的順序來執 行資料讀取指令 RA1、RA2、RBI、RB2、RA3、RA4、RB3、 RB4、RA5、RA6。首先,記憶體控制電路26執行資料讀取 指令RA1以擷取資料DA1,記憶裝置20便經由一記憶體匯 流排將資料D A 1傳遞至記憶體控制電路2 6 ,然後,記憶體 控制電路2 6便將資料D A 1傳遞至中央處理器1 2以完成對應 資料讀取指令R A 1的資料擷取操作。既然下一資料讀取指 令RA2所要擷取的資料DA2亦是記錄於同一記憶分頁A上, 所以記憶裝置20便採用一爆發存取模式(burst m〇de) 來存取資料DA2,因此資料DA2即可迅速地被讀取,並經 由記憶體匯流排傳遞至記憶體控制電路26,然後,記憶 體控制電路2 6便傳輸資料da2至中央處理器丨2以完成對應 負料項取指令RA2的資料抬員取操作。 然而,資料讀取指令RB1係用來擷取異於記幛分頁 憶分頁B上所紀錄的資料DB1,所以,為γ存〜取所要的記 憶分頁B,記憶裝置2 0需要於啟動記憶分頁B前,先預充 1240166 五、發明說明(4) 電(precharge)目前已開啟的記憶分頁A,所以記憶體 控制電路26需連續輸出一控制指令PreA以預充電記憶分 頁A,以及輸出一控制指令ActB以啟動所要的記憶分頁 B。當記憶分頁B已成功地開啟後,記憶體控制電路2 6便 可開始存取記憶分頁B中所紀錄的資料,所以資料讀取指 令RBI、RB2便循序地被記憶體控制電路26執行以擷取相 對應的資料DB1、DB2。然後,記憶裝置20便經由記憶體 匯流排提供記憶體控制電路2 6所要的資料DB1、DB2。接 著,記憶體控制電路26便傳輸接收的資料DB1、DB2至中 央處理器12以完成對應資料讀取指令RBI、RB2的資料擷 取操作。由於下一資料讀取指令係擷取記憶分頁A上的資 料,由於資料DA3係位於記憶分頁A上,因此控制命令 P r e B、A c t A便會依序地輸出以預充電開啟中的記憶分頁B 與啟動所要的記憶分頁A。 上述操作程序係不斷地執行以切換記憶分頁A與記憶分頁 B來擷取後續的資料DA3、DA4、DB3、DB4、DA5、DA6。如 上所述,當兩相鄰資料讀取指令係用來擷取位於不同分 頁上的資料時,記憶裝置2 〇必須耗費額外時間來進行不 同分頁之間的切換操作。換句話說,預充電操作與啟動 操作會造成記憶裝置2 0的整體效能惡化,如圖二所示, 記憶體匯流排上的延遲時間L 1會由於預充電操作與啟動 操作而產生,同樣地,一主機匯流排(h 〇 s t b u s)上的 延遲時間L 2亦因為延遲時間l 1施加於記憶體匯流排而隨
第15頁 1240166 五、發明說明(5) 之產生。 一般而言,當一主控制器(例如中央處理器1 2)存取記 憶裝置2 0時,前述預充電操作與啟動操作會惡化資料存 取操作的執行效能,所以習知重排(r e 〇 r d e r i ng)機制 便用來減輕預充電操作與啟動操作的影響程度,請參閱 圖三,圖三為記憶裝置2 0之第二種習知資料存取操作的 示意圖。中央處理器1 2連續地產生資料讀取指令R a 1、 RA2、RBI、RB2、RA3、RA4、RB3、RB4、RA5、RA6 以獲得 記憶裝置20所儲存的資料DAI、DA2、DB1、. DB2、DA3、 DA4、DB3、DB4、DA5、DA6。然後,記憶體控制電路2 6便 重排所接收的資料讀取指令RAl·、M2、RB卜RB2、RA3、 RA4、 RB3、 RB4、RA5、 RA6,所以記憶體控制電路26便於 執行資料讀取指令RBI、RB2、、RB3、RB4之前先執行資 料讀取指令RA1、RA2、RA3、RA4、RA5、RA6,因此可降 低切換兩不同記憶分頁所耗費的時間。如圖三所示,於 資料漬取指令R A 6成功地執行後,控制命令p r e A、A c t B由 記憶體控制電路2 6輸出以預充電記憶分頁A與啟動記憶分 I β ’由於僅有執行一次切換記憶分頁的操作,所以對記 憶體匯流排來說,僅有產生一次延遲時間L 1,然而,記 憶體控制電路26必須依據原先資料讀取指令RA1、RA2、 ΚΒ1' RB2、RA3、RA4、RB3、RB4、RA5、RA6的接收順序 來傳遞所接收的資料至中央處理器1 2,換句話說,記憶 體控制電路26必須依序地將資料j)Al、DA2、DB1、DB2、
1240166 五、發明說明(6) DA3 即便 DA1 輸資 讀取 由於 至記 12後 所以 L2〇 .0八4、083、084、0八5、0八6回傳至中央處理器12。 記憶裝置20經由爆發讀取模式已快速地讀出^料 ‘ DA2、DA3、DA4、DA5、DA6,主機匯流&於完成 料DM、M2後必須進入等待(wait)狀態直到資料 指令RB1已經自記憶裝亶20讀取資料RB1。請注音, 資料DA3、DA4、DA5、DA6先前已成功地擷=並^遞 憶體控制電路26 ’所以於資料DBi傳遞至中央處理器 ’資料DA3、DA4便可立即地傳輪至中央處理器12,° ’對於主機匯流排而言’其僅會產生一延遲
,秦取操作,圖三所示 2父少次切換記憶分頁的 ”兒,第二種習知資料存 長的延遲時間L2。如上 效能,但是卻必須犧牲 制電路2 6重排所接收的 令R B 1的執行時間被嚴^ 會大幅地惡化整體資料 料存取操作並不易由圖 排操作來達到整體資料
相較於圖二所示之第々種習知資 之第二種習知賢料存取操丨作執行 操作,然而,對於主機匯流排來 取操作卻會使主機匯流排產生較 所述,雖然提昇記憶體匯流排的 主機匯流排的效能,若記憶體控 資料讀取指令後造成資料讀取指 地延遲,則增加的延遲時間L 2便 存取操作的效能,綜合上述,資 二所示之資料讀取指令的習知重 存取效能的提昇。 發明内容
1240166 丨五、發明說明(7) !
I |因此本發明之主要目的在於提供一種重排存取資料處理 系統上記憶裝置之資料存取指令的方法與相關裴置,以 解決上述問題。 根據本發明之申请專利範圍,其係揭露一種存取電腦系 統之記憶裝置的方法,該記憶裝置係電連接於一記憶^ 控制電路,該記憶體控制電路係依據一主控制器依序輪 出之資料存取指令來逐一地回應該主控制器,該記憶^ 控制電路包含有一指令佇列以及一延遲時間監控單i g 2,於該指令佇列,該方法包含有:(3)使用該指令件' It ί ΐ 2控制器輸出之資料存取指令;(b)使用該延遲 :以別對應該指令符列 第-資料存取指令存入該列=取指,’將該 列之資料存取指令;=之已儲存於 :h t仵列所储存之資料存取指令所ί ΐ,以及(d)依i 使用該記憶體控制電路來逐一地^ ,νω,執行優先 子取該記憶裝置。 i:;ί申請專利範圍另提供-種經由γ ^ 化μ電驷糸統之記憶裝置的方法,今^J记饫體控制電路 據—主控制器依序輸出之資料存^ \己^體控制電路係 曰令來逐一地回應 (8) 1240166 五、發明說明 該主控制 資料存取 值,該複 之資料存 一資料存 指令佇列 第一資料 指令件列 逐一地存 本發明之 來存取一 該記憶.體 器依序輸 該記憶體 控制器輸 連接於該 數個延遲 取指令; 用來依據 延遲時間 對應一執 t之:資料 取。 器,該方法包含 指令於該指令仵 數個延遲時間值 取指令;(c )接4 取指令存入該指 之資料存取指令 存取指令所對應 所儲存之資料存 取該記憶褒置。 申請專利範圍另 電腦系統之記憶 控制電路,該記 出之資料存取指 控制電路包含有 出之資料存取指 指令佇列,用來 時間值係分別對 以及一重排控制 已儲存於該指令 值控制一第一資 行優先權。該記 存取指令所對應 有:(a )儲存該: 列中;(b )紀錄;j 係分別對應該指 匕一第一資料存I 令佇列,以及依 所對應之延遲時 之執行優先權; 取指令所對應的 提供一種·記憶體 裝置’該記憶裝 憶體控制電路係 令來逐一地回應 :一指令佇列, 令;一延遲時間 紀錄複數個延遲 應該指令仔列所 單元,電連接於 佇列之資料存取 料存取指令存入 憶裝置係依據該 的執行優先權而 1控制器輸出之 I數個延遲時間 令仵列所儲存 (指令,將該第 據已儲存於該 間值來設定該 以及(d )依據該 執行優先權來 控制電路,用 置係電連接於 依據一主控制 該主控制器, 用來儲存該主 監控單元,電 時間值,該複 儲存之資料存 該指令仔列, 指令所對應之 該指令仔列並 指令佇列所儲 依序地被存 1240166 五、發明說明(9) 本發明之申請專利範圍另提 裝置之方法,其包含有:接 據一第一預定順序存取該記 疋順序於^一指令件列中重排 重新安置用來存取一記憶分 於用來存取該記憶分頁之第 新安置該第一資料存取指令 之延遲時間值超過一預定限 —資料存取指令。 本發明之申請專利範圍另提 農置之方法,其包含有:接 取該記憶裝置之一或複數個 記憶分頁之資料存取指令聚 排一指令佇列中原本對應一 ^令。若聚集一資料存取指 資料存取指令之延遲時間值 聚集該資料存取指令。 本發明重排資料存取指令的 頁的資料存取指令時會避免 ,’換句話說,若插入—新 嚴重地遞延目前已儲存於指 供一種存取電腦系統之記憶 收複數個資料存取指令以依 憶裝置;以及依據一第二預 該複數個資料存取指令’以 頁之第一資料存取指令緊接 二資料存取指令之後。若重 會造成一第三資料存取指令 制值,則禁止重新安置該第 供一種存取電腦系統之記憶 收複數個資料存取指令以存 記憶分頁;以及將存取同一 集於一或複數個群組中來重 預定順序之複數個資料存取 令’會造成該指令仵列中另一 超過一預定限制值,則禁土 1法於聚集存取同一記憶分 違背所設定的最大可容許數 接收的資料存取指令會十分 々仔列中之資料存取指令的
第20頁 1240166 丨五、發明說明(10) |執行時序,則本發明重排資料存取指令的方法僅將該新 接收的資料存取指令如同往常一般地存入該指令佇列而 不重排儲存於指令佇列中之資料存取指令,因此,記憶 體匯流排的效能與主機匯流排的效能便可取得一平衡點 以最佳化資料處理系統的整體效能。 【實施方式】 請參閱圖四,圖四為本發明記憶體控制電路3 0的功能方 塊示意圖。記憶體控制電路3 0包含有一記憶分頁/記憶庫 比較單元(page/bank comparing unit) 32,一 延遲時 間控制單元(1 a t e n c y c ο n t r ο 1 u n i t) 3 4,一重排控制 單元(reorder decision-making unit) 36,一 指令作 歹丨J 遠取單元(request queue selection unit) 38,一 指令作列(request queue) 40,一延遲時間監控單元 (latency monitoring unit) 42,以及一記憶體存取狀 態機(memory access state machine) 44° 此外,指令 4丁列4 0中设置有複數個仔列暫存單元(q u e u e e n t r y) 46,亦即圖四所示之q卜q2、q3、q4、q5、q6、q7、 Q 8、Q 9、Q 1 0、Q 1 1、Q 1 2,而延遲時間監控單元4 2則設置 有複數個監控暫存器4 8,亦即圖四所示之μ卜Μ 2、Μ 3、 Μ4' Μ5、Μ6、Μ7、Μ8、Μ9、Μ10、Mil、Μ12’ 其分別對應 指令佇列40中的佇列暫存單元q卜Q2、q3、q4、q5、 Q6、Q7、Q8、Q9、Ql〇、qii、Q12。每一監控暫存器 M1、
第21頁 1240166 ...... ._____________—...........—-.......... ..… 五、發明說明(11) M2、 M3、 M4、 MR、 ua 十 从知科麻 M6、M7、M8、M9、M10、MU、M12係用 來,錄相對應仰列暫存單元的延遲時間值(htency 女暫存單元Q1係為指令佇列40中第一個暫存 區而/、农向的執行優先權(p r i 〇 r i t y),而仔列暫存 單5 Q1係為指令佇列4〇中最後一個暫存區,所以佇列暫 存,元Q1便對應最低的執行優先權,換句話說,佇列暫 存單元Q1所儲存的指令會是第一個被執行的指令。 S A憶體控制電路3 0接收到主控制器所輸出的資料存取 指令(access request)時,該資料存取指令便會輸入 指令佇列4 0。每一個資料存取指令包含記憶體位址資 訊、讀取/寫入資訊,資料長度資訊,以及其他必須的旗 標(f 1 ag),例如資料存取指令的執行優先權及快取資 料寫回(write-back)的指示等。請注意,本實施例 中,主控制器可以是圖一中所示之中央處理器12,顯示 控制電路18,硬碟24,或輸入/輸出裝置22。 °己憶分頁/記憶庫比較单元3 2係用來判別所接收之資料存 取指令所要存取的記憶分頁,然後便將記憶分頁的相關 資訊進一步地告知重排控制單元3 6。延遲時間控制單元 3 4係偵測延遲時間監控單元4 2所輸出的訊號來決定監控 暫存器4 8中所紀錄的延遲時間值是否已到達一預定^ 值(例如一最大可容許數值)。此外,若一監控暫存器 48已記錄該最大可容許數值,則延遲時間控制單元34^
(12)1240166 五、發明說明 禁止重排 取指令。 3 2與延遲 指令於指 庫比較單 排控制單 位置,然 列選取單 的位置。 於指令佇 指令於指 取狀態機 指令來逐 請參閱圖 程圖。本 下,首先 令,而記 指令係用 100) 。ί 一空的佇 取指令, 取指令的 (push) 控制單元36延遲對應該監控暫存器 重排控制單元3 6接收記憶分頁/‘十 時間控制單元34所提供的資訊來決 令佇列40中的位置,換句話說,記 兀32可判別目前開啟中的記憶分頁 兀36適合指令佇列4〇所紀錄之資料 後重排控制單元3 6即輸出一控制指 元38以調整指令佇列4〇所紀錄之資 所以,原先的資料存取指令便經由 列40中不同的佇列暫存單元46,亦 令仵列40中便對應新的位置。最後 4 4便依據各符列暫存單元:_所紀錄 一地存取圖一所示之記憶襄置20。 五’圖五為本發明重排資料存取指 發明重排資料存取指令的操作詳細 ’記憶體控制電路3 〇接收一第一資 憶分頁/記憶庫比較單元3 2判別該; 來存取記憶裝置2 〇中的第一記憶分 技後,記憶體控制電路2 6檢查指令< 列’假若指令佇列40目前並未儲存 則重排控制單元3 6此時便不需執行 搡作’所以記憶體控制電路2 6便直 所接收的第一資料存取指令至指令 4 8的資料存 匕庫比較單元 定資料存取 憶分頁/記憶 ,並推薦重 存取指令的 令至指令佇 料存取指令 重排而儲存 即資料存取 ,記憶體存 的資料存取 令的操作流 地敘述如 料存取指 〖一資料存取 頁(步驟 Γ列4 0是否為 任何資料存 重排資料存 接地存入 佇列40中, 1240166 五、發明說明(13) 此外,該第一資料 而對應最高的執行 定相對應監控暫存 面,假若指令佇列 行步驟1 0 2來判斷4 存取該第一 s己憶分 料存取指令皆未存 3 6此時便不需執行 體控制電路2 6便直 至指令佇列40中, 資料存取指令中, 行優先權。 然而,於執行步驟 32於指令佇列40中 該第一分頁,重排 令是否為指令佇列 後的資料存取指令 10 6)。若該第二1 重排控制單元3 6便 而記憶體控制電路 取指令至指令佇列 佇列40中已儲存的 指令此時便會對應 f取指_令會記錄於佇列暫存單元Q1中 ,先權,並且一初始值(例如〇)會設 器Μ 1所紀錄的延遲時間值。另〆方 4 〇目前已儲存有資料存取指令,則執 i令仵^列4 0中是否·有資料存取指令亦是 頁J,指令佇列40中已儲存的所有資 取邊第一記憶分頁,則重排控制單元 重排資料存取指令的操作,所以記憶 接地存入所接收的第一資料存取指二 $外,於指令仔列40中已儲存的所^ 第一資料存取指令則會對應最低的執 1 〇 2時,若記憶分頁/記憶庫比較單一 發現一第二資料存取指令係用來存 控制單元36便判斷該第二資料存取# 4 0之所有資料存取指令中,排列於^ 或者具有最低的執行優先權(步驟 【料存取指令對應最低的執行優先#, 不需執行重排資料存取指令的操作, 2 6便直接地存入所接收的第一資料存 4〇中(步驟1 04),換句話說,於指*人 所有資料存.取指令中,第一資料存^取^ 最低的執行優先權。然而若該第二資 1240166 I五、發明說明(14) 一 料存取指令並非對應最低的執行優先權,則步驟1 〇 8會執 仃以檢查重排單元3 6是否需開始重排資料存取指令以便 將第一資料存取指令存入指令彳宁列4 〇,亦即若緊接該弟 二資料存取指令之後一第三資料存取指令的相對應延遲 時間值因為先執行該第一資料存取指令而造成原本的延 遲時間值增加一遞增值,且增加後的延遲時間值大於最 大可容許數值,則重排控制單元3 6便不會進行重排資料 存取指令的操作以避免過度地延遲該第三資料存取指令 的執行時序’因此該第一資料存取指令便如往常一般地 直接存入指令佇列4 0而具有最低的執行優先權。 回到步驟1 Ο 8 可容許數值, 元3 8將該第一 该第三貧料存 1 1 0)。此外 指令的延遲時 而隨之遞增上 資料存取指令 裝置40中同一 該第三資料存 二資料存取指 料存取指令所 令存入指令佇 大 最 過 超 未 並 時 此 值 間 時 遲 延 的 後 加 增 若 單 取 選 列 佇 令 指 示 指 便 6 3 元 單 制 控 utr 重 取中 ο 存4 料列 資仔 二令 第指 該於 入存 插儲 令而 指間 取之 存令 料指 資取 匕曰 與驟 令步 取 存 料 資 續 後 之 起 令 指 取 存 料 資 三 第 該 入 # 的 令 指 取 存 料 資 - 第 該 為 因 會 均 值 第 該 意 注 請 憶與第 記令該 該指且 取取, 存存中 來料4 用資列 皆二仔 2令第令 11指該指 驟取,於 步存外存 丨料另儲 值資,已 增二頁係 遞第分令 的該一指 述與第取 資指0) 三取如 第存例 該料彳 該資值 於一始 高第初 係該之 權當述 先。前 優權, 行先地 執優樣 的行同 應執, 對之O0f 所應40 令對列 1240166 五、發明說明(15) 會設定對應該第一資料存取指令之監控暫存器4 8所記錄 的延遲時間值。 ' 使用最大可容許數值的目的係用來避免主機匯流排的延 遲時間被過度地增加而進一步地惡化整體資料存取效 率。用來存取一預定記憶分頁之新接收資料存取指^會 附加(annex)於存取同一預定記憶分頁之已儲存資料存 取指令之後,因此可降低切換不同記憶分頁所耗費的時 間。然而,若插入新接收的資料存取指令後會造成原本 的資料存取指令所對應的延遲時間值超過該最大可容許 數值,則本實施例便不執行對應該新接收資料存取指令 的重排操作。所以,主機匯流排的延遲時間便不會由二 被過度地延長而最後造成整體資料存取效率不彰。 為了更清楚地描述本發明之技術特徵,因此利用一操作 範例來說明。假設最大可容許數值為2,以及因為資料存 取指令的插入而用來調整被延遲資料存取指令之延遲時 間值所使用的遞增值為1,請注意,上述最大可容許數值 與遞增值係為可程式化(programmable),因此並未分 別限定為2與1,亦即依據不同電腦系統的規書彳設計,最 大可容許數值與遞增值可使用不同數值來加以$ ^。若 一主控制器(例如中央處理器12)連續地輸出資料讀取 指令(read request) RA1、 RA2、 RBi、 rb2、 ra3、 RA4、RB3、RB4、RA5、RA6以獲取儲存於記憶裝置2〇的資
1240166 :五、發明說明(16) i料 DA卜 DA2、 DB卜 DB2、 DA3、 DA4、 DB3、 DB4、 DA5、 DA6。請注意,資料 DAI、DA2、DA3、DA4、DA5、DA6均儲 存於記憶裝置2 0的記憶分頁A,以及資料DB 1、DB2、 DB3、DB4均儲存於記憶裝置20的記憶分頁B。雖然本實施 例係以資料讀取指令的重排操作來說明資料存取指令的 重排操作,然而,同樣的操作原理亦可應用於資料寫入 指令 (write request) 的重排操作。 重排操作的相關參數(例如資料讀取指令,指令彳宁列之作 列暫存單元,以及監控暫存器)則逐一表列如下:
資料讀取指令:{RA1, RA2,RBI, RB2,RA3,RA4,RB3, RB4, RA5, RA6} 佇列暫存單元:{Ql, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q10, Qll, Q12} ’ ’ 監控暫存器:{Ml, M2, M3, M4,M5, M6, M7, M8, M9, M10, Mil, M12} ’ ’ 當一開始處理資料讀取指令R A 1時,由於目前沒有任何資 料讀取指令正儲存於指令彳宁列4 6中,所以資料讀取指令 R A 1便可直接存入指令佇列4 6 (步驟1 〇 1、1 〇 4),而資料 讀取指令R A 1便記錄於佇列暫存單元q卜此外,一初始值 (例如0)便設定對應仔列暫存單元Q1之監控暫存器所 儲存的延遲時間值。所以,重排資料讀取指令的操σ作此
第27頁 1240166 五、發明說明(Π) 時便產生下列結果: 資料讀取指令:{RA2,RB1, RA5, RA6, RB5, RB6} RB2, RA3, RA4, RB3, RB4, 佇列暫存單元:{Q1 (RA1), Q8, Q9, Q10, Qll, Q12} Q2, Q3, Q4; Q5, Q6, Q7, 監控暫存器:{Ml (0),M2, M9, M10, Mil, M12} M3, M4, M5, M6, M7, M8, 兩資料讀取指令RA1、RA2均用來擷取同一記憶分頁A所儲 存的資料,且於指令佇列40中,資料讀取指令RA1係為唯 一且最後的讀取指令,所以資料讀取指令RA2便會直接地 存入指令佇列40 (步驟1〇6、104),而資料讀取指令RA2 係儲存於佇列暫存單元Q2中。此外,同一初始值便同樣 地設定對應佇列暫存單元q2之監控暫存器M2所儲存的延 遲時間值。所以,重排資枓讀取指令的操作此時便產生 下列結果: 資料讀取指令:{RB1,rB2,rA3,RA4,RB3,RB4 RA6, RB5, RB6} ’ 仔列暫存單元:{Q1 (RA1), Q2 (RA2), Q3, Q4, Q5, Q6, Q7, Q8, Q9, Ql〇, Qll, Q12} ’ 監控暫存器:{Ml (〇),M2 (0),M3,M4, M5,M6, M7,
第28頁 1240166 |五、發明說明(18) |M8, M9, Ml 0, Mil, Ml 2}
I ! 此時,資料讀取指令RBI與資料讀取指令RA2係用來分別 擷取不同記憶分頁A、B中所紀錄的資料,而資料讀取指 令R B 1會直接地存入指令佇列4 0 (步驟1 0 2、1 0 4),且資 料讀取指令RB 1會儲存於佇列暫存單元q3。此外,同一初 始值亦同樣地設定對應佇列暫存單元q 3之監控暫存器Μ 3 所儲存的延遲時間值。所以,重排資料讀取指令的操作 此時便產生下列結果: :{RB2, RA3, RA4, RB3, RB4, RA5, RA6, 705:, 7 9 單Q器Μ 存,存, 6 8 暂Q皆Μ lJ- lJ- 列,控, :{Q1 (RA1), Q2 (RA2), Q3 (RB1), Q4, Q8, Q9, Q10,Q11, Q12} {Ml (0), M2 (0), M3 (0), M4, M5, M6, Ml 0, Mil, Ml 2} 兩資,讀取指令RB卜RB2均用來擷取同一記憶分頁B所儲 存的資料,且於指令佇列40中,資料讀取指令rb 1係為最 後$讀取指令,所以資料讀取指令RB2便會直接地存入指 令1列4 0 (步驟1 〇 6、1 0 4),而資料讀取指令rb 2係儲存 於^列暫存單元Q4中。此外,同一初始值便同樣地設定 對應件列暫存單元q4之監控暫存器M4所儲存的延遲時間 值。所以,重排資料讀取指令的操作此時便產生下列結
第29頁 1240166 五、發明說明(19) 果: 資料讀取指令:{RA3,RA4,RB3,RB4,RA5,RA6,RB5, RB6} ’ 佇列暫存單元:{Q1 (RA1), Q2 (RA2), Q3 (RBI), Q4 (RB2), Q5, Q6, Q7, Q8, Q9, Q10, Qll, Q12} 監控暫存器:{Ml (0),M2 (0),M3 (0),M4 (0),M5, M6, M7, M8, M9, M10, Mil, M12} 資料讀取指令RA2、RA3所要求的資料係儲存於同一記憶 分頁A (步驟1 〇 2),此外,資料讀取指令RA2並非指令仵 列4 0中排列於最後的資料讀取指令(步驟i 〇4)。此外, 監控暫存器Μ 3的延遲時間值於增加該遞增值後並未超過 該最大可容許數值(步驟1 〇 8),所以資料讀取指令 RB卜RB2便經由重新排列以便於佇列暫存器q2後儲存資 料讀取指令RA3,亦即佇列暫存器Q3此時會儲存資料讀取 指令RA3而非資料讀取指令RB1,而資料讀取指令RM、 RB2的執行時序便被延遲而分別儲存於佇列暫存器卩4、的 中。因為遞延資料讀取指令RB1、rB2的執行,所以對應 資料讀取指令RBI、RB2的延遲時間值亦需隨之遞增。^ 外,同一初始值便同樣地設定對應佇列暫存單元Q3之監 心·暫存器Μ 3所儲存的延遲時間值。所以,重排資料讀取 指令的操作便產生下列結果: 、#
第30頁 1240166 五、發明說明(20) 資料讀取指令:UA4,RB3,RB4,RA5,RA6,RB5, RB6} 符列暫存單元:(RA1), Q2 (RA2), Q3 (RA3), Q4 (RBI), Q5 (RB2), Q6, Q7, Q8, Q9, Q10, Qll, Q12} 監控暫存器:{Ml (〇),M2 (0),M3 (0),M4 (1),M5 ⑴,M6,M7,M8,M9,M10,Mil,M12} 身料讀取指令RA4如同資料讀取指令RA3,其係用來擷取
^ 一記憶分頁A所紀錄的資料(步驟1 〇2),此外,資料 讀取指令RA3並非指令佇列40中最後的資料讀取指令(步 驟1 〇 6)。明顯地,監控暫存器从4的延遲時間值於調整後 並不會超過該最大可容許數值(步驟丨〇 8),所以,資料 頌取指令RBI、RB2便會因為插入資料讀取指令ra4而被進 一步遞延其執行時序(步驟11 〇),而佇列暫存單元Q4此 時便儲存資料讀取指令RA4而非資料讀取指令rb 1,此 外,遞延之資料讀取指令RB1、RB2則分別儲存於佇列暫 存單元Q5、Q6。因為資料讀取指令RBI、RB2被延遲,所
以相對應的延遲時間值亦需隨之增加該遞增值。此外, 同一初始值便同樣地設定·對應佇列暫存單元以之監控暫 存器M4所儲存的延遲時間值。所以,重排資料讀取指令 的操作此時便產生下列結果: 資料讀取指令:{RB3,RB4,RA5,RA6,RB5, RB6} 佇列暫存單元:{Q1 (RA1),Q2 (RA2),Q3 ’(RA3),Q4 (RA4),Q5 (RB1),Q6 (RB2),Q7,Q8,Q9, Qi〇,’QU,
第31頁 1240166 五、發明說明(21) Q12} 監控暫存器:{M1(0),M2(0),M3(0),M4(0),M5(2), M6 ( 2),M7,M8,M9,Ml 0,Ml 1,Ml 2} 兩資料讀取指令RB2、RB3均用來擷取同一記憶分頁B所儲 存的資料,然而,於指令佇列40中,資料讀取指令RB2現 在係為最後的讀取指令,所以資料讀取指令RB3便可直接 地存入指令佇列4 0 (步驟1 〇 6、1 0 4),而資料讀取指令 RB3係儲存於佇列暫存單元q7中。此外,同一初始值便同 樣地設定對應佇列暫存單元q7之監控暫存器M7所儲存的 延遲時間值。所以,重排資料讀取指令的操作便產生下 列結果: 資料讀取指令:{RB4,RA5,RA6,RB5,RB6} 佇列暫存單元:{Q1 (RA1), Q2 (RA2), Q3 (RA3), Q4 (RA4), Q5 (RBI), Q6 (RB2), Q7 (RB3), Q8, Q9, Q10, Qll, Q12} 監控暫存器:{M1(0), M2(0), M3(0),M4(0),M5(2), M6( 2) , M7(〇), M8, M9, M10, Mil, M12} 同樣地,兩資料讀取指令RB3、RB4均用來擷取同一記憶 分頁B所儲存的資料,且於指令佇列4 0中,資料讀取指令 RB3係為最後的讀取指令,所以資料讀取指令RB4便可直 接地存入指令佇列4 0 (步驟1 0 6、1 0 4),而資料讀取指
第32頁 1240166 五、發明說明(22) — 令RB4係儲存於佇列暫存單元Q8中。此外,同一初始值便 同樣地設定對應符列暫存單元Q 8之監控暫存器M 8所儲存 的延遲時間值。所以,重排資料讀取指令的操作便產生 下列結果: 資料讀取指令:{RA5, RA6,RB5,RB6} 件列暫存單元:(RA1), Q2 (RA2), Q3 (RA3), (RA4),Q5 (RB1),Q6 (RB2),Q7.(RB3),Q8 (RB’4) Q9, Q10, Qll, Q12} ’ 監控暫存器·· {M1(0), M2(0),M3(0),M4(0),M5(2), M6 ( 2),M7(0),M8(0),M9,M10,Mil, M12} ’ 資料讀取指令RA4、RA5所要求的資料係儲存於同一記憶 分頁A (步驟1 〇2),此外,資料讀取指令RA4並非指令符 列4 0中排列於最後的資料讀取指令(步驟1 〇 6)。若緊接 於資料讀取指令RA4後之資料讀取指令rB1又被遞延」、 次,則相對應之延遲時間值於增加該遞增值後會成為3, 亦即延遲時間值便會超過該最大可容許數值(步驟’
108)。所以,原本儲存於指令佇列40中的資料讀取指令 便不會重新排列來插入資料讀取指令RA5,因此,本實施 例中,資料讀取指令RA5便會直接地存入指令佇列4〇 ^步 驟j 〇4),且資料讀取指令ra5會儲存於仵列暫存器g而具 有最低的執行優先權。此外,同一初始值便同樣地設定 對應仵列暫存單元Q9之監控暫存器M9所儲存的延遲時間
1240166 五、發明說明(23) 值。所以,重排資料讀取指令的操作便會產生下列結 果: 資料讀取指令:{RA6,RB5,RB6} 佇列暫存單元:{Q1 (RA1), Q2 (RA2), Q3 (RA3), Q4 (RA4), Q5 (RB1), Q6 (RB2), Q7 (RB3), Q8 (RB4), Q9 (RA5), Ql〇, Qll, Q12} 監控暫存器:{M1(0), M2(0),M3(0), M4(0),M5(2), M6(2) , M7(0), M8(0), M9(0), M10, Mil, M12) 兩資料讀取指令RA5、RA6均用來擷取同一記憶分頁A所儲 存的資料,且於指令佇列40中,資.讀取指令RA5係為最 後的讀取指令,所以資料讀取指令RA6便會直接地存入指 令佇列40 (步驟106、104),而資料讀取指令RA6係儲存 於佇列暫存單元Q 1 〇中。此外,同一初始值便同樣地設定 對應佇列暫存單元Q 1 〇之監控暫存器Μ 1 〇所儲存的延遲時 間值。所以,重排資料讀取指令的操作便產生下列結 果: 資料讀取指令:{RB5,RB6} 符列暫存單元:{Q1 (RA1), Q2 (RA2), Q3 (RA3), Q4 (RA4), Q5 (RBI), Q6 (RB2), Q7 (RB3), Q8 (RB4), Q9 (RA5), Ql〇 (RA6), Qll, Q12} 監控暫存器:{Μ1(0), Μ2(0),Μ3(〇),Μ4(0), Μ5(2),
1240166 五、發明說明(24) |m6(2) , M7(0), M8(〇), M9(0), MIO(O), Mil, M12} i j 資料讀取指令RB 5如同資料讀取指令RB4,其係用來擷取 同一記憶分頁B所紀錄的資料(步驟1 0 2),此外,資料 讀取指令RB4並非指令佇列40中最後的資料讀取指令(步 驟1 0 6)。此時,監控暫存器Μ 9所記錄的延遲時間值仍為 0,且其於增加該遞增值後為1而不會超過該最大可容許 數值(步驟108)。所以,資料讀取指令RA5、RA6便可因 為插入資料讀取指令RB5而重排其於指令佇列40中的位置 (步驟1 1 0)。此外,佇列暫存單元Q9此時紀錄資料讀取 指令RB5而非資料讀取指令RA5,而資料讀取指令RA5、 R A 6則因為遞延其執行時序而分別儲存於佇列暫存單元 Q1 0、Q1 1中。由於資料讀取指令R A 5、R A 6被延遲,所以 相對應的延遲時間值亦需隨之調整而增加該遞增值。此 外,同一初始值便同樣地設定對應佇列暫存單元Q 9之監 控暫存器Μ 9所儲存的延遲時間值。所以,重排資料讀取 指令的操作便產生下列結果: 資料讀取指令:{RB6 } 佇列暫存單元:{Qi (RA1), Q2 (RA2), Q3 (RA3), Q4 (RA4), Q5 (RBI), Q6 (RB2), Q7 (RB3), Q8 (RB4), Qg (RB5), Q10 (RA5), Q11 (RA6), Q12} 監控暫存器:{M1(0), M2(0), M3(0), M4(0), M5(2), M6(2) , M7(0), M8(0), M9(0), M10(l), Mll(l),
第35頁 1240166 五、發明說明(25) M12} 資料讀取指令RB6如同資料讀取指令RB5,其係用來擷取 同一記憶分頁B所紀錄的資料(步驟1 〇 2),此外,資料 讀取指令RB5並非指令佇列40中最後的資料讀取指令(步 驟1 0 6)。明顯地,監控暫存器M丨〇的延遲時間值於調整 後並不會超過該最大可容許數值(步驟1〇8),所以,資 料讀取指令RA5、RA6便由於插入資料讀取指令RB6而被進 一步遞延其執行時序(步驟1丨0),而佇列暫存單元q 1 〇 此時便儲存資料讀取指令rB6而非資料讀取指令rA5,此 外’遞延之資料讀取指令RA5、RA6則分別儲存於佇列暫 存單元Q11、飞忾擧___料讀取指.RA5、RA6又被延 遲’所以相對應的延遲時間值亦需隨之增加該遞增值。 此外’同一初始值便同樣地設定對應佇列暫存單元Q 1 〇之 監控暫存器Μ 1 0所儲存的延遲時間值。所以,重排資料讀 取指令的操作最後便產生下列的結果: 資料讀取指令:㈠ 仵列暫存單元:{Q1 (RA1), Q2 (RA2), Q3 (RA3), Q4 (RA4), Q5 (RB1), Q6 (RB2), Q7 (RB3), Q8 (RB4), Q9 ^RB5), Ql〇 (RB6), Qll (RA5), Q12 (RA6)} 監控暫存器:{M1(0),M2(0),M3(0), M4(0),M5(2), M6(2) , M7(0), M8(0), M9(0), M10(0), Mll(2), M12 (2)}
第36頁 1240166 五、發明說明(26) ! ί
I ! 請參閱圖六,圖六為記憶裝置2 0於本發明重排資料存取 指令執行後的運作示意圖。如上所述,資料讀取指令的 最後執行順序為:RA1、RA2、RA3、RA4、RBI、RB2、 RB3、RB4、RB4、RB5、RA5、RA6,而該最後執行順序係 不同於原本的執行順序:RA1、RA2、RBI、RB2、RA3、 RA4、RB3、RB4、RA5、RA6。如圖六所示,因為兩次記憶 分頁不吻合(page m i s s)而需觸發兩次記憶分頁的切換 操作。所以,對於記憶體匯流排來說,切換記憶分頁的 操作會造成該記憶體匯流排等待兩次延遲時間L 1,然 而,對於主機匯流排來說,兩次切換記憶分頁的操作僅 會造成該主機匯流排等待一次延遲時間L 2。相較於圖 二,圖六顯示本發明重排資料存取指令的操作可節省大 量時間耗費於切換不同的記憶體分頁,此外,主機匯流 排的使用也更有效率。明顯地,本發明重排資料存取指 令的操作僅需較短的時間即可將主控制器所要的資料自 記憶裝置擷取並傳遞至主控制器。另外,本發明記憶體 控制電路3 0係設置於一北橋電路(η 〇 r t h b r i d g e c i r c u i t)中,所以該北橋電路即可支援重排資料存取指 令的功能,因此該北橋電路可視為一 reorder-enable d之 北橋電路。 相較於圖二,圖六亦清楚地顯示延遲時間L 2係大幅地減 少,而由於主機匯流排具有較佳的利用率,因此整體資 1240166 方法不僅只簡 令,此外,本 同一記憶分頁 大可容許數值 指令會十分嚴 存取指令的執 法僅將該新接 指令"[宁列而不 經由密切地監 應的·延遲時間 一般而大幅地 主機匯流排的 於本實施例中 排的效能因為 由圖六可知, 趨近主機匯流 體匯流排的使 最佳化資料存 數值係為可程 求來適當地平 能。換句話說 體匯流排與主 五、發明說明(27) 料存取效能也 許數值係用來 分頁所耗費的 上資料傳輸運 運作的結束時 排的使用達到 能。請注意, 滿足不同資料 排的效能與主 大玎容許數值 生最佳的資料 本發明重排資 同/記憶分頁 存取指令的方 令時會避免違 若插入一新接 已儲存於指令 發明重排資料 指令如同往常 令符列中之資 佇列中之資料 排的效能便不 述’記憶體匯 大幅地提昇。 避免主機匯流 時間而變差, 作的結束時間 間,亦即記憶 一平衡狀態而 該最大可容許 處理系統的需 機匯流排的效 的設定,記憶 傳輸效能。 料存取指令的 的資料存取指 法於聚集存取 背所設定的最 收的資料存取 佇列中之資料 存取指令的方 一般地存入該 料存取指令。 存取指令所對 會如習知技術 流排的效能與 ,一最大可容 降低切換記憶 記憶體匯流排 排上資料傳輸 用與主機匯流 取操作的效 式化,以便可 衡記憶體匯流 ,經由適當最 機匯流排可產 單地聚集存取 發明重排資料 的資料存取指 。換句話說, 重地遞延目前 行時序,則本 收的資料存取 重排儲存於指 控儲存於指令 值,主機匯流 惡化。綜合上 效能便可取得
1240166 五、發明說明(28) 一平衡點以達到最佳化資料處理系統之整體效能的目 的〇 以上所述僅為本發明之較佳實施例,凡依本發明申請專 利範圍所做之均等變化與修飾,皆應屬本發明專利之涵 蓋範圍。
第39頁 1240166 圖式簡單說明 圖式之簡單說明
圖 — 為 習 知 電 腦 系 統 的 示 意 圖 〇 圖 二 為 記 憶 裝 置 之 第 _ 種 習 知 資 料 存 取 操 作 的 示 意 圖。 圖 三 為 記 憶 裝 置 之 第 二 種 習 知 資 料 存 取 操 作 的 示 意 圖。 圖 四 為 本 發 明 記 憶 體 控 制 電 路 的 功 能 方 塊 示 意 圖 〇 圖 五 為 本 發 明 重 排 資 料 存 取 指 令 的 操 作 流 程 圖 〇 圖 六 為 記 憶 裝 置 於 本 發 明 重 排 資 料 存 取 指 令 執 行 後 的運 作 示 意 圖 〇 圖 式 之 符 號 說 明 10 電 腦 系 統 12 中 央 處 理 器 14 北 橋 電 路 16 南 橋 電 路 18 顯 示 控 制 電路 20 記 憶 裝 置 22 入 /輸出裝置 24 硬 碟 26' 30 記 憶 體控制 電路 32 記 憶 分 頁 /記憶庫比較單元 34 延 遲 時 間 控制單 元 36 重 排 控 制 單 元 38 指 令 彳宁 列 選取單 元 40 指 令 佇 列 42 延 遲 時 間 監控單 元 44 記 憶 體 存 取 狀態機 46 佇 列 暫 存 XJ0 一 早兀 48 監 控 暫 存 器 第40頁
Claims (1)
1240166 六、申請專利範圍 — 1 ·、一種存取電腦系統之記憶裝置的方法,該記憶裝置係 ,連接於〆冗憶體控制電路(memo:ry control ler),該 冗憶體控制電路係依據—主控制器(master device)依 序輸出之資^存取指令(access request)來逐一地回 應該主控制器’該記憶體控制電路包含有一指令佇列 (request queue)以及一延遲時間監控單元(utency monitoring unit)電連接於該指令佇列,該方法包含 有: (a)使用該指令件列儲存該主控制器輸出之資料存取指 令; (b )使用該延遲時間監控單元紀錄複數個延遲時間值 (latency value),該複數個延遲時間值係分別對應該 指令佇列所儲存之資料存取指令; (c )使用該記憶體控制電路接收一第一資料存取指令,將 該第一資料存取指令存入該指令佇列,以及依據已儲存 於該指令佇列之資料存取指令所對應之延遲時間值來設 定該第一資料存取指令所對應之執行優先權;以及 (d )依據該指令佇列所儲存之資料存取指令所對應的執行 優先權’使用該記憶體控制電路來逐一地存取該記憶裝 置。 2 ·如申請專利範圍第1項所述之方法,其中步驟(c )另包 含有: 判斷該第一資料存取指令是否用來存取該記憶裝置之第
第41頁 1240166 :六、申請專利範圍 一記憶分頁;以及 判斷該指令佇列是否已儲存一第二資料存取指令與一第 三資料存取指令分別用來存取該記憶裝置之第一分頁與 該記憶裝置之第二分頁,該第三資料存取指令係緊鄰於 該第二資料存取指令之後,且該第三資料存取指令所對 應之執行優先權低於該第二資料存取指令所對應之執行 優先權。 3 ·如申請專利範圍第2項所述之方法,其中步驟(c)另包 含有: 若對應該第三資料存取指令之第三延遲時間值不大於一 最大可容許數值,設定該第一資料存取指令之執行優先 權高於該第三資料存取指令所對應之執行優先權,使用 一初始值設定對應該第一資料存取指令之第一延遲時間 值,以及使用一遞增值增加該第三延遲時間值;以及 若對應該第三資料存取指令之第三延遲時間值大於該最 大可容許數值,設定該第一資料存取指令之執行優先權 低於該第三資料存取指令所對應之執行優先權,且使用 該初始值設定對應該第一資料存取指令之第一延遲時間 值。 4 ·如申請專利範圍第3項所述之方法,其中該最大可容 許數值係為可程式化(programmable) °
第42頁 1240166 六、申請專利範圍 5 ·如申請專利範圍第3項所述之方法,其中若對 三資料存取指令之第三延遲時間值不大於該最大 數值,該第一資料存取指令所設定之執行優先權 β亥弟一資料存取指令所對應之執行優先權。 6 ·如申請專利範圍第2項所述之方法,其中步驟 含有: 若已儲存於該指令符列之第二資料存取指令係對 低執行優先權,則存入該第一資料存取指令至該 列而使該第一資料存取指令對應該最低執行優先 及使用一初始值設定對應該第一資料存取指令之 遲時間值。 7 ·如申請專利範圍第2項所述之方法,其中步驟 含有: ' 若該指令彳宁列係為空置(empty),則存入該第-取指令至該指令佇列,以及使用一初始值設定對 一資料存取指令之第一延遲時間值。 8 ·如申請專利範圍第1項所述之方法,其另包含 分別使用一預定遞增值來增加該指令符^中具有 先權低於該第一資料存取指令之執行優先權之資 指令所對應的延遲時間值。 應該第 可容許 係低於 (c)另包 應一最 指令佇 權,以 第一延 (C)另包 -資料存 應該第 有: 執行優 料存取 1240166 申請專利範圍 修如申I請專利,第法,其中該記憶震置 ,為該嗓腦系統之主a憶體。 〇 ·如申請專利範圍第9項戶斤、+、令^^ ^ • ^ r ^ ^ 只所述之方法,其中該主記愫體 為動態隨機存取記憶體。 、 " 制電路1 ^置於該電腦系員:之述北之橋方電法路其中該記憶體控 1 2 · —種經由記憶體控制·雷 的方法,該記憶體控制電電f系統之記憶裝置 ,Λ .、分广认b —电略係依據一主控制器(master 爽、豕1Cei ί ΐ出之貧料存取指令(access reQuest) 來逐一地回應该主控制器,該方法包含有: =儲存該主控制器輸出之資料存取指令於該指令佇列 (b)紀錄,數個延遲時間值(latency vaiue),該複數 個延遲時間值係分別對應該指令佇列所儲存之取 指令; 、 (C )接收一第一資料存取指令,將該第一資料存取指令存 入該指令佇列,以及依據已儲存於該指令佇列之資料存 取指令所對應之延遲時間值來設定該第一資料存取指令 所對應之執行優先權;以及 (d)依據該指令佇列所儲存之資料存取指令所對應的執行 優先權來逐一地存取該記憶裝置。
第44頁 1240166 、 -. - _ .- — ·—— — /、、申請專利範圍 13·如申請專利範圍第12項所述之方法,其中少驟 包含有: 判斷該第一資料存取指令是否用來存取該記憶裝ϊ —記憶分頁;以及 判斷该指令彳宁列是否已儲存一第二資料存取指令與 =身料存取指令分別用來存取該記憶裝置之第〆分 ,記憶裝置之第二分頁,該第三資料存取指令係緊 w亥苐一資料存取指令之後,且該第三資料存取指令 應之執行優先權低於該第二資料存取指令所對應之 優先權。 ' 1 4 ·如申請專利範圍第1 3項所述之方法,其中步驟 包含有: 若對應該第三資料存取指令之第三延遲時間值不大 最大可容許數值,設定談第一資料存取指令之執行 權高於該第三資料存取指令所對應之執行優先權, 一初始值設定對應該第一資料存取指令之第一延遲 值,以及使用一遞增值增加該第三延遲時間值;以 若對應該第三資料存取指令之第三延遲時間值大於 大可容許數值,設定該第一資料存取指令之執行優 低於該第三資料存取指令所對應之執行優先權,且 該初始值設定對應該第一資料存取指令之第一延遲 值0 (c)另 之第 /第 頁與 鄰於 所對 執行 (C)另 於一 優先 使用 時間 及 該最 先權 使用 時間 1240166 I … :六、申請專利範圍 ί ί 1 5 ·如申請專利範圍第1 4項所述之方法,其中該最大可 容許數值係為玎程式化(Programmable)。 1 6 ·如申請專利範圍第1 4項所述之方法,其中若對應該 第三資料存取指令之第三延遲時間值不大於該最大可容 許數值,該第一資料存取指令所設定之執行優先權係低 於該第二資料存取指令所對應之執行優先權。
1 7 ·如申請專利範圍第1 3項所述之方法,其中步驟(C )另 包含有: 若已儲存於該指令仵列之第二資料存取指令係對應一最 低執行優先權,則存入該第一資料存取指令至該指令佇 列而使該第一資料存取指令對應該最低執行優先權,以 及使用一初始值設定對應該第一資料存取指令之第一延 遲時間值。 1 8 ·如申請專利範圍第1 3項所述之方法,其中步驟(c )另 包含有: 各該指令彳宁列係為空置(empty),則存入該第一資料存 取指令至該指令佇列,以及使用一初始值設定對應該第 一資料存取指令之第一延遲時間值。 1 9 .如申請專利範圍第1 2項所述之方法,其另包含有:
第46頁 1240166 六、申請專利範圍 一 ί,使用一預定遞增值來增加該指令佇列中具有執行優 先榷低於該第一資料指令之執行優先權之資料存取 μ m u心遲時間值。 2 〇.如申請專利範圍第1 2項所述之方法,其中該記憶裝 置係為該電腦系統之主記憶體。 2 1.如申凊專利範圍第2 〇項所述之方法,其中該主記憶 體係為動態隨她+ Λ
心1思機存取記憶體。 2 2 ·如申請專利範圍第1 2項所述之方法,其中該記憶體 控制電路係設置於該電腦系統之北橋電路。 23· —種記憶體控制電路(mem〇ry controller),用來 存取一電腦系統之記憶裝置,該記憶裝置係電連接於該 記憶體控制電路,該記憶體控制電路係依據一主控制器 (master device)依序輸出之賢氣 request)來逐一地回應該主控制器,該記憶體控制電路 包含有: 一指令仔列(request queue),用來儲存該主控制器輸 出之資料存取指令; 一延遲時間監控單元(latency monitoring unit),電 連接於該指令彳宁列’用來紀錄複數傭延遲時間值 (latency value),該複數個延遲時間值係分別對應該
1240166 今-、申請專利範圍 — |相令佇列所儲存之資料存取指令;以及 重排控制單元(reorder decisi〇n — making ^1·^), =連接於該指令佇列,用來依據已儲存於該指令佇列之 ^料存取指令所對應之延遲時間值控制一第一資料存取 相令存入該指令佇列並對應/執行優先權; /、中5亥§己丨思裝置係依據該指令彳丁列所错存之資料存取指 令所對應的執行優先權而依序地被存取。 2 4 ·如申請專利範圍第2 3項所述之記憶體控制電路,其 另包含有·· ~記憶分頁/記憶庫比較單元(page/bank comparing un i t),電連接於該重排控制單元與該指令佇列,用來 判斷該第一資料存取指令是否用來存取該記憶裝置之第 一記憶分頁,以及判斷該指令佇列是否已儲存一第二資 料存取指令與一第三資料存取和令分別用來存取該記憶 裝置之第一分頁與該記憶裝置之第二分頁,其中該第三 資料存取指令係緊鄰於該第二資料存取指令之後,且該 第三資料存取指令所對應之執行優先權低於該第二資料 存取指令所對應之執行優先權。 2 5 ·如申請專利範圍第2 4項所述之記憶體控制電路,其 另包含有: 一延遲時間控制單元(latency control unit),電連 接於該重排控制單元與該延遲時間監控單元,用來偵測
第48頁 1240166 六、申請專利範圍 I 一 |對應該第三資料存取指令之第三延遲時間值是否大於一 最大可容許數值。 2 6 ·如申請專利範圍第2 5項所述之記憶體控制電路,其 中该敢大可容許數值係為可程式化(pr〇gramma|3le)。 2 7 ·如申請專利範圍第2 3項所述之記憶體控制電路,其 中該記憶裝置係為該電腦系統之主記憶體。 2 8 ·如申請專利範圍第2 7項所述之記憶體控制電路,其 中該主記憶體係為動態隨機存取記憶體。 2 9 ·如申請專利範圍第2 3項所述之記憶體控制電路,其 中該記憶體控制電路係設置於該電腦系統之北橋電路。 3 0 · —種存取電腦系統之記憶裝置之方法,其包含有: 接收複數個資料存取指令(access request)以依據一 第一預定順序存取該記憶裝置;以及 依據一苐一預定順序於一指令仔列(request queue)中 重排(reorder)該複數個資料存取指令,以重新安置用 來存取一記憶分頁之第一資料存取指令緊接於用來存取 該記憶分頁之第二資料存取指令之後; 其中若重新安置該第一資料存取指令會造成一第三資料 存取指令之延遲時間值超過一預定限制值,則禁止重新
1240166 i六、申請專利範圍 I安置該弟'^貧料存取指令。 3 1 .如申請專利範圍第3 0項所述之方法,其中於該第一 資料存取指令存入該指令佇列前,該第三資料存取指令 於該指令佇列中係緊接於該第二資料存取指令之後。 3 2 .如申請專利範圍第3 0項所述之方法,其中重新安置 該第一資料存取指令之操作另包含有: 判別該第一資料存取指令與該第二資料存取指令均存取 該記憶分頁, 判斷該第三資料存取指令係存取另一記憶分頁;以及 於該指令佇列中,插入該第一資料存取指令於該第二資 料存取指令與該第三資料存取指令之間。 3 3 .如申請專利範圍第3 2項所述之方法,其另包含有: 判別對應該第三資料存取指令之延遲時間值; 於存入該第一資料存取指令至該指令佇列前,檢查該第 三資料存取指令之延遲時間值是否會於插入該第一資料 存取指令後增加而超過該預定限制值;以及 於存入該第一資料存取指令至該指令佇列後,使用一預 定遞增值增加該第三資料存取指令之延遲時間值。 3 4 .如申請專利範圍第3 3項所述之方法,其中該預定遞 增值係為可程式化(programmab 1 e)。 1240166 六、申請專利範圍 35·如_申請專 制值係為可程 3 6 . —種存取 接收複數個資 記憶裝置之一 將存取同一記 群組(group) 中原本對應一 其中若聚集一 料存取指令之 集該資料存取 3 7 ·如申請專 該預定順序之 (a )判別於一 | 令與該第二資 (b)判斷一第Ξ (c )於該指令个, 資料存取指令 (d )對於所有名 驟(a )、( b )、 利範圍第3 0項所述之方法,其中該預定限 式化(programmable) 〇 電腦系統之記憶裝置之方法,其包含有: 料存取指令(access request)以存取該 或複數個記憶分頁;以及 憶分頁之資料存取指令聚集於一或複數個 中來重排一指令仔列(request queue) 預定順序之複數個資料存取指令; 資料存取指令會造成該指令佇列中另一資 延遲時間值超過一預定限制值,則禁止聚 指令。 利範圍第3 6項所述之方法,其中重排對應 複數個資料存取指令的操作另包含有: ξ二資料存取指令後接收之第一資料存取指 料存取指令均存取同一記憶分頁; 二資料存取指令係存取另一記憶分頁; 「列中’插入該第一資料存取指令於該第二 與該第三資料存取指令之間;以及 ^收之複數個資料存取指令重複執行上述步 (c )。 1240166 六、申請專利範圍 3 8 .如申請專利範圍第3 7項所述之方法,其中步驟(c )另 包含有: 判別對應該第三資料存取指令之延遲時間值; 於存入該第一資料存取指令至該指令佇列前,檢查該第 三資料存取指令之延遲時間值是否會於插入該第一資料 存取指令後增加而超過該預定限制值;以及 於存入該第一資料存取指令.至該指令佇列後,使用一預 定遞增值增加該第三資料存取指令之延遲時間值。 3 9 .如申請專利範圍第3 8項所述之方法,其中該預定遞 增值係為可程式化(programmab 1 e)。 4 0 .如申請專利範圍第3 6項所述之方法,其中該預定限 制值係為可程式化( programmable)。
第52頁
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US44004603P | 2003-01-15 | 2003-01-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200416536A TW200416536A (en) | 2004-09-01 |
TWI240166B true TWI240166B (en) | 2005-09-21 |
Family
ID=34272363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW093100948A TWI240166B (en) | 2003-01-15 | 2004-01-14 | Method and related apparatus for reordering access requests used to access main memory of a data processing system |
Country Status (3)
Country | Link |
---|---|
US (1) | US7069399B2 (zh) |
CN (1) | CN1252605C (zh) |
TW (1) | TWI240166B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9842068B2 (en) | 2010-04-14 | 2017-12-12 | Qualcomm Incorporated | Methods of bus arbitration for low power memory access |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW591407B (en) * | 2003-03-21 | 2004-06-11 | Via Tech Inc | Method for a display controller to access data stored in a system memory of a computer device |
KR100607987B1 (ko) * | 2004-06-24 | 2006-08-02 | 삼성전자주식회사 | 명령어 스케줄링을 수행하는 메모리 제어장치 및 방법 |
US20060271739A1 (en) * | 2005-05-24 | 2006-11-30 | Shu-Fang Tsai | Management of transfer of commands |
JP2007249837A (ja) * | 2006-03-17 | 2007-09-27 | Nec Electronics Corp | メモリ制御装置、メモリ制御方法及び携帯機器 |
US8601181B2 (en) * | 2007-11-26 | 2013-12-03 | Spansion Llc | System and method for read data buffering wherein an arbitration policy determines whether internal or external buffers are given preference |
US7979604B2 (en) * | 2008-01-07 | 2011-07-12 | Hitachi, Ltd. | Methods and apparatus for assigning performance to data volumes on data storage systems |
JP5414209B2 (ja) * | 2008-06-30 | 2014-02-12 | キヤノン株式会社 | メモリコントローラおよびその制御方法 |
CN101324869B (zh) * | 2008-07-03 | 2010-04-14 | 北京中星微电子有限公司 | 一种基于axi总线的多路复用器 |
US9703595B2 (en) * | 2008-10-02 | 2017-07-11 | Mindspeed Technologies, Llc | Multi-core system with central transaction control |
US8683471B2 (en) * | 2008-10-02 | 2014-03-25 | Mindspeed Technologies, Inc. | Highly distributed parallel processing on multi-core device |
US8370603B2 (en) * | 2008-12-23 | 2013-02-05 | Apple Inc. | Architecture for address mapping of managed non-volatile memory |
US20100211714A1 (en) * | 2009-02-13 | 2010-08-19 | Unisys Corporation | Method, system, and apparatus for transferring data between system memory and input/output busses |
US8321647B2 (en) | 2009-05-06 | 2012-11-27 | Apple Inc. | Multipage preparation commands for non-volatile memory systems |
US8438453B2 (en) | 2009-05-06 | 2013-05-07 | Apple Inc. | Low latency read operation for managed non-volatile memory |
CN101923522B (zh) * | 2009-06-11 | 2013-05-08 | 中兴通讯股份有限公司 | 存储控制器及数据操作命令的处理方法 |
US20110004718A1 (en) | 2009-07-02 | 2011-01-06 | Ross John Stenfort | System, method, and computer program product for ordering a plurality of write commands associated with a storage device |
US8495332B2 (en) * | 2009-07-24 | 2013-07-23 | Apple Inc. | Controller for optimizing throughput of read operations |
US8838877B2 (en) * | 2009-09-16 | 2014-09-16 | Apple Inc. | File system derived metadata for management of non-volatile memory |
US8489907B2 (en) * | 2009-09-16 | 2013-07-16 | Apple Inc. | Method of selective power cycling of components in a memory device independently by reducing power to a memory array or memory controller |
CN101788963B (zh) * | 2010-03-18 | 2012-05-02 | 烽火通信科技股份有限公司 | Dram存储控制方法及装置 |
US8539129B2 (en) * | 2010-04-14 | 2013-09-17 | Qualcomm Incorporated | Bus arbitration techniques to reduce access latency |
JP5625737B2 (ja) * | 2010-10-22 | 2014-11-19 | 富士通株式会社 | 転送装置、転送方法および転送プログラム |
US20130111084A1 (en) * | 2011-11-01 | 2013-05-02 | Qualcomm Incorporated | Methods and devices for single link aggregated buses |
US10318445B2 (en) * | 2011-11-28 | 2019-06-11 | International Business Machines Corporation | Priority level adaptation in a dispersed storage network |
US10558592B2 (en) | 2011-11-28 | 2020-02-11 | Pure Storage, Inc. | Priority level adaptation in a dispersed storage network |
US11474958B1 (en) | 2011-11-28 | 2022-10-18 | Pure Storage, Inc. | Generating and queuing system messages with priorities in a storage network |
KR101292309B1 (ko) * | 2011-12-27 | 2013-07-31 | 숭실대학교산학협력단 | 반도체칩 및 메모리 제어방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체 |
CN102609378B (zh) * | 2012-01-18 | 2016-03-30 | 中国科学院计算技术研究所 | 一种消息式内存访问装置及其访问方法 |
WO2016117190A1 (ja) * | 2015-01-22 | 2016-07-28 | ソニー株式会社 | メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法 |
CN106814940B (zh) * | 2015-11-30 | 2020-11-03 | 创新先进技术有限公司 | 数值输入方法及装置 |
TWI621021B (zh) | 2017-08-25 | 2018-04-11 | 慧榮科技股份有限公司 | 用以優化資料儲存裝置之資料儲存方法及其資料儲存裝置 |
CN108491711B (zh) * | 2018-03-28 | 2021-12-07 | 东阳市前途工业设计有限公司 | 一种用于管控电子设备使用时间的方法和装置 |
US11669274B2 (en) * | 2021-03-31 | 2023-06-06 | Advanced Micro Devices, Inc. | Write bank group mask during arbitration |
CN113806142B (zh) * | 2021-08-30 | 2023-12-22 | 济南浪潮数据技术有限公司 | 一种数据恢复方法、装置及相关设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6564304B1 (en) * | 2000-09-01 | 2003-05-13 | Ati Technologies Inc. | Memory processing system and method for accessing memory including reordering memory requests to reduce mode switching |
-
2003
- 2003-07-01 US US10/609,386 patent/US7069399B2/en not_active Expired - Lifetime
-
2004
- 2004-01-14 TW TW093100948A patent/TWI240166B/zh not_active IP Right Cessation
- 2004-01-15 CN CNB2004100018919A patent/CN1252605C/zh not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9842068B2 (en) | 2010-04-14 | 2017-12-12 | Qualcomm Incorporated | Methods of bus arbitration for low power memory access |
Also Published As
Publication number | Publication date |
---|---|
US7069399B2 (en) | 2006-06-27 |
TW200416536A (en) | 2004-09-01 |
CN1516030A (zh) | 2004-07-28 |
CN1252605C (zh) | 2006-04-19 |
US20040139286A1 (en) | 2004-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI240166B (en) | Method and related apparatus for reordering access requests used to access main memory of a data processing system | |
CN111566610B (zh) | 命令选择策略 | |
JP6840145B2 (ja) | 高速メモリインタフェースのためのコマンドアービトレーション | |
US11403037B2 (en) | Ordering memory requests based on access efficiency | |
US12038856B2 (en) | Memory controller with a plurality of command sub-queues and corresponding arbiters | |
JP2019520640A (ja) | セルフリフレッシュステートマシンmopアレイ | |
KR101554294B1 (ko) | 추론적 프리챠지의 검출 | |
JP5893632B2 (ja) | ストリームトランザクション情報に基づいてページ管理ポリシーを適用するためのメモリコントローラ、システム、および方法 | |
US7366854B2 (en) | Systems and methods for scheduling memory requests utilizing multi-level arbitration | |
CN114902198A (zh) | 用于异构存储器系统的信令 | |
CN117083588A (zh) | 仲裁期间写入存储体组掩码 | |
US12073114B2 (en) | Stacked command queue | |
KR20230023014A (ko) | Dram 커맨드 스트리크 관리 | |
KR20230004912A (ko) | 효율적인 메모리 버스 관리 | |
JP2024528414A (ja) | ハイブリッドdram/永続メモリチャネルアービトレーションを有するメモリコントローラ | |
CN113946435A (zh) | 内存管理技术及计算机系统 | |
US20240281255A1 (en) | Super-thread processor | |
CN111459414B (zh) | 存储器调度方法及存储器控制器 | |
CN112965816B (zh) | 内存管理技术及计算机系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MK4A | Expiration of patent term of an invention patent |