TWI788641B - 資料儲存系統及操作資料儲存系統的方法 - Google Patents
資料儲存系統及操作資料儲存系統的方法 Download PDFInfo
- Publication number
- TWI788641B TWI788641B TW109109142A TW109109142A TWI788641B TW I788641 B TWI788641 B TW I788641B TW 109109142 A TW109109142 A TW 109109142A TW 109109142 A TW109109142 A TW 109109142A TW I788641 B TWI788641 B TW I788641B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- address
- value
- data
- memory controller
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
-
- 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
-
- 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/1684—Details of memory controller using multiple buses
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Debugging And Monitoring (AREA)
- Time-Division Multiplex Systems (AREA)
- Error Detection And Correction (AREA)
Abstract
資料儲存系統包含第一記憶體、第二記憶體及記憶體控制器。記憶體控制器根據初始位址將第一記憶體中的第一資料段傳輸至第二記憶體,將初始位址加上第一間隔值以產生接續位址,並更新分流值。當分流值未達目標分流值時,記憶體控制器根據接續位址將第一記憶體中的第二資料段傳輸至第二記憶體,將初始位址與第二間隔值相加以更新接續位址,並更新分流值。當分流值已達目標分流值時,記憶體控制器將分流值設定為初始值,將初始位址加上位寬偏移值以更新接續位址,及根據更新後的接續位址將第一記憶體中的第三資料段傳輸至第二記憶體。
Description
本發明是有關於一種資料儲存系統,尤其是一種能夠執行交錯分散(scatter)或交錯聚集(gather)傳輸的資料儲存系統。
在電子系統中,類比數位轉換器常被用來判讀感測器所傳來的數據,例如電流、電壓及溫度。在先前技術中,多通道的類比數位轉換器可以耦接到系統中不同的感測器或不同的資料源。由於不同的感測器或資料源可能會週期性的重複採集某一元件或節點的數據,因此多通道的類比數位轉換器必須重複地輪流接收不同感測器或資料源所傳來的數據。
在先前技術中,多通道的類比數位轉換器可以依照接收數據的順序將處理完的資料儲存至先進先出(First In First Out,FIFO)的儲存結構中。接著再將先進先出儲存結構中的資料,依序分別存放至另一記憶體中不同的對應區域,亦即交錯式(interleaving)的分散(scatter)傳輸,以便後續分別對不同類型的數據進行處理。
在電子系統未使用直接記憶體存取(Direct Memory Access,DMA)控制器的情況下,搬運資料的工作必須由中央處理器來完成。然而若是須搬移的資料量較大,就會導致中央處理器被佔據的時間過長,使得系統運算速度變慢,
造成不便。此外,由於直接記憶體存取控制器並沒有支援交錯式的分散傳輸及交錯式的聚集傳輸,因此即便在使用直接記憶體存取控制器的情況下,也難以提升資料傳輸的效率。
本發明的一實施例提供一種操作資料儲存系統的方法。資料儲存系統包含第一記憶體、第二記憶體及記憶體控制器。
操作資料儲存系統的方法包含記憶體控制器根據初始位址將第一記憶體中的第一資料段傳輸至第二記憶體,記憶體控制器將初始位址與第一間隔值相加以產生接續位址,記憶體控制器更新分流值,當該分流值尚未達到目標分流值時,記憶體控制器根據接續位址將第一記憶體中的第二資料段傳輸至第二記憶體,記憶體控制器將接續位址與第二間隔值相加以更新接續位址,及記憶體控制器更新分流值,及當分流值已達到目標分流值時,將分流值設定為初始值,記憶體控制器將初始位址與位寬偏移值相加以更新接續位址及初始位址,及根據更新後的接續位址將第一記憶體中的第三資料段傳輸至第二記憶體。
本發明的另一實施例提供一種資料儲存系統。資料儲存系統複數個暫存器、第一記憶體、第二記憶體及記憶體控制器。複數個暫存器儲存初始位址、接續位址、分流值、目標分流值、位寬偏移值及至少一間隔值。記憶體控制器耦接於複數個暫存器、第一記憶體及第二記憶體。
記憶體控制器根據初始位址將第一記憶體中的第一資料段傳輸至第二記憶體,將初始位址與第一間隔值相加以產生接續位址,更新分流值,當分流值尚未達到目標分流值時,根據接續位址將第一記憶體中的第二資料段傳輸至第二記憶體,將接續位址與第二間隔值相加以更新接續位址,及更新分流值,及當分流值已達到目標分流值時,將分流值設定為初始值,將初始位址與位寬
偏移值相加以更新接續位址及初始位址;及根據更新後的接續位址將第一記憶體中的第三資料段傳輸至第二記憶體。
100:資料儲存系統
110:第一記憶體
120:第二記憶體
130A、130B、130c、130D、130E、130F:暫存器
140:記憶體控制器
D1A至DNA、D1A至DKA、D1B、D2B、D1C:資料段
A1至AN、A1至AK:位址區段
300:方法
S310至S380:步驟
第1圖是本發明一實施例之資料儲存系統的示意圖。
第2圖是第1圖之資料儲存系統執行交錯式分散傳輸的示意圖。
第3圖是本發明一實施例之操作第1圖之資料儲存系統的方法流程圖。
第4圖是第1圖之資料儲存系統執行交錯式聚集傳輸的示意圖。
第1圖是本發明一實施例之資料儲存系統100的示意圖。資料儲存系統100包含第一記憶體110、第二記憶體120、暫存器130A、130B、130C、130D、130E及130F及記憶體控制器140。記憶體控制器140耦接暫存器130A、130B、130C、130D、130E、130F、第一記憶體110及第二記憶體120。在有些實施例中,記憶體控制器140可以例如是系統中的直接記憶體存取控制器,並可包含有限狀態機(finite state machine,FSM),且可以直接存取第一記憶體110及第二記憶體120中的資料並在第一記憶體110及第二記憶體120之間進行傳輸。
第2圖是資料儲存系統100執行交錯式分散傳輸的示意圖。在第2圖中,第一記憶體110可以是先進先出(First In First Out,FIFO)儲存結構,而記憶體控制器140可以將第一記憶體110中連續的複數個資料段分別依序且循環地傳送至第二記憶體120中分散的複數個位址區段A1至AN中。也就是說,記憶體控制器140可以先從第一記憶體110中推出(pop)資料段D1A,並將資料段D1A存入第二記憶體120的第一個位址區段A1中。接著,記憶體控制器140可以從第一記
憶體110中推出資料段D2A,並將資料段D2A存入第二記憶體120的第二個位址區段A2中,並依此類推,而將從第一記憶體110中推出資料段D3A至DNA,並將資料段D3A至DNA分別存入第二記憶體120的第三個位址區段A3至第N個位址區段AN中。然後,記憶體控制器140會再從第一記憶體110中推出資料段D1B,並將資料段D1B存入第二記憶體120的第一個位址區段A1中,資料段D1A的下一個儲存位址,再從第一記憶體110中推出資料段D2B,並將資料段D2B存入第二記憶體120的第二個位址區段A2中,資料段D2A的下一個儲存位址,依此類推,直到記憶體控制器140的傳輸資料量已達目標值為止。
第3圖是本發明一實施例之操作資料儲存系統100之方法300的流程圖,方法300包含步驟S310至S380。
S310:記憶體控制器140根據初始位址將第一記憶體110中的一資料段傳輸至第二記憶體120;S320:記憶體控制器140將初始位址與一間隔值相加以產生接續位址;S330:記憶體控制器140更新分流值;S340:判斷分流值是否達到目標分流值,當分流值達到目標分流值時,執行步驟S360,否則執行步驟S350;S350:記憶體控制器140根據接續位址將第一記憶體110中的一資料段傳輸至第二記憶體120;S352:記憶體控制器140將接續位址與一間隔值相加以更新接續位址;S354:記憶體控制器140更新分流值,進入步驟S340;S360:判斷記憶體控制器140的傳輸資料量是否已達目標值,當記憶體控制器140的傳輸資料量已達目標值時,執行步驟S380,否則執行步驟S370;S370:將分流值設定為初始值;
S372:記憶體控制器140將初始位址與一位寬偏移值相加以更新接續位址及初始位址;S374:根據更新後的接續位址將第一記憶體110中的一資料段傳輸至第二記憶體120,進入步驟S340;S380:結束。
在有些實施例中,資料儲存系統100可以透過方法300來完成交錯式分散傳輸的功能。在此情況下,在步驟S310中的初始位址即為資料段D1A欲存放至第二記憶體120中的位址,因此記憶體控制器140可據以將自第一記憶體110中取得的資料段D1A傳輸至第二記憶體120,並可儲存至第二記憶體120之第一位址區段A1的初始位址。在有些實施例中,根據傳輸需求的不同,第一資料段D1A可能會包含對應於第一記憶體110中的單一位址的單一筆資料,也可能包含對應於複數個連續位址的複數筆資料。因此,在步驟S310中記憶體控制器140可能會自第一記憶體110中連續讀取多筆資料以取得完整的第一資料段D1A。
在第2圖的實施例中,由於第二記憶體120之第二記憶體區段A2的起始位址0x100與第一記憶體區段A1的起始位址0x000之間具有間隔100,因此在資料段D1A傳輸完成後的步驟S320中,記憶體控制器140會將初始位址與間隔值100相加以產生下一個資料段D2A在第二記憶體120中所應儲存的位址0x100,亦即接續位址。此外,在此實施例中,由於記憶體控制器140須將第一記憶體110中的資料分別儲存至第二記憶體120中的N個記憶體區段A1至AN,表示在此傳輸過程中會包含N個分流,而為記錄目前所處理的分流值為何,在步驟S330中,記憶體控制器140還會更新分流值,例如但不限於將分流值從0更新為1,表示欲傳輸至第二記憶體120之第一位址區段A1的資料段D1A已傳輸完成,目前則需進行下一筆資料段D2A的傳輸。
在有些實施例中,目標分流值可以設定為第二記憶體120之位址區段
的總數量,例如在此實施例中,目標分流值可以設定為N。由於目前的分流值為2,尚未達到目標分流值N,因此步驟S340的判斷結果會導向步驟S350。在步驟S350中,記憶體控制器140會根據步驟S320中所產生的接續位址將自第一記憶體110中取得的資料段D2A儲存至第二記憶體120之第二位址區段A2中。接著在步驟S352及S354中,記憶體控制器140會將接續位址0x100與間隔值100相加以更新接續位址0x200,並進一步更新分流值,例如但不限於將分流值由1更新為2,並進入步驟S340。此時,由於分流值為3亦尚未達到目標分流值N,因此記憶體控制器140會重複執行步驟S350至S354。
當欲儲存至第二記憶體120之第N位址區段AN的資料段DNA已傳輸完成,而分流值由N-1被更新至N時,步驟S340的判斷結果會導向步驟S360。此時,若記憶體控制器140的傳輸資料量已達到目標值,則表示傳輸完成,因此會執行步驟S380以完成傳輸。然而若記憶體控制器140的傳輸資料量尚未達到目標值,則表示記憶體控制器140需要繼續從第一記憶體110中取得資料段,並且儲存至第二記憶體120的第一位址區段A1中。此時便會執行步驟S370至S374。
在步驟S370中,記憶體控制器140可先將分流值設定為初始值,例如但不限於為0。此時,從第一記憶體110中所取得的資料段D1B應該也要儲存至第二記憶體120的第一位址區段A1中。然而在第二記憶體120的第一位址區段A1中先前已儲存了資料段D1A,因此資料段D1B應該儲存在資料段D1A的下一個位址空間。因此,在步驟S372中,記憶體控制器140會將初始位址與位寬偏移值相加以更新接續位址,並在S374中,根據更新後的接續位址將第一記憶體110中的資料段D1B傳輸至第二記憶體120。在有些實施例中,第一記憶體110與第二記憶體120的位寬可能不同,因此資料段D1A可能會佔據第二記憶體120中複數個位址空間。舉例來說,在第2圖中,初始位址為0x000,而資料段D1A可能會儲存在第二記憶體120中位址0x000至0x003的儲存空間,此時位寬偏移值即為4,而資
料段D1B則應該從位址0x004開始儲存。在有些實施例中,當資料段D1A被儲存成第二記憶體120中複數個連續位址的複數筆資料時,記憶體控制器140可根據該些連續位址所包含的位址數量設定位寬偏移值。如此一來,就可以確保交錯式的分散傳輸能夠持續循環,而不會誤將先前的資料覆蓋。此外,為了確保記憶體控制器140可以在下一次將資料段D1C正確地儲存至第二記憶體120之第一位址區段A1中資料段D1B所在的下一位址,即D1C的位址0x008,在步驟S372中,記憶體控制器140也會利用初始位址0x000與位寬偏移值4相加的結果一併更新初始位址。
步驟S374完成之後,記憶體控制器140會繼續執行步驟S340,以繼續將第一記憶體110中的資料段依序分別傳送至第二記憶體120的第二位址區段A2至第N位址區段AN。如此一來,資料儲存系統100就可以透過方法300完成交錯式的分散傳輸。
在有些實施例中,於方法300中使用的位址及數值可以儲存在資料儲存系統100的暫存器中。舉例來說,暫存器130A可以儲存初始位址、暫存器130B可以儲存接續位址、暫存器130C可以儲存分流值、暫存器130D可以儲存目標分流值、暫存器130E可以儲存位寬偏移值,而暫存器130F則可儲存間隔值。
在第2圖的位址區段A1至AN中,每相鄰兩個位址區段之間的間隔值相同,例如位址區段A1的起始位址為0x000,位址區段A2的起始位址為0x100,位址區段A3的起始位址為0x200,因此在步驟S320及S352中所使用的間隔值也都相同,亦即皆為100。然而,在有些實施例中,相鄰兩個位址區段之間的間隔值也可能不同,例如位址區段A1的起始位址為0x000,位址區段A2的起始位址可為0x100,而位址區段A3的起始位址可為0x300。在此情況下,步驟S320及S352中所使用的間隔值就可能相異,而資料儲存系統100也可包含對應的暫存器來儲存各個間隔值。在有些實施例中,由於間隔值會與接下來要儲存的位址區段有
關,因此也會與分流值有關,而記憶體控制器140可以根據目前的分流值來選擇對應的間隔值。
此外,在第2圖的實施例中,由於第一記憶體110具有先進先出(First In First Out,FIFO)儲存結構,因此記憶體控制器140僅需要對相同的位址執行推出指令就能夠持續取得其中的資料,然而本發明並不以此為限。在有些其他實施例中,第一記憶體110也可以具有其他類型的儲存結構,而記憶體控制器140則可持續累加讀取位址以讀取出複數筆連續的資料。
第4圖是資料儲存系統100執行交錯式聚集傳輸的示意圖。在第4圖中,第二記憶體120可以是先進先出(First In First Out,FIFO)儲存結構,而記憶體控制器140可以將第一記憶體110中分散於K個位址區段A1至AK的複數個資料段依序且循環地傳輸至第二記憶體120。也就是說,記憶體控制器140會先從第一記憶體110之第一個位址區段A1中取得對應的資料段D1A,並將資料段D1A傳輸至第二記憶體120,再從第二個位址區段A2中取得對應的資料段D2A,並將資料段D2A傳輸至第二記憶體。依此類推,記憶體控制器140會在第三至第M個位址區段A3至AK中取得對應的資料段D3A至DKA,並將資料段D3A至DKA依序推入(push)至第二記憶體120。接著,記憶體控制器140會再回到第一記憶體110的第一個位址區段A1,並取得資料段D1A的下一個資料段D1B以存入第二記憶體120,然後再從第二個位址區段A2,並取得資料段D2A的下一個資料段D2B以存入第二記憶體120,並依此類推,直到記憶體控制器140的傳輸資料量已達目標值為止。
在有些實施例中,資料儲存系統100同樣可以透過方法300來完成交錯式聚集傳輸的功能。在此情況下,在步驟S310中的初始位址即為資料段D1A於第一記憶體110中的儲存位址,因此記憶體控制器140根據初始位址自第一記憶體110中取得資料段D1A並傳輸至第二記憶體120。在有些實施例中,根據傳輸
需求的不同,第一資料段D1A可能會包含對應於第一記憶體110中的單一位址的單一筆資料,也可能包含對應於複數個連續位址的複數筆資料。因此,在步驟S310中記憶體控制器140可能會自第一記憶體110中連續的複數個位址讀取多筆資料以取得完整的第一資料段D1A。
接著在步驟S320及S330中,記憶體控制器140會將初始位址與對應的間隔值相加以產生接續位址,亦即下一個資料段D2A於第一記憶體110中所在的位址,並更新分流值,以便進行後續的傳輸。此外,在有些實施例中,目標分流值可以設定為第一記憶體110之位址區段的總數量,例如在此實施例中,目標分流值可以設定為K。再者,在第4圖中,由於第一記憶體110中,有部分相鄰記憶體區段之間的間隔值並不相同,例如位址區段A1的起始位址為0x000,位址區段A2的起始位址可為0x100,而位址區段A3的起始位址可為0x300。因此資料儲存系統100會利用額外的暫存器來儲存對應的間隔值,並根據目前的分流值來選擇對應的間隔值100或200,以確保記憶體控制器140能夠在正確地位址區段取得所需的資料段。
在有些實施例中,由於資料段D1A可能會包含儲存在第一記憶體110之複數個連續位址的複數筆資料,此時記憶體控制器140亦可根據該些連續位址所包含的位址數量設定位寬偏移值,以利在步驟S372中正確地更新接續位址。舉例來說,雖然在第4圖中的初始位址為0x000,然而資料段D1A可能還會包含儲存在第一記憶體110中位址0x001至0x007的資料,此時位寬偏移值即為8,而資料段D1B則應該從第一記憶體110的位址0x008開始讀取。如此一來,就可以確保交錯式的聚集傳輸能夠持續循環,而不會重覆傳送先前以傳送的資料。
在第4圖的實施例中,由於第二記憶體120具有先進先出(First In First Out,FIFO)儲存結構,因此記憶體控制器140僅需要對相同的位址執行推入指令就能夠持續將資料段儲存至第二記憶體120中,然而本發明並不以此為限。在有
些其他實施例中,第二記憶體120也可以利用其他類型的儲存結構,而記憶體控制器140則會持續累加寫入位址以將資料段寫入第二記憶體120中的連續位址中。
綜上所述,本發明的實施例所提供的資料儲存系統及操作資料儲存系統的方法可以透過暫存器來儲存傳輸所需的相關參數,包含起始位址、接續位址、分流值、目標分流值、位寬偏移值及間隔值,使得記憶體控制器能夠自動地在記憶體的不同區段之間輪流寫入或讀取資料,以完成交錯式分散傳輸或交錯式聚集傳輸。如此一來,記憶體控制器就能夠有效減輕電腦系統的中央處理器的負擔,並且能夠提升資料傳輸的效率。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
300:方法
S310至S380:步驟
Claims (9)
- 一種操作資料儲存系統的方法,該資料儲存系統包含一第一記憶體、一第二記憶體及一記憶體控制器,該方法包含:該記憶體控制器根據一初始位址將該第一記憶體中的一第一資料段傳輸至該第二記憶體;該記憶體控制器將該初始位址與一第一間隔值相加以產生一接續位址;該記憶體控制器更新一分流值;當該分流值尚未達到一目標分流值時:該記憶體控制器根據該接續位址將該第一記憶體中的一第二資料段傳輸至該第二記憶體;該記憶體控制器將該接續位址與一第二間隔值相加以更新該接續位址;及該記憶體控制器更新該分流值;及當該分流值已達到該目標分流值時:將該分流值設定為一初始值;該記憶體控制器將該初始位址與一位寬偏移值相加以更新該接續位址及該初始位址;及根據更新後的該接續位址將該第一記憶體中的一第三資料段傳輸至該第二記憶體;其中:該記憶體控制器係用以將該第一記憶體中分散於複數個位址區段的複數個資料段依序且循環地傳輸至該第二記憶體;該初始位址及該接續位址是對應至該第一記憶體中的位址;及該目標分流值係為該些位址區段的一總數量。
- 一種資料儲存系統,包含:一第一記憶體;一第二記憶體;及一記憶體控制器,耦接該第一記憶體及該第二記憶體,用以:根據一初始位址將該第一記憶體中的一第一資料段傳輸至該第二記憶體;將該初始位址與一第一間隔值相加以產生一接續位址;更新一分流值;當該分流值尚未達到一目標分流值時:根據該接續位址將該第一記憶體中的一第二資料段傳輸至該第二記憶體;將該接續位址與一第二間隔值相加以更新該接續位址;及更新該分流值;及當該分流值已達到該目標分流值時:將該分流值設定為一初始值;該記憶體控制器將該初始位址與一位寬偏移值相加以更新該接續位址及該初始位址;及根據更新後的該接續位址將該第一記憶體中的一第三資料段傳輸至該第二記憶體;其中:該記憶體控制器係用以將該第一記憶體中分散於複數個位址區段的複數個資料段依序且循環地傳輸至該第二記憶體;該初始位址及該接續位址是對應至該第一記憶體中的位址;及 該目標分流值係為該些位址區段的一總數量。
- 如請求項2所述的資料儲存系統,其中:該第一資料段包含對應於該第一記憶體之一特定位址的一筆資料或對應於該第一記憶體之複數個連續位址的複數筆資料。
- 如請求項2所述的資料儲存系統,其中:該第二記憶體係為一先進先出(First In First Out,FIFO)儲存結構,且該記憶體控制器係將該些筆資料推入(push)至該第二記憶體的一第二初始位址;或該記憶體控制器係將該些筆資料儲存至該第二記憶體的複數個連續位址。
- 如請求項2所述的資料儲存系統,其中該記憶體控制器另用以:當該第一資料段包含儲存於該第一記憶體之複數個連續位址的複數筆資料時,根據該些連續位址所包含的位址數量設定該位寬偏移值。
- 一種資料儲存系統,包含:一第一記憶體;一第二記憶體;及一記憶體控制器,耦接該第一記憶體及該第二記憶體,用以:根據一初始位址將該第一記憶體中的一第一資料段傳輸至該第二記憶體;將該初始位址與一第一間隔值相加以產生一接續位址; 更新一分流值;當該分流值尚未達到一目標分流值時:根據該接續位址將該第一記憶體中的一第二資料段傳輸至該第二記憶體;將該接續位址與一第二間隔值相加以更新該接續位址;及更新該分流值;及當該分流值已達到該目標分流值時:將該分流值設定為一初始值;該記憶體控制器將該初始位址與一位寬偏移值相加以更新該接續位址及該初始位址;及根據更新後的該接續位址將該第一記憶體中的一第三資料段傳輸至該第二記憶體;其中:該記憶體控制器係用以將該第一記憶體中連續的複數個資料段分別依序且循環地傳送至該第二記憶體中分散的複數個位址區段中;該初始位址及該接續位址是對應至該第二記憶體中的位址;及該目標分流值係為該些位址區段的一總數量。
- 如請求項6所述的資料儲存系統,其中:該第一記憶體係為一先進先出(First In First Out,FIFO)儲存結構,且該記憶體控制器係自至該第一記憶體的一第一初始位址中推出(pop)連續的該些筆資料;或該記憶體控制器係自該第一記憶體的複數個連續位址中取出連續的該些筆資料。
- 如請求項6所述的資料儲存系統,其中該記憶體控制器另用以:當該第一資料段被儲存成該第二記憶體之複數個連續位址的複數筆資料時,根據該些連續位址所包含的位址數量設定該位寬偏移值。
- 如請求項2或6所述的資料儲存系統,其中該記憶體控制器另用以:當該分流值已達到一目標分流值且一傳輸資料量已達一目標值時,結束傳輸。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010139211.9 | 2020-03-03 | ||
| CN202010139211.9A CN113360423B (zh) | 2020-03-03 | 2020-03-03 | 数据储存系统及操作数据储存系统的方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202134879A TW202134879A (zh) | 2021-09-16 |
| TWI788641B true TWI788641B (zh) | 2023-01-01 |
Family
ID=77523342
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW109109142A TWI788641B (zh) | 2020-03-03 | 2020-03-19 | 資料儲存系統及操作資料儲存系統的方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US11487659B2 (zh) |
| CN (1) | CN113360423B (zh) |
| TW (1) | TWI788641B (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113360423B (zh) * | 2020-03-03 | 2024-11-22 | 瑞昱半导体股份有限公司 | 数据储存系统及操作数据储存系统的方法 |
Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20020078246A1 (en) * | 2000-12-19 | 2002-06-20 | Ing-Simmons Nicholas K. | Method and system for network protocol processing |
| TW200801955A (en) * | 2005-12-19 | 2008-01-01 | Via Tech Inc | System and method for performing scatter/gather direct memory access transfers |
| US20090276564A1 (en) * | 2008-05-02 | 2009-11-05 | Ling Jun Wong | Systematic memory shift for pre-segmented memory |
| US20110314207A1 (en) * | 2007-04-30 | 2011-12-22 | Samsung Electronics Co., Ltd. | Memory system, program method thereof, and computing system including the same |
| TW201301032A (zh) * | 2011-06-24 | 2013-01-01 | Kenneth Cheng-Hao Lin | 高性能緩存方法和裝置 |
| CN103198028A (zh) * | 2013-03-18 | 2013-07-10 | 华为技术有限公司 | 一种内存数据迁移方法、装置及系统 |
| TW201732568A (zh) * | 2015-12-30 | 2017-09-16 | 英特爾股份有限公司 | 用於巷道為主的跨類收集的系統、設備與方法 |
Family Cites Families (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5388237A (en) | 1991-12-30 | 1995-02-07 | Sun Microsystems, Inc. | Method of and apparatus for interleaving multiple-channel DMA operations |
| US5525748A (en) * | 1992-03-10 | 1996-06-11 | Yamaha Corporation | Tone data recording and reproducing device |
| KR100498233B1 (ko) * | 2002-10-31 | 2005-07-01 | 한국전자통신연구원 | 선입선출 메모리 회로 및 그 구현 방법 |
| US7308524B2 (en) * | 2003-01-13 | 2007-12-11 | Silicon Pipe, Inc | Memory chain |
| CN1707957A (zh) * | 2004-06-07 | 2005-12-14 | 联发科技股份有限公司 | 回旋式交错或逆交错数据符号的控制器 |
| US8156259B2 (en) | 2005-07-21 | 2012-04-10 | Elliptic Technologies Inc. | Memory data transfer method and system |
| CN100455001C (zh) * | 2005-09-23 | 2009-01-21 | 凌阳科技股份有限公司 | 回旋交错及去交错的电路与方法 |
| CN101276315B (zh) * | 2007-03-30 | 2011-06-22 | 财团法人工业技术研究院 | 动态调整传输数据宽度的直接存储器存取控制器与方法 |
| US8176252B1 (en) | 2007-11-23 | 2012-05-08 | Pmc-Sierra Us, Inc. | DMA address translation scheme and cache with modified scatter gather element including SG list and descriptor tables |
| JP4585599B1 (ja) * | 2009-07-17 | 2010-11-24 | 株式会社東芝 | データ記憶装置及びキャッシュ制御方法 |
| US8799553B2 (en) * | 2010-04-13 | 2014-08-05 | Apple Inc. | Memory controller mapping on-the-fly |
| US9971524B1 (en) | 2013-03-15 | 2018-05-15 | Bitmicro Networks, Inc. | Scatter-gather approach for parallel data transfer in a mass storage system |
| KR102533229B1 (ko) * | 2015-11-27 | 2023-05-17 | 삼성전자주식회사 | 상대 주소를 사용하는 메모리 장치의 접근 방법 |
| US10289340B2 (en) * | 2016-02-23 | 2019-05-14 | Sandisk Technologies Llc | Coalescing metadata and data writes via write serialization with device-level address remapping |
| US10713174B2 (en) * | 2016-12-20 | 2020-07-14 | Texas Instruments Incorporated | Streaming engine with early and late address and loop count registers to track architectural state |
| KR102839223B1 (ko) * | 2019-01-07 | 2025-07-29 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그 동작 방법 |
| KR102877524B1 (ko) * | 2019-08-09 | 2025-10-30 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
| JP2021043908A (ja) * | 2019-09-13 | 2021-03-18 | キオクシア株式会社 | メモリシステムおよび制御方法 |
| CN113360423B (zh) * | 2020-03-03 | 2024-11-22 | 瑞昱半导体股份有限公司 | 数据储存系统及操作数据储存系统的方法 |
-
2020
- 2020-03-03 CN CN202010139211.9A patent/CN113360423B/zh active Active
- 2020-03-19 TW TW109109142A patent/TWI788641B/zh active
-
2021
- 2021-02-23 US US17/183,314 patent/US11487659B2/en active Active
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20020078246A1 (en) * | 2000-12-19 | 2002-06-20 | Ing-Simmons Nicholas K. | Method and system for network protocol processing |
| TW200801955A (en) * | 2005-12-19 | 2008-01-01 | Via Tech Inc | System and method for performing scatter/gather direct memory access transfers |
| US20110314207A1 (en) * | 2007-04-30 | 2011-12-22 | Samsung Electronics Co., Ltd. | Memory system, program method thereof, and computing system including the same |
| US20090276564A1 (en) * | 2008-05-02 | 2009-11-05 | Ling Jun Wong | Systematic memory shift for pre-segmented memory |
| TW201301032A (zh) * | 2011-06-24 | 2013-01-01 | Kenneth Cheng-Hao Lin | 高性能緩存方法和裝置 |
| CN103198028A (zh) * | 2013-03-18 | 2013-07-10 | 华为技术有限公司 | 一种内存数据迁移方法、装置及系统 |
| TW201732568A (zh) * | 2015-12-30 | 2017-09-16 | 英特爾股份有限公司 | 用於巷道為主的跨類收集的系統、設備與方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| US11487659B2 (en) | 2022-11-01 |
| CN113360423A (zh) | 2021-09-07 |
| CN113360423B (zh) | 2024-11-22 |
| US20210279171A1 (en) | 2021-09-09 |
| TW202134879A (zh) | 2021-09-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7240452B2 (ja) | 不揮発性メモリの複数区画の同時アクセスのための装置及び方法 | |
| JPWO2004057481A1 (ja) | Dma制御装置、dma制御方法、dma制御プログラム | |
| CN1965285A (zh) | 用于基于集线器的存储系统中直接存储器访问的设备和方法 | |
| CN100419901C (zh) | 具有用于读写操作的不同突发顺序寻址的存储器件 | |
| CN110826707B (zh) | 应用于卷积神经网络的加速方法和硬件加速器 | |
| TWI788641B (zh) | 資料儲存系統及操作資料儲存系統的方法 | |
| CN114968130B (zh) | 链表初始化装置、方法、系统、计算机设备和存储介质 | |
| US20020169900A1 (en) | Direct memory access controller, and direct memory access control method | |
| WO2006051780A1 (ja) | 同時アクセスするバンク数が異なるメモリコントローラに対応した不揮発性メモリ装置 | |
| CN104298608A (zh) | 使用地址位重排列的存储器访问 | |
| JP4855864B2 (ja) | ダイレクトメモリアクセスコントローラ | |
| US7774583B1 (en) | Processing bypass register file system and method | |
| JP2009110551A (ja) | 外部記憶装置およびそのメモリアクセス制御方法 | |
| US9430379B1 (en) | Dynamic random access memory controller | |
| JP2812292B2 (ja) | 画像処理装置 | |
| JP2008016051A (ja) | 外部記憶装置およびそのメモリアクセス制御方法 | |
| JP2007079715A (ja) | データ転送方法、プログラムおよび装置 | |
| JP4723334B2 (ja) | Dma転送システム | |
| JP2013246637A (ja) | 信号処理装置 | |
| JPS6027967A (ja) | バツフア記憶装置のブロツク転送制御方式 | |
| JPS6237429B2 (zh) | ||
| JP2008165537A (ja) | 動的再構成可能プロセッサ及び再構成指示方法 | |
| US8982646B2 (en) | Semiconductor memory device including data transfer bus and data transfer method of the device | |
| JP4771619B2 (ja) | ダイレクトメモリアクセス制御装置 | |
| JP2006164305A (ja) | 外部記憶装置およびそのメモリアクセス制御方法 |