TWI498726B - 資訊處理機器、控制資訊處理機器之方法、儲存控制工具之非過渡性記錄媒體、主機裝置、儲存性能評估工具之非過渡性記錄媒體及外部記憶裝置用之性能評估方法 - Google Patents

資訊處理機器、控制資訊處理機器之方法、儲存控制工具之非過渡性記錄媒體、主機裝置、儲存性能評估工具之非過渡性記錄媒體及外部記憶裝置用之性能評估方法 Download PDF

Info

Publication number
TWI498726B
TWI498726B TW101129619A TW101129619A TWI498726B TW I498726 B TWI498726 B TW I498726B TW 101129619 A TW101129619 A TW 101129619A TW 101129619 A TW101129619 A TW 101129619A TW I498726 B TWI498726 B TW I498726B
Authority
TW
Taiwan
Prior art keywords
information
memory device
ssd
data
host
Prior art date
Application number
TW101129619A
Other languages
English (en)
Other versions
TW201324140A (zh
Inventor
Daisuke Hashimoto
Original Assignee
Toshiba Kk
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
Priority claimed from JP2011179890A external-priority patent/JP5611909B2/ja
Priority claimed from JP2011186542A external-priority patent/JP2013047913A/ja
Application filed by Toshiba Kk filed Critical Toshiba Kk
Publication of TW201324140A publication Critical patent/TW201324140A/zh
Application granted granted Critical
Publication of TWI498726B publication Critical patent/TWI498726B/zh

Links

Classifications

    • 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/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3485Performance evaluation by tracing or monitoring for I/O devices
    • 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/10Address translation
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/0653Monitoring storage devices or systems
    • 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
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1461Backup scheduling policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash 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/65Details of virtual memory and virtual address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)

Description

