TWI530785B - 電腦系統及非揮發性記憶體的控制方法 - Google Patents

電腦系統及非揮發性記憶體的控制方法 Download PDF

Info

Publication number
TWI530785B
TWI530785B TW104124681A TW104124681A TWI530785B TW I530785 B TWI530785 B TW I530785B TW 104124681 A TW104124681 A TW 104124681A TW 104124681 A TW104124681 A TW 104124681A TW I530785 B TWI530785 B TW I530785B
Authority
TW
Taiwan
Prior art keywords
data
memory
memory controller
data pool
storage device
Prior art date
Application number
TW104124681A
Other languages
English (en)
Other versions
TW201705000A (zh
Inventor
傅子瑜
Original Assignee
宏碁股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 宏碁股份有限公司 filed Critical 宏碁股份有限公司
Priority to TW104124681A priority Critical patent/TWI530785B/zh
Priority to US14/930,088 priority patent/US9904622B2/en
Application granted granted Critical
Publication of TWI530785B publication Critical patent/TWI530785B/zh
Publication of TW201705000A publication Critical patent/TW201705000A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/251Local memory within processor subsystem
    • G06F2212/2515Local memory within processor subsystem being configurable for different purposes, e.g. as cache or non-cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

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. 一種電腦系統,包括:一系統記憶體;一中央處理器,包括:一第一記憶體控制器,用以控制該系統記憶體之存取;以及一儲存裝置,包括:一非揮發性記憶體;以及一第二記憶體控制器,用以控制該非揮發性記憶體之存取,其中,該第一記憶體控制器係將該系統記憶體劃分出一第一資料池及一第二資料池,該第一資料池係儲存該中央處理器存取該儲存裝置之暫存資料,且該第二資料池係儲存一快閃轉譯層資料,並專供該第二記憶體控制器使用,其中,當該中央處理器欲存取該儲存裝置時,該第二記憶體控制器係依據該快閃轉譯層資料存取該非揮發性記憶體。
  2. 如申請專利範圍第1項所述之電腦系統,其中當該中央處理器欲寫入該暫存資料至該儲存裝置時,該第一記憶體控制器係將該第二資料池中之該快閃轉譯層資料讀取至該第一資料池,且該第二記憶體控制器係由該第一資料池取得該暫存資料及該快閃轉譯層資料。
  3. 如申請專利範圍第1項所述之電腦系統,其中該第二記 憶體控制器更將該非揮發性記憶體中之一儲存資料複製至該第二資料池,且當該中央處理器由該儲存裝置讀取該儲存資料時,該第二記憶體控制器係傳送一提示信息至該第一記憶體控制器以將該第二資料池中之該儲存資料複製至該第一資料池,且該中央處理器係由該第一資料池讀取該儲存資料。
  4. 如申請專利範圍第3項所述之電腦系統,其中當該第二記憶體控制器係更新該快閃轉譯層資料且該中央處理器欲寫入該暫存資料至該儲存裝置時,該第二記憶體控制器係同時將該暫存資料寫入該第二資料池及該非揮發性記憶體。
  5. 如申請專利範圍第1項所述之電腦系統,其中該系統記憶體及該第二記憶體控制器係透過PCI Express匯流排進行溝通。
  6. 一種非揮發性記憶體之控制方法,用於一電腦系統,該電腦系統包括:一中央處理器;一系統記憶體;一第一記憶體控制器,用以控制該系統記憶體之存取;以及一儲存裝置,包括一非揮發性記憶體及一第二記憶體控制器,用以控制該非揮發性記憶體之存取,該方法包括:利用該第一記憶體控制器將該系統記憶體劃分出一第一資料池及一第二資料池,其中該第一資料池係儲存該中央處理器存取該儲存裝置之暫存資料,且該第二資料池係儲存一快閃轉譯層資料,並專供該第二記憶體控制器使用;以及當該中央處理器欲存取該儲存裝置時,該第二記憶體控制器係依據該快閃轉譯層資料以存取該非揮發性記憶體。
  7. 如申請專利範圍第6項所述之非揮發性記憶體之控制 方法,更包括:當該中央處理器欲寫入該暫存資料該儲存裝置時,利用該第一記憶體控制器將該第二資料池中之該快閃轉譯層資料讀取至該第一資料池;以及利用該第二記憶體控制器由該第一資料池取得該暫存資料及該快閃轉譯層資料。
  8. 如申請專利範圍第6項所述之非揮發性記憶體之控制方法,更包括:利用該第二記憶體控制器將該非揮發性記憶體中之一儲存資料複製至該第二資料池;當該中央處理器由該儲存裝置讀取該儲存資料時,利用該第二記憶體控制器係傳送一提示信息至該第一記憶體控制器以將該第二資料池中之該儲存資料複製至該第一資料池;以及利用該中央處理器由該第一資料池讀取該儲存資料。
  9. 如申請專利範圍第8項所述之非揮發性記憶體之控制方法,更包括:當該第二記憶體控制器係更新該快閃轉譯層資料且該中央處理器欲寫入該暫存資料至該儲存裝置時,利用該第二記憶體控制器同時將該暫存資料寫入該第二資料池及該非揮發性記憶體。
  10. 如申請專利範圍第6項所述之非揮發性記憶體之控制方法,其中該系統記憶體及該第二記憶體控制器係透過PCI Express匯流排進行溝通。
TW104124681A 2015-07-30 2015-07-30 電腦系統及非揮發性記憶體的控制方法 TWI530785B (zh)

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 true TWI530785B (zh) 2016-04-21
TW201705000A 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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Also Published As

Publication number Publication date
US20170031811A1 (en) 2017-02-02
TW201705000A (zh) 2017-02-01
US9904622B2 (en) 2018-02-27

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
TWI530785B (zh) 電腦系統及非揮發性記憶體的控制方法
JP2009276853A (ja) フラッシュメモリ装置
KR20240049262A (ko) 메모리 시스템 및 이의 동작 방법
KR20170012935A (ko) 데이터 저장 장치의 작동 방법과 상기 데이터 저장 장치를 포함하는 시스템의 작동 방법
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
TWI499908B (zh) 用以維持共享記憶體編程中之釋出一致性的方法及系統
TWI454922B (zh) 記憶體儲存裝置及其記憶體控制器與資料寫入方法
US20150261457A1 (en) Mechanisms to Save User/Kernel Copy for Cross Device Communications
JP2018502379A5 (zh)
CN116342365A (zh) 用于经由使用可用设备存储器扩展系统存储器的技术
JP6318073B2 (ja) 電子機器
US11366775B2 (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) 記憶體資料處理系統及方法
TWI616755B (zh) 儲存裝置及其資料映射方法
US10579534B2 (en) Caching IO requests
CN106445400B (zh) 计算机系统及非挥发性存储器的控制方法
US20240020252A1 (en) Computing system and operating method thereof
US20230305743A1 (en) Memory controller and memory system including the same
US20210191641A1 (en) Systems and methods for reducing instruction code memory footprint for multiple processes executed at a coprocessor
US20120210078A1 (en) Arbiter, storage device, information processing device and computer program product