TW201705000A - 電腦系統及非揮發性記憶體的控制方法 - Google Patents
電腦系統及非揮發性記憶體的控制方法 Download PDFInfo
- Publication number
- TW201705000A TW201705000A TW104124681A TW104124681A TW201705000A TW 201705000 A TW201705000 A TW 201705000A TW 104124681 A TW104124681 A TW 104124681A TW 104124681 A TW104124681 A TW 104124681A TW 201705000 A TW201705000 A TW 201705000A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- memory
- memory controller
- data pool
- storage device
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/251—Local memory within processor subsystem
- G06F2212/2515—Local memory within processor subsystem being configurable for different purposes, e.g. as cache or non-cache memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
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 (AREA)
Abstract
本發明係提供一種電腦系統,包括:一中央處理器;一系統記憶體;一第一記憶體控制器,用以控制系統記憶體之存取;以及一儲存裝置,包括:一非揮發性記憶體;以及一第二記憶體控制器,用以控制非揮發性記憶體之存取,其中,該第一記憶體控制器係將系統記憶體劃分出一第一資料池及一第二資料池,該第一資料池係儲存該中央處理器存取儲存裝置之暫存資料,且第二資料池係儲存一快閃轉譯層資料,並專供第二記憶體控制器使用,其中,當中央處理器欲存取儲存裝置時,第二記憶體控制器係依據快閃轉譯層資料存取非揮發性記憶體。
Description
本發明係有關於電腦系統,特別是有關於一種非揮發性記憶體的控制方法及其電腦系統。
隨著技術發展,在電腦系統中之儲存裝置的傳輸速度也愈來愈快,例如固態硬碟(Solid-state Disk)即為可進行快速資料存取的非揮發性記憶體。近年來,由各電腦廠商已訂定了非揮發性記憶體之傳輸標準,例如進階主機控制器介面(Advanced Host Controller Interface,AHCI)及快捷非揮發性記憶體(Non-volatile Memory Express,NVMe)等等。上述兩種標準階為在儲存裝置與作業系統端的包含指令集、快閃記憶體存取控制、暫存器傳輸級(Register Transfer Level)、及驅動程式層等介面標準。
更進一步而言,NVME是一種改善傳統AHCI的新型儲存裝置控制器,其能改善系統資源的使用,例如使用系統多核心下達指令、減下不必要的暫存器控制等等。然而現今NVMe仍是受限於NAND Flash儲存裝置的限制,因為它的隨機存取不夠快(存取時間約50us),還無法直接用來取代動態隨機存取記憶體(DRAM)與中央處理器(CPU)直接溝通,必須通過直
接記憶體存取(Direct Memory Access、DMA)的機制將系統要求的資料放入主控制的記憶體(存取時間約30ns),再由主控端記憶體跟中央處理器進行處理。
為了解開上述問題,NVMe制訂了主控端記憶體緩衝器(Host Memory Buffer)之功能。傳統的固態硬碟為了提供快速的存取效率都是在固態硬碟控制器上掛一顆動態隨機存取記憶體以進行資料存取。現在NVMe標準則直接制訂此新功能來使用系統端的主控端記憶體來替代固態硬碟控制器上的動態隨機存取記憶體。然而,上述作法仍然有其限制,因為主控端記憶體緩衝器主要是用於I/O存取,並無法拿來放固定資料,意即針對特定的資料還是先必須透過NVMe控制器將資料放到主控端記憶體。需注意的是,上述的存取動作與DMA不同,DMA是將資料放進中央處理器可以使用的資料池,而主控端記憶體緩衝器是將資料放進NVMe控制器可以使用的資料池。
本發明係提供一種電腦系統,包括:一中央處理器;一系統記憶體;一第一記憶體控制器,用以控制該系統記憶體之存取;以及一儲存裝置,包括:一非揮發性記憶體;以及一第二記憶體控制器,用以控制該非揮發性記憶體之存取,其中,該第一記憶體控制器係將該系統記憶體劃分出一第一資料池及一第二資料池,該第一資料池係儲存該中央處理器存取該儲存裝置之暫存資料,且該第二資料池係儲存一快閃轉譯層
資料,並專供該第二記憶體控制器使用,其中,當該中央處理器欲存取該儲存裝置時,該第二記憶體控制器係依據該快閃轉譯層資料存取該非揮發性記憶體。
本發明更提供一種非揮發性記憶體之控制方法,用於一電腦系統,該電腦系統包括:一中央處理器;一系統記憶體;一第一記憶體控制器,用以控制該系統記憶體之存取;以及一儲存裝置,包括一非揮發性記憶體及一第二記憶體控制器,用以控制該非揮發性記憶體之存取,該方法包括:利用該第一記憶體控制器將該系統記憶體劃分出一第一資料池及一第二資料池,其中該第一資料池係儲存該中央處理器存取該儲存裝置之暫存資料,且該第二資料池係儲存一快閃轉譯層資料,並專供該第二記憶體控制器使用;以及當該中央處理器欲存取該儲存裝置時,該第二記憶體控制器係依據該快閃轉譯層資料以存取該非揮發性記憶體。
100‧‧‧電腦系統
110‧‧‧中央處理器
111‧‧‧第一記憶體控制器
120‧‧‧系統記憶體
121‧‧‧第一資料池
122‧‧‧第二資料池
130‧‧‧儲存裝置
131‧‧‧第二記憶體控制器
132‧‧‧非揮發性記憶體
第1圖係顯示依據本發明一實施例中之電腦系統之方塊圖。
第2圖係顯示依據本發明一實施例中之用於一非揮發性記憶體之控制方法的流程圖。
為使本發明之上述目的、特徵和優點能更明顯易懂,下文特舉一較佳實施例,並配合所附圖式,作詳細說明如
下。
第1圖係顯示依據本發明一實施例中之電腦系統之方塊圖。在一實施例中,電腦系統100包括一中央處理器110、一系統記憶體120、及一儲存裝置130。儲存裝置130係包括一記憶體控制器131及一非揮發性記憶體132,其中記憶體控制器131係支援NVMe標準,且非揮發性記憶體132例如是NAND快閃記憶體,但本發明並不限於此。另外,系統記憶體120及儲存裝置130之間係以PCIe匯流排做為溝通橋樑。在一實施例中,中央處理器110更包括一第一記憶體控制器111,用以控制系統記憶體120之資料存取,其中系統記憶體120例如是動態隨機存取記憶體。在另一實施例中,第一記憶體控制器111係獨立於中央處理器110之外。
在一實施例中,第一記憶體控制器111係由系統記憶體120中劃分出一第一資料池121及一第二資料池122。當中央處理器110欲寫入資料至儲存裝置130時,中央處理器110係透過第一記憶體控制器111將暫存資料先寫入至系統記憶體120中之第一資料池121(例如供DMA存取)中,第二記憶體控制器131再由第一資料池121中取得暫存資料,並寫入非揮發性記憶體132中。
需了解的是,第二記憶體控制器131在寫入資料至非揮發性記憶體132時均是透過一快閃轉譯層(Flash Translation Layer),該快閃轉譯層係負責提供檔案系統和在非揮性記憶體132中之實體資料層之間的對應,使得作業系統仍然可看到與一般傳統硬碟一樣的檔案系統。
在一實施例中,系統記憶體120更劃分出一第二資料池122,用以專門供第二記憶體控制器131進行存取。更進一步而言,在快閃轉譯層中的資料係可放進第二資料池122中,因此,存取快閃轉譯層之資料的傳輸速度可大幅提高。舉例來說,原本若是第二記憶體控制器131外掛一個DDR動態隨機存取記憶體時,其頻寬約為1.6GB/s。而本發明係將快閃轉譯層中的資料係放進第二資料池122中,則記憶體控制器131存取第二資料池122中之資料的傳輸速度可達到4GB/s。在另一實施例中,第二資料池122更供以儲存使用者之資料(即一般資料),且當第二記憶體控制器131收到來自中央處理器110之讀取指令時,第一記憶體控制器111可直接由第二資料池122中讀出資料,而不需再經由PCIe匯流排由儲存裝置130傳輸資料至系統記憶體120,再由系統記憶體120中讀取資料。
此外,每當中央處理器110欲寫入資料至儲存裝置130時,第二記憶體控制器131係接收到來自中央處理器110之寫入指令。此時,第二記憶體控制器131係傳送一提示信息(hint message)至第一記憶體控制器111,並藉由第一記憶體控制器111將欲寫入資料所需的快閃轉譯層資料由第二資料池122讀取至第一資料池121中。因此,第二記憶體控制器131可由系統記憶體120之第一資料池121同時取得欲寫入之資料及快閃轉譯層資料,並依據所取得的快閃轉譯層資料將資料寫入非揮發性記憶體132中。簡單來說,本發明可利用系統記憶體120儲存快閃轉譯層資料,而儲存裝置130則可不用再另外增加一個動態隨機存取記憶體。
在一實施例中,第二記憶體控制器131在存取資料的同時,因為檔案位置及實體資料層之對應關係可能跟著改變,因此第二記憶體控制器131也會隨時更新快閃轉譯層資料。然而,為了,確保資料之安全性,在本實施例中,第二記憶體控制器131係使用透寫(write through)的方式將資料同時寫入系統記憶體120之第二資料池122及非揮發性記憶體132中。
第2圖係顯示依據本發明一實施例中之用於非揮發性記憶體之控制方法的流程圖。在步驟S210,利用該第一記憶體控制器將該系統記憶體劃分出一第一資料池及一第二資料池,其中該第一資料池係儲存該中央處理器存取該儲存裝置之暫存資料,且該第二資料池係儲存一快閃轉譯層資料,並專供該第二記憶體控制器使用。在步驟S220,當中央處理器110欲存取儲存裝置130時,第二記憶體控制器131係依據快閃轉譯層資料以存取非揮發性記憶體132。
綜上所述,本發明係提供一種電腦系統及用於非揮發性記憶體的控制方法,其可利用電腦系統中之系統記憶體存放快閃轉譯層資料及非揮發性記憶體中所儲存之資料以供中央處理器或儲存裝置中的第二記憶體控制器以較大的傳輸頻寬快速存取所需的資料及快閃轉譯層資料,進而提昇存取速度。
本發明雖以較佳實施例揭露如上,然其並非用以限定本發明的範圍,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可做些許的更動與潤飾,因
此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100‧‧‧電腦系統
110‧‧‧中央處理器
111‧‧‧第一記憶體控制器
120‧‧‧系統記憶體
121‧‧‧第一資料池
122‧‧‧第二資料池
130‧‧‧儲存裝置
131‧‧‧第二記憶體控制器
132‧‧‧非揮發性記憶體
Claims (10)
- 一種電腦系統,包括:一中央處理器;一系統記憶體;一第一記憶體控制器,用以控制該系統記憶體之存取;以及一儲存裝置,包括:一非揮發性記憶體;以及一第二記憶體控制器,用以控制該非揮發性記憶體之存取,其中,該第一記憶體控制器係將該系統記憶體劃分出一第一資料池及一第二資料池,該第一資料池係儲存該中央處理器存取該儲存裝置之暫存資料,且該第二資料池係儲存一快閃轉譯層資料,並專供該第二記憶體控制器使用,其中,當該中央處理器欲存取該儲存裝置時,該第二記憶體控制器係依據該快閃轉譯層資料存取該非揮發性記憶體。
- 如申請專利範圍第1項所述之電腦系統,其中當該中央處理器欲寫入該暫存資料該儲存裝置時,該第一記憶體控制器係將該第二資料池中之該快閃轉譯層資料讀取至該第一資料池,且該第二記憶體控制器係由該第一資料池取得該暫存資料及該快閃轉譯層資料。
- 如申請專利範圍第1項所述之電腦系統,其中該第二記 憶體控制器更將該非揮發性記憶體中之一儲存資料複製至該第二資料池,且當該中央處理器由該儲存裝置讀取該儲存資料時,該第二記憶體控制器係傳送一提示信息至該第一記憶體控制器以將該第二資料池中之該儲存資料複製至該第一資料池,且該中央處理器係由該第一資料池讀取該儲存資料。
- 如申請專利範圍第3項所述之電腦系統,其中當該第二記憶體控制器係更新該快閃轉譯層資料且該中央處理器欲寫入該暫存資料至該儲存裝置時,該第二記憶體控制器係同時將該暫存資料寫入該第二資料池及該非揮發性記憶體。
- 如申請專利範圍第1項所述之電腦系統,其中該系統記憶體及該第二記憶體控制器係透過PCI Express匯流排進行溝通。
- 一種非揮發性記憶體之控制方法,用於一電腦系統,該電腦系統包括:一中央處理器;一系統記憶體;一第一記憶體控制器,用以控制該系統記憶體之存取;以及一儲存裝置,包括一非揮發性記憶體及一第二記憶體控制器,用以控制該非揮發性記憶體之存取,該方法包括:利用該第一記憶體控制器將該系統記憶體劃分出一第一資料池及一第二資料池,其中該第一資料池係儲存該中央處理器存取該儲存裝置之暫存資料,且該第二資料池係儲存一快閃轉譯層資料,並專供該第二記憶體控制器使用;以及當該中央處理器欲存取該儲存裝置時,該第二記憶體控制器係依據該快閃轉譯層資料以存取該非揮發性記憶體。
- 如申請專利範圍第6項所述之非揮發性記憶體之控制 方法,更包括:當該中央處理器欲寫入該暫存資料該儲存裝置時,利用該第一記憶體控制器將該第二資料池中之該快閃轉譯層資料讀取至該第一資料池;以及利用該第二記憶體控制器由該第一資料池取得該暫存資料及該快閃轉譯層資料。
- 如申請專利範圍第6項所述之非揮發性記憶體之控制方法,更包括:利用該第二記憶體控制器將該非揮發性記憶體中之一儲存資料複製至該第二資料池;當該中央處理器由該儲存裝置讀取該儲存資料時,利用該第二記憶體控制器係傳送一提示信息至該第一記憶體控制器以將該第二資料池中之該儲存資料複製至該第一資料池;以及利用該中央處理器由該第一資料池讀取該儲存資料。
- 如申請專利範圍第8項所述之非揮發性記憶體之控制方法,更包括:當該第二記憶體控制器係更新該快閃轉譯層資料且該中央處理器欲寫入該暫存資料至該儲存裝置時,利用該第二記憶體控制器同時將該暫存資料寫入該第二資料池及該非揮發性記憶體。
- 如申請專利範圍第6項所述之非揮發性記憶體之控制方法,其中該系統記憶體及該第二記憶體控制器係透過PCI Express匯流排進行溝通。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104124681A TWI530785B (zh) | 2015-07-30 | 2015-07-30 | 電腦系統及非揮發性記憶體的控制方法 |
US14/930,088 US9904622B2 (en) | 2015-07-30 | 2015-11-02 | Control method for non-volatile memory and associated computer system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104124681A TWI530785B (zh) | 2015-07-30 | 2015-07-30 | 電腦系統及非揮發性記憶體的控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI530785B TWI530785B (zh) | 2016-04-21 |
TW201705000A true TW201705000A (zh) | 2017-02-01 |
Family
ID=56361513
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104124681A TWI530785B (zh) | 2015-07-30 | 2015-07-30 | 電腦系統及非揮發性記憶體的控制方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9904622B2 (zh) |
TW (1) | TWI530785B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10521118B2 (en) * | 2016-07-13 | 2019-12-31 | Sandisk Technologies Llc | Methods, systems, and computer readable media for write classification and aggregation using host memory buffer (HMB) |
US10289315B2 (en) * | 2017-03-27 | 2019-05-14 | Western Digital Technologies, Inc. | Managing I/O operations of large data objects in a cache memory device by dividing into chunks |
US10482010B2 (en) * | 2017-06-29 | 2019-11-19 | Intel Corporation | Persistent host memory buffer |
US10306442B1 (en) * | 2018-01-16 | 2019-05-28 | Skylo Technologies Inc. | Devices and methods for specialized machine-to-machine communication transmission network modes via edge node capabilities |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6111575B2 (ja) * | 2012-09-19 | 2017-04-12 | 富士通株式会社 | ストレージ装置、内部処理制御方法および内部処理制御プログラム |
US10031670B2 (en) * | 2015-09-04 | 2018-07-24 | Toshiba Memory Corporation | Control unit and control method for controlling writes and background operations of multiple semiconductor storage devices |
US10210041B2 (en) * | 2015-11-05 | 2019-02-19 | SK Hynix Inc. | Systems and methods for low latency copy operations in non-volatile memory |
-
2015
- 2015-07-30 TW TW104124681A patent/TWI530785B/zh active
- 2015-11-02 US US14/930,088 patent/US9904622B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20170031811A1 (en) | 2017-02-02 |
US9904622B2 (en) | 2018-02-27 |
TWI530785B (zh) | 2016-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10866797B2 (en) | Data storage device and method for reducing firmware update time and data processing system including the device | |
JP2014026635A5 (zh) | ||
TWI530785B (zh) | 電腦系統及非揮發性記憶體的控制方法 | |
JP2009276853A (ja) | フラッシュメモリ装置 | |
US10769074B2 (en) | Computer memory content movement | |
KR102562051B1 (ko) | 데이터 로드 연산의 완료 이전에 사전 판독 연산을 착수하기 위한 방법 및 장치 | |
US20170255565A1 (en) | Method and apparatus for providing a contiguously addressable memory region by remapping an address space | |
US10866755B2 (en) | Two stage command buffers to overlap IOMMU map and second tier memory reads | |
TWI454922B (zh) | 記憶體儲存裝置及其記憶體控制器與資料寫入方法 | |
US9436395B2 (en) | Mechanisms to save user/kernel copy for cross device communications | |
CN116342365A (zh) | 用于经由使用可用设备存储器扩展***存储器的技术 | |
US11573743B2 (en) | Pointer dereferencing within memory sub-system | |
JP2018502379A5 (zh) | ||
JP6318073B2 (ja) | 電子機器 | |
US20210240642A1 (en) | Data storage device with an exclusive channel for flag checking of read data, and non-volatile memory control method | |
US20170153994A1 (en) | Mass storage region with ram-disk access and dma access | |
TW201409468A (zh) | 記憶體資料處理系統及方法 | |
TWM548816U (zh) | 利用主控端記憶體緩衝器之儲存裝置 | |
TWI616755B (zh) | 儲存裝置及其資料映射方法 | |
CN106445400B (zh) | 计算机***及非挥发性存储器的控制方法 | |
US20240020252A1 (en) | Computing system and operating method thereof | |
US20180373637A1 (en) | Caching io requests | |
TW201705001A (zh) | 電腦系統及隨機存取記憶體控制方法 | |
US20210191641A1 (en) | Systems and methods for reducing instruction code memory footprint for multiple processes executed at a coprocessor | |
TWI497297B (zh) | Portable storage device and its data security control method |