TWI791254B - 記憶體系統、記憶體系統之控制方法及主機裝置 - Google Patents
記憶體系統、記憶體系統之控制方法及主機裝置 Download PDFInfo
- Publication number
- TWI791254B TWI791254B TW110128102A TW110128102A TWI791254B TW I791254 B TWI791254 B TW I791254B TW 110128102 A TW110128102 A TW 110128102A TW 110128102 A TW110128102 A TW 110128102A TW I791254 B TWI791254 B TW I791254B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory system
- command
- sequence
- mentioned
- memory
- Prior art date
Links
Images
Classifications
-
- 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
- G06F13/1673—Details of memory controller using buffers
-
- 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
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/08—Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash 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)
- Computer Security & Cryptography (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Stored Programmes (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
- Debugging And Monitoring (AREA)
Abstract
實施方式係關於一種記憶體系統、記憶體系統之控制方法及主機裝置。 實施方式之記憶體系統具備記憶體裝置及控制器,該控制器可與主機連接,根據韌體來控制記憶體裝置。控制器從主機接收與記憶體裝置之動作控制相關之第1指令、及包含第1旗標之第1檔案,執行與第1檔案之內容對應之序列,執行序列後,將包含序列完成通知之應答發送至主機。序列包含:第1動作,其係於第1旗標具有第1值之情形時,執行韌體更新;或第2動作,其係於第1旗標具有與第1值不同之第2值之情形時,依序執行第1檔案中包含之複數個第2指令。
Description
本發明之實施方式係關於一種記憶體系統、記憶體系統之控制方法及主機裝置。
包含NAND(Not AND,反及)快閃記憶體之記憶體系統被用於各種電子機器。此種記憶體系統可與主機裝置連接。記憶體系統執行與來自主機裝置之指令對應之處理。記憶體系統有時從主機裝置接收指示通用處理之通用指令。即,主機裝置可向記憶體系統發送通用指令。
實施方式係對於記憶體系統、記憶體系統之控制方法及主機裝置,提高對從主機裝置發送至記憶體系統之指令之處理相關之功能。
實施方式之記憶體系統具備記憶體裝置及控制器,該控制器可與主機連接,根據韌體來控制記憶體裝置。控制器從主機接收與記憶體裝置之動作控制相關之第1指令、及包含第1旗標之第1檔案,執行與第1檔案之內容對應之序列,於執行序列後,將包含序列之完成通知之應答發送至主機。序列包含:第1動作,其係於第1旗標具有第1值之情形時,執行韌體之更新;或第2動作,其係於第1旗標具有與第1值不同之第2值之情形時,依序執行第1檔案中包含之複數個第2指令。
參照圖1至圖11,對實施方式之記憶體系統、記憶體系統之控制方法及主機裝置進行說明。
以下,參照圖式,對本實施方式進行詳細說明。以下說明中,對具有相同功能及構成之要素標註相同符號。
又,以下各實施方式中,於無須將末尾標註著用於區分之數字/字母之參照符號之構成要素(例如電路、配線、各種電壓及信號等)相互加以區分之情形時,使用省略了末尾之數字/字母之記載(參照符號)。
[實施方式] (1)第1實施方式 參照圖1至圖9,對第1實施方式之記憶體系統、記憶體系統之控制方法及主機裝置進行說明。
(a)構成例 圖1係用以說明本實施方式之記憶體系統之圖。
如圖1所示,伺服器900經由網路NTW連接於資訊通信裝置800。
伺服器900包含處理器91、RAM(Random Access Memory,隨機存取記憶體)92、儲存裝置93及介面電路(亦稱為I/F)94。
處理器91控制伺服器900內之各種處理(例如計算處理及資料處理)及動作。處理器91可創建包含各種資料及(或)資訊之檔案。
RAM92作為伺服器900內之各種資料處理之作業區域發揮功能。RAM92暫時記憶程式(即軟體)、及處理器91之各種處理中使用之資料(例如計算處理之結果、計算處理途中之資料及(或)參數等)。
儲存裝置93記憶各種程式及各種資訊。
介面電路94基於某介面規格及(或)網路NTW所使用之通信協議,與其他裝置(此處為資訊通信裝置800)進行通信。例如,介面電路94對資訊通信裝置800傳送已創建之檔案。介面電路94接收來自資訊通信裝置800之資料。
資訊通信裝置800包含本實施方式之記憶體系統1及主機裝置5。
本實施方式之記憶體系統1於資訊通信裝置800內,基於來自主機裝置5之請求,進行記憶體系統1內之資料寫入、資料讀出及資料抹除。
本實施方式之記憶體系統1之內部構成如下所述。
主機裝置5包含處理器50、RAM51、介面電路(亦稱為I/F)53、54。
處理器(以下,亦稱為主機處理器)50控制主機裝置5之各種處理及動作。
主機處理器50可發佈(或產生)用以請求(例如命令、指示)對記憶體系統1之各種處理及動作之指令(以下,稱為主機指令)。主機處理器50可產生與主機指令對應之檔案。以下,該檔案亦被稱為輸入檔案或主機檔案
檔案係包含記憶體系統1之處理及動作中使用之1個以上之資料(資訊、參數)之資料集。檔案可包含1個以上之指令(或表示指令之資料)或者執行碼。檔案可包含如旗標及(或)擴展名之表示檔案種類及(或)檔案特性之資訊。檔案亦可為例如寫入至記憶體系統1中之資料。
例如,主機處理器50包含用以產生主機指令之指令產生單元(指令產生電路之一例)501。主機處理器50包含用以產生檔案之檔案產生單元502(檔案產生電路之一例)。指令產生單元501及檔案產生單元502可為硬體(電路),亦可為軟體(程式)。
RAM51作為用於主機處理器50之各種資料處理之作業區域發揮功能。RAM51暫時記憶程式(即軟體)、及主機處理器50之各種處理中使用之資料(計算處理之結果、計算處理途中之資料及參數)。
介面電路53基於某介面規格及(或)通信協議,經由網路NTW與伺服器900進行通信。介面電路53將來自伺服器900之信號及資料等輸出至主機裝置5內之內部匯流排。
介面電路54基於某介面規格及(或)通信協議,與記憶體系統1進行通信。
再者,針對記憶體系統1之主機指令HCMD(指令碼)係基於介面電路54之介面規格。例如,介面電路54中使用之介面規格(或通信協議)採用SAS(Serial Attached SCSI,串列連接之SCSI)規格、SATA(Serial Advanced Technology Attachment,串列高階技術附加)規格、PCIexpress(Peripheral Component Interconnect express,高速周邊單元互連標準)(註冊商標)規格(以下,記載為PCIe規格)、NVMexpress(Non-volatile Memory express,非揮發性記憶體標準)(註冊商標)規格(以下,記載為NVMe規格)、通用快閃記憶體記憶(Universal Flash Storage)規格(以下,記載為UFS規格)等。再者,可將以此處例示之介面規格中之任一規格為基準之介面規格或其他介面規格用於介面電路54中。
主機裝置5可使用基於上述介面規格之公開之指令或非公開之指令,命令記憶體系統1執行各種動作。
公開之指令(以下,稱為公開指令)係記憶體系統1之規格書、技術資料表或說明書等中揭示之指令。例如,公開指令包含對記憶體系統命令如針對記憶體系統之資料寫入、資料讀出及資料無效化或抹除之與用戶資料相關之記憶體系統之各種動作之指令。
非公開之指令(以下,稱為非公開指令)係記憶體系統1之規格書、技術資料表或說明書等中未揭示之指令。例如,非公開指令係基於某協議之廠商專用(或開發者專用)之指令。非公開指令之例包含記憶體系統1之除錯(debug)之指令、用於記憶體系統1之測試之指令、用於記憶體系統1之解析之指令、用於記憶體系統1之各種設定之初始化之指令及用於獲取記憶體系統1之內部處理之日誌之指令等。
但,非公開指令與公開指令同樣,係根據記憶體系統1與主機裝置5(或伺服器900)之間之介面規格定義之指令。
主機裝置5除包含上述構成以外,亦可進而包含如HDD(Hard Disc Drive,硬碟)之儲存裝置(未圖示)。
例如,主機裝置5(或資訊通信裝置800)為個人電腦、智慧型手機、功能手機(feature phone)、移動終端(例如平板終端)、遊戲設備、車載設備、路由器及基站等。
本實施方式之記憶體系統1包含記憶體控制器10及NAND快閃記憶體(以下,亦簡稱為快閃記憶體)20。
<記憶體系統> 圖2係用以說明本實施方式之記憶體系統之構成例之圖。
(記憶體控制器) 記憶體控制器10基於來自主機裝置5之請求,向NAND快閃記憶體20指示(命令)針對NAND快閃記憶體20之資料寫入、資料讀出及資料抹除等各種處理及動作。
記憶體控制器10包含處理器100、RAM110、緩衝電路120、介面電路130、140。
處理器100可指示(或命令)針對NAND快閃記憶體20之各種處理及動作。例如,處理器100可產生表示針對NAND快閃記憶體20之指示之指令(以下,亦稱為控制器指令)。例如,處理器100基於記憶體系統1內(例如NAND快閃記憶體20之某記憶區域內)記憶之韌體,控制針對NAND快閃記憶體20之各種處理及動作。
處理器100包含CPU101、解析單元(解析電路之一例)102及執行單元(執行電路之一例)103等。處理器100因該等構成要素而具有用以執行公開指令及非公開指令之功能、用以更新韌體之功能等。
CPU101控制於處理器100內執行之各種處理及處理器100內之各種動作。
解析單元102對來自主機裝置5之主機指令HCMD進行解析。
執行單元103執行基於指令HCMD之解析處理之結果之動作。
解析單元102及執行單元103只要可實現各單元102、103之功能,則可包含硬體(電路),亦可包含軟體(程式)。
RAM110作為記憶體控制器10內之用於處理器100之各種處理及動作之作業區域發揮功能。RAM110暫時記憶程式及處理器100之各種處理中使用之資料(計算處理之結果、計算處理途中之資料及參數)等。例如,藉由CPU101及執行單元103來接入RAM110。
再者,RAM110亦可為設置於處理器100內之記憶區域(RAM)。
緩衝電路120將記憶體控制器10與主機裝置5之間傳輸之資料、及記憶體控制器10與快閃記憶體20之間傳輸之資料進行暫時記憶。
例如,緩衝電路120包含指令緩衝區121及資料緩衝區122。
指令緩衝區(指令緩衝區電路之一例)121暫時記憶主機指令HCMD。
資料緩衝區(資料緩衝區電路之一例)122暫時記憶來自主機裝置5之檔案(輸入檔案)IPF或資料。輸入檔案IPF係包含1個以上之資料及(或)1個以上之指令(表示指令之資料)等之資料集。輸入檔案IPF包含如旗標這樣之識別資訊。
介面電路(以下,亦稱為主機介面電路)130基於某介面規格,進行主機裝置5與記憶體控制器10之間之資料傳輸。介面電路130之介面規格(及通信協議)係與主機裝置5之介面電路54之介面規格相同之規格(或標準規格)。
介面電路(以下,亦稱為NAND介面電路)140基於NAND介面規格,進行記憶體控制器10與NAND快閃記憶體20之間之通信(例如資料傳輸)。
於記憶體控制器10對NAND快閃記憶體20命令某動作之情形時,記憶體控制器10將包含指令及位址資訊之資料群(以下,亦稱為NAND指令集)傳送至NAND快閃記憶體20。再者,於記憶體控制器10對NAND快閃記憶體20命令資料寫入之情形時,NAND指令集進而包含寫入資料。
再者,記憶體控制器10除了包含上述構成以外,亦可包含如ECC(Error Check and Correction,錯誤檢查與校正)電路(未圖示)這樣之其他構成。
(NAND快閃記憶體) NAND快閃記憶體20係非揮發性半導體記憶體裝置。NAND快閃記憶體20可實質上非揮發地記憶資料。
以下,NAND快閃記憶體20亦簡稱為快閃記憶體20。
快閃記憶體20例如包含記憶胞陣列200、指令暫存器201、位址暫存器202、定序器203、驅動電路204、列控制電路205、感測放大器電路206及介面電路(輸入輸出電路之一例)207等。
記憶胞陣列200記憶資料。記憶胞陣列200內設有複數個位元線(未圖示)及複數個字元線(未圖示)。記憶胞陣列200包含1個以上之區塊BLK0~BLKi-1(i為1以上之整數)。區塊BLK(BLK0~BLKi-1)係複數個記憶胞之集合。區塊BLK例如被用作資料抹除單位。
圖3係表示NAND快閃記憶體20之記憶胞陣列200之電路構成之一例的等效電路圖。圖3中,抽選記憶胞陣列200所包含之複數個區塊BLK中之1個區塊BLK來表示。
如圖3之例,區塊BLK例如包含4個串單元SU0、SU1、SU2、SU3。各串單元SU包含複數個記憶胞串(以下,稱為NAND串)NS。複數個NAND串NS分別與複數個位元線BL0~BLm-1(m為1以上之整數)中之對應之1個建立關聯。
NAND串NS包含複數個記憶胞MC0~MCn-1、及選擇電晶體ST1、ST2。
記憶胞(以下,亦稱為記憶胞電晶體)MC(MC0~MCn-1)係包含電荷蓄積層之場效電晶體。記憶胞MC可實質上非揮發地記憶1位元以上之資料。
選擇電晶體ST1、ST2分別被用於各種動作時之串單元SU之選擇。
各NAND串NS中,記憶胞MC0~MCn-1串聯連接於選擇電晶體ST1之源極與選擇電晶體ST2之汲極之間。同一區塊BLK內之記憶胞MC0~MCn-1之控制閘極共通連接於複數個字元線WL0~WLn-1中對應之1個。
各NAND串NS中,選擇電晶體ST1之一端(源極)連接於串聯連接之記憶胞MC之一端,選擇電晶體ST1之汲極連接於對應之位元線BL。選擇電晶體ST1之閘極連接於複數個選擇閘極線SGD中對應之1個。
各NAND串NS中,選擇電晶體ST2之一端(源極)連接於源極線,選擇電晶體ST2之另一端(汲極)連接於串聯連接之記憶胞MC之另一端。選擇電晶體ST2之閘極連接於選擇閘極線SGS。例如,同一區塊BLK內之複數個選擇電晶體ST2之源極共通連接於1個源極線SL。同一區塊BLK內之複數個選擇電晶體ST2之閘極共通連接於1個選擇閘極線SGS。
1個串單元SU內連接於共通之字元線WL之複數個記憶胞MC之單位例如被稱為胞單元CU。例如,於記憶胞MC各自記憶1位元之資料之情形時,1個胞單元CU可記憶1頁資料。於記憶胞MC各自記憶2位元之資料之情形時,1個胞單元CU可記憶2頁資料。「1頁資料」例如以包含記憶1位元之資料之記憶胞MC之胞單元CU所記憶之資料總量定義。
再者,實施方式之NAND快閃記憶體20之記憶胞陣列200之電路構成不限於上述構成。例如,各NAND串NS內之記憶胞MC及選擇電晶體ST1、ST2之個數可分別設計成任意個數。各區塊BLK內之串單元SU之個數可設計成任意個數。
返回至圖2,對快閃記憶體20內之記憶胞陣列200以外之構成進行說明。
指令暫存器201記憶來自記憶體控制器10之指令(控制器指令)CMD。控制器指令CMD係例如用以使定序器203執行讀出動作、寫入動作及抹除動作等之信號集。
位址暫存器202記憶來自記憶體控制器10之位址資訊(以下,亦稱為選擇位址)ADD。位址資訊ADD例如包含區塊位址、頁位址(字元線位址)及行位址。例如,區塊位址、頁位址及行位址分別用於區塊BLK、字元線WL及位元線BL之選擇。以下,基於區塊位址選擇之區塊被稱為選擇區塊。基於頁位址選擇之字元線被稱為選擇字元線。
定序器203控制快閃記憶體20之內部電路之動作。例如,定序器203基於指令暫存器201內之控制器指令CMD控制驅動電路204。
驅動電路204輸出資料讀出(即,讀出動作)、資料寫入(即,寫入動作)、及資料抹除(即,抹除動作)等中使用之複數個電壓。例如驅動電路204基於位址暫存器202內之頁位址,對與選擇字元線對應之配線施加電壓。
列控制電路205控制與記憶胞陣列200之列相關之動作。列控制電路205基於位址暫存器202內之區塊位址,選擇記憶胞陣列200內之1個區塊BLK。列控制電路205將例如施加至與選擇字元線對應之配線之電壓傳輸至選擇區塊BLK內之選擇字元線。
感測放大器電路206控制與記憶胞陣列200之行相關之動作。感測放大器電路206於寫入動作中,根據來自記憶體控制器10之寫入資料DT,對記憶胞陣列200內設置之各位元線施加電壓。感測放大器電路206於讀出動作中,基於位元線之電位(或有無電流產生)來判定記憶胞中記憶之資料。感測放大器電路206將基於該判定結果之資料作為讀出資料DT傳輸至記憶體控制器10。
介面電路207於記憶體控制器10與快閃記憶體20之間,進行各種控制信號及資料之輸入及輸出。
NAND快閃記憶體20與記憶體控制器10之間之通信由NAND介面規格支持。例如,於快閃記憶體20與記憶體控制器10之間之通信中,使用指令鎖存賦能信號CLE、位址鎖存賦能信號ALE、寫入賦能信號WEn、讀取賦能信號REn、就緒/忙碌信號RBn及輸入輸出信號IO。
指令鎖存賦能信號CLE係表示快閃記憶體20所接收到之輸入輸出信號IO為控制器指令CMD之信號。位址鎖存賦能信號ALE係表示快閃記憶體20所接收到之信號IO為位址資訊ADD之信號。寫入賦能信號WEn係命令快閃記憶體20使其執行向快閃記憶體20內之輸入輸出信號IO之輸入之信號。讀取賦能信號REn係命令快閃記憶體20使其執行向記憶體控制器10之輸入輸出信號I/O之輸出之信號。
就緒/忙碌信號RBn係向記憶體控制器10通知快閃記憶體20是處於就緒狀態還是處於忙碌狀態之信號。就緒狀態係受理來自記憶體控制器10之指令之狀態。忙碌狀態係快閃記憶體20未受理指令之狀態。
輸入輸出信號IO可包含控制器指令CMD、位址資訊ADD、資料DT等。輸入輸出信號IO例如為8位元寬之信號(信號集)。
再者,NAND快閃記憶體20有時由包含記憶胞陣列200、列控制電路205及感測放大器電路206之構成(控制單位)形成被稱為記憶體面之控制單位。圖2中,示出NAND快閃記憶體20具有1個記憶體面之例。但係,NAND快閃記憶體20亦可包含2個以上之記憶體面。記憶體面之構成不限於上述構成,記憶體面只要至少包含記憶胞陣列200即可。
例如,記憶體系統1為SSD(solid state drive,固態驅動器)、記憶卡、或USB(universal serial bus,通用串列匯流排)記憶體、UFS(Universal Flash Storage,通用快閃記憶體儲存)裝置等。
再者,亦可代替NAND快閃記憶體20,將其他非揮發性或揮發性記憶體裝置用於記憶體系統1。
<概念> 圖4係用以說明本實施方式之記憶體系統之基本概念之模式圖。
如圖4所示,本實施方式之記憶體系統1可根據由主機裝置5命令(請求及指示)之複數個動作序列(動作模式)Sq0、Sq1、Sq2,執行各種處理及動作。
如上所述,本實施方式之記憶體系統1從主機裝置5接收主機指令HCMD(HCMDfwup、HCMDnom)及輸入檔案IPF(IPFflg<0>、IPFflg<1>、IPFnom)。本實施方式之記憶體系統1基於主機指令HCMD及輸入檔案IPF,執行各種處理及動作。
例如,作為主機指令HCMD,本實施方式之記憶體系統1接收常規指令HCMDnom及韌體更新指令HCMDfwup等。
於主機裝置5向記憶體系統1請求使用常規指令之動作序列(以下,亦稱為常規指令模式)Sq0之情形時,主機裝置5對記憶體系統1發佈(產生及發送)常規指令HCMDnom。記憶體系統1執行與來自主機裝置5之常規指令HCMDnom對應之處理及動作。
常規指令HCMDnom係上述公開指令。常規指令HCMDnom例如係基於主機裝置5與記憶體系統1之間使用之介面規格(例如上述PCIe規格或NVMe規格)之指令、基於記憶體系統之規格之指令。常規指令HCMDnom係用於資料寫入、資料讀出及資料抹除等對快閃記憶體20內之資料進行存取之指令、及與快閃記憶體20之各種設定及管理相關之指令(例如狀態讀取指令或ZQ指令等)。
再者,主機裝置5有時會根據向記憶體系統1請求之動作,將輸入檔案IPFnom(例如寫入資料、參數或設定資訊等)連同常規指令HCMDnom一起傳送。
以下,主機指令HCMD和與該指令HCMD建立關聯之輸入檔案IPF之集合被稱為主機指令集。
於主機裝置5向記憶體系統1請求用於記憶體系統1之韌體(以下,亦記載為FW)更新之動作序列(以下,亦稱為FW更新模式)Sq1之情形時,主機裝置5對記憶體系統1發佈韌體更新指令(以下,亦記載為FW更新指令)HCMDfwup。韌體更新指令HCMDfwup係用於記憶體系統1之韌體更新之指令。FW更新指令HCMDfwup亦可根據來自伺服器900之請求而發佈。
於FW更新模式Sq1時,主機裝置5根據FW更新指令HCMDfwup,將包含用於韌體更新之資料及資訊之輸入檔案(以下,亦稱為FW更新檔案)IPFflg<0>傳送至記憶體系統1。FW更新檔案IPFflg<0>包含韌體更新所使用之各種資料DT及資訊等。例如,FW更新檔案IPFflg包含識別旗標FLG。FW更新模式Sq1時,識別旗標FLG例如具有第1值(<0>)。
記憶體系統1基於來自主機裝置5之FW更新指令HCMDfwup,使用FW更新檔案IPFflg<0>,執行用於韌體更新之各種處理及動作。
於主機裝置5向記憶體系統1請求連續地執行複數個指令SCMD(SCMD<0>、SCMD<1>、SCMD<k>)之動作序列(以下,稱為指令序列模式)之情形時,主機裝置5對記憶體系統1發佈FW更新指令HCMDfwup。
指令序列模式時,主機裝置5根據FW更新指令HCMDfwup,將用於指令序列模式Sq2之輸入檔案(以下,亦稱為指令序列檔案)IPFflg<1>傳送至記憶體系統1。此時,主機裝置5對指令序列檔案IPFflg<1>附上具有不同於第1值之第2值(<1>)之識別旗標FLG。
於執行指令序列模式之情形時,記憶體系統1從主機裝置5接收附加有識別旗標之指令序列檔案IPFflg<1>、以及FW更新指令HCMDfwup。
本實施方式中,於記憶體系統1接收到FW更新指令HCMDfwup之情形時,記憶體系統1基於識別旗標FLG,判別應執行之動作序列(動作模式)為FW更新模式Sq1抑或指令序列模式Sq2。
本實施方式中,附加於輸入檔案IPF上之識別旗標FLG係表示輸入檔案IPF之種類(記憶體系統1應執行之動作序列)之資訊。
於記憶體系統1應執行之動作序列為FW更新模式Sq1時(輸入檔案IPF為FW更新檔案之情形時),識別旗標FLG具有第1值(<0>)。
於記憶體系統1應執行之動作序列為指令序列模式Sq2時(輸入檔案IPF為指令序列檔案之情形時),識別旗標FLG具有不同於第1值之第2值(<1>)。
於請求執行FW更新模式Sq1時,主機裝置5(或伺服器900)對輸入檔案IPF附加第1值之識別旗標FLG<0>。於請求執行指令序列模式Sq2時,主機裝置5(或伺服器900)對輸入檔案IPF附加第2值之識別旗標FLG<1>。
例如,識別旗標FLG為1位元或2位元之信號。
再者,識別旗標FLG可僅於執行指令序列模式Sq2時附加於輸入檔案IPF。亦可於執行常規指令模式Sq0時,將表示常規指令模式Sq0之識別旗標FLG與主機指令HCMD一起從主機裝置5傳送至記憶體系統1。
以下,於識別旗標FLG為第1值(亦稱為第1旗標值)之情形時,亦表述為識別旗標FLG處於關閉狀態。於識別旗標FLG為第2值(亦稱為第2旗標值)之情形時,亦表述為識別旗標FLG處於開啟狀態。
指令序列模式Sq2下之附有識別旗標之輸入檔案IPFflg<1>包含指令序列模式所使用之1個以上之指令SCMD(SCMD<0>、SCMD<1>、SCMD<k-1>(k為1個以上之整數))、各種資料DT及資訊等,以及識別旗標FLG<1>。例如,指令SCMD亦可為表示應執行之1個以上之指令之資料(程式碼)。
本實施方式之記憶體系統1基於FW更新指令HCMDfwup及指令序列檔案IPFflg<1>,執行指令序列檔案IPFflg<1>內之複數個指令SCMD<0>、SCMD<1>、SCMD<k-1>。
例如,主機裝置5(或伺服器900)於產生指令序列檔案IPFflg<1>時,設定指令序列檔案IPFflg<1>內之複數個指令SCMD<0>、SCMD<1>、SCMD<k-1>之執行順序。
記憶體系統1按照所設定之執行順序,依序執行複數個指令SCMD<0>、SCMD<1>、SCMD<k-1>。
記憶體系統1於執行各指令SCMD<0>、SCMD<1>、SCMD<k-1>時,適當使用指令序列檔案IPFflg<1>內之資料DT。
例如,記憶體系統1根據識別旗標FLG之判別結果,將表示指令序列模式Sq2處於執行中之旗標(以下為執行中旗標)FLGexe設定為關閉狀態或開啟狀態。於識別旗標FLG為第1值時(FW更新模式Sq1時),記憶體系統1將執行中旗標FLGexe設定為關閉狀態。於識別旗標FLG為第2值時(指令序列模式時),記憶體系統1將執行中旗標FLGexe設定為開啟狀態。記憶體系統1於指令序列模式Sq2執行結束時,將執行中旗標FLGexe從開啟狀態改變為關閉狀態。
再者,伺服器900亦可產生包含識別旗標FLG之輸入檔案(例如指令序列檔案)IPFflg。伺服器900向主機裝置5提供指令序列檔案IPFflg<1>。
主機裝置5根據來自伺服器900之指令序列檔案IPFflg<1>,產生FW更新指令HCMDfwup。主機裝置將FW更新指令HCMDfwup、及來自伺服器900之指令序列檔案IPFflg<1>傳送至本實施方式之記憶體系統。
如上所述,本實施方式之記憶體系統1可執行複數個動作序列Sq1、Sq2、Sq3。
(b)動作例 參照圖5至圖9,對本實施方式之記憶體系統之動作例進行說明。
(b-1)動作序列 參照圖5至圖8,對本實施方式之記憶體系統之動作序列進行說明。
如上述圖4所示,本實施方式之記憶體系統可基於3個動作序列進行動作。
圖5係模式地表示各動作序列時之本實施方式之記憶體系統內之各構成的處理流程之圖。
如圖5所示,主機裝置5將主機指令HCMD傳送至記憶體系統1。主機裝置5根據向記憶體系統1請求之動作,將輸入檔案IPF傳送至記憶體系統1。如上所述,主機裝置5根據向記憶體系統1請求之動作序列,對輸入檔案IPF附加識別旗標FLG。
記憶體系統1接收主機指令HCMD及輸入檔案IPF。主機指令HCMD儲存於緩衝電路120之指令緩衝區121內。輸入檔案IPF儲存於緩衝電路120內之資料緩衝區122內。
於記憶體系統1內,處理器100根據指令緩衝區121內之主機指令HCMD,執行對應之動作序列(動作模式)。
如上所述,處理器100包含CPU101、解析單元102及執行單元103。進而,處理器100包含命令碼記憶體104及工作記憶體105。工作記憶體105亦可設置於RAM110內。
CPU101基於韌體FW之命令碼,執行記憶體控制器10內之各種處理及動作、針對快閃記憶體20之各種處理及動作、及各種控制。
解析單元102可接入指令緩衝區121內之主機指令HCMD。主機指令HCMD從指令緩衝區121被供給至解析單元102。
解析單元102對主機指令HCMD進行解析(例如解碼)。
本實施方式中,解析單元102可接入資料緩衝區122內之輸入檔案IPF所包含之指令SCMD。指令SCMD藉由CPU101(或執行單元103)之控制,從資料緩衝區122被供給至解析單元102。
解析單元102對指令SCMD進行解析。例如,解析單元102可藉由與輸入檔案IPF中包含之識別旗標FLG對應之執行單元103之控制,來接入輸入檔案IPF,獲取輸入檔案IPF內之指令SCMD。
如此,本實施方式中,解析單元102可執行與指令緩衝區121內之指令HCMD及資料緩衝區122內之指令SCMD相關之解析處理。
解析單元102指示執行單元103執行基於主機指令HCMD及指令SCMD之解析結果之處理及動作。
執行單元103根據來自解析單元102之指示,執行與主機指令HCMD及指令SCMD相關之各種處理及動作。執行單元103根據應執行之處理及動作,接入資料緩衝區122、工作記憶體105及RAM110。執行單元103相應於指令HCMD、SCMD之處理及動作之完成,產生針對指令HCMD、SCMD之應答RES。執行單元103將所產生之應答RES輸出至主機裝置5或工作記憶體105。
再者,執行單元103可接入快閃記憶體20。
命令碼記憶體104將記憶體系統1之韌體之命令碼予以記憶。從CPU101接入命令碼記憶體104。韌體係於記憶體系統1之電源接通時,從韌體插槽(例如快閃記憶體20)讀出。此時,韌體之命令碼儲存於命令碼記憶體104內。
命令碼係例如操作碼般,表示於記憶體系統1內執行之基本處理(例如邏輯運算、算術運算或資料處理等)之編碼。
工作記憶體105作為CPU101之各種資料處理之作業區域發揮功能。工作記憶體105暫時記憶程式(或程式之一部分)、及資料(例如計算中之參數、計算結果)。從CPU101及執行單元103接入工作記憶體105。再者,工作記憶體105可為處理器100內之記憶區域,亦可為RAM110內之記憶區域。
例如,命令碼記憶體104及工作記憶體105係揮發性記憶體(例如DRAM(Dynamic Random Access Memory,動態隨機存取記憶體)或SRAM(Static Random Access Memory,靜態隨機存取記憶體))。
快閃記憶體20於其一部分記憶區域中作為韌體插槽(以下,亦記載為FW插槽)發揮功能。快閃記憶體20記憶韌體。於韌體更新時,快閃記憶體20內之現有韌體被新的韌體覆寫。
亦可將除快閃記憶體20以外之非揮發性記憶體裝置用於韌體插槽中。
如下所述,本實施方式之記憶體系統1根據來自主機裝置5之請求,執行常規指令模式Sq0、FW更新模式Sq1及指令序列模式Sq2之各動作序列。
<常規指令模式> 使用圖6,對本實施方式之記憶體系統中之常規指令模式之各種處理及動作進行說明。
圖6係表示本實施方式之記憶體系統之常規指令模式時之構成要素間之處理流程之順序圖。
<Q00、Q01> 如圖6所示,主機裝置5產生與向記憶體系統1請求之處理及動作對應之主機指令HCMD。
常規指令模式Sq0時,例如於主機裝置5請求針對記憶體系統1之各種動作之情形時,主機裝置5利用主機處理器50產生常規指令HCMDnom。常規指令HCMDnom為公開指令。常規指令HCMDnom係基於主機裝置5與記憶體系統1之間之介面規格定義之資料群。
主機裝置5將常規指令HCMDnom作為主機指令HCM,經由上述介面電路54傳送至本實施方式之記憶體系統1(Q00)。
主機裝置5藉由主機處理器50,根據請求執行之動作,產生輸入檔案IPFnom。例如常規指令模式Sq0時,主機裝置5不對輸入檔案IPFnom附加表示動作序列之識別旗標FLG。
主機裝置5將輸入檔案IPFnom經由上述介面電路54傳送至記憶體系統1(Q01)。
再者,根據請求執行之動作,有時不會產生輸入檔案IPFnom。
如此,主機裝置5向記憶體系統1請求(命令、指示)某處理及動作之情形時,主機裝置5對記憶體系統1傳送主機指令集。主機指令集除包含主機指令HCMD及輸入檔案IPFnom外,可進而包含表示記憶體系統1內之接入目標之位址資訊及用以執行主機指令之各種資訊。
記憶體系統1經由上述主機介面電路130接收主機指令集。
於記憶體系統1內,主機指令HCMD被供給至指令緩衝區121,輸入檔案IPFnom被供給至資料緩衝區122。
<Q02、Q03、Q04> 於記憶體系統1內,藉由CPU101將主機指令HCMD從指令緩衝區121輸入至解析單元102(Q02)。
解析單元102對作為主機指令HCMD之常規指令HCMDnom進行解析(Q03)。
解析單元102基於常規指令HCMDnom之解析結果,指示執行單元103執行各種處理及動作(Q04)。
<Q05、Q06> 執行單元103基於來自解析單元102之指示,執行複數個處理及動作(Q05)。
執行單元103根據應執行之處理及動作,接入資料緩衝區122之輸入檔案IPFnom內之資料(Q06)。
例如,執行單元103根據應執行之處理及動作,執行對工作記憶體105之接入(Qa)及(或)對快閃記憶體20之接入(Qb)。
藉由常規指令模式Sq0執行之動作及處理係對快閃記憶體之資料寫入、來自快閃記憶體之資料讀出、快閃記憶體內之資料抹除、巡檢動作(更新動作)或垃圾回收、用於快閃記憶體20之電路設定之動作(例如校準動作)等。
<Q07> 當於記憶體系統1內完成與常規指令HCMDnom對應之動作及處理時,執行單元103輸出應答RES。主機裝置5從記憶體系統1接收應答RES。
應答RES包含動作序列之完成通知、讀出資料、及(或)表示根據主機指令執行之處理及動作之結果之資訊(例如狀態或參數)等。
主機裝置5基於應答RES,執行針對伺服器900或記憶體系統1之各種處理及動作、或主機裝置5內之內部處理。
再者,於將複數個指令從主機裝置5傳輸至記憶體系統1之情形時,亦可為每當完成各指令之執行時,記憶體系統1便將應答RES傳輸至主機裝置5。
如上所述,本實施方式之記憶體系統中之常規指令模式Sq0之動作序列結束。
<韌體更新模式> 使用圖7,對本實施方式之記憶體系統中之FW更新模式之各種處理及動作進行說明。
圖7係表示本實施方式之記憶體系統之FW更新模式時之構成要素間的處理流程之順序圖。
<Q10、Q11> 如圖7所示,主機裝置5對記憶體系統1傳送主機指令集。主機指令集至少包含主機指令HCMD及輸入檔案IPF。
於FW更新模式Sq1時,主機裝置5藉由主機處理器50產生FW更新指令HCMDfwup作為主機指令HCMD。
於請求執行FW更新模式Sq1時,輸入檔案IPF(FW更新檔案IPFflg<0>)包含與韌體更新相關之各種資訊(以下,亦稱為更新資訊)。
本實施方式中,如上述圖4所示,於請求執行FW更新模式Sq1時,主機裝置5藉由主機處理器50對輸入檔案IPF附加識別旗標FLG。主機裝置5將識別旗標FLG之狀態設定為表示執行FW更新模式Sq1之狀態。識別旗標FLG具有第1值<0>。對識別旗標FLG設定之值係例如由1位元或2位元表示之值。
再者,FW更新檔案IPFflg<0>亦可由伺服器900產生。
如上所述,主機裝置5將FW更新指令HCMDfwup傳送至記憶體系統(Q10)。主機裝置5將附有識別旗標之FW更新檔案IPFflg<0>傳送至記憶體系統1(Q11)。
記憶體系統1接收主機指令集。於記憶體系統1中,作為主機指令之FW更新指令HCMDfwup被供給至指令緩衝區121,包含識別旗標FLG之輸入檔案IPFflg<0>被供給至資料緩衝區122內。
再者,記憶體系統1基於電源接通時讀出之韌體(現有韌體)FWa,使用命令碼記憶體104內之命令碼來動作。
<Q12、Q13> 主機指令HCMD係從指令緩衝區121輸入至解析單元102(Q12)。
於記憶體系統1內,解析單元102對來自指令緩衝區121之主機指令HCMD進行解析(Q13)。藉由主機指令HCMD之解析,解析單元102偵測到應執行之主機指令HCMD為FW更新指令HCMDfwup。
解析單元102指示執行單元103執行FW更新(Q14)。
<Q15、Q16、Q17> 執行單元103執行與來自解析單元102之FW更新指令之執行指示對應之動作(Q15)。
本實施方式中,執行單元103根據來自解析單元102之FW更新指示,接入資料緩衝區122內之輸入檔案IPFflg<0>。執行單元103確認輸入檔案IPFflg<0>內之識別旗標FLG之狀態(Q16)。
於識別旗標FLG表示FW更新檔案(執行FW更新模式Sq1)之情形時,執行單元103偵測第1值之識別旗標FLG<0>。藉此,執行單元103執行韌體更新。該情形時,執行單元103將執行中旗標FLGexe設定為關閉狀態(F0)。
於韌體更新之執行中,執行單元103根據韌體更新之進行,接入FW更新檔案IPFflg<0>(Q17)。藉此,執行單元103執行使用了FW更新檔案IPFflg<0>之各種處理及動作。
再者,於韌體更新時,執行單元103有時亦會使用工作記憶體105內或快閃記憶體(FW插槽)20內之資料(Qa、Qb)。
<Q18、Q19、Q20> 根據FW更新之進行,執行單元103使用FW更新檔案IPFflg<0>,進行現有韌體(更新前之韌體)及新的韌體(更新後之韌體)之驗證(Q18)。
執行單元103使用FW更新檔案IPFflg<0>,使FW韌體變得非揮發(Q19)。例如,執行單元103將新的韌體及該韌體相關之資訊寫入作為FW插槽之快閃記憶體20之特定記憶區域內。
執行單元103使用FW更新檔案IPFflg<0>,進行命令碼(執行碼)之覆寫(Q20)。執行單元103將基於命令碼記憶體104內之現有韌體FWa之命令碼覆寫為基於新的韌體FWb之命令碼。
藉此,命令碼記憶體104內之命令碼從更新前之韌體FWa之命令碼更新為更新後之韌體FWb之命令碼。
藉由命令碼之更新,本實施方式之記憶體系統1基於新的韌體(更新後之韌體)FWb動作。
再者,剛從韌體Fwa更新為新的韌體FWb後,亦可不執行基於新的韌體FWb之動作,而繼續進行基於前一韌體FWa之動作。該情形時,基於新的韌體FWb之動作係於記憶體系統1之下一次重置時或記憶體系統1之下一次啟動時執行。
<Q21> 執行單元103輸出與FW更新指令HCMDfwup相關之應答RES。記憶體系統1將應答RES傳送至主機裝置5。
主機裝置5接收來自記憶體系統1之應答RES。藉此,主機裝置5偵測到韌體更新完成。
再者,主機裝置5亦可根據應答RES,向伺服器900通知記憶體系統1之韌體更新完成。
例如,於韌體更新失敗之情形時,執行單元103亦可將包含錯誤資訊之應答RES傳送至主機裝置5。
如上所述,本實施方式之記憶體系統中之韌體更新序列結束。
<指令序列模式> 使用圖8,對本實施方式之記憶體系統之指令序列模式之各種處理及動作進行說明。
圖8係表示本實施方式之記憶體系統之指令序列模式時之構成要素間的處理流程之順序圖。
<Q30、Q31> 如圖8所示,主機裝置5與上述例同樣,將主機指令集傳送至記憶體系統1。
於主機裝置5請求記憶體系統1執行指令序列模式Sq2之情形時,主機裝置5藉由主機處理器50產生FW更新指令HCMDfwup。主機裝置5將所產生之FW更新指令HCMDfwup作為主機指令HCMD傳送至記憶體系統1(Q30)。
本實施方式中,於請求執行指令序列模式Sq2時,如上述圖4所示,主機裝置5藉由主機處理器50對輸入檔案IPF附加識別旗標FLG。主機裝置5將識別旗標FLG之狀態設定為表示指令序列檔案(執行指令序列模式Sq2)之狀態。例如,識別旗標FLG具有與第1值(<0>)不同之第2值(<1>)。
於請求執行指令序列模式Sq2時,如上述圖4所示,主機裝置5藉由主機處理器50,將複數個指令SCMD、或表示複數個指令之資料儲存於輸入檔案IPF(指令序列檔案IPFflg<1>)內。指令序列檔案IPFflg<1>內之複數個指令中之1個以上亦可為非公開指令。指令序列檔案IPFflg<1>內之複數個指令可全部為非公開指令,亦可全部為公開指令。
主機裝置5藉由主機處理器50,設定指令序列檔案IPFflg<1>內儲存之複數個指令SCMD之執行順序。例如,主機裝置5基於複數個指令SCMD之執行順序,將複數個指令SCMD排列於指令序列檔案IPFflg內。
於將表示複數個指令SCMD之資料儲存於指令序列檔案IPFflg<1>內之情形時,可將複數個指令SCMD按照該等指令之執行順序依次記載於上述資料內。
藉此,複數個指令SCMD藉由下述解析單元102對輸入檔案IPF之接入,按照指令序列檔案IPFflg<1>內之複數個指令SCMD之規定之執行順序執行。
再者,指令序列檔案IPFflg<1>內之各指令SCMD可具有表示執行順序之編碼(或旗標)。亦可將表示複數個指令SCMD之執行順序之資料作為與指令序列模式相關之資訊,儲存於輸入檔案IPF內。
主機裝置5藉由主機處理器50,將執行指令序列模式Sq2時使用之1個以上之資料(例如設定資訊及參數等)儲存於指令序列檔案IPFflg<1>內。例如,指令序列檔案IPFflg<1>中,複數個資料DT分別與複數個指令SCMD中對應之指令建立關聯。
如此,主機裝置5產生具有識別旗標FLG<1>之指令序列檔案IPFflg<1>,作為對記憶體系統1之輸入檔案IPF。
主機裝置5將所產生之附有識別旗標之指令序列檔案IPFflg<1>傳送至記憶體系統1(Q31)。
記憶體系統1接收主機指令集。作為主機指令HCMD之FW更新指令HCMDfwup儲存於指令緩衝區121內。包含識別旗標FLG之指令序列檔案IPFflg<1>作為輸入檔案IPF儲存於資料緩衝區122內。
再者,於指令序列模式時,包含識別旗標FLG及複數個指令SCMD之檔案(指令序列檔案IPFflg<1>)亦可由伺服器900產生。伺服器900將所創建之指令序列檔案IPFflg<1>提供給主機裝置5。
伺服器900有時亦將用以執行指令序列模式Sq2之輸入檔案IPF不附加識別旗標FLG地提供給主機裝置5。該情形時,主機裝置5將具有表示指令序列模式之值之識別旗標FLG<1>附加至來自伺服器900之檔案。
<Q32、Q33、Q34> 作為主機指令HCMD之FW更新指令HCMDfwup從指令緩衝區121傳輸至解析單元102(Q32)。
解析單元102解析主機指令HCMD(Q33)。藉由解析主機指令HCMD,解析單元102偵測到主機指令HCMD為FW更新指令HCMDfwup。
解析單元102對執行單元103指示與FW更新指令HCMDfwup對應之處理及動作(Q34)。
<Q35、Q36、Q37> 執行單元103執行與來自解析單元102之FW更新指令HCMDfwup之執行指示對應之動作(Q35)。
本實施方式中,執行單元103根據來自解析單元102之指示,接入資料緩衝區122內之輸入檔案IPFflg<1>,確認識別旗標FLG(Q36)。
於識別旗標FLG表示指令序列檔案時(識別旗標FLG具有第2值<1>之情形時),執行單元103偵測第2值之識別旗標FLG<1>。藉此,執行單元103開始執行指令序列模式Sq2。
執行單元103於執行指令序列模式Sq2之情形時,將執行中旗標FLGexe設定為開啟狀態(F1)。
例如,執行單元103將識別旗標FLG表示指令序列模式Sq2之情況通知給解析單元102(或CPU101)(Q37)。藉由開啟狀態之執行中旗標FLGexe,解析單元102(及CPU101)可辨識應執行之動作模式為指令序列模式。
執行中旗標FLGexe可從執行單元103傳送至解析單元102(及CPU101),亦可儲存於解析單元102(及CPU101)可接入之暫存器中。例如,執行中旗標FLGexe為1位元或2位元之信號。於執行中旗標FLGexe為開啟狀態之情形時,執行中旗標FLGexe具有第3值。於執行中旗標FLGexe為關閉狀態之情形時,執行中旗標FLGexe具有與第3值不同之第4值。再者,於FW更新模式Sq1時及常規指令模式Sq0時,執行單元103j將執行中旗標設定為關閉狀態(第4值)。
如此,本實施方式中,根據識別旗標FLG,即便主機指令HCMD為FW更新指令,記憶體系統1(例如處理器100)亦會辨識應執行之動作序列為指令序列模式Sq2。例如,與主機指令HCMD對應之記憶體系統1內之動作模式係藉由識別旗標FLG之確認,從FW更新模式Sq1變更為指令序列模式Sq2。
<Q38、Q39、Q29> 指令序列模式Sq2下,執行單元103接入資料緩衝區122之指令序列檔案IPFflg<1>,將該檔案IPFflg<1>內之複數個指令SCMD中之1個傳送至解析單元102(Q38)。
解析單元102獲取指令序列檔案IPFflg<1>之第1指令SCMD<0>。指令序列模式Sq2下,第1指令SCMD<0>由執行單元103輸入至解析單元102。
如上所述,指令序列檔案IPFflg<1>之複數個指令SCMD之執行順序係於指令序列檔案IPFflg<1>產生時設定。因此,執行單元103可按照預先設定之執行順序,將複數個指令中之1個傳送至解析單元102。
例如,指令序列檔案IPFflg<1>之複數個指令SCMD按照該檔案IPFflg<1>內之指令SCMD之排列順序,儲存於資料緩衝區122之隊列(或堆疊)內。或者,於資料內,按照指令之執行順序記載複數個指令之編碼。
如此,複數個指令SCMD按照由主機裝置5(主機處理器50)決定之執行順序,供給至解析單元102。
再者,指令序列檔案IPFflg<1>內之複數個指令SCMD亦可不經由執行單元103,而由解析單元102根據指令序列模式Sq2之執行偵測(例如開啟狀態之執行中旗標FLGexe),獲取檔案IPFflg<1>內之指令SCMD。
解析單元102對所獲取之指令SCMD進行解析(Q39)。
解析單元102基於指令SCMD之解析結果,對執行單元103指示與指令對應之處理及(或)動作(Q40)。
執行單元103執行與第1指令SCMD<0>對應之處理及動作(Q41)。例如,執行單元103根據第1指令SCMD接入工作記憶體105、快閃記憶體20或資料緩衝區122(Qa、Qb、Qc)。
執行單元103完成與第1指令SCMD<0>對應之處理及動作。執行單元103將與第1指令SCMD<0>之完成對應之應答RES1儲存於工作記憶體105(Q42)。
再者,於將應答RES1保存至工作記憶體105時,可用示出指令SCMD<0>與應答RES1之對應關係之方式,給應答RES1附加識別編號,或將應答RES1儲存至與工作記憶體105內之指令SCMD<0>建立關聯之位址內。
執行單元103亦可對解析單元102通知與第1指令對應之處理及動作完成。亦可基於CPU101之時間計數器(未圖示)之管理,管理各指令SCMD之執行時間。
藉此,解析單元102可於與某指令對應之處理完成後,獲取資料緩衝區122內之其他指令SCMD。
<Q43、Q44、Q45、Q46> 與第1指令對應之處理及動作完成後,執行單元103將繼第1指令SCMD<0>之後執行之第2指令SCMD<1>從資料緩衝區122傳送至解析單元102(Q43)。藉此,將第2指令SCMD輸入至解析單元102。
解析單元102執行第2指令之解析處理(Q44)。解析單元102將基於指令SCMD<1>之解析結果之指示傳送至執行單元103(Q45)。
執行單元103基於來自解析單元102之指示,執行與第2指令SCMD<1>對應之處理及動作(Q46)。如上所述,執行單元103適當接入資料緩衝區122、工作記憶體105或快閃記憶體20。
執行單元103於與第2指令SCMD<1>對應之處理及動作完成時,將與第2指令之完成對應之應答RES2儲存至工作記憶體105(Q47)。
之後,對指令序列檔案IPFflg<1>內之複數個指令SCMD之全部執行與Q38~Q47之處理及動作實質上相同之處理及動作。
如此,以特定之順序執行輸入檔案IPF內之複數個指令SCMD。
再者,當於指令序列模式Sq2下,指令SCMD之處理及動作未於對時間計數器設定之時間內完成時,可對應答RES1、RES2附加表示執行錯誤之資訊,亦可將表示執行錯誤之應答於指令序列模式Sq2之執行中通知給主機裝置5。當於指令序列模式下,因執行逾時等而導致發生執行錯誤時,可使指令序列模式Sq2之執行中斷或結束。
<Q48> 當指令序列檔案IPFflg<1>內之複數個指令SCMD全部執行完成時,執行單元103將與指令序列模式Sq2對應之應答RESsq傳輸至主機裝置5。
主機裝置5接收應答RESsq。
藉此,主機裝置5偵測到指令序列檔案IPFflg<1>內之複數個指令SCMD之處理及動作完成。主機裝置5可獲取應答RESsq中包含之指令序列模式Sq2之處理結果(例如日誌資料)。
當於指令序列模式Sq2下,指令SCMD發生執行錯誤時,記憶體系統1可將指令序列模式Sq2之執行錯誤以應答RESsq之形式傳輸至主機裝置5。
再者,各指令SCMD之應答RES1、RES2可不儲存至工作記憶體105,而於各指令SCMD之執行完成時點傳輸至主機裝置5。
又,主機裝置5可從記憶體系統1內讀出工作記憶體105內之應答RES1、RES2。
如此,即便來自主機裝置5之主機指令HCMD為FW更新指令,本實施方式之記憶體系統1亦可基於輸入檔案IPF內之識別旗標FLG,實現與韌體更新不同之動作序列(本實施方式中為指令序列模式Sq2)之執行。
如上所述,本實施方式之記憶體系統之指令序列模式Sq2結束。
(b-2)處理流程 參照圖9,對本實施方式之記憶體系統之處理流程進行說明。
圖9係用以說明本實施方式之記憶體系統之處理流程之流程圖。此處,為了說明本實施方式之記憶體系統之處理流程,適當使用圖1至圖8、及圖9。
如下所述,本實施方式之記憶體系統1執行上述複數個動作序列。
<S0> 於本實施方式之記憶體系統1開啟之情形時,記憶體系統1使韌體啟動。與韌體相關之各種資訊被從NAND快閃記憶體(FW插槽)20讀出至記憶體控制器10之處理器100。韌體之命令碼儲存於處理器100內之命令碼記憶體104內。
記憶體系統1內,處理器100利用CPU101、解析單元102及執行單元103,控制記憶體控制器10之各種內部處理、及快閃記憶體20之各種處理及動作。
處理器100中,CPU101確認有無基於解析單元102之解析結果之動作指示。
於無來自解析單元102之指示時(S0為否(No))、記憶體系統1(記憶體控制器10)成為待機狀態(或內部處理狀態)。
於某時點,主機裝置5將主機指令集傳送至本實施方式之記憶體系統1。
本實施方式之記憶體系統1接收主機指令集。於記憶體控制器10內,CPU101將主機指令集內之主機指令HCMD儲存於指令緩衝區121。CPU101將輸入檔案IPF儲存於資料緩衝區122。
解析單元102對從指令緩衝區121輸入之主機指令HCMD進行解析(解碼)。於處理器100內,解析單元102藉由CPU101之控制,將與主機指令之解析結果相應之指示傳送至執行單元103。
<S1、S2> 於針對執行單元103存在來自解析單元102之指示時(S0為是(Yes)),CPU101(或執行單元103)確認來自解析單元102之指示之內容(S1)。
CPU101(或執行單元103)判定來自解析單元102之指示是否為韌體更新(S2)。
<S3a、S3b、…、S3x> 於來自解析單元102之指示並非韌體更新時(S2為否),執行單元103執行與來自解析單元102之指示“X1”、“X2”、…、“Xx”對應之各種處理(及動作)。
於應執行之動作序列為常規指令模式Sq0之情形時,如上述圖6所示,執行單元103基於指示“X1”、“X2”、…、“Xx”,執行各種處理。
<S4> 於執行單元103完成與來自解析單元102之指示對應之各種處理及動作後,CPU101(或執行單元103)確認及判定執行中旗標(FLGexe)是否為開啟狀態。
如上所述,執行中旗標FLGexe係表示記憶體系統1內應執行之動作序列是否為指令序列模式Sq2之內部資訊。
於應執行之動作序列並非指令序列模式Sq2之情形時,執行中旗標為關閉狀態。
於執行中旗標為關閉狀態時(執行中旗標為第4值之情形時),記憶體系統1內之處理進入S9。再者,執行中旗標為開啟狀態時之記憶體系統1內之處理如下所述。
<S9> 於執行中旗標為關閉狀態時(S4為否),CPU101利用執行單元103,將針對主機指令之應答傳輸至主機裝置5。
主機裝置5基於應答,偵測到記憶體系統1之與主機指令HCMD對應之序列已完成。例如,主機裝置5可將表示序列完成之通知(資訊)傳輸至伺服器900。
之後,記憶體系統1內之處理進入處理Z(即,處理S0)。
<S10、S11> 於來自解析單元102之指示為韌體更新時(S2為是),CPU101(或執行單元103)確認輸入檔案IPF之識別旗標FLG(S10)。例如,執行單元103藉由CPU101之控制,接入資料緩衝區122,確認與指示(主機指令HCMD)對應之輸入檔案IPF內之識別旗標FLG之狀態(即旗標值)。
執行單元103判定識別旗標FLG是否示出指令序列檔案(S11)。
<S12> 於識別旗標FLG未示出輸入檔案IPF為指令序列檔案時(S11為否),如上述圖7所示,執行單元103根據FW更新模式Sq1之動作序列,使用輸入檔案(此處為FW更新檔案IPFflg<0>),執行用於韌體更新之各種處理及動作。
執行單元103使用資料緩衝區122內之FW更新檔案IPFflg<0>,進行韌體驗證及韌體儲存(非揮發化)。
藉此,命令碼記憶體104內之命令碼被覆寫為基於FW更新檔案之新的命令碼。
如此,記憶體系統1內之韌體更新完成。
之後,記憶體系統1基於已更新的韌體,執行各種動作。
<S9> 韌體更新後,CPU101利用執行單元103,將針對FW更新指令之應答傳送至主機裝置5。之後,記憶體系統1內之內部處理進入處理Z(即,處理S0)。
主機裝置5接收來自記憶體系統1(執行單元103)之應答。例如,主機裝置5可根據應答,將韌體更新完成通知給伺服器。
<S20> 於識別旗標FLG表示輸入檔案IPF為指令序列檔案時(S11為是),執行單元103藉由上述CPU101之控制,執行指令序列模式Sq2之各種處理。
執行單元103將執行中旗標設定為開啟狀態。例如,執行中旗標之值從第4值改變為第3值。
<S21> 處理器100中,執行單元103(或CPU101)確認作為輸入檔案IPF之指令序列檔案IPFflg<1>之指令(表示應執行之指令之資料)是否存在於資料緩衝區122。
<S22> 於資料緩衝區122內存在1個以上之指令時(S21為是),執行單元103(或CPU101)將複數個指令SCMD中之1個指令傳輸至解析單元102。
如上所述,指令序列檔案IPFflg<0>之複數個指令SCMD之執行順序係預先設定。例如,複數個指令於資料緩衝區122之隊列內按規定之順序記憶,或,利用資料示出執行順序。因此,從資料緩衝區122對解析單元102傳輸指令SCMD時,基於指令SCMD之執行順序,將1個指令SCMD傳輸至解析單元102。
藉此,於指令序列模式Sq2開始時,將指令序列檔案IPFflg<1>內之複數個指令SCMD中之、指令序列中最初應執行之指令SCMD1供給至解析單元102。
記憶體系統1內之處理進入處理Z(即,處理S0)。
<S0、S1、S2> 指令序列模式Sq2下,解析單元102對藉由S22供給之指令SCMD進行解析。解析單元102基於解析結果,輸出指令SCMD之執行指示。
當存在與指令SCMD對應之來自解析單元102之指示時(S0為是),執行單元103判定來自解析單元102之指示是否為韌體更新指示(S1、S2)。
此處,於指令序列模式Sq2之執行中(執行中旗標為開啟狀態之情形時),來自解析單元102之指示係基於指令序列檔案IPFflg<1>內之指令SCMD之指示,與基於FW更新指令之指示不同。
因此,S22之後之記憶體系統1內之處理從S2之處理進入S3(S3a、S3b、…S2x)之處理。
<S3、S4> 於指令序列模式Sq2之執行中,如上述圖9所示,執行單元103執行與來自解析單元102之指示(解析結果)對應之處理及動作(S3)。
CPU101(或執行單元103)於處理及動作完成後,判定執行中旗標FLGexe是否為開啟狀態(S4)。
如上(處理S20)所述,於執行指令序列模式Sq2時,執行中旗標被設定為開啟狀態。
因此,於指令序列模式Sq2時,記憶體系統1內之處理從處理S4進入處理S23。
<S23> 當執行中旗標FLGexe為開啟狀態時(S4為是),執行單元103如上述圖9所示,將與所執行之處理及動作(指令)相關之應答保存於工作記憶體105中。
將應答保存至工作記憶體105內之後,執行單元103判定資料緩衝區122內是否存在指令(S21)。當資料緩衝區122內存在(殘存)指令序列模式Sq2中應執行之指令時(S21為是),與上述處理同樣,記憶體系統1內之處理進入處理Z,執行處理S0、S1、S2、S3、S4、S23。
關於指令序列檔案IPFflg<1>內之複數個指令,於保存與第1個指令對應之應答後,CPU101、解析單元102及執行單元103基於指令之執行順序,執行與複數個指令中應第2個執行之指令SCMD2相關之處理及動作。
藉由處理器100內之CPU101、解析單元102及執行單元103反覆執行此種處理,直至指令序列檔案IPFflg<1>內之指令全部執行完成為止。
<S24> 當資料緩衝區122內不存在(殘存)指令序列模式Sq2中應執行之指令時(S11為否),表示指令序列模式Sq2中應執行之全部指令執行完成。
該情形時,執行單元103將與指令序列模式Sq2相關之執行中旗標設定為關閉狀態。例如,執行中旗標FLGexe之值從第3值改變為第4值。
之後,執行單元103將與指令序列模式Sq2之執行相關之1個以上之應答RESsq傳送至主機裝置(S9)。
藉此,記憶體系統1可將指令序列模式Sq2下執行之複數個指令之處理結果(例如日誌)提供給主機裝置5。
應答傳輸後,如上所述,記憶體系統1內之處理進入處理Z。
如上所述,本實施方式之記憶體系統1可根據來自主機裝置5之指令及輸入檔案,基於記憶體系統1中應用之各種旗標FLG、FLGexe,執行複數個動作序列。
(c)彙總 記憶體系統有時會按照規定之順序執行複數個指令,以便解析記憶體系統之異常(不良、缺陷)、變更記憶體系統之設定,等等。
當為了執行某動作序列而按照規定順序執行複數個指令時,可能會因記憶體系統之用戶方之處理,導致產生指令之執行順序錯誤、指令執行遺漏、及(或)應使用之資料錯誤等動作序列之執行錯誤。
當使用特殊之軟體或特殊之指令執行包含應按照規定之順序執行之複數個指令之動作序列時,特殊之軟體(例如橋接韌體)及特殊之指令於用戶之使用環境上可能不會進行所期望之處理及動作。
例如,當藉由橋接韌體執行包含複數個指令之動作序列之情形時,橋接韌體可能無法以與記憶體系統中使用之韌體相同之方式,執行複數個指令。因此,為了驗證橋接韌體之處理及動作,將會產生成本及時間。
例如,當藉由特殊之指令執行包含複數個指令之動作序列時,該特殊之指令可能會不受記憶體系統(主機裝置或快閃記憶體)支持。
本實施方式之記憶體系統1基於作為通用指令之韌體更新指令,執行包含複數個指令之動作序列。
用於韌體更新之指令大致被所有記憶體系統(或主機裝置)支持。因此,大致所有記憶體系統均具有用於韌體更新之功能。
基於依據記憶體系統中使用之介面規格(及通信協議)之標準之統一順序,執行韌體更新。
藉此,本實施方式之記憶體系統1可不使用特殊之指令及特殊之軟體,而基於已設定之執行順序,執行與複數個指令對應之處理及動作。
本實施方式之記憶體系統1使用包含識別旗標之檔案(資料)執行包含與韌體更新指令對應之複數個指令之動作序列。
包含識別旗標之檔案包含應執行之複數個指令(及表示複數個指令之執行順序之資訊)。
識別旗標表示應根據韌體更新指令執行之動作為韌體更新,抑或檔案內之複數個指令之執行。
藉此,本實施方式之記憶體系統1於接收韌體更新指令時,可不進行複雜之解析,而判別複數個動作序列中應執行之1個動作序列。
包含識別旗標之檔案例如由主機裝置或伺服器創建,提供給記憶體系統。例如,識別旗標由主機裝置或伺服器附加。
如此,本實施方式之記憶體系統1可不產生過多成本及時間,且不發生記憶體系統之過多之規格變更,而基於規定之執行順序連續地執行與複數個指令對應之處理及動作。
因此,本實施方式之記憶體系統1可抑制發生動作序列之執行錯誤。
本實施方式之主機裝置5及伺服器900如上所述,可創建及提供包含更新指令及識別旗標之檔案。藉此,本實施方式之主機裝置及伺服器900可減少記憶體系統中之動作序列之執行錯誤。
如上所述,本實施方式之記憶體系統1可提高記憶體系統之功能(及品質、特性、可靠性等)。
(2)第2實施方式 參照圖10,對第2實施方式之記憶體系統進行說明。
如上所述,第1實施方式之記憶體系統1可使用指令序列模式Sq2,按照規定之順序執行記憶體系統1之內部處理。記憶體系統1之各種設定可藉由指令序列模式Sq2來變更。
例如,於將記憶體系統1之內部狀態設定為各種程式及應用之安裝前狀態(例如從工廠出廠時之狀態)之情形時,有時會使用用戶難以獲得及(或)利用之特殊指令(例如非公開指令)。
使用非公開指令之處理及動作之執行順序可能會變得複雜。
如下所述,藉由執行使用了包含複數個非公開指令之輸入檔案IPF之指令序列模式Sq2,可抑制記憶體系統1之設定變更失敗。
圖10係用以說明本實施方式之記憶體系統之指令序列模式之序列。此處,亦適當參照上述圖1至圖9。
再者,基於上述圖9所示之處理流程,控制本實施方式之記憶體系統所能執行之複數個動作序列。
<Q30a、Q31a> 如圖10所示,主機裝置5將韌體更新指令HCMDfwup及指令序列檔案IPFflg<1>傳送至本實施方式之記憶體系統。藉由電源接通時之韌體讀出,將記憶體系統1設定為可執行圖9之處理流程之狀態。
指令序列檔案IPFflg<1>包含識別旗標FLG及1個以上之指令SCMDx、參數及設定資訊等各種資料DT。
識別旗標FLG具有表示指令序列檔案(執行指令序列模式Sq2)之值(例如第2值)。
各指令SCMDx包含非公開指令(例如廠商專用之指令)。指令SCMDx係用以進行下述等操作中之1個之指令,上述操作係指:測試模式或除錯模式之執行、內部指標之刪除、記憶體系統內之資料(例如RAM110、工作記憶體105及(或)快閃記憶體20之資料)相關之檔案之形成(記憶體轉儲)、記憶體系統之再啟動、記憶體系統內之日誌獲取、記憶體系統內之資訊抹除及記憶體系統之設定初始化。
例如,可按照規定之順序執行複數個指令SCMDx之方式,於指令序列檔案IPFflg<1>內形成包含複數個指令SCMDx之1個以上之群組CG。
例如,包含非公開指令之指令序列檔案IPFflg<1>係藉由主機裝置5之處理Qx或伺服器900之處理Qz創建。於創建伺服器900指令序列檔案IPFflg<1>時,伺服器900將所創建之指令序列檔案IPFflg<1>提供給主機裝置5(資訊通信裝置800)。
本實施方式之記憶體系統1接收FW更新指令HCMDfwup及作為輸入檔案IP之指令序列檔案IPFflg<1>。FW更新指令HCMDfwup被供給至指令緩衝區121內。指令序列檔案IPFflg<1>被供給至資料緩衝區122。
<Q32~Q47> 之後,於與上述圖8及圖9之處理同樣,記憶體系統1接收到FW更新指令之情形時,根據解析單元102之FW更新指令之指示,執行單元103開始各種處理及動作(Q33~Q35)。
根據韌體更新之指示(圖9之S0~S2),如圖9之S10,執行單元103對資料緩衝區122內之輸入檔案IPF之識別旗標FLG進行確認(Q36)。
當識別旗標FLG具有表示指令序列檔案IPFflg<1>之值時(圖9之S11為是),執行單元103(或CPU101)藉由指令序列模式Sq2,執行使用指令序列檔案內之指令及資料之各種處理及動作。
如圖9之S20,基於識別旗標FLG之確認結果,執行單元103將執行中旗標設定為開啟狀態(F1)。
如圖9之S0~S4、S21~S24,解析單元102及執行單元103按照所設定之順序依次執行指令序列檔案IPFflg<1>內之複數個指令SCMDx(或包含複數個指令SCMDx之群組CG)。(Q38~Q47)
處理器100中,CPU101、解析單元102及執行單元103反覆執行上述動作,直至指令序列檔案IPFflg<1>內之複數個指令SCMDx全部執行完成為止。
<Q48、Q80、Q81> 於指令序列檔案之全部指令執行完成後,執行單元103輸出應答RESsq(或工作記憶體105內之複數個應答)。應答RESsq從記憶體系統1傳輸至主機裝置5。
於執行指令序列模式Sq2時之應答之傳輸中,執行單元103(或CPU101)可將工作記憶體105內保存之複數個應答(與於指令序列模式Sq2下執行之複數個指令SCMD分別對應之應答)全部傳送至主機裝置5(Q80)。執行單元103(或CPU101)可基於工作記憶體105內保存之複數個應答而產生1個應答。
主機裝置5對來自記憶體系統1之應答RESsq(及資料)進行解析。
根據應答RESsq,主機裝置5可偵測使用指令序列檔案之動作序列之執行結果。例如,主機裝置5可偵測到記憶體系統1內之狀態被設定為所期望之狀態(例如從工廠出廠時之狀態)。
再者,當於指令序列模式Sq2下產生指令之執行錯誤時,主機裝置5可根據應答RES來偵測指令序列檔案IPFflg<1>之指令SCMDx之執行錯誤。
主機裝置5亦可將來自記憶體系統1之應答RESsq或來自工作記憶體105之複數個應答進一步傳輸至伺服器900(Q81)。
如上所述,本實施方式之記憶體系統1可藉由指令序列模式Sq2,使用包含識別旗標FLG之指令序列檔案IPFflg<1>,執行記憶體系統1之設定變更。
如上所述,第2實施方式之記憶體系統可提高記憶體系統之功能(及品質、特性、可靠性等)。
(3)第3實施方式 參照圖11,對第3實施方式之記憶體系統進行說明。
當用戶(用戶端)使用記憶體系統1時記憶體系統1發生異常時,為了消除異常,有時會執行記憶體系統1之動作狀況(日誌)分析。
記憶體系統1之日誌獲取包含如上所述之用戶難以獲取及利用之指令之執行、及按照特定順序之各種處理。
如下所述,本實施方式之記憶體系統1可藉由指令序列模式Sq2,獲取作為導致記憶體系統1異常之原因之資訊。
本實施方式之記憶體系統1可基於所獲取之資訊,消除記憶體系統1之異常。
圖11係用以說明本實施方式之記憶體系統1之指令序列模式之序列。此處,亦適當參照上述圖1至圖10。
<Q30a、Q31a> 如圖11所示,與圖10之例同樣,主機裝置5將韌體更新指令HCMDfwup及指令序列檔案IPF傳送至本實施方式之記憶體系統1。
指令序列檔案IPFflg<1>包含識別旗標FLG<1>及1個以上之指令(例如廠商所使用之非公開指令)SCMDx。
亦能以按規定順序執行複數個指令SCMDx之方式,使複數個指令SCMDx於指令序列檔案IPFflg<1>內群組化。指令序列檔案IPFflg<1>係由主機裝置5或伺服器900創建。
與上述實施方式同樣,本實施方式之記憶體系統1接收FW更新指令HCMDfwup及指令序列檔案IPF。
<Q32~Q47> 與上述實施方式同樣,當記憶體系統1接收到FW更新指令HCMDfwup時,根據解析單元102之FW更新指令之指示(圖9之S0~S2),執行單元103開始各種處理及動作(Q33~Q35)。
如圖9之S10,執行單元103對資料緩衝區122內之輸入檔案IPF之識別旗標FLG進行確認(Q36)。
當識別旗標FLG具有表示指令序列檔案IPFflg<1>之值時(圖9之S11為是),執行單元103(或CPU101)藉由指令序列模式Sq2,執行使用指令序列檔案IPFflg<1>內之指令SCMDx及資料DT之各種處理及動作。
如圖9之S20,基於識別旗標FLG之確認結果,執行單元103將執行中旗標設定為開啟狀態(F1)。
本實施方式中,解析單元102及執行單元103按照所設定之順序執行複數個指令SCMDx(Q38~Q47)。
處理器100中,CPU101、解析單元102及執行單元103反覆執行上述動作,直至指令序列檔案IPF內之複數個指令SCMDx全部執行完成為止。
<Q48> 於指令序列檔案IPFflg<1>之全部指令SCMDx執行完成後,執行單元103輸出應答RESsq。藉此,將與韌體更新指令HCMDfwup(指令序列模式Sq2)對應之應答RESsq從記憶體系統1傳輸至主機裝置5。
根據應答RES,主機裝置5可偵測指令序列檔案IPFflg<1>之執行結果。
例如,應答RESsq包含表示指令序列檔案IPFflg<1>執行前或指令序列檔案執行中之記憶體系統1內之各種處理及動作之結果之資訊(日誌資料)、及(或)表示指令序列檔案IPFflg<1>之指令執行結果之資訊。
藉此,主機裝置5可藉由指令序列模式Sq2獲取記憶體系統1之日誌資料。
<Q90、Q91、92> 主機裝置5基於應答RESsq及所獲取之日誌資料,對記憶體系統1之狀態進行解析。
主機裝置5可藉由日誌資料之分析處理Q90,驗證記憶體系統1之異常(例如系統錯誤)之原因。
藉此,主機裝置5可形成用以消除異常之資料(例如更新程式或補丁檔案)DTz。
再者,伺服器900亦可執行用以分析日誌資料及驗證記憶體系統1之異常之各種處理Q91。該情形時,主機裝置5將包含日誌資料之檔案經由網路傳輸至伺服器900。
藉此,伺服器900可藉由處理Q91,形成用以消除異常之資料DTz。
伺服器900可藉由處理Q92,將所形成之資料DTz提供給主機裝置5及記憶體系統1。
伺服器900可基於藉由執行指令序列檔案而獲得之資料,將與異常相關之資訊提供給主機裝置5(主機裝置5或記憶體系統1之用戶)。
<Q95> 主機裝置5使用資料DTz,消除記憶體系統1之異常。
例如,主機裝置5將包含指令SCMD、識別旗標FLG<1>及更新資料DTz之指令序列檔案IPF傳送至記憶體系統1。記憶體系統1基於指令序列模式Sq2,執行使用更新資料DTz之處理。記憶體系統1將更新資料DTz之處理結果作為應答(未圖示)傳送至主機裝置5。主機裝置5接收該應答。
結果,記憶體系統1內之異常被消除。
如上所述,本實施方式之記憶體系統1可藉由指令序列模式Sq2,基於指令序列檔案,獲取記憶體系統1內之各種處理及動作之日誌。
基於所獲取之日誌之分析結果,能消除記憶體系統1內之異常。
因此,第3實施方式之記憶體系統1可提高記憶體系統1之功能(及品質、特性、可靠性等)。
(4)其他 亦可藉由程式來執行上述實施方式中已說明之包含圖6至圖8之複數個處理之圖9之處理流程。
例如,將記載著與圖6至圖9之各處理對應之程式碼之程式(軟體)儲存至記錄媒體中。將包含該程式之記錄媒體安裝到硬體中。於硬體上執行記錄媒體內之程式。
再者,本實施方式之記憶體系統1中使用之程式可經由比如網際網路或企業內部網路這樣之網路,提供給其他硬體。
如此,本實施方式之記憶體系統1之控制方法能以記錄媒體中記憶之程式之形式執行。
再者,上述實施方式中,示出執行上述各種處理及動作之裝置(系統)為記憶體系統之例。但,上述實施方式亦可應用於除記憶體系統以外之系統及(或裝置)。例如,本實施方式之系統1能以資訊通信系統、網路系統之形式實現。
對本發明之若干個實施方式進行了說明,但該等實施方式係作為示例提出,並非意圖限定發明之範圍。該等新穎之實施方式能以其他各種方式實施,且可於不脫離發明主旨之範圍內進行各種省略、替換、變更。該等實施方式或其變化包含於發明之範圍或主旨中,並且包含於權利要求書所記載之發明及其均等之範圍內。
[相關申請案] 本申請案享有以日本專利申請案2021-45469號(申請日:2021年3月19日)為基礎申請案之優先權。本申請案藉由參照該基礎申請案而包含基礎申請案之全部內容。
1:記憶體系統 5:主機裝置 10:記憶體控制器 20:快閃記憶體 50:處理器
51:RAM
53, 54:介面電路
91:處理器
92:RAM
93:儲存裝置
94:介面電路
100:處理器 101:CPU 102:解析單元 103:執行單元 104:命令碼記憶體 105:工作記憶體 110:RAM 120:緩衝電路 121:指令緩衝區 122:資料緩衝區 130:主機介面電路
140:介面電路(NAND介面電路)
200:記憶胞陣列
201:指令暫存器
202:位址暫存器
203:定序器
204:驅動電路
205:列控制電路
206:感測放大器電路
207:介面電路
501:指令產生單元
502:檔案產生單元
800:資訊通信裝置
900:伺服器
ADD:位址資訊
ALE:位址鎖存賦能信號
BL0~BLm-1:位元線
BLK:區塊
CG:群組
CLE:指令鎖存賦能信號
CMD:控制器指令
CU:胞單元 DT:寫入資料
DTz:資料
FLG<0>:識別旗標 FLG<1>:識別旗標 FLGexe:旗標
FWa:更新前之韌體
FWb:更新後之韌體
HCMD:主機指令
HCMDfwup:更新指令
HCMDnom:常規指令
IO:輸入輸出信號
IPF:輸入檔案
IPFflg<0>:指令序列檔案
IPFflg<1>:指令序列檔案
IPFnom:輸入檔案
MC0~MCn-1:記憶胞 NS:NAND串
NTW:網路
RBn:就緒/忙碌信號
Ren:讀取賦能信號
RES1:應答
RES2:應答
RESsq:應答
SCMD, SCMD<0>, SCMD<1>, SCMD<k-1>:指令 SCMDx:指令
SGD:選擇閘極線 SGS:選擇閘極線
SL:源極線 Sq0:動作序列
Sq1:動作序列
Sq2:動作序列
ST1, ST2:選擇電晶體 SU0, SU1, SU2, SU3:串單元
Wen:寫入賦能信號
WL0~WLn-1:字元線
圖1係用以說明第1實施方式之記憶體系統之圖。 圖2係表示第1實施方式之記憶體系統之構成例之圖。 圖3係表示圖中所示之記憶胞陣列之電路構成之一例的圖。 圖4係用以說明第1實施方式之記憶體系統之概念之圖。 圖5係用以說明第1實施方式之記憶體系統之動作例之圖。 圖6係表示第1實施方式之記憶體系統之動作例之順序圖。 圖7係表示第1實施方式之記憶體系統之動作例之順序圖。 圖8係表示第1實施方式之記憶體系統之動作例之順序圖。 圖9係第1實施方式之記憶體系統之動作例之流程圖。 圖10係表示第2實施方式之記憶體系統之動作例之順序圖。 圖11係表示第3實施方式之記憶體系統之動作例之順序圖。
1:記憶體系統 5:主機裝置 900:伺服器
DT:寫入資料
FLG<0>:識別旗標 FLG<1>:識別旗標 FLGexe:旗標
HCMDfwup:更新指令
HCMDnom:常規指令
IPFflg<0>:指令序列檔案
IPFflg<1>:指令序列檔案
IPFnom:輸入檔案
SCMD<0>, SCMD<1>, SCMD<k-1>:指令 Sq0:動作序列
Sq1:動作序列
Sq2:動作序列
Claims (9)
- 一種記憶體系統,其具備:記憶體裝置;及 控制器,其可與主機連接,根據韌體來控制上述記憶體裝置; 上述控制器 從上述主機接收與上述記憶體裝置之動作控制相關之第1指令、及包含第1旗標之第1檔案, 執行與上述第1檔案之內容對應之序列,於執行上述序列後,將包含上述序列之完成通知之應答發送至上述主機, 上述序列包含: 第1動作,其係於上述第1旗標具有第1值之情形時,執行上述韌體更新;或 第2動作,其係於上述第1旗標具有不同於上述第1值之第2值之情形時,依序執行上述第1檔案中包含之複數個第2指令。
- 如請求項1之記憶體系統,其中 上述控制器 於執行上述複數個第2指令之情形時,將表示上述複數個第2指令之執行狀態之第2旗標設定為第3值, 於上述複數個第2指令之執行完成之情形時,將上述第2旗標設定為與上述第3值不同之第4值。
- 如請求項1或2之記憶體系統,其中 上述控制器 於從上述主機接收到與上述記憶體裝置之動作控制相關之第3指令之情形時, 執行與上述第3指令對應之第2序列, 執行上述第2序列後,將包含上述第2序列之完成通知之第2應答發送至上述主機, 上述第2序列包含 向上述記憶體裝置寫入資料之第3動作、從上述記憶體裝置讀出資料之第4動作、從上述記憶體裝置抹除資料之第5動作中之至少1個動作。
- 如請求項1或2之記憶體系統,其中 上述複數個第2指令包含針對上述記憶體系統之用於除錯之指令、用於獲取日誌之指令、或用於初始化之指令中之任一個。
- 如請求項1或2之記憶體系統,其中 上述控制器包含處理器, 上述韌體由上述處理器執行。
- 一種記憶體系統之控制方法,該記憶體系統具備:記憶體裝置;及控制器,其可與主機連接,根據韌體來控制上述記憶體裝置;該記憶體系統之控制方法包含: 從上述主機接收與上述記憶體裝置之動作控制相關之第1指令、及包含第1旗標之第1檔案; 執行與上述第1檔案之內容對應之序列;及 於執行上述序列後,將包含上述序列之完成通知之應答發送至上述主機; 上述序列包含: 第1動作,其係於上述第1旗標具有第1值之情形時,執行上述韌體更新;或 第2動作,其係於上述第1旗標具有不同於上述第1值之第2值之情形時,依序執行上述第1檔案中包含之複數個第2指令。
- 如請求項6之記憶體系統之控制方法,其更包含: 於從上述主機接收到與上述記憶體裝置之動作控制相關之第3指令之情形時, 執行與上述第3指令對應之第2序列;及 於執行上述第2序列後,將包含上述第2序列之完成通知之第2應答發送至上述主機; 上述第2序列包含 向上述記憶體裝置寫入資料之第3動作、從上述記憶體裝置讀出資料之第4動作、及從上述記憶體裝置抹除資料之第5動作之至少1個動作。
- 如請求項6或7之記憶體系統之控制方法,其中 上述複數個第2指令包含針對上述記憶體系統之用於除錯之指令、用於獲取日誌之指令、或用於初始化之指令中之任一個。
- 一種主機裝置,其可與具備記憶體裝置之記憶體系統連接,且具備: 處理器,其產生與上述記憶體裝置之動作控制相關之第1指令、及包含第1旗標之第1檔案;及 介面電路,其將上述第1檔案及上述第1指令傳送至上述記憶體系統; 上述處理器 於使上述記憶體系統執行與上述記憶體系統之動作控制相關之韌體更新之情形時,將上述第1旗標設定為第1值, 於使上述記憶體系統依序執行上述第1檔案中包含之複數個第2指令之情形時,將上述第1旗標設定為不同於上述第1值之第2值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021045469A JP2022144449A (ja) | 2021-03-19 | 2021-03-19 | メモリシステム、メモリシステムの制御方法及びホストデバイス |
JP2021-045469 | 2021-03-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202238388A TW202238388A (zh) | 2022-10-01 |
TWI791254B true TWI791254B (zh) | 2023-02-01 |
Family
ID=83284726
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110128102A TWI791254B (zh) | 2021-03-19 | 2021-07-30 | 記憶體系統、記憶體系統之控制方法及主機裝置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220300202A1 (zh) |
JP (1) | JP2022144449A (zh) |
CN (1) | CN115114193A (zh) |
TW (1) | TWI791254B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117806893A (zh) * | 2024-02-29 | 2024-04-02 | 合肥康芯威存储技术有限公司 | 一种存储器件异常数据的处理方法及存储器件 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106033321A (zh) * | 2015-03-17 | 2016-10-19 | 群联电子股份有限公司 | 响应读取方法及数据传输系统 |
TW202101203A (zh) * | 2019-06-19 | 2021-01-01 | 日商鎧俠股份有限公司 | 記憶體系統、記憶體控制器及半導體記憶裝置 |
CN112506758A (zh) * | 2020-11-19 | 2021-03-16 | 宁畅信息产业(北京)有限公司 | 固件刷新方法、装置、计算机设备和存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1097385A (ja) * | 1996-09-19 | 1998-04-14 | Toshiba Corp | ディスク記録再生装置及び同装置に適用するインターフェース制御装置 |
US7685374B2 (en) * | 2007-07-26 | 2010-03-23 | Siliconsystems, Inc. | Multi-interface and multi-bus structured solid-state storage subsystem |
US8918554B2 (en) * | 2011-10-06 | 2014-12-23 | Marvell International Ltd. | Method and apparatus for effectively increasing a command queue length for accessing storage |
US9448742B2 (en) * | 2014-03-27 | 2016-09-20 | Western Digital Technologies, Inc. | Communication between a host and a secondary storage device |
TWI551991B (zh) * | 2015-11-20 | 2016-10-01 | 群聯電子股份有限公司 | 記憶體管理方法與系統及其記憶體儲存裝置 |
-
2021
- 2021-03-19 JP JP2021045469A patent/JP2022144449A/ja active Pending
- 2021-06-16 US US17/349,128 patent/US20220300202A1/en not_active Abandoned
- 2021-07-30 TW TW110128102A patent/TWI791254B/zh active
- 2021-08-06 CN CN202110901252.1A patent/CN115114193A/zh not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106033321A (zh) * | 2015-03-17 | 2016-10-19 | 群联电子股份有限公司 | 响应读取方法及数据传输系统 |
TW202101203A (zh) * | 2019-06-19 | 2021-01-01 | 日商鎧俠股份有限公司 | 記憶體系統、記憶體控制器及半導體記憶裝置 |
CN112506758A (zh) * | 2020-11-19 | 2021-03-16 | 宁畅信息产业(北京)有限公司 | 固件刷新方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20220300202A1 (en) | 2022-09-22 |
CN115114193A (zh) | 2022-09-27 |
JP2022144449A (ja) | 2022-10-03 |
TW202238388A (zh) | 2022-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180342305A1 (en) | Storage device and method of operating the storage device | |
US11532372B2 (en) | Remote SSD debug via host/serial interface and method of executing the same | |
KR102564774B1 (ko) | 메모리 시스템 혹은 데이터 처리 시스템의 동작을 진단하는 장치 혹은 진단을 통해 신뢰성을 확보하는 방법 | |
KR20180110412A (ko) | 메모리 시스템 및 이의 동작 방법 | |
KR20200011831A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR20150029402A (ko) | 데이터 저장 시스템 및 그것의 동작 방법 | |
KR20190110243A (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
KR20200008476A (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
US11282584B2 (en) | Multi-chip package and method of testing the same | |
US11481153B2 (en) | Data storage device and operating method thereof | |
KR20200088564A (ko) | 컨트롤러, 컨트롤러의 동작방법 및 메모리 시스템 | |
US11093369B2 (en) | Reconfigurable simulation system and method for testing firmware of storage | |
KR20200061217A (ko) | 전자 장치 및 그것의 동작 방법 | |
TWI791254B (zh) | 記憶體系統、記憶體系統之控制方法及主機裝置 | |
US11036493B2 (en) | Memory system and operating method thereof | |
KR102469098B1 (ko) | 불휘발성 메모리 장치, 불휘발성 메모리 장치의 동작 방법 및 이를 포함하는 데이터 저장 장치 | |
US10921988B2 (en) | System and method for discovering parallelism of memory devices | |
KR20190102790A (ko) | 컨트롤러 및 그 동작 방법과, 이를 포함하는 메모리 시스템 | |
CN112540869A (zh) | 存储器控制器、存储装置和存储装置的操作方法 | |
US12045482B2 (en) | Wordline leakage test management | |
JP2020154477A (ja) | 半導体記憶装置の模擬方法および模擬装置 | |
KR20190136596A (ko) | 메모리 장치 및 메모리 장치의 동작방법 | |
KR20200005229A (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
KR20190037659A (ko) | 불휘발성 메모리 장치, 불휘발성 메모리 장치의 동작 방법 및 불휘발성 메모리 장치를 포함하는 데이터 저장 장치 | |
KR20190007665A (ko) | 컨트롤러 및 컨트롤러의 동작방법 |