TWI645286B - 記憶體控制裝置和方法 - Google Patents
記憶體控制裝置和方法 Download PDFInfo
- Publication number
- TWI645286B TWI645286B TW106129770A TW106129770A TWI645286B TW I645286 B TWI645286 B TW I645286B TW 106129770 A TW106129770 A TW 106129770A TW 106129770 A TW106129770 A TW 106129770A TW I645286 B TWI645286 B TW I645286B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- storage space
- temporary storage
- read
- controller
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage 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/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/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
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/1041—Resource optimization
- G06F2212/1044—Space efficiency 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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- 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/28—Using a specific disk cache architecture
- G06F2212/283—Plural cache memories
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
根據本發明之一實施例提供了一種記憶體控制裝置。控制器接收來自主機之主機指令,判斷主機指令所指示的操作類型,以及取得靜態隨機存取記憶體儲存的資料的資料參數。靜態隨機存取記憶體具有一第一暫存空間。動態隨機存取記憶體耦接控制器,且具有一第二暫存空間。控制器根據資料參數判斷第一暫存空間是否足夠容納對應主機指令之資料,當第一暫存空間無足夠容納對應主機指令之資料時,控制器將第一暫存空間中不同於上述操作類型之資料備份至第二暫存空間,暫存對應主機指令之資料,以及更新資料參數。
Description
本發明說明書主要係有關於一記憶體控制技術,特別係有關於藉由判斷靜態隨機存取記憶體之儲存空間判斷是否將資料從靜態隨機存取記憶體移動到動態隨機存取記憶體之記憶體控制技術。
半導體記憶體是一種以矽(Si)晶片為材料所製成的積體電路(Integrated Circuit,IC)。半導體記憶體裝置主要分類為兩類,揮發性記憶體裝置(volatile memory devices)與非揮發性記憶體裝置(nonvolatile memory devices)。揮發性記憶體裝置是一種當電源中斷時將遺失所儲存的資料之記憶體裝置。揮發性記憶體裝置包括例如靜態隨機存取記憶體(Static Random Access Memory,SRAM)、動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)以及同步動態隨機存取記憶體(Synchronous DRAM,SDRAM)。非揮發性記憶體裝置是一種即使在電源中斷時仍然保有所儲存的資料之記憶體裝置。非揮發性記憶體裝置包括例如唯讀記憶體(Read Only Memory,ROM)、可程式唯讀記憶體(Programmable ROM,PROM)、可抹除可程式唯讀記憶體(Erasable PROM,EPROM)、電性可抹除可程式唯讀記憶體(Electrically EPROM,EEPROM)、快閃記憶體裝置(flash memory device)、參數隨機存取記憶體
(Parameter RAM,PRAM)、磁阻式隨機存取記憶體(Magnetoresistive RAM,MRAM)、電阻式隨機存取記憶體(Resistive RAM,RRAM)以及鐵電隨機存取記憶體(Ferroelectric RAM,FRAM)。
傳統上之記憶體控制技術,會藉由DRAM來快取(暫存)主機所要寫入或讀取之快閃記憶體裝置之資料。然而,受限於DRAM之頻寬,因而導致讀取和寫入時的效能不佳。
因此,在一些記憶體控制技術中,會改採用控制器內部的SRAM來快取(暫存)主機所要寫入或讀取之快閃記憶體裝置之資料,以增加資料讀取和寫入的效能。然而,因為資料讀取和寫入係共用同一SRAM,因此,當寫入操作和讀取操作交錯執行時,會發生主機指令延遲(Command latency)的問題。舉例來說,於寫入操作後執行讀取操作時,控制器需要先將已暫存在SRAM上的資料先備份到DRAM上,以清出SRAM的空間讓主機可以利用SRAM空間來快取資料,直到讀取操作做完時再將DRAM上的資料備份回SRAM,而備份到DRAM以及備份回SRAM將造成顯著的延遲。
有鑑於上述先前技術之問題,本發明提供了藉由判斷靜態隨機存取記憶體之儲存空間判斷是否將資料從靜態隨機存取記憶體移動到動態隨機存取記憶體之記憶體控制裝置和方法。
根據本發明之一實施例提供了一種記憶體控制裝置。上述記憶體控制裝置包括一控制器、一靜態隨機存取記憶
體以及一動態隨機存取記憶體。控制器包括上述靜態隨機存取記憶體,且上述靜態隨機存取記憶體具有一第一暫存空間。此外,控制器接收來自一主機之一主機指令,判斷上述主機指令所指示的一操作類型,以及取得上述靜態隨機存取記憶體所儲存的資料的資料參數。動態隨機存取記憶體耦接上述控制器,且具有一第二暫存空間。上述控制器根據上述資料參數判斷上述第一暫存空間是否足夠容納對應上述主機指令之資料,當上述第一暫存空間無足夠容納對應上述主機指令之資料時,上述控制器將上述第一暫存空間中對應不同於上述操作類型之資料備份至上述第二暫存空間、暫存對應上述主機指令之資料,以及更新上述資料參數。
在一些實施例中,上述控制器更記錄對應不同操作類型之資料所對應之一起始指標、一結束指標以及資料量。
在一些實施例中,上述操作類型係一寫入操作或一讀取操作。
在一些實施例中,當根據上述主機指令得知上述寫入操作完成後將執行上述讀取操作時,上述控制器根據對應上述寫入操作之寫入資料之上述起始指標及上述結束指標,判斷上述第一暫存空間是否有空間可以暫存對應上述讀取操作之讀取資料。當上述讀取資料有可能涵蓋到上述寫入資料時,上述控制器將上述寫入資料備份至上述第二暫存空間。
在一些實施例中,當根據上述主機指令得知上述讀取操作完成後將執行上述寫入操作時,上述控制器根據對應上述讀取操作之讀取資料之上述起始指標及上述結束指標,判
斷上述第一暫存空間是否有空間可以暫存對應上述寫入操作之寫入資料。當上述寫入資料有可能涵蓋到上述讀取資料時,上述控制器將上述讀取資料備份至上述第二暫存空間。
根據本發明之一實施例提供了一種記憶體控制裝置方法。上述記憶體控制裝置方法之步驟包括,接收來自一主機之一主機指令;判斷上述主機指令所指示的一操作類型;取得資料參數;根據上述資料參數判斷一第一暫存空間是否足夠容納對應上述主機指令之資料;當上述第一暫存空間無足夠容納對應上述主機指令之資料時,將上述第一暫存空間中對應不同於上述操作類型之資料備份至一第二暫存空間;暫存對應上述主機指令之資料;以及更新上述資料參數。
關於本發明其他附加的特徵與優點,此領域之熟習技術人士,在不脫離本發明之精神和範圍內,當可根據本案實施方法中所揭露之記憶體控制裝置和方法,做些許的更動與潤飾而得到。
100‧‧‧記憶體控制裝置
110‧‧‧控制器
120‧‧‧靜態隨機存取記憶體
130‧‧‧動態隨機存取記憶體
140‧‧‧快閃記憶體
150‧‧‧主機
IH‧‧‧讀取資料之起始指標
IT‧‧‧讀取資料之結束指標
PH‧‧‧寫入資料之起始指標
PT‧‧‧寫入資料之結束指標
S502~S514‧‧‧步驟
第1圖係顯示根據本發明之一實施例所述之記憶體控制裝置100之方塊圖。
第2圖係顯示根據本發明之一實施例所述之暫存在靜態隨機存取記憶體120之資料之示意圖。
第3圖係顯示根據本發明之另一實施例所述之暫存在靜態隨機存取記憶體120之資料之示意圖。
第4圖係顯示根據本發明之另一實施例所述之暫存在靜態
隨機存取記憶體120之資料之示意圖。
第5圖係根據本發明一實施例所述之記憶體控制方法之流程圖。
本章節所敘述的是實施本發明之最佳方式,目的在於說明本發明之精神而非用以限定本發明之保護範圍,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
第1圖係顯示根據本發明之一實施例所述之記憶體控制裝置100之方塊圖。如第1圖所示,記憶體控制裝置100可包括一控制器110、一靜態隨機存取記憶體120、一動態隨機存取記憶體130,以及一快閃記憶體140。特別注意地是,在第1圖中之方塊圖,僅係為了方便說明本發明之實施例,但本發明並不以此為限。記憶體控制裝置100亦可包括其他元件。
根據本發明之實施例,靜態隨機存取記憶體120包含於控制器110中,以作為一快取(cache)記憶體。控制器110會根據主機150之主機指令進行操作。控制器110可用以控制靜態隨機存取記憶體120和動態隨機存取記憶體130中資料之快取和存取。此外,控制器110可用以控制快閃記憶體140之資料之讀取和寫入。
根據本發明之實施例,快閃記憶體140係一非揮發性儲存裝置(Non-Volatile Memory),例如:反及閘快閃記憶體(NAND Flash),但本發明不以此為限。
根據本發明一實施例,控制器110會從主機150
接收一主機指令,並依據此主機指令對快閃記憶體140執行一讀取操作或一寫入操作。當控制器110依據主機指令執行讀取操作時,控制器110會將從快閃記憶體140取得的讀取資料暫存在靜態隨機存取記憶體120中,再輸出至主機150,控制器110可依據主機指令重覆執行讀取操作。當控制器110依據主機指令而不再執行讀取操作,反而是執行寫入操作時,控制器110會將從主機150取得的寫入資料暫存在靜態隨機存取記憶體120中,再將寫入資料寫入快閃記憶體140中,控制器110可依據主機指令重覆執行寫入操作。
根據本發明一實施例,當執行讀取操作時,控制器110會記錄對應讀取操作的讀取資料D1在靜態隨機存取記憶體120中的位址。如果靜態隨機存取記憶體120中儲存數筆讀取資料D1,則控制器110會記錄這些讀取資料D1在靜態隨機存取記憶體120中的起始位址(數筆讀取資料D1的頭)及結束位址(數筆讀取資料D1的尾)。控制器110較佳採用起始指標IH及結束指標IT來分別指向讀取資料D1的起始位址以及結束位址。至於讀取資料D1的起始位址至結束位址以外的位址皆可以用以儲存寫入資料D2。
另外,控制器110也可以記錄對應寫入操作的寫入資料D2在靜態隨機存取記憶體120中的位址。如果靜態隨機存取記憶體120中儲存數筆寫入資料D2,則控制器110會記錄這些寫入資料D2在靜態隨機存取記憶體120中的起始位址(數筆寫入資料D2的頭)以及結束位址(數筆寫入資料D2的尾)。控制器110較佳採用起始指標PH及結束指標PT來分別
指向寫入資料D2的起始位址以及結束位址。至於寫入資料D2的起始位址至結束位址以外的位址皆可以用以儲存讀取資料D1。根據本發明一實施例,控制器110亦會記錄讀取資料D1和寫入資料D2之資料量。
根據本發明一實施例,當控制器110根據來自主機150之主機指令得知寫入操作完成後將執行讀取操作,此時,控制器110可由起始指標PH及結束指標PT得知靜態隨機存取記憶體120是否有空間可以暫存讀取資料D1。如果有,則控制器110不將寫入資料D2備份至動態隨機存取記憶體130,控制器110直接進行主機指令的讀取操作,且將讀取資料D1暫存在靜態隨機存取記憶體120,並以起始指標IH及結束指標IT記錄之,如圖2所示。也就是說,當寫入操作完成後執行讀取操作時,控制器110會直接先將對應讀取操作之讀取資料D1暫存(或備份)在靜態隨機存取記憶體120中,即將讀取資料D1暫存在靜態隨機存取記憶體120中未使用之空間中。
在控制器110不斷地將讀取資料D1暫存至靜態隨機存取記憶體120之過程中,結束指標IT也不斷地指向不同的位址。另外,在讀取資料D1上傳或輸出至主機150後,將變成無效(可刪除)資料,使得起始指標IH也會不斷地指向不同的位址。如圖3所示,當結束指標IT即將指向起始指標PH所指向的位址時,這表示靜態隨機存取記憶體120已無多餘空間可以儲存更多的讀取資料D1,此時,控制器110就會將暫存在靜態隨機存取記憶體120之寫入資料D2全部移動到動態隨機存取記憶體130中暫存,以將靜態隨機存取記憶體120之
儲存空間空出來暫存更多的讀取資料D1,如圖4所示。換句話說,如果靜態隨機存取記憶體120有多餘的空間可以暫存讀取資料D1,則控制器110不需要將靜態隨機存取記憶體120之寫入資料D2備份到動態隨機存取記憶體130中暫存,如此一來,就不會產生習知的指令延遲。
須說明的是,若寫入資料D2已暫存在靜態隨機存取記憶體120中,當一個寫入操作完成後,有部份寫入資料D2已無效(可刪除),但仍有部份寫入資料D2仍有效,因此,起始指標PH所指向的位址會改變。當寫入操作完成後將執行讀取操作時,控制器110較佳會從結束指標PT所指向的位址的下一個位址作為起始指標IH所指向的位址,並開始暫存讀取資料D1,最後,以結束指標IT記錄讀取資料D1的結尾。由於讀取資料D1或寫入資料D2何時從有效變成無效,與主機指令的執行順序及結果有關,故不多作敘述。
相反地,當控制器110根據來自主機150之主機指令得知讀取操作完成後將執行寫入操作時,控制器110不會先將讀取資料D1備份至動態隨機存取記憶體130,而是將寫入資料D2暫存在靜態隨機存取記憶體120,直接準備進行寫入操作。由於僅使用一組起始指標PH及結束指標PT,因此,起始指標PH指向結束指標IT所指向的位址的下一個位址並開始暫存寫入資料D2。由上述可知,起始指標PH及結束指標PT有可能會涵蓋到讀取資料D1,因此,在執行寫入操作時,除了依據起始指標PH及結束指標PT以取得寫入資料D2之外,更要排除起始指標IH及結束指標IT所涵蓋的讀取資料D1。
如果靜態隨機存取記憶體120已無空間可以暫存剩餘的寫入資料D2時,控制器110會將讀取資料D1備份到動態隨機存取記憶體130中暫存,讓靜態隨機存取記憶體120有更多的空間以暫存寫入資料D2。
第5圖係根據本發明一實施例所述之記憶體控制方法之流程圖。此記憶體控制方法適用記憶體控制裝置100。在步驟S502,記憶體控制裝置100接收來自一主機之一主機指令。
在步驟S504,判斷主機指令的操作類型。也就是說,控制器110會判斷主機指令係指示要執行讀取操作或寫入操作。在步驟S506,取得第一暫存空間所儲存的資料的資料參數(即起始指標和結束指標之值)。控制器110會取得對應讀取資料D1之起始指標IH及結束指標IT,以及對應寫入資料D2之起始指標PH及結束指標PT。
在步驟S508,根據資料參數判斷第一暫存空間(例如:靜態隨機存取記憶體120)是否足夠容納對應主機指令的資料。假設控制器110依主機指令執行讀取操作,則控制器110會根據對應寫入資料D2之起始指標PH及結束指標PT判斷靜態隨機存取記憶體120是否有足夠空間可容納讀取資料D1;假設控制器110依主機指令執行寫入操作,則控制器110會根據對應讀取資料D1之起始指標IH及結束指標IT判斷靜態隨機存取記憶體120是否有足夠空間可容納寫入資料D2。
回到步驟S508,如果判斷為否,則執行步驟S510,將上述第一暫存空間中對應不同於主機指令所指示的操作類
型之資料備份至一第二暫存空間(例如:動態隨機存取記憶體130)。假設對應主機指令之操作類型的資料為讀取資料D1,若控制器110根據起始指標PH及結束指標PT判斷靜態隨機存取記憶體120無足夠空間可容納讀取資料D1,控制器110會將寫入資料D2備份至動態隨機存取記憶體130,使靜態隨機存取記憶體120產生足夠空間以容納讀取資料D1,反之亦然。
在步驟S512,暫存對應主機指令的資料至靜態隨機存取記憶體120。在步驟S514,根據暫存之資料更新資料之參數。當靜態隨機存取記憶體120有足夠的空間容納讀取資料D1時,控制器110將讀取資料D1暫存至靜態隨機存取記憶體120,並且隨著讀取資料D1的增加或減少而改變結束指標IT或起始指標IH的值。或者,當靜態隨機存取記憶體120有足夠的空間容納寫入資料D2時,控制器110將寫入資料D2暫存至靜態隨機存取記憶體120,並且隨著寫入資料D2的增加或減少而改變結束指標PT或起始指標PH的值。
根據本發明之實施例所提出之記憶體控制方法,當控制器110對快閃記憶體140執行不同類型操作時,控制器110不需要將暫存於靜態隨機存取記憶體之資料備份到動態隨機存取記憶體中,而是直接將目前操作之資料暫存至靜態隨機存取記憶體中,直到靜態隨機存取記憶體的儲存空間不足時,才會將不同類型操作之資料從靜態隨機存取記憶體120備份至動態隨機存取記憶體130。本發明之實施例所提出之記憶體控制方法,可避免因為不同類型操作而不斷地進行資料備份所導
致的指令延遲,以及提升讀取和寫入之效能。
本說明書中所提到的「一實施例」或「實施例」,表示與實施例有關之所述特定的特徵、結構、或特性是包含根據本發明的至少一實施例中,但並不表示它們存在於每一個實施例中。因此,在本說明書中不同地方出現的「在一實施例中」或「在實施例中」詞組並不必然表示本發明的相同實施例。
以上段落使用多種層面描述。顯然的,本文的教示可以多種方式實現,而在範例中揭露之任何特定架構或功能僅為一代表性之狀況。根據本文之教示,任何熟知此技藝之人士應理解在本文揭露之各層面可獨立實作或兩種以上之層面可以合併實作。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟習此技藝者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
Claims (14)
- 一種記憶體控制裝置,包括:一控制器,包括一靜態隨機存取記憶體,且接收來自一主機之一主機指令,判斷上述主機指令所指示的一操作類型,以及取得上述靜態隨機存取記憶體所儲存的資料的資料參數,其中上述靜態隨機存取記憶體具有一第一暫存空間;以及一動態隨機存取記憶體,耦接上述控制器,且具有一第二暫存空間;其中上述控制器根據上述資料參數判斷上述第一暫存空間是否足夠容納對應上述主機指令之資料,當上述第一暫存空間不足夠容納對應上述主機指令之資料時,上述控制器將上述第一暫存空間中對應不同於上述操作類型之資料備份至上述第二暫存空間,暫存對應上述主機指令之資料於上述第一暫存空間,以及更新上述資料參數。
- 如申請專利範圍第1項所述之記憶體控制裝置,其中上述控制器更記錄對應不同操作類型之資料於上述第一暫存空間所對應之一起始指標、一結束指標以及資料量。
- 如申請專利範圍第2項所述之記憶體控制裝置,其中上述操作類型係一寫入操作或一讀取操作。
- 如申請專利範圍第3項所述之記憶體控制裝置,其中當根據上述主機指令得知上述寫入操作完成後將執行上述讀取操作時,上述控制器根據對應上述寫入操作之寫入資料於上述第一暫存空間中的上述起始指標及上述結束指標,判斷上述第一暫存空間是否有空間可以暫存對應上述讀取操作之讀取資料。
- 如申請專利範圍第4項所述之記憶體控制裝置,其中當上述讀取資料有可能涵蓋到上述寫入資料時,上述控制器將上述寫入資料備份至上述第二暫存空間。
- 如申請專利範圍第3項所述之記憶體控制裝置,其中當根據上述主機指令得知上述讀取操作完成後將執行上述寫入操作時,上述控制器根據對應上述讀取操作之讀取資料於上述第一暫存空間中的上述起始指標及上述結束指標,判斷上述第一暫存空間是否有空間可以暫存對應上述寫入操作之寫入資料。
- 如申請專利範圍第6項所述之記憶體控制裝置,其中當上述寫入資料有可能涵蓋到上述讀取資料時,上述控制器將上述讀取資料備份至上述第二暫存空間。
- 一種記憶體控制方法,包括:接收來自一主機之一主機指令;判斷上述主機指令所指示的一操作類型;取得一第一暫存空間所儲存的資料的資料參數;根據上述資料參數判斷上述第一暫存空間是否足夠容納對應上述主機指令之資料;當上述第一暫存空間不足夠容納對應上述主機指令之資料時,將上述第一暫存空間中對應不同於上述操作類型之資料備份至一第二暫存空間;暫存對應上述主機指令之資料於上述第一暫存空間;以及更新上述資料參數。
- 如申請專利範圍第8項所述之記憶體控制方法,更包括:記錄對應不同操作類型之資料於上述第一暫存空間所對應之一起始指標、一結束指標以及資料量。
- 如申請專利範圍第9項所述之記憶體控制方法,其中上述操作類型係一寫入操作或一讀取操作。
- 如申請專利範圍第10項所述之記憶體控制方法,更包括:當根據上述主機指令得知上述寫入操作完成後將執行上述讀取操作時,根據對應上述寫入操作之寫入資料於上述第一暫存空間中的上述起始指標及上述結束指標,判斷上述第一暫存空間是否有空間可以暫存對應上述讀取操作之讀取資料。
- 如申請專利範圍第11項所述之記憶體控制方法,更包括:當上述讀取資料有可能涵蓋到上述寫入資料時,將上述寫入資料備份至上述第二暫存空間。
- 如申請專利範圍第10項所述之記憶體控制方法,更包括:當根據上述主機指令得知上述讀取操作完成後將執行上述寫入操作時,根據對應上述讀取操作之讀取資料於上述第一暫存空間中的上述起始指標及上述結束指標,判斷上述第一暫存空間是否有空間可以暫存對應上述寫入操作之寫入資料。
- 如申請專利範圍第13項所述之記憶體控制方法,更包括:當上述寫入資料有可能涵蓋到上述讀取資料時,將上述讀取資料備份至上述第二暫存空間。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW106129770A TWI645286B (zh) | 2017-08-31 | 2017-08-31 | 記憶體控制裝置和方法 |
| CN201810058732.4A CN109426443B (zh) | 2017-08-31 | 2018-01-22 | 存储器控制装置和方法 |
| US16/016,134 US10474364B2 (en) | 2017-08-31 | 2018-06-22 | Memory control device and method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW106129770A TWI645286B (zh) | 2017-08-31 | 2017-08-31 | 記憶體控制裝置和方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TWI645286B true TWI645286B (zh) | 2018-12-21 |
| TW201913377A TW201913377A (zh) | 2019-04-01 |
Family
ID=65431800
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW106129770A TWI645286B (zh) | 2017-08-31 | 2017-08-31 | 記憶體控制裝置和方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US10474364B2 (zh) |
| CN (1) | CN109426443B (zh) |
| TW (1) | TWI645286B (zh) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112748861B (zh) * | 2019-10-31 | 2024-06-07 | 伊姆西Ip控股有限责任公司 | 用于提供信息的方法、电子设备和计算机程序产品 |
| CN115357196A (zh) * | 2022-08-31 | 2022-11-18 | 鹏城实验室 | 动态可扩展的组相联高速缓存方法、装置、设备及介质 |
| CN118689407B (zh) * | 2024-08-26 | 2024-11-05 | 合肥康芯威存储技术有限公司 | 一种存储设备及其控制方法 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7320013B2 (en) * | 2002-12-12 | 2008-01-15 | Adaptec, Inc. | Method and apparatus for aligning operands for a processor |
| CN101174245B (zh) * | 2006-11-02 | 2010-06-09 | 国际商业机器公司 | 混合数据存储的方法和装置及混合存储设备 |
| CN103984643B (zh) * | 2013-02-11 | 2016-04-06 | 想象力科技有限公司 | 用于将程序中的加载指令分发到数据高速缓存的方法和设备 |
| CN106681695A (zh) * | 2015-11-09 | 2017-05-17 | 想象技术有限公司 | 提前取出分支目标缓冲器 |
| TW201729105A (zh) * | 2015-10-16 | 2017-08-16 | 希耐克斯實驗室公司 | 混合模式存取固態硬碟驅動器之方法及裝置 |
Family Cites Families (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5991851A (en) * | 1997-05-02 | 1999-11-23 | Enhanced Memory Systems, Inc. | Enhanced signal processing random access memory device utilizing a DRAM memory array integrated with an associated SRAM cache and internal refresh control |
| US7827348B2 (en) * | 2000-01-06 | 2010-11-02 | Super Talent Electronics, Inc. | High performance flash memory devices (FMD) |
| US7606993B2 (en) * | 2003-06-10 | 2009-10-20 | Tdk Corporation | Flash memory controller, memory control circuit, flash memory system, and method for controlling data exchange between host computer and flash memory |
| US8370562B2 (en) * | 2007-02-25 | 2013-02-05 | Sandisk Il Ltd. | Interruptible cache flushing in flash memory systems |
| US7865658B2 (en) * | 2007-12-31 | 2011-01-04 | Sandisk Il Ltd. | Method and system for balancing host write operations and cache flushing |
| KR20100082185A (ko) * | 2009-01-08 | 2010-07-16 | 삼성전자주식회사 | 플래시 메모리, 캐시 메모리, 그리고 제어기를 포함하는 사용자 장치 |
| JP2012203767A (ja) * | 2011-03-28 | 2012-10-22 | Nec Commun Syst Ltd | Dram型メモリシステムおよびメモリ管理制御方法 |
| US8635407B2 (en) * | 2011-09-30 | 2014-01-21 | International Business Machines Corporation | Direct memory address for solid-state drives |
| JP2013097416A (ja) * | 2011-10-28 | 2013-05-20 | Hitachi Ltd | 記憶装置および計算機 |
| CN103186470B (zh) * | 2011-12-30 | 2016-04-20 | 群联电子股份有限公司 | 存储器储存装置及其存储器控制器与数据写入方法 |
| KR20140067400A (ko) * | 2012-11-26 | 2014-06-05 | 삼성전자주식회사 | 플래시 메모리, 제 1 버퍼 메모리, 메모리 컨트롤러를 포함하는 메모리 시스템 및 그것의 동작 방법 |
| US9430386B2 (en) * | 2013-03-15 | 2016-08-30 | Bitmicro Networks, Inc. | Multi-leveled cache management in a hybrid storage system |
| CN104485130B (zh) * | 2014-12-19 | 2018-04-20 | 上海新储集成电路有限公司 | 一种固态硬盘结构 |
| CN104811495B (zh) * | 2015-04-27 | 2018-06-08 | 北京交通大学 | 一种用于智慧协同网络的网络组件内容存储方法及模块 |
| KR102032892B1 (ko) * | 2015-05-06 | 2019-10-16 | 에스케이하이닉스 주식회사 | 반도체 장치 및 그 동작 방법 |
| US9792191B2 (en) * | 2015-08-19 | 2017-10-17 | Nxp Usa, Inc. | Fast write mechanism for emulated electrically erasable (EEE) system |
| KR20180069960A (ko) * | 2016-12-15 | 2018-06-26 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
-
2017
- 2017-08-31 TW TW106129770A patent/TWI645286B/zh active
-
2018
- 2018-01-22 CN CN201810058732.4A patent/CN109426443B/zh active Active
- 2018-06-22 US US16/016,134 patent/US10474364B2/en active Active
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7320013B2 (en) * | 2002-12-12 | 2008-01-15 | Adaptec, Inc. | Method and apparatus for aligning operands for a processor |
| CN101174245B (zh) * | 2006-11-02 | 2010-06-09 | 国际商业机器公司 | 混合数据存储的方法和装置及混合存储设备 |
| CN103984643B (zh) * | 2013-02-11 | 2016-04-06 | 想象力科技有限公司 | 用于将程序中的加载指令分发到数据高速缓存的方法和设备 |
| TW201729105A (zh) * | 2015-10-16 | 2017-08-16 | 希耐克斯實驗室公司 | 混合模式存取固態硬碟驅動器之方法及裝置 |
| CN106681695A (zh) * | 2015-11-09 | 2017-05-17 | 想象技术有限公司 | 提前取出分支目标缓冲器 |
Also Published As
| Publication number | Publication date |
|---|---|
| US10474364B2 (en) | 2019-11-12 |
| CN109426443B (zh) | 2022-12-02 |
| US20190065071A1 (en) | 2019-02-28 |
| TW201913377A (zh) | 2019-04-01 |
| CN109426443A (zh) | 2019-03-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN110534140B (zh) | 存储器装置、存储器系统和存储器装置的操作方法 | |
| US8463826B2 (en) | Incremental garbage collection for non-volatile memories | |
| CN101645306B (zh) | 非易失性存储器控制方法及半导体装置 | |
| US11513723B2 (en) | Read handling in zoned namespace devices | |
| JP2008033788A5 (zh) | ||
| US11892928B2 (en) | Delayed thermal throttling and associated data routing techniques | |
| TWI645286B (zh) | 記憶體控制裝置和方法 | |
| CN102693756B (zh) | 半导体存储装置 | |
| CN104810055A (zh) | Flash芯片读写控制电路和方法、AMOLED应用电路 | |
| CN106547701A (zh) | 记忆装置及数据读取方法 | |
| CN114373491A (zh) | 存储装置及其操作方法 | |
| JP2009536423A (ja) | 不揮発性メモリをリフレッシュする方法 | |
| CN108958643A (zh) | 数据存储装置及其操作方法 | |
| TW201807578A (zh) | 儲存系統及其位址映射方法和存取方法 | |
| TWI721666B (zh) | 半導體儲存裝置 | |
| TWI709132B (zh) | 記憶體系統 | |
| US20180357280A1 (en) | Trie search engine | |
| JP4177360B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
| JP4645043B2 (ja) | メモリーコントローラ、不揮発性記憶装置および不揮発性メモリシステム | |
| JP4826232B2 (ja) | 情報処理装置およびブートプログラムの書き換え方法 | |
| CN108228474A (zh) | 半导体系统和用于操作半导体系统的方法 | |
| JP4213140B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
| JP4235624B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
| TWI587141B (zh) | 記憶裝置及資料讀取方法 | |
| CN121478179A (zh) | 包括存储器件和存储器控制器的存储设备以及该存储设备的操作方法 |