TWI553483B - 處理器及存取記憶體的方法 - Google Patents
處理器及存取記憶體的方法 Download PDFInfo
- Publication number
- TWI553483B TWI553483B TW103135424A TW103135424A TWI553483B TW I553483 B TWI553483 B TW I553483B TW 103135424 A TW103135424 A TW 103135424A TW 103135424 A TW103135424 A TW 103135424A TW I553483 B TWI553483 B TW I553483B
- Authority
- TW
- Taiwan
- Prior art keywords
- read
- write
- memory controller
- block address
- transferred
- Prior art date
Links
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Description
本發明係有關於處理器,尤指一種處理器存取一外部記憶體的方法。
處理器在執行操作時,內部會有多個電路模組需要自動態隨機存取記憶體(Dynamic Random-Access Memory,DRAM))中讀取資料,或是將資料寫入到DRAM中,因此,這些電路模組會分別發送多個讀取/寫入指令到一DRAM控制器中,以要求進行讀取/寫入DRAM的操作。
然而,由於處理器在發送這些讀取/寫入指令到DRAM控制器時,通常並不會對這些讀取/寫入指令在處理器端做有利於DRAM傳輸協定之排序(DRAM-aware protocol scheduling)的工作,因此,會造成後端DRAM控制器的負擔增加,且在資料的存取上也比較沒有效率並增加存取反應時間。
因此,本發明的目的之一在於提供一種處理器及其存取記憶體的方法,其可以透過仲裁器來安排多個讀取/寫入指令傳送到一記憶體控制器的順序,以解決先前技術的問題。
依據本發明一實施例,一種處理器包含了多個儲存模組以及一仲裁器,其中該多個儲存模組分別用以儲存並同時發送多個讀取/寫入指令,且該多個讀取/寫入指令係用來要求讀取/寫入位於該處理器外部的一記憶體;以
及該仲裁器係耦接於該多個儲存模組,且用以接收來自該多個儲存模組之該多個讀取/寫入指令,並安排該多個讀取/寫入指令傳送到一記憶體控制器的順序。
依據本發明另一實施例,一種存取一記憶體的方法,包含有:接收分別來自多個儲存模組之多個讀取/寫入指令,其中該多個讀取/寫入指令係用來要求讀取/寫入該一記憶體;以及安排該多個讀取/寫入指令傳送到一記憶體控制器的順序。
100、200‧‧‧處理器
102、202‧‧‧周邊元件
104、204‧‧‧記憶體控制器
106、206‧‧‧記憶體
110‧‧‧仲裁器
120、220‧‧‧介面電路
130、230‧‧‧L1指令快取
131、231‧‧‧儲存緩衝器
132、232‧‧‧轉換後備緩衝器
133、233‧‧‧L1資料快取
134、234‧‧‧寫入緩衝器
135、235‧‧‧L2快取
140、240‧‧‧區塊資訊
211_1、211_2、211_3、211_4‧‧‧第一級仲裁電路
212‧‧‧第二級仲裁電路
400‧‧‧仲裁電路
410‧‧‧先進先出緩衝器
420‧‧‧區塊位址比較器
510‧‧‧第一先進先出緩衝器
520‧‧‧第二先進先出緩衝器
600、602、604、700、702‧‧‧步驟
第1圖為依據本發明一實施例之處理器的示意圖。
第2圖為依據本發明另一實施例之處理器的示意圖。
第3圖為讀取/寫入指令中有關於存取記憶體中的實體位址的示意圖。
第4圖為依據本發明一實施例之仲裁電路的示意圖。
第5圖為依據本發明一實施例之第一級仲裁電路與第二級仲裁電路的操作示意圖。
第6圖為依據本發明一實施例之有關於處理器的硬體設計流程圖。
第7圖為依據本發明另一實施例之有關於處理器的硬體設計流程圖。
在說明書及後續的申請專利範圍當中使用了某些詞彙來指稱特定的元件。所屬領域中具有通常知識者應可理解,硬體製造商可能會用不同的名詞來稱呼同一個元件。本說明書及後續的申請專利範圍並不以名稱的差異來作為區分元件的方式,而是以元件在功能上的差異來作為區分的準則。在通篇說明書及後續的請求項當中所提及的「包含」係為一開放式的用語,故應解釋成「包含但不限定於」。此外,「耦接」一詞在此係包含任何直接及
間接的電氣連接手段,因此,若文中描述一第一裝置耦接於一第二裝置,則代表該第一裝置可直接電氣連接於該第二裝置,或者透過其他裝置或連接手段間接地電氣連接至該第二裝置。
請參考第1圖,第1圖為依據本發明一實施例之處理器100的示意圖。如第1圖所示,處理器100包含了多個儲存模組、仲裁器110以及(匯流排)介面電路120,其中該多個儲存模組至少包含了L1指令快取130、儲存緩衝器131、轉換後備緩衝器(Translation Lookaside Buffers,TLB)132、L1資料快取133、寫入緩衝器134、L2快取135...等等。在本實施例中,處理器100與部分周邊元件102可以透過記憶體控制器104來對記憶體106進行存取(即讀取/寫入記憶體106),亦即,處理器100與部分周邊元件102會傳送多個讀取/寫入指令至記憶體控制器104,且記憶體控制器104會再根據這些讀取/寫入指令來讀取/寫入記憶體106,其中周邊元件102可以是透過直接記憶體存取引擎(Direct Memory Access engine,DMA engine)、快速周邊元件互連協定(Peripheral Component Interconnect Express,PCIE)、及/或通用序列匯流排(Universal Serial Bus,USB)或是其他介面來存取記憶體106的任何周邊裝置。在本實施例中,處理器100可以是中央處理器(Central Processing Unit,CPU)或是圖形處理器(Graphics Processing Unit,GPU)等相關的處理器。此外,需注意的是,第1圖所示的處理器100僅繪示出與本發明較相關的部分,本領域具有通常知識者應能了解處理器100中尚具有其他必要的電路模組。
在本實施例中,記憶體控制器104為一DRAM控制器或是一同步動態隨機存取記憶體(Synchronous Dynamic Random-Access Memory,SDRAM)控制器,而記憶體106則為一DRAM或是SDRAM。
在第1圖所示的處理器100中,L1指令快取130、儲存緩衝器131、
轉換後備緩衝器132、L1資料快取133、寫入緩衝器134、L2快取135等儲存模組均是用來儲存讀取/寫入指令,其中這些讀取/寫入指令係用來要求讀取/寫記憶體106。仲裁器110接著會接收來自這些儲存模組的多個讀取/寫入指令,並安排這些讀取/寫入指令傳送到記憶體控制器104的順序。進一步來說來說,仲裁器110會根據已經傳送至記憶體控制器104之讀取/寫入指令所讀取/寫入之記憶體106的區塊位址(bank address),例如第1圖所示的區塊資訊140,以安排這些讀取/寫入指令傳送到記憶體控制器104的順序,以避免區塊衝突(bank conflict)的情形發生。
詳細來說,在DRAM的存取上,當連續的兩筆存取指令需要存取同一個區塊(bank)中的不同資料頁(page)時,通常會需要較長的等待時間,亦即在第一筆存取指令的操作完成之後,記憶體控制器104會先關閉區塊中目前開啟的資料頁,之後才能開啟第二筆存取指令所需要存取的資料頁,之後再傳送讀取/寫入指令到記憶體106進行存取操作,此外,上述這些開啟資料頁、關閉資料頁、傳送讀取/寫入指令彼此之間需要一定長度的等待時間,而這些等待時間的規定可參考SDRAM相關的規格書JESD79F、JESD79-2C、JESD79-3D等等,在此不予贅述。如上所述,由於當連續的兩筆存取指令需要存取同一個區塊中的不同資料頁時會需要較長的存取時間,因而降低了記憶體控制器104的使用效率,因此,在本實施例中,處理器100另具有一先進先出暫存器(First In First Out,FIFO),用以儲存已經傳送至記憶體控制器104之讀取/寫入指令所讀取/寫入之該記憶體的區塊位址,而仲裁器110會根據該先進先出暫存器所儲存的區塊位址,優先傳送所讀取/寫入之區塊位址與該先進先出暫存器中所儲存之區塊位址不相同的讀取/寫入指令至記憶體控制器104。舉例來說,假設該先進先出暫存器目前儲存了記憶體106的第一個區塊(亦即表示了先前傳送至記憶體控制器104的存取指令需要存取第一個區塊中的資料頁),則仲裁器110會優先傳送L1指令快取130、儲存緩衝器
131、轉換後備緩衝器132、L1資料快取133、寫入緩衝器134、L2快取135等儲存模組中需要存取其他區塊的存取指令至記憶體控制器104中,如此一來,就可以避免區塊衝突的情形發生,以增加記憶體控制器104的使用效率。
另外,在本發明的另一實施例中,仲裁器110可以是多級的仲裁器(multi-stage arbiter),詳細架構請參考第2圖,第2圖為依據本發明另一實施例之處理器200的示意圖。如第2圖所示,處理器200包含了多個儲存模組、仲裁器以及介面電路220,其中該多個儲存模組至少包含了L1指令快取230、儲存緩衝器231、轉換後備緩衝器(TLB)232、L1資料快取233、寫入緩衝器234、L2快取235...等等,且仲裁器包含了多個第一級仲裁電路211_1、211_2、211_3、211_4以及一第二級仲裁電路212。在本實施例中,處理器200與部分周邊元件202可以透過記憶體控制器204來對記憶體206進行存取(即讀取/寫入記憶體206),亦即,處理器200與部分周邊元件202會傳送多個讀取/寫入指令至記憶體控制器204,且記憶體控制器204會再根據這些讀取/寫入指令來讀取/寫入記憶體206,其中周邊元件202可以是透過任意介面來存取記憶體206的任何周邊裝置。在本實施例中,處理器200可以是中央處理器或是圖形處理器等相關的處理器。此外,需注意的是,第2圖所示的處理器200僅繪示出與本發明較相關的部分,本領域具有通常知識者應能了解處理器200中尚具有其他必要的電路模組。
在第2圖所示的處理器200中,第一級仲裁電路僅會設置在需要儲存讀取指令的儲存模組中,亦即儲存緩衝器231與寫入緩衝器234本身並沒有設置第一級仲裁電路。
在第2圖所示的處理器200中,L1指令快取230、儲存緩衝器231、轉換後備緩衝器232、L1資料快取233、寫入緩衝器234、L2快取235等儲
存模組均是用來儲存讀取/寫入指令,其中這些讀取/寫入指令係用來要求讀取/寫記憶體206。第一級仲裁電路211_1、211_2、211_3、211_4會分別接收來自L1指令快取230、轉換後備緩衝器232、L1資料快取233、L2快取235的讀取指令,並安排讀取指令傳送到第二級仲裁電路212的順序;接著,第二級仲裁電路212會接收來自儲存模組或是第一級仲裁電路的多個讀取/寫入指令,並安排這些讀取/寫入指令傳送到記憶體控制器204的順序。進一步來說來說,第一級仲裁電路211_1、211_2、211_3、211_4會根據已經傳送至第二級仲裁電路212之讀取指令所讀取之記憶體206的區塊位址,例如第2圖所示的區塊資訊240,以安排這些讀取/寫入指令傳送到第二級仲裁電路212的順序;且第二級仲裁電路212也會根據已經傳送至記憶體控制器204之讀取/寫入指令所讀取/寫入之記憶體206的區塊位址,例如第2圖所示的區塊資訊240,以安排這些讀取/寫入指令傳送到記憶體控制器204的順序,以避免區塊衝突的情形發生。
請參考第3圖,第3圖為讀取/寫入指令中有關於存取記憶體206中的實體位址(physical address)的示意圖,如第3圖所示,實體位址包含了列位址(row address)資訊(或稱資料頁序號(page number))、區塊位址、以及行位址(column address)(或稱資料頁偏移量(page offset)),其中列位址、區塊位址及行位址在讀取/寫入指令中的位址欄位以及位元數會根據不同設計/規格的記憶體控制器204而有所不同,舉例來說,區塊位址的大小可以是2~4位元,行位址的大小可以是11~14位元,而列位址的大小可以是32位元減去區塊位址和行位址的總和,因此其相映對的位址欄位也會不同。此外,從第一級仲裁電路211_1、211_2、211_3、211_4所傳送到第二級仲裁電路212的讀取指令,以及從第二級仲裁電路212所傳送到記憶體控制器204的讀取/寫入指令,其區塊位址都會被擷取出來,以作為第2圖所示的區塊資訊350,以供第一級仲裁電路211_1、211_2、211_3、211_4與第二級仲裁電路212安排指令傳
送順序之用。
請參考第4圖,第4圖為依據本發明一實施例之仲裁電路400的示意圖,其中仲裁電路400可以是第2圖所示之第一級仲裁電路211_1、211_2、211_3、211_4與第二級仲裁電路212中任一。詳細來說,假設仲裁電路400為第一級仲裁電路211_1,則圖示的“未處理的讀取/寫入指令”即為L1指令緩衝130中所儲存的讀取指令,而先進先出緩衝器410所儲存的則是第一級仲裁電路211_1已經傳送到第二級仲裁電路212的讀取指令中所欲讀取的區塊位址。在仲裁電路400的操作上,首先,區塊位址比較器420會對“未處理的讀取/寫入指令”中所要讀取的區塊位址以及先進先出緩衝器410中所儲存的區塊位址進行比較,以優先選擇所讀取之區塊位址與先進先出暫存器410中所儲存之區塊位址不相同的讀取指令,而仲裁電路400之後便根據區塊位址比較器420所提供的區塊優先資訊來安排L1指令緩衝230所儲存的讀取指令傳送到第二級仲裁電路212的順序,其中仲裁電路400會盡可能的錯開相同區塊的讀取,亦即盡可能避免連續傳送需要讀取相同區塊的讀取指令到第二級仲裁電路212中。
同樣的,假設仲裁電路400為第二級仲裁電路212,則圖示的“未處理的讀取/寫入指令”即為來自多個儲存模組或是第一級仲裁電路的讀取/寫入指令,而先進先出緩衝器410所儲存的則是第二級仲裁電路212已經傳送到記憶體控制器204的讀取/寫入指令中所欲讀取的區塊位址。在仲裁電路400的操作上,首先,區塊位址比較器420會對“未處理的讀取/寫入指令”中所要讀取的區塊位址以及先進先出緩衝器410中所儲存的區塊位址進行比較,以優先選擇所讀取之區塊位址與先進先出暫存器410中所儲存之區塊位址不相同的讀取指令,而仲裁電路400之後便根據區塊位址比較器420所提供的區塊優先資訊來安排來自多個儲存模組所儲存的讀取/寫入指令傳送到記憶體
控制器204的順序,其中仲裁電路400會盡可能的錯開相同區塊的讀取,亦即盡可能避免連續傳送需要讀取/寫入相同區塊的讀取指令到記憶體控制器204中。
請參考第5圖,第5圖為依據本發明一實施例之第一級仲裁電路與第二級仲裁電路的操作示意圖,其中第5圖中的三位元資訊,例如“010”、“001”、“000”...等所代表的都是每一個讀取指令中所要讀取的區塊位址;第一先進先出暫存器510用來儲存已經從第一級仲裁電路211_1傳送到第二級仲裁電路212之讀取指令中的區塊位址,而第二先進先出暫存器520用來儲存已經從第二級仲裁電路212傳送到記憶體控制器204之讀取指令中的區塊位址,此外,需注意的是,在本實施例中,第一先進先出暫存器510的深度為2,且第二先進先出暫存器520的深度為3,但這僅是範例說明,而非是本發明的限制。如第5圖所示,首先,假設第一級仲裁電路211_1先傳送包含讀取區塊“010”的讀取指令到第二級仲裁電路212中,則由於第一先進先出暫存器510已經儲存了區塊位址“010”的資訊,因此,第一級仲裁電路211_1接著會優先傳送包含讀取區塊“001”的讀取指令到第二級仲裁電路212,最後才會再傳送最後一筆包含讀取區塊“010”的讀取指令到第二級仲裁電路212。
接著,就第二級仲裁電路212來看,由於來自第一級仲裁電路211_1之包含讀取區塊“010”的讀取指令先到達第二級仲裁電路212,因此,第二級仲裁電路212會先傳送來自第一級仲裁電路211_1之包含讀取區塊“010,,的讀取指令到記憶體控制器204;接著,在接下來的時間點,有三個讀取指令同時進入到第二級仲裁電路中,其要讀取的區塊位址分別是“001”、“011”、“010”,而由於第二先進先出暫存器520目前已儲存了區塊位址“010”,因此,第二級仲裁電路212會優先將包含讀取區塊“011”、“001”的讀取指令到記憶體控制器204,之後再傳送包含讀取區塊“010”的讀取指令到記憶體控
制器204;接下來,在下一個時間點,有三個讀取指令同時進入到第二級仲裁電路中,其要讀取的區塊位址分別是“010”、“111”、“000”,相同地,第二級仲裁電路212會優先將包含讀取區塊“111”、“000”的讀取指令到記憶體控制器204,之後再傳送包含讀取區塊“010”的讀取指令到記憶體控制器204。
如第5圖所示,在本發明實施例之仲裁電路的操作下,包含讀取區塊“010”的讀取指令會被錯開,因此可以避免區塊衝突的情形發生,以提升記憶體控制器204對於記憶體206的存取效率。
此外,在上述的實施例中,仲裁器110、第一級仲裁電路211_1、211_2、211_3、211_4與第二級仲裁電路212都是用來將需要讀取/寫入相同區塊的讀取/寫入指令錯開傳送,以避免區塊衝突的情形發生。然而,在本發明的一其他實施例中,針對某些特別情況,例如知道大部分的讀取指令都會讀取同一個區塊的同一個資料頁的時候,仲裁器110、第一級仲裁電路211_1、211_2、211_3、211_4或是第二級仲裁電路212可以將需要讀取/寫入相同區塊的讀取/寫入指令盡可能的連續傳送,以增加讀取效率。
請參考第6圖,第6圖為依據本發明一實施例之有關於處理器100/200的硬體設計流程圖。參考第6圖,首先,在步驟600,需要先提供記憶體控制器104/204及其區塊位址的相關資訊,亦即主要需要提供在第3圖所示的實體位址資訊中,區塊位址是在於哪幾個位元。接著,在步驟602,進行多級仲裁電路組態操作。最後,在步驟604,進行硬體描述語言(Hardware Description Language,HDL)設計。
請參考第7圖,第7圖為依據本發明另一實施例之有關於處理器100/200的硬體設計流程圖。參考第7圖,首先,在步驟700,需要先提供記
憶體控制器104/204及其區塊位址的相關資訊,亦即主要需要提供在第3圖所示的實體位址資訊中,區塊位址是在於哪幾個位元。接著,在步驟702,進行伴隨著可組態化(configurable)仲裁電路的硬體描述語言設計。在第7圖的設計流程中,可以根據所搭配的記憶體控制器104/204種類的不同,調整所要擷取的區塊位址,因此所設計的處理器100/200可以搭配於不同種類的記憶體控制器104/204。
簡要歸納本發明,在本發明的處理器及其存取記憶體的方法,可以透過仲裁電路來重新安排多個讀取/寫入指令傳送到一記憶體控制器的順序,尤其可以將需要讀取/寫入相同區塊的讀取/寫入指令錯開傳送,以避免區塊衝突的情形發生,以提升記憶體控制器對於記憶體的存取效率。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100‧‧‧處理器
102‧‧‧周邊元件
104‧‧‧記憶體控制器
106‧‧‧記憶體
110‧‧‧仲裁器
120‧‧‧介面電路
130‧‧‧L1指令快取
131‧‧‧儲存緩衝器
132‧‧‧轉換後備緩衝器
133‧‧‧L1資料快取
134‧‧‧寫入緩衝器
135‧‧‧L2快取
140‧‧‧區塊資訊
Claims (16)
- 一種處理器,包含有:多個儲存模組,分別用以儲存多個讀取/寫入指令,其中該多個讀取/寫入指令係用來要求讀取/寫入位於該處理器外部的一記憶體;以及一仲裁器(arbiter),耦接於該多個儲存模組,用以接收來自該多個儲存模組之該多個讀取/寫入指令,並安排該多個讀取/寫入指令傳送到一記憶體控制器的順序;其中該仲裁器包含了至少一第一級仲裁電路以及一第二級仲裁電路,其中該第一級仲裁電路用以接收該多個儲存模組中一特定儲存模組的讀取/寫入指令,並安排來自該特定儲存模組的讀取/寫入指令傳送到該第二級仲裁電路的順序;以及該第二級仲裁電路接收來自該多個儲存模組之該多個讀取/寫入指令,並安排該多個讀取/寫入指令傳送到該記憶體控制器的順序。
- 如申請專利範圍第1項所述之處理器,其中該仲裁器根據已經傳送至該記憶體控制器之讀取/寫入指令,以安排該多個讀取/寫入指令傳送到該記憶體控制器的順序。
- 如申請專利範圍第2項所述之處理器,其中該仲裁器根據已經傳送至該記憶體控制器之讀取/寫入指令所讀取/寫入之該記憶體的區塊位址,以安排該多個讀取/寫入指令傳送到該記憶體控制器的順序。
- 如申請專利範圍第3項所述之處理器,另包含有:一先進先出暫存器,用以儲存已經傳送至該記憶體控制器之讀取/寫入指令所讀取/寫入之該記憶體的區塊位址;其中該仲裁器根據該先進先出暫存器所儲存的區塊位址,優先傳送所讀 取/寫入之區塊位址與該先進先出暫存器中所儲存之區塊位址不相同的讀取/寫入指令至該記憶體控制器。
- 如申請專利範圍第1項所述之處理器,其中該特定儲存模組僅用來儲存讀取指令。
- 如申請專利範圍第1項所述之處理器,另包含有:一第一先進先出暫存器,用以儲存已經從該特定儲存模組傳送至該第二級仲裁電路之讀取/寫入指令所讀取/寫入之該記憶體的區塊位址;以及一第二先進先出暫存器,用以儲存已經傳送至該記憶體控制器之讀取/寫入指令所讀取/寫入之該記憶體的區塊位址;其中該第一級仲裁電路根據該第一先進先出暫存器所儲存的區塊位址,優先傳送所讀取/寫入之區塊位址與該第一先進先出暫存器中所儲存之區塊位址不相同的讀取/寫入指令至該第二級仲裁電路;以及該第二級仲裁電路根據該第二先進先出暫存器所儲存的區塊位址,優先傳送所讀取/寫入之區塊位址與該第一先進先出暫存器中所儲存之區塊位址不相同的讀取/寫入指令至該記憶體控制器。
- 如申請專利範圍第1項所述之處理器,其中該多個儲存模組包含L1指令快取、L1資料快取、L2快取、寫入緩衝器、轉換後備緩衝器(Translation Lookaside Buffers,TLB)中至少其二。
- 一種存取一記憶體的方法,包含有:接收分別來自多個儲存模組之多個讀取/寫入指令,其中該多個讀取/寫入指令係用來要求讀取/寫入該一記憶體;以及 安排該多個讀取/寫入指令傳送到一記憶體控制器的順序;其中安排該多個讀取/寫入指令傳送到該記憶體控制器的順序的步驟係由位於一處理器中的一仲裁器來執行,該仲裁器包含了至少一第一級仲裁電路以及一第二級仲裁電路,且安排該多個讀取/寫入指令傳送到該記憶體控制器的順序的步驟包含有:使用該第一級仲裁電路以接收該多個儲存模組中一特定儲存模組的讀取/寫入指令,並安排來自該特定儲存模組的讀取/寫入指令傳送到該第二級仲裁電路的順序;以及使用該第二級仲裁電路來接收來自該多個儲存模組之該多個讀取/寫入指令,並安排該多個讀取/寫入指令傳送到該記憶體控制器的順序。
- 如申請專利範圍第8項所述之方法,其中安排該多個讀取/寫入指令傳送到該記憶體控制器的順序的步驟包含有:根據已經傳送至該記憶體控制器之讀取/寫入指令,以安排該多個讀取/寫入指令傳送到該記憶體控制器的順序。
- 如申請專利範圍第9項所述之方法,其中安排該多個讀取/寫入指令傳送到該記憶體控制器的順序的步驟包含有:根據已經傳送至該記憶體控制器之讀取/寫入指令所讀取/寫入之該記憶體的區塊位址,以安排該多個讀取/寫入指令傳送到該記憶體控制器的順序。
- 如申請專利範圍第10項所述之方法,另包含有:提供一先進先出暫存器,以儲存已經傳送至該記憶體控制器之讀取/寫入指令所讀取/寫入之該記憶體的區塊位址;以及 安排該多個讀取/寫入指令傳送到該記憶體控制器的順序的步驟包含有:根據該先進先出暫存器所儲存的區塊位址,優先傳送所讀取/寫入之區塊位址與該先進先出暫存器中所儲存之區塊位址不相同的讀取/寫入指令至該記憶體控制器。
- 如申請專利範圍第8項所述之方法,其中該特定儲存模組僅用來儲存讀取指令。
- 如申請專利範圍第8項所述之方法,另包含有:提供一第一先進先出暫存器,以儲存已經從該特定儲存模組傳送至該第二級仲裁電路之讀取/寫入指令所讀取/寫入之該記憶體的區塊位址;以及提供一第二先進先出暫存器,以儲存已經傳送至該記憶體控制器之讀取/寫入指令所讀取/寫入之該記憶體的區塊位址;以及安排該多個讀取/寫入指令傳送到該記憶體控制器的順序的步驟包含有:根據該第一先進先出暫存器所儲存的區塊位址,優先傳送所讀取/寫入之區塊位址與該第一先進先出暫存器中所儲存之區塊位址不相同的讀取/寫入指令至該第二級仲裁電路;以及根據該第二先進先出暫存器所儲存的區塊位址,優先傳送所讀取/寫入之區塊位址與該第一先進先出暫存器中所儲存之區塊位址不相同的讀取/寫入指令至該記憶體控制器。
- 如申請專利範圍第8項所述之方法,其中該多個儲存模組包含L1指令快取、L1資料快取、L2快取、寫入緩衝器、轉換後備緩衝器(Translation Lookaside Buffers,TLB)中至少其二。
- 一種處理器,包含有:多個儲存模組,分別用以儲存多個讀取/寫入指令,其中該多個讀取/寫入指令係用來要求讀取/寫入位於該處理器外部的一記憶體;以及一仲裁器(arbiter),耦接於該多個儲存模組,用以接收來自該多個儲存模組之該多個讀取/寫入指令,並安排該多個讀取/寫入指令傳送到一記憶體控制器的順序;以及一先進先出暫存器,用以儲存已經傳送至該記憶體控制器之讀取/寫入指令所讀取/寫入之該記憶體的區塊位址;其中該仲裁器根據該先進先出暫存器所儲存的區塊位址,優先傳送所讀取/寫入之區塊位址與該先進先出暫存器中所儲存之區塊位址不相同的讀取/寫入指令至該記憶體控制器。
- 一種存取一記憶體的方法,包含有:接收分別來自多個儲存模組之多個讀取/寫入指令,其中該多個讀取/寫入指令係用來要求讀取/寫入該一記憶體;安排該多個讀取/寫入指令傳送到一記憶體控制器的順序;以及提供一先進先出暫存器,以儲存已經傳送至該記憶體控制器之讀取/寫入指令所讀取/寫入之該記憶體的區塊位址;其中安排該多個讀取/寫入指令傳送到該記憶體控制器的順序的步驟包含有:根據該先進先出暫存器所儲存的區塊位址,優先傳送所讀取/寫入之區塊位址與該先進先出暫存器中所儲存之區塊位址不相同的讀取/寫入指令至該記憶體控制器。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103135424A TWI553483B (zh) | 2014-10-13 | 2014-10-13 | 處理器及存取記憶體的方法 |
US14/829,656 US9772957B2 (en) | 2014-10-13 | 2015-08-19 | Processor and method for accessing memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103135424A TWI553483B (zh) | 2014-10-13 | 2014-10-13 | 處理器及存取記憶體的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201614509A TW201614509A (en) | 2016-04-16 |
TWI553483B true TWI553483B (zh) | 2016-10-11 |
Family
ID=55655465
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103135424A TWI553483B (zh) | 2014-10-13 | 2014-10-13 | 處理器及存取記憶體的方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9772957B2 (zh) |
TW (1) | TWI553483B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11321248B2 (en) * | 2019-05-24 | 2022-05-03 | Texas Instruments Incorporated | Multiple-requestor memory access pipeline and arbiter |
KR20210103836A (ko) * | 2020-02-14 | 2021-08-24 | 에스케이하이닉스 주식회사 | 데이터 처리 장치 및 그 동작 방법 |
US11366618B2 (en) * | 2020-03-02 | 2022-06-21 | Silicon Motion, Inc. | All flash array server and control method thereof |
CN114356223B (zh) * | 2021-12-16 | 2024-01-05 | 深圳云天励飞技术股份有限公司 | 存储器的访问方法及装置、芯片、电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6393512B1 (en) * | 1999-09-27 | 2002-05-21 | Ati International Srl | Circuit and method for detecting bank conflicts in accessing adjacent banks |
CN102402422A (zh) * | 2010-09-10 | 2012-04-04 | 北京中星微电子有限公司 | 处理器组件及该组件内存共享的方法 |
TW201342213A (zh) * | 2011-12-30 | 2013-10-16 | Intel Corp | 於處理器電路內識別及排定關鍵指令的優先次序之技術 |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5848432A (en) * | 1993-08-05 | 1998-12-08 | Hitachi, Ltd. | Data processor with variable types of cache memories |
JPH10214223A (ja) * | 1997-01-29 | 1998-08-11 | Hitachi Ltd | 情報処理システム |
US6393534B1 (en) * | 1999-09-27 | 2002-05-21 | Ati International Srl | Scheduler for avoiding bank conflicts in issuing concurrent requests to main memory |
EP1203379A1 (en) * | 2000-06-27 | 2002-05-08 | Koninklijke Philips Electronics N.V. | Integrated circuit with flash memory |
US6622225B1 (en) * | 2000-08-31 | 2003-09-16 | Hewlett-Packard Development Company, L.P. | System for minimizing memory bank conflicts in a computer system |
US6591349B1 (en) * | 2000-08-31 | 2003-07-08 | Hewlett-Packard Development Company, L.P. | Mechanism to reorder memory read and write transactions for reduced latency and increased bandwidth |
US6629195B2 (en) * | 2001-06-26 | 2003-09-30 | Intel Corporation | Implementing semaphores in a content addressable memory |
US6785793B2 (en) * | 2001-09-27 | 2004-08-31 | Intel Corporation | Method and apparatus for memory access scheduling to reduce memory access latency |
US6963962B2 (en) * | 2002-04-11 | 2005-11-08 | Analog Devices, Inc. | Memory system for supporting multiple parallel accesses at very high frequencies |
AU2003900733A0 (en) * | 2003-02-19 | 2003-03-06 | Canon Kabushiki Kaisha | Dynamic Reordering of Memory Requests |
US7127574B2 (en) * | 2003-10-22 | 2006-10-24 | Intel Corporatioon | Method and apparatus for out of order memory scheduling |
TWI256555B (en) * | 2003-12-12 | 2006-06-11 | Via Tech Inc | An apparatus and a method of request priority queue arbitration |
US20070121499A1 (en) * | 2005-11-28 | 2007-05-31 | Subhasis Pal | Method of and system for physically distributed, logically shared, and data slice-synchronized shared memory switching |
US7426621B2 (en) * | 2005-12-09 | 2008-09-16 | Advanced Micro Devices, Inc. | Memory access request arbitration |
US7461216B2 (en) * | 2006-02-23 | 2008-12-02 | Hewlett-Packard Development Company, L.P. | Memory controller |
JP4895183B2 (ja) * | 2006-07-21 | 2012-03-14 | キヤノン株式会社 | メモリコントローラ |
US20080082707A1 (en) * | 2006-09-29 | 2008-04-03 | Synfora, Inc. | Non-blocking bus controller for a pipelined, variable latency, hierarchical bus with point-to-point first-in first-out ordering |
US7870351B2 (en) * | 2007-11-15 | 2011-01-11 | Micron Technology, Inc. | System, apparatus, and method for modifying the order of memory accesses |
US8886918B2 (en) * | 2007-11-28 | 2014-11-11 | International Business Machines Corporation | Dynamic instruction execution based on transaction priority tagging |
US8145844B2 (en) * | 2007-12-13 | 2012-03-27 | Arm Limited | Memory controller with write data cache and read data cache |
US8463987B2 (en) * | 2008-09-23 | 2013-06-11 | Intel Corporation | Scalable schedulers for memory controllers |
US8949541B2 (en) * | 2008-12-08 | 2015-02-03 | Nvidia Corporation | Techniques for evicting dirty data from a cache using a notification sorter and count thresholds |
JP5498505B2 (ja) * | 2008-12-19 | 2014-05-21 | エスティー‐エリクソン、ソシエテ、アノニム | データバースト間の競合の解決 |
US8838853B2 (en) * | 2010-01-18 | 2014-09-16 | Marvell International Ltd. | Access buffer |
US9496009B2 (en) * | 2012-06-06 | 2016-11-15 | Mosys, Inc. | Memory with bank-conflict-resolution (BCR) module including cache |
US8572322B2 (en) * | 2010-03-29 | 2013-10-29 | Freescale Semiconductor, Inc. | Asynchronously scheduling memory access requests |
CN103229155B (zh) * | 2010-09-24 | 2016-11-09 | 德克萨斯存储系统股份有限公司 | 高速内存系统 |
JP2012073851A (ja) * | 2010-09-29 | 2012-04-12 | Sony Corp | バスシステムおよびそのデッドロック回避回路 |
US9189050B1 (en) * | 2011-08-19 | 2015-11-17 | Cadence Design Systems, Inc. | Method and apparatus for memory power reduction |
US8909874B2 (en) * | 2012-02-13 | 2014-12-09 | International Business Machines Corporation | Memory reorder queue biasing preceding high latency operations |
US8904227B2 (en) * | 2012-07-30 | 2014-12-02 | Oracle International Corporation | Cache self-testing technique to reduce cache test time |
US8984203B2 (en) * | 2012-10-09 | 2015-03-17 | Sandisk Technologies Inc. | Memory access control module and associated methods |
KR20140125985A (ko) * | 2013-04-22 | 2014-10-30 | 에스케이하이닉스 주식회사 | 반도체 장치 |
US20150154132A1 (en) * | 2013-12-02 | 2015-06-04 | Sandisk Technologies Inc. | System and method of arbitration associated with a multi-threaded system |
-
2014
- 2014-10-13 TW TW103135424A patent/TWI553483B/zh active
-
2015
- 2015-08-19 US US14/829,656 patent/US9772957B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6393512B1 (en) * | 1999-09-27 | 2002-05-21 | Ati International Srl | Circuit and method for detecting bank conflicts in accessing adjacent banks |
CN102402422A (zh) * | 2010-09-10 | 2012-04-04 | 北京中星微电子有限公司 | 处理器组件及该组件内存共享的方法 |
TW201342213A (zh) * | 2011-12-30 | 2013-10-16 | Intel Corp | 於處理器電路內識別及排定關鍵指令的優先次序之技術 |
Also Published As
Publication number | Publication date |
---|---|
US9772957B2 (en) | 2017-09-26 |
US20160103619A1 (en) | 2016-04-14 |
TW201614509A (en) | 2016-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2013037517A5 (zh) | ||
TWI727236B (zh) | 資料位寬轉換器及其系統晶片 | |
TWI553483B (zh) | 處理器及存取記憶體的方法 | |
TW201331826A (zh) | 記憶體控制器及控制方法 | |
US20060080489A1 (en) | Bus bridge and data transfer method | |
US20100306421A1 (en) | Dma transfer device | |
BR102013022935A2 (pt) | Dispositivo de memória flash serial de múltiplos fluxos de dados | |
TWI564787B (zh) | 響應第二讀取請求之第一資料相關技術 | |
TW200422829A (en) | Memory controller | |
CN108139989B (zh) | 配备有存储器中的处理和窄访问端口的计算机设备 | |
TWI578163B (zh) | 周邊介面電路與周邊記憶體系統 | |
TWI463325B (zh) | 電腦、嵌入式控制器及共享記憶體的方法 | |
US7472227B2 (en) | Invalidating multiple address cache entries | |
TWI474254B (zh) | 用於在一記憶體系統中執行命令的方法與裝置及資料儲存系統 | |
CN105573933B (zh) | 处理器及存取存储器的方法 | |
US9767054B2 (en) | Data transfer control device and memory-containing device | |
US20100262763A1 (en) | Data access method employed in multi-channel flash memory system and data access apparatus thereof | |
JP2016085541A (ja) | メモリーコントローラー | |
US11003611B2 (en) | Information processing system, information processing method, and semiconductor device | |
JP2010287058A (ja) | メモリシステム | |
WO2021093249A1 (zh) | 外部设备访问计算机内存的方法 | |
US20140136796A1 (en) | Arithmetic processing device and method for controlling the same | |
CN112286863A (zh) | 处理暨存储电路 | |
TWI786476B (zh) | 處理暨儲存電路 | |
WO2016070431A1 (zh) | 内存访问方法、装置和计算机设备 |