資訊處理機器、控制資訊處理機器之方法、儲存控制工具之非過渡性記錄媒體、主機裝置、儲存性能評估工具之非過渡性記錄媒體及外部記憶裝置用之性能評估方法
本發明實施例大體上係關於一種資訊處理機器、一種用於控制資訊處理機器之方法、一種儲存控制工具之非過渡性記錄媒體、一種主機裝置、一種儲存性能評估工具之非過渡性記錄媒體,及一種用於外部記憶裝置之性能評估方法。
相關申請案之交叉參考
本申請案係基於2011年8月29日申請之日本專利申請案第2011-186542號,且主張該案之優先權的權利;該案之所有整個內容以引用之方式併入本文中。又,本申請案係基於2011年8月19日申請之先前日本專利申請案第2011-179890號,且主張該案之優先權的權利;該案之整個內容以引用的方式併入本文中。
隨著外部記憶裝置用於電腦系統中,關注上面掛載(mount)有諸如NAND型快閃記憶體之非揮發性半導體記憶體的SSD(固態磁碟機)。與磁碟裝置相比較,快閃記憶體具有諸如速度高且重量輕之優點。SSD在其中包括複數個快閃記憶體晶片、根據來自主機機器之請求執行每一快閃記憶體晶片之讀取/寫入控制的控制器、用於執行每一快閃記憶體晶片與主機機器之間的資料傳送之緩衝記憶體、電源電路、至主機機器之連接介面,及其類似者。
根據實施例,一種資訊處理機器包含一主機裝置及一非揮發性記憶裝置。該非揮發性記憶裝置經組態以儲存在該主機裝置上執行之正常作業系統,該主機裝置能夠在該正常作業系統之控制下將讀取命令及寫入命令中之兩者發出至該非揮發性記憶裝置。該非揮發性記憶裝置經組態以儲存在該主機裝置上執行之緊急軟體,該主機裝置能夠在該緊急軟體之控制下僅將讀取命令及寫入命令中之讀取命令發出至該非揮發性記憶裝置。該非揮發性記憶裝置經組態以儲存在使該資訊處理機器開機時在該主機裝置上執行之啟動載入器,該主機裝置能夠藉由使用該啟動載入器來起始該正常作業系統。該主機裝置經組態以比較自該非揮發性記憶裝置獲得之統計資訊與臨限值。該主機裝置經組態以在該統計資訊已超過該臨限值時重寫該啟動載入器,使得在使該資訊處理機器開機時起始該緊急軟體。
根據實施例,一種資訊處理機器包括:一主機機器,一性能評估工具安裝於其中;一外部記憶裝置,其包括一可讀取且可寫入之非揮發性記憶體;及一介面單元,其連接該主機機器與該外部記憶裝置。該性能評估工具包括一存取日誌獲得單元及一性能日誌獲得單元。該存取日誌獲得單元在OS或不同於安裝於該主機機器中之該性能評估工具之軟體通常存取該外部記憶裝置時自OS獲得包括指令及回應之命令,且順序地記錄該命令作為存取日誌。該性能日誌獲得單元藉由使用由該存取日誌獲得單元記錄之該存取日誌計算關於該外部記憶裝置之性能資訊,且記錄此計算 結果作為性能資訊日誌。
非揮發性半導體記憶體包括類似於NAND型快閃記憶體的抹除/寫入/讀取之單位固定的記憶體,諸如在儲存資料之狀況下在以區塊為單位抹除資料一次之後執行寫入的記憶體及以頁面為單位執行寫入/讀取之記憶體。另一方面,藉由諸如個人電腦之主機機器進行之資料至諸如硬碟之次要記憶裝置的寫入/讀取之單位稱作邏輯磁區。邏輯磁區係獨立於半導體記憶裝置中之抹除/寫入/讀取之單位來定義。舉例而言,在一些狀況下,非揮發性半導體記憶體中之抹除/寫入/讀取之單位大於主機機器中之寫入/讀取之單位。
此外,當個人電腦之非揮發性半導體記憶裝置係由快閃記憶體組成時,在一些狀況下,若程式化錯誤、抹除錯誤、不可校正之ECC錯誤或其類似者在該等區塊上發生時,一些區塊及一些區域不應用作記憶體區域。此等區塊稱作「損壞區塊」(「缺陷區塊」),且此等區域稱作「損壞區域」(「缺陷區域」),或在一些狀況下可稱作「損壞叢集」。當此等缺陷區塊或缺陷區域之數目超過上限時,不可暫存且不可再映射新缺陷區塊或缺陷區域,因此不可能確保儲存於緩衝記憶體(快取記憶體)中之資料及針對寫入請求之資料寫入快閃記憶體中。因此,當缺陷區塊之數目或缺陷區域之數目超過預定值時,非揮發性記憶裝置即刻進入資料不可寫入狀態而不管快閃記憶體仍具有自由空間(數個良好區塊)的事實。
作為以上情形之解決方案,存在一種管理產生於NAND型快閃記憶體中之損壞區塊及損壞叢集的數目且在將資料自主機機器寫入至NAND型快閃記憶體時根據損壞區塊之數目及損壞叢集之數目切換操作模式。叢集為作為SSD中之邏輯位址之管理單位。叢集大小大達邏輯磁區大小之兩倍或更大自然數倍,且叢集位址由在次序上高於LBA之預定位元的位元串形成。
在此方法中,SSD之操作模式分為(例如)以下三種模式:
˙WB模式(寫回模式):用於將資料寫入快取記憶體中一次且根據預定條件清空至NAND型快閃記憶體之資料的正常操作模式。
˙WT模式(寫透模式):用於每次將在一個寫入請求中寫入快取記憶體中之資料寫入至NAND型快閃記憶體的操作模式。藉由每次將資料寫入至NAND型快閃記憶體來確保自主機寫入之資料為儘可能多的。當損壞叢集表或損壞區塊表中之剩餘條目的數目變為等於或小於預定數目時,SSD轉變至WT模式。
˙RO模式(唯讀模式):禁止伴有至NAND型快閃記憶體之寫入的所有處理之模式。將錯誤傳回至來自主機之所有寫入請求以禁止寫入,藉此當SSD接近其有效期限終止(SSD之有效期限終止)時確保已自主機寫入之資料儘可能地多。當損壞叢集表或損壞區塊表中之剩餘條目的數目變為等於或小於預定數目時,或當自由區塊變為不夠時, SSD轉變至RO模式。
在WB模式及WT模式中,SSD自主機接收讀取請求及寫入請求兩者,且執行處理。相比之下,在RO模式中,SSD在自主機接收到讀取請求後即執行處理,但回應於來自主機之寫入請求傳回錯誤而不執行處理。
當SSD連接至安裝有諸如Windows(註冊商標)之作業系統(OS)的主機時,主機將寫入請求傳輸至SSD,且在通常處理寫入請求時,主機將SSD辨識為可用外部記憶裝置。
另一方面,當已轉變至以上RO模式之SSD連接至安裝有Windows(註冊商標)之主機時,若主機將寫入請求傳輸至SSD,則SSD將錯誤傳回至主機,因此主機在一些狀況下不將SSD辨識為可用外部記憶裝置。因此,即使處於資料可讀取之RO模式的SSD連接至主機,仍存在不可自SSD讀取先前記錄之資料的可能性。
如上文所描述,當SSD已達到其有效期限終止或正接近其有效期限終止時,應禁止至SSD之寫入。然而,藉由安裝於電腦系統中之正常作業系統(OS),一些資料可在啟動時寫入至SSD,且對於使用者,一些資料可在背景程序中非預期地寫入至SSD。因此,當SSD已達到其有效期限終止或正接近其有效期限終止時,在正常OS安裝於電腦系統中之條件下,SSD之可靠性進一步降級且已寫入之資料可損毀。
因此,在本發明實施例中,當判定SSD已達到其有效期限終止時,重寫啟動載入器以在系統重新開機時使得能夠 啟動(例如)緊急OS(其為不對SSD 2執行寫入操作之緊急軟體),藉此防止SSD之可靠性降級及已寫入之資料的損毀。作為緊急OS,使用在啟動時僅執行對SSD之讀取操作且並不在背景中執行使用者非預期的對SSD之寫入的軟體。緊急軟體包括緊急作業系統。
自資訊處理機器發出至諸如硬碟及固態磁碟機(SSD)之外部記憶裝置的主要指令包括資料讀取指令及資料寫入指令。在資料讀取指令中,將包括關於外部記憶裝置中之邏輯位址(LBA:邏輯區塊定址)及資料長度(傳送長度、有效負載長度)之資訊的指令自資訊處理機器傳輸至外部記憶裝置,且外部記憶裝置之控制器回應於指令而自記錄媒體讀取藉由指令指定之資料,並將所讀取之資料傳回至資訊處理機器。在資料寫入指令中,將包括關於外部記憶裝置中之邏輯位址(LBA)及傳送長度之資訊的指令自資訊處理機器傳輸至外部記憶裝置,且當外部記憶裝置進入可寫入狀態時,資訊處理機器將資料傳輸至外部記憶裝置,且外部記憶裝置之控制器將所接收之資料寫入至記錄媒體作為具有藉由指令指定之LBA的資料。
用於量測外部記憶裝置之讀取及寫入性能的量測包括傳送資料速率、處理命令速率、回應時間、處理時間、相對分數及其類似者。
傳送資料速率為每單位時間傳送至外部記憶裝置及自外部記憶裝置傳送之資料量。舉例而言,對於資料讀取,若資訊處理機器每秒自外部記憶裝置接收平均250 MiB之資 料,則外部記憶裝置之用於讀取的傳送速率為250 MiB/s。
處理命令速率為每單位時間傳送至外部記憶裝置及自外部記憶裝置傳送之指令的數目。舉例而言,對於資料寫入,若資訊處理機器每秒完成至外部記憶裝置之平均100000個指令,則外部記憶裝置之用於讀取的傳送速率為100000 IOPS。
回應時間為自資訊處理機器將指令發送至外部記憶裝置時至完成關於指令之處理時的時間。在讀取命令之狀況下,回應時間為直至資訊處理機器回應於指令而接收到資料之時間,且在寫入指令之狀況下,回應時間為直至資訊處理機器自外部記憶裝置接收到對指令之完成回應的時間。舉例而言,在資料讀取指令中,若資訊處理機器需要10毫秒來完成回應於指令之資料接收,則外部記憶裝置之回應時間為10毫秒。
處理時間為在已啟動對資訊處理機器中之外部記憶裝置之特定應用程式或特定處理之後完成該特定應用程式或特定處理所需之時間。舉例而言,若需要50秒來將10十億位元組之檔案複製於外部記憶裝置中,則用於複製10十億位元組之檔案的處理時間為50秒。
相對分數為藉由在各種條件下對複數個分數(諸如,傳送資料速率、處理命令速率、回應時間及處理時間)進行加權且對該複數個分數執行加法、減法、乘法及除法而獲得的分數。
相對分數之實例包括以下指標:
˙PCMark05(商標)http://www.futuremark.com/
˙PCMark VANTAGE(商標)http://www.futuremark.com/
˙SYSmark 2007 Preview(商標)http://www.bapco.com/
量測外部記憶裝置之性能時的條件發生變化。主要條件中之一者為LBA之型樣,資料係自該LBA讀取(或資料係寫入至該LBA)。將型樣粗略地分類成兩種型樣,亦即,順序型樣及隨機型樣。
順序型樣為順序地提供連續LBA之存取型樣。具體而言,順序型樣為如下存取型樣:資訊處理機器將具有關於某一LBA之某一傳送長度的讀取指令(寫入指令)傳輸至外部記憶裝置,且接著將具有關於藉由將以上LBA遞增傳送長度獲得之某一LBA之某一傳送長度的讀取指令(寫入指令)傳輸至外部記憶裝置,且之後,資訊處理機器在使LBA遞增的同時重複讀取命令(寫入命令)。隨機型樣為順序地提供隨機之不連續LBA之存取型樣。
量測外部記憶裝置之性能時的其他條件包括:LBA之範圍(存取範圍),資料係自該範圍讀取(或資料係寫入至該範圍);執行讀取(寫入)時每命令之資料傳送長度(有效負載長度);在多執行緒狀況下執行讀取(寫入)時之執行緒數目;待讀取(寫入)之資料的內容;量測執行時間;及其類似者。
在如上存在許多指標及條件之外部記憶裝置的性能評估中,即使在相同指標及量測條件下,性能仍並非始終為相 同的。特別地,當外部記憶裝置為SSD時,SSD之性能很大程度上取決於邏輯-實體轉譯表之狀態,邏輯-實體轉譯表管理快閃記憶體(其為SSD之記錄媒體)中之實體位址與LBA之間的對應關係。此係因為,在SSD中,並不預先靜態地判定邏輯位址(LBA)與實體位址(NAND 10中之儲存位置)之間的關係,且使用在寫入資料時使實體位址與LBA動態地相關聯之邏輯-實體轉譯方法。舉例而言,當將覆寫同一LBA位址中之資料時,執行如下文所描述之操作。在有效資料儲存於邏輯位址A1中且區塊B1用作儲存區域之狀況下,當自資訊處理機器接收到覆寫邏輯位址A1之資料(具有區塊大小)的命令時,保留一個自由區塊(區塊B2)且將自資訊處理機器接收到之資料寫入該自由區塊中。此後,使邏輯位址A1與區塊B2相關聯。因此,區塊B2變為作用中區塊,且儲存於區塊B1中之資料變為無效的,因此區塊B1變為自由區塊。以此方式,在SSD中,待用作具有相同邏輯位址A1之資料的實際記錄區域之區塊針對每一寫入而改變。當選擇自由區塊時,通常執行耗損平均處理(wear leveling processing)以使抹除之次數(抹除計數)及抹除間隔在所有區塊間為大致相同的。
為了自量測結果消除外部記憶裝置之內部狀態之此等變化,例如,SNIA中存在量測之預調節標準:固態儲存器性能測試規範http://www.snia.org/。然而,使用者之SSD之內部狀態取決於使用者對SSD之使用、SSD連接至之電腦的硬體環境、在電腦上操作之軟體的類型、操作時間及 其類似者而變化,使得在根據以上標準執行之預調節之後SSD之內部狀態並不始終匹配當在藉由使用者實際操作各種應用程式之狀態下(在實際使用中時)使用者體驗SSD之性能時SSD之內部狀態。
使用者可藉由在實際使用中時由自身執行量測而不執行預調節來獲得其自身SSD之性能。因此,與標準化之均一方法相比較,使用者可獲得相對接近使用者體驗之性能的性能指標。然而,此方法具有以下問題。
如上文所描述,SSD之內部狀態瞬時地改變,且因此易受來自外部之存取影響。因此,量測自身影響SSD之內部狀態,使得內部狀態歸因於量測而偏離使用者實際使用時之內部狀態,且因此量測結果偏離使用者體驗之速度。舉例而言,當為了性能量測自身而自電腦進行對SSD之順序寫入存取時,作為寫入目標之LBA與快閃記憶體中實際寫入有資料之實體位址之間的對應關係反映於SSD中之邏輯-實體轉譯表中,使得SSD之內部狀態改變。此改變之內部狀態影響量測結果,使得SSD之最終所計算之性能偏離使用者實際體驗之性能。實務上,許多性能量測工具具有作為各種量測之前的預調節來對SSD執行若干十億位元組或更多資料之順序寫入的規範,因此藉由此等工具量測之性能實質上偏離使用者體驗之性能。
如上文所描述,在藉由典型性能量測工具進行之性能量測中,大量資料自電腦寫入至SSD,使得關於快閃記憶體(其為SSD之記錄媒體)之抹除計數增加。快閃記憶體之故 障率隨著抹除計數增加而增加,使得SSD之可靠性藉由性能量測而降級。因此,對於使用者而言,頻繁地監視SSD之性能並非較佳的,此係因為以上情形使SSD之可靠性降級加速。
如上文所描述,性能量測之軟體及條件發生變化。讀取/寫入、順序/隨機、存取範圍、有效負載長度及執行緒之數目藉由選擇軟體及條件來定義。在下文中,此等前述各者一般稱為工作負載。在性能量測時選擇之工作負載並不始終匹配當使用者正藉由各種應用程式操作SSD時出現在SSD中之工作負載(實際使用之工作負載)。對於使用者而言,藉由分析SSD與電腦之間的介面之協定來得到適於使用者之工作負載為困難的。
此外,存在基於關於外部記憶裝置之讀取及寫入之量監視外部記憶裝置之性能的軟體(參見監視外部記憶裝置之速度的軟體,http://www.forest.impress.co.jp/docs/review/20100222_350600.html及http://hansolav.net/gadgets/drivemeter/)。在此習知技術中,讀取傳送資料速率及寫入傳送資料速率定義如下。
(讀取傳送資料速率)=(量測週期期間讀取之資料量)/(量測時間長度)
(寫入傳送資料速率)=(量測週期期間寫入之資料量)/(量測時間長度)
然而,若軟體(例如)具有等待來自使用者之輸入的中斷或等待來自CPU之回應的中斷或對外部記憶裝置之存取期 間的其他硬體之中斷,則在量測週期期間讀取之資料量減小。傳送資料速率減小,此係因為量測時間之長度為恆定的。特別地,當使用者執行實質上不存取外部記憶裝置之應用程式時,或當資訊處理機器處於不執行應用程式之閒置狀態時,外部記憶裝置之傳送資料速率為零或極接近零之值,而不管外部記憶裝置之實際性能。傳送資料速率之值接近零並不意謂使用者體驗之外部記憶裝置的性能為不良的。該情形意謂藉由此習知技術獲得之性能易受除外部記憶裝置以外之外部因數影響,且難以據稱可獲得外部記憶裝置之性能及使用者體驗之外部記憶裝置的性能。
出於此等原因,難以據稱藉由當前性能量測工具進行之性能量測反映每一使用者在實際使用中時體驗之性能。此外,就外部記憶裝置之可靠性而言,在性能量測中執行額外寫入並非為較佳的。本發明實施例提供一種性能量測工具,該性能量測工具能夠即時地正確獲得使用者在實際使用時體驗之外部記憶裝置的性能而不影響外部記憶裝置之可靠性。
下文將詳細參看隨附圖式來解釋根據實施例之資訊處理機器、用於資訊處理機器之控制方法、控制工具、主機機器、儲存性能評估工具之非過渡性記錄媒體及用於外部記憶裝置之性能評估方法。本發明不限於此等實施例。
(第一實施例)
圖1說明第一實施例中之電腦系統之組態。電腦系統1包括作為非揮發性記憶裝置之SSD 2、主機機器3,及連接 SSD 2與主機機器3之記憶體介面19。在當前實施例中,將SSD(固態磁碟機)用作非揮發性記憶裝置,然而,例如,亦有可能使用其他非揮發性記憶裝置,諸如硬碟機、混合式磁碟機、SD卡、USB記憶體,及直接掛載於主機板上之NAND型快閃記憶體。此外,在當前實施例中,ATA(進階附接技術)介面用作介面19,然而,可使用其他介面,諸如USB(通用串列匯流排)、SAS(串列附接SCSI)、Thunderbolt(註冊商標)及PCI Express(快速周邊組件互連)。CPU(控制電路)4為主機機器3中之中央處理單元,且CPU 4執行主機機器3中之各種操作及控制。CPU 4經由南橋7執行對SSD 2及諸如DVD-ROM之光碟機10之控制。CPU 4經由北橋5執行對主記憶體6之控制。舉例而言,DRAM可用作主記憶體6。
使用者經由諸如鍵盤14及滑鼠15之輸入機器執行對主機機器3之控制,且經由USB(通用串列匯流排)控制器13及南橋7在CPU 4中處理來自鍵盤14及滑鼠15之信號。CPU 4經由北橋5及顯示控制器8將影像資料、文字資料及其類似者發送至顯示器(顯示機器)9。使用者可經由顯示器9查看來自主機機器3之影像資料、文字資料及其類似者。
CPU 4為經提供以用於控制電腦系統1之操作的處理器,且執行自SSD 2載入至主記憶體6中之作業系統(OS)100。此外,當光碟機10能夠對所載入之光碟執行讀取處理及寫入處理中之至少一者時,CPU 4執行該處理。此外,CPU 4執行儲存於ROM 11中之韌體。韌體可為儲存於BIOS(基 本輸入/輸出系統)-ROM 11中之系統BIOS,或可為儲存於ROM 11中之整合可延伸韌體介面韌體(UEFI韌體)。ROM 11中之韌體為用於控制電腦系統1中之硬體的程式。在此實施例中,系統BIOS用作儲存於ROM 11中之韌體。在此實施例中,OS 100可包括ROM 11中之韌體。在此狀況下,可自SSD 2且自ROM 11載入OS 100,或可自SSD 20且自ROM 11載入OS 100。
此外,CPU 4經由南橋7控制LAN(區域網路)控制器12。
北橋5為連接至CPU 4之區域匯流排的橋接器裝置。用於執行對主記憶體6之存取控制之記憶體控制器建置於北橋5中。此外,北橋5具有(例如)執行與顯示控制器8之通信的功能。
主記憶體6將程式及資料臨時儲存於其中,且充當CPU 4之工作區域。主記憶體6包括:儲存OS 100之記憶體區域6A,及儲存控制工具200之記憶體區域6B。如通常所知曉,OS為如下程式:藉由管理主機機器3之輸入/輸出機器並管理磁碟及記憶體來管理整個主機機器3(諸如,執行控制)以使軟體能夠使用主機機器3之硬體。儲存於ROM 11中之韌體可載入至區域6A,且可用作OS之部分。
顯示控制器8為用於控制電腦系統1之顯示器9的視訊再現控制器。南橋7為連接至CPU 4之區域匯流排的橋接器裝置。南橋7經由ATA介面19來控制SSD 2,SSD 2為用於儲存各種軟體及資料之記憶裝置。
電腦系統1以邏輯磁區為單位來存取SSD 2。寫入命令 (寫入請求)、讀取命令(讀取請求)、清空命令及其類似者經由ATA介面19輸入至SSD 2。舉例而言,描述於INCITS ACS-2中之「寫入DMA擴展區(35h)」及描述於INCITS ACS-2中之「寫入FPDMA佇列(61h)」可用作寫入命令。舉例而言,描述於INCITS ACS-2中之「讀取DMA擴展區(25h)」及描述於INCITS ACS-2中之「讀取FPDMA佇列(60h)」可用作讀取命令。舉例而言,描述於INCITS ACS-2中之「清空快取記憶體擴展區(EAh)」可用作清空命令。
南橋7具有執行對BIOS-ROM 11、光碟機10、LAN控制器12及USB控制器13之存取控制之功能。鍵盤14及滑鼠15連接至USB控制器13。
舉例而言,如圖2中所展示,當主機機器3之電源斷開時,控制工具200儲存於SSD 2之NAND型快閃記憶體(NAND記憶體)16中的區域16B中,且當主機3開機或程式啟動時,控制工具200自NAND記憶體16中之區域16B載入至主記憶體6之區域6B中。
舉例而言,如圖3中所展示,當複數個非揮發性記憶裝置連接至主機3時,SSD控制工具200可儲存於不同於SSD 2之非揮發性記憶裝置20中之區域20B中;且當主機機器3開機或程式啟動時,控制工具200可自區域20B載入至主記憶體6中之區域6B中。特別地,當非揮發性記憶裝置20用作用於儲存OS之系統磁碟機且SSD 2用作用於儲存諸如文獻、靜態影像資料及移動影像資料之使用者資料的資料磁碟機時,就將磁碟機2與磁碟機20之作用彼此清楚地區分 (諸如,在將系統磁碟機20用作用於主要儲存OS及應用程式之磁碟機且將資料磁碟機2用作用於儲存使用者資料之磁碟機的狀況下)而言,需要將控制工具儲存於作為系統磁碟機之非揮發性記憶裝置20中。
舉例而言,如圖4中所展示,當主機機器3之電源斷開時,控制工具200可儲存於主機機器3之ROM 11中的區域11B中;當主機3開機或程式啟動時,控制工具200自區域11B載入至主記憶體6中之區域6B中。
舉例而言,如圖5中所展示,當主機機器3之電源斷開時,控制工具200可儲存於主機機器3之ROM 11中的區域11B中;區域6B可映射於ROM 11之區域中且當主機3開機或程式啟動時,控制工具200可藉由CPU 4直接自區域11B執行而不將控制工具200載入至主記憶體6。
就節省用於設置控制工具200(例如,如圖2、圖3、圖4及圖5中所展示)所需之使用者人工而言,需要電腦系統1在控制工具200儲存於SSD 2、非揮發性記憶裝置20或ROM 11中之狀態下進行運輸,運達商店,且交付給使用者。另一方面,就使得使用者能夠選擇是否安裝控制工具且使得能夠將最新控制工具提供至使用者而言,需要藉由自WEB下載該控制工具200或自諸如DVD-ROM及USB記憶體之外部儲存媒體安裝該控制工具200而使該控制工具200能夠儲存於SSD 2、非揮發性記憶裝置20或ROM 11中。
圖6為自WEB進行下載之實例。控制工具200儲存於WEB伺服器21上之儲存媒體22中的區域22B中,且控制工具200 係(例如)經由LAN控制器12經由諸如網際網路、區域網路及無線LAN之網路而下載(或安裝)於SSD 2之NAND記憶體16中的區域16B中。在圖3之狀況下,控制工具200係下載或安裝於非揮發性記憶裝置20中之區域20B中。
圖7為自諸如DVD-ROM及CD-ROM之光學媒體進行安裝的實例。控制工具200儲存於諸如DVD-ROM及CD-ROM之光學媒體23中,且藉由將光學媒體23設置於光碟機10中經由光碟機10而安裝於SSD 2之NAND記憶體16中的區域16B(或區域20B)中。圖8為自USB記憶體進行安裝之實例。控制工具200儲存於USB記憶體24中之區域24B中,且藉由將USB記憶體24連接至USB控制器13經由USB控制器13而安裝於SSD 2之NAND記憶體16中的區域16B(或區域20B)中。顯然,可替代USB記憶體24使用諸如SD卡之其他外部記憶體。就易於供使用者使用而言,當運輸SSD 2並進行出售時,可能需要將光學媒體23或USB記憶體24作為配件與SSD 2包裝在一起。另一方面,光學媒體23或USB記憶體24可作為軟體產品單獨出售,或可作為附贈物附加至雜誌或書籍。
在當前實施例中,存在作為OS 100之兩種類型之OS,亦即,正常OS(第一作業系統)100A及緊急OS(第二作業系統)100B。正常OS 100A為在SSD 2之可靠性未降級時使用之作業系統。如上文所描述,藉由正常OS,一些資料可在啟動時寫入至SSD,且對於使用者,一些資料可在背景程序中非預期地寫入至SSD。如圖9中所展示,當主機機器3 之電源斷開時,正常OS 100A儲存於NAND記憶體16中之區域16D中。緊急OS 100B為在SSD 2之可靠性降級時使用之作業系統,且並不執行至SSD 2之寫入(寫入非支援的)。該情形意謂,緊急OS在啟動時僅執行對SSD之讀取操作,且並不在背景中執行使用者非預期的至SSD之寫入。當可靠性降級時,緊急OS 100B可能能夠執行至不同於SSD 2之非揮發性記憶裝置的寫入。此外,當資料之部分(諸如,關於緊急OS之系統資訊)需要寫入至SSD 2時,緊急OS 100B可例外地准許至SSD 2之資料寫入,然而,該資料之量需要充分小於NAND記憶體16之容量。為了防止使用者錯誤地傳輸寫入命令且防止將資料寫入至SSD 2,緊急OS 100B更需要禁止至SSD 2之正常寫入命令的執行,且當資料需要例外地寫入至SSD 2時,緊急OS 100B僅藉由使用特殊命令(諸如,INCITS ACS-2中描述之「SCT命令輸送」及對於供應商唯一之命令)的命令而准許至SSD 2之寫入。
如圖9中所展示,當主機機器3之電源斷開時,緊急OS 100B儲存於NAND記憶體16中之區域16E中。因為當SSD 2處於正常狀態下時不使用緊急OS 100B,所以在使用正常OS時,需要將區域16E設定為自主機機器3不可寫入以防止毀壞區域16E中之緊急OS資料。舉例而言,當正常OS 100A正操作時,LBA需要在SSD 2(稍後將描述)中之管理資訊中並不分配給區域16E,且在此狀況下,當需要操作緊急OS時,將LBA分配給區域16E。或者,當正常OS 100A正操作時,區域16E需要藉由正常OS 100A設定為寫入保護。
就在SSD 2之可靠性降級之狀態下儘可能多地減少對SSD 2之存取而言,儲存緊急OS 100B所在之區域16E中之資料的量需要顯著小於NAND記憶體16之容量。緊急OS 100B可為(例如)藉由定製諸如MS-DOS(商標)及Linux之OS 以禁止至SSD 2之寫入而獲得的OS,藉由將SSD 2之備份功能添加至OS而獲得的OS,或針對SSD 2唯一地開發之軟體。
當電腦系統1開機時,諸如當接通電腦系統1之電源或使OS重新啟動時,主機機器3讀取寫入NAND記憶體16中之區域16C中的啟動載入器300,且基於關於啟動載入器300之資訊判定將正常OS 100A及緊急OS 100B中之哪一者載入至主機機器3中之區域6A中。為了進行以上操作,指示待讀取之OS之LBA的OS指標資訊OSPT儲存於啟動載入器300中。當讀取啟動載入器300時,CPU 4自藉由OS指標資訊OSPT指示之LBA作為開始點執行讀取,且將所讀取之資料寫入至主記憶體6中之區域6A。啟動載入器300經組態以載入初始狀態下之正常OS 100A。在SSD 2之可靠性降級時,儲存於主記憶體6中之區域6B中的控制工具200藉由重寫儲存於NAND記憶體16中之區域16C中的啟動載入器300來重建構啟動載入器300以讀取緊急OS 100B。舉例而言,作為啟動載入器300,可使用主開機記錄(MBR)或可使用GUID分割表(GPT)。
當複數個非揮發性記憶裝置連接至主機機器3時,OS可儲存於不同於SSD 2之非揮發性記憶裝置20中。舉例而言,如圖12中所展示,正常OS及緊急OS兩者可儲存於非揮發性記憶裝置20中,正常OS可儲存於SSD 2中且緊急OS可儲存於非揮發性記憶裝置20中,或正常OS可儲存於非揮發性記憶裝置20中且緊急OS可儲存於SSD 2中。特別地,當非揮發性記憶裝置20用作用於儲存OS之系統磁碟機且SSD 2用作用於儲存諸如文獻、靜態影像資料及移動影像資料之使用者資料的資料磁碟機時,就將磁碟機2與磁碟機20之作用彼此清楚地區分(諸如,在將系統磁碟機20用作用於主要儲存OS及應用程式之磁碟機且將資料磁碟機2用作用於儲存使用者資料之磁碟機的狀況下)而言,需要將正常OS儲存於作為系統磁碟機之非揮發性記憶裝置20中。緊急OS更需要亦儲存於作為系統磁碟機之非揮發性記憶裝置20中。
如圖10中所展示,控制工具200可儲存於ROM 11中。舉例而言,BIOS-ROM 11具有BIOS區域11D及儲存有緊急韌體(緊急BIOS)之緊急BIOS區域11E,以及儲存有控制工具200之區域11C。當主機3開機時,BIOS 11D及控制工具200啟動,且BIOS 11D將儲存於NAND快閃記憶體16中之OSPT載入至主記憶體6中。儲存於NAND快閃記憶體中之OSPT較佳地最初儲存正常OS區域16D之開始LBA位址。控制工具200自SSD 2獲取統計資訊,且基於統計資訊判定將正常OS 100A及緊急OS 100B中之哪一者載入,且將選定 OS LBA指標寫入至主記憶體6中之OSPT 301中。舉例而言,可藉由使用以下命令來讀出統計資訊:在INCITS ACS-2中描述之「智慧讀取資料(B0h(D0h))」、在INCITS ACS-2中描述之「識別裝置(ECh)」、在ACS-2中描述之「SCT命令輸送」,或對於供應商唯一之命令。BIOS 11D將NAND快閃記憶體16中之啟動載入器300載入至區域6A中,且啟動載入器讀取主記憶體6中之OSPT 301,且啟動載入器基於主記憶體6中之OSPT 301將正常OS 100A及緊急OS 100B中之一者載入至主機機器3中之區域6A中。
如圖11中所展示,ROM 11中之韌體可具有作為正常OS之正常韌體及作為緊急OS之緊急韌體。舉例而言,如圖11中所描述,BIOS-ROM 11具有儲存有正常韌體(正常BIOS)之正常BIOS區域11D、儲存有緊急韌體(緊急BIOS)之緊急BIOS區域11E,及儲存初始程式載入程式(IPL程式)之初始程式載入區域(IPL區域)11C,該初始程式載入程式將儲存於BIOS-ROM 11 100A中之BIOS韌體載入至主機機器3中之區域6A中。控制工具200包括於IPL 300中。當IPL 300啟動時,控制工具200自SSD 2獲取統計資訊,且基於統計資訊判定將正常BIOS 100A及緊急BIOS 100B中之哪一者載入至區域6A中,且將選定BIOS位址指標寫入至類似於OS之OSPT 301的BIOSPT 301中。舉例而言,可藉由使用以下命令來讀出統計資訊:在INCITS ACS-2中描述之「智慧讀取資料(B0h(D0h))」、在INCITS ACS-2中描述之「識別裝置(ECh)」、在ACS-2中描述之「SCT命令輸送」,或對 於供應商唯一之命令。IPL 300基於儲存於BIOSPT 301中之BIOS位址指標將正常BIOS 100A及緊急BIOS 100B中之一者載入至主機機器3中之區域6A中。正常BIOS 100A為當SSD 2之可靠性未降級時使用之BIOS。藉由正常BIOS,一些資料可在啟動時寫入至SSD,且對於使用者,一些資料可在背景程序中非預期地寫入至SSD。緊急BIOS 100B為在SSD 2之可靠性降級時使用之BIOS,且並不執行至SSD 2之寫入(寫入非支援的)。該情形意謂,緊急BIOS在啟動時僅執行對SSD之讀取操作,且並不在背景中執行使用者非預期的至SSD之寫入。當可靠性降級時,緊急BIOS 100B可能能夠執行至不同於SSD 2之非揮發性記憶裝置的寫入。為了防止使用者錯誤地傳輸寫入命令且防止將資料寫入至SSD 2,緊急BIOS 100B可禁止至SSD 2之正常寫入命令的執行,且當資料需要例外地寫入至SSD 2時,緊急BIOS 100B僅藉由使用特殊命令(諸如,INCITS ACS-2中描述之「SCT命令輸送」及對於供應商唯一之命令)的命令而准許至SSD 2之寫入。ROM 11中之韌體可統一為包括正常韌體及緊急韌體之功能的單一韌體,且該韌體可在藉由控制工具200排他性地選擇之正常韌體模式或緊急韌體模式中的一者下操作。
就節省用於設置緊急OS(例如,如圖9、圖10、圖11及圖12中所展示)所需之使用者人工而言,需要電腦系統1在緊急OS儲存於SSD 2、非揮發性記憶裝置20或ROM 11中之狀態下進行運輸,運達商店,且交付給使用者。另一方面, 就使得使用者能夠選擇是否安裝緊急OS且使得能夠將最新緊急OS提供至使用者而言,需要藉由自WEB下載該緊急OS或自諸如DVD-ROM及USB記憶體之外部儲存媒體安裝該緊急OS而使該緊急OS能夠儲存於SSD 2、非揮發性記憶裝置20或ROM 11中。
圖13為自WEB進行下載之實例。緊急OS儲存於WEB伺服器21上之儲存媒體22中的區域22E中,且緊急OS(例如)經由LAN控制器12經由諸如網際網路、區域網路及無線LAN之網路而下載或安裝於SSD 2之NAND記憶體16中的區域16E中。在圖12之狀況下,緊急OS係下載或安裝於非揮發性記憶裝置20中之區域20E中。
圖14為自諸如DVD-ROM及CD-ROM之光學媒體進行安裝的實例。緊急OS儲存於諸如DVD-ROM及CD-ROM之光學媒體23的區域23E中,且藉由將光學媒體23設置於光碟機10中經由光碟機10而安裝於SSD 2之NAND記憶體16中的區域16E(或區域20E)中。圖15為自USB記憶體進行安裝之實例。緊急OS儲存於USB記憶體24中之區域24E中,且藉由將USB記憶體24連接至USB控制器13經由USB控制器13而安裝於SSD 2之NAND記憶體16中的區域16E(或區域20E)中。顯然,可替代USB記憶體24使用諸如SD卡之其他外部記憶體。就易於供使用者使用而言,當運輸SSD 2並進行出售時,可能需要將光學媒體23或USB記憶體24作為配件與SSD 2包裝在一起。另一方面,光學媒體23或USB記憶體24可作為軟體產品單獨出售,或可作為附贈物附加 至雜誌或書籍。就易於安裝而言,緊急OS及控制工具需要儲存於同一外部記憶體(諸如,光學媒體23及USB記憶體24)中。
圖16說明電腦系統1在軟體階層之階層式結構。載入至主記憶體6中之控制工具200及其他軟體(不同於控制工具200之軟體)通常並不直接與SSD 2通信,而是經由載入至主記憶體6中之OS 100與SSD 2通信。當控制工具200及其他軟體需要將諸如讀取請求及寫入請求之指令傳輸至SSD 2時,控制工具200及其他軟體以檔案為單位將存取請求傳輸至OS 100。OS 100參考包括於OS 100中之檔案管理表,指定SSD 2中對應於特定檔案(針對該檔案產生存取請求)之邏輯位址(LBA),且將對於介面而言唯一之包括對應LBA的指令傳輸至SSD 2。當自SSD 2傳回回應時,OS 100指定在轉譯後對於介面而言唯一之回應將傳回至的軟體,且將該回應傳回至所指定之軟體。
接下來,將解釋電腦系統1之組態實例。可將電腦系統1實現為(例如)桌上型電腦或筆記型可攜式電腦。圖17為桌上型電腦(其為電腦系統1)之示意圖。桌上型電腦包括電腦主體31、顯示器9、鍵盤14、滑鼠15及其類似者。電腦主體31包括上面掛載有主要硬體之主機板30、SSD 2、電源單元32及其類似者。SSD 2經由SATA纜線實體連接至主機板30,且經由掛載於主機板30上之南橋7電連接至掛載於主機板上之CPU 4。電源單元32產生用於桌上型電腦中之各種電源,且經由電源纜線將電源供應至主機板30、SSD 2及其類似者。
圖18為可攜式電腦(其為電腦系統1)之示意圖。可攜式電腦係由電腦主體34、顯示單元35及其類似者組成。由(例如)LCD(液晶顯示器)組成之顯示機器9建置於顯示單元35中。顯示單元35附接至電腦主體34,從而可在曝露此主體34之上表面的開放位置與覆蓋主體34之上表面的閉合位置之間旋轉。主體34具有薄盒狀外殼,且電源開關36、鍵盤14、觸控板33及其類似者配置於主體34之上表面上。此外,以類似於桌上型電腦之方式,主體34亦包括SSD 2、主機板、電源單元及其類似者。
本發明應用至之資訊處理機器可為不同於電腦系統1之以下機器:諸如靜態相機及視訊攝影機之成像機器、平板電腦、智慧型電話、遊戲機、車輛導航系統,或其類似者。
接下來,將解釋為SSD 2之主要組件的NAND記憶體16。圖19說明組態NAND記憶體16之NAND記憶體晶片80的內部組態實例。NAND記憶體16係由一或多個NAND記憶體晶片80組成。NAND記憶體晶片80包括以矩陣方式排列之複數個記憶體晶胞的記憶體晶胞陣列。組態記憶體晶胞陣列之記憶體電晶體各自係由MOSFET(金氧半導體場效電晶體)組成,該MOSFET具有形成於半導體基板上之堆疊閘極結構。堆疊閘極結構包括:電荷儲存層(浮動閘極電極),其形成於半導體基板上,其間具有閘極介電薄膜;及控制閘極電極,其形成於浮動閘極電極上,其間具有閘 極間介電薄膜。在記憶體晶胞電晶體中,臨限電壓根據儲存於浮動閘極電極中之電子之數目而改變,且資料係根據此臨限電壓之差而儲存。在當前實施例中,將解釋每一記憶體晶胞使用藉由使用上部頁面及下部頁面來每晶胞儲存2個位元之4值儲存系統的寫入系統之狀況,然而,即使在每一記憶體晶胞使用以下寫入系統之狀況下,本發明之本質仍不改變:藉由使用單一頁面來每晶胞儲存1個位元之2值儲存系統的寫入系統;藉由使用上部頁面、中間頁面及下部頁面來每晶胞儲存3個位元之8值儲存系統的寫入系統;或每晶胞儲存4個位元或4個以上位元之多值儲存系統的寫入系統。此外,記憶體晶胞電晶體並不限於具有包括浮動閘極電極之結構,且可具有諸如MONOS(金屬氧化氮氧化矽)類型之結構,在該結構中,可藉由將電子捕獲於作為電荷儲存層之氮化物界面中來調整臨限電壓。MONOS類型之記憶體晶胞電晶體可經組態以儲存1個位元,或可經組態而以類似於MOSFET類型之記憶體晶胞電晶體的方式儲存多個值。此外,非揮發性儲存媒體可為記憶體晶胞如在以下公開案中所描述般三維配置之半導體儲存媒體:美國專利申請公開案第2010 0172189號及美國專利申請公開案第2010 0254191號。非揮發性儲存媒體亦可為其他種類之非揮發性儲存媒體,諸如ReRAM、硬碟機之磁碟盤(platter)。
如圖19中所展示,NAND記憶體晶片80包括藉由以矩陣方式配置儲存資料之記憶體晶胞而形成的記憶體晶胞陣列 82。記憶體晶胞陣列82包括複數條位元線、複數條字線及一條共同源極線,且記憶體晶胞(資料可電重寫於其中)以矩陣方式配置於記憶體晶胞陣列82中位元線與字線之相交處。用於控制位元線之位元線控制電路83及用於控制字線之字線控制電路85連接至此記憶體晶胞陣列82。該情形意謂,位元線控制電路83經由位元線讀取記憶體晶胞陣列82中之記憶體晶胞中的資料,且藉由經由位元線將寫入控制電壓施加至記憶體晶胞陣列82中之記憶體晶胞來將資料寫入至記憶體晶胞。
行解碼器84、資料輸入/輸出緩衝器89及資料輸入/輸出端子88連接至位元線控制電路83。自記憶體晶胞陣列82讀取之記憶體晶胞中的資料經由位元線控制電路83及資料輸入/輸出緩衝器89而自資料輸入/輸出端子88輸出至外部。此外,自外部輸入至資料輸入/輸出端子88之寫入資料經由資料輸入/輸出緩衝器89藉由行解碼器84輸入至位元線控制電路83,且寫入至指定記憶體晶胞。
此外,記憶體晶胞陣列82、位元線控制電路83、行解碼器84、資料輸入/輸出緩衝器89及字線控制電路85連接至控制電路86。控制電路86根據輸入至控制信號輸入端子87之控制信號來產生用於控制記憶體晶胞陣列82、位元線控制電路83、行解碼器84、資料輸入/輸出緩衝器89及字線控制電路85之控制信號及控制電壓。在NAND記憶體晶片80中,除記憶體晶胞陣列82以外之電路部分稱作NAND控制器(NANDC)81。
圖20說明展示於圖21中之記憶體晶胞陣列82的組態。記憶體晶胞陣列82為NAND晶胞類型之記憶體晶胞陣列,且包括複數個NAND晶胞。一個NAND晶胞包括由串列連接之記憶體晶胞形成的記憶體串MS及連接至該記憶體串MS之兩個末端之選擇閘極S1及S2。選擇閘極S1連接至位元線BL,且選擇閘極S2連接至源極線SRC。配置於同一列上之記憶體晶胞MC的控制閘極共同連接至字線WL0至WLm-1中之任一者。此外,第一選擇閘極S1共同連接至選擇線SGD,且第二選擇閘極S2共同連接至選擇線SGS。
記憶體晶胞陣列82包括一或多個平面,且一平面包括複數個區塊。每一區塊係由複數個NAND晶胞組成,且資料係以區塊為單位來抹除。
此外,連接至一條字線之複數個記憶體晶胞形成一個實體磁區。針對每一實體磁區寫入及讀取資料(此實體磁區無關於稍後將描述之LBA之邏輯磁區)。在每晶胞2個位元之寫入系統(4值)之狀況下,例如,將2個頁面之資料儲存於一個實體磁區中。另一方面,在每晶胞1個位元之寫入系統(2值)之狀況下,例如,將1個頁面之資料儲存於一個實體磁區中,且在每晶胞3個位元之寫入系統(8值)之狀況下,例如,將3個頁面之資料儲存於一個實體磁區中。
在讀取操作、程式化驗證操作及程式化操作中,根據自稍後將描述之SSDC 41接收之實體位址來選擇一條字線且選擇一個實體磁區。藉由實體位址執行切換此實體磁區中之頁面。在當前實施例中,NAND記憶體16使用每晶胞2個 位元之寫入系統,使得SSDC 41判定2個頁面(亦即,上部頁面(Upper Page)及下部頁面(Lower Page))作為實體頁面分配給實體磁區,且將實體位址分配給所有頁面。
每晶胞儲存2個位元之4值NAND記憶體經組態,使得一個記憶體晶胞中之臨限電壓可獲得四種類型之分佈。圖21說明儲存於4值NAND晶胞類型之快閃記憶體中之記憶體晶胞中的4值資料(資料「11」、「01」、「10」及「00」)之2個位元與記憶體晶胞之臨限電壓分佈之間的關係。在圖21中,VA1 為在讀取實體磁區中之2個資料片段狀況下施加至選定字線之電壓,其中僅下部頁面處於已寫入狀態且上部頁面處於未寫入狀態,且VA1V 指示在對A1執行寫入之狀況下經施加以用於檢查寫入是否已完成的驗證電壓。
此外,VA2 、VB2 及VC2 為在實體磁區中讀取4個資料片段狀況下施加至選定字線之電壓,其中下部頁面及上部頁面處於已寫入狀態,且VA2V 、VB2V 及VC2V 指示在針對每一臨限電壓分佈執行寫入之狀況下經施加以用於檢查寫入是否已完成的驗證電壓。此外,Vread1及Vread2指示在讀取資料之狀況下施加至NAND晶胞中之未選定記憶體晶胞且使未選定記憶體晶胞顯現為導電的而不管所儲存之資料的讀取電壓。此外,Vev1及Vev2為在抹除記憶體晶胞中之資料的狀況下施加至記憶體晶胞以用於檢查抹除是否已完成的抹除驗證電壓且具有負值。考慮到相鄰記憶體晶胞之干擾效應而判定抹除驗證電壓之量值。以上電壓之間的量值關係如下。
Vev1<VA1 <VA1V <Vread1
Vev2<VA2 <VA2V <VB2 <VB2V <VC2 <VC2V <Vread2
抹除驗證電壓Vev1、Vev2及Vev3如上文所描述採用負值,然而,在實際抹除驗證操作中施加至記憶體晶胞MC之控制閘極的電壓並非負值,而是為零或正值。該情形意謂,在實際抹除驗證操作中,將正電壓施加至記憶體晶胞MC之背閘極,且將為零或小於背閘極電壓之正值的電壓施加至記憶體晶胞MC之控制閘極。換言之,抹除驗證電壓VeV1、VeV2及VeV3為具有等效於負值之值的電壓。
在區塊抹除之後在記憶體晶胞之臨限電壓分佈ER中,其上限亦為負值,且分配有資料「11」。具有資料「11」、「01」、「10」及「00」(其中下部頁面及上部頁面處於已寫入狀態)之記憶體晶胞分別具有正臨限電壓分佈ER2、A2、B2及C2(A2、B2及C2之下限亦為正值),且資料「01」之臨限電壓分佈A2具有最低電壓值,資料「00」之臨限電壓分佈C2具有最高電壓值,且各種臨限電壓分佈之電壓值具有A2<B2<C2的關係。具有資料「10」(其中下部頁面處於已寫入狀態且上部頁面處於未寫入狀態)之記憶體晶胞具有正臨限電壓分佈A1(A1之下限亦為正值)。展示於圖21中之臨限電壓分佈僅為實例,且本發明並不限於此情形。舉例而言,在圖21中,解釋所有臨限電壓分佈A2、B2及C2為正臨限電壓分佈,然而,臨限電壓分佈A2為負電壓分佈且臨限電壓分佈B2及C2為正電壓分佈的狀況亦包括於本發明之範圍內。此外,即使臨限電壓 分佈ER1及ER2採用正值,本發明仍不限於此情形。此外,在當前實施例中,對應關係係使得ER2、A2、B2及C2上之資料分別對應於「11」、「01」、「10」及「00」,然而,例如,可使用其他對應關係,諸如「11」、「01」、「00」及「10」。
一個記憶體晶胞中之2位元資料係由下部頁面資料及上部頁面資料組成,且下部頁面資料及上部頁面資料係藉由不同寫入操作(亦即,兩個寫入操作)而寫入記憶體晶胞中。當將資料表達為「*@」時,*表示上部頁面資料,且@表示下部頁面資料。
首先,將參看圖21中之第一至第二階段來解釋至下部頁面資料之寫入。所有記憶體晶胞具有已抹除狀態下之臨限電壓分佈ER,且儲存資料「11」。如圖21中所展示,當執行至下部頁面資料之寫入時,根據下部頁面資料之值(「1」或「0」)將記憶體晶胞之臨限電壓分佈ER分成兩個臨限電壓分佈(ER1及A1)。當下部頁面資料之值為「1」時,維持已抹除狀態下之臨限電壓分佈ER,使得ER1等於ER,然而,ER1可大於ER。
另一方面,當下部頁面資料之值為「0」時,高電場施加至記憶體晶胞之穿隧氧化物膜以將電子注入至浮動閘極電極中,藉此使記憶體晶胞之臨限電壓Vth增加預定量。具體而言,設定驗證電位VA1V ,且重複寫入操作,直至該等電壓使臨限電壓變為等於或大於此驗證電壓VA1V 。因此,記憶體晶胞改變至已寫入狀態(資料「10」)。若即使 將寫入操作重複預定數目次而電壓仍未達到臨限電壓(或若未達到臨限電壓之記憶體晶胞的數目等於或大於預定值),則至實體頁面之寫入變為「寫入錯誤」(「程式化錯誤」)。
接下來,將參看圖21中之第二至第三階段來解釋至上部頁面資料之寫入。至上部頁面資料之寫入係基於自晶片外部輸入之寫入資料(上部頁面資料)及已寫入記憶體晶胞中之下部頁面資料來執行。
換言之,如在圖21中之第二至第三階段中所展示,當上部頁面資料之值為「1」時,高電場經控制以不施加至記憶體晶胞之穿隧氧化物膜,藉此防止記憶體晶胞之臨限電壓Vth增加。因此,具有資料「11」(已抹除狀態下之臨限電壓分佈ER1)之記憶體晶胞維持資料「11」而無改變(ER2),且具有資料「10」(臨限電壓分佈A1)之記憶體晶胞維持資料「10」而無改變(B2)。然而,就確保分佈之間的電壓邊限而言,需要藉由使用大於上述驗證電壓VA1V 之正驗證電壓VB2V 來調整臨限電壓分佈之下限,且藉此形成具有窄化臨限電壓分佈寬度之臨限電壓分佈B2。若即使將下限調整重複預定數目次而電壓仍未達到臨限電壓(或若未達到臨限電壓之記憶體晶胞的數目等於或大於預定值),則至實體頁面之寫入變為「寫入錯誤」(「程式化錯誤」)。
另一方面,當上部頁面資料之值為「0」時,高電場施加至記憶體晶胞之穿隧氧化物膜以將電子注入至浮動閘極 電極中,藉此使記憶體晶胞之臨限電壓Vth增加預定量。具體而言,設定驗證電位VA2V 及VC2V ,且重複寫入操作,直至該等電壓使臨限電壓變為等於或大於此驗證電壓VA1V 。因此,具有資料「11」(已抹除狀態下之臨限電壓分佈ER1)之記憶體晶胞改變至具有臨限電壓分佈A2之資料「01」,且具有資料「10」(A1)之記憶體晶胞改變至具有臨限電壓分佈C2之資料「00」。此時,臨限電壓分佈A2及C2之下限係藉由使用驗證電壓VA2V 及VC2V 來調整。若即使將寫入操作重複預定數目次而電壓仍未達到臨限電壓(或若未達到臨限電壓之記憶體晶胞的數目等於或大於預定值),則至實體頁面之寫入變為「寫入錯誤」(「程式化錯誤」)。
另一方面,在抹除操作中,設定抹除驗證電位Vev,且重複抹除操作,直至該等電壓使臨限電壓變為等於或小於此抹除驗證電壓Vev。因此,記憶體晶胞改變至已寫入狀態(資料「00」)。若即使將抹除操作重複預定數目次而電壓仍未達到臨限電壓(或若未達到臨限電壓之記憶體晶胞的數目等於或大於預定值),則對實體頁面之抹除變為「抹除錯誤」。
以上內容為典型4值儲存系統中之資料寫入系統的實例。在儲存3個或3個以上位元之多位元儲存系統中,僅將臨限電壓分佈分成八個或八個以上型樣的操作根據上部頁面資料進一步添加至以上操作,且基本操作為相同的。
接下來,將解釋SSD 2之組態實例。如圖22中所展示, SSD 2包括:NAND型快閃記憶體(下文縮寫為NAND記憶體)16,其為非揮發性半導體記憶體;介面控制器(IFC)42,其經由ATA介面19執行信號至主機機器3之傳輸及信號自主機機器3之接收;RAM(隨機存取記憶體)40,其為半導體記憶體,且包括充當介面控制器42與NAND記憶體16之間的中間緩衝器之快取記憶體(CM)46;SSD控制器(SSDC)41,其執行對NAND記憶體16及RAM 40之管理及控制以及對介面控制器42之控制;及匯流排43,其連接此等組件。
可使用以下各者作為RAM 40:DRAM(動態隨機存取記憶體)、SRAM(靜態隨機存取記憶體)、FeRAM(鐵電隨機存取記憶體)、MRAM(磁阻隨機存取記憶體)、PRAM(相變隨機存取記憶體)、ReRAM(電阻性隨機存取記憶體),及其類似者。RAM 40可包括於SSDC 41中。
NAND記憶體16係由複數個NAND記憶體晶片80組成,且儲存藉由主機機器3指定之使用者資料,儲存管理使用者資料之管理表,且儲存藉由RAM 40管理之管理資訊以供備份。NAND記憶體16包括以矩陣方式排列複數個記憶體晶胞之記憶體晶胞陣列82,且每一記憶體晶胞可藉由使用上部頁面及下部頁面來執行多位準記錄。NAND記憶體16係由複數個記憶體晶片組成,且每一記憶體晶片係藉由排列複數個區塊作為資料抹除單位來形成。在NAND記憶體16中,針對每一頁面執行資料寫入及資料讀取。一區塊係由複數個頁面組成。
RAM 40包括充當主機機器3與NAND記憶體16之間的資料傳送快取記憶體之快取記憶體(CM)46。此外,RAM 40充當管理資訊儲存記憶體及工作區域記憶體。在RAM 40中之區域40A中管理的管理表係藉由(例如)在SSD 2啟動時載入儲存於NAND記憶體16中之區域40M中的各種管理表而獲得,且週期性地或在斷開電源時保存於NAND記憶體16中之區域40M中。
SSDC 41之功能係藉由執行儲存於NAND記憶體16中之系統程式(韌體)之處理器、各種硬體電路及其類似者來實現,且SSDC 41關於以下各者而執行(例如)主機機器3與NAND記憶體16之間的資料傳送控制:來自主機機器3之各種命令(諸如,寫入請求、快取記憶體清空請求及讀取請求),儲存於RAM 40及NAND記憶體16中之各種管理表的更新及管理,待寫入NAND記憶體16中之資料的ECC編碼,及自NAND記憶體16讀取之資料的ECC解碼。
當主機機器3將讀取請求或寫入請求發出至SSD 2時,主機機器3經由ATA介面19輸入LBA(邏輯區塊定址)作為邏輯位址。LBA為自零開始之序號附加至邏輯磁區(大小:例如,512 B)的邏輯位址。此外,當將讀取請求或寫入請求發出至SSD 2時,除LBA以外,主機機器3亦輸入將為讀取請求或寫入請求之目標的邏輯磁區大小。
IFC 42具有如下功能:自主機機器3接收讀取請求、寫入請求、其他請求及資料,將所接收之請求及資料傳輸至SSDC 41,及在SSDC 41之控制下將資料傳輸至RAM 40。
圖23說明用於SSD 2中之管理資訊的組態。如上文所描述,管理資訊係以非揮發性方式儲存於NAND記憶體16中之區域40M中。儲存於區域40M中之管理資訊係在啟動SSD 2時載入至RAM 40中之區域40A中且使用。RAM 40中之管理資訊44係週期性地或在斷開電源時保存於區域40M中。當RAM 40為諸如MRAM、FeRAM及ReRAM之非揮發性RAM時,此管理資訊44可僅儲存於RAM 40中,且在此狀況下,此管理資訊44未儲存於NAND記憶體16中。為了減小至NAND記憶體16之寫入量,以下情形為需要的:待儲存於管理資訊45中之資料為藉由壓縮儲存於RAM 40中之區域40A中的資料而獲得的資料。此外,為了減小將資料寫入NAND記憶體16中之頻率,以下情形為需要的:將關於儲存於RAM 40中之區域40A中之管理資訊44的更新資訊(差異資訊)附加至管理資訊45。
如圖23中所展示,管理資訊包括自由區塊表(FBT)60、損壞區塊表(BBT)61、作用中區塊表(ABT)62、磁軌表(以磁軌為單位之邏輯-實體轉譯表)63、叢集表(以叢集為單位之邏輯-實體轉譯表)64,及統計資訊65。
如圖24中所展示,LBA為自零開始之序號附加至邏輯磁區(大小:例如512 B)的邏輯位址。在當前實施例中,作為SSD 2之邏輯位址(LBA)的管理單位,定義由在次序上等於或高於LBA之低階第(s+1)個位元的位元串形成之叢集位址及由在次序上等於或高於LBA之低階第(s+t+1)個位元之位元串形成的磁軌位址。換言之,邏輯磁區為自主機機器3 之最小存取單位。叢集為用於管理SSD中之「小資料」的管理單位,且將叢集大小設定為大達邏輯磁區大小之自然數倍的大小。磁軌為用於管理SSD中之「大資料」的管理單位,且將磁軌大小設定為大達叢集大小之兩倍或更大自然數倍的大小。因此,磁軌位址為將LBA除以磁軌大小時之商,且磁軌內位址為將LBA除以磁軌大小時之餘數,且叢集位址為將LBA除以叢集大小時之商,且叢集內位址為將LBA除以叢集大小時之餘數。在以下解釋中,為方便起見,磁軌之大小等於可記錄於一個實體區塊中之資料的大小(當用於在SSDC 41中執行之ECC處理中的冗餘位元包括於實體區塊中時,自該大小排除此冗餘位元),且叢集之大小等於可記錄於一個實體頁面中之資料的大小(當用於在SSDC 41中執行之ECC處理中的冗餘位元包括於實體頁面中時,自該大小排除此冗餘位元)。
自由區塊表(FBT)60管理NAND記憶體中之實體區塊(自由區塊:FB)的ID(實體區塊位址),在執行至NAND記憶體16之寫入時可新分配該等實體區塊以供寫入且未將使用分配給該等實體區塊。此外,自由區塊表60管理對每一實體區塊ID之抹除的次數(抹除計數),且在區塊經抹除時,SSDC 41使關於實體區塊之抹除計數遞增。
損壞區塊表(BBT)61管理作為因為大量錯誤或其類似者而不可用作記憶體區域之實體區塊(實體區塊)之損壞區塊(BB)的ID。BBT 61可以類似於FBT 60之方式管理每一實體區塊ID之抹除計數。
作用中區塊表(ABT)62管理為經分配使用之實體區塊的作用中區塊(AB)。此外,作用中區塊表62管理每一實體區塊ID之抹除計數,且在區塊經抹除時,SSDC 41使關於實體區塊之抹除計數遞增。
磁軌表63管理磁軌位址與儲存對應於此磁軌位址之磁軌資料的實體區塊ID之間的對應關係。
叢集表64管理叢集位址、儲存對應於此叢集位址之叢集資料的實體區塊ID及儲存對應於此叢集位址之叢集資料的實體區塊內頁面位址之間的對應關係。
統計資訊65儲存關於SSD 2之可靠性的各種參數(X01至X25)。
統計資訊65包括:損壞區塊之總數(統計資訊X01)、總抹除計數(統計資訊X02)、平均抹除計數(統計資訊X03)、NAND記憶體中寫入錯誤發生之累積次數(統計資訊X04)、NAND記憶體中抹除錯誤發生之累積次數(統計資訊X05)、讀取邏輯磁區之總數(統計資訊X06)、寫入邏輯磁區之總數(統計資訊X07)、不可校正之ECC錯誤計數(統計資訊X08)、n位元至m位元之ECC校正單位的總數(統計資訊X09)、SATA通信中R錯誤發生之數目(統計資訊X10)、SATA通信中錯誤發生之數目(統計資訊X11)、RAM 40中錯誤發生之數目(統計資訊X12)、SSD 2之總操作時間(統計資訊X13)、溫度超過推薦操作溫度之最高值所持續的累積時間(統計資訊X14)、溫度變為低於推薦操作溫度之最低值所持續的累積時間(統計資訊X15)、對命令之最大回 應時間(統計資訊X16)、對命令之平均回應時間(統計資訊X17)、NAND記憶體之最大回應時間(統計資訊X18)、NAND之平均回應時間(統計資訊X19)、當前溫度(統計資訊X20)、最高溫度(統計資訊X21)、最低溫度(統計資訊X22)、統計資訊增加速率(統計資訊X23)、NAND廢棄項目收集(GC)失敗旗標(統計資訊X24)、有效期限終止旗標(統計資訊X25),及其類似者。
解釋損壞區塊之總數(統計資訊X01)。每當將SSD 2中之NAND記憶體16的一個實體區塊添加至損壞區塊(每當將SSD 2中之NAND記憶體16的一個實體區塊標記為損壞區塊)時,就使統計資訊X01遞增1。需要在製造SSD 2時(在檢驗程序之前)或在檢驗SSD 2時將統計資訊X01重設為零。更需要將在檢驗程序中發生錯誤或具有在數個臨限值分佈之間的小邊限之區塊預先添加至後面區塊。統計資訊X01可在不儲存於統計資訊65中之情況下自BBT 61直接計算。統計資訊X01愈大,可靠性就降級得愈多。
解釋總抹除計數(統計資訊X02)。統計資訊X02指示關於SSD 2中之NAND記憶體16之所有區塊的累積抹除計數。每當抹除SSD 2中之NAND記憶體16之一個實體區塊時,就使統計資訊X02遞增1。需要在製造SSD 2時(在檢驗程序之前)或在檢驗SSD 2時將統計資訊X02重設為零。統計資訊X02可在不儲存於統計資訊65中之情況下自FBT 60、BBT 61及ABT 62直接計算。統計資訊X02愈大,可靠性就降級得愈多。
解釋平均抹除計數(統計資訊X03)。統計資訊X03指示關於SSD 2中之NAND記憶體16之所有區塊的每區塊平均抹除計數。可自用於對統計資訊X03計數之目標排除該等區塊之部分,諸如儲存管理資訊之區塊。需要在製造SSD 2時(在檢驗程序之前)或在檢驗SSD 2時將統計資訊X03重設為零。統計資訊X03可在不儲存於統計資訊65中之情況下自FBT 60、BBT 61及ABT 62直接計算。統計資訊X03愈大,可靠性就降級得愈多。
解釋NAND記憶體中寫入錯誤發生之累積數目(總寫入錯誤計數、總程式化錯誤計數)(統計資訊X04)。每當寫入錯誤在SSD 2中之NAND記憶體16中以一個寫入為單位發生時,就使統計資訊X04遞增1(或可以區塊為單位遞增)。需要在製造SSD 2時(在檢驗程序之前)或在檢驗SSD 2時將統計資訊X04重設為零。統計資訊X04愈大,可靠性就降級得愈多。
解釋NAND記憶體中抹除錯誤發生之累積數目(總抹除計數)(統計資訊X05)。需要在製造SSD 2時(在檢驗程序之前)將統計資訊X05重設為零。每當抹除錯誤在SSD 2中之NAND記憶體16中以一個區塊為單位發生時,就使統計資訊X05遞增1。可將複數個區塊共同定義為抹除單位,且每當以一個抹除為單位發生抹除錯誤時,就可使統計資訊X05遞增1。統計資訊X05愈大,可靠性就降級得愈多。
解釋讀取邏輯磁區之總數(統計資訊X06)。統計資訊X06為IFC 42傳輸至主機機器3作為讀取資料之資料的邏輯磁 區之總數。以需要在製造SSD 2時(在檢驗程序之前)或在檢驗SSD 2時將統計資訊X06重設為零。統計資訊X06愈大,可靠性就降級得愈多。
解釋寫入邏輯磁區之總數(統計資訊X07)。統計資訊X07為IFC 42自主機機器3接收作為寫入資料之資料的邏輯磁區之總數。需要在製造SSD 2時(在檢驗程序之前)或在檢驗SSD 2時將統計資訊X07重設為零。統計資訊X07愈大,可靠性就降級得愈多。
解釋錯誤不可藉由ECC校正之總次數(不可校正之ECC錯誤計數)(統計資訊X08)。當錯誤位元不可藉由ECC校正來校正時,每讀取單位使統計資訊X08遞增1。可添加不可進行校正之錯誤位元之數目的估計值,或可添加錯誤不可進行校正之區塊的數目。需要在製造SSD 2時(在檢驗程序之前)將統計資訊X08重設為零。統計資訊X08愈大,可靠性就降級得愈多。
解釋n位元至m位元之ECC校正單位之總數(n-m位元ECC錯誤校正計數)(統計資訊X09)。存在0nm可校正位元之最大數目的關係,其中n及m為自然數。當對ECC校正單位(例如,實體頁面)執行ECC校正時,若所有錯誤位元經成功地校正且經校正錯誤位元之數目為n或大於n且m或小於m,則每ECC校正單位使「n位元至m位元之ECC校正單位的總數」遞增1。當藉由ECC校正每校正單位可校正最大64個位元時,例如,準備八個參數,亦即「1位元至8位元之ECC校正單位的總數」、「9位元至16位元之ECC校正單 位的總數」、「17位元至24位元之ECC校正單位的總數」、「25位元至32位元之ECC校正單位的總數」、「33位元至40位元之ECC校正單位的總數」、「41位元至48位元之ECC校正單位的總數」、「49位元至56位元之ECC校正單位的總數」,及「57位元至64位元之ECC校正單位的總數」。當通常執行ECC校正時,針對一個ECC校正單位之每一ECC校正使八個參數中之任一者遞增1。需要在製造SSD 2時(在檢驗程序之前)或在檢驗SSD 2時將統計資訊X09重設為零。統計資訊X09愈大,可靠性就降級得愈多。
解釋SATA通信中R錯誤發生之數目(統計資訊X10)。每當SATA標準中之一個R錯誤(重複錯誤,R_ERR)發生時,就使統計資訊X10遞增1。當在主機與SSD之間傳送的訊框中發生諸如CRC錯誤之任何錯誤時,將此錯誤作為R錯誤進行計數。作為統計資訊X10,可使用SATA標準之實體事件計數器中的任何計數器。需要在製造SSD 2時(在檢驗程序之前)或在檢驗SSD 2時將統計資訊X10重設為零。統計資訊X10愈大,可靠性就降級得愈多。
解釋SATA通信中錯誤發生之數目(統計資訊X11)。每當SATA通信中之不同異常(不同於R錯誤)發生時,就使統計資訊X11遞增1。舉例而言,當在SSD 2與主機機器3之間實際協商之通信速度為較慢速度通信標準(諸如,3 Gbps)時,不管SATA介面19、IFC 42及SSDC 41經設計以滿足SATA 6 Gbps之事實,皆將此情形視為SATA通信中的錯誤 且使統計資訊X11遞增1。需要在製造SSD 2時(在檢驗程序之前)或在檢驗SSD 2時將統計資訊X11重設為零。此值愈大,可靠性就降級得愈多。
解釋RAM 40中錯誤發生之數目(統計資訊X12)。舉例而言,當ECC電路或錯誤偵測電路掛載於RAM 40上或SSDC 41上時,若SSDC 41偵測到指示錯誤位元不可藉由ECC校正之信號或指示自RAM 40偵測到錯誤位元之信號,則使統計資訊X12遞增1。需要在製造SSD 2時(在檢驗程序之前)或在檢驗SSD 2時將統計資訊X12重設為零。此值愈大,可靠性就降級得愈多。
解釋SSD 2之總操作時間(通電小時數)(統計資訊X13)。SSDC 41在SSD 2之電源接通時對時脈進行計數或自內部之時脈電路接收時間資訊,藉此使經過時間遞增。或者,SSDC 41可週期性地自主機機器3接收主機機器3中之時間資訊,且時間資訊之差可遞增。需要在製造SSD 2時(在檢驗程序之前)或在檢驗SSD 2時將統計資訊X13重設為零。此值愈大,可靠性就降級得愈多。
解釋溫度超過推薦操作溫度之最高值所持續的累積時間(統計資訊X14)。舉例而言,當將溫度計提供於SSD 2中(諸如,提供於SSD 2之基板上、SSDC 41中及NAND記憶體16中)時,SSDC 41自溫度計週期性地接收溫度資訊。當所接收之溫度超過推薦操作溫度(例如,100℃)時,SSDC 41基於自內部之時脈或主機機器3獲得之時脈或時間資訊而使SSD 2正在所估計之操作溫度或更高溫度下操作所持 續之時間量遞增。需要在製造SSD 2時(在檢驗程序之前)或在檢驗SSD 2時將統計資訊X14重設為零。此值愈大,可靠性就降級得愈多。
解釋溫度變為低於推薦操作溫度之最低值所持續的累積時間(統計資訊X15)。當溫度計提供於SSD 2中時,SSDC 41自溫度計週期性地接收溫度資訊。當所接收之溫度變為低於推薦操作溫度(例如,-40℃)時,SSDC 41基於自內部之時脈或主機機器3獲得之時脈或時間資訊而使SSD 2正在所估計之操作溫度或更高溫度下操作所持續的時間量遞增。需要在製造SSD 2時(在檢驗程序之前)或在檢驗SSD 2時將統計資訊X15重設為零。此值愈大,可靠性就降級得愈多。
解釋對命令之最大回應時間(命令之最大延時)(統計資訊X16)。統計資訊X16為在自主機機器3接收到命令之後直至對主機機器3作出回應(或直至完成命令執行)所需之時間(或時脈之數目)的最大值。當超過X16之回應時間發生時,覆寫X16上之此回應時間。可針對每一命令儲存統計資訊X16。需要在製造SSD 2時(在檢驗程序之前)、在檢驗SSD 2時或在運輸SSD 2時將X16重設為零。
解釋對命令之平均回應時間(命令之平均延時)(統計資訊X17)。統計資訊X17為在自主機機器3接收到命令之後直至對主機機器3作出回應(或直至完成命令執行)所需之時間(或時脈之數目)的平均值。舉例而言,藉由將某一數目個回應時間清單儲存於RAM 40中及計算回應時間清單之平 均值來獲得統計資訊X17。可針對每一命令儲存統計資訊X17。需要在製造SSD 2時(在檢驗程序之前)、在檢驗SSD 2時或在運輸SSD 2時將X17重設為零。
解釋NAND記憶體之最大回應時間(NAND記憶體之最大延時)(統計資訊X18)。統計資訊X18為自SSDC 41指示NAND記憶體16時至SSDC 41接收到回應(接收到命令執行完成通知)時所需的時間(或時脈之數目)之最大值。當超過X18之回應時間發生時,覆寫X18上之此回應時間。可針對每一命令儲存統計資訊X18。需要在製造SSD 2時(在檢驗程序之前)、在檢驗SSD 2時或在運輸SSD 2時將X18重設為零。
解釋NAND之平均回應時間(NAND記憶體之平均延時)(統計資訊X19)。統計資訊X19為自SSDC 41指示NAND記憶體16時至SSDC 41接收到回應(或接收到命令執行完成通知)時所需的時間(或時脈之數目)之平均值。舉例而言,藉由將某一數目個回應時間清單儲存於RAM 40中及計算回應時間清單之平均值來獲得統計資訊X19。可針對每一命令儲存統計資訊X19。需要在製造SSD 2時(在檢驗程序之前)、在檢驗SSD 2時或在運輸SSD 2時將X19重設為零。
解釋當前溫度(統計資訊X20)。當溫度計提供於SSD 2中時,SSDC 41自溫度計週期性地接收溫度資訊。SSDC 41將最後自溫度計接收到之溫度作為當前溫度儲存於統計資訊X20中。若此值極大(例如,85℃或高於85℃),則將此值判定為不利地影響SSD 2之可靠性,且若此值極小(例 如,-10℃或低於-10℃),則將此值判定為不利地影響SSD 2之可靠性。
解釋最高溫度(統計資訊X21)。SSDC 41將當前溫度X20之最大值作為最高溫度儲存於統計資訊X21中。若此值極大(例如,85℃或高於85℃),則此值不利地影響SSD 2之可靠性。當SSDC 41自溫度計接收到高於X21之當前溫度時,SSDC 41將X21重寫至當前溫度。需要在製造SSD 2時(在檢驗程序之前)、在檢驗SSD 2時或在運輸SSD 2時將X21重設為與SSD 2之操作溫度相比較足夠小的溫度(例如,-40℃)。
解釋最低溫度(統計資訊X22)。SSDC 41將當前溫度X20之最小值作為最低溫度儲存於統計資訊X22中。若此值極小(例如,-40℃或低於-40℃),則此值不利地影響SSD 2之可靠性。當SSDC 41自溫度計接收到低於X22之當前溫度時,SSDC 41將X22重寫至當前溫度。需要在製造SSD 2時(在檢驗程序之前)、在檢驗SSD 2時或在運輸SSD 2時將X22重設為與SSD 2之操作溫度相比較足夠大的溫度(例如,120℃)。
解釋統計資訊增加速率(統計資訊X23)。單獨儲存關於統計資訊X01至X19之非最新資訊(例如,固定時間之前的值、上次接通SSD 2時之值,及上次關閉SSD 2時之值)。統計資訊X23係(例如)藉由以下方程式中之任一者來定義。
統計資訊增加速率=(最新統計資訊)-(舊資訊)
統計資訊增加速率=((最新統計資訊)-(舊資訊))/(在獲得舊資訊之後的經過時間)
統計資訊增加速率=((最新統計資訊)-(舊資訊))/(在獲得舊資訊之後NAND存取之數目)
需要在製造SSD 2時(在檢驗程序之前)或在檢驗SSD 2時將統計資訊X23重設為零。此值愈大,可靠性就降級得愈多。
解釋NAND廢棄項目收集(GC)失敗旗標(統計資訊X24)。當統計資訊X24為1時,甚至藉由NAND組織(NAND廢棄項目收集(NAND GC))仍不可獲得足夠用於操作之自由區塊。
需要在製造SSD 2時(在檢驗程序之前)或在檢驗SSD 2時將統計資訊X24重設為零。此值愈大,可靠性就降級得愈多。
解釋有效期限終止旗標(EOL旗標,EOLF)(統計資訊X25)。自上述參數計算EOL旗標。舉例而言,可類似於以下此情形自X01計算EOL旗標:
EOLF=0(若X01之原始值小於或等於X01之RMAX)
EOLF=1(若X01之原始值大於X01之RMAX)
作為統計資訊65,可儲存所有上述參數,或可儲存上述參數之部分或上述參數中之僅任一者。
作為統計資訊65,最新資訊需要儲存於RAM 40中之區域40A中,且週期性地備份至NAND記憶體16中之區域40M。另一方面,統計資訊65可僅儲存於RAM 40及NAND 記憶體16中之任一者中,或統計資訊可傳輸至主機機器3,且儲存於主機機器3或連接至主機機器3之記憶裝置中。
(LBA前向查找轉譯)
接下來,將參看圖25來解釋用於自SSD 2中之LBA指定實體位址的程序(LBA前向查找轉譯)。當LBA經指定時,SSDC 41自LBA計算磁軌位址、叢集位址及叢集內位址。
SSDC 41首先搜尋磁軌表63,且指定對應於所計算之磁軌位址之實體區塊ID(實體區塊位址)(步驟S100及S101)。SSDC 41判定所指定之實體區塊ID是否有效(步驟S102)。當實體區塊ID並非空值(亦即,有效值)(步驟S102:是)時,SSDC 41搜尋此實體區塊ID是否儲存於ABT 62中(步驟103)。當實體區塊ID儲存於ABT 62中(步驟S104:是)時,使自藉由此實體區塊ID指定之實體區塊的起始位置(head location)移位磁軌內位址的位置為NAND記憶體16中對應於所指定之LBA之實體位置(步驟S105)。在此狀況下,無需叢集表64來指定NAND記憶體16中對應於該LBA之實體位置,且將此LBA稱作「以磁軌為單位管理之LBA」。在步驟S104中,當實體區塊ID未儲存於ABT 62中(步驟S104:否)時,所指定之LBA並不具有實體位址,且將此狀態稱作「未寫入狀態」(步驟S106)。
在步驟S102中,當對應於所指定之磁軌位址之實體位址為空值(亦即,無效值)(步驟S102:否)時,SSDC 41自LBA計算叢集位址,且搜尋叢集表64以自叢集表64獲得實體區 塊ID及對應於所計算之叢集位址之對應實體區塊內頁面位址(步驟S107)。自藉由實體區塊ID及實體區塊內頁面位址指定之實體頁面的起始位置移位叢集內位址之位置為NAND記憶體16中對應於指定LBA之實體位置。在此狀況下,NAND記憶體16中對應於LBA之實體位置不可僅藉由磁軌表63來指定,且需要參考叢集表64,且將此LBA稱作「以叢集為單位管理之LBA」(步驟S108)。
(讀取操作)
接下來,將參看圖26及圖27來解釋SSD 2中之讀取操作。在當前實施例中解釋之讀取操作為在INCITS ACS-2中描述之「60h讀取FPDMA佇列」的狀況,然而,可使用諸如「25h讀取DMA擴展區」之其他寫入命令,且讀取命令類型之差異並不影響本發明之本質。當SSD 2自主機機器3接收到讀取指令(步驟S110)時,SSDC 41將此讀取指令添加至RAM 40中之讀取指令佇列中(步驟S111),且將指示讀取指令之接收的通知傳回至主機機器3。
另一方面,當RAM 40中之讀取指令佇列中存在指令時,SSDC 41判定讀取處理是否可執行(步驟S120)。當SSDC 41判定讀取處理可執行時,SSDC 41根據展示於圖25中之LBA前向查找轉譯程序自接收自主機機器3之LBA來指定資料之當前實體位置(步驟S121)。SSDC 41自所指定之位置之實體頁面讀取資料(步驟S123),藉由使用讀取資料中之ECC冗餘位元來執行ECC校正(步驟S124),經由IFC 42將經校正資料傳輸至主機機器3(步驟S125),且更新 統計資訊65。SSDC 41可在校正自NAND記憶體16讀取之資料之前將該資料寫入RAM 40中,且SSDC 41可校正寫入RAM 40中的資料並將該資料傳輸至主機機器3,或SSDC 41可在校正資料之後將經校正資料寫入RAM 40中,且SSDC 41可將寫入RAM 40中之資料傳輸至主機機器3。
在步驟S124中,SSDC 41嘗試藉由ECC來校正資料,然而,當SSDC 41不可校正資料時,SSDC 41刪除包括不可自ABT 62解碼之頁面之實體區塊並將該區塊暫存於BBT 61中,且使統計資訊65中之不可校正ECC錯誤計數(統計資訊X08)遞增。此時,需要將區塊中之資料複製至自FBT 60分配之自由區塊,將自由區塊之實體區塊ID暫存於ABT 62中,且將磁軌表63及叢集表64中之實體區塊自複製源實體區塊ID重寫至複製目的地實體區塊ID中。可將不可校正ECC錯誤發生所在之錯誤區塊添加至BBT 61。
(寫入操作)
接下來,將參看圖28及圖29來解釋SSD 2中之寫入操作。在當前實施例中解釋之寫入操作為在INCITS ACS-2中描述之「61h寫入FPDMA佇列」的狀況,然而,可使用諸如「35h寫入DMA擴展區」之其他寫入命令,且寫入命令類型之差異並不影響本發明之本質。當SSD 2自主機機器3接收到寫入指令(步驟S130)時,SSDC 41將此寫入指令添加至RAM 40中之讀取指令佇列中(步驟S131),且將指示寫入指令之接收的通知傳回至主機機器3。
另一方面,當RAM 40中之寫入指令佇列中存在指令 時,SSDC 41判定寫入處理是否可執行(步驟S140)。當SSDC 41判定寫入處理可執行時,SSDC 41通知主機機器3可執行寫入,自主機機器3接收寫入資料,對所接收之資料執行ECC編碼,且將經編碼資料儲存於RAM 40之快取記憶體46中。可將未經編碼之資料儲存於快取記憶體46中,且可在寫入至NAND記憶體16時編碼該資料。
接下來,SSDC 41讀取FBT 60(步驟S141),且自FBT 60獲得自由區塊之實體區塊ID。當不存在自由區塊時(步驟S142:否),SSDC 41對NAND記憶體16執行稍後將描述之NAND GC(步驟S143),且在此NAND GC之後讀取FBT 60(步驟S144)並自FBT 60獲得自由區塊之實體區塊ID。SSDC 41對特定自由區塊執行抹除操作,該自由區塊之實體區塊ID已獲得。當發生抹除錯誤時,將實體區塊ID添加至BBT 61並自FBT 60刪除實體區塊ID,且重新開始自S141之處理以再次獲得自由區塊。甚至關於抹除錯誤發生一次之實體區塊,當再次執行抹除操作時,在一些狀況下,通常可執行抹除而不引起抹除錯誤,因此,就防止損壞區塊之數目的不必要增加而言,需要針對每一區塊提供抹除錯誤發生之數目的項目作為FBT 60或ABT 62中之用於每一區塊的統計資訊X05,當區塊之抹除錯誤發生時使此統計資訊X05遞增,且當每一區塊之抹除錯誤發生的數目變為等於或大於預定值時將區塊暫存於BBT 61中。為了僅將抹除錯誤連續發生之實體區塊改變成損壞區塊,更需要SSDC 41提供「每一區塊之連續抹除錯誤發生的數目」 之項目而非「每一區塊之抹除錯誤發生的數目」,當區塊之抹除錯誤發生時使「每一區塊之連續抹除錯誤發生的數目」遞增,當可執行抹除而無錯誤時將「每一區塊之連續抹除錯誤發生的數目」重設為零,且當「每一區塊之連續抹除錯誤發生的數目」變為等於或大於預定值時將區塊暫存於BBT 61中。
接下來,為了搜尋藉由寫入指令指定之LBA是否處於未寫入狀態,SSDC 41根據展示於圖25中之前向查找轉譯程序判定對應於LAB之有效資料是否已儲存於NAND記憶體16中(步驟S145及S146)。
當LBA處於未寫入狀態(步驟S146:是)時,SSDC 41將儲存於快取記憶體46中之所接收之資料寫入至自由區塊(步驟S147),將執行寫入所在之自由區塊(新實體區塊)的ID及關於該自由區塊之抹除計數暫存於ABT 62中,且自FBT 60刪除執行寫入所在之實體區塊的ID(步驟S151)。此時,藉由以下操作來判定以磁軌為單位抑或以叢集為單位來管理LBA:將所接收之資料之LBA分成以磁軌為單位之數個區段(磁軌區段),及判定磁軌區段是否用資料填滿(步驟S152)。換言之,當磁軌區段用資料填滿時,以磁軌為單位來管理LBA;且當並非所有磁軌區段用資料填滿時,以叢集為單位來管理LBA。當以叢集為單位來管理LBA時,重寫叢集表64並使LBA與新實體區塊ID相關聯(步驟S153);且此外,重寫磁軌表63並使LBA與無效實體區塊ID(例如,空值)相關聯(步驟S153)。當以磁軌為單位來管 理LBA時,重寫磁軌表並使LBA與新實體區塊ID相關聯(步驟S154)。
另一方面,在步驟S146中,當LBA並非處於未寫入狀態時,SSDC 41基於藉由前向查找轉譯獲得之實體區塊ID自NAND記憶體16讀取對應實體區塊中之所有資料,且將資料寫入RAM 40中(步驟S148)。接著,SSDC 41使自主機接收並儲存於快取記憶體46中的資料覆寫(組合)於RAM 40中之自NAND記憶體16讀取並寫入RAM 40中的資料上(步驟S149),且將經覆寫資料寫入自由區塊中(步驟S150)。
當在步驟S150中寫入錯誤發生時,將實體區塊ID添加至BBT 61並自FBT 60刪除實體區塊ID,且重新開始自S141之處理以再次獲得自由區塊。當SSDC 41對寫入錯誤發生一次之實體區塊再次執行寫入操作時,SSDC 41可能能夠成功地寫入資料而不引起寫入錯誤。因此,就防止損壞區塊之數目的不必要增加而言,需要針對每一區塊提供寫入錯誤發生之數目的項目作為FBT 60或ABT 62中之用於每一區塊的統計資訊X04,當區塊之寫入錯誤發生時使寫入錯誤發生之數目遞增,且當「每一區塊之寫入錯誤發生之數目」變為等於或大於預定值時將區塊暫存於BBT 61中。為了僅將寫入錯誤連續發生之實體區塊改變成損壞區塊,更需要SSDC 41提供「每一區塊之連續寫入錯誤發生的數目」之項目而非「每一區塊之寫入錯誤發生的數目」,當區塊之寫入錯誤發生時使「每一區塊之連續寫入錯誤發生的數目」遞增,當可執行寫入而無錯誤時將「每一區塊之 連續寫入錯誤發生的數目」重設為零,且當「每一區塊之連續寫入錯誤發生的數目」變為等於或大於預定值時將區塊暫存於BBT 61中。
SSDC 41將執行寫入所在之自由區塊(新實體區塊)的ID及關於該自由區塊之抹除計數暫存於ABT 62中,且自FBT 60刪除執行寫入所在之實體區塊的ID(步驟S151)。當以叢集為單位管理LBA時,SSDC 41將叢集表64中之舊實體區塊ID重寫成新實體區塊ID(步驟S152及S153)。當以磁軌為單位管理LBA時,SSDC 41將磁軌表中之舊實體區塊ID重寫成新實體區塊ID(步驟S152及S154)。此外,SSDC 41將舊實體區塊ID及關於舊實體區塊ID之抹除計數添加至FBT 60,且自ABT 62刪除舊實體區塊ID及關於舊實體區塊ID之抹除計數(步驟S155)。SSDC 41將以上寫入處理之內容反映於統計資訊65中。
(NAND GC)
SSD 2中之所有LBA的容量經設計以小於SSD 2之NAND記憶體16的總容量,使得只要以磁軌為單位繼續執行寫入操作,自由區塊就不會變為不夠的。另一方面,當以叢集為單位進行至未寫入LBA之寫入許多次時,將容量大於叢集之實體區塊以叢集為單位分配給一個寫入操作,使得在NAND記憶體16中需要容量大於待寫入之資料的實體區塊,且因此自由區塊之數目可變為不夠的。當自由區塊之數目變為不夠的時,可藉由如下文所描述之NAND GC新獲自由區塊。
將參看圖30來解釋SSD 2中之NAND GC(NAND快閃記憶體中之資料的廢棄項目收集)。並非儲存於實體區塊中之所有叢集始終為有效叢集,且除有效叢集以外之無效叢集並不與LBA相關聯。有效叢集為寫入有最新資料之叢集,且無效叢集為由於具有相同LBA之資料寫入不同位置中而未參考的叢集。實體區塊具有無效叢集之量的資料之自由空間,且自由區塊可藉由執行收集有效叢集中之資料及將所收集之資料重寫於不同區塊中之NAND GC來獲得。
首先,將選定實體區塊ID=i設定為0,且將自由空間累積量S設定為0(步驟S160)。SSDC 41判定ID為i=0之實體區塊是否經鍵入磁軌表63中(步驟S161)。當實體區塊經鍵入磁軌表中時,使i遞增1(步驟S162),且對具有下一數字之ID的實體區塊執行類似判定(步驟S161)。換言之,當實體區塊ID包括於磁軌表63中時,以磁軌為單位來管理此實體區塊中之資料,使得實體區塊不包括於NAND GC目標中。
當不以磁軌為單位來管理ID為i之實體區塊(步驟S161:否)時,SSDC 41接下來讀取叢集表64,且獲得包括於ID為i之實體區塊中的有效叢集之所有位址(步驟S163)。接著,SSDC 41獲得所獲得之有效叢集之總容量的大小z(步驟S164),且在v<實體區塊大小(步驟S165)之狀況下,SSDC 41將當前實體區塊之ID添加至NAND GC目標區塊清單(步驟S166)。此外,SSDC 41將當前實體區塊之所獲得之叢集容量v添加至所獲得之叢集累積量S,且更新所獲得 之叢集累積量S(步驟S167)。
當在步驟S165中不滿足v<實體區塊大小(S165:否)時或當在步驟S168中所獲得之叢集累積量S尚未達到實體區塊大小(S168:否)時,SSDC 41使i遞增1(步驟S162),且以類似於上文之方式對具有下一數字之ID的實體區塊執行步驟S161至S167中之程序。接著,在步驟S168中,SSDC 41重複步驟S161至S167中之程序,直至所獲得之叢集累積量S達到實體區塊大小。
當在步驟S168中所獲得之叢集累積量S達到實體區塊大小時(S168:是),SSDC 41自NAND記憶體16讀取NAND GC目標區塊清單上之所有實體區塊的所有有效叢集之資料,且將該資料寫入RAM 40中(步驟S169)。此外,SSDC 41對NAND GC目標區塊清單上之所有實體區塊執行抹除處理(步驟S170),且自ABT 62刪除執行抹除處理所在之所有實體區塊並將該等實體區塊添加至FBT 60(步驟S171)。此時,使抹除計數遞增。在步驟S170中執行之抹除操作的目標可限於為用於在步驟S172中寫入資料之目標的區塊,此情形就抑制關於區塊之抹除計數而言為需要的。
當發生抹除錯誤時,將實體區塊ID添加至BBT 61,且自FBT 60刪除實體區塊ID。當SSDC 41再次對抹除錯誤發生一次之實體區塊進行抹除時,SSDC 41可能能夠成功地進行抹除而不引起抹除錯誤。因此,就防止損壞區塊之數目的不必要增加而言,需要針對每一區塊在FBT 60或ABT 62中提供「每一區塊之抹除錯誤發生的數目」之項目,當 區塊之抹除錯誤發生時使「每一區塊之抹除錯誤發生的數目」遞增,且當每一區塊之抹除錯誤發生的數目變為等於或大於預定值時將區塊暫存於BBT 61中。為了僅將抹除錯誤連續發生之實體區塊改變成損壞區塊,需要SSDC 41提供「每一區塊之連續抹除錯誤發生的數目」之項目而非「每一區塊之抹除錯誤發生的數目」,當區塊之抹除錯誤發生時使「每一區塊之連續抹除錯誤發生的數目」遞增,當可執行抹除而無錯誤時將「每一區塊之連續抹除錯誤發生的數目」重設為零,且當「每一區塊之連續抹除錯誤發生的數目」變為等於或大於預定值時將區塊暫存於BBT 61中。
接著,SSDC 41自FBT 60獲得新自由區塊,將寫入RAM 40中之資料寫入至所獲得之自由區塊(步驟S172),將寫入有資料之自由區塊之實體區塊ID及關於該區塊之抹除計數添加至ABT 62,且自FBT 60刪除寫入有資料之區塊的區塊ID(步驟S173)。此外,SSDC 41更新叢集表64中之叢集位址、實體區塊ID及實體區塊內頁面位址以對應於此時之NAND GC(步驟S174)。SSDC 41基於以上NAND GC之處理內容來更新統計資訊65。
當在步驟S172中發生寫入錯誤時,將實體區塊ID添加至BBT 61並自FBT 60刪除實體區塊ID,且再次獲得自由區塊。當SSDC 41再次將資料寫入至寫入錯誤發生一次之實體區塊中時,SSDC 41可能能夠成功地寫入資料而不引起寫入錯誤。因此,就防止損壞區塊之數目的不必要增加而 言,需要針對每一區塊在FBT 60或ABT 62中提供「每一區塊之寫入錯誤發生的數目」之項目,當區塊之寫入錯誤發生時使「每一區塊之寫入錯誤發生的數目」遞增,且當「每一區塊之寫入錯誤發生的數目」變為等於或大於預定值時將區塊暫存於BBT 61中。為了僅將寫入錯誤連續發生之實體區塊改變成損壞區塊,需要SSDC 41提供「每一區塊之連續寫入錯誤發生的數目」之項目而非「每一區塊之寫入錯誤發生的數目」,當區塊之寫入錯誤發生時使「每一區塊之連續寫入錯誤發生的數目」遞增,當可執行寫入而無錯誤時將「每一區塊之連續寫入錯誤發生的數目」重設為零,且當「每一區塊之連續寫入錯誤發生的數目」變為等於或大於預定值時將區塊暫存於BBT 61中。
在圖30中之程序中,藉由將執行將資料置於自由區塊中列入優先來執行NAND GC,然而,亦有可能藉由將以下操作列入優先來執行NAND GC:在步驟S164中藉由自實體區塊大小減去所獲得之叢集之容量獲得v來獲得自由區塊,接著在步驟S165中判定是否滿足v>0,當滿足v>0時進行至步驟S168,及當不滿足v>0時進行至步驟S162。
接下來,將參看圖31來解釋SSD 2中之刪除通知。刪除通知為當藉由主機機器3中之OS 100刪除資料時自主機機器3傳輸至外部記憶裝置的指令。刪除通知之實例(例如)包括在INCITS ATA/ATAPI命令集-2(ACS-2)中描述之「資料集管理命令」(稱為修整(TRIM)命令)。在此方法中,當在OS 100中刪除資料時,將呈現所刪除之資料之邏輯位址區 域(LBA區域)作為由LBA及邏輯磁區之數目的組合組成之LBA範圍條目通知給外部記憶裝置,使得該區域可用作甚至外部記憶裝置中之自由空間。刪除通知使得SSD 2能夠獲得新自由區塊。除「資料集管理命令」以外,TRIM命令之功能亦可藉由諸如在INCITS ACS-2中描述之「SCT命令輸送」及供應商唯一命令的其他命令來實現。當OS 100為緊急OS時,就減少至NAND記憶體之寫入而言,需要在緊急OS之狀況下阻止發出刪除通知。另一方面,甚至在緊急OS之狀況下可仍准許刪除通知,此係因為至多僅關於管理資訊45之重寫被寫入至NAND記憶體16,且無使用者資料(或極少使用者資料)在刪除通知處理中被寫入至NAND記憶體16。
當SSD 2自主機機器3接收到刪除通知時(步驟S180),SSDC 41根據展示於圖25中之程序對包括於刪除通知中之LBA執行LBA前向查找轉譯。當包括於刪除通知中之LBA係以磁軌為單位來管理(步驟S181:是)時,SSDC 41將實體區塊ID添加至FBT 60,且自ABT 62刪除該實體區塊ID(步驟S184)。另一方面,當包括於刪除通知中之LBA係以叢集為單位來管理(步驟S181:否)時,SSDC 41自叢集表64刪除對應於實體區塊之所有叢集(步驟S182),將適當有效值(例如,FFFF)寫入磁軌表63中之對應於磁軌(該磁軌對應於LBA)之實體區塊ID中(步驟S183),且將實體區塊ID添加至FBT 60並自ABT 62刪除實體區塊ID(步驟S184)。在SSD 2中,除NAND GC以外,亦可藉由刪除通知處理來 獲得自由區塊。
通常可藉由此NAND GC來獲得用於寫入操作之足夠數目個自由區塊。當甚至藉由NAND GC仍不可獲得用於寫入操作之足夠數目個自由區塊時,需要將統計資訊65中之NAND GC失敗旗標(統計資訊X24)設定為1,以便能夠通知主機機器3:SSD 2經由藉由主機機器3獲取統計資訊65不可獲得自由區塊。就在NAND GC失敗旗標設定為1之後在SSD 2實際停止操作之時間之前(在有效期限終止之前)提供時間延遲而言,需要進行控制以在滿足以下條件時將NAND GC失敗旗標設定為1。
(藉由執行NAND GC獲得之自由區塊的數目)<(進行寫入需要之自由區塊的數目)+(邊限)
以上NAND GC可不僅在自主機機器3接收到寫入請求時,而且(例如)在自最後自主機接收到指令起已經過預定時間時或在自主機機器3接收到用於過渡至待用、閒置或休眠狀態之命令時執行,或以上NAND GC可(例如)在SSD 2經由描述於ACS-2中之「SCT命令輸送」或其他供應商命令自主機機器3接收到用於開始NAND GC之指令時來執行。當OS 100為緊急OS時,就減少寫入至NAND記憶體之資料而言,需要甚至在自最後自主機機器3接收到指令起已經過預定時間時且甚至在自主機機器3接收到用於過渡至待用、閒置或休眠狀態之命令時,仍不執行NAND GC。此外,當OS 100為緊急OS時,就減少寫入至NAND記憶體16之資料而言,需要在緊急OS之狀況下阻止發出用 於開始NAND GC之指令。
(錯誤處理)
接下來,將參看圖32來解釋關於SSD 2中之NAND記憶體16的錯誤處理。通常如上執行各種處理,諸如對來自主機機器3之寫入請求之處理及NAND GC處理,然而,存在寫入錯誤發生於至NAND記憶體16之寫入操作(程式化操作)中的狀況,抹除錯誤發生於對NAND記憶體16之抹除操作(抹除操作)中的狀況,不可校正之ECC錯誤(錯誤校正處理之失敗)發生於對NAND記憶體16之讀取操作中的狀況及其類似狀況,且需要針對此等狀況之異常處理。
當以上錯誤中之任一者發生時(步驟S190),SSDC 41將錯誤發生之實體區塊添加至BBT 61(步驟S191),且自ABT 62及FBT 60刪除錯誤發生之實體區塊(步驟S192),以防止此後對錯誤發生之實體區塊的存取。此時,可將錯誤發生之實體區塊中的資料複製至另一實體區塊。SSDC 41基於以上錯誤處理來更新統計資訊65。
在上文中,說明了關於讀取處理、寫入處理及NAND處理之錯誤處理的實例,然而,錯誤處理並不限於此等實例,且錯誤處理可應用於對NAND記憶體16之所有讀取處理、寫入處理及錯誤處理。
(控制工具)
隨著使用SSD 2,NAND記憶體16之每一區塊之可靠性經降級,且因此損壞區塊之數目增加,且自由區塊之數目與作用中區塊之數目的總和減小。隨著進一步使用SSD 2(隨著SSD 2耗損),足以執行寫入處理之自由區塊的數目即使在執行NAND GC時仍不可得到保證,此情形指示SSD 2之有效期限終止(EOL,有效期限終止)。在下文中,說明控制工具200在SSD 2已達到其有效期限終止時之處理。
當啟動控制工具200時,控制工具200常駐於主記憶體6中,且監視SSD 2中之統計資訊65。為了持續監視SSD 2中之統計資訊65,需要(例如)藉由將控制工具200之啟動程式暫存於正常OS 100A之啟動程式中來在將正常OS 100A自區域16D(或20D)讀取至區域6A時或緊接在該讀取之後自區域16B(或區域20B)讀取控制工具200。舉例而言,當OS 100為Windows(註冊商標)時,控制工具200(例如)藉由以下操作而設定為開機時之常駐程式,藉此實現控制工具200之自動啟動:將控制工具200暫存於Windows(註冊商標)之啟動選單中,將控制工具200暫存為服務,或將控制工具200暫存於Windows(註冊商標)之註冊檔中。當將BIOS 11D自BIOS-ROM 11讀取至區域6A時,亦可自區域11B讀取控制工具200。
舉例而言,如圖33中所展示,控制工具200以規則時間間隔(例如,每隔1分鐘)自SSD 2獲得統計資訊65。作為獲得統計資訊之方法,例如,有可能使用以下各者:描述於INCITS ACS-2中之「智慧讀取資料(B0h(D0h))」,其為S.M.A.R.T(自我監視分析報告技術)之命令,S.M.A.R.T為記憶體自我診斷功能;描述於INCITS ACS-2中之「識別裝置(ECh)」;描述於ACS-2中之「SCT命令輸送」;或供應 商唯一之命令。
圖34說明關於SSD 2中管理之統計資訊65(統計資訊X01至X19、X23及X24)的實例表。如圖34中所展示,當「智慧讀取資料(B0h(D0h))」用以讀取統計資訊65時,將屬性ID(屬性ID)分配給統計資訊65之分量(X01至X19、X23、X24及其類似者)中的每一者。可將屬性ID僅分配給此等分量中之部分。SMAB為作為統計資訊65之每一分量之正規化最佳值的預定值。SMAL為保證SSD之可靠性的正規化值之下限,且SSDC 41將SMAL計算為SMAL=SMAB*AMALR(0AMALR<1)(SMAL為整數,且係藉由捨入、小數點之後的數字之升值捨位或小數點之後的數字之降值捨位中之任一者而自小數轉換成整數)。SSDC 41藉由以下方程式將智慧資訊之屬性值(圖34中之「值」)計算為正規化統計值,且將該統計值傳輸至控制工具200。屬性臨限值為圖34中之「臨限值」,且原始值為圖34中之「原始資料」。
屬性值=SMAL+SMAB×(1-AMALR)×(RMAX-原始值)/RMAX屬性臨限值=30(固定值)
RMAX=統計資訊之原始值的可保證可靠性所藉由之上限
原始值=統計資訊之原始值
正規化最佳值SMAB可為任何自然數,且(例如)可預先判定SMAB=100。AMALR可為滿足0AMALR<1之任何數字,且(例如)可預先判定AMALR=0.3。此外,可針對X01至X19、X23及X24中之每一者使用不同RMAX、AMALR及SMAB。當將SMAB及AMALR預先判定為SMAB=100且 AMALR=0.3時,緊接在運輸之後SSD 2之每一統計資訊的屬性值係作為最佳值之100,且屬性值隨著可靠性降級而逐漸減小。當不再能保證SSD 2之可靠性時(當統計資訊之原始值變為等於或大於RMAX時),屬性值達到30或低於30的值。ACS-2中描述之B0h/DAh SMART RETURN STATUS可用以通知主機3統計資訊65之原始值超過其臨限值,且控制工具200能夠自命令之輸出判定原始值是否超過其臨限值。
在分析統計資訊之原始值與SSD 2之故障率(FR)之間的相互關係之後,當SSD 2之FR超過最大FR時,RMAX較佳經預先判定以等於統計資訊之原始值。舉例而言,如圖35中所展示,當年度故障率(AFR)超過在SSD 2之開發階段中在SSD 2之規範文獻中描述之最大AFR時,SSD 2之供應商公司可將RMAX預先判定為等於統計資訊之原始值。AFR可藉由使用韋伯(Weibull)統計方法來計算。舉例而言,SSD 2之供應商公司可在SSD 2之開發階段中在供測試之大量(例如,100個)SSD 2之群組上執行耗損測試(或燒機測試)並同時保持監視統計資訊,且在AFR達到作為RMAX之恆定速率時將RMAX預先判定為等於統計資訊之原始值,在該耗損測試中,在高溫下重複地進行抹除操作、寫入操作、讀取操作及所讀取之資料之驗證操作歷時某一時間段以檢查NAND記憶體16之資料可靠性。舉例而言,SSD 2之供應商公司可執行資料保留測試,在該資料保持測試中,在高溫條件下使經耗損SSD 2不由主機3附接歷時某一 時間段或更長時間,此後,降低SSD 2之溫度,藉由主機3對SSD 2執行讀取操作,且當不可藉由ECC校正所讀取之資料時(或當不可藉由ECC校正之資料為固定數目或更大時),將此情形定義為SSD 2之缺陷(故障),且藉由將缺陷之數目除以執行等效測試所在之SSD 2之數目獲得的值用作FR。接著,當AFR顯著超過可容許AFR時,供應商公司可將RMAX預先判定為等於統計資訊之原始值。RMAX'可如下文所定義藉由將某一邊限加至RMAX來預先判定,且可替代RMAX來使用。
RMAX'=RMAX-邊限
圖34中之「最差」可用作控制工具200之索引以偵測(診斷)SSD 2之EOL。「最差」係藉由SSDC 41計算為屬性值之最差值。舉例而言,在X01至X09及X23之狀況下,最差為(例如)在運輸SSD 2之後(或在製造SSD 2之後)屬性值之最小值。屬性值之在過去預定時間段內(在滑動窗內)的最小值可用作最差值。屬性值之在通信或處理之過去預定操作計數內(或在某一資料量異動內)的最小值可用作最差值。
圖34中之「原始資料」(原始值)可用作控制工具200之索引以偵測(診斷)SSD 2之EOL。將統計資訊(例如,X01至X09、X23、X24及X25)之原始值作為原始資料自SSD 2傳輸至控制工具200。在此狀況下,控制工具200已將RMAX儲存於控制工具200中或藉由自SSD 2單獨讀取RMAX或自其他記憶裝置讀取RMAX而獲得RMAX,比較RMAX與原 始資料,且當關係變為原始資料>RMAX或原始資料RMAX時判定SSD 2已達到其有效期限終止(SSD 2已達到其EOL)。舉例而言,在NAND GC失敗旗標(統計資訊X24)之狀況下,若此旗標為1,則控制工具200判定SSD 2已達到其EOL。舉例而言,在損壞區塊之總數(統計資訊X01)之狀況下,若此數目超過預定值,則控制工具200判定SSD 2已達到其EOL。統計資訊之原始值未必需要作為原始資料而輸出,且(例如)SSDC 41可將藉由對統計資訊之原始值執行四個算術運算而獲得之值作為原始資料傳輸至控制工具200,且藉由比較該值與藉由以相同方式對RMAX執行四個算術運算而獲得之值進行比較來執行判定。或者,SSDC 41可將藉由加密(或編碼)統計資訊之原始值而獲得之資料作為原始資料傳輸至控制工具200,解密(或解碼)此資料,且藉由比較解密之後的該資料與RMAX來執行判定。
以如上文所描述之方式,控制工具200判定SSD 2是否已達到其EOL(SSD 2是否處於異常狀態),且當判定SSD 2已達到其EOL時(或當判定SSD 2處於異常狀態時),移動至稍後將描述之有效期限達到處理(EOL處理)(步驟S205)。統計資訊65可採用不同於統計資訊X01至X19、X23、X24及X25之各種形式,且本發明亦可應用至該等形式。此外,雖然X01至X19、X23、X24及X25與FR之間的關係具有正相關,但本發明亦可應用於與FR具有負相關之統計資訊。舉例而言,可使用SSD 2在運輸之後經歷的最低溫度。在 此狀況下,SSD 2之供應商公司可預先判定下限RMIN而非RMAX,可藉由該下限RMIN下保證可靠性,且當統計資訊變為低於RMIN時,主機2判定SSD 2已達到其異常狀態(或其EOL)。
在圖33中,當使用S.M.A.R.T時,控制工具200較佳以規則時間間隔(例如,每隔1分鐘)獲得統計資訊(步驟S200:是)。控制工具200發出在ACS-2中描述之為統計資訊獲得命令之「B0h/D0h智慧讀取資料」(步驟S201),自SSD 2接收包括統計資訊之資料(步驟S202),且診斷此所接收之資料(步驟S203)。診斷方法係如上文所描述。在步驟S204中,當控制工具200偵測(診斷)出SSD 2已達到其EOL(步驟S204:是)時,控制工具移動至有效期限達到處理(EOL處理)(步驟S205)。即使SSD 2尚未達到其EOL,控制工具200仍可移動至步驟S205中之處理,例如,當統計資訊超過預定RMAX或統計資訊指示在正常操作中不可採用之異常值時。
亦有可能藉由使用不同於統計資訊65之資訊來移動至有效期限達到處理。舉例而言,如圖36中所展示,控制工具200可自OS 100獲得(監視)回應資訊(參見圖16)(步驟S210),主機3自SSD 2接收到該回應資訊。當主機3接收到錯誤回應(錯誤訊息)時,控制工具200判定SSD 2處於異常狀態,且移動至有效期限達到處理(步驟S212)。控制工具200可監視任何命令之回應。另一方面,例如,就減少對CPU 4之負載而言,控制工具200較佳僅監視自主機3傳送 至SSD 2且回應自SSD 2傳送至主機3之寫入命令(諸如,ACS-2中描述之「61h寫入FPDMA佇列」及「35h寫入DMA擴展區」)的回應。特別地,當SSD 2為使用在作為專利文獻1呈現之美國專利申請公開案第2009-0222617號中描述之發明的SSD時,當SSD 2已達到其有效期限終止時,作為錯誤傳回寫入命令之回應,因此,有可能在不獲得統計資訊之情況下判定SSD 2已達到其有效期限終止。當然,即使SSD 2不使用在作為專利文獻1呈現之美國專利申請公開案第2009-0222617號中描述之發明的SSD,仍可應用本發明。
SSDC 41可經組態而不將錯誤傳回至特殊寫入命令(例如,在ACS-2中描述之「SCT命令輸送」及對於供應商唯一之命令),甚至在專利文獻1之唯讀模式狀態下亦如此。接著,諸如稍後待描述之SSD 2中之啟動載入器的重寫或緊急OS之寫入的某一特殊寫入操作可藉由使用上述特殊命令來執行,即使SSD 2處於將錯誤傳回至正常寫入命令的狀態下亦如此。對於寫入至不同於SSD 2之記憶裝置無需此情形。或者,在正常OS為僅使用某一寫入命令(正常寫入命令)(例如,「61h寫入FPDMA佇列」)作為寫入命令之OS的狀況下,SSDC 41可經組態以在SSDC 41進入專利文獻1中之唯讀模式時將錯誤傳回至正常寫入命令(例如,「61h寫入FPDMA佇列」),且不將錯誤傳回至不同命令(特殊寫入命令)(例如,「30h寫入磁區」)。接著,啟動載入器、緊急OS及其類似者至SSD 2之寫入可藉由使用特殊 寫入命令(例如,「30h寫入磁區」)來執行。
回應藉由控制工具200進行監視之命令可為不同於寫入命令之命令。舉例而言,控制工具可監視ACS-2中描述之「B0H/D4H立即離線智慧執行」之回應(輸出)及報告,或「90h執行裝置診斷」之回應。
此外,就在具有高重現可能性之命令錯誤發生時執行有效期限達到處理而言,控制工具200較佳僅在命令錯誤發生複數次時執行有效期限達到處理。此係因為,若某一命令回應為錯誤,則在再次傳輸同一命令時,後續回應可能並非錯誤,且在此狀況下,存在SSD 2尚未達到其EOL之可能性。此外,就嚴格判定錯誤重現之可能性而言,需要在命令錯誤連續發生複數次時執行有效期限達到處理。或者,如圖37中所展示,當在監視對SSD 2之命令時傳回錯誤作為命令回應(步驟S220及S221:是)時,控制工具200或OS 100可重試對SSD 2之同一命令(命令重試)(步驟S222),且當重試命令為錯誤(步驟S223:是)時,可執行有效期限達到處理(步驟S224)。
(有效期限達到處理)
接下來,將解釋有效期限達到處理(異常狀態處理)。在第一實施例中,解釋正常OS及緊急OS已儲存於SSD 2中之狀況下的有效期限達到處理。如圖9至圖15中所展示,正常OS 100A、緊急OS 100B及啟動載入器300係(例如)在電腦系統1運輸之前藉由電腦系統1之製造商寫入SSD 2中,或在電腦系統1運輸之後藉由使用者自諸如DVD-ROM、 USB記憶體及SSD之安裝磁碟進行安裝或在電腦系統1運輸之後藉由使用者自WEB下載安裝映像及藉由使用下載之安裝映像進行安裝而寫入SSD 2中。在NAND記憶體16中,如圖9中所展示,將啟動載入器300寫入區域16C中,將正常OS 100A寫入區域16D中,且將緊急OS 100B寫入區域16E中,且藉由儲存於RAM 40中之管理資訊44將LBA分配給區域16C、區域16D及區域16E中的每一者。將LBA 16C分配給區域16C,將LBA 16D分配給區域16D,且將LBA 16E分配給區域16E。亦以類似方式將LBA分配給儲存於啟動載入器300中之上述OS指標資訊OSPT(指示待讀取之OS之LBA的指標資訊),且將分配給OSPT之LBA稱作LBAOSPT。LBAOSPT包括於LBA 16C中。
控制工具200重寫啟動載入器300,使得當電腦系統1下次開機時,將緊急OS 100B而非正常OS 100A讀取至主機機器3之主記憶體6中的區域6A。當正常OS 100A用作CPU 4之OS 100時,主機機器3可對SSD 2執行寫入操作,該情形引起進一步縮短SSD 2之有效期限或損毀寫入SSD 2中之資料或已寫入SSD 2中之資料的可能性。另一方面,當將緊急OS 100B而非正常OS 100A讀取至主記憶體6中之區域6A且CPU 4使用緊急OS 100B作為藉由當前實施例進行操作時,禁止主機3執行對SSD 2之寫入操作,使得在SSD 2中之資料被損毀或SSD 2顯現為不可讀取之前,可讀取SSD 2中之資料且將儲存於SSD 2中之使用者資料備份於不同儲存媒體中。
舉例而言,當在圖33中之步驟S205中調用有效期限達到處理時,如圖38中所展示,控制工具200重寫啟動載入器300,使得當電腦系統1下次開機時,將緊急OS 100B而非正常OS 100A讀取至主記憶體6中之區域6A。舉例而言,控制工具200將LBA 16E作為寫入資料寫入至LBAOSPT。因此,當電腦系統1下次開機時,CPU 4可藉由讀取OS指標資訊OSPT及將讀取指令傳輸至LBA 16E來讀取緊急OS 100B,LBA 16E為藉由OS指標資訊OSPT指示之LBA。在重寫啟動載入器300之前或之後,控制工具200可經由顯示器9顯示訊息「SSD已達到其有效期限終止。啟動了緊急OS。」。
如圖10中所展示,若控制工具200儲存於ROM 11中且係在自SSD 2載入OS 100之前自ROM 11載入,則控制工具200可重寫儲存於主記憶體6中且在主機3開機時自儲存於NAND快閃記憶體16中之啟動載入器300載入的啟動載入器,且控制工具200無需重寫儲存於NAND快閃記憶體16中之啟動載入器300。接著,啟動載入器300基於主記憶體6中之OSPT 301將正常OS區域16D或緊急BIOS區域16E中之一者讀出至主記憶體6中之區域6A,如上文所描述。
如圖11中所展示,若控制工具200、正常OS 100A(正常BIOS 100A)及緊急OS 100B(緊急BIOS 100B)儲存於ROM 11中且係在自SSD 2載入OS 100時自ROM 11進行載入,則控制工具200可重寫在主機3開機時儲存於主記憶體6中之BIOSPT 301,且控制工具200無需重寫儲存於NAND快閃 記憶體16中之啟動載入器300。接著,IPL基於主記憶體6中之BIOSPT 301將正常BIOS區域11D或緊急BIOS區域11E中之一者讀出至主記憶體6中之區域6A,如上文所描述。
舉例而言,在圖38中,僅執行啟動載入器300之重寫作為有效期限達到處理。舉例而言,在圖39中,控制工具200藉由在於步驟S240中重寫啟動載入器之後將重設命令傳輸至電腦系統1或將重設命令傳輸至正常OS(步驟S241)來使電腦系統1重新開機(步驟S241)。
舉例而言,如圖40中所展示,控制工具200在於步驟S250中重寫啟動載入器之後經由顯示器9顯示文字「SSD已達到其有效期限終止。啟動了緊急OS。現重新開機?」及OK(確定)按鈕(步驟S251)。當經由滑鼠15或鍵盤14按壓OK按鈕(步驟S252:是)時,控制工具200使電腦系統1重新開機(步驟S253)。此外,替代顯示OK按鈕,控制工具200可在命令提示螢幕上顯示文字「SSD已達到其有效期限終止。啟動了緊急OS。現重新開機?y:是,n:否」,且當經由鍵盤14鍵入「y」並按壓鍵入(enter)鍵時,控制工具200使電腦系統1重新開機。
圖41說明在電腦系統1重新開機時之操作程序。當電腦系統1重新開機時,CPU 4藉由使用對應於區域16C之LBA及LBAOSPT自SSD 2讀取啟動載入器300及OS指標資訊OSPT(步驟S260)。接下來,CPU 4藉由使用啟動載入器300來執行所需開機處理,且分析OS指標資訊OSPT以指定藉由OS指標資訊OSPT指示之LBA。接著,CPU 4將對指定 LBA之讀取指令傳輸至SSD 2以自SSD 2讀取藉由OS指標資訊OSPT指定之OS。因此,當藉由OS指標資訊OSPT指示之LBA指定係正常OS 100A之記憶體區域的區域16D(步驟S261:是)時,自區域16D讀取正常OA 100A且將其寫入主記憶體6中之區域6A中(步驟S262),且當藉由OS指標資訊OSPT指示之LBA指定係緊急OS 100B之記憶體區域的區域16E(步驟S261:否)時,自區域16E讀取緊急OA 100B且將其寫入主記憶體6中之區域6A中(步驟S263)。以此方式,當重寫啟動載入器300中之OS指標資訊OSPT以藉由由控制工具200進行之有效期限達到處理讀取緊急OS 100B時,自區域16E讀取緊急OA 100B且將其寫入主記憶體6中之區域6A中。結果,起始緊急OA 100B。
以此方式,當統計資訊尚未超過臨限值時,啟動載入器載入正常OS 100A,且當統計資訊已超過臨限值時,啟動載入器載入緊急OS 100B。
(備份功能)
就促進藉由使用者將SSD 2中之使用者資料備份至其他記憶裝置而言,需要將使用者資料備份功能添加至緊急OS 100B。在將SSD 2視為已達到其EOL之狀態下,將SSD 2之資料保留可靠性視為經降級,使得需要儘可能快地將SSD 2中之使用者資料保存至其他備份記憶裝置。
圖42為說明在緊急OS 100B具備備份功能之狀況下主機機器3之組態的圖。備份記憶裝置(諸如,另一SSD及硬碟機)150經由介面19連接至主機機器3(在當前實施例中,使 用SATA介面)。備份記憶裝置150無需在運輸電腦系統1時掛載,且(例如)當使用者使用單獨購買之SSD作為備份記憶裝置150時,使用者可經由SATA纜線將SSD之SATA埠連接至主機板30(參見圖17),且經由電源纜線將SSD 2之電源埠連接至電源單元32。
圖43說明當將備份功能添加至緊急OS 100B時緊急OS 100B之啟動程序的實例。圖43中之步驟S270至S273中的操作與圖41中之步驟S260至S263中的操作相同。在圖43中,將步驟S274至S276添加至展示於圖41中之電腦系統1的開機程序。在緊急OS 100B啟動之後,例如,當使用者經由鍵盤14或滑鼠15自緊急OS 100B之程式選單選擇備份功能時,或當緊急OS 100B啟動時,自動開始步驟S274之處理及後續步驟。需要在備份處理之前在顯示器9上顯示訊息「現進行備份?」及OK按鈕,以便使得使用者能夠任意地選擇備份之時序。當經由滑鼠15或鍵盤14選擇OK按鈕時,處理進行至步驟S275中之是。或者,可經由命令提示在顯示器9上顯示訊息「備份?是:Y,否:N」,且處理可藉由自鍵盤14按壓Y按鈕及鍵入鍵而進行至步驟S275中之是。當以此方式選擇備份功能(步驟S275:是)時,緊急OS 100B開始備份處理。
作為備份處理之內容,例如,緊急OS 100B將自SSD 2讀取之資料寫入至與自SSD 2讀取之資料之LBA(SSD 2中之LBA)相同的LBA(備份記憶裝置150中之LBA)(逐LBA備份)。舉例而言,將SSD 2中之LBA=0h之資料複製至備份 記憶裝置150中之LBA=0h(步驟S276)。此外,將SSD 2中之LBA=234c5h中之資料複製至備份記憶裝置150中之LBA=234c5h。藉由以下操作來執行資料複製:將(例如)在ACS-2中描述之「60h讀取FPDMA佇列」或「25h讀取DMA擴展區」命令傳輸至SSD 2,其中指定LBA與邏輯磁區長度;自SSD 2接收所讀取之資料並將該資料寫入主記憶體6中;將(例如)ACS-2中描述之「61h寫入FPDMA佇列」或「35h寫入DMA擴展區」傳輸至備份記憶裝置150,其中指定LBA與邏輯磁區長度;及將寫入主記憶體6中之資料傳輸至備份記憶裝置150。可對整個LBA區域執行備份處理,或可對LBA區域之部分執行備份處理。
在此備份處理中,緊急OS 100B可將SSD 2中之所有檔案複製至備份記憶裝置150。在許多OS中,使用者並不藉由直接指定LBA來存取資料,且藉由使用檔案ID(檔案名稱)來存取資料。舉例而言,如圖44中所展示,SSD 2儲存使檔案ID與LBA及邏輯磁區長度相關聯之檔案管理表140(後設資料140)。藉由管理資訊44亦將LBA分配給檔案管理表140。正常OS 100A基於檔案管理表140將自展示於圖16中之其他軟體接收的檔案ID轉譯成LBA並將該LBA傳輸至SSD 2,且基於檔案管理表140將自SSD 2接收之LBA轉譯成檔案ID並將該檔案ID傳輸至其他軟體。在備份處理中,緊急OS 100B自SSD 2讀取檔案管理表140,關於每一檔案ID將讀取檔案管理表140中之對應LBA上之資料的命令(諸如,「60h讀取FPDMA佇列」及「25h讀取DMA擴展 區」命令)傳輸至SSD 2,自SSD 2接收所讀取之資料,且將該資料寫入主記憶體6中。此外,緊急OS 100B讀取備份記憶裝置150中之檔案管理表(未圖示),將寫入主記憶體6中之資料寫入至尚未分配有檔案ID之LBA,獲得SSD 2之所有檔案的所有LBA以使所寫入之LBA與檔案名稱相關聯,讀取所獲得之LBA上之所有資料,將所讀取之資料寫入備份記憶裝置150中,且重寫備份記憶裝置150中之檔案管理表(未圖示)以使所寫入之LBA與檔案ID相關聯。可對所有檔案執行備份處理,或可對檔案之部分執行備份處理。
此外,當將備份資料寫入備份記憶裝置150中時,自SSD 2讀取之資料可經壓縮(編碼)及寫入。此外,亦有可能讀取SSD 2中之管理資訊(諸如,檔案管理表140),獲得關於正使用之區域及檔案之資訊,基於所獲得之資訊產生SSD 2中之資料的ROM映像,且將所產生之ROM映像儲存於備份記憶裝置150中。
在以上解釋中,使用備份記憶裝置為藉由SATA介面連接之SATA裝置的狀況。可使用其他備份記憶裝置。舉例而言,如圖45中所展示,USB儲存裝置151(諸如,USB記憶體及支援USB介面之SSD)可用作備份記憶裝置;如圖46中所展示,諸如DVD-R、DVD-RW及Blu-ray(註冊商標)光碟之可寫入光碟機152可用作備份記憶裝置;或如圖47中所展示,經由網際網路或LAN連接之網路儲存伺服器153(雲端儲存伺服器)可用作備份記憶裝置。此外,備份功 能亦可應用於其他實施例之狀況。
如圖9中所展示,緊急OS 100B之記憶體區域16E與管理資訊44中之LBA相關聯。另一方面,為了防止使用者無意重寫區域16E中之資料,在運輸SSD 2時可將緊急OS記錄於記憶體區域16E中而不分配LBA,且在有效期限達到處理時,SSDC 41可藉由控制工具200將「SCT命令輸送」或對於供應商唯一之命令傳輸至SSD 2而重寫管理資訊44並將LBA分配給區域16E。或者,SSDC 41可重寫管理資訊44,使得藉由控制工具200將包括區域16E之LBA範圍(將LBA分配給該LBA範圍)的「SCT命令輸送」或對於供應商唯一之命令傳輸至SSD 2而不將區域16E分配給LBA,且在有效期限達到處理時,SSDC 41可藉由控制工具200將「SCT命令輸送」或對於供應商唯一之命令傳輸至SSD 2而重寫管理資訊44並將LBA分配給區域16E。
以此方式,根據第一實施例,控制工具200判定SSD 2是否已達到其有效期限終止且SSD 2是否處於正常狀態,且當判定SSD 2已達到其有效期限終止(其EOL)或SSD 2處於異常狀態時,控制工具200重寫啟動載入器300或BIOSPT 301,使得僅支援讀取操作及寫入操作中之讀取操作的緊急OS經啟動,以使緊急OS在電腦系統1重新開機時經啟動,藉此禁止對SSD 2之寫入操作或防止容易地執行對SSD 2之寫入操作,因此抑制SSD 2之可靠性降級且防止待寫入SSD 2中之資料及已寫入SSD中之資料被損毀,此情形使得使用者能夠容易地自SSD 2讀取使用者資料並將使 用者資料備份於其他記憶裝置中。
(第二實施例)
在第一實施例中,解釋了正常OS 100A及緊急OS 100B兩者皆儲存於SSD 2之NAND記憶體16中的狀況。在第二實施例中,將解釋正常OS 100A儲存於SSD 2中且緊急OS 100B不儲存於SSD 2中的狀況。在第二實施例中,在展示於圖37中之步驟S224中之有效期限達到處理中的啟動載入器300之重寫處理(參見圖39中之步驟S240)之前或之後,控制工具200將緊急OS 100B自不同於SSD 2之外部記憶裝置20(參見圖12)安裝於SSD 2之NAND記憶體16中的區域16E中。就防止歸因於使用者對SSD 2中之儲存緊急OS之區域16E的無意重寫而毀壞緊急OS資料而言,且就藉由保護區域16E來防止減小SSD 2之自由空間而言,需要使用第二實施例。
此外,例如,如圖13中所展示,在重寫啟動載入器300之前或之後,控制工具200自WEB伺服器21下載緊急OS 100B之資料或安裝程式,且基於所下載之資料將緊急OS 100B安裝於SSD 2之NAND記憶體16中的區域16E中。或者,控制工具200可經由顯示器9向使用者顯示儲存有緊急OS之資料或安裝程式WEB伺服器之位址。
或者,如圖14及圖15中所展示,在重寫啟動載入器300之前或之後,控制工具200可將緊急OS 100B自外部儲存媒體(諸如DVD-ROM之光學媒體、USB記憶體、SD卡、SSD,或其類似者)23或24安裝於SSD 2之NAND記憶體16 中的區域16E中。或者,在重寫啟動載入器300之前或之後,控制工具200可經由顯示器9向使用者顯示用以設定儲存有緊急OS 100B之安裝程式之外部儲存媒體(諸如DVD-ROM之光學媒體、USB記憶體、SD卡、SSD,或其類似者)的訊息。
當將緊急OS 100B安裝於NAND記憶體16中時,進行至NAND記憶體16之寫入,因此,就防止NAND記憶體16之可靠性降級及資料毀壞而言,需要緊急OS之資料量顯著小於NAND記憶體16之容量。
(第三實施例)
在第三實施例中,將解釋正常OS 100A及緊急OS 100B儲存於不同於SSD 2之非揮發性記憶裝置20中之狀況下的有效期限達到處理。如圖12中所展示,本發明亦可應用於正常OS 100A及緊急OS 100B儲存於不同於SSD 2之非揮發性記憶裝置20中且不儲存於SSD 2中的狀況,及正常OS 100A及緊急OS 100B中之一者儲存於SSD 2中且其中之另一者儲存於非揮發性記憶裝置20中的狀況。在此狀況下,除SSD 2中之啟動載入器以外,控制工具200在一些狀況下亦需要重寫非揮發性記憶裝置20中之啟動載入器。
當正常OS 100A及緊急OS 100B儲存於不同於SSD 2之非揮發性記憶裝置20中時,控制工具200重寫儲存於非揮發性記憶裝置20中之啟動載入器300,且不重寫SSD 2中之啟動載入器。
當正常OS 100A儲存於SSD 2中且緊急OS 100B儲存於非 揮發性記憶裝置20中時,控制工具200需要重寫SSD 2中之啟動載入器及非揮發性記憶裝置20中之啟動載入器兩者。當電腦系統1在非揮發性記憶裝置20自主機機器3移除之狀態下開機時,就防止對SSD 2之無意寫入存取而言,需要啟動載入器經組態使得正常OS不啟動。
當緊急OS 100B儲存於SSD 2中且正常OS 100A儲存於非揮發性記憶裝置20中時,需要重寫SSD 2中之啟動載入器及非揮發性記憶裝置20中之啟動載入器兩者。另一方面,可僅重寫非揮發性記憶裝置20中之啟動載入器。在此狀況下,甚至在電腦系統1在非揮發性記憶裝置20自主機機器3移除之狀態下開機時,仍可藉由讀取SSD 2中之啟動載入器300而自SSD 2之NAND記憶體16中的區域16E啟動緊急OS。
(第四實施例)
在第四實施例中,將解釋正常OS 100A安裝於SSD 2中且緊急OS不安裝於SSD 2中之狀況。就儘可能抑制對可靠性降級之SSD 2的存取而言,需要自不同於SSD 2之記憶裝置啟動緊急OS 100B。當前實施例中之控制工具200具有在有效期限達到處理中產生安裝有緊急OS之緊急開機磁碟之功能。
作為緊急開機磁碟,可使用各種非揮發性記憶裝置,諸如USB記憶體、SD卡、諸如CD及DVD之光學媒體、SSD及硬碟機。在當前實施例中,解釋使用來自前述各種非揮發性記憶裝置中之USB記憶體作為緊急開機磁碟的狀況。
將包括用於產生緊急開機磁碟之緊急OS資料的資料(映像資料)儲存於(例如)SSD 2、其他SSD、USB記憶體、SD卡、諸如DVD-ROM光碟機之光學媒體及WEB伺服器之儲存媒體中。在當前實施例中,介紹將SSD 2用作用於儲存用於安裝緊急OS之映像資料之儲存媒體的狀況。換言之,在當前實施例中,安裝源映像資料儲存於自身具有降級之可靠性的SSD 2中。
當安裝緊急OS時,自SSD 2讀取映像資料,且在執行安裝一次之後,不會再次讀取相同映像資料。此外,需要控制工具200具有使得使用者能夠在SSD 2達到其EOL之前的階段中任意產生緊急開機磁碟之功能。
圖48說明在產生緊急開機磁碟時資料移動之概念圖。此外,圖49說明在產生緊急開機磁碟時控制工具200之操作程序。當開始有效期限達到處理時,需要控制工具200檢查USB記憶體是否連接至主機機器3之USB控制器13,且當未連接USB記憶體時,經由顯示器9向使用者顯示訊息「產生用於啟動緊急OS之USB記憶體。請連接USB記憶體」。
如圖48中所展示,當連接了USB記憶體24時,控制工具200自儲存於SSD 2之NAND記憶體16之區域16Q中的安裝映像資料400擷取緊急OS資料(當緊急OS資料經壓縮、加密或編碼時,擷取、解密或解碼此緊急OS資料),且將緊急OS資料複製(安裝)至USB記憶體24中之區域24R(步驟S280)。接下來,控制工具200重寫啟動載入器310以便參 考緊急OS 100B之區域24R,使得當讀取儲存於USB記憶體24中之啟動載入器310時,讀取安裝於USB記憶體24中之緊急OS 100B(步驟S281)。具體而言,控制工具200(例如)將對應於記憶體區域24R之LBA寫入至啟動載入器310中之OS指標資訊OSPT 311。
當USB記憶體24及SSD 2兩者皆連接至主機機器3時,需要以使得USB記憶體24中之啟動載入器310優先啟動的方式重寫啟動載入器310或改變BIOS-ROM 11之設定(步驟S282)。可能不執行步驟S282。
當USB記憶體24未連接至主機機器3時,就防止自SSD 2啟動正常OS 100A及進行對SSD 2之無意寫入存取而言,在步驟S282中,需要以使得不自SSD 2啟動正常OS 100A之方式重寫SSD 2中之啟動載入器300。舉例而言,即使讀取SSD 2中之啟動載入器300,仍可藉由將不同於正常OS 100A之區域16D之LBA或無效LBA寫入啟動載入器300中之OS指標資訊OSPT 301中來防止載入正常OS 100A。或者,可重寫關於正常OS 100A之資料。
以此方式,當SSD 2已達到其EOL或SSD 2進入異常狀態時,有可能產生用於啟動OS之開機磁碟,該OS能夠讀取SSD 2中之資料且將SSD 2中之資料備份於其他非揮發性記憶裝置中,同時抑制SSD 2之可靠性降級及SSD 2中之資料毀壞。
此外,如圖50中所展示,亦有可能使用諸如MS-DOS(商標)、Linux(商標)、Windows(註冊商標)及PE(商標)之OS作 為緊急OS 100B,且與將緊急OS安裝於USB記憶體24中同時安裝具有將SSD 2中之資料備份於USB記憶體24中之區域24S中之功能的緊急工具200,以使得能夠自緊急OS 100B執行緊急工具210。緊急工具210需要具有類似於在第一實施例中解釋之備份功能的備份功能。
圖51說明使主機機器3開機時之操作。在使主機機器3開機時,自USB記憶體24讀取緊急OS 100B且將其寫入至主記憶體6,使得自USB記憶體24啟動緊急OS 100B(步驟S290)。接下來,自USB記憶體24讀取緊急工具210且將其寫入至主記憶體6,使得自USB記憶體24啟動緊急工具210(步驟S291)。需要(例如)藉由將緊急工具210暫存於緊急OS 100B之啟動中來在啟動緊急OS 100B之後自動地啟動緊急工具210。
如圖52中所展示,需要緊急OS 100B(例如)經由顯示器19顯示備份選單作為可藉由使用者選擇之選單項目中的一者,顯示訊息「備份?」及OK按鈕,或顯示訊息「備份?」以進入等待經由鍵盤14之輸入的狀態,從而供使用者任意地將備份功能設定為可啟動狀態(步驟S292)。緊急OS 100B可自動開始備份。
當藉由鍵盤14或滑鼠15選擇備份功能啟動(步驟S293)時,啟動緊急工具210。緊急工具210將儲存於SSD 2中之資料複製至備份記憶裝置150(步驟S293)。作為備份方法,可使用類似於在第一實施例中解釋之方法的方法,且(例如)可使用逐LBA備份或逐檔案備份。
(第五實施例)
以上實施例使得使用者能夠容易地自SSD 2讀取使用者資料且將使用者資料備份於其他記憶裝置中,同時抑制SSD 2之可靠性降級及SSD 2之資料毀壞。第五實施例提供進一步抑制SSD 2之可靠性降級的方法。在一些狀況下,SSD 2具備在背景中執行再新處理以修復歸因於老化及讀取擾亂而毀壞之資料的功能。藉由此功能,執行週期性地讀取NAND記憶體16之區塊及將資料錯誤數目大之區塊的資料寫入至不同區塊的處理。因此,可減小老化及讀取擾亂之效應,然而,另一方面,可進行對區塊之額外抹除及寫入,使得SSD 2之可靠性降級可加速。
在當前實施例中,控制工具200或緊急OS 100B藉由使用再新控制命令(描述於ACS-2中之「SCT命令輸送」、對於供應商唯一之命令,或其他命令)來指示SSDC 41停止執行再新。回應於再新控制命令,SSDC 41停止再新處理或將再新執行間隔(例如,1分鐘)設定為較長(例如,2分鐘)。在使SSDC 41將再新執行間隔設定為較長之狀況下,需要在再新控制命令中明確地指定再新執行間隔。
圖53說明當控制工具200發出再新控制命令時之操作。在此狀況下,控制工具200在展示於圖33中之步驟S205中的有效期限達到處理中發出再新控制命令。控制工具200執行在圖38中解釋之啟動載入器300的重寫(步驟S300),且此後將再新控制命令傳輸至SSD 2(步驟S301)。
圖54說明當緊急OS 100B發出再新控制命令時之操作。 在此狀況下,如圖41中所解釋,在使系統開機時,CPU 4自SSD 2之NAND記憶體16讀取包括OS指標資訊OSPT之啟動載入器300(步驟S310),且指定藉由OS指標資訊OSPT指示之LBA。接著,CPU 4藉由將對所指定之LBA之讀取指令傳輸至SSD 2而自SSD 2讀取藉由OS指標資訊OSPT指定之OS。當藉由OS指標資訊OSPT指示之LBA指定係正常OS 100A之記憶體區域的區域16D(步驟S311:是)時,自區域16D讀取正常OA 100A且將其寫入主記憶體6中之區域6A中(步驟S312),且當藉由OS指標資訊OSPT指示之LBA指定係緊急OS 100B之記憶體區域的區域16E(步驟S311:否)時,自區域16E讀取緊急OA 100B且將其寫入主記憶體6中之區域6A中(步驟S313)。當緊急OA 100B啟動時,緊急OA 100B將再新控制命令傳輸至SSD 2(步驟S314)。
以此方式,在第五實施例中,控制工具在有效期限達到處理中進行控制以禁止或阻止SSD 2中在背景中之寫入處理(諸如,再新處理),使得可抑制SSD之可靠性降級。
(第六實施例)
在第一實施例中,控制工具200如圖33中所展示週期性地獲得之統計資訊,且在SSD 2已達到(接近)其EOL時或緊接在SSD 2已達到其EOL之後執行有效期限達到處理。控制工具200可基於所獲得之統計資訊預測SSD 2之有效期限,且經由顯示器9通知SSD 2之使用者該有效期限,此情形將在下文中予以解釋。
當控制工具200根據展示於圖33中之處理程序週期性地 獲得統計資訊時,控制工具200(例如)以在圖55中展示為關於統計資訊之時間序列資料之格式將所獲得之資料附加至主記憶體6。統計資訊時間序列資料可週期性地備份於諸如SSD 2之非揮發性記憶裝置中。此外,關於統計資訊時間序列資料,每當附加最新資料時,可抹除舊資料。
此外,控制工具200可(例如)以展示於圖56中之顯示格式經由顯示器9以圖形方式向使用者顯示主記憶體6中之統計資訊時間序列資料。
在當前實施例中,基於此統計資訊時間序列資料來執行SSD 2之有效期限預測。如圖57中所展示,控制工具200藉由使用在自當前時間之前預定時間週期T處之時間A至作為當前時間之時間C之週期中的(X,Y)處之所有資料來獲得擬合函數Y=f(X),其中變數Y為某一屬性ID之屬性值,且變數X為時間。換言之,藉由使用擬合函數f(X)自X獲得Y之預測值。存在用於導出f之各種方法。舉例而言,可藉由以下步驟來判定f:使用參數a及參數b來定義f(X)=aX+b,及藉由對自時間A至時間C之週期中的(X,Y)處之所有資料使用最小平方法來獲得a及b。
接著,獲得為f(X)之反函數的f-1 (Y)。當f(X)=aX+b,獲得f-1 (Y)=(Y-b)/a。SSD 2之預測有效期限達到時間為f-1 (Y=臨限值)。亦有可能獲得關於自時間A至時間C之(X,Y)處之所有資料的擬合函數X=g(Y)且將SSD 2之預測有效期限達到時間設定為g(Y=臨限值)。此外,可使f(X)及g(Y)擬合至不同於線性函數之函數(諸如,二次函數)。
在當前實施例中,藉由使用屬性值(=Y)及S.M.A.R.T之臨限值來預測有效期限,然而,亦有可能藉由使用為原始資料之原始值作為Y來獲得f(X)及g(Y)且將預測有效期限達到時間設定為f1 (Y=RMAX)或g(Y=RMAX)或f1 (Y=RMIN)或g(Y=RMIN)。此外,亦可基於藉由使用不同於SMART資訊之方法獲得之統計資訊來預測有效期限。
控制工具200經由顯示器9向使用者通知以此方式獲得之預測有效期限達到時間。作為通知方法,例如,可顯示諸如「預測有效期限達到時間:09/09/1999」之文字,或如圖58中所展示,可顯示諸如「SSD之剩餘有效期限少於30天。請立即備份SSD中之資料且用新SSD進行替換」之警告螢幕。或者,當SSD之剩餘有效期限變為少於預定數目天時,可(諸如)藉由改變控制工具200之圖示的顏色來改變顯示於顯示器上之圖示之顏色。
(第七實施例)
在第一實施例中,如圖42中所展示,解釋了如下功能:當正常OS 100A及緊急OS 100B儲存於SSD 2之NAND記憶體16中時,將SSD 2中之資料備份於備份記憶裝置150中。當作為有效期限達到處理(圖33中之步驟S205),控制工具200重寫啟動載入器300(圖38中的步驟S230),且作為備份功能,控制工具200使用上文所描述之逐LBA備份時,需要將藉由備份處理複製至備份記憶裝置150之啟動載入器恢復至SSD 2之啟動載入器300在有效期限達到處理之前的狀態,使得在作為舊系統磁碟機之SSD 2與主機機器3斷開 且作為新系統磁碟機之備份記憶裝置150連接至主機機器3之後接通電腦系統1時,通常啟動正常OS 100A。在當前實施例中,解釋在備份操作時將啟動載入器重寫於備份記憶裝置150中之方法。
圖59說明電腦系統1及備份記憶裝置150在備份操作之前或之後的功能組態。在SSD 2之NAND記憶體16中的恢復啟動載入器區域16V中,儲存用於將啟動載入器300恢復至藉由控制工具200進行重寫之前的狀態之啟動載入器恢復資訊350。區域16V可在有效期限達到處理時藉由控制工具200分配,在啟動控制工具200時分配,或在將控制工具安裝於SSD 2中時分配。藉由SSD 2中之管理資訊45(參見圖22)將LBA分配給所分配之區域16V。
圖60說明根據當前實施例之有效期限達到處理的操作程序。在有效期限達到處理中,備份記憶裝置150可不連接至主機機器3。在有效期限達到處理中,亦即,在改變啟動載入器300之前,控制工具200將啟動載入器300之備份資訊(亦即,啟動載入器恢復資訊350)寫入恢復啟動載入器區域16V中(步驟S320)。作為待寫入區域16V中之資訊,例如,可將關於儲存於區域16C中之啟動載入器300的所有資料(映像)直接複製於區域16V中,或可將啟動載入器300之資料與將寫入至區域16C中之新資料之間的差異資訊記錄於區域16V中。
在將差異資訊記錄於區域16V中之狀況下,例如,如圖61中所展示,有可能使用重寫差異日誌作為差異資訊,在 該重寫差異日誌中,記錄重寫之前的資料與經重寫LBA之間的對應關係。當使用重寫差異日誌時,控制工具200將儲存於區域16C中之啟動載入器300中的經重寫LBA寫入至經重寫差異日誌之「經重寫LBA」,且將同一LBA之重寫之前的資料寫入至重寫差異日誌之「重寫之前的資料」。舉例而言,當邏輯磁區(其為LBA之最小單位)為512個位元組時,寫入差異日誌之「重寫之前的資料」之一個元素可為512個位元組之資料,或藉由對重寫之前的資料進行壓縮或執行可逆變換獲得之不同於512個位元組的資料。當藉由使用重寫差異日誌將啟動載入器300自新啟動載入器恢復至舊啟動載入器時,關於區域16C,藉由將「重寫之前的資料」寫入至藉由重寫差異日誌之「經重寫LBA」指示的LBA而將啟動載入器300恢復至舊啟動載入器。
此後,控制工具200重寫啟動載入器300,使得當下次以類似於在第一實施例中解釋之方式的方式使電腦系統1開機時,將緊急OS 100B而非正常OS 100A讀取至主記憶體6(步驟S321)。
為了促進在稍後將描述之備份操作時搜尋恢復啟動載入器區域16V,需要控制工具200預先將恢復啟動載入器區域16V之起始LBA(開始LBA)寫入啟動載入器區域16C中(步驟S322)。未必需要將恢復啟動載入器區域16V之起始LBA寫入啟動載入器區域16C中,且區域16V可藉由預先將特定資料型樣寫入區域16V之起始處中及在備份(稍後將描述)時搜尋此特定資料型樣來指定,可藉由使區域16V與預定 的特定LBA固定相關聯及在備份(稍後將描述)時存取特定LBA來指定,或可藉由其他方法來指定。
在步驟S321之後,電腦系統1可以類似於第一實施例之方式來重新開機,或可以類似於第五實施例之方式傳輸SSD 2之再新控制命令。此外,可將恢復啟動載入器區域16V儲存於不同於SSD 2之記憶裝置中。
圖62說明藉由緊急OS 100B進行之備份操作。在備份時,當備份記憶裝置150未連接至主機機器3時,使用者將備份記憶裝置150連接至主機機器3。此時,控制工具200可在顯示器9上向使用者顯示訊息「請連接備份裝置」。
自NAND記憶體16中之區域16E載入至主記憶體6中之區域6A中的緊急OS以類似於第一實施例之方式將SSD 2中之資料複製至備份記憶裝置150(步驟S330)。舉例而言,作為備份方法,當使用逐LBA備份且將SSD 2之所有LBA區域複製至備份記憶裝置150時,將儲存於區域16D中之正常OS 100A複製至備份記憶裝置150中之區域150D,且將儲存於區域16U中之其他使用者資料複製至區域150U。可將儲存於啟動載入器區域16C中之啟動載入器300複製至備份記憶裝置150中之區域100C,或可能不複製啟動載入器300。可將儲存於區域16E中之緊急OS 100B複製至備份記憶裝置150中之區域150E,或可能不複製緊急OS 100B。此外,可能不將儲存於恢復啟動載入器區域16V中之啟動載入器恢復資訊350複製至備份記憶裝置150。
緊急OS 100B基於啟動載入器恢復資訊350及關於啟動載 入器300之資料產生待儲存於備份記憶裝置150中之啟動載入器320,且將所產生之啟動載入器320寫入至備份記憶裝置150之區域150C,使得當在電腦系統1下次開機時載入啟動載入器320時,將正常OS 100A載入至主記憶體6中之區域6A中(步驟S331)。
在圖60中之步驟S320中的啟動載入器之備份處理中,當將關於儲存於區域16C中之啟動載入器300的資料(映像)直接複製至恢復啟動載入器區域16V時,在圖62中之步驟S331中,可將恢復啟動載入器區域16V中之啟動載入器恢復資訊350直接複製至備份記憶裝置150中之區域150C中。
此外,在圖60中之步驟S320中的啟動載入器之備份處理中,在將啟動載入器區域16C中之重寫差異資訊記錄於恢復啟動載入器區域16V中的狀況下,具體而言,在將在啟動載入器區域16C自舊啟動載入器資料重寫至新啟動載入器資料時之關於舊啟動載入器資料及新啟動載入器資料的重寫差異資訊記錄於恢復啟動載入器區域16V中之狀況下,在圖62中之步驟S331中,緊急OS 100B將啟動載入器區域16C中之資料(新啟動載入器資料)及為儲存於恢復啟動載入器區域16V中之差異資料的啟動載入器恢復資訊350讀取至主記憶體6,基於啟動載入器恢復資訊350將新啟動載入器資料恢復至舊啟動載入器資料,且將經恢復之舊啟動載入器寫入至備份記憶裝置150中之區域150C中。
在執行以上備份處理之後,當在已達到其有效期限終止之SSD 2藉由自IF0移除SSD 2而與主機機器3分離且備份記 憶裝置150藉由將備份記憶裝置150連接至IF1而連接至主機機器3的狀態下使電腦系統1開機時,主機機器3讀取備份記憶裝置150中之啟動載入器320,且主機機器3基於關於啟動載入器320之資訊將備份記憶裝置150中之區域150D載入至主記憶體6中之區域6A,使得正常OS啟動。當備份記憶裝置150對應於介面IF0時,備份記憶裝置150可由SSD 2替換,且備份記憶裝置150可連接至介面IF0。當備份記憶裝置150不對應於介面IF0時,備份記憶裝置150可由SSD 2替換,且備份記憶裝置150可經由介面轉換器連接至介面IF0。
以此方式,即使當SSD 2已達到其EOL時,電腦系統1仍可在備份記憶裝置中恢復儲存於SSD 2中之使用者資料及正常OS,且使用者可用備份記憶裝置150替換SSD 2而不執行額外設定及不重新安裝正常OS,且將備份記憶裝置150而非SSD 2用作系統磁碟機,
(第八實施例)
在當前實施例中,當SSD 2所連接至的主機機器在SSD 2自異常狀態(有效期限達到狀態)恢復至正常狀態(健康狀態)之後開機時,控制啟動正常OS而非緊急OS。
作為統計資訊,例如,在使用特定參數(諸如,當前溫度X20及最高溫度X21)的狀況下,該參數指示可靠性隨著其值變大而變差且具有甚至在增加至不利地影響可靠性之值之後仍能夠再次恢復至正常值的特性,例如,使用RMAX=85℃作為關於此等統計資訊之RMAX,且在滿足溫 度超過操作保證溫度之條件時,諸如當(統計資訊之值)>RMAX或(統計資訊之值)RMAX時,控制工具200重寫啟動載入器300,使得當電腦系統1下次開機時,控制緊急OS 100B而非正常OS 100A以讀取至主記憶體6。
緊急OS 100B在啟動之後監視統計資訊之值,且當滿足(統計資訊之值)(RMAX-MAX邊限)或(統計資訊之值)<(RMAX-MAX邊限)且統計資訊再次返回至正常值時重寫啟動載入器300,藉此執行在電腦系統1下次開機時將正常OS 100A而非緊急OS 100B讀取至主記憶體6之啟動載入器恢復處理。
MAX邊限為零或大於零之值,然而,需要MAX邊限為大於零之值,從而防止頻繁地進行啟動載入器300之重寫。當統計資訊為當前溫度或最高溫度時,例如,將MAX邊限設定為等於5℃。當使用SMART資訊用於獲得統計資訊且判定條件時,可使用屬性值及臨限值,或可使用原始值及RMAX。此外,當在正常OS之啟動期間統計資訊自異常狀態恢復至正常狀態時,可藉由控制工具200執行以上啟動載入器恢復處理。
作為統計資訊,在使用特定參數(諸如,當前溫度X20及最低溫度X22)的狀況下,該參數指示可靠性隨著其值變小而變差且具有甚至在減小至不利地影響可靠性之值之後仍能夠再次恢復至正常值的特性,使用RMIN=-10℃作為RMIN,且在滿足溫度超過(例如)操作保證溫度之條件時,諸如當(統計資訊之值)<RMIN或(統計資訊之值)RMIN 時,控制工具200重寫啟動載入器300,使得當電腦系統1下次開機時,控制緊急OS 100B而非正常OS 100A以讀取至主記憶體6。
緊急OS 100B在啟動之後監視統計資訊之值,且當滿足(統計資訊之值)(RMIN+MIN邊限)或(統計資訊之值)>(RMIN+MIN邊限)且統計資訊再次返回至正常值時重寫啟動載入器300,藉此執行在電腦系統1下次開機時將正常OS 100A而非緊急OS 100B讀取至主記憶體6之啟動載入器恢復處理。
MIN邊限為零或大於零之值,然而,需要MIN邊限為大於零之值,從而防止頻繁地進行啟動載入器300之重寫。當統計資訊為當前溫度或最低溫度時,例如,將MIN邊限設定為等於5℃。當使用SMART資訊用於獲得統計資訊且判定條件時,可使用屬性值及臨限值,或可使用原始值及RMIN。
接下來,將詳細解釋控制工具200在有效期限達到處理中之操作。當啟動載入器300自異常狀態(有效期限達到狀態)恢復至正常狀態(健康狀態)時,需要藉由以上啟動載入器恢復處理將啟動載入器300恢復至在有效期限達到處理中進行重寫之前的啟動載入器。圖63說明電腦系統1在啟動載入器恢復處理之前及之後的功能組態。在SSD 2之NAND記憶體16中的恢復啟動載入器區域16V中,儲存用於將啟動載入器300恢復至藉由控制工具200進行重寫之前的狀態之啟動載入器恢復資訊350。區域16V可在有效期限 達到處理時藉由控制工具200分配,在啟動控制工具200時分配,或在將控制工具200安裝於SSD 2中時分配。藉由SSD 2中之管理資訊45(參見圖22)將LBA分配給所分配之區域16V。此外,當前實施例中之區域16V可用於在備份時恢復啟動載入器以作為與展示於圖59中之區域16V相同的區域,或可為不同於展示於圖59中之區域16V的區域。
有效期限達到處理之程序類似於圖60中所展示之程序。具體而言,控制工具200在有效期限達到處理中將啟動載入器300之備份資訊(亦即,啟動載入器恢復資訊350)寫入恢復啟動載入器區域16V中(步驟S320)。作為待寫入區域16V中之資訊,例如,可直接複製關於儲存於區域16C中之啟動載入器300的資料(映像),或可記錄關於啟動載入器之重寫差異資訊。此後,控制工具200重寫啟動載入器300,使得當電腦系統1下次開機時,將緊急OS 100B而非正常OS 100A讀取至主記憶體6(步驟S321)。
此外,為了促進在稍後將描述之備份操作時搜尋恢復啟動載入器區域16V,需要控制工具200預先將恢復啟動載入器區域16V之起始LBA寫入啟動載入器區域16C中(步驟S322)。未必需要將恢復啟動載入器區域16V之起始LBA寫入啟動載入器區域16C中,且區域16V可藉由將特定資料型樣寫入區域16V之起始處及在備份(稍後將描述)時搜尋此特定資料型樣來指定,可藉由使區域16V與預定的特定LBA固定相關聯及在備份(稍後將描述)時存取特定LBA來指定,或可藉由其他方法來指定。
在步驟S321之後,電腦系統1可以類似於第一實施例之方式來重新開機,或可以類似於第五實施例之方式傳輸SSD 2之再新控制命令。此外,可將恢復啟動載入器區域16V儲存於不同於SSD 2之記憶裝置中。
圖64說明藉由緊急OS 100B進行之啟動載入器恢復處理。在有效期限達到處理之後(在異常狀態處理之後),當藉由使用緊急OS來使電腦系統1開機時,緊急OS 100B藉由使用(例如)上文描述之「智慧讀取資料」來監視統計資訊,且判定統計資訊是否返回至正常值(步驟S340)。當統計資訊基於上述判定參考而返回至正常值(步驟S340:是)時,緊急OS 100B產生啟動載入器且將該所產生之啟動載入器寫入至啟動載入器區域16C(步驟S341),該啟動載入器進行處理以基於儲存於恢復啟動載入器區域16V中之啟動載入器恢復資訊350及關於儲存於啟動載入器區域16C中之啟動載入器300之資料來將正常OS 100A載入至主記憶體6中之區域6A中。因此,當在電腦系統1下次開機時載入啟動載入器300時,將正常OS 100A載入至主記憶體6中之區域6A中。
在圖60中之步驟S320中的啟動載入器之備份處理中,當將關於儲存於區域16C中之啟動載入器300的資料(映像)直接複製至恢復啟動載入器區域16V時,在圖64中之步驟S341中,可將恢復啟動載入器區域16V中之啟動載入器恢復資訊350直接複製至備份記憶裝置150中之區域150C中。
此外,在圖60中之步驟S320中的啟動載入器之備份處理 中,在將啟動載入器區域16C中之重寫差異資訊記錄於恢復啟動載入器區域16V中的狀況下,具體而言,在將在啟動載入器區域16C自舊啟動載入器資料重寫至新啟動載入器資料時的關於舊啟動載入器資料及新啟動載入器資料之重寫差異資訊記錄於恢復啟動載入器區域16V中之狀況下,在圖64中之步驟S341中,緊急OS 100B將啟動載入器區域16C中之資料(新啟動載入器資料)及為儲存於恢復啟動載入器區域16V中之差異資料的啟動載入器恢復資訊350讀取至主記憶體6,基於啟動載入器恢復資訊350將新啟動載入器資料恢復至舊啟動載入器資料,且將經恢復之舊啟動載入器寫入至備份記憶裝置150中之區域150C中。
以此方式,在當前實施例中,如圖65中所展示,當統計資訊暗示SSD 2自正常狀態改變至異常狀態時,執行用以啟動異常狀態OS之操作的異常狀態達到處理,且當統計資訊暗示SSD 2自異常狀態返回至正常狀態時,執行用以啟動正常OS之操作的啟動載入器恢復處理。
以此方式,甚至在SSD 2臨時進入異常狀態時,在SSD 2恢復至正常狀態(健康狀態)之後,電腦系統1仍啟動正常OS,使得使用者可在不執行額外設定及重新安裝正常OS之情況下以與有效期限達到處理之前的方式相同之方式使用SSD 2。
(第九實施例)
圖66說明電腦系統1001之外觀組態,電腦系統1001為在上面掛載有外部記憶裝置之資訊處理機器。圖66說明一般 桌上型個人電腦1001之組態。SSD 1010(其為外部記憶裝置)經由至供應電源之電源纜線1131連接至電源電路1132。SSD 1010經由SATA(串列進階附接技術)纜線1136實體連接至主機板1130,以便能夠與主機板1130通信。經由SATA纜線1136之通信符合SATA標準。CPU及其類似者(未圖示)掛載於主機板1130上。顯示器1133、鍵盤1134、滑鼠1135及其類似者連接至主機板1130。電腦系統不限於桌上型個人電腦,且膝上型或筆記型個人電腦亦為適用的。
上面掛載有外部記憶裝置之裝備系統(主機1100)可為諸如靜態相機及視訊攝影機之成像機器、遊戲機、車輛導航系統或其類似者。替代SSD 1010,有可能使用其他外部記憶裝置,諸如硬碟機(HDD)及混合式硬碟機(混合式HDD)。此外,在SSD與電腦之間使用的連接標準可為不同於SATA標準之其他介面標準,諸如USB(通用串列匯流排)標準、PCI Express標準或串列附接SCSI(SAS)標準。
圖67說明上面掛載有SSD 1010之主機1100的系統組態實例。主機1100包括:CPU 1200、北橋1201、主記憶體1202(諸如,DRAM、SRAM及MRAM)、顯示控制器1203、顯示器1133、南橋1205、光碟機1206、BIOS-ROM 1207、LAN控制器1208、USB控制器1209、鍵盤1134、滑鼠1135及其類似者。
CPU 1200為經提供以用於控制主機1100之操作的處理器,且執行自SSD 1010載入主記憶體1202中之作業系統 (OS)。此外,當光碟機1206能夠對所載入之光碟執行讀取處理及寫入處理中之至少一者時,CPU 1200執行該處理。
此外,CPU 1200執行儲存於BIOS-ROM 1207中之系統BIOS(基本輸入輸出系統)。系統BIOS為用於控制主機1100中之硬體的程式。
北橋1201為連接至CPU 1200之區域匯流排的橋接器裝置。用於執行對主記憶體1202之存取控制之記憶體控制器建置於北橋1201中。此外,北橋1201具有(例如)執行與顯示控制器1203之通信的功能。
主記憶體1202將程式及資料臨時儲存於其中,且充當CPU 1200之工作區域。主記憶體1202(例如)由DRAM、SRAM或MRAM組成。顯示控制器1203為用於控制電腦系統之顯示器1133的視訊再現控制器。
南橋1205為連接至CPU 1200之區域匯流排的橋接器裝置。南橋1205經由ATA介面1090來控制SSD 1010,SSD 1010為用於儲存各種類型之軟體及資料的記憶裝置。
主機1100以邏輯磁區為單位來存取SSD 1010。寫入命令(寫入請求)、讀取命令(讀取請求)、清空命令及其類似者經由ATA介面1090輸入至SSD 1010。
南橋1205具有執行對BIOS-ROM 1207、光碟機1206、LAN控制器1208及USB控制器1209之存取控制之功能。鍵盤1134及滑鼠1135連接至USB控制器209。
在圖67中,當電腦系統之電源斷開時,OS 1150、性能評估工具1110、存取日誌表1120、性能日誌表1125及軟體 (諸如,文書處理軟體、數值軟體、遊戲軟體及影像編輯軟體)1140儲存於SSD 1010中。當主機之電源接通或調用此等功能時,將該等功能自SSD 1010載入至主記憶體1202中。軟體1140為不同於性能評估工具1110之軟體,且使用SSD 1010。性能評估工具1110為執行SSD 1010之性能評估的軟體,且包括存取資訊獲得工具1111及性能資訊獲得工具1112。
如圖68中所展示,例如,當主機1100之電源斷開時,性能評估工具1110作為性能評估工具1110A儲存於SSD 1010之NAND記憶體1020中,然而,當啟動主機1100或啟動程式時,將性能評估工具1110A自NAND記憶體1020載入至主記憶體1202中。另一方面,當複數個外部記憶裝置連接至主機1100時,如圖69中所展示,性能評估工具1110可作為性能評估工具1110B儲存於不同於SSD 1010之外部記憶裝置1300中,且在啟動主機1100或程式時,性能評估工具1110B可自外部記憶裝置1300載入至主記憶體1202中。特別地,當外部記憶裝置1300用作用於儲存OS 1150之系統磁碟機且SSD 1010用作用於儲存諸如文獻、靜態影像資料及移動映像資料之使用者資料的資料磁碟機時,就將磁碟機1010與磁碟機1300之作用彼此清楚地區分(諸如,在將為系統磁碟機之外部記憶裝置1300用作用於主要儲存OS及應用程式之磁碟機且將為資料磁碟機之SSD 1010用作用於儲存使用者資料之磁碟機的狀況下)而言,需要將性能評估工具1110儲存於作為系統磁碟機之外部記憶裝置1300 中。
就節省用於設置性能評估工具(例如,如圖68及圖69中所展示)所需之使用者人工而言,需要電腦系統1001在性能評估工具儲存於SSD 1010或外部記憶裝置1300中之狀態下進行運輸,運達商店,且交付給使用者。另一方面,就使得使用者能夠選擇是否安裝性能評估工具且使得能夠將最新性能評估工具提供至使用者而言,需要藉由自WEB下載性能評估工具或自諸如DVD-ROM及USB記憶體之外部儲存媒體安裝性能評估工具而使該性能評估工具能夠儲存於SSD 1010或外部記憶裝置1300中。
圖70說明自WEB下載性能評估工具之狀況的實例。在圖70中,性能評估工具1110C儲存於WEB伺服器上之儲存媒體1400中,且性能評估工具1110C(例如)經由LAN控制器1208經由諸如網際網路、區域網路及無線LAN的網路下載至SSD 1010或外部記憶裝置1300。
圖71說明自諸如DVD-ROM及CD-ROM之光學媒體安裝性能評估工具之狀況的實例。性能評估工具1110D儲存於諸如DVD-ROM及CD-ROM之光學媒體1500中,且藉由將光學媒體1500設置於光碟機1206中經由光碟機1206而安裝於SSD 1010或外部記憶裝置1300中。
圖72說明自USB記憶體安裝性能評估工具之狀況的實例。性能評估工具1110E儲存於USB記憶體1600中,且藉由將USB記憶體1600連接至USB控制器1209經由USB控制器1209而安裝於SSD 1010或外部記憶裝置1300中。顯然, 可替代USB記憶體1600使用諸如SD卡之其他外部記憶體。就使性能評估工具易於供使用者使用而言,當運輸SSD 1010時,需要將光學媒體1500或USB記憶體1600作為配件與SSD 1010包裝在一起。另一方面,光學媒體1500或USB記憶體1600可作為軟體產品單獨出售,或可作為附贈物附加至雜誌或書籍。
存取資訊獲得工具1111順序地將OS 1150或不同於性能評估工具1110之軟體1140通常存取SSD 1010時的命令作為存取日誌記錄於存取日誌表1120中。性能資訊獲得工具1112藉由使用記錄於存取日誌表1120中之存取日誌來計算關於SSD 1010之性能資訊,且將此計算結果作為性能資訊日誌記錄於性能日誌表1125中。
圖73說明主機1100之各種元件的階層式結構。性能評估工具1110及軟體1140經由OS 1150與SSD 1010通信。具體而言,當性能評估工具1110或軟體1140需要存取SSD 1010時,性能評估工具1110及軟體1140經由OS 1150傳送指令、回應及資料。
圖74說明SSD 1010之內部組態實例。SSD 1010包括:NAND型快閃記憶體(下文中,NAND記憶體)1020,其為非揮發性半導體記憶體;介面控制器1030,其經由ATA介面1090與主機1100通信;RAM(隨機存取記憶體)1040,其為揮發性半導體記憶體且包括充當介面控制器1030與NAND記憶體1020之間的中間緩衝器之快取記憶體(CM)1040a;記憶體控制器1050,其執行對NAND記憶體1020及RAM 1040之管理及控制以及對介面控制器1030之控制;ECC電路1058,其執行自NAND記憶體1020讀取之資料的錯誤校正處理;及匯流排1057,其連接此等組件。
可使用以下各者作為RAM 1040:DRAM(動態隨機存取記憶體)、SRAM(靜態隨機存取記憶體)、FeRAM(鐵電隨機存取記憶體)、MRAM(磁阻隨機存取記憶體)、PRAM(相位電荷隨機存取記憶體),及其類似者。
NAND記憶體1020將藉由主機1100指定之使用者資料儲存於其中,儲存管理使用者資料之管理表,且儲存藉由RAM 1040管理之管理資訊以供備份。NAND記憶體1020包括複數個記憶體晶片,且每一記憶體晶片包括作為資料抹除單位之複數個區塊。實體區塊包括複數個實體頁面。實體頁面係作為資料寫入及資料讀取之單位。
組態NAND記憶體1020之記憶體晶胞陣列之記憶體電晶體各自係由MOSFET(金氧半導體場效電晶體)組成,該MOSFET具有形成於半導體基板上之堆疊閘極結構。堆疊閘極結構包括:電荷儲存層(浮動閘極電極),其經由閘極介電薄膜而形成於半導體基板上;及控制閘極電極,其經由閘極間介電薄膜而形成於浮動閘極電極上。在記憶體晶胞電晶體中,臨限電壓根據儲存於浮動閘極電極中之電子之數目而改變,且資料係根據此臨限電壓之差而儲存。記憶體晶胞電晶體可經組態以儲存1個位元,或可經組態以儲存多個值(2個位元或2個以上位元之資料)。記憶體晶胞電晶體並不限於具有包括浮動閘極電極之結構,且可具有 諸如MONOS(金屬氧化氮氧化矽)類型之結構,在該結構中,可藉由將電子捕獲於作為電荷儲存層之氮化物界面中來調整臨限電壓。MONOS類型之記憶體晶胞電晶體可經組態以儲存1個位元,或可經組態而以類似於MOSFET類型之記憶體晶胞電晶體的方式儲存多個值。此外,記憶體晶胞可為經三維配置之記憶體晶胞,如在美國專利申請公開案第2010 0172189號及美國專利申請公開案第2010 0254191號中所描述。
RAM 1040包括充當主機1100與NAND記憶體1020之間的資料傳送快取記憶體之快取記憶體(CM)1040a。此外,RAM 1040充當管理資訊儲存記憶體及工作區域記憶體。在RAM 1040中管理之管理表係藉由(例如)在啟動時載入儲存於NAND記憶體1020中之各種管理表來獲得,且週期性地或在斷開電源時保存於NAND記憶體1020中。
記憶體控制器1050之功能係藉由執行儲存於NAND記憶體1020中之系統程式(韌體)之處理器、各種硬體電路及其類似者來實現,且記憶體控制器1050關於以下各者而執行(例如)主機1100與NAND記憶體1020之間的資料傳送控制:來自主機1100之各種命令(諸如,寫入請求、快取記憶體清空請求及讀取請求),及儲存於RAM 1040及NAND記憶體1020中之各種管理表的更新及管理。介面控制器1030在記憶體控制器1050之控制下經由ATA介面1090將指令及資料傳輸至主機1100及自主機1100接收指令及資料。
當主機1100將讀取請求或寫入請求發出至SSD 1010時, 主機1100經由ATA介面1090輸入LBA(邏輯區塊定址)作為邏輯位址。LBA為自零開始之序號附加至邏輯磁區(大小:例如,512 B)的邏輯位址。此外,當將讀取請求或寫入請求發出至SSD 1010時,除LBA以外,主機1100亦輸入將為讀取請求或寫入請求之目標的邏輯磁區大小。
當自主機1100輸入指令時,介面控制器1030接收指令,且將所接收之指令傳輸至記憶體控制器1050。記憶體控制器1050處理所接收之指令。如上文所描述,指令包括LBA,且主機1100藉由使用LBA來指定資料在外部記憶裝置中之位置。記憶體控制器1050藉由參考RAM 1040中之管理資訊而將為自主機1100接收之邏輯位址的LBA轉譯成實體位址。藉由所轉譯之實體位址指定NAND記憶體1020中之記憶體晶胞的實體位置。
圖75說明用於SSD 1010中之管理資訊的組態。如上文所描述,管理資訊係以非揮發性形式儲存於NAND記憶體1020中。儲存於NAND記憶體1020中之管理資訊係在啟動SSD 1010時載入至RAM 1040中且使用。RAM 1040中之管理資訊係週期性地或在斷開電源時保存於NAND記憶體1020中。當RAM 1040為諸如MRAM及FeRAM之非揮發性RAM時,管理資訊可僅儲存於RAM 1040中,且在此狀況下,管理資訊未儲存於NAND記憶體1020中。
如圖75中所展示,管理資訊包括自由區塊表1021、作用中區塊表1022、磁軌表(以磁軌為單位管理之邏輯-實體轉譯表)1023,及叢集表(以叢集為單位之邏輯-實體轉譯 表)1024。
如圖76中所展示,LBA為自零開始之序號附加至邏輯磁區(大小:例如,512 B)的邏輯位址。在當前實施例中,作為SSD 1010之邏輯位址(LBA)的管理單位,定義由在次序上等於或高於LBA之低階第(s+1)位元的位元串形成之叢集位址及由在次序上等於或高於LBA之低階第(s+t+1)位元之位元串形成的磁軌位址。換言之,邏輯磁區為自主機1100之最小存取單位。叢集為用於管理SSD中之「小資料」的管理單位,且將叢集大小設定為大達邏輯磁區大小之自然數倍的大小。磁軌為用於管理SSD中之「大資料」的管理單位,且將磁軌大小設定為大達叢集大小之兩倍或更大自然數倍的大小。因此,磁軌位址為將LBA除以磁軌大小時之商,且磁軌內位址為LBA除以磁軌大小時之餘數,且叢集位址為將LBA除以叢集大小時之商,且叢集內位址為將LBA除以叢集大小時之餘數。在以下解釋中,為方便起見,磁軌之大小等於可記錄於一個實體區塊中之資料的大小(當用於在ECC電路1058中執行之錯誤校正的冗餘位元包括於實體區塊中時,排除冗餘位元之大小),且叢集之大小等於可記錄於一個實體頁面中之資料的大小(當用於在ECC電路1058中執行之錯誤校正的冗餘位元包括於實體頁面中時,排除冗餘位元之大小)。
˙自由區塊表(FB表)1021管理NAND記憶體中之實體區塊(自由區塊:FB)的ID,在執行至NAND記憶體1020之寫入時可新分配該等實體區塊以供寫入且不將使用分配給該 等實體區塊。此外,自由區塊表1021管理每一實體區塊ID之抹除計數。
˙作用中區塊表(AB表)1022管理為經分配使用之實體區塊的作用中區塊(AB)。此外,作用中區塊表1022管理每一實體區塊ID之抹除計數(抹除計數)。
˙磁軌表1023管理磁軌位址與儲存對應於該磁軌位址之磁軌資料的實體區塊ID之間的對應關係。
˙叢集表1024管理叢集位址、儲存對應於該叢集位址之叢集資料的實體區塊ID及儲存對應於此叢集位址之叢集資料的實體區塊內頁面位址之間的對應關係。
接下來,將參看圖77來解釋用於自SSD 1010中之LBA指定實體位址的程序(LBA前向查找轉譯)。當LBA經指定時,記憶體控制器1050自LBA計算磁軌位址、叢集位址及叢集內位址。
記憶體控制器1050首先搜尋磁軌表1023,且指定對應於所計算之磁軌位址的實體區塊ID(步驟S1100及S1101)。記憶體控制器1050判定所指定之實體區塊ID是否有效(步驟S1102)。當實體區塊ID並非空值(亦即,有效值)(步驟S1102中之是)時,記憶體控制器1050搜尋此實體區塊ID是否已鍵入作用中區塊表1022中(步驟S1103)。當實體區塊ID已鍵入作用中區塊表1022中(步驟S1104中之是)時,自藉由實體區塊ID指定之實體區塊的起始位置移位磁軌內位址的位置變為NAND記憶體1020中對應於所指定之LBA之實體位置(步驟S1105)。在此狀況下,無需叢集表1024來 指定NAND記憶體1020中對應於LBA之實體位置,且將此LBA稱作「以磁軌為單位管理之LBA」。在步驟S1104中,當實體區塊ID未鍵入作用中區塊表1022中(步驟S1104中之否)時,所指定之LBA並不具有實體位址,且將此狀態稱作「未寫入狀態」(步驟S1106)。
在步驟S1102中,當對應於所指定之磁軌位址之實體位址為空值(亦即,無效值)(步驟S1102中之否)時,記憶體控制器1050自LBA計算叢集位址,且搜尋叢集表1024以獲得實體區塊ID及對應於所計算之叢集位址之對應實體區塊內頁面位址(步驟S1107)。自藉由實體區塊ID及實體區塊內頁面位址指定之實體頁面的起始位置移位叢集內位址的位置變為NAND記憶體1020中對應於所指定之LBA之實體位置。在此狀況下,NAND記憶體1020中對應於LBA之實體位置不可僅藉由磁軌表1023來指定,且需要參考叢集表1024,且將此LBA稱作「以叢集為單位管理之LBA」(步驟S1108)。
接下來,將參看圖78及圖79來解釋SSD 1010中之讀取操作。當SSD 1010自主機1100接收到讀取指令(步驟S1110)時,記憶體控制器1050將此讀取指令添加至RAM 1040中之讀取指令佇列(步驟S1111),且將指示讀取指令之接收的通知傳回至主機1100。
另一方面,當RAM 1040中之讀取指令佇列中存在指令時,記憶體控制器1050判定是否可執行讀取處理(步驟S1120)。當記憶體控制器1050判定可執行讀取處理時,記 憶體控制器1050根據展示於圖77中之LBA前向查找轉譯程序基於自主機1100接收之LBA來指定資料之實體位置(步驟S1121)。記憶體控制器1050自所指定之位置之實體頁面讀取資料(步驟S1123),且經由介面控制器1030將所讀取之資料傳輸至主機1100(步驟S1124)。自NAND記憶體1020讀取之資料可曾經寫入RAM 1040中,且接著可將寫入RAM 1040中之資料傳輸至主機1100。
接下來,將參看圖80及圖81來解釋SSD 1010中之寫入操作。當SSD 1010自主機1100接收到寫入指令(步驟S1130)時,記憶體控制器1050將此寫入指令添加至RAM 1040中之寫入指令佇列中(步驟S1131),且將指示寫入指令之接收的通知傳回至主機1100。
另一方面,當RAM 1040中之寫入指令佇列中存在指令時,記憶體控制器1050判定是否可執行寫入處理(步驟S1140)。當記憶體控制器1050判定可執行寫入處理時,記憶體控制器1050通知主機1100可執行寫入處理,自主機1100接收寫入資料,且將所接收之資料儲存於RAM 1040之快取記憶體1040a中。接下來,記憶體控制器1050讀取自由區塊表1021(步驟S1141),且自該自由區塊表1021獲得自由區塊之實體區塊ID。當不存在自由區塊(步驟S1142)時,記憶體控制器1050對NAND記憶體1020執行稍後將描述之組織處理(NAND組織處理)(步驟S1143),且此後讀取自由區塊表1021(步驟S1144)並自該自由區塊表1021獲得自由區塊之實體區塊ID。
接下來,為了搜尋藉由寫入指令指定之LAB是否處於未寫入狀態,記憶體控制器1050根據展示於圖77中之前向查找轉譯程序判定對應於LAB之有效資料是否已儲存於NAND記憶體1020中(步驟S1145及S1146)。
當LBA處於未寫入狀態(步驟S1146中之是)時,記憶體控制器1050將儲存於快取記憶體1040a中之所接收之資料寫入至自由區塊(步驟S1147),將資料寫入至之自由區塊(新實體區塊)的ID及關於該自由區塊之抹除計數暫存於作用中區塊表1022中,且自該自由區塊表1021刪除資料寫入至之實體區塊的ID(步驟S1151)。此時,藉由以下操作來判定以磁軌為單位抑或以叢集為單位來管理LBA:將所接收之資料之LBA分成以磁軌為單位之數個區段(磁軌區段),及判定磁軌區段是否用資料填滿(步驟S1152)。換言之,當磁軌區段用資料填滿時,以磁軌為單位來管理LBA;且當並非所有磁軌區段用資料填滿時,以叢集為單位來管理LBA。當以叢集為單位來管理LBA時,重寫叢集表1024並使LBA與新實體區塊ID相關聯(步驟S1153);且此外,重寫磁軌表1023並使LBA與無效實體區塊ID(例如,空值)相關聯(步驟S1153)。當以磁軌為單位來管理LBA時,重寫磁軌表並使LBA與新實體區塊ID相關聯(步驟S1154)。
另一方面,在步驟S1146中,當LBA並非處於未寫入狀態時,記憶體控制器1050基於藉由前向查找轉譯獲得之實體區塊ID自NAND記憶體1020讀取對應實體區塊中之所有資料,且將資料寫入RAM 1040中(步驟S1148)。接著,記 憶體控制器1050組合儲存於快取記憶體1040a中之資料與RAM 1040中之自NAND記憶體1020讀取且寫入RAM 1040中之資料(步驟S1149),且將經組合資料寫入自由區塊中(步驟S1150)。記憶體控制器1050將寫入有資料之自由區塊(新實體區塊)之ID及關於該自由區塊之抹除計數暫存於作用中區塊表1022中,且自該自由區塊表刪除寫入有資料之實體區塊的ID(步驟S1151)。當以叢集為單位管理LBA時,記憶體控制器1050將叢集表1024中之舊實體區塊ID重寫成新實體區塊ID(步驟S1152及S1153)。當以磁軌為單位管理LBA時,記憶體控制器1050將磁軌表中之舊實體區塊ID重寫成新實體區塊ID(步驟S1152及S1154)。此外,記憶體控制器1050將舊實體區塊ID及關於舊實體區塊ID之抹除計數添加至自由區塊表1021,且自作用中區塊表1022刪除舊實體區塊ID及關於舊實體區塊ID之抹除計數(步驟S1155)。
SSD 1010中之整個LBA的容量經設計以小於SSD 1010之NAND記憶體1020的總容量,使得只要以磁軌為單位執行寫入操作,自由區塊就不會變為不夠的。另一方面,當以叢集為單位進行至未寫入LBA之寫入許多次時,容量大於叢集之實體區塊以叢集為單位用於寫入操作,使得在NAND記憶體1020中需要容量大於待寫入之資料的實體區塊,且因此自由區塊可變為不夠的。當自由區塊變為不夠的時,可藉由如下文所描述組織NAND記憶體1020(NAND廢棄項目收集(NAND GC))來獲得新自由區塊。
藉由管理方法以叢集為單位抑或以磁軌為單位來管理使用者資料取決於來自主機1100之寫入型樣。舉例而言,當自主機1100至SSD 1010執行大小等於或大於磁軌大小之順序寫入時,使寫入資料散佈至大於磁軌大小之連續LBA區,使得以磁軌為單位來管理使用者資料。另一方面,例如,當自主機1100至SSD 1010執行叢集大小之隨機寫入時,使寫入資料在屬於不同磁軌之不連續LBA區上分段,使得以叢集為單位來管理使用者資料。
接下來,將參看圖82來解釋SSD 1010中之NAND GC處理。並非儲存於實體區塊中之所有叢集始終為有效叢集,且無效叢集(亦即,除有效叢集以外之叢集)並不與LBA相關聯。有效叢集為寫入有最新資料之叢集,且無效叢集為由於具有相同LBA之資料寫入不同位置中而未參考的叢集。實體區塊具有針對無效叢集之量的資料之自由空間,且自由區塊可藉由執行收集有效叢集中之資料及將所收集之資料重寫於不同區塊中之NAND組織處理來獲得。
首先,將實體區塊ID(=i)設定為0,且將自由空間累積量S設定為0(步驟S1160)。記憶體控制器1050判定ID為i=0之實體區塊是否經鍵入磁軌表1023中(步驟S1161)。當實體區塊經鍵入磁軌表中時,使i遞增1(步驟S1162),且對具有下一數字之ID的實體區塊執行類似判定(步驟S1161)。換言之,當實體區塊ID包括於磁軌表1023中時,以磁軌為單位來管理此實體區塊中之資料,使得實體區塊不包括於NAND組織處理目標中。
當不以磁軌為單位來管理ID為i之實體區塊(步驟S1611中之否)時,記憶體控制器1050參考叢集表1024,且獲得包括於ID為i之實體區塊中之所有有效叢集之位址(步驟S1163)。接著,記憶體控制器1050獲得所獲得之有效叢集之總容量的大小z(步驟S1164)。在v<實體區塊大小(步驟S1165)之狀況下,記憶體控制器1050將當前實體區塊之ID添加至NAND GC處理目標區塊清單(步驟S1166)。此外,記憶體控制器1050將當前實體區塊之所獲得之叢集容量v添加至所獲得之叢集累積量S,且更新所獲得之叢集累積量S(步驟S1167)。
在步驟S1165中,在v實體區塊大小之狀況下或在步驟S1168中所獲得之叢集累積量S尚未達到實體區塊大小之狀況下,記憶體控制器1050使i遞增1(步驟S1162),且以類似於上文之方式對具有下一數字之ID的實體區塊執行步驟S1161至S1167中之程序。接著,在步驟S1168中,記憶體控制器1050重複步驟S1161至S1167中之程序,直至所獲得之叢集累積量S達到實體區塊大小。
接著,在步驟S1168中,當所獲得之叢集累積量S達到實體區塊大小時,記憶體控制器1050自NAND記憶體1020讀取NAND GC處理目標區塊清單上之所有實體區塊的所有叢集之資料,且將該資料寫入RAM 1040中(步驟S1169)。此外,記憶體控制器1050對NAND GC處理目標區塊清單上之所有實體區塊執行抹除處理(步驟S1170),且自作用中區塊表1022刪除執行抹除處理所在之所有實體區塊並將 該等實體區塊添加至自由區塊表1021(此時,使抹除計數遞增,步驟S1171)。接著,記憶體控制器1050自該自由區塊表1021獲得新自由區塊,將寫入RAM 1040中之資料寫入至所獲得之自由區塊(步驟S1172),資料寫入至之自由區塊之實體區塊ID及關於該區塊之抹除計數添加至作用中區塊表1022,且自該自由區塊表1021刪除資料寫入至之區塊的區塊ID(步驟S1173)。此外,記憶體控制器1050更新叢集表1024中之叢集位址、實體區塊ID及實體區塊內頁面位址以對應於此時之NAND GC處理(步驟S1174)。
在圖82中之程序中,藉由將使資料置於自由區塊中列入優先來處理NAND GC。另一方面,可藉由將藉由以下方式獲得自由區塊列入優先來處理NAND GC。舉例而言,在步驟S1164中藉由自實體區塊大小減去所獲得之叢集之容量來獲得大小v,且接著在步驟S1165中判定v是否>0,且當v>0時,處理進行至步驟S1168;且當v0時,處理進行至步驟S1162。
如上文所描述,NAND GC處理伴有對NAND記憶體1020中之實體區塊的許多讀取操作、寫入操作及抹除操作,且因此需要長時間。因此,若在自由區塊之數目變為不夠的狀態下執行寫入,則執行NAND GC處理,自主機1100來看,該NAND GC處理使寫入處理速度降低。以此方式,SSD之內部狀態瞬時地改變且因此易受來自外部之存取影響。
接著,將參看圖83來解釋SSD 1010中之刪除通知。刪除 通知為當在主機1100中之OS 1150中刪除資料時自主機1100傳輸至外部記憶裝置的指令。刪除通知之實例(例如)包括在INCITS ATA/ATAPI命令集-2(ACS-2)中描述之「資料集管理命令」(稱為TRIM命令)。在此方法中,當在OS 1150中刪除資料時,將呈現所刪除之資料之邏輯位址區(LBA區)作為由LBA及邏輯磁區之數目的組合組成之LBA範圍條目通知給外部記憶裝置,使得該區此後可用作甚至外部記憶裝置中之自由空間。刪除通知使得SSD 1010能夠獲得新自由區塊。替代「資料集管理命令」,TRIM命令之功能可藉由諸如在INCITS ACS-2中描述之「SCT命令輸送」、供應商唯一之命令及其類似者的其他命令來實現。
當SSD 1010自主機1100接收到刪除通知(步驟S1180)時,記憶體控制器1050根據展示於圖77中之程序對包括於刪除通知中之LBA執行LBA前向查找轉譯。當包括於刪除通知中之LBA係以磁軌為單位來管理(步驟S1181中之是)時,記憶體控制器1050將實體區塊ID添加至自由區塊表1021,且自作用中區塊表1022刪除該實體區塊ID(步驟S1184)。另一方面,當包括於刪除通知中之LBA係以叢集為單位來管理(步驟S1181中之否)時,記憶體控制器1050自叢集表1024刪除對應於實體區塊之所有叢集(步驟S1182),將適當有效值(例如,FFFF)寫入磁軌表1023中之對應於磁軌(該磁軌對應於LBA)之實體區塊ID中(步驟S1183),且將實體區塊ID添加至自由區塊表1021並自作用中區塊表1022刪除實體區塊ID(步驟S1184)。在SSD 1010 中,除NAND GC處理以外,亦可藉由刪除通知處理來獲得自由區塊。
接下來,將解釋SSD 1010之性能降級。圖84為SSD 1010之性能降級的概念圖。首先,描述寫入操作之性能降級(圖84中之實線)。緊接在自工廠運輸之後,無資料寫入SSD 1010中,且所有LBA處於未寫入狀態,使得幾乎所有實體區塊為自由區塊。在此狀態下,當存在自主機1100至SSD 10之寫入指令時,記憶體控制器1050可立即將資料寫入至自由區塊。然而,寫入量隨著使用者使用SSD 1010而增加,使得自由區塊之數目減小。特別地,當小於磁軌大小之資料的寫入發生許多次時,以叢集為單位來管理資料,使得容量大於叢集之實體區塊以叢集為單位來用於一個寫入操作。因此,當以叢集為單位來管理資料時,在NAND記憶體1020中需要容量大於待寫入之資料的實體區塊,使得自由區塊之數目可變為不夠的。使NAND GC處理待執行之機率隨著自由區塊之剩餘數目減小而增加。此外,在用於獲得一個自由區塊之NAND GC處理中需要讀取之作用中區塊的數目隨著儲存於SSD 1010中之使用者資料增加而增加。因此,NAND GC處理所需之時間亦增加。
寫入所需之時間藉由以下方程式來近似地表示(實際上,亦將管理表處理時間及其類似者加至寫入所需之時間)。
(寫入時間)=(至實體區塊之寫入時間)+(NAND GC處理 機率)×(NAND GC處理時間)
因為NAND GC處理機率及NAND GC處理時間兩者隨著累積寫入資料量增加而增加,所以寫入性能以加速之速度降低。另一方面,在寫入性能降級狀態下,例如,當執行順序寫入時,以磁軌為單位管理之資料的比率增加,且因此自由區塊之數目增加,藉此恢復寫入性能。此外,在寫入性能降級狀態下,當針對並非處於未寫入狀態之LBA區發出刪除通知時,釋放對應於並非處於未寫入狀態之LBA區的作用中區塊使其為自由區塊,使得寫入性能得到恢復。
圖85說明當來自主機1100之存取頻率低時藉由SSD 1010自身執行之NAND GC處理程序。當SSD 1010尚未自主機1100接收到命令歷時某一時間段(例如,10秒)或更長時間(處於閒置狀態)時,或當SSD 1010尚未接收到主機1100需要藉此存取NAND記憶體1020之命令(媒體存取命令)歷時某一時間段或更長時間(步驟S1190)時,NAND GC處理經執行(步驟S1191)以預先獲得自由區塊,藉此使得能夠防止寫入性能之降級(自動NAND GC處理)。性能降級可藉由增加使自動NAND GC處理待執行之頻率來有效地防止,然而,此情形導致關於NAND記憶體1020之抹除計數增加,此情形變為使SSD 1010之可靠性降低的因數。因此,需要考慮性能與可靠性之間的折衷關係來適當地調整直至開始NAND GC處理之時間。
接下來,將描述讀取操作之性能降級(圖84中之虛線)。 當讀取以磁軌為單位管理之使用者資料時,藉由搜尋磁軌表1023來執行前向查找轉譯,且搜尋目標元素之數目小達(總容量)÷(磁軌大小)。另一方面,在以叢集為單位管理之使用者資料的狀況下,需要藉由搜尋叢集表1024外加磁軌表1023來執行前向查找轉譯,使得搜尋目標元素之數目為(總容量)÷(叢集大小)的最大值。叢集大小通常實質小於磁軌大小,使得叢集表1024中之搜尋目標元素的數目顯著大於磁軌表1023中之搜尋目標元素的數目,藉此增加搜尋時間。因此,讀取所需之時間增加。舉例而言,當1個磁軌係由4096個叢集組成時,叢集表1024中之元素的數目為磁軌表1023中之元素之數目的4096倍。如上所述,讀取性能隨著以叢集為單位管理之資料至SSD 1010之寫入增加而降級。另一方面,在讀取性能降級狀態下,例如,當執行順序寫入時,以磁軌為單位管理之資料增加,使得讀取性能得到恢復。
圖86為一般讀取操作之性能測試的展示為比較實例之實例。在讀取性能測試中,主機1100執行用於讀取之測試資料型樣至測試目標LBA區的順序寫入。在寫入之後,主機1100量測開始時間,且將所量測之開始時間儲存於主機1100之主記憶體1202中。此外,主機1100藉由將用於對測試目標LBA區之測試的讀取指令傳輸至SSD 1010來使SSD 1010讀取寫入型樣,且在接收到讀取資料之後結束讀取。接著,主機1100量測讀取結束之時間,且將所量測之結束時間儲存於主機1100之主記憶體1202中。此後,CPU 1200 藉由自結束時間減去開始時間來獲得測試執行時間,且藉由將供測試之讀取資料量除以測試執行時間來獲得讀取傳送資料速率。
圖87為一般寫入操作之性能測試的展示為比較實例之實例。在寫入性能測試中,主機1100執行預調節資料型樣至測試目標LBA區之順序寫入(在一些測試中,預調節型樣資料未經寫入)。在寫入之後,主機1100量測開始時間,且將所量測之開始時間儲存於主機1100之主記憶體1202中。此外,主機1100藉由將用於對測試目標LBA區之測試的寫入指令傳輸至SSD 1010來使SSD 1010寫入一寫入型樣,且在自主機1100接收到寫入結束通知之後終止寫入。接著,主機1100量測寫入終止之時間,且將所量測之結束時間儲存於主機1100之主記憶體1202中。此後,CPU 1200藉由自結束時間減去開始時間來獲得測試執行時間,且藉由將供測試之寫入資料量除以測試執行時間來獲得寫入傳送資料速率。
以此方式,在以上性能量測中,對SSD 1010執行大量寫入,使得量測自身影響SSD之內部狀態,且因此內部狀態歸因於量測而偏離使用者之實際使用時的內部狀態,藉此使量測結果偏離使用者體驗之速度。舉例而言,當針對性能量測進行自主機1100至SSD 1010之順序寫入存取時,重寫SSD 1010中之管理資訊,使得以叢集為單位管理之資料改變為以磁軌為單位管理之資料,或自由區塊之數目減小。此情形使SSD在寫入性能測試及讀取性能測試兩者中 的最終計算性能偏離使用者體驗之性能,使用者體驗之性能為量測之前的性能。實務上,許多性能量測工具具有以各種量測對SSD執行數十億位元組或更多之資料的順序寫入之規範,使得藉由此等工具量測之性能很大程度上偏離使用者體驗之性能。
以下解釋當前實施例中之主要部分。在當前實施例中,藉由使用展示於圖67中之主記憶體1202中的性能評估工具1110來執行性能量測。如上文所描述,性能評估工具1110包括存取資訊獲得工具1111及性能資訊獲得工具1112。如圖73中所展示,性能評估工具1110將資訊傳送至OS 1150及傳送來自OS 1150之資訊,且此外,類似於一般軟體1140而經由OS 1150將指令、回應及資料傳送至硬體及傳送來自硬體之指令、回應及資料。另一方面,如圖88中所展示,當不同於性能評估工具1110之軟體1140經由OS 1150將命令(指令、回應及資料)傳送至SSD 1010及傳送來自SSD 1010之命令(指令、回應及資料)時,性能評估工具1110自OS 1150至少接收指令及回應之日誌。顯然,性能評估工具1110可接收指令、回應及資料之日誌。
此外,當OS 1150藉由來自OS 1150自身之請求而將命令(指令、回應及資料)傳送至SSD 1010及傳送來自SSD 1010之命令(指令、回應及資料)時,性能評估工具1110自OS 1150接收指令及回應之日誌。顯然,性能評估工具1110可接收資料以及指令及回應之日誌。
此外,當性能評估工具1110自身經由OS 1150將指令、 回應及資料傳送至SSD 1010及傳送來自SSD 1010之指令、回應及資料時,性能評估工具1110可自OS 1150接收指令及回應之日誌(顯然,性能評估工具1110可接收指令、回應及資料之日誌),然而,在當前實施例中,為易於理解,性能評估工具1110並不自OS 1150獲得當在性能評估工具1110自身與SSD 1010之間傳送指令、回應及資料時獲得之日誌。
當OS 1150或軟體1140存取SSD 1010時,性能評估工具1110之存取資訊獲得工具1111經由OS 1150接收針對自OS 1150或自軟體1140之此存取之命令的日誌。如圖89中所展示,性能評估工具1110之存取資訊獲得工具1111接收之存取日誌包括:時間資訊(包括粗略時間戳記及精細時間戳記之時間戳記)、命令方向資訊、執行緒識別資訊(佇列ID)、命令內容資訊、傳送長度資訊(資料長度資訊)、LBA資訊,及其類似者。
粗略時間戳記為藉由獲得將指令、回應或資料傳送至SSD 1010及傳送來自SSD 1010之指令、回應或資料時之時間而獲得的資訊,其(例如)以秒為單位。該時間可藉由OS 1150獲得,且可自BIOS或其類似者獲得。替代傳送指令、回應或資料時之時間,可使用傳送前述各者之日誌時的時間。
精細時間戳記為藉由獲得將指令、回應或資料傳送至SSD 1010及傳送來自SSD 1010之指令、回應或資料時之時間而獲得的資訊,其採用小於秒(例如,μs)之單位。以上 時間可藉由OS 1150獲得,或可自BIOS或其類似者獲得。替代傳送指令、回應或資料時之時間,可使用傳送前述各者之日誌時的時間。截取表示等於或大於1秒之值的數字。時間可以μs為單位來管理而不截取任何數字,且可省略粗略時間資訊之項目。
命令方向資訊為指示命令為至SSD 1010之指令(請求傳輸)抑或來自SSD 1010之回應(完成通知)的資訊。舉例而言,在SATA標準之狀況下,在INCITS ACS-2中描述之「60h讀取FPDMA佇列」命令中,當「60h讀取FPDMA佇列」命令之「向裝置註冊主機(RegHD)」自主機1100經傳輸至SSD 1010時,性能評估工具1110之存取資訊獲得工具1111自OS 1150接收日誌作為指令(請求傳輸),且「60h讀取FPDMA佇列」命令之「設定裝置位元(SDB)」自SSD 1010經接收時,性能評估工具1110之存取資訊獲得工具1111自OS 1150接收完成通知之日誌以指示命令已完成。當在RegHD中指定之所有所請求之資料自SSD 1010經接收至主機1100時,存取資訊獲得工具1111可在SDB接收之前接收完成通知。
此外,在SATA標準之「61h寫入FPDMA佇列」命令中,當「61h寫入FPDMA佇列」命令之RegHD自主機1100經傳輸至SSD 1010時,性能評估工具1110之存取資訊獲得工具1111自OS 1150接收日誌作為指令(請求傳輸),且當「61h寫入FPDMA佇列」命令之SDB自SSD 1010經接收時,性能評估工具1110之存取資訊獲得工具1111自OS 1150接收完成通知之日誌以指示命令已完成。當在RegHD中指定之所有所請求之資料自主機1100經發送至SSD 1010時,存取資訊獲得工具1111可在SDB接收之前接收完成通知。
除命令並不結束之異常時間以外,命令有必要包括一對指令(請求傳輸)及回應(完成通知)。請求傳輸指示命令開始,且回應(完成通知)指示命令結束,使得命令開始與命令結束之間的差指示執行命令所需之時間。
當至SSD 1010之請求藉由複數個執行緒執行時,執行緒識別資訊(佇列ID)為用於區分該等執行緒之ID。此執行緒可為在OS 1150中管理之執行緒,或在與SSD 1010之介面中管理之執行緒。在與SSD 1010之介面中管理的執行緒為(例如)SATA標準之原生命令排入佇列(NCQ),且0至31在此狀況下被分配給佇列ID。
命令內容資訊為(例如)識別命令為寫入抑或讀取的資訊。舉例而言,在SATA標準之狀況下,有可能對關於讀取命令及寫入命令(諸如,在INCITS ACS-2中描述之「60h讀取FPDMA佇列」、「25h讀取DMA擴展區」、「C8h讀取DMA」及其類似者)的資訊更精細地進行分類。在當前實施例中,為易於理解,僅獲得用於識別命令為寫入抑或讀取的資訊。儘管可獲得不同於寫入及讀取之命令的日誌,但在當前實施例中僅獲得寫入及讀取之命令的日誌。在完成通知之狀況下,可寫入無效值(空值)。
傳送長度資訊為指定自藉由命令指定之起始LBA待讀取 (或待寫入)之長度的資訊,且對應於SATA標準中之邏輯磁區計數。舉例而言,當傳送長度在至LBA=0h之寫入命令中為8h邏輯磁區時,自LBA=0h至LBA=7h之連續區為寫入目標,且其寫入資料量為8h邏輯磁區=4 KiB。在完成通知之狀況下,可寫入無效值(NULL)。
LBA資訊為關於藉由命令指定之起始LBA的資訊。
性能評估工具1110之存取資訊獲得工具1111自OS 1150接收之存取日誌順序地儲存於展示於圖67中之主記憶體1202中的存取日誌表1120中(另外的記錄方法或環形緩衝方法)。存取日誌表1120(例如)具有如展示於圖89中之形式,且包括時間戳記(包括粗略時間戳記及精細時間戳記)、命令方向資訊、執行緒識別資訊(佇列ID)、命令內容資訊、傳送長度資訊、LBA資訊,及其類似者。如圖90中所展示,存取日誌表1120可由兩個分開的日誌(亦即,請求傳輸日誌及完成通知日誌)組成。在圖90中,省略LBA資訊。
圖91及圖92說明藉由存取資訊獲得工具1111將日誌另外記錄至存取日誌表1120之程序。當存取資訊獲得工具1111偵測到讀取命令或寫入命令傳輸至SSD 1010(圖91:步驟S1201)時,存取資訊獲得工具1111將對應於此命令之存取日誌另外記錄至存取日誌表1120(步驟S1202)。此外,當存取資訊獲得工具1111偵測到自SSD 1010接收到對讀取命令之回應或對寫入命令之回應(圖92:步驟S1211)時,存取資訊獲得工具1111將對應於此命令回應之存取日誌另外 記錄至存取日誌表1120(步驟S1212)。
儲存於存取日誌表1120中之存取日誌藉由性能評估工具1110之性能資訊獲得工具1112轉譯成性能日誌資訊,以另外記錄至儲存於展示於圖67中之主記憶體1202中的性能日誌表1125。性能日誌資訊經週期性地計算(例如,每隔10秒),且作為預定週期之性能資訊另外記錄至性能日誌表1125。圖93說明性能日誌表1125之實例,該性能日誌表1125包括時間資訊、總傳送資料速率、讀取傳送資料速率、寫入傳送資料速率及其類似者作為記錄元素。在圖93中,記錄傳送資料速率作為性能資訊。另一方面,可記錄其他性能,諸如處理命令速率、回應時間、處理時間及上文所描述之相對分數。
在該狀況下,以秒為單位或更長之單位來管理時間戳記。為包括於存取日誌表1120中之性能計算目標的命令群組中之最後完成命令的完成時間可用作性能日誌表之時間戳記。可以秒為單位或更小之單位來管理此時間戳記。替代最後完成命令之完成時間,可使用命令(關於該命令首先傳輸指令請求)中之指令請求時間或可使用性能計算目標之時間範圍中的開始時間及結束時間作為性能日誌表之時間戳記。
總傳送資料速率(MiB/s)為自SSD 1010讀取至主機1100之資料或自主機1100寫入至SSD 1010之資料的傳送資料速率。在圖93中,總傳送資料速率之單位為表示每秒傳送之資料量(單位:MiB)的MiB/s。當在性能計算目標週期中根 本不傳送資料時,寫入無效值(NULL),或不添加此列。
讀取傳送資料速率(Mi/s)為自SSD 1010讀取至主機1100之資料的傳送資料速率。在圖93中,讀取傳送資料速率之單位為表示每秒傳送之資料量(單位:MiB)的MiB/s。當在性能計算目標週期中根本未完成資料讀取時,寫入無效值(NULL)。
寫入傳送資料速率(MiB/s)為自主機1100寫入至SSD 1010之資料的傳送資料速率。在圖93中,寫入傳送資料速率之單位為表示每秒傳送之資料量(單位:MiB)的MiB/s。當在性能計算目標週期中根本未完成資料寫入時,寫入無效值(NULL)。
藉由展示於圖94及圖95中之程序由性能資訊獲得工具1112將存取日誌轉譯成性能日誌。可使用展示於圖94及圖95中之程序中的任一者,或可使用展示於圖94及圖95中之兩個程序。
在展示於圖94中之程序中,性能資訊獲得工具1112每預定性能計算週期藉由使用儲存於存取日誌表1120中之存取日誌來計算性能,且將所計算之性能另外記錄至存取日誌表1120。具體而言,當經過預定性能計算週期(例如,10秒)(步驟S1220)時,性能資訊獲得工具1112藉由使用儲存於存取日誌表1120中之存取日誌來計算性能日誌資訊,諸如時間資訊、總傳送資料速率、讀取傳送資料速率及寫入傳送資料速率(步驟S1221),且將所計算之性能日誌資訊另外記錄至性能日誌表1125(步驟S1222)。當性能日誌資 訊另外記錄至性能日誌表1125時,性能資訊獲得工具1112自存取日誌表1120抹除用於計算性能之存取日誌(步驟S1223)。
在展示於圖95中之程序中,判定存取日誌表1120之大小的上限。當存取日誌表1120之大小達到上限時,性能資訊獲得工具1112藉由使用儲存於存取日誌表1120中之存取日誌來計算性能,且將所計算之性能另外記錄至性能日誌表1125。具體而言,當存取日誌表1120之大小達到上限(步驟S1230)時,性能資訊獲得工具1112藉由使用儲存於存取日誌表1120中之日誌來計算性能日誌資訊,諸如時間資訊、總傳送資料速率、讀取傳送資料速率及寫入傳送資料速率(步驟S1231),且將所計算之性能日誌資訊另外記錄至性能日誌表1125(步驟S1232)。當性能日誌資訊另外記錄至性能日誌表1125時,性能資訊獲得工具1112自存取日誌表1120抹除用於計算性能之存取日誌(步驟S1233)。
在圖94及圖95中之程序的任一者中,自存取日誌表1120抹除用於計算性能之命令,使得具有大資料大小之存取日誌表1120順序地轉譯成具有小資料大小之性能日誌表1125。
當同時使用展示於圖94及圖95中之程序時,有可能使用(例如)以下方法。具體而言,性能資訊獲得工具1112每預定性能計算週期計算性能日誌,直至達到存取日誌表1120之大小的上限,且當達到存取日誌表1120之大小的上限時,性能資訊獲得工具1112藉由使用儲存於存取日誌表 1120中之所有存取日誌來計算性能日誌,且在此時第一次抹除儲存於存取日誌表1120中之存取日誌。此外,當抹除存取日誌時,可僅抹除存取日誌表1120之部分而非抹除存取日誌表1120中之所有元素。在此狀況下,例如,需要自存取日誌表1120中之較舊元素順序地抹除元素。
以此方式記錄於性能日誌表1125中之性能日誌藉由性能資訊獲得工具1112來監視。圖96說明性能日誌表1125之監視程序。性能資訊獲得工具1112判定性能日誌表1125是否經更新(步驟S1240)。當性能日誌表1125經更新時,性能資訊獲得工具1112在顯示器1133顯示性能日誌表1125之歷史資料(步驟S1241)。圖97說明顯示於顯示器1133上之性能日誌資訊的實例。在此狀況下,即時地顯示總傳送資料速率,其中將時間作為水平軸線。當不存在對SSD 1010之讀取/寫入存取歷時某一時間段或更長時間時,如圖98中所展示,需要隱藏該週期之圖表或清楚地顯示在該週期期間不存在存取。
接下來,將詳細地解釋藉由性能資訊獲得工具1112執行之自存取日誌至性能日誌的轉譯。在此實例中,說明計算總傳送資料速率之狀況。在讀取傳送資料速率之狀況下,僅使用讀取命令日誌(讀取請求日誌及讀取完成日誌),且在寫入傳送資料速率之狀況下,僅使用寫入命令日誌(寫入請求日誌及寫入完成日誌)。如圖99中所展示,在許多狀況下藉由複數個執行緒來存取SSD 1010。圖99說明具有最大數目個執行緒(亦即,32個執行緒)的狀況。
在圖99中,交叉陰影線條及陰影線條指示各種執行緒中之命令的作用中狀態,且線條之左端指示命令之請求時間(開始時間),且線條之右端指示命令之完成時間(結束時間)。舉例而言,在為SATA標準中之原生命令排入佇列(NCQ)之讀取命令的「第一方DMA讀取(fp DMA讀取)」命令之狀況下,如圖100A中所展示,命令之開始時間為命令之「向裝置註冊主機(RegHD)」FIS(框架指令結構)自主機1100傳輸至SSD 1010時的時間,且命令之結束時間為主機1100自SSD 1010接收到「設定裝置位元(SDB)」FIS時的時間。命令之結束時間可為主機1100在接收到SDB之前結束自SSD 1010接收RegHD中指定之所有所請求之資料時的時間(圖100B)。
此外,在為NCQ之寫入命令的「第一方DMA寫入(fp DMA寫入)」命令之狀況下,如圖101A中所展示,命令之開始時間為該命令之「向裝置註冊主機(RegHD)」FIS自主機1100傳輸至SSD 1010時的時間,且命令之結束時間為主機1100自SSD 1010接收到「設定裝置位元(SDB)」FIS時的時間。命令之結束時間可為主機1100在接收到SDB之前結束發送RegHD中指定之所有所請求之資料至SSD 1010時的時間(圖101B)。
本發明可甚至應用於非NCQ命令,且例如,在「DMA讀取」命令之狀況下,如圖102A中所展示,命令之開始時間為命令之「向裝置註冊主機」FIS自主機1100傳輸至SSD 1010時的時間,且命令之結束時間為主機1100自SSD 1010 接收「向主機註冊裝置」時的時間。命令之結束時間可為主機1100在接收到SDB之前結束自SSD10接收RegHD中指定之所有所請求之資料時的時間(圖102B)。
此外,在為非NCQ寫入命令之「DMA寫入」命令之狀況下,如圖103A中所展示,命令之開始時間為命令之「向裝置註冊主機」FIS自主機1100傳輸至SSD 1010時的時間,且命令之結束時間為主機1100自SSD 1010接收到「向主機註冊裝置」FIS時的時間。命令之結束時間可為主機1100在接收到SDB之前結束發送RegHD中指定之所有所請求之資料至SSD 1010時的時間(圖103B)。此外,在當前實施例中,描述SATA之狀況,然而,顯然,本發明亦可應用於諸如SAS及USB之介面。
在圖99中,時間t0、t1、t2及t3指示計算性能資訊時的時間。並非所有命令皆係在計算性能資訊之前完成,且存在跨越藉由時間t0、t1、t2及t3劃分之時間區△t1、△t2、△t3及△t4的命令(諸如,藉由影線指示之線條)。此外,在時間區△t1、△t2、△t3及△t4中之每一者中,至SSD 1010之命令並非始終為作用中的。作用中之命令指示,該命令正在SSD 1010執行。命令為非作用中之週期(例如)指示主機1100中之CPU 1200正等待操作之週期及等待使用者之操作的週期。命令為非作用中之週期,(例如)SSD 1010之閒置狀態、待用狀態及休眠狀態。
圖104說明作為性能資訊之傳送資料速率之計算程序的實例。在此程序中,在包括複數個執行緒之情況下計算傳 送資料速率。換言之,藉由綜合地判斷複數個執行緒來計算傳送資料速率。此外,此程序說明時間tn-1至時間tn之間的傳送資料速率之計算程序,且每性能計算週期重複此程序。當觸發計算之開始時,性能資訊獲得工具112讀取存取日誌表1120(步驟S1250)。性能資訊獲得工具1112基於記錄於存取日誌表1120中之時間資訊獲得時間tn-1與時間tn之間至SSD 1010之任何命令並非在作用中的時間之總和δn(命令非作用中時間)(步驟S1251)。在下文中,將總和δn稱作非作用中總時間。在展示於圖99中之實例中,命令在時間t0與時間t1之間在複數個執行緒中之任一者中為作用中的,且因此δn=0。在時間t1與時間t2之間,δa作為命令非作用中時間而存在,且因此δn=δa。在時間t2與時間t3之間,δb及δc作為命令非作用中時間而存在,且因此δn=δb+δc。
接下來,性能資訊獲得工具1112自性能量測目標週期中之結束時間tn減去性能量測目標週期中之開始時間tn-1以獲得性能量測目標週期△tn。此外,性能資訊獲得工具1112自性能量測目標週期△tn減去非作用中總時間δn以獲得有效性能量測目標週期△tn'(=△tn-δn)(步驟S252)。因此,此程序藉由減去非作用中總時間δn而使得性能資訊獲得工具1112能夠自性能量測排除掉除SSD 1010以外之因數,諸如主機1100中之CPU 1200的操作時間及等待來自使用者之回應的週期。
接下來,性能資訊獲得工具1112基於存取日誌表1120中 之所記錄之資訊獲得在時間tn-1與時間tn之間開始及完成的命令之清單,且藉由對該等命令之傳送長度進行求和來計算總資料量(=S0)(步驟S1253)。此外,性能資訊獲得工具1112基於存取日誌表1120中之所記錄之資訊獲得在時間tn-2與時間tn-1之間(作為上一週期)開始且在時間tn-1與時間tn之間(作為當前週期)完成的命令之清單,且計算每一命令之資料量與藉由以下方程式定義之貢獻(contribution)的乘積之總和(=S1)(步驟S1254)。
(貢獻)=(時間tn-1與時間tn之間的命令作用中時間)/(時間tn-2與時間tn之間的命令作用中時間)
圖105說明跨越兩個週期(t0至t1及t1至t2)之命令,其中B為時間t0與時間t1之間的命令作用中時間,C為時間t1與時間t2之間的命令作用中時間,且A為時間t0與時間t2之間的命令作用中時間。關於此命令,在時間t0與時間t1之間的週期中之貢獻為B/A,且在時間t1與時間t2之間的週期中之貢獻為C/A。以此方式,藉由以下操作來計算在上一週期中開始且在當前週期中完成之命令在當前週期中之資料量:藉由使用每一週期中之作用中時間按比例分派命令之總資料量。
接下來,性能資訊獲得工具1112基於存取日誌表1120中之所記錄之資訊獲得在時間tn-1與時間tn之間(作為當前週期)開始且在時間tn與時間tn+1之間(作為下一週期)完成的命令之清單,且計算每一命令之資料量與上述貢獻的乘積之總和(S=2)(步驟S1255)。
此外,性能資訊獲得工具1112藉由以下方程式計算傳送資料速率(步驟S1256)。
(傳送資料速率)=(S0+S1+S2)/△tn'
在圖104中之程序中,藉由參考性能量測目標週期(tn-1至tn)之前及之後的一個週期(tn-2至tn-1及tn至tn+1)來計算傳送資料速率。當在性能量測目標週期(tn-1至tn)中結束之命令在性能量測目標週期之前n個週期(n為自然數)開始時,可藉由以下操作來計算傳送資料速率:藉由以類似於展示於圖105中之方式的方式進行按比例分配來參考自性能量測目標週期(tn-1至tn)至為性能量測目標週期(tn-1至tn)之前n個週期之週期的數個週期。類似地,當在性能量測目標週期(tn-1至tn)中開始之命令在性能量測目標週期之後n個週期(n為自然數)結束時,可藉由以下操作來計算傳送資料速率:參考自性能量測目標週期(tn-1至tn)至為性能量測目標週期(tn-1至tn)之後n個週期之週期的數個週期。
圖106說明作為性能資訊之處理命令速率之計算程序的實例。如上文所描述,處理命令速率為每單位時間傳送至SSD 1010及自SSD 1010傳送之指令的數目。圖106中之處理內容與展示於圖104中之將傳送資料速率之計算中的一個命令之資料量設定為1的狀況相同。當觸發計算之開始時,性能資訊獲得工具1112讀取存取日誌表1120(步驟S1260)。性能資訊獲得工具1112基於記錄於存取日誌表1120中之時間資訊獲得時間tn-1與時間tn之間的至SSD 1010之任何命令並非在作用中的時間之總和δn(命令非作 用中時間)(步驟S1261)。
接下來,性能資訊獲得工具1112自性能量測目標週期中之結束時間tn減去性能量測目標週期中之開始時間tn-1以獲得性能量測目標週期△tn。此外,性能資訊獲得工具1112自性能量測目標週期△tn減去非作用中總時間δn以獲得有效性能量測目標週期△tn'(=△tn-δn)(步驟S1262)。接下來,性能資訊獲得工具1112基於存取日誌表1120中之所記錄之資訊獲得在時間tn-1與時間tn之間開始及完成的命令之清單,且藉由對該清單中之命令進行計數來計算命令數目(=S0)(步驟S1263)。此外,性能資訊獲得工具1112基於存取日誌表1120中之所記錄之資訊獲得在時間tn-2與時間tn-1之間(作為上一週期)開始且在時間tn-1與時間tn之間(作為當前週期)完成的命令之清單,且以類似於上文之方式計算每一命令對當前週期之貢獻以計算該等貢獻之總和(=S1)(步驟S1264)。接下來,性能資訊獲得工具1112基於存取日誌表1120中之所記錄之資訊對在時間tn-1與時間tn之間(作為當前週期)開始且在時間tn與時間tn+1之間(作為下一週期)完成的命令執行類似計算以計算貢獻之總和(S=2)(步驟S1265)。此外,性能資訊獲得工具1112根據以下方程式計算處理命令速率(步驟S1266)。
(處理命令速率)=(S0+S1+S2)/△tn'
圖107說明作為性能資訊之平均回應時間之計算程序的實例。當觸發計算之開始時,性能資訊獲得工具1112讀取存取日誌表1120(步驟S1270)。性能資訊獲得工具1112基 於存取日誌表1120中之所記錄之資訊獲得在時間tn-1與時間tn之間的性能量測目標週期期間完成之命令的數目(=D)(步驟S1271),計算在時間tn-1與時間tn之間完成的命令為作用的總時間(=S)(步驟S1272),且將S除以D,藉此導出平均回應時間(步驟S1273)。
在使用最大回應時間作為其他性能資訊之狀況下,藉由性能資訊獲得工具1112用以下操作獲得最大回應時間:藉由參考存取日誌表1120獲得在時間tn-1與時間tn之間完成的命令中之最大命令作用中時間。此外,可藉由在計算命令回應時間時使用應用程式或應用程式之各種執行緒而非命令的作用中時間來計算應用程式處理時間。在計算應用程式處理時間時,例如,當不存在對SSD之存取時,諸如當等待CPU結束處理或等待來自使用者之輸入時,需要藉由自應用程式執行時間減去不存在對SSD之存取所持續的時間來計算應用程式處理時間。此外,可藉由對上述各種分數之結果或各種分數之計算程序中的各種參數執行加法、減法、乘法及除法來獲得相對分數。
如上文所描述,將性能日誌另外記錄至主機1100之主記憶體1202。若性能日誌僅儲存於主記憶體1202中,則當主機1100之電源斷開時,性能日誌上之資訊丟失。因此,如圖108中所展示,性能資訊獲得工具1112可判定性能日誌之大小是否已達到某一指定值(步驟S1280)。當性能日誌之大小已達到某一指定值(步驟S1280中之是)時,性能資訊獲得工具1112將性能日誌記錄於SSD 1010或其他外部記 憶裝置(諸如,HDD及USB記憶體)中(步驟S1281),且此後刪除儲存於主記憶體1202中之性能日誌(步驟S1282)。在將性能日誌記錄於SSD 1010中之後,可留下儲存於主記憶體1202中之性能日誌而不對其進行刪除。當主機1100之電源斷開且接著接通時,性能評估工具1110再次將儲存於SSD 1010或其他外部記憶裝置中之性能日誌讀取至主記憶體1202。
可應用如展示於圖109中之方法。具體而言,性能資訊獲得工具1112判定自上次儲存性能日誌起是否已經過了某一時間段(例如,10分鐘)(步驟S1290)。當已經過了某一時間段時,性能資訊獲得工具1112將性能日誌記錄於SSD 1010或其他外部記憶裝置(諸如,HDD及USB記憶體)中(步驟S1291),且此後刪除儲存於主記憶體1202中之性能日誌(步驟S1292)。在此狀況下,在將性能日誌記錄於SSD 1010中之後,亦可留下儲存於主記憶體1202中之性能日誌而不對其進行刪除。
在展示於圖104中之性能計算程序中,針對所有執行緒(諸如,ATA標準之NCQ中的標籤及OS中之執行緒)綜合地計算性能。另一方面,可針對每一執行緒計算性能資訊。特別地,當針對每一執行緒(諸如,SSD之部分)可獨立地控制對NAND記憶體1020之存取時,需要針對每一執行緒獲得性能資訊。在下文中,說明針對每一執行緒計算總傳送資料速率之狀況作為每一執行緒之性能資訊。可按以下方式計算諸如讀取傳送資料速率、寫入傳送資料速率、處 理命令速率、回應時間、處理時間及相對分數之其他性能指標作為性能資訊。
圖110為針對ATA標準之NCQ中之每一標籤計算性能資訊之狀況的實例。另一方面,除NCQ以外,亦可針對每一執行緒計算性能資訊,諸如OS 1150中之每一執行緒編號的性能資訊及其他介面標準中之每一執行緒的性能資訊。在圖110中,Q0、Q1、...及Q31分別對應於ATA標準之NCQ中的標籤編號=0、1、...及31,使得執行緒(佇列)之數目總計為32。以類似於圖99之方式,交叉陰影線條及陰影線條各自指示執行緒中之命令的作用中狀態,且線條之左端指示命令之開始時間(例如,傳輸命令之RegHD時的時間),且線條之右端指示命令之結束時間(例如,接收到命令之SDB時的時間)。時間t0、t1、t2及t3指示計算性能資訊時的時間。陰影線條指示跨越藉由時間t0、t1、t2及t3劃分之時間區的命令。此外,如上文所描述,在時間區△t1、△t2、△t3及△t4中之每一者中,至SSD 1010之命令並非始終為作用中的,且存在命令為非作用中的週期δ,例如,主機1100中之CPU 1200等待操作之週期及等待使用者之操作的週期。
在展示於圖104中之程序中,藉由綜合地判斷所有執行緒來計算性能,使得非作用中週期為至SSD 1010之命令在複數個執行緒中皆不在作用中的週期(參見圖99中之δa、δb及δc)。當針對每一執行緒個別地計算性能資訊時,如圖110中所展示,每一執行緒之無線條之任何週期為未正 在執行命令之非作用中週期δ(δ1、δ2、...)。因此,例如,可藉由計算△t1-δ1來獲得執行緒Q0之在時間t0與時間t1之間的週期中之有效性能量測目標週期△tn'。此外,可藉由計算△t1-(δ2+δ3)來獲得執行緒Q1之在時間t0與時間t1之間的週期中之有效性能量測目標週期△tn'。此外,可藉由計算△t1-(δ4+δ5+δ6)來獲得執行緒Q5之在時間t0與時間t1之間的週期中之有效性能量測目標週期△tn'。
接下來,將參看圖104來解釋針對每一執行緒計算傳送資料速率作為性能資訊之狀況下的程序。當觸發計算之開始時,性能資訊獲得工具1112讀取存取日誌表1120(步驟S1250)。性能資訊獲得工具1112基於記錄於存取日誌表1120中之時間資訊獲得一個執行緒(在此狀況下,執行緒Qx(x=0、1、2、...、31))中在時間tn-1與時間tn之間的非作用中時間δ的總和δn(步驟S251)。接下來,性能資訊獲得工具1112自性能量測目標週期中之結束時間tn減去性能量測目標週期中之開始時間tn-1以獲得性能量測目標週期△tn。此外,性能資訊獲得工具1112自性能量測目標週期△tn減去非作用中總時間δn以獲得有效性能量測目標週期△tn'(=△tn-δn)(步驟S1252)。
接下來,性能資訊獲得工具1112基於存取日誌表1120中之所記錄之資訊獲得在時間tn-1與時間tn之間開始及完成的執行緒Qx之命令之清單,且藉由對該等命令之傳送長度進行求和來計算總資料量(=S0)(步驟S1253)。此外,性能資訊獲得工具1112基於存取日誌表1120中之所記錄之資訊 獲得在時間tn-2與時間tn-1之間(作為上一週期)開始且在時間tn-1與時間tn之間(作為當前週期)完成的執行緒Qx之命令之清單,且以類似於上文之方式計算每一命令對當前週期之貢獻以計算每一命令之資料量與對應貢獻之乘積的總和(=S1)(步驟S1254)。接下來,性能資訊獲得工具1112基於存取日誌表1120中之所記錄之資訊藉由針對在時間tn-1與時間tn之間(作為當前週期)開始且在時間tn與時間tn+1之間(作為下一週期)完成的執行緒Qx之每一命令執行類似計算來計算貢獻,以計算每一命令之資料量與對應貢獻的乘積之總和(S=2)(步驟S1255)。此外,性能資訊獲得工具1112根據以下方程式計算執行緒Qx中當前週期之傳送資料速率(步驟S1256)。
(傳送資料速率)=(S0+S1+S2)/△tn'
針對每一執行緒重複地執行此處理。
圖111說明在針對每一執行緒計算傳送資料速率之狀況下性能日誌表1125的實例。如圖111中所展示,在性能日誌表1125中記錄每一執行緒中每一量測目標週期之總傳送資料速率。作為性能日誌,可計算總傳送資料速率、讀取傳送資料速率及寫入傳送資料速率中之每一者。或者,作為性能日誌,可計算傳送資料速率、處理命令速率、回應時間、處理時間及相對分數中之每一者。此外,可將複數個執行緒(佇列)群聚在一起,諸如(Q1及Q2)與(Q3及Q4),且可記錄每一群組之性能日誌。以類似於圖97之方式,可藉由曲線圖使性能日誌在顯示器1133上可見。此外,以類 似於圖98之方式,當在某一執行緒中不存在對SSD 1010之讀取/寫入存取歷時某一時間段或更長時間時,需要隱藏執行緒中該週期之曲線或清楚地顯示在該週期期間不存在對該執行緒之存取。
以此方式,根據第九實施例,主機1100獲得軟體1140或OS 1150傳輸至SSD 1010及自SSD 1010接收之命令的存取日誌,將存取日誌儲存於存取日誌表1120中,且藉由在主機1100之正常使用期間使用所儲存之存取日誌計算關於SSD 1010之性能資訊,使得用於量測性能之特殊寫入及用於量測性能之特殊量測週期並不發生。因此,有可能正確地獲得外部記憶裝置之極接近實際使用時使用者體驗之性能的瞬時地改變之性能資訊,且不會不利地影響外部記憶裝置之可靠性。此外,當藉由使用時間資訊來計算性能資訊時,藉由使用由排除至外部記憶裝置之命令為非作用之時間所獲得之有效時間資訊來計算性能資訊,使得可正確地獲得外部記憶裝置之性能,而不受(例如)等待來自使用者之輸入的週期或等待來自CPU或其他硬體之回應的週期影響。僅在將性能日誌儲存於SSD 1010中之狀況下進行至SSD 1010之額外寫入。性能日誌之資料大小極小,使得對SSD 1010之性能及可靠性的影響極低,且其影響隨著使性能資訊獲得時間間隔變長而進一步變小。
(第十實施例)
在第十實施例中,將性能日誌分類成順序存取(順序讀取及順序寫入)及隨機存取(隨機讀取及隨機寫入),且根據 傳送長度(資料長度)進一步進行分類。圖112說明應用第十實施例之性能日誌表1125,且說明資料傳送速率作為性能資訊。如圖112中所展示,將性能日誌表1125分類成四個表,亦即,順序讀取、順序寫入、隨機讀取及隨機寫入。此外,根據複數個不同傳送長度對每一表進行分類。舉例而言,SSD 1010之性能在以下兩個狀況之間變為不同的,使得當前實施例根據傳送長度執行性能分類:每傳送長度=4KiB(該傳送長度為小的大小)執行順序存取之狀況,及每傳送長度=128KiB(該傳送長度為大的大小)執行順序存取一次之狀況。
圖113說明用於識別將存取日誌資訊分類為順序存取抑或隨機存取之程序的實例。性能資訊獲得工具1112按時間順序讀取記錄於存取日誌表1120中之存取日誌資訊,根據存取日誌資訊為讀取命令抑或寫入命令而對每一存取日誌資訊進行分類,且根據傳送長度進一步對存取日誌進行分類(步驟S1300)。接下來,針對根據讀取命令或寫入命令及傳送長度分類之一個群組,性能資訊獲得工具1112判定包括於存取日誌資訊中之命令的LBA是否等於藉由以下操作獲得之結果:將包括於上一存取日誌資訊中之傳送長度與包括於上一存取日誌資訊中之命令的LBA相加。(步驟S1301)。當LBA等於該結果時,將存取日誌資訊分類為順序存取(步驟S1303)。此外,當步驟S1301中之判定為否時,性能資訊獲得工具1112判定包括於緊接在該存取日誌資訊之後的存取日誌資訊中之命令的LBA是否等於藉由以 下操作獲得之結果:將包括於存取日誌資訊中之傳送長度與包括於存取日誌資訊中之命令的LBA相加(步驟S1302)。當LBA等於該結果時,將存取日誌資訊分類為順序存取(步驟S1303),且當LBA不等於該結果時,將存取日誌資訊分類為隨機存取(步驟S1304)。針對每一經分類群組執行此處理。
在以上處理中,當存在複數個執行緒時,需要藉由綜合地判斷該等執行緒來判定將存取日誌分類為順序存取抑或隨機存取。此外,在當前命令與下一命令之LBA的連續性對於預定數目個命令或更多命令連續時,可將存取日誌資訊判定為順序存取,且當連續性對於預定數目個命令或更多命令並不連續時,可將存取日誌資訊判定為隨機存取。此外,在當前命令與下一命令之LBA的連續性對於預定資料大小或更大資料大小連續時,可將存取日誌資訊判定為順序存取,且當連續性對於預定資料大小或更大資料大小並不連續時,可將存取日誌資訊判定為隨機存取。
在步驟S1301中,並非必須根據傳送長度對該群組進行分類,且可包括所有傳送長度來計算性能。
根據第十實施例,因為將性能日誌分類為順序存取或隨機存取,所以可針對順序存取及隨機存取中之每一者單獨評估SSD之性能。此外,因為根據傳送長度對性能日誌進行分類,所以可針對每一傳送長度單獨評估SSD之性能。
(第十一實施例)
在第十一實施例中,性能資訊獲得工具1112基於即時監 視之性能資訊偵測SSD 1010之性能降級,且執行用於恢復SSD 1010之性能的處理。如上文所描述,當SSD 1010之性能降低時,傳送資料速率降低,處理命令速率降低,回應時間增加,且處理時間增加。相對分數取決於每一分數值定義而降級。SSD 1010之性能降級可藉由比較性能資料與邊界條件來偵測。邊界條件為(例如)傳送資料速率之下限、處理命令速率之下限、回應時間之上限、處理時間之上限,或相對分數之臨限值。當SSD 1010之傳送資料速率小於傳送資料速率之下限時,SSD 1010之性能惡化。當處理命令速率小於處理命令速率之下限時,SSD 1010之性能惡化。當回應時間大於回應時間之上限時,SSD 1010之性能惡化。當處理時間大於處理時間之上限時,SSD 1010之性能惡化。當相對分數超過相對分數之臨限值時,SSD 1010之性能惡化。在下文中,僅描述傳送資料速率之狀況,但亦可在其他性能指標之狀況下執行類似處理。此外,可(例如)基於在設計SSD時之預期設計值或呈現給客戶之最小值規範來判定每一邊界條件值。
圖114說明藉由在傳送資料速率變為低於下限時發出刪除通知(例如,TRIM命令)來恢復性能之程序。性能資訊獲得工具1112基於性能日誌表1125中之所儲存之資訊判定傳送資料速率是否變為低於下限(步驟S1310)。當傳送資料速率變為低於下限時,性能資訊獲得工具1112自OS 1150獲得檔案管理資訊(OS 1150之後設資料),基於所獲得之檔案管理資訊獲得LBA區中資料對於OS 1150無效之 LBA(步驟S1311),且將刪除通知(例如,TRIM命令)發出至所獲得之LBA區(步驟S1312)。因此,SSD 1010中之自由區塊的數目增加,且因此SSD 1010之性能得到恢復。
圖115說明藉由在傳送資料速率變為低於下限時在主機1100上執行磁碟重組來恢復性能之程序。當傳送資料速率變為低於下限(步驟S1320)時,性能資訊獲得工具1112藉由使用(例如)安裝於主機1100中之檔案最佳化工具(磁碟重組工具)來在主機1100中執行磁碟重組(步驟S1321)。通常,如圖116A中所展示,隨著對外部記憶裝置之使用增長,對檔案或自由空間之LBA進行分段。通常藉由OS 1150以檔案為單位來管理使用者資料,且同一檔案中之資料在一些狀況下儲存於不連續的LBA區中(展示於圖116A中之檔案「a.dat」)。此時,當讀取經分段檔案「a.dat」時,需要將讀取命令分至每一LBA區,使得讀取性能降級。在磁碟重組功能中,將經分段資料重定位至連續LBA區,以消除分段狀態,如圖116B中所展示。藉由磁碟重組進行之此性能恢復具有減小待在非揮發性記憶裝置1010中處理之讀取命令之數目的效應。因此,磁碟重組對於(例如)諸如硬碟機以及包括為儲存媒體之NAND快閃記憶體的SSD之其他非揮發性記憶裝置為有用的。此外,在硬碟機中,若作為讀取目標之LBA區經分段,則磁頭之搜尋操作的數目增加且性能降級,使得磁碟重組為有效的。
如圖116C中所展示,OS 1150中之檔案管理表中的未儲存資料之LBA區(自由空間)在不連續LBA區上經分段,此 係由於使用者使用了該LBA區。在此狀態下,當使用者重新產生並更新檔案時,OS 1150在一些狀況下分配經分段LBA區以用於資料寫入。此時,否則藉由至連續LBA區之僅一個寫入將結束的寫入操作在一些狀況下導致寫入至複數個經分段LBA區,藉此使寫入性能降級。在磁碟重組功能中,如圖116D中所展示,LBA經重新定位,使得使用者資料移動至經分段之自由空間以填充經分段之自由空間,藉此消除自由空間之分段。因此,外部記憶裝置之寫入性能改良。藉由磁碟重組進行之此性能恢復具有減小待在非揮發性記憶裝置1010中處理之寫入命令之數目的效應。因此,磁碟重組對於(例如)諸如硬碟機以及包括為儲存媒體之NAND快閃記憶體的SSD之其他非揮發性記憶裝置為有用的。此外,在硬碟機中,若作為寫入目標之LBA區經分段,則磁頭之搜尋操作的數目增加且性能降級,使得磁碟重組為有效的。
圖117說明藉由在傳送資料速率變為低於下限時將指令傳輸至SSD 1010以強制執行NAND GC處理來恢復性能之程序。指令可(例如)藉由INCITS ACS-2中描述之「SCT命令輸送」、供應商唯一之命令或其類似者來執行。當傳送資料速率變為低於下限(步驟S1330)時,性能評估工具1110將指令傳輸至SSD 1010以使SSD 1010執行NAND GC處理(步驟S1331)。因此,NAND GC處理在SSD 1010中執行,且自由區塊之數目增加,藉此恢復SSD 1010之性能。
圖118說明當傳送資料速率變為低於下限時藉由以下操 作來恢復性能之程序:藉由阻止軟體1140或OS 1150將任何指令傳輸至SSD 1010歷時某一時間段或更長時間或阻止軟體1140或OS 1150將媒體存取命令(藉此發生對NAND記憶體1020之存取的命令。例如,寫入命令、讀取命令)傳輸至SSD 1010來使上述自動NAND GC處理在SSD 1010中執行。當傳送資料速率變為低於下限(步驟S1340)時,性能資訊獲得工具1112阻止軟體1140或OS 1150將任何指令傳輸至SSD 1010歷時某一時間段或更長時間,或阻止軟體1140或OS 1150將媒體存取命令傳輸至SSD 1010(步驟S1341)。以此方式使NAND GC處理在SSD 1010中執行,使得SSD 1010中之自由區塊的數目增加,藉此恢復SSD 1010之性能。
圖119為說明硬碟機(HDD)之資料傳送速率之LBA相依性。通常,在HDD中,具有較小LBA之資料位於HDD之磁碟的外部周邊中,且具有較大LBA之資料位於HDD之磁碟的內部周邊中。因為磁碟之角速度為恆定的,所以磁頭每單位時間經過之位元的數目在HDD之外部周邊中為較大的,且磁頭每單位時間經過之位元的數目在HDD之內部周邊中為較小的。因此,如圖119中所展示,隨著LBA變大,性能降級。
圖120說明HDD用作外部記憶裝置狀況下之性能恢復程序。當傳送資料速率變為低於下限(步驟S1350)時,性能資訊獲得工具1112將具有大LBA之資料移動至具有小LBA之自由LBA空間(步驟S1351)。因此,可恢復HDD之性能降 級。
如上文所描述,當傳送資料速率變為低於下限時,SSD之性能可藉由傳輸各種命令或控制SSD以使SSD最佳化來恢復。當前實施例之最佳化功能並不限於在當前實施例中描述之最佳化功能的特定實例。
在超過上文所使用之邊界條件值的狀況下,可向使用者顯示警告訊息而非執行上述性能最佳化。此外,可在外部記憶裝置之設計階段將上述邊界條件值(諸如,上限及下限)設定為固定值,或稍後可動態地改變該值。舉例而言,若性能甚至藉由執行以上最佳化而仍未得到恢復或若最佳化過於頻繁地發生,則性能資訊獲得工具1112可使上限增加(使下限減小)。如圖121中所展示,動態邊界條件值儲存於主機1100之主記憶體1202中。在圖121中,儲存邊界條件值之邊界條件值儲存區1126提供於主記憶體1202中。此外,如圖122中所展示,當改變邊界條件(步驟S1360)時,性能評估工具1110可將經改變之邊界條件值儲存於SSD 1010(步驟S1361)中以防止該值在電腦系統之電源斷開時丟失。
當判定邊界條件值時,可基於儲存於性能日誌表1125中之過去性能資訊來計算邊界條件。舉例而言,若將首次供電之後一預定週期(例如,1個月)中的平均性能資訊儲存於SSD 1010中且將(例如)0.8倍之此平均性能資訊用作邊界條件,則當性能自緊接在運輸之後的性能降級20%時,對SSD 1010執行以上最佳化。
(第十二實施例)
在以上實施例中,性能評估工具1110經組態,使得存取資訊獲得工具(存取資訊獲得程式)1111始終監視關於軟體1140之存取資訊,且將存取資訊另外記錄至存取日誌表1120。另一方面,當主機1100之CPU的性能極低時且當由存取資訊獲得工具1111引起之CPU負載高時,可減小獲得存取資訊之頻率以改良OS 1150及軟體1140之計算處理的效率。因此,當性能評估工具1110之性能資訊獲得工具1112自OS 1150週期性地獲得CPU利用時,若主機1100之CPU利用為預定值或更高值時,可卸載存取資訊獲得工具1111從而不獲得存取日誌。
圖123說明基於CPU利用藉由性能資訊獲得工具1112卸載及重新載入存取資訊獲得工具1111之程序。在啟動主機1100之後,啟動性能評估工具1110之性能資訊獲得工具1112,且性能資訊獲得工具1112載入存取資訊獲得工具1111(步驟S1570)。性能資訊獲得工具1112自OS 1150週期性地獲得CPU利用,且判定CPU利用是否為預定值J1(例如,80%)或更高值(步驟S1571)。當CPU利用為預定值J1或更高值時,性能資訊獲得工具1112判定CPU負載過高,且卸載(或停用)存取資訊獲得工具1111以將其他應用程式之處理列入優先(步驟S1572)。此後,性能資訊獲得工具1112自OS 1150週期性地獲得CPU利用,且判定CPU利用是否為預定值J2(例如,60%)或更低值(步驟S1573)。當CPU利用為預定值J2或更低值時,性能資訊獲得工具1112判定 CPU負載經減小,且重新載入存取資訊獲得工具1111以重新繼續獲得存取日誌(步驟S1570)。
預定值J1及J2需要具有J1>(J2+邊限)之關係,以防止存取資訊獲得工具1111之載入與卸載的切換頻繁地發生且防止切換自身成為主機1100之負擔。舉例而言,邊限設定為約20%。此外,需要使在步驟S1573中獲得CPU利用之時間間隔長於在步驟S1571中獲得CPU利用之時間間隔,從而防止在CPU負載高時監視自身成為CPU之負擔。
圖124說明用於藉由性能資訊獲得工具1112以規則時間間隔卸載及重新載入存取資訊獲得工具1111之程序。在載入存取資訊獲得工具1111(步驟S1580)之後,性能資訊獲得工具1112判定是否已經過了某一時間段(例如,1小時)(步驟S1581)。當已經過了某一時間段時,性能資訊獲得工具1112卸載存取資訊獲得工具1111(步驟S1582)。此後,性能資訊獲得工具1112判定是否已經過了某一時間段(例如,1小時)(步驟S1583)。當已經過了某一時間段時,性能資訊獲得工具1112重新載入存取資訊獲得工具1111且重新繼續獲得存取日誌(步驟S1580)。以此方式,獲得存取日誌所持續之週期與不獲得存取日誌所持續之週期以規則時間間隔進行切換。
雖然已描述了某些實施例,但此等實施例僅藉由實例來呈現,且並不意欲限制本發明之範疇。實際上,本文中所描述之新穎實施例可以多種其他形式來體現;此外,可進行本文中所描述之實施例之形式上的各種省略、取代及改 變而不偏離本發明之精神。隨附申請專利範圍及其等效物意欲涵蓋如將在本發明之範疇及精神內的此等形式或修改。
1‧‧‧電腦系統
2‧‧‧固態磁碟機(SSD)
3‧‧‧主機機器
4‧‧‧中央處理單元(CPU)/控制電路
5‧‧‧北橋
6‧‧‧主記憶體
6A‧‧‧記憶體區域
6B‧‧‧記憶體區域
7‧‧‧南橋
8‧‧‧顯示控制器
9‧‧‧顯示器/顯示機器
10‧‧‧光碟機
11‧‧‧BIOS-ROM(基本輸入/輸出系統-唯讀記憶體)
11B‧‧‧區域
11C‧‧‧初始程式載入區域(IPL區域)
11D‧‧‧BIOS(基本輸入/輸出系統)/正常BIOS區域
11E‧‧‧緊急BIOS區域
12‧‧‧LAN(區域網路)控制器
13‧‧‧USB(通用串列匯流排)控制器
14‧‧‧鍵盤
15‧‧‧滑鼠
16‧‧‧NAND型快閃記憶體(NAND記憶體)
16B‧‧‧區域
16C‧‧‧啟動載入器區域/邏輯區塊定址(LBA)
16D‧‧‧正常OS區域/邏輯區塊定址(LBA)
16E‧‧‧緊急BIOS區域/邏輯區塊定址(LBA)
16Q‧‧‧區域
16V‧‧‧恢復啟動載入器區域
16U‧‧‧區域
19‧‧‧記憶體介面/串列進階附接技術(SATA)介面
20‧‧‧非揮發性記憶裝置
20B‧‧‧區域
20D‧‧‧區域
20E‧‧‧區域
21‧‧‧WEB伺服器
22‧‧‧儲存媒體
22B‧‧‧區域
22E‧‧‧區域
23‧‧‧外部光學媒體
23E‧‧‧區域
24‧‧‧USB記憶體/外部光學媒體
24B‧‧‧區域
24E‧‧‧區域
24R‧‧‧區域
24S‧‧‧區域
30‧‧‧主機板
31‧‧‧電腦主體
32‧‧‧電源單元
33‧‧‧觸控板
34‧‧‧電腦主體
35‧‧‧顯示單元
36‧‧‧電源開關
40‧‧‧RAM(隨機存取記憶體)
40A‧‧‧區域
40M‧‧‧區域
41‧‧‧SSD控制器(SSDC)
42‧‧‧介面控制器(IFC)
43‧‧‧匯流排
44‧‧‧管理資訊
45‧‧‧管理資訊
46‧‧‧快取記憶體(CM)
60‧‧‧自由區塊表(FBT)
61‧‧‧損壞區塊表(BBT)
62‧‧‧作用中區塊表(ABT)
63‧‧‧磁軌表
64‧‧‧叢集表
65‧‧‧統計資訊
80‧‧‧NAND記憶體晶片
81‧‧‧NAND控制器(NANDC)
82‧‧‧記憶體晶胞陣列
83‧‧‧位元線控制電路
84‧‧‧行解碼器
85‧‧‧字線控制電路
86‧‧‧控制電路
87‧‧‧控制信號輸入端子
88‧‧‧資料輸入/輸出端子
89‧‧‧資料輸入/輸出緩衝器
100‧‧‧作業系統(OS)
100A‧‧‧正常OS(第一作業系統)
100B‧‧‧緊急OS(第二作業系統)
140‧‧‧檔案管理表/後設資料
150‧‧‧備份記憶裝置
150C‧‧‧區域
150D‧‧‧區域
150E‧‧‧區域
150U‧‧‧區域
151‧‧‧USB儲存裝置
152‧‧‧可寫入光碟機
153‧‧‧網路儲存伺服器(雲端儲存伺服器)
200‧‧‧固態磁碟機(SSD)控制工具
210‧‧‧緊急工具
300‧‧‧啟動載入器/初始程式載入(IPL)
301‧‧‧作業系統指標資訊(OSPT)/基本輸入輸出系 統指標資訊(BIOSPT)
310‧‧‧啟動載入器
311‧‧‧OS指標資訊OSPT
320‧‧‧啟動載入器
350‧‧‧啟動載入器恢復資訊
400‧‧‧安裝映像資料
1001‧‧‧電腦系統
1010‧‧‧固態磁碟機(SSD)/非揮發性記憶裝置
1020‧‧‧NAND記憶體
1021‧‧‧自由區塊表
1022‧‧‧作用中區塊表
1023‧‧‧磁軌表
1024‧‧‧叢集表
1030‧‧‧介面控制器
1040‧‧‧RAM(隨機存取記憶體)
1040a‧‧‧快取記憶體(CM)
1050‧‧‧記憶體控制器
1057‧‧‧匯流排
1058‧‧‧ECC電路
1090‧‧‧ATA介面
1100‧‧‧主機
1110‧‧‧性能評估工具
1110A‧‧‧性能評估工具
1110B‧‧‧性能評估工具
1110C‧‧‧性能評估工具
1110D‧‧‧性能評估工具
1110E‧‧‧性能評估工具
1111‧‧‧存取資訊獲得工具
1112‧‧‧性能資訊獲得工具
1120‧‧‧存取日誌表
1125‧‧‧性能日誌表
1126‧‧‧邊界條件值
1130‧‧‧主機板
1131‧‧‧電源纜線
1132‧‧‧電源電路
1133‧‧‧顯示器
1134‧‧‧鍵盤
1135‧‧‧滑鼠
1136‧‧‧SATA(串列進階附接技術)纜線
1140‧‧‧軟體
1150‧‧‧作業系統(OS)
1200‧‧‧中央處理單元(CPU)
1201‧‧‧北橋
1202‧‧‧主記憶體
1203‧‧‧顯示控制器
1205‧‧‧南橋
1206‧‧‧光碟機
1207‧‧‧基本輸入/輸出系統-隨機存取記憶體(BIOS-
ROM)
1208‧‧‧LAN控制器
1209‧‧‧USB控制器
1300‧‧‧外部記憶裝置
1400‧‧‧儲存媒體
1500‧‧‧光學媒體
1600‧‧‧USB記憶體
BL‧‧‧位元線
IF0‧‧‧介面
IF1‧‧‧介面
MC‧‧‧記憶體晶胞
MS‧‧‧記憶體串
S1‧‧‧第一選擇閘極
S2‧‧‧第二選擇閘極
SGD‧‧‧選擇線
SGS‧‧‧選擇線
SRC‧‧‧源極線
WL0‧‧‧字線
WL1‧‧‧字線
WLm-1‧‧‧字線
圖1為說明第一實施例中之電腦系統之功能組態實例的方塊圖。
圖2為說明在將控制工具儲存於SSD中之狀況下電腦系統之功能組態實例的方塊圖。
圖3為說明在將控制工具儲存於另一外部記憶裝置中之狀況下電腦系統之功能組態實例的方塊圖。
圖4為說明在將控制工具儲存於ROM中之狀況下電腦系統之功能組態實例的方塊圖。
圖5為說明將控制工具儲存於ROM中而不將控制工具載入至主記憶體之狀況下電腦系統之功能組態實例的方塊圖。
圖6為說明在自WEB安裝控制工具之狀況下電腦系統之功能組態實例的方塊圖。
圖7為說明在自光碟機安裝控制工具之狀況下電腦系統之功能組態實例的方塊圖。
圖8為說明在自USB記憶體安裝控制工具之狀況下電腦系統之功能組態實例的方塊圖。
圖9為說明在正常OS及緊急OS儲存於SSD中之狀況下電腦系統之功能組態實例的方塊圖。
圖10為說明在正常OS及緊急OS儲存於SSD中、控制工具 儲存於ROM中之狀況下電腦系統之功能組態實例的方塊圖。
圖11為說明在正常BIOS、緊急BIOS及控制工具儲存於ROM中之狀況下電腦系統之功能組態實例的方塊圖。
圖12為說明在正常OS及緊急OS儲存於不同於具有降級之可靠性之SAD的非揮發性記憶裝置中之狀況下電腦系統之功能組態實例的方塊圖。
圖13為說明在自WEB上之儲存媒體安裝緊急OS之狀況下電腦系統之功能組態實例的方塊圖。
圖14為說明在自光碟機安裝緊急OS之狀況下電腦系統之功能組態實例的方塊圖。
圖15為說明在自USB記憶體安裝緊急OS之狀況下電腦系統之功能組態實例的方塊圖。
圖16為說明主機之階層式功能組態實例的方塊圖。
圖17為說明電腦系統之外觀組態的圖。
圖18為說明電腦系統之另一外觀組態的圖。
圖19為說明NAND記憶體晶片之內部組態實例的方塊圖。
圖20為說明包括於NAND記憶體晶片中之一個平面之組態實例的電路圖。
圖21為說明4值資料儲存系統中之臨限值分佈的圖。
圖22為說明SSD之內部組態實例的功能方塊圖。
圖23為說明SSD中之管理資訊的圖。
圖24為說明LBA與SSD之管理單位之間的關係之圖。
圖25為說明自LBA指定實體位址之程序的流程圖。
圖26為說明SSD之讀取操作實例的流程圖。
圖27為說明SSD之讀取操作實例的流程圖。
圖28為說明SSD之寫入操作實例的流程圖。
圖29為說明SSD之寫入操作實例的流程圖。
圖30為說明組織SSD之NAND記憶體(NAND廢棄項目收集)之操作實例的流程圖。
圖31為說明在接收到刪除通知時SSD之操作實例的流程圖。
圖32為說明在錯誤發生時SSD之操作實例的流程圖。
圖33為說明控制工具之操作程序的流程圖。
圖34為說明統計資訊X01至X19、X23及X24之管理表之實例的圖。
圖35為說明統計資訊之原始值與SSD之FR之間的關係之曲線圖。
圖36為說明控制工具之另一操作實例的流程圖。
圖37為說明控制工具之另一操作實例的流程圖。
圖38為說明控制工具之有效期限達到處理的流程圖。
圖39為說明控制工具之另一有效期限達到處理的流程圖。
圖40為說明控制工具之另一有效期限達到處理的流程圖。
圖41為說明在電腦系統開機時之操作程序的流程圖。
圖42為說明在緊急OS具備備份功能之狀況下主機之組 態的圖。
圖43為說明在電腦系統開機時之包括備份操作之操作程序的流程圖。
圖44為說明NAND記憶體之儲存內容及檔案管理表之儲存內容的圖。
圖45為說明在USB儲存器用作備份記憶裝置之狀況下電腦系統之功能組態實例的圖。
圖46為說明在光學儲存媒體用作備份記憶裝置之狀況下電腦系統之功能組態實例的圖。
圖47為說明在儲存伺服器用作備份記憶裝置之狀況下電腦系統之功能組態實例的圖。
圖48為說明在產生緊急開機磁碟時資料移動之概念的圖。
圖49為說明在產生緊急開機磁碟時之操作程序的流程圖。
圖50為說明在產生包括緊急工具之緊急開機磁碟時資料移動之概念的圖。
圖51為說明在產生包括緊急工具之緊急開機磁碟時之操作程序的流程圖。
圖52為說明將使用者導向備份處理之螢幕實例的圖。
圖53為說明控制工具之另一操作程序的流程圖。
圖54為說明在電腦系統開機時之另一操作程序的流程圖。
圖55為說明關於統計資訊之時間序列資料實例的圖。
圖56為說明統計資訊之時間改變的圖。
圖57為在概念上說明基於統計資訊之臨時改變獲得預測有效期限之處理的圖。
圖58為說明在SSD已達到其有效期限終止時至使用者之導引螢幕實例的圖。
圖59為說明在對啟動載入器執行恢復處理時電腦系統之功能組態實例的方塊圖。
圖60為說明有效期限達到處理中對啟動載入器之恢復處理之操作程序的流程圖。
圖61為說明啟動載入器之重寫差異日誌之圖。
圖62為說明藉由緊急OS進行之備份操作程序的流程圖。
圖63為說明在對啟動載入器執行恢復處理時電腦系統之功能組態實例的方塊圖。
圖64為說明藉由緊急OS進行之啟動載入器恢復處理之操作程序的流程圖。
圖65為說明第八實施例中之整個操作程序的流程圖。
圖66為說明電腦系統之外觀組態的圖;圖67為說明第九實施例中之主機之功能組態實例的方塊圖;圖68為說明在將性能評估工具儲存於SSD中之狀況下電腦系統之功能組態實例的方塊圖;圖69為說明在將性能評估工具儲存於另一外部記憶裝置中之狀況下電腦系統之功能組態實例的方塊圖; 圖70為說明在自WEB安裝性能評估工具之狀況下電腦系統之功能組態實例的方塊圖;圖71為說明在自光碟安裝性能評估工具之狀況下電腦系統之功能組態實例的方塊圖;圖72為說明在自USB記憶體安裝性能評估工具之狀況下電腦系統之功能組態實例的方塊圖;圖73為說明主機之階層式功能組態實例的方塊圖;圖74為說明SSD之功能組態實例的方塊圖;圖75為說明SSD之管理資訊的圖;圖76為說明LBA與SSD之管理單位之間的關係之圖;圖77為說明自LBA指定實體位址之程序的流程圖;圖78為說明SSD之讀取操作實例的流程圖;圖79為說明SSD之讀取操作實例的流程圖;圖80為說明SSD之寫入操作實例的流程圖;圖81為說明SSD之寫入操作實例的流程圖;圖82為說明SSD之NAND記憶體的組織處理之操作實例的流程圖;圖83為說明在接收到刪除通知時SSD之操作實例的流程圖;圖84為說明SSD之傳送資料速率隨時間之降級的圖。
圖85為說明SSD中之自動NAND組織處理之操作實例的流程圖;圖86為說明作為比較實例之讀取性能測試之操作實例的程序圖; 圖87為說明作為比較實例之寫入性能測試之操作實例的程序圖;圖88為說明用於藉由性能評估工具獲得存取資訊之操作概念的圖;圖89為說明存取日誌表之實例的圖;圖90為說明另一存取日誌表之實例的圖;圖91為說明藉由存取資訊獲得工具獲得存取資訊之操作實例的流程圖;圖92為說明藉由存取資訊獲得工具獲得存取資訊之操作實例的流程圖;圖93為說明性能日誌表之實例的圖;圖94為說明藉由性能資訊獲得工具獲得性能資訊之操作實例的流程圖;圖95為說明藉由性能資訊獲得工具獲得性能資訊之操作實例的流程圖;圖96為說明藉由性能資訊獲得工具進行之性能日誌之顯示操作實例的流程圖;圖97為說明性能日誌之顯示實例的圖;圖98為說明性能日誌之另一顯示實例的圖;圖99為說明在複數個執行緒操作時之命令狀態及在綜合地評估複數個執行緒時之命令非作用時間的圖;圖100A及圖100B分別為說明「第一方DMA讀取(fp DMA讀取)」命令的圖;圖101A及圖101B分別為說明「第一方DMA寫入(fp DMA 寫入)」命令的圖;圖102A及圖102B分別為說明「非NCQ DMA讀取」命令之圖;圖103A及圖103B分別為說明「非NCQ DMA寫入」命令之圖;圖104為說明藉由性能資訊獲得工具進行之傳送資料速率之計算程序的程序圖;圖105為用於解釋貢獻之圖;圖106為說明藉由性能資訊獲得工具進行之處理命令速率之計算程序的程序圖;圖107為說明藉由性能資訊獲得工具進行之平均回應時間之計算程序的程序圖;圖108為說明藉由性能資訊獲得工具進行之性能資訊之備份程序的流程圖;圖109為說明藉由性能資訊獲得工具進行之性能資訊之備份程序的流程圖;圖110為說明當複數個執行緒經操作時之命令狀態及在針對每一執行緒評估複數個執行緒時之命令非作用時間的圖;圖111為說明在針對每一執行緒評估複數個執行緒時之性能日誌表之實例的圖;圖112為說明在根據順序存取/隨機存取及傳送長度對性能日誌分類時性能日誌表之實例的圖;圖113為說明識別命令為順序存取抑或隨機存取之操作 程序之實例的流程圖;圖114為說明當SSD之性能降低時藉由性能資訊獲得工具進行之操作程序之實例的流程圖;圖115為說明當SSD之性能降低時藉由性能資訊獲得工具進行之操作程序之實例的流程圖;圖116A、圖116B、圖116C及圖116D分別為說明磁碟重組之圖。
圖117為說明當SSD之性能降低時藉由性能資訊獲得工具進行之操作程序之實例的流程圖;圖118為說明當SSD之性能降低時藉由性能資訊獲得工具進行之操作程序之實例的流程圖;圖119為說明硬碟機(HDD)之資料傳送速率之LBA相依性的圖;圖120為說明當HDD之性能降低時藉由性能資訊獲得工具進行之操作程序之實例的流程圖;圖121為說明第十一實施例中之主機之功能組態實例的方塊圖;圖122為說明在第十一實施例中藉由性能資訊獲得工具進行之操作實例的流程圖;圖123為說明卸載及載入存取資訊獲得工具之操作實例的圖;及圖124為說明卸載及載入存取資訊獲得工具之操作實例的圖。
1‧‧‧電腦系統
2‧‧‧SSD(固態磁碟機)
3‧‧‧主機機器
4‧‧‧中央處理單元(CPU)/控制電路
5‧‧‧北橋
6‧‧‧主記憶體
6A‧‧‧記憶體區域
6B‧‧‧記憶體區域
7‧‧‧南橋
8‧‧‧顯示控制器
9‧‧‧顯示器/顯示機器
10‧‧‧光碟機
11‧‧‧BIOS-ROM(基本輸入/輸出系統-唯讀記憶體)
12‧‧‧LAN(區域網路)控制器
13‧‧‧USB(通用串列匯流排)控制器
14‧‧‧鍵盤
15‧‧‧滑鼠
19‧‧‧記憶體介面/串列進階附接技術(SATA)介面
100‧‧‧作業系統(OS)
200‧‧‧固態磁碟機(SSD)控制工具

Claims (40)

  1. 一種資訊處理機器,其包含一主機裝置及一非揮發性記憶裝置,其中該非揮發性記憶裝置經組態以執行以下步驟:儲存在該主機裝置上執行之一正常作業系統,該主機裝置能夠在該正常作業系統之一控制下將讀取命令及寫入命令中之兩者發出至該非揮發性記憶裝置;儲存在該主機裝置上執行之一緊急軟體,該主機裝置能夠在該緊急軟體之一控制下僅將讀取命令及寫入命令中之一讀取命令發出至該非揮發性記憶裝置;及儲存在使該資訊處理機器開機時在該主機裝置上執行之一啟動載入器,該主機裝置能夠藉由使用該啟動載入器來起始該正常作業系統,且該主機裝置經組態以執行以下步驟:比較自該非揮發性記憶裝置獲得之統計資訊與一臨限值;及當該統計資訊已超過該臨限值時,重寫該啟動載入器,使得在使該資訊處理機器開機時起始該緊急軟體。
  2. 如請求項1之資訊處理機器,其中該緊急軟體包括一緊急作業系統。
  3. 如請求項1之資訊處理機器,其中該非揮發性記憶裝置包括:一第一記憶體區域,其經組態以儲存該正常作業系統; 一第二記憶體區域,其經組態以儲存該緊急軟體;及一第三記憶體區域,其經組態以儲存該啟動載入器,且當該統計資訊尚未超過該臨限值時,該啟動載入器載入儲存於該第一記憶體區域中之該正常作業系統,且當該統計資訊已超過該臨限值時,該啟動載入器載入儲存於該第二記憶體區域中之該緊急軟體。
  4. 如請求項1之資訊處理機器,其中該主機裝置經組態以在該緊急軟體之該控制下將儲存於該非揮發性記憶裝置中之資訊備份至連接至該主機裝置之一備份記憶裝置中。
  5. 如請求項4之資訊處理機器,其中待備份之該資訊包括該正常作業系統、該緊急軟體及該啟動載入器。
  6. 如請求項5之資訊處理機器,其中在重寫該啟動載入器之前,該主機裝置經組態以將用於將該啟動載入器自重寫之後之一狀態恢復至重寫之前之一狀態的恢復資訊儲存於該非揮發性記憶裝置中,且該緊急軟體指示該主機裝置藉由使用該恢復資訊重寫備份於該備份記憶裝置中之該啟動載入器,使得當使該資訊處理機器開機時起始備份於該備份記憶裝置中之該正常作業系統。
  7. 如請求項1之資訊處理機器,其中該統計資訊包括該非揮發性記憶裝置之溫度,在重寫該啟動載入器之前,該主機裝置經組態以將用 於將該啟動載入器自重寫之後之一狀態恢復至重寫之前之一狀態的恢復資訊儲存於該非揮發性記憶裝置中,且當該溫度已自超過該臨限值之一狀態返回至不超過該臨限值之一狀態時,該緊急軟體指示該主機裝置藉由使用該恢復資訊重寫該啟動載入器,使得在使該資訊處理機器開機時起始該正常作業系統。
  8. 如請求項1之資訊處理機器,其中當該統計資訊已超過該臨限值時,將該緊急軟體寫入該非揮發性記憶裝置中,該緊急軟體係自不同於該非揮發性記憶裝置之一記憶裝置供應。
  9. 如請求項1之資訊處理機器,其中當該統計資訊已超過該臨限值時,該主機裝置阻止該非揮發性記憶裝置進行在該非揮發性記憶裝置中內部執行之背景寫入處理。
  10. 如請求項1之資訊處理機器,其中該主機裝置經組態以基於該統計資訊計算該非揮發性記憶裝置之一有效期限且顯示該所計算之有效期限。
  11. 一種資訊處理機器,其包含一主機裝置、一非揮發性記憶裝置及連接至該主機裝置之一攜帶型記憶裝置,其中該非揮發性記憶裝置經組態以執行以下步驟:儲存在該主機裝置上執行之一正常作業系統,該主機裝置能夠在該正常作業系統之一控制下將讀取命令及寫入命令中之兩者發出至該非揮發性記憶裝置;儲存在該主機裝置上執行之一緊急軟體,該主機裝置能夠在該緊急軟體之一控制下僅將讀取命令及寫入命 令中之一讀取命令發出至該非揮發性記憶裝置;及儲存在使該資訊處理機器開機時在該主機裝置上執行之一第一啟動載入器,該主機裝置能夠藉由使用該第一啟動載入器來起始該正常作業系統,且該攜帶型記憶裝置經組態以儲存在該主機裝置上執行之一第二啟動載入器,該主機裝置能夠藉由使用該第二啟動載入器來起始該緊急軟體,且該主機裝置經組態以執行以下步驟:比較自該非揮發性記憶裝置獲得之統計資訊與一臨限值;當該統計資訊已超過該臨限值時,將該緊急軟體自該非揮發性記憶裝置複製至該攜帶型記憶裝置;及重寫該第二啟動載入器,使得起始複製至該攜帶型記憶裝置之該緊急軟體。
  12. 如請求項11之資訊處理機器,其中當該統計資訊已超過該臨限值時,該主機裝置經組態以重寫該第一啟動載入器,使得不起始該正常作業系統。
  13. 一種資訊處理機器,其包含一非揮發性記憶裝置及包括一非揮發性記憶體之一主機裝置,其中該非揮發性記憶體經組態以儲存以下各者:一正常韌體,其在該主機裝置上執行,該主機裝置能夠在該正常韌體之一控制下將讀取命令及寫入命令中之兩者發出至該非揮發性記憶裝置;及一緊急韌體,其在該主機裝置上執行,該主機裝置 能夠在該緊急韌體之一控制下僅將讀取命令及寫入命令中之一讀取命令發出至該非揮發性記憶裝置,且該主機裝置經組態以執行以下步驟:比較自該非揮發性記憶裝置獲得之統計資訊與一臨限值;當該統計資訊尚未超過該臨限值時,在使該資訊處理機器開機時載入該正常韌體;及當該統計資訊已超過該臨限值時,在使該資訊處理機器開機時載入該緊急韌體。
  14. 如請求項13之資訊處理機器,其中該正常韌體包括一正常BIOS(基本輸入/輸出系統),且該緊急韌體包括一緊急BIOS。
  15. 一種用於控制一資訊處理機器之方法,該資訊處理機器包括一主機裝置及一非揮發性記憶裝置,該方法包含:在正常作業系統之一控制下將讀取命令及寫入命令中之兩者自該主機裝置發出至該非揮發性記憶裝置;在緊急軟體之一控制下僅將讀取命令及寫入命令中之一讀取命令自該主機裝置發出至該非揮發性記憶裝置;當使該資訊處理機器開機時藉由使用一啟動載入器來起始該正常作業系統;比較自該非揮發性記憶裝置獲得之統計資訊與一臨限值;及當該統計資訊已超過該臨限值時,重寫該啟動載入器,使得在使該資訊處理機器開機時起始該緊急軟體。
  16. 如請求項15之方法,其進一步包含:在該緊急軟體之該控制下將儲存於該非揮發性記憶體中之資訊備份至連接至該主機裝置之一備份記憶裝置中。
  17. 如請求項16之方法,其中待備份之該資訊包括該正常作業系統、該緊急軟體及該啟動載入器。
  18. 如請求項17之方法,其進一步包含:在重寫該啟動載入器之前,將用於將該啟動載入器自重寫之後之一狀態恢復至重寫之前之一狀態的恢復資訊儲存於該非揮發性記憶體中;及藉由使用該恢復資訊重寫備份於該備份記憶裝置中之該啟動載入器,使得當使該資訊處理機器開機時起始備份於該備份記憶裝置中之該正常作業系統。
  19. 如請求項15之方法,其進一步包含:當該統計資訊已超過該臨限值時,阻止該非揮發性記憶裝置進行在該非揮發性記憶裝置中內部執行之背景寫入處理。
  20. 一種非過渡性記錄媒體,其儲存在一資訊處理機器中執行之一控制工具,該資訊處理機器包括一主機裝置及一非揮發性記憶裝置,該工具包含:一第一程式碼,其比較自該非揮發性記憶裝置獲得之統計資訊與一臨限值,該非揮發性記憶裝置儲存一正常作業系統、一緊急軟體及當使該資訊處理機器開機時起始該正常作業系統之一啟動載入器;及一第二程式碼,其在該統計資訊已超過該臨限值時重寫該啟動載入器,使得在使該資訊處理機器開機時起始 該緊急軟體,其中該主機裝置能夠在該正常作業系統之一控制下將讀取命令及寫入命令中之兩者發出至該非揮發性記憶裝置,且該主機裝置能夠在該緊急軟體之一控制下僅將讀取命令及寫入命令中之一讀取命令發出至該非揮發性記憶裝置。
  21. 如請求項20之媒體,該工具進一步包含:一第三程式碼,其在重寫該啟動載入器之前產生用於將該啟動載入器自重寫之後之一狀態恢復至重寫之前之一狀態的恢復資訊,且將該恢復資訊儲存於該非揮發性記憶體中。
  22. 如請求項20之媒體,該工具進一步包含:一第四程式碼,其在該統計資訊已超過該臨限值時阻止該非揮發性記憶體進行在該非揮發性記憶裝置中內部執行之背景寫入處理。
  23. 一種主機裝置,其耦接至資訊處理機器,該主機裝置包含:一介面,其耦接至一非揮發性記憶裝置,該非揮發性記憶體儲存一正常作業系統、一緊急軟體及一啟動載入器,該主機裝置能夠在使該資訊處理機器開機時藉由使用該啟動載入器來起始該正常作業系統;一CPU(中央處理單元),其經組態以執行以下步驟:執行該正常作業系統,該主機裝置能夠在該正常作業系統之一控制下將讀取命令及寫入命令中之兩者發出至該非揮發性記憶裝置; 執行該緊急軟體,該主機裝置能夠在該緊急軟體之一控制下僅將讀取命令及寫入命令中之一讀取命令發出至該非揮發性記憶裝置;及一主記憶體,一控制工具係載入至該主記憶體,該控制工具比較自該非揮發性記憶裝置獲得之統計資訊與一臨限值,且當該統計資訊已超過該臨限值時,重寫該啟動載入器,使得當使該資訊處理機器開機時起始該緊急軟體。
  24. 一種資訊處理機器,其包括:一主機機器,一性能評估工具係安裝於其中;一外部記憶裝置,其包括一可讀取且可寫入之非揮發性記憶體;及一介面單元,其連接該主機機器與該外部記憶裝置,其中該性能評估工具包括一存取日誌獲得單元,其在一OS或不同於安裝於該主機機器中之該性能評估工具之一軟體通常存取該外部記憶裝置時自該OS獲得包括一指令及一回應之一命令,且順序地記錄該命令及關於該命令之時間資訊作為一存取日誌,及一性能日誌獲得單元,其藉由使用包括於該存取日誌中之該時間資訊來計算從該外部記憶裝置之性能資訊之量測目標週期(measurement target period)排除對該外部記憶裝置之一命令為非作用之時間的有效時間資訊,藉由使用由該存取日誌獲得單元記錄之該存取日誌及該所計算之有效時間資訊來計算關於該外部記憶裝置之性 能資訊,且記錄此計算結果作為一性能資訊日誌。
  25. 如請求項24之資訊處理機器,其中該主機機器使用一多執行緒系統,藉由該多執行緒系統,複數個執行緒能夠並列地進行操作,且當針對複數個該等執行緒綜合地計算性能資訊時,該性能日誌獲得單元藉由使用從性能資訊之量測目標週期排除了該命令在所有該等執行緒中為非作用之時間的有效時間資訊來計算性能資訊。
  26. 如請求項24之資訊處理機器,其中該主機機器使用一多執行緒系統,藉由該多執行緒系統,複數個執行緒能夠並列地進行操作,且當針對該等執行緒中之每一者計算性能資訊時,該性能日誌獲得單元藉由使用從性能資訊之量測目標週期排除了對該外部記憶裝置之一命令在該等執行緒中之每一者中為非作用之時間的有效時間資訊來計算性能資訊。
  27. 如請求項24之資訊處理機器,其中該存取日誌獲得單元包括記錄該存取日誌之一存取日誌表,且該性能日誌獲得單元包括記錄該性能資訊日誌之一性能日誌表。
  28. 如請求項24之資訊處理機器,其中該存取日誌包括指示該命令之一開始時間及一結束時間之時間資訊、一命令內容,及一傳送長度。
  29. 如請求項24之資訊處理機器,其中該性能資訊日誌包括 一傳送資料速率、一處理命令速率、一回應時間及一處理時間中之至少一者。
  30. 如請求項24之資訊處理機器,其中當儲存於一性能資訊日誌中之性能資訊超出一容限時,該性能日誌獲得單元對該外部記憶裝置執行最佳化處理,以用於將該外部記憶裝置之性能恢復至在該容限內。
  31. 如請求項30之資訊處理機器,其中該外部記憶裝置之該非揮發性記憶體為一非揮發性半導體記憶體,其中以一頁面單位來執行讀取及寫入,且以大於該頁面單位之一區塊單位來執行抹除,且該最佳化處理為通知該外部記憶裝置對該外部記憶裝置中不儲存資料之一邏輯位址之一刪除通知請求的處理。
  32. 如請求項30之資訊處理機器,其中該最佳化處理為在該OS中執行將該外部記憶裝置中之不連續邏輯位址區域改變為該外部記憶裝置中之連續位址區域之磁碟重組處理的處理。
  33. 如請求項30之資訊處理機器,其中該外部記憶裝置之該非揮發性記憶體為一非揮發性半導體記憶體,其中以一頁面單位來執行讀取及寫入,且以大於該頁面單位之一區塊單位來執行抹除,且該最佳化處理為通知該外部記憶裝置一指令之處理,該指令用於藉由引起對該非揮發性半導體記憶體執行資料組織處理來增加一未使用區塊。
  34. 如請求項30之資訊處理機器,其中該外部記憶裝置之該非揮發性記憶體為一非揮發性半導體記憶體,其中以一頁面單位來執行讀取及寫入,且以大於該頁面單位之一區塊單位來執行抹除,當不存在來自該主機機器之存取歷時一預定週期時,該外部記憶裝置藉由對該非揮發性半導體記憶體執行資料組織處理來增加一未使用區塊,且該最佳化處理禁止該OS或不同於該性能評估工具之該軟體在一預定時間內使用該外部記憶裝置之該非揮發性記憶體來執行存取。
  35. 如請求項24之資訊處理機器,其中該性能日誌獲得單元監視該主機機器之用於該存取日誌獲得單元之CPU利用,在該CPU利用超過一第一臨限值時卸載該存取日誌獲得單元,且在該CPU利用在該卸載之後變為低於一第二臨限值時載入該存取日誌獲得單元,該第二臨限值小於該第一臨限值。
  36. 如請求項24之資訊處理機器,其中該性能日誌獲得單元週期性地執行該存取日誌獲得單元之卸載及載入。
  37. 一種儲存一性能評估工具之非過渡性記錄媒體,該性能評估工具安裝於連接至一外部記憶裝置之一主機機器中且評估該外部記憶裝置之性能,該外部記憶裝置包括一可讀取且可寫入之非揮發性記憶體,該性能評估工具包含:一存取日誌獲得單元,其在一OS或不同於安裝於該主 機機器中之該性能評估工具之一軟體通常存取該外部記憶裝置時自該OS獲得包括一指令及一回應之一命令,且順序地記錄該命令及關於該命令之時間資訊作為一存取日誌;及一性能日誌獲得單元,其藉由使用包括於該存取日誌中之該時間資訊來計算從該外部記憶裝置之性能資訊之量測目標週期排除了對該外部記憶裝置之一命令為非作用之時間的有效時間資訊,藉由使用由該存取日誌獲得單元記錄之該存取日誌及該所計算之有效時間資訊來計算關於該外部記憶裝置之性能資訊,且記錄此計算結果作為一性能資訊日誌。
  38. 如請求項37之儲存該性能評估工具的非過渡性記錄媒體,其中該主機機器使用一多執行緒系統,藉由該多執行緒系統,複數個執行緒能夠並列地進行操作,且當針對複數個該等執行緒綜合地計算性能資訊時,該性能日誌獲得單元藉由使用從性能資訊之量測目標週期排除了該命令在所有該等執行緒中為非作用之時間的有效時間資訊來計算性能資訊。
  39. 如請求項37之儲存該性能評估工具的非過渡性記錄媒體,其中該主機機器使用一多執行緒系統,藉由該多執行緒系統,複數個執行緒能夠並列地進行操作,且當針對該等執行緒中之每一者計算性能資訊時,該性 能日誌獲得單元藉由使用從性能資訊之量測目標週期排除了對該外部記憶裝置之一命令在該等執行緒中之每一者中為非作用之時間的有效時間資訊來計算性能資訊。
  40. 一種評估一外部記憶裝置之性能的性能評估方法,該外部記憶裝置經由一介面連接至一主機機器且包括一可讀取且可寫入之非揮發性記憶體,該方法包含:在一OS或不同於安裝於該主機機器中之一性能評估工具之一軟體通常存取該外部記憶裝置時自該OS獲得包括一指令及一回應之一命令,且順序地記錄該命令及關於該命令之時間資訊作為一存取日誌;藉由使用包括於該存取日誌中之該時間資訊來計算從該外部記憶裝置之性能資訊之量測目標週期排除了對該外部記憶裝置之一命令為非作用之時間的有效時間資訊;藉由使用所記錄之存取日誌及該所計算之有效時間資訊來計算關於該外部記憶裝置之性能資訊;及記錄此計算結果作為一性能資訊日誌。
TW101129619A 2011-08-19 2012-08-15 資訊處理機器、控制資訊處理機器之方法、儲存控制工具之非過渡性記錄媒體、主機裝置、儲存性能評估工具之非過渡性記錄媒體及外部記憶裝置用之性能評估方法 TWI498726B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011179890A JP5611909B2 (ja) 2011-08-19 2011-08-19 情報処理装置、性能評価ツール、外部記憶装置の性能評価方法
JP2011186542A JP2013047913A (ja) 2011-08-29 2011-08-29 情報処理装置、情報処理装置の制御方法、制御ツール、及びホスト装置

Publications (2)

Publication Number Publication Date
TW201324140A TW201324140A (zh) 2013-06-16
TWI498726B true TWI498726B (zh) 2015-09-01

Family

ID=47746387

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101129619A TWI498726B (zh) 2011-08-19 2012-08-15 資訊處理機器、控制資訊處理機器之方法、儲存控制工具之非過渡性記錄媒體、主機裝置、儲存性能評估工具之非過渡性記錄媒體及外部記憶裝置用之性能評估方法

Country Status (6)

Country Link
US (6) US9594611B2 (zh)
EP (1) EP2745203B1 (zh)
KR (1) KR101596606B1 (zh)
CN (1) CN103890724B (zh)
TW (1) TWI498726B (zh)
WO (1) WO2013027642A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI619014B (zh) * 2015-10-20 2018-03-21 美光科技公司 記憶體裝置中邏輯位址歷史管理
TWI674505B (zh) * 2017-11-30 2019-10-11 宜鼎國際股份有限公司 資料存取效率的預估方法
TWI721715B (zh) * 2019-12-17 2021-03-11 英業達股份有限公司 基板管理控制器的壓力測試方法、系統、儲存媒體及裝置
TWI752981B (zh) * 2016-07-19 2022-01-21 美商R 史塔公司 用於執行散集記憶盤的方法、裝置和電腦程式

Families Citing this family (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101095046B1 (ko) * 2010-02-25 2011-12-20 연세대학교 산학협력단 솔리드 스테이트 디스크 및 이를 포함하는 사용자 시스템
JP5002719B1 (ja) 2011-03-10 2012-08-15 株式会社東芝 情報処理装置、外部記憶装置、ホスト装置、中継装置、制御プログラム及び情報処理装置の制御方法
US9164887B2 (en) * 2011-12-05 2015-10-20 Industrial Technology Research Institute Power-failure recovery device and method for flash memory
JP5586718B2 (ja) 2012-06-19 2014-09-10 株式会社東芝 制御プログラム、ホスト装置の制御方法、情報処理装置およびホスト装置
TWI492051B (zh) * 2012-09-05 2015-07-11 Silicon Motion Inc 資料儲存裝置與快閃記憶體控制方法
US9026553B2 (en) * 2012-11-29 2015-05-05 Unisys Corporation Data expanse viewer for database systems
JP6005566B2 (ja) 2013-03-18 2016-10-12 株式会社東芝 情報処理システム、制御プログラムおよび情報処理装置
CN103440141A (zh) * 2013-06-28 2013-12-11 株洲南车时代电气股份有限公司 一种显示器在dos系统下的程序写片装置、系统及其方法
US9030883B2 (en) * 2013-07-16 2015-05-12 Freescale Semiconductor, Inc. Adaptive erase recovery for non-volatile memory (NVM) systems
JP2015064860A (ja) * 2013-08-27 2015-04-09 キヤノン株式会社 画像形成装置およびその制御方法、並びにプログラム
US9304685B2 (en) 2013-09-10 2016-04-05 Kabushiki Kaisha Toshiba Storage array system and non-transitory recording medium storing control program
US10372463B1 (en) * 2013-11-27 2019-08-06 EMC IP Holding Company LLC Provisioning a computerized device with an operating system
US9483411B2 (en) 2014-03-05 2016-11-01 Kabushiki Kaisha Toshiba Memory system which transfers management information between first and second memories in a burst mode before a read process is performed on a third memory
US9268487B2 (en) * 2014-03-24 2016-02-23 Western Digital Technologies, Inc. Method and apparatus for restricting writes to solid state memory when an end-of life condition is reached
KR102210964B1 (ko) * 2014-05-13 2021-02-03 삼성전자주식회사 스토리지 장치, 스토리지 장치의 동작 방법, 그리고 스토리지 장치를 액세스하는 액세스 방법
KR102291507B1 (ko) * 2014-05-20 2021-08-20 삼성전자주식회사 메모리 컨트롤러의 동작 방법
JP6364983B2 (ja) * 2014-06-10 2018-08-01 富士ゼロックス株式会社 電子機器及びプログラム
CN105320621A (zh) * 2014-08-04 2016-02-10 株式会社东芝 存储器系统以及信息处理装置
US9760136B2 (en) * 2014-08-15 2017-09-12 Intel Corporation Controlling temperature of a system memory
CN105446905B (zh) * 2014-09-01 2018-05-15 炬芯(珠海)科技有限公司 一种对传输性能进行评估的方法、设备和系统
US9934872B2 (en) * 2014-10-30 2018-04-03 Sandisk Technologies Llc Erase stress and delta erase loop count methods for various fail modes in non-volatile memory
JP6494275B2 (ja) * 2014-12-24 2019-04-03 キヤノン株式会社 記録装置及び記録装置の制御方法
CN104729536B (zh) * 2015-03-18 2017-11-10 广东好帮手电子科技股份有限公司 一种基于车载导航产品的调试工具及调试方法
US10120696B2 (en) * 2015-03-19 2018-11-06 Sony Corporation Method and device for controlling usability of a communication device
US9578020B2 (en) 2015-03-19 2017-02-21 Sony Corporation Module for controlling usability of a device
US10346039B2 (en) 2015-04-21 2019-07-09 Toshiba Memory Corporation Memory system
KR20160146332A (ko) * 2015-06-12 2016-12-21 에스케이하이닉스 주식회사 복수의 저장 영역들을 포함하는 메모리 시스템 및 그것의 동작 방법
KR20160148940A (ko) * 2015-06-17 2016-12-27 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작방법
JP2017068634A (ja) * 2015-09-30 2017-04-06 株式会社東芝 記憶装置及び方法
US10007638B2 (en) * 2015-11-10 2018-06-26 Dell Products, Lp Asynchronous notification including parameter values in serial advanced technology attachment protocol
CN106843744B (zh) * 2015-12-03 2020-05-26 群联电子股份有限公司 数据程序化方法与存储器储存装置
US10229049B2 (en) 2015-12-17 2019-03-12 Toshiba Memory Corporation Storage system that performs host-initiated garbage collection
JP6515799B2 (ja) * 2015-12-18 2019-05-22 京セラドキュメントソリューションズ株式会社 電子機器及びメモリー寿命警告プログラム
US10379747B2 (en) * 2015-12-21 2019-08-13 Western Digital Technologies, Inc. Automated latency monitoring
JP6410055B2 (ja) * 2016-01-27 2018-10-24 京セラドキュメントソリューションズ株式会社 画像形成装置およびデータ処理プログラム
US10037172B2 (en) 2016-02-09 2018-07-31 Toshiba Memory Corporation Memory system and controlling method
JP6320439B2 (ja) * 2016-03-10 2018-05-09 株式会社東芝 メモリ制御装置、ストレージ装置、ストレージ装置の制御プログラム、及び、ストレージ装置の制御方法
US9880743B1 (en) * 2016-03-31 2018-01-30 EMC IP Holding Company LLC Tracking compressed fragments for efficient free space management
KR102546474B1 (ko) * 2016-04-25 2023-06-22 삼성전자주식회사 모바일 장치의 동작 방법 및 모바일 장치
JP2018018271A (ja) * 2016-07-27 2018-02-01 富士通株式会社 ストレージ制御装置、ストレージシステムおよびストレージ制御プログラム
JP2018049381A (ja) * 2016-09-20 2018-03-29 東芝メモリ株式会社 メモリ制御回路、メモリシステムおよびプロセッサシステム
US10839852B2 (en) 2016-09-21 2020-11-17 International Business Machines Corporation Log snapshot control on an automated data storage library
US10782890B2 (en) * 2016-09-21 2020-09-22 International Business Machines Corporation Log snapshot procedure control on an automated data storage library
US10606605B2 (en) * 2016-09-29 2020-03-31 Verizon Patent And Licensing, Inc. Software upgrade and disaster recovery on a computing device
US10579471B2 (en) 2017-03-02 2020-03-03 Toshiba Memory Corporation Storage device and error correction method for storage device
JP6873811B2 (ja) * 2017-05-01 2021-05-19 Dynabook株式会社 情報処理装置
US20180349228A1 (en) * 2017-06-06 2018-12-06 BSD Research LLC Devices and methods for recovering data from computers
CN107506239A (zh) * 2017-07-28 2017-12-22 苏州蓝越软件有限公司 计算机组件化软件系统
JP2019046321A (ja) 2017-09-05 2019-03-22 東芝メモリ株式会社 メモリシステム
CN107728936B (zh) * 2017-09-05 2020-10-09 华为技术有限公司 用于传输数据处理请求的方法和装置
JP7074453B2 (ja) * 2017-10-30 2022-05-24 キオクシア株式会社 メモリシステムおよび制御方法
US11099760B2 (en) * 2017-12-14 2021-08-24 Intel Corporation Background data refresh using a system timestamp in storage devices
CN110018900B (zh) * 2018-01-10 2023-01-24 Oppo广东移动通信有限公司 内存处理方法和装置、电子设备、计算机可读存储介质
CN110018902B (zh) * 2018-01-10 2023-01-31 Oppo广东移动通信有限公司 内存处理方法和装置、电子设备、计算机可读存储介质
CN108170562B (zh) * 2018-01-12 2020-10-09 深圳大普微电子科技有限公司 一种固态硬盘及其数据处理方法和系统
JP7011160B2 (ja) 2018-01-15 2022-01-26 株式会社バッファロー ストレージ装置、ストレージシステム、及びプログラム
JP6881330B2 (ja) * 2018-01-24 2021-06-02 京セラドキュメントソリューションズ株式会社 電子機器及びメモリー制御プログラム
US11288116B2 (en) * 2018-02-15 2022-03-29 Micron Technology, Inc. End of service life of data storage devices
JP6901427B2 (ja) * 2018-03-27 2021-07-14 キオクシア株式会社 ストレージ装置、コンピュータシステムおよびストレージ装置の動作方法
US10642519B2 (en) 2018-04-06 2020-05-05 Western Digital Technologies, Inc. Intelligent SAS phy connection management
TWI666549B (zh) 2018-04-18 2019-07-21 祥碩科技股份有限公司 硬碟管理方法與存儲控制器
US10446237B1 (en) 2018-06-29 2019-10-15 Micron Technology, Inc. Temperature sensitive NAND programming
US10891137B2 (en) 2018-07-13 2021-01-12 International Business Machines Corporation Making available input/output statistics for data sets opened during initial program load
US10868769B1 (en) * 2018-08-07 2020-12-15 Innovium, Inc. Read instruction queues in a network device
US10846225B1 (en) 2018-08-07 2020-11-24 Innovium, Inc. Buffer read optimizations in a network device
US10742558B1 (en) 2018-08-07 2020-08-11 Innovium, Inc. Traffic manager resource sharing
JP2020042890A (ja) 2018-09-13 2020-03-19 キオクシア株式会社 メモリシステムおよびメモリシステムの制御方法
JP7055084B2 (ja) * 2018-09-20 2022-04-15 ルネサスエレクトロニクス株式会社 半導体装置及び半導体装置の制御方法
CN111104047B (zh) * 2018-10-25 2023-08-25 伊姆西Ip控股有限责任公司 管理冗余磁盘阵列的方法、设备和计算机可读存储介质
US10831379B2 (en) * 2018-10-30 2020-11-10 Western Digital Technologies, Inc. Method for enhancing SSD endurance by utilizing host DRAM
WO2020133202A1 (en) 2018-12-28 2020-07-02 Micron Technology, Inc. Reduce system active power based on memory usage patterns
JP2020113351A (ja) * 2019-01-10 2020-07-27 キオクシア株式会社 メモリチップ
KR20200088565A (ko) * 2019-01-15 2020-07-23 에스케이하이닉스 주식회사 저장 장치, 컨트롤러 및 저장 장치의 동작 방법
CN111599397B (zh) * 2019-02-20 2024-04-09 深圳通锐微电子技术有限公司 控制装置及控制方法
US10950325B2 (en) * 2019-04-04 2021-03-16 Marvell Asia Pte., Ltd. Memory built-in self test error correcting code (MBIST ECC) for low voltage memories
KR102226538B1 (ko) 2019-06-27 2021-03-10 중앙대학교 산학협력단 파일 시스템 단편화 제거 방법, 이를 수행하기 위한 기록매체 및 장치
CN110428858B (zh) * 2019-07-11 2021-09-24 清华大学 基于具有滞回特性器件的静态存储器
JP2021034091A (ja) 2019-08-29 2021-03-01 キオクシア株式会社 メモリシステムおよび制御方法
US20210149800A1 (en) * 2019-11-20 2021-05-20 Western Digital Technologies, Inc. Ssd system using power-cycle based read scrub
US11366714B2 (en) * 2019-12-16 2022-06-21 Microsoft Technology Licensing, Llc Behavior-driven die management on solid-state drives
US11797217B2 (en) * 2020-01-06 2023-10-24 Kioxia Corporation Systems and methods for collecting storage device statistics
KR20210129490A (ko) * 2020-04-20 2021-10-28 에스케이하이닉스 주식회사 반도체 메모리 장치 및 이의 동작 방법
JP2021176026A (ja) 2020-05-01 2021-11-04 キオクシア株式会社 メモリシステム
US20210397363A1 (en) * 2020-06-17 2021-12-23 Micron Technology, Inc. Operational monitoring for memory devices
US20220043588A1 (en) * 2020-08-06 2022-02-10 Micron Technology, Inc. Localized memory traffic control for high-speed memory devices
CN111966845B (zh) * 2020-08-31 2023-11-17 重庆紫光华山智安科技有限公司 图片管理方法、装置、存储节点及存储介质
JP2022046887A (ja) * 2020-09-11 2022-03-24 キオクシア株式会社 半導体記憶装置
US11977772B2 (en) * 2020-09-28 2024-05-07 Micron Technology, Inc. Temperature monitoring for memory devices
CN112230855A (zh) * 2020-10-20 2021-01-15 英韧科技(上海)有限公司 固态硬盘及其读写方法
CN113010450A (zh) * 2021-02-04 2021-06-22 深圳星火半导体科技有限公司 一种存储碎片整理的方法及装置
CN113204011B (zh) * 2021-03-29 2022-05-20 上海星秒光电科技有限公司 一种脉冲时间输出方法、装置、信号处理设备及存储介质
US11651834B2 (en) 2021-05-11 2023-05-16 Micron Technology, Inc. Memory duty-cycle skew management
US11626180B2 (en) * 2021-05-11 2023-04-11 Micron Technology, Inc. Memory degradation detection and management
WO2022240318A1 (ru) * 2021-05-13 2022-11-17 Общество с ограниченной ответственностью "РЭЙДИКС" Способ управления системой хранения данных и система хранения данных
US11550666B1 (en) * 2021-09-29 2023-01-10 Dell Products L.P. Efficient mechanism to perform auto retention locking of files ingested via distributed segment processing in deduplication backup servers
US20230185482A1 (en) * 2021-12-14 2023-06-15 Micron Technology, Inc. Burn-In Solid State Drives through Generation of Proof of Space Plots in A Manufacturing Facility
CN116798480A (zh) * 2022-03-16 2023-09-22 华为技术有限公司 一种存储装置及相关指令时延统计方法
US20230325275A1 (en) * 2022-04-07 2023-10-12 Kioxia Corporation Method and device for assessing operational effectiveness of solid-state drive (ssd) memory device
CN116524992B (zh) * 2023-06-29 2023-09-15 上海飞斯信息科技有限公司 大容量高速固态存储器容量管理系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003303056A (ja) * 2002-04-10 2003-10-24 Sanyo Electric Co Ltd 制御方法、その制御方法を利用可能な制御装置およびホスト装置
JP2011095886A (ja) * 2009-10-28 2011-05-12 Nec Corp アプリケーションサーバ、アプリケーション障害再現方法、およびアプリケーション障害再現プログラム
US7974714B2 (en) * 1999-10-05 2011-07-05 Steven Mark Hoffberg Intelligent electronic appliance system and method
US20110185145A1 (en) * 2010-01-27 2011-07-28 Kabushiki Kaisha Toshiba Semiconductor storage device and control method thereof

Family Cites Families (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69033262T2 (de) * 1989-04-13 2000-02-24 Sandisk Corp EEPROM-Karte mit Austauch von fehlerhaften Speicherzellen und Zwischenspeicher
JPH0778102A (ja) 1993-09-08 1995-03-20 Hitachi Ltd 擬似cd−rom装置
JP2000099338A (ja) 1998-09-21 2000-04-07 Ricoh Co Ltd コンピュータ読み取り可能な情報記録媒体
US6529992B1 (en) 1999-07-26 2003-03-04 Iomega Corporation Self-contained application disk for automatically launching application software or starting devices and peripherals
JP2001154927A (ja) 1999-11-25 2001-06-08 Casio Comput Co Ltd データバックアップ装置及びバックアップ制御プログラムを記憶した記憶媒体
JP2001154922A (ja) 1999-11-29 2001-06-08 Murata Mach Ltd メモリ制御装置
US7676640B2 (en) * 2000-01-06 2010-03-09 Super Talent Electronics, Inc. Flash memory controller controlling various flash memory cells
JP2002032271A (ja) 2000-07-14 2002-01-31 Ricoh Co Ltd 情報処理装置
JP2002351621A (ja) 2001-05-30 2002-12-06 Toshiba Corp 複数デバイスとして認識されるドライブ装置と光ディスクドライブ装置及びこれらの方法
US7246268B2 (en) * 2002-01-16 2007-07-17 Sandisk Corporation Method and apparatus for dynamic degradation detection
US7562208B1 (en) * 2002-02-07 2009-07-14 Network Appliance, Inc. Method and system to quarantine system software and configuration
US20030160989A1 (en) 2002-02-25 2003-08-28 Xerox Corporation System for installing a printer driver on a network
JP4909383B2 (ja) 2002-10-03 2012-04-04 株式会社アイ・オー・データ機器 ハードディスク管理装置
JP3767818B2 (ja) 2002-10-28 2006-04-19 株式会社サスライト 着脱式デバイス及びプログラムの起動方法
JP3470969B1 (ja) 2003-01-24 2003-11-25 株式会社クリエイティブ・ブレインズ 画像データで特定可能な評価対象物における質的情報の解析装置
JP3906825B2 (ja) * 2003-06-17 2007-04-18 日本電気株式会社 計算機システム、計算機システム起動方法およびプログラム
US7231322B2 (en) 2003-06-26 2007-06-12 Microsoft Corporation Hardware/software capability rating system
JP2005190075A (ja) 2003-12-25 2005-07-14 I-O Data Device Inc リムーバブルメディア装置およびその上位装置、ならびに、プログラムおよびその記録媒体
US20050204115A1 (en) * 2004-01-30 2005-09-15 Kiminori Matsuno Semiconductor memory device, memory controller and data recording method
US20080082736A1 (en) * 2004-03-11 2008-04-03 Chow David Q Managing bad blocks in various flash memory cells for electronic data flash card
US7269708B2 (en) * 2004-04-20 2007-09-11 Rambus Inc. Memory controller for non-homogenous memory system
JP4560367B2 (ja) 2004-10-05 2010-10-13 株式会社日立製作所 ストレージネットワーク性能情報の収集・保存方法及び計算機システム並びにプログラム
JP4965824B2 (ja) * 2005-06-24 2012-07-04 株式会社東芝 情報処理装置およびデータ救済方法
JP3766429B2 (ja) 2005-08-04 2006-04-12 株式会社サスライト 着脱式デバイス
JP4933861B2 (ja) * 2005-09-22 2012-05-16 株式会社日立製作所 ストレージ制御装置、データ管理システムおよびデータ管理方法
US7861122B2 (en) 2006-01-27 2010-12-28 Apple Inc. Monitoring health of non-volatile memory
US20070180186A1 (en) 2006-01-27 2007-08-02 Cornwell Michael J Non-volatile memory management
US7184932B1 (en) 2006-01-31 2007-02-27 Sun Microsystems, Inc. Reliability prediction for complex components
JP2007207139A (ja) 2006-02-06 2007-08-16 Toshiba Tec Corp 情報処理装置
JP2007299114A (ja) * 2006-04-28 2007-11-15 Hitachi Ltd 記憶システム及びデータ保存方法
US7653778B2 (en) * 2006-05-08 2010-01-26 Siliconsystems, Inc. Systems and methods for measuring the useful life of solid-state storage devices
JP4487978B2 (ja) 2006-06-28 2010-06-23 セイコーエプソン株式会社 半導体記憶装置管理システム、プログラム、半導体記憶装置の管理方法
JP4472010B2 (ja) * 2006-08-09 2010-06-02 株式会社日立超エル・エス・アイ・システムズ 記憶装置
JP2008046923A (ja) * 2006-08-17 2008-02-28 Toshiba Corp 半導体メモリカードシステムの制御方法
JP2008090539A (ja) 2006-09-29 2008-04-17 Toshiba Corp メモリカード、周辺装置及び主装置
WO2008063647A2 (en) 2006-11-24 2008-05-29 Sandforce Inc. Delaying an operation that reduces a lifetime of memory
JP4575346B2 (ja) 2006-11-30 2010-11-04 株式会社東芝 メモリシステム
JP2008146253A (ja) 2006-12-07 2008-06-26 Sony Corp 記憶装置およびコンピュータシステム、並びに記憶装置のデータ処理方法
TW200837551A (en) 2007-03-02 2008-09-16 A Data Technology Co Ltd Storage device capable of cooperating to adjust reliability, method for establishing and input data thereof
JP4897524B2 (ja) * 2007-03-15 2012-03-14 株式会社日立製作所 ストレージシステム及びストレージシステムのライト性能低下防止方法
JP5032172B2 (ja) * 2007-03-28 2012-09-26 株式会社東芝 統合メモリ管理装置及び方法並びにデータ処理システム
US8135900B2 (en) * 2007-03-28 2012-03-13 Kabushiki Kaisha Toshiba Integrated memory management and memory management method
JP2008269335A (ja) 2007-04-20 2008-11-06 Ricoh Co Ltd データ転送集積回路およびデータ転送装置
WO2009001519A1 (ja) * 2007-06-22 2008-12-31 Panasonic Corporation メモリコントローラ、不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
JP2009054221A (ja) 2007-08-24 2009-03-12 Hitachi Ltd 磁気ディスク装置の寿命管理システム
US8001316B2 (en) 2007-12-27 2011-08-16 Sandisk Il Ltd. Controller for one type of NAND flash memory for emulating another type of NAND flash memory
US8706950B2 (en) * 2008-03-01 2014-04-22 Kabushiki Kaisha Toshiba Memory system
JP4675985B2 (ja) 2008-03-01 2011-04-27 株式会社東芝 メモリシステム
JP4643671B2 (ja) * 2008-03-11 2011-03-02 株式会社東芝 メモリシステム
US8484432B2 (en) 2008-03-11 2013-07-09 Kabushiki Kaisha Toshiba Memory system
US8082384B2 (en) * 2008-03-26 2011-12-20 Microsoft Corporation Booting an electronic device using flash memory and a limited function memory controller
US7721166B2 (en) * 2008-03-27 2010-05-18 Skymedi Corporation Method for managing defect blocks in non-volatile memory
US9547589B2 (en) * 2008-06-18 2017-01-17 Super Talent Technology, Corp. Endurance translation layer (ETL) and diversion of temp files for reduced flash wear of a super-endurance solid-state drive
JP2010061578A (ja) 2008-09-05 2010-03-18 Jds:Kk 半導体記憶装置の使用限界予想解析用プログラム又はシステム
KR101038167B1 (ko) * 2008-09-09 2011-05-31 가부시끼가이샤 도시바 프로세서로부터 메모리로의 액세스를 관리하는 메모리 관리 장치를 포함하는 정보 처리 장치 및 메모리 관리 방법
US8327066B2 (en) * 2008-09-30 2012-12-04 Samsung Electronics Co., Ltd. Method of managing a solid state drive, associated systems and implementations
JP2010204851A (ja) 2009-03-02 2010-09-16 Hitachi Ltd 記憶装置及び情報処理装置
TW201033808A (en) * 2009-03-10 2010-09-16 Vivotek Inc System recovery method and embedded system with auto-recovery function
JP5425497B2 (ja) 2009-03-19 2014-02-26 株式会社日立システムズ ソフトウェア検証システムと方法およびプログラム
US8166232B2 (en) 2009-04-02 2012-04-24 Hitachi, Ltd. Metrics and management for flash memory storage life
US8176367B2 (en) * 2009-05-28 2012-05-08 Agere Systems Inc. Systems and methods for managing end of life in a solid state drive
US8230255B2 (en) 2009-12-15 2012-07-24 International Business Machines Corporation Blocking write acces to memory modules of a solid state drive
JP2011128998A (ja) 2009-12-18 2011-06-30 Toshiba Corp 半導体記憶装置
JPWO2011102126A1 (ja) 2010-02-22 2013-06-17 パナソニック株式会社 不揮発性半導体記憶装置及び電子機器
JP2010287242A (ja) 2010-06-30 2010-12-24 Toshiba Corp 不揮発性半導体メモリドライブ
TWI467581B (zh) * 2010-09-07 2015-01-01 Phison Electronics Corp 複合式儲存裝置及其複合式儲存媒體控制器與定址方法
JP5002719B1 (ja) 2011-03-10 2012-08-15 株式会社東芝 情報処理装置、外部記憶装置、ホスト装置、中継装置、制御プログラム及び情報処理装置の制御方法
US8949508B2 (en) * 2011-07-18 2015-02-03 Apple Inc. Non-volatile temporary data handling

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7974714B2 (en) * 1999-10-05 2011-07-05 Steven Mark Hoffberg Intelligent electronic appliance system and method
JP2003303056A (ja) * 2002-04-10 2003-10-24 Sanyo Electric Co Ltd 制御方法、その制御方法を利用可能な制御装置およびホスト装置
JP2011095886A (ja) * 2009-10-28 2011-05-12 Nec Corp アプリケーションサーバ、アプリケーション障害再現方法、およびアプリケーション障害再現プログラム
US20110185145A1 (en) * 2010-01-27 2011-07-28 Kabushiki Kaisha Toshiba Semiconductor storage device and control method thereof

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI619014B (zh) * 2015-10-20 2018-03-21 美光科技公司 記憶體裝置中邏輯位址歷史管理
TWI752981B (zh) * 2016-07-19 2022-01-21 美商R 史塔公司 用於執行散集記憶盤的方法、裝置和電腦程式
TWI674505B (zh) * 2017-11-30 2019-10-11 宜鼎國際股份有限公司 資料存取效率的預估方法
TWI721715B (zh) * 2019-12-17 2021-03-11 英業達股份有限公司 基板管理控制器的壓力測試方法、系統、儲存媒體及裝置

Also Published As

Publication number Publication date
WO2013027642A1 (en) 2013-02-28
US11119661B2 (en) 2021-09-14
CN103890724B (zh) 2017-04-19
US10101923B2 (en) 2018-10-16
EP2745203A1 (en) 2014-06-25
TW201324140A (zh) 2013-06-16
US10452283B2 (en) 2019-10-22
US20190012098A1 (en) 2019-01-10
US20170115904A1 (en) 2017-04-27
US20210373779A1 (en) 2021-12-02
US20140173268A1 (en) 2014-06-19
US20200042194A1 (en) 2020-02-06
US11726661B2 (en) 2023-08-15
KR101596606B1 (ko) 2016-03-07
US20230342039A1 (en) 2023-10-26
US9594611B2 (en) 2017-03-14
KR20140039074A (ko) 2014-03-31
CN103890724A (zh) 2014-06-25
EP2745203A4 (en) 2015-04-15
EP2745203B1 (en) 2016-09-21

Similar Documents

Publication Publication Date Title
TWI498726B (zh) 資訊處理機器、控制資訊處理機器之方法、儲存控制工具之非過渡性記錄媒體、主機裝置、儲存性能評估工具之非過渡性記錄媒體及外部記憶裝置用之性能評估方法
US11544131B2 (en) Information processing device, external storage device, host device, relay device, control program, and control method of information processing device
JP6005566B2 (ja) 情報処理システム、制御プログラムおよび情報処理装置
JP2013047913A (ja) 情報処理装置、情報処理装置の制御方法、制御ツール、及びホスト装置
JP5668163B2 (ja) 情報処理装置
JP5535383B2 (ja) ホスト装置および制御ツール
JP6190488B2 (ja) 情報記録システム
JP6403130B2 (ja) 情報記録システム
JP2019008814A (ja) 半導体記憶装置
JP7143487B2 (ja) 情報処理装置
JP6913797B2 (ja) 情報処理装置
JP2015084241A (ja) 情報処理装置