TW202113607A - 記憶體系統,記憶體系統控制方法,以及資訊處理系統 - Google Patents
記憶體系統,記憶體系統控制方法,以及資訊處理系統 Download PDFInfo
- Publication number
- TW202113607A TW202113607A TW109105815A TW109105815A TW202113607A TW 202113607 A TW202113607 A TW 202113607A TW 109105815 A TW109105815 A TW 109105815A TW 109105815 A TW109105815 A TW 109105815A TW 202113607 A TW202113607 A TW 202113607A
- Authority
- TW
- Taiwan
- Prior art keywords
- host
- memory system
- memory
- command
- controller
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- 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
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/1668—Details of memory controller
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0625—Power saving in storage systems
-
- 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/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Hardware Redundancy (AREA)
- Debugging And Monitoring (AREA)
- Communication Control (AREA)
Abstract
根據一個實施方式,一種記憶體系統係能夠連接到主機。該記憶體系統包含非揮發性記憶體、控制器,該控制器接收關於該主機的操作狀態之資訊,根據來自該主機的命令控制該非揮發性記憶體,以及基於關於該主機的該操作狀態之該資訊選擇用於合併中斷的參數,以針對來自該主機的該命令傳輸與命令完成通知有關的中斷到該主機。
Description
本文描述的實施方式總體上係有關記憶體系統、記憶體系統控制方法、以及資訊處理系統。
相關申請案交互參照
本申請基於並請求2019年9月26日提交的日本專利申請號2019-176092的優先權,其都藉由參照的方式併入此處。
配備有諸如NAND快閃記憶體的非揮發性半導體記憶體的固態硬碟(solid-state drive,SSD)是已知的記憶體系統。在某些範例中,SSD可以連接到各種電腦,並用作外部儲存裝置。
實施方式提供了可以減少功耗的記憶體系統、記憶體系統控制方法、以及資訊處理系統。
一個實施方式提供了一種能夠連接到主機的記憶體系統,該記憶體系統包含非揮發性記憶體、控制器,該控制器接收關於該主機的操作狀態之資訊,根據來自該主機的命令控制該非揮發性記憶體,以及基於關於該主機的該操作狀態之該資訊選擇用於合併中斷的參數,以針對來自該主機的該命令傳輸與命令完成通知有關的中斷到該主機。
根據該一個實施方式,可以減少該主機的功耗。
在下文中,將參考圖式描述範例實施方式。在下面的描述中,具有相同功能和組態的那些組件由相同的標號表示。另外,所討論的每個範例實施方式對應於體現本揭露的一個或多個技術概念的裝置和方法,並且不應被視為將本揭露限制於特定的材料、形狀、結構、物理配置、或作為範例描述的各個組件部分中的類似的。
此外,可以透過硬體、電腦軟體或二者的組合來施行每個所描述的功能方塊。因此,在此描述中,所揭露的方塊的功能應被認為是用硬體、電腦軟體或兩者的某種組合來實現的。在本揭露的實際實施方案中,範例實施方式的每個所描述的功能方塊通常不必可以容易地可區分。例如,實施方式中歸因於特定功能方塊的一些功能可以與不同於範例性繪示出的另一功能方塊協力或組合地執行。再者,在某些情況下,揭露的功能方塊可以被劃分為較小的功能子方塊。
(第一實施方式)
圖1是繪示出根據第一實施方式之記憶體系統400的整體組態的範例的方塊圖。記憶體系統400包含控制器300和非揮發性記憶體380,並且連接到外部主機100。
如圖1所示,主機100和記憶體系統400藉由PCIExpress®匯流排200連接。在某些情況下,PCIExpress®也稱為PCIe®。為簡單起見,PCIExpress®匯流排200通常被稱為「PCIe匯流排200」。在下面的範例中,記憶體系統400是固態硬碟(SSD),並且與符合非揮發性記憶體快速(NVMe)標準的主機100一起操作。
主機100是諸如個人電腦、可攜式電腦、或可攜式通訊裝置之類的電腦。主機100包含主機中央處理單元(CPU)120和儲存單元140,它們透過主機側內部匯流排160(以下稱為主機匯流排160)連接。主機CPU 120根據加載在儲存單元140中的程式執行處理。儲存單元140由諸如儲存主機CPU 120所使用的程式的唯讀記憶體(ROM)之類的非揮發性記憶體、諸如其中加載待由主機CPU 120執行的程式或臨時儲存資料的隨機存取記憶體(RAM)之類的揮發性記憶體、及類似等所構成。
對於PCIe匯流排200,用於通知主機100的操作狀態的最佳化的緩衝刷新/填充(OBFF)訊息是標準化的。主機100具有三種類型的操作狀態:作用中(active)、OBFF、和閒置(idle)。「作用中」是主機100正在主動操作(例如,忙)的狀態。在「OBFF」狀態中,主機CPU 120處於低功耗狀態,但是仍然可以存取儲存單元140。「閒置」是低功耗狀態,其中整個主機100處於非作用中。
記憶體系統400具有其中控制器300和非揮發性記憶體380透過記憶體匯流排370連接的組態。提供了至少一個非揮發性記憶體380,但是其總數不受限制,並且可以提供複數。
控制器300根據來自主機100的命令控制寫入資料到非揮發性記憶體380/從非揮發性記憶體380讀取資料。在某些情況下,例如,命令可以另外稱為指令或請求。控制器300是例如被組態為單晶片系統(SoC)、場域可程式化閘陣列(FPGA)或專用積體電路(ASIC)的半導體積體電路。下文描述的控制器300的每個組件的部分或全部功能可以由執行韌體的中央處理單元(CPU)來施行,或者可以由類似的硬體電路來施行。
非揮發性記憶體380是半導體記憶體,其可以以非揮發性方式儲存資料。非揮發性記憶體380可以是例如NAND快閃記憶體。在NAND快閃記憶體中,以頁為單元寫入和讀取資料。在NAND快閃記憶體中,以方塊為單元抹除資料。當將NAND快閃記憶體用於非揮發性記憶體380時,NAND快閃記憶體的記憶體胞可以分別是能夠儲存1位元的單級胞或能夠儲存2位元以上的多級胞。
非揮發性記憶體380可以包含例如可以彼此獨立地操作的複數記憶體晶片。
在第一實施方式中,將描述將NAND快閃記憶體用作非揮發性記憶體380的範例。在其他範例中,非揮發性記憶體380可以是或包括除NAND快閃記憶體之外的儲存構件,諸如三維結構快閃記憶體、電阻隨機存取記憶體(ReRAM)、鐵電隨機存取記憶體(FeRAM)、或磁阻隨機存取記憶體(MRAM)。在本實施方式中,非揮發性記憶體380是半導體型記憶體,但是在其他範例中,可以使用除半導體型記憶體之外的儲存類型或構件。
記憶體匯流排370連接控制器300和非揮發性記憶體380。記憶體匯流排370符合例如雙倍資料速率(DDR)和開放NAND快閃介面(ONFI)。
接下來,將描述控制器300的詳細組態。如圖1所示,控制器300具有以下組態:CPU 310、主機介面320(主機I/F 320)、錯誤檢查和修正單元360(ECC單元360)、緩衝記憶體362、和記憶體介面364(記憶體I/F 364)透過內部匯流排366相互連接。
CPU 310全面地控制記憶體系統400的每個組件。當啟動記憶體系統400時,CPU 310將儲存在ROM(未示出)中的韌體(或其他控制程式)讀取到緩衝記憶體362或CPU 310中的RAM(未示出)上。之後,藉由CPU 310執行韌體來施行必須控制的每個功能。
當透過主機介面320從主機100接收命令時,CPU 310根據命令控制控制器300的每個單元。例如,CPU 310根據來自主機100的寫入命令指示記憶體介面364將資料寫到非揮發性記憶體380。此外,CPU 310根據來自主機100的讀取命令,指示記憶體介面364從非揮發性記憶體380讀取資料。
當CPU 310從主機100接收到下一個寫入命令時,CPU 310將由前一個寫入命令指定的資料保存在緩衝記憶體362中,並在非揮發性記憶體380上選擇用於該資料的儲存區。即,CPU 310確定並管理資料寫入目的地。從主機100接收到的資料的邏輯位址和與非揮發性記憶體380上的資料儲存區相對應的實體位址之間的對應關係作為位址轉換表儲存在緩衝記憶體362中。
當CPU 310從主機100接收到讀取命令時,CPU 310藉由使用上述位址轉換表將由讀取命令指定的邏輯位址轉換實體位址,並指示記憶體介面364進行讀取來自非揮發性記憶體380的實體位址的資料。結果,從非揮發性記憶體380讀取的資料被臨時儲存在緩衝記憶體362中,然後隨後透過主機介面320被傳輸到主機100。
主機介面320將從主機100所接收的命令、寫入資料等輸出到內部匯流排366,並且將命令、寫入資料等儲存在緩衝記憶體362中。主機介面320傳輸已經從非揮發性記憶體380讀取然後儲存在緩衝記憶體362中的讀取資料,以及來自CPU 310的回應到主機100。
ECC單元360例如是具有錯誤修正功能的編碼/解碼電路,並且利用諸如博斯-查德胡里-霍昆格母(Bose Chaudhuri Hocquenghem,BCH)碼的錯誤修正碼對待寫入非揮發性記憶體380中的資料進行編碼。因此,可以修正從非揮發性記憶體380讀取的資料中的錯誤。
由主機介面320從主機100作為寫入資料接收的資料被臨時儲存在緩衝記憶體362中。CPU 310針對來自緩衝記憶體362待儲存的資料來選擇非揮發性記憶體380的儲存區,並指示記憶體介面364將資料寫入所選擇的儲存區中。
作為緩衝記憶體362,可以使用諸如動態隨機存取記憶體(DRAM)或靜態隨機存取記憶體(SRAM)之類的揮發性記憶體。緩衝記憶體362可以被安裝在控制器300內部,或者可以被安裝在控制器300外部。
記憶體介面364基於來自CPU 310的指令,控制用於將資料寫到非揮發性記憶體380的處理以及用於從非揮發性記憶體380讀取資料的處理。
內部匯流排366是連接CPU 310、主機介面320、ECC單元360、緩衝記憶體362和記憶體介面364的通訊線。
圖2是繪示出其中由複數晶片390組態根據第一實施方式的記憶體系統400的範例的方塊圖。
如圖2所繪示,記憶體系統400包含複數晶片390。每個晶片390設置有一個控制器300和複數非揮發性記憶體380。此外,主機100和控制器300是藉由PCIe匯流排200連接。儘管圖2繪示出了記憶體系統400包含三個晶片390的情況,但是晶片的數量不限於此。此外,當主機100和複數控制器300藉由PCIe匯流排200連接時,可以使用交換機或路由複合體。
圖3是繪示出根據第一實施方式的記憶體系統400中的控制器300與外部主機100之間的主機介面320的組態範例的方塊圖。如圖3所繪示,主機介面320包含OBFF接收單元330、命令處理單元340、和中斷產生單元350。
OBFF接收單元330從主機100接收OBFF訊息,其是指示主機100的操作狀態的資訊,作為交易層封包(TLP)。OBFF接收單元330根據接收到的OBFF訊息向選擇器354通知主機100是作用中、OBFF、還是閒置。
圖4是在根據第一實施方式的記憶體系統400中使用的OBFF訊息的標頭的範例。在該標頭中,例如,將指示訊息TLP的「類型欄位(type field)」放置在位元組0字串(位元組0>)的前0至4位元中,將標識OBFF的訊息碼(「訊息碼」)放置在位元組4字串(位元組4>)的最後0至7位元中,以及指示主機100的狀態的OBFF碼(「OBFF碼」)放置在位元組12字串(位元組12>)的最後0至3位元。當主機100閒置時,該OBFF碼被設定為「0000」,當主機100為OBFF時,該OBFF碼被設定為「0001」,而當主機處於作用中狀態時,該OBFF碼被設定為「1111」。
這裡,描述回到圖3中的主機介面320。命令處理單元340管理命令處理,諸如寫入和讀取在主機100和非揮發性記憶體380之間交換的資料。來自主機100的命令包含例如用於將資料寫入非揮發性記憶體380的寫入命令和用於從非揮發性記憶體380讀取資料的讀取命令。當來自主機100的命令處理完成時,命令處理單元340通知設置在中斷產生單元350中的測量單元355。在本實施方式中,有時向主機100通知命令處理的完成僅稱為「完成」。
接下來,將描述從主機100到控制器300的命令傳輸。當命令佇列累積在主機100的儲存單元140中時,透過PCIe匯流排200從主機100 300向控制器中的暫存器352輸出通知,該暫存器有時被稱為「門鈴暫存器」。當控制器300接收到對「門鈴暫存器」的這種通知時,控制器300讀取儲存單元140中的命令。以這種方式,命令從主機100傳輸到控制器300。接下來,命令處理單元340根據從儲存單元140所讀取的命令執行命令操作。
中斷產生單元350包含暫存器352、選擇器354、測量單元355、和比較器358。
暫存器352儲存複數設定值。例如,在圖3中,將設定值1和大於設定值1的設定值2儲存在暫存器352中。所儲存的設定值的數量不是限制,並且通常可以儲存任何數量的設定值。
選擇器354從OBFF接收單元330接收主機100是作用中、OBFF還是閒置的指示,並根據主機100的操作狀態從暫存器352中選擇設定值。
在本實施方式中,選擇器354在主機100為作用中狀態時選擇設定值1,以及在主機100為OBFF或閒置時選擇設定值2。在範例中,「10」的值可以是設定值1,而「50」的值可以是設定值2。在本實施方式中,選擇器354根據主機100操作狀態的通知,在暫存器352中的兩個可能的設定值(設定值1和設定值2)之間進行選擇。可以藉由從主機100接收到的設定特性(SetFeature)命令(符合NVMe標準)來設定暫存器352中的值。也就是說,也可以藉由從主機100所發送的設定特性命令來更改(在暫存器352中)選擇器354根據主機100的狀態所選擇的特定設定值,但是在這種情況下,設定值2必須大於設定值1。
測量單元355包含計數器356和計時器357,並且測量第一條件,該第一條件是用於確定是否傳輸「中斷」信號(在一些情況下也簡稱為「中斷」)到主機100。中斷信號由中斷產生單元350產生,並指示是否正在請求主機100的中斷。測量單元355將與第一條件有關的測量值作為信號傳輸到比較器358。本實施方式中的第一條件例如是(a)從命令處理單元340通知的命令處理完成的次數,或者(b)從第一命令處理完成起的消逝時間。例如,由計數器356對命令處理完成的次數(從命令處理單元340通知的次數)進行計數,並將所計數的次數傳輸到比較器358。從第一命令處理完成起的消逝時間(如從命令處理單元340通知的)由計時器357測量,並且所測量的時間被傳輸到比較器358。
可以由CPU 310預先設定是使用計數器356、計時器357、還是兩者都用於設定第一條件。使用者可能會更改此設定。
在控制器300中所設置的比較器358將選擇器354針對參數選擇的設定值與從測量單元355接收到的與第一條件有關的值進行比較,以及當從測量單元355所接收到的與第一條件有關的值超過了設定值(參數值)時,中斷主機100(發送中斷)。
例如,當計數器356所計數的命令處理已經完成的次數等於「30」的值時,比較器358的操作將被描述。
當主機100是作用中時,例如,選擇器354所選擇作為設定值1的值「10」。因此,比較器358確定命令處理已完成的次數(值=30)已超過設定值,因此將「中斷」傳輸到主機100。
另一方面,當主機100為OBFF或閒置時,選擇器354選擇「50」的值作為設定值2。因此,比較器358確定命令處理已經完成的次數尚未超過設定值,因此不將「中斷」傳輸到主機100。
圖5是繪示出其中藉由使用計數器356執行控制根據第一實施方式的記憶體系統400的範例的流程圖。
首先,計數器356將其計數器值設定為「0」(步驟S11)。接下來,如果從命令處理單元340接收到命令處理完成通知(在步驟S12中為是),則計數器356將該值增加「1」(步驟S13)。如果沒有從命令處理單元340接收到任何命令處理完成通知(在步驟S12中為否),則計數器356等待直到接收到命令處理完成通知為止。接下來,當比較器358確定計數器356的值已經超過選擇器354選擇的設定值時(在步驟S14中為是),中斷產生單元350將信號(「中斷」)傳輸到主機100(步驟S15)。當比較器358確定計數器356的值未超過選擇器354所選擇的設定值時(在步驟S14中為否),中斷產生單元350返回至步驟S12,並等待命令處理完成通知。在步驟S15之後,程序返回到步驟S11,並且執行與上述相同的處理。如上所述,控制記憶體系統400。
圖6是繪示出藉由使用計時器357控制的根據第一實施方式的記憶體系統400的流程圖。
首先,計時器357將其計時器值設定為「0」(步驟S21)。接下來,計時器357依據從命令處理單元340接收到完成第一命令處理的通知(在步驟S22中為是)來啟動(步驟S23)。如果沒有從命令處理單元340接收到任何第一命令處理完成的通知(在步驟S22中為否),則計時器357等待直到接收到第一命令處理完成的通知。接下來,當比較器358確定計時器357的值已經超過由選擇器354選擇的設定值時(在步驟S24中為是),中斷產生單元350將「中斷」傳輸到主機100(步驟S25)。當比較器358確定計時器357的值未超過選擇器354所選擇的設定值時(在步驟S24中為否),計時器357繼續測量從完成第一命令處理直到最後超過選擇器354選擇的設定值為止的時間。在步驟S25之後,程序返回到步驟S21,並且執行與上述相同的處理。如上所述,控制了來自記憶體系統400的中斷的傳輸。
圖7和圖8是繪示出比較例的記憶體系統中的合併中斷的示意圖。
「合併中斷(Interrupt coalescing)」是一種用於減少主機100經受中斷處理的次數的技術。也就是說,「合併中斷」是一種用於收集與不同輸入/輸出請求相關聯的單獨「中斷」的技術,否則,每個輸入/輸出請求將分別傳輸到主機,並僅發送一個中斷以解決收集到的(合併的)單獨中斷。例如,為了減少中斷處理的數量,可以傳輸與總共n個輸入/輸出處理相關的單個中斷。可替代地,可以收集自從傳輸上一個(先前)中斷以來的某個固定時間段內發生的輸入/輸出處理,然後可以傳輸與在固定時間段內收集的輸入/輸出處理相關聯的單個中斷。
在圖7中,命令A、B、和C的命令處理完成通知(完成)是藉由單個(合併的)中斷處理所執行的。也就是說,圖7中針對命令A、B、C中的每一個的所描繪的單獨命令完成通知(其在其他情況下會被從記憶體系統400分別傳輸到主機100),反而被組合/合併為向主機100的單個中斷傳輸。
在該比較範例中,利用合併中斷,就合併程序和中斷傳輸而言,不考慮主機的操作狀態,因此可以改善輸入/輸出處理效率。
圖8說明了另一個涉及合併中斷的比較範例。圖8顯示,如果主機切換到低功耗(「睡眠」)狀態,則在某些情況下,將根據單個(合併的)中斷傳輸執行與針對命令A和B的完成相關聯的中斷處理,在低功耗狀態中,主機可能會根據主機收到的中斷要求從低功耗狀態返回(「喚醒」)。然而,在該範例中,如果主機沒有再次從低功耗狀態更改為操作狀態(「作用中」),則與中斷處理相關聯的通知將不會從主機傳輸到記憶體系統,例如作為SSD。因此,主機必須在從低功耗狀態到操作狀態的過渡期間消耗功率。
圖9是繪示出第一實施方式的記憶體系統400中的合併中斷的示意圖。
在圖9中,當主機100的CPU處於作用中時,記憶體系統400完成針對兩個命令(命令A和命令B)的命令處理,並且設定合併中斷,使得單個中斷處理與兩個命令A和B的完成相關聯。另一方面,當主機100的CPU處於OBFF或閒置狀態時,記憶體系統400完成針對三個命令(命令C、命令D、和命令E)的命令處理,並且設定合併中斷,使得單個中斷處理與所有三個命令C、D、和E相關聯。也就是說,在圖9所示的範例中,選擇器354選擇「2」的值作為設定值1和「3」的值作為設定值2。
在根據第一實施方式的記憶體系統400中,當主機100處於低功耗狀態時,與主機100處於操作狀態時相比,「中斷」請求的頻率減少,並且因此,減少了主機100必須從低功耗狀態返回/轉換回到操作狀態的頻率。因此,可以減少主機100的功耗。
此外,在該範例中利用了兩個設定值,當主機100處於操作狀態時要使用(選擇)的設定值1,以及當主機100處於低功耗狀態時要使用(選擇)的設定值2,這兩個值都是基於主機100的設定特性命令所設定的。因此,藉由考慮主機100的狀態,當主機100和記憶體系統400如所描述的那樣協力時,可以更有效地執行合併中斷。因此,可以減少主機100的功耗。
(第二實施方式)
圖10是繪示出根據第二實施方式的記憶體系統500的整體組態的範例的方塊圖。記憶體系統500連接到外部主機100,並包含控制器300和非揮發性記憶體380。
根據第二實施方式的記憶體系統500被組態與根據第一實施方式的記憶體系統400類似。差別在於記憶體系統500包含設定值確定單元510。也就是說,在根據第一實施方式的記憶體系統400中,來自主機100的設定特性命令可以用於設定根據主機100的操作狀態之在待選擇的暫存器352中的兩個設定值(設定值1和設定值2)的值。另一方面,在根據第二實施方式的記憶體系統500中,來自主機100的設定特性命令用於僅設定在暫存器352中單個設定值(第一設定值)的值。然後,CPU 310中所設置的設定值確定單元510可以用於根據例如已經接收到的設定值(第一設定值)的值在暫存器中設定不同的設定值(第二設定值),並結合來自主機100的設定特性命令和主機100的操作狀態指示進行設定。然後,根據主機100的操作狀態,控制選擇器354以選擇暫存器352中的設定值之一。
設定值確定單元510可以更廣泛地設置在控制器300中,並且不一定在所有範例中都要求在CPU 310本身中或由CPU 310本身設置。
在第二實施方式中,當主機100處於作用中狀態時待利用的設定值被稱為設定值1,並且當主機100處於OBFF或閒置狀態時待利用的設定值被稱為設定值2。
在下面的描述中,來自主機100的設定特性命令發出將暫存器352中的設定值1或設定值2之一個設定為值「30」的指令的情況將被描述。首先,設定值確定單元510從OBFF接收單元330接收關於主機100是作用中、OBFF、還是閒置的指示。當設定特性命令將「30」的值設定為設定值1時,設定值確定單元510將例如「100」的值設定為設定值2。當設定特性命令將「30」的值設定為設定值2時,設定值確定單元510例如將「10」的值設定為設定值1。設定值確定單元510可以操作以更改選擇器354選擇的特定暫存器352值/條目,或者藉由指示選擇器354以選擇已經儲存在暫存器352中的不同值/條目作為適當的設定值1或設定值2。
選擇器354從設定值中所選擇的值可以藉由來自主機100的設定特性命令或藉由來自設定值確定單元510的指令進行更改,但是設定值2的值應該比設定值1更大。可替代地,設定值可以由使用者等更改。
此外,在根據第二實施方式的記憶體系統500中,可以如第一實施方式那樣降低主機100的功耗。此外,由於控制器300指示選擇器354以從暫存器352中選擇兩個設定值之一個,即,當主機100處於操作狀態時的設定值1,以及當主機100處於低功耗狀態時的設定值2,因此無需更改或改變現有的NVMe標準。
根據上述每個實施方式,由於基於與第一條件有關的值是否已經超過基於主機的操作狀態選擇的設定值來確定對主機的中斷,所以有可能以減少主機的功耗。
雖然已經敘述了某些實施方式,但是這些實施方式僅作為實施例呈現,並且不旨在限制本揭露的範圍。實際上,這裡敘述的新穎實施方式可以以各種其他形式體現;此外,在不脫離本揭露的精神的情況下,可以對這裡敘述的實施方式的形式進行各種省略、替換和更改。所附申請專利範圍及其均等物旨在覆蓋落入本揭露的範圍和精神內的這些形式或修改。
100:主機
120:主機CPU
140:儲存單元
160:主機匯流排
200:PCIe匯流排
300:控制器
310:CPU
320:主機介面
330:OBFF接收單元
340:命令處理單元
350:中斷產生單元
352:暫存器
354:選擇器
355:測量單元
356:計數器
357:計時器
358:比較器
360:錯誤檢查和修正單元
362:緩衝記憶體
364:記憶體介面
366:內部匯流排
370:記憶體匯流排
380:非揮發性記憶體
390:晶片
400:記憶體系統
500:記憶體系統
510:設定值確定單元
S11:步驟
S12:步驟
S13:步驟
S14:步驟
S15:步驟
S21:步驟
S22:步驟
S23:步驟
S24:步驟
S25:步驟
[圖1]描繪了根據第一實施方式的記憶體系統,其連接到外部主機並且包含控制器和非揮發性記憶體。
[圖2]描繪了根據第一實施方式之包含複數記憶體晶片的記憶體系統。
[圖3]描繪了根據第一實施方式之在記憶體系統的控制器中的主機介面。
[圖4]是根據第一實施方式之藉由記憶體系統的OBFF接收單元從主機接收的OBFF訊息標頭的範例。
[圖5]是繪示出利用計數器之記憶體系統的控制的態樣的流程圖,根據第一實施方式。
[圖6]是繪示出利用計時器之記憶體系統的控制的態樣的流程圖,根據第一實施方式。
[圖7]是繪示出比較範例的記憶體系統中的合併中斷的類型的示意圖。
[圖8]是繪示出比較範例的記憶體系統中的合併中斷的另一類型的示意圖。
[圖9]是繪示出根據第一實施方式的記憶體系統中的合併中斷的示意圖。
[圖10]描繪了根據第二實施方式的記憶體系統,其連接到外部主機並且包含控制器和非揮發性記憶體。
100:主機
120:主機CPU
140:儲存單元
160:主機匯流排
200:PCIe匯流排
300:控制器
310:CPU
320:主機介面
330:OBFF接收單元
360:錯誤檢查和修正單元
362:緩衝記憶體
364:記憶體介面
366:內部匯流排
370:記憶體匯流排
380:非揮發性記憶體
400:記憶體系統
Claims (20)
- 一種能夠連接到主機的記憶體系統,該記憶體系統包括: 非揮發性記憶體;以及 控制器,被組態以: 接收關於主機的操作狀態之資訊, 根據來自該主機的命令控制該非揮發性記憶體,以及 基於關於該主機的該操作狀態之該資訊選擇用於合併中斷的參數,以針對來自該主機的該命令傳輸與命令完成通知有關的中斷到該主機。
- 如請求項1之記憶體系統,進一步包括: 複數非揮發性記憶體;以及 複數控制器,其中, 該複數控制器中的每個控制器與該複數非揮發性記憶體中的至少一個非揮發性記憶體設置在單獨的晶片上。
- 如請求項1之記憶體系統,其中,該控制器能夠透過周邊組件互連高速(PCIe)匯流排被連接到該主機以及包含最佳化的緩衝刷新/填滿(OBFF)接收器以接收該資訊。
- 如請求項1之記憶體系統,其中,該控制器被組態以基於非揮發性記憶體快速(NVMe)標準與該主機通訊。
- 如請求項1之記憶體系統,其中,該用於合併中斷的參數是待合併的命令完成通知的數量。
- 如請求項1之記憶體系統,其中,該用於合併中斷的參數是從上次傳輸中斷到該主機所經過的消逝時間的長度。
- 如請求項1之記憶體系統,其中,關於該主機的該操作狀態之該資訊指示該主機是在作用中狀態、閒置狀態、或OBFF狀態中的一個中。
- 如請求項7之記憶體系統,其中,該控制器選擇該參數以至於當該資訊指示該主機是在該作用中狀態中時,及時增加傳輸與命令完成通知有關的中斷到該主機的頻率,以及當該資訊指示該主機是在該OBFF狀態或閒置狀態時,減少傳輸與命令完成通知有關的中斷到該主機的該頻率。
- 如請求項1之記憶體系統,進一步包括: 暫存器,儲存用於該參數的第一設定值和用於該參數的第二設定值,其中, 該控制器從該暫存器選擇該第一設定值或該第二設定值中的一個做為該參數的該值, 當關於該主機的該操作狀態之該資訊是作用中狀態時,該第一設定值被選擇,以及 當關於該主機的該操作狀態之該資訊未在作用中狀態中時,該第二設定值被選擇。
- 如請求項9之記憶體系統,其中,該控制器被組態以回應於來自該主機的設定特性命令來更改儲存在該暫存器中的該第一設定值。
- 如請求項9之記憶體系統,其中,該控制器被組態以回應於來自該主機的設定特性命令來更改儲存在該暫存器中的該第二設定值。
- 一種資訊處理系統,包括: 主機裝置,具有複數操作狀態; 主機介面,連接到該主機裝置; 非揮發性記憶體;以及 控制器,被組態以: 透過該主機介面接收關於該主機裝置的操作狀態之資訊, 根據來自該主機裝置的命令控制該非揮發性記憶體,以及 基於關於該主機的目前的該操作狀態之該資訊選擇用於合併中斷的參數,以針對來自該主機裝置的該命令傳輸與命令完成通知有關的中斷到該主機裝置。
- 如請求項12之記憶體系統,其中,該主機介面與周邊組件互連高速(PCIe)匯流排相容,以及包含最佳化的緩衝刷新/填滿(OBFF)接收器以接收該資訊。
- 如請求項12之記憶體系統,其中,該控制器被組態以根據非揮發性記憶體快速(NVMe)標準透過該主機介面與該主機裝置通訊。
- 如請求項12之記憶體系統,其中,該用於合併中斷的參數是待合併的命令完成通知的數量。
- 如請求項12之記憶體系統,其中,該用於合併中斷的參數是從上次傳輸中斷到該主機所經過的消逝時間的長度。
- 如請求項12之記憶體系統,其中,該控制器選擇該參數以至於當該資訊指示該主機裝置是在作用中狀態中時,及時增加傳輸與命令完成通知有關的中斷到該主機裝置的頻率,以及當該資訊指示該主機裝置是在OBFF狀態或閒置狀態時,減少傳輸與命令完成通知有關的中斷到該主機裝置的該頻率。
- 一種控制記憶體系統的方法,該記憶體系統基於非揮發性記憶體快速(NVMe)標準與主機通訊,該方法包括: 透過周邊組件互連高速(PCIe)匯流排從該主機接收關於該主機的操作狀態之最佳化的緩衝刷新/填滿(OBFF)訊息;以及 選擇用於合併中斷的參數,以針對來自該主機藉由該記憶體系統接收的命令從該記憶體系統傳輸與命令完成通知有關的中斷到該主機,該選擇是基於藉由該OBFF訊息所指示的該主機的該操作狀態。
- 如請求項18之方法,其中,該參數被選擇以至於當該OBFF訊息指示該主機是在作用中狀態中時,及時增加傳輸與命令完成通知有關的中斷到該主機的頻率,以及當該OBFF訊息指示該主機是在OBFF狀態或閒置狀態時,減少傳輸與命令完成通知有關的中斷到該主機的該頻率。
- 如請求項18之方法,其中,該用於合併中斷的參數是從上次從記憶體系統傳輸中斷到該主機所經過的消逝時間的長度或待合併的命令完成通知的數量中的一個。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019176092A JP2021056550A (ja) | 2019-09-26 | 2019-09-26 | メモリシステム、メモリシステムの制御方法、および情報処理システム |
JP2019-176092 | 2019-09-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202113607A true TW202113607A (zh) | 2021-04-01 |
TWI771654B TWI771654B (zh) | 2022-07-21 |
Family
ID=75040804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109105815A TWI771654B (zh) | 2019-09-26 | 2020-02-24 | 記憶體系統,記憶體系統控制方法,以及資訊處理系統 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11175858B2 (zh) |
JP (1) | JP2021056550A (zh) |
CN (1) | CN112558746B (zh) |
TW (1) | TWI771654B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI788894B (zh) * | 2021-06-29 | 2023-01-01 | 新唐科技股份有限公司 | 記憶體控制電路及快閃記憶體之抹除操作的控制方法 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021056550A (ja) * | 2019-09-26 | 2021-04-08 | キオクシア株式会社 | メモリシステム、メモリシステムの制御方法、および情報処理システム |
US11909851B2 (en) * | 2021-10-04 | 2024-02-20 | Nxp B.V. | Coalescing interrupts based on fragment information in packets and a network controller for coalescing |
JP2023072389A (ja) | 2021-11-12 | 2023-05-24 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US20240231686A1 (en) * | 2023-01-10 | 2024-07-11 | Mediatek Inc. | Controller integrated circuit and method for controlling storage device for host device with aid of queue auxiliary notification information |
CN118152300A (zh) * | 2024-05-09 | 2024-06-07 | 江苏华存电子科技有限公司 | 一种在Linux PC上进行NVMe SSD异常断电读写的批量测试系统及方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6792483B2 (en) * | 2001-09-28 | 2004-09-14 | International Business Machines Corporation | I/O generation responsive to a workload heuristics algorithm |
CN103488578B (zh) * | 2012-12-28 | 2016-05-25 | 晶天电子(深圳)有限公司 | 虚拟存储设备(vmd)应用/驱动器 |
US20160162421A1 (en) * | 2013-08-07 | 2016-06-09 | Xuhong Xiong | Ltr/obff design scheme for ethernet adapter application |
US9891686B2 (en) * | 2013-09-26 | 2018-02-13 | Intel Corporation | Throttling device power |
US20160062698A1 (en) * | 2014-08-26 | 2016-03-03 | Marvell World Trade Ltd. | Storage device controller architecture |
KR102365113B1 (ko) | 2015-05-27 | 2022-02-18 | 삼성전자주식회사 | 적응적 인터럽트 처리 방법 및 장치와 이를 적용하는 호스트, i/o 디바이스 및 시스템 |
KR102649324B1 (ko) | 2016-05-19 | 2024-03-20 | 삼성전자주식회사 | 적응 인터럽트 제어를 수행하는 컴퓨터 시스템 및 그것의 인터럽트 제어 방법 |
KR20180043451A (ko) | 2016-10-19 | 2018-04-30 | 삼성전자주식회사 | 컴퓨팅 시스템 및 그것의 동작 방법 |
US10452278B2 (en) | 2017-03-24 | 2019-10-22 | Western Digital Technologies, Inc. | System and method for adaptive early completion posting using controller memory buffer |
CN110073323B (zh) * | 2017-03-24 | 2022-10-25 | 西部数据技术公司 | 使用控制器存储器缓冲区进行推测性执行命令的系统和方法 |
KR102421149B1 (ko) * | 2018-01-02 | 2022-07-14 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
US20200117623A1 (en) * | 2018-10-10 | 2020-04-16 | PetaIO Inc. | Adaptive Interrupt Coalescing |
JP2021056550A (ja) * | 2019-09-26 | 2021-04-08 | キオクシア株式会社 | メモリシステム、メモリシステムの制御方法、および情報処理システム |
-
2019
- 2019-09-26 JP JP2019176092A patent/JP2021056550A/ja active Pending
-
2020
- 2020-02-24 TW TW109105815A patent/TWI771654B/zh active
- 2020-03-02 US US16/806,730 patent/US11175858B2/en active Active
- 2020-03-06 CN CN202010151136.8A patent/CN112558746B/zh active Active
-
2021
- 2021-10-13 US US17/500,170 patent/US11886742B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI788894B (zh) * | 2021-06-29 | 2023-01-01 | 新唐科技股份有限公司 | 記憶體控制電路及快閃記憶體之抹除操作的控制方法 |
Also Published As
Publication number | Publication date |
---|---|
US20210096770A1 (en) | 2021-04-01 |
JP2021056550A (ja) | 2021-04-08 |
US11886742B2 (en) | 2024-01-30 |
CN112558746B (zh) | 2024-03-08 |
TWI771654B (zh) | 2022-07-21 |
CN112558746A (zh) | 2021-03-26 |
US11175858B2 (en) | 2021-11-16 |
US20220043605A1 (en) | 2022-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI771654B (zh) | 記憶體系統,記憶體系統控制方法,以及資訊處理系統 | |
US11175835B2 (en) | Storage device initiating maintenance operation actively without instruction of host and electronic system including the same | |
KR101086855B1 (ko) | 고속 동작하는 반도체 스토리지 시스템 및 그 제어 방법 | |
US9417961B2 (en) | Resource allocation and deallocation for power management in devices | |
JP5032027B2 (ja) | 半導体ディスク制御装置 | |
US20160364143A1 (en) | Extensible memory hub | |
US20190341120A1 (en) | Method for maximizing power efficiency in memory interface block | |
US9898201B2 (en) | Non-volatile memory device, and storage apparatus to reduce a read retry occurrence frequency and prevent read performance from lowering | |
CN106469126B (zh) | 处理io请求的方法及其存储控制器 | |
US11733883B2 (en) | Storage device initiating maintenance operation actively without instruction of host and electronic system including the same | |
KR20210060253A (ko) | 메모리 컨트롤러, 메모리 시스템 및 이의 동작 방법 | |
US20150234448A1 (en) | Information processing system and storage device | |
JP2019128948A (ja) | 集積回路装置及びストレージ装置 | |
US11714697B2 (en) | Reset and replay of memory sub-system controller in a memory sub-system | |
TWI672593B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
KR20240019364A (ko) | 저전력 모드를 위한 nvm에서의 선택적 hmb 백업 | |
US11379154B2 (en) | Storage device and operating method thereof | |
EP4286987A1 (en) | Storage system including battery module and method for operating the same | |
US12112048B2 (en) | Adaptive tuning of memory device clock rates based on dynamic parameters | |
JP2011065313A (ja) | ストレージデバイス | |
KR20150082930A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR20230166812A (ko) | 배터리 모듈이 포함된 스토리지 시스템 및 그 동작 방법 | |
KR20240015513A (ko) | 메모리 시스템 및 그 동작 방법 |