TW202129651A - 由快閃記憶體初始化裝置所執行以初始化快閃記憶體裝置的快閃記憶體初始化方法以及用來控制快閃記憶體裝置的快閃記憶體控制器 - Google Patents

由快閃記憶體初始化裝置所執行以初始化快閃記憶體裝置的快閃記憶體初始化方法以及用來控制快閃記憶體裝置的快閃記憶體控制器 Download PDF

Info

Publication number
TW202129651A
TW202129651A TW109136909A TW109136909A TW202129651A TW 202129651 A TW202129651 A TW 202129651A TW 109136909 A TW109136909 A TW 109136909A TW 109136909 A TW109136909 A TW 109136909A TW 202129651 A TW202129651 A TW 202129651A
Authority
TW
Taiwan
Prior art keywords
candidate
addresses
flash memory
address
item
Prior art date
Application number
TW109136909A
Other languages
English (en)
Other versions
TWI729954B (zh
Inventor
黃聖元
Original Assignee
慧榮科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 慧榮科技股份有限公司 filed Critical 慧榮科技股份有限公司
Application granted granted Critical
Publication of TWI729954B publication Critical patent/TWI729954B/zh
Publication of TW202129651A publication Critical patent/TW202129651A/zh

Links

Images

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/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • 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
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage 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
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • 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/1004Compatibility, e.g. with legacy hardware
    • 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/10Providing a specific technical effect
    • G06F2212/1056Simplification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

一種快閃記憶體初始化方法,包含:決定多個候選位址的一可接受的最大個數N;決定多個不同容量尺寸之個數M;將該多個候選位址分類為M個部分;決定於該第m個部分的候選位址中任兩個相鄰位址的兩個位址數值的一差值;根據該差值,決定該第m個部分的候選位址中之多個位址數值;根據該多個位址數值,決定該第m個部分的候選位址的多個實際位址;以及通過根據該第m個部分的候選位址的該些實際位址來控制快閃記憶體控制器來寫入開機資訊到快閃記憶體裝置中該第m個部分的候選位址中的至少其中一個候選位址所相應之至少一儲存位置。

Description

由快閃記憶體初始化裝置所執行以初始化快閃記憶體裝置的快閃記憶體初始化方法以及用來控制快閃記憶體裝置的快閃記憶體控制器
本發明係指初始化快閃記憶體之機制,特別有關於由一快閃記憶體初始化裝置所使用的方法以及用來控制一快閃記憶體裝置之一快閃記憶體控制器。
一般來說,一快閃記憶體裝置包含有一控制器及一快閃記憶體,其中該控制器當被供電時其需要在一計時器過期之前成功地從該快閃記憶體讀取出一開機資訊,以使用該開時資訊來從該快閃記憶體中取得韌體程式;該開機資訊一般可能儲存於該快閃記憶體的一特定的儲存區塊中。然而,如果該快閃記憶體係為一降級產品而該特定的儲存區塊是該快閃記憶體的一壞塊(bad block)時,整個記憶體裝置會操作就會失效/失敗(fail)。
傳統的方法係在當初始化該快閃記憶體時將該開機資訊儲存至一或多個儲存區塊中的固定的儲存頁,以及在該控制器被供電時從該些固定的儲存頁中讀取回該開機資訊。 舉例來說,傳統的方發係將該開機資訊儲存於一個儲存區塊中由一個固定儲存頁個數(例如64個儲存頁)所分隔開的多個儲存頁,如果在計時器過期之前傳統的控制器至多只使用512次來嘗試從該快閃記憶體中讀取回該開機資訊,則當一個儲存區塊例如具有128個儲存頁時該控制器只會檢查該快閃記憶體的256個連續區塊中是否儲存有該開機資訊。然而,如果一個儲存區塊可以具有4096個儲存頁時,則該控制器只能夠檢查該快閃記憶體的8個連續區塊中是否儲存有該開機資訊,換句話說,如果該8個連續區塊都變成壞塊,則傳統方法中的控制器是無法取得該開機資訊來得到韌體程式,而該控制器及記憶裝置的操作均將會失敗。
如此一來,傳統的方法是無法適用於具有多種類型的多個快閃記憶體。
因此本發明的目的之一在於提供一種由一快閃記憶體初始化裝置所執行之一快閃記憶體初始化方法以及用來控制一快閃記憶體裝置之一快閃記憶體控制器,以解決上述的難題。
根據本發明的實施例,其係揭露一種由一快閃記憶體初始化裝置所執行以初始化一快閃記憶體裝置的快閃記憶體初始化方法,該快閃記憶體裝置包含一快閃記憶體與一快閃記憶體控制器,該快閃記憶體初始化方法包含:決定多個候選位址的一可接受的最大個數N,每一候選位址係由一列位址與一行位址之一組合所形成,N係為一整數;決定可由該快閃記憶體所支援的多個不同容量尺寸(capacity size)之個數M,其中M係為小於N的一整數;將該多個候選位址分類為分別相應於該多個不同容量尺寸之M個部分以決定出在該M個部分中的每一部分之多個候選位址之一個數;對於第m個部分的多個候選位址,其中m的值從1至M:決定於該第m個部分的候選位址中任兩個相鄰位址的兩個位址數值的一差值;根據該任兩個相鄰位址的該兩個位址數值之該差值,決定該第m個部分的候選位址中之多個位址數值;以及根據該第m個部分的候選位址中之該多個位址數值,決定該第m個部分的候選位址的多個實際位址;以及通過根據該第m個部分的候選位址的該些實際位址來控制該快閃記憶體控制器來寫入開機資訊到該快閃記憶體裝置中該第m個部分的候選位址中的至少其中一個候選位址所相應之至少一儲存位置,以從該快閃記憶體初始化裝置寫入開機資訊至該閃記憶體裝置。
根據本發明的實施例,其另揭露一種用來控制一快閃記憶體裝置的一快閃記憶體控制器,該快閃記憶體控制器包含一唯讀記憶體與一處理電路,該唯讀記憶體用來記錄一特定程式碼;處理電路耦接於該唯讀記憶體,用來當該控制器被供電時讀取該特定程式碼,以及用來執行該特定程式碼以進行:決定多個候選位址之一可接受的最大個數N,每一候選位址係由一列位址與一行位址之一組合所形成,其中N係為一整數;決定由該快閃記憶體裝置所能夠支援之多個不同容量尺寸之一個數M,其中M係為小於N的一整數;將該多個候選位址分類為分別相應於該多個不同容量尺寸的M個部分,以決定該M個部分之每一部分之候選位址的一個數;對於一第m個部分的候選位址,其中m從1至M:決定該第m個部分的候選位址中任兩個相鄰位址之兩位址數值之間的一差值;根據該任兩個相鄰位址之該兩位址數值之間的該差值,來決定該第m個部分的候選位址的多個位址數值;以及根據該第m個部分的候選位址的該多個位址數值,決定該第m個部分的候選位址之多個實際位址;以及從該快閃記憶體初始化裝置寫入開機資訊至該快閃記憶體裝置通過根據該第m個部分的候選位址之該多個實際位址來控制該快閃記憶體控制器寫入一開機資訊至該快閃記憶體裝置中該第m個部分的候選位址的至少其中一個位址所相應之至少一儲存位置,以從該快閃記憶體初始化裝置寫入該開機資訊至該快閃記憶體裝置。
第1圖是本發明一實施例使用一快閃記憶體初始化裝置150寫入一開機資訊至一記憶裝置100之方塊示意圖。該記憶裝置100例如係一儲存裝置,例如固態硬碟(solid-state drive)或一安全數位記憶卡(secure digital (SD) memory card);但不限定。該記憶裝置100包含一快閃記憶體控制器105與一快閃記憶體110,而該控制器105包含一處理電路115、一隨機存取記憶體120與一唯讀記憶體125,該唯讀記憶體125記錄有一開機程式碼。
該快閃記憶體初始化裝置105例如是當該製造商產生或製造該記憶裝置100(例如記憶卡或固態硬碟)時被用來作為一初始化工具裝置的電腦,該初始化工具裝置係由一記憶體製造商所使用來載入一初始化程式來產生一開機資訊。該初始化程式及該控制器105均可由一控制器製造商所提供。該初始化工具裝置150係經由一介面例如是USB 介面(但不限定)來連接至該記憶裝置100。例如,在該記憶裝置製造商決定一快閃記憶體之類型及選定一相應的控制器之後,該記憶裝置製造商會通過載入並執行該控制器製造商所提供之該初始化程式以初始化該快閃記憶體110。該初始化程式會產生該開機資訊以及經由該USB介面傳送所產生之該開機資訊至該控制器 115的該隨機存取記憶體120。
接著,該控制器115轉移該隨機存取記憶體120所暫存之該開機資訊並將該開機資訊寫入至該快閃記憶體110之適當的列位址與行位址。也就是,該初始化工具裝置150係被安排來控制該控制器105寫入該開機資訊至該快閃記憶體110。
用來儲存該開機資訊之該些適當的列位址與行位址係由運行於該初始化工具裝置150上之該初始化程式根據一特定規則所決定,使得該些適當的列位址與行位址等效上可以盡可能均勻地散布於所有(或一較大部分)的列位址與行位址。儲存該開機資訊至盡可能被均勻地散布之該些適當的列位址與行位址係用以避免一區塊變成一壞塊。
控制器105的唯讀記憶體125記錄有相同的特定規則。如此,在離開工廠之後,當該記憶裝置100再次被供電時,控制器105的處理電路115可基於唯讀記憶體125中所記錄之相同的特定規則而成功地從該快閃記憶體110中之該些適當的列位址與行位址讀取出該開機資訊。該處理電路115接著可以基於該開機資訊從該快閃記憶體110之一特定位置讀取出或取得及執行一專用韌體程式。也就是,該初始化程式用來決定該些適當的列位址與行位址之操作係類似於控制器105用來找出該些適當的列位址與行位址之操作。
應注意的是,該快閃記憶體110用來記錄該開機資訊之一區塊或一儲存頁係可被稱為是一資訊區塊或一資訊儲存頁。
實作上,該初始化程式係被安排來產生一候選的或黃金(golden)列與行位址表,黃金一詞意指較為珍貴重要的列與行位址,該表用來記錄哪些列與行位址是被選用或被使作為多個候選的或黃金列與行位址以儲存該開機資訊至該些候選的或黃金列與行位址的至少一個組合所相應之至少一個儲存位置(例如一或多個區段(sector)或一或多個位元組(byte)。該初始化程式係用來決定該些候選的列與行位址,使得該些候選的列與行位址可以被均勻地散布於所有區段、或散布於一較大部分的區段、或散布於所有位元組、或散布於一較大部分的位元組。應注意的是,一個位址例如是由一列位址與一行位址所形成,該列位址例如是3個位元組所表示,而該行位址例如是2個位元組所表示,也就是,一個位址的表示例如係由5個位元組(但不限定)所實現。
該初始化程式被安排決定多個候選的或黃金位址之一可接受的總個數(或最大個數),每一候選的或黃金位址係由一列位址與一行位址的一組合所形成,以及該初始化程式係決定該初始化程式所能夠支援的多個快閃記憶體的多個容量尺寸。
舉例來說,多個候選位址之可接受的總個數(或最大個數)被設置為N,其中N為一整數,例如是512(但不限定)。該初始化程式被安排將該開機資訊寫入至該N個候選位址中的一或多個候選位址之一或多個儲存位置或空間,以及在離開工廠之後,該快閃記憶體控制器105被安排根據該N個候選位址中的一或多個候選位址之一或多個儲存位置或空間所記錄之資訊來試著讀回該開機資訊。
該初始化程式所可以支援的該些快閃記憶體之該些容量尺寸可以包含有M個不同的類型,其中M係為大於或等於1的整數,例如M的值可以是8(但不限定)。此外,亦滿足以下等式:
Figure 02_image001
,其中A係為一整數。
舉例來說,該初始化程式所可以支援的該些快閃記憶體之該些容量尺寸例如可以包含有4GB(GB係表示十億位元組的單位)、8GB、16GB、32GB、64GB、128GB、512GB以及1024GB(但不限定)。
該初始化程式被安排將該N個候選的/黃金位址均勻地或非均勻地分類為或分割為M個部分,其中屬於某一個部分的候選的/黃金位址之個數係可以等於或亦可以不同於屬於另一個不同部分的候選的/黃金位址之個數。該M個部分依序地並分別地相應於M個不同容量尺寸。
於一實施例,該初始化程式被安排均勻地將所有N個候選的/黃金位址分別分類為M個不同容量尺寸。所有N個候選的/黃金位址係被平均地分割至M個部分,每一個部分包含有
Figure 02_image003
個候選的/黃金位址。舉例來說,多個候選位址之可接受的總/最大個數N係被設置為512,而多個快閃記憶體之多個容量尺寸依序包含8個不同的尺寸例如4GB(GB係表示十億位元組的單位)、8GB、16GB、32GB、64GB、128GB、512GB以及1024GB。所有512個候選的/黃金位址係被平均地分割為8個部分,每一個部分包含有64個候選的/黃金位址。
對於第m個部分的候選位址來說(其中m值範圍從1至M),該初始化程式被安排決定第m個部分的該些候選位址,亦即
Figure 02_image003
個候選的/黃金位址,係落入於第m個容量尺寸(從零至
Figure 02_image005
)所包含(covered by)的多個位址的數值範圍,其中
Figure 02_image007
意指第m個容量尺寸以十億位元組為一單位的數值,例如,如果
Figure 02_image007
等於4(代表4GB),則該4GB之容量尺寸所包含的多個位址的該數值範圍係從零至
Figure 02_image009
。而如果
Figure 02_image007
等於1024(代表1024GB),則該1024GB之容量尺寸所包含的多個位址的該數值範圍係從零至
Figure 02_image011
。此外,該初始化程式會決定第m個部分的候選/黃金位址中的任兩個相鄰位址之兩位址數值之間的差值係等於
Figure 02_image013
。此外,該初始化程式會決定第m個部分的候選/黃金位址的多個位址數值係可包含有
Figure 02_image015
Figure 02_image017
Figure 02_image019
Figure 02_image021
、…、以及
Figure 02_image023
,其中
Figure 02_image015
係為一偏移整數,該偏移整數的數值範圍係可從零至
Figure 02_image025
,並且該偏移整數亦可以由該初始化程式所決定。該初始化程式被安排用來計算該第m個部分的候選/黃金位址之多個位址數值,並接著基於所計算出的多個位址數值來選取並決定該第m個部分的候選/黃金位址的多個實際位址。
應注意的是,於另一實施例,如果該快閃記憶體支援256GB之容量尺寸,則該初始化程式會決定某一部分的候選/黃金位址的多個位址數值,亦即其他的64個候選/黃金位址,係落入於256GB之容量尺寸所包含的多個位址數值的數值範圍,該些位址數值的數值範圍亦即是從零至
Figure 02_image027
。其他總總操作亦類似於上述候選/黃金位址的操作,在此不再重述。
再者,應注意的是,在某一個部分的候選/黃金位址中的某一位址或某些位址可以是相同於在其他部分的候選/黃金位址中的某一位址或某些位址。也就是說,某一位址或某些位址可以是被該初始化程式重複選定為一候選的/黃金位址。舉例來說,在上述實施例中相應於位址數值‘0’的該位址係被重複地選定為一候選/黃金位址。此外,該初始化程式也可以檢查一個候選的/黃金位址是否係為一重複的候選/黃金位址位址,如果該候選/黃金位址係位在一好的/未損壞的儲存區塊中並且該候選/黃金位址不是一個重複的候選/黃金位址,則該初始化程式會被安排來將該開機資訊寫入至該候選/黃金位址所相應的一儲存位置。而如果該候選/黃金位址被識別為一重複的候選/黃金位址,則無論該候選/黃金位址是否係位於一好的/未損壞的儲存區塊中,該初始化程式都不將該開機資訊寫入。也就是,當該候選/黃金位址係為一重複的候選/黃金位址時,即使該候選/黃金位址係在一好的/未損壞的儲存區塊中,該初始化程式都不會寫入該開機資訊。
再者,在一實施例,該初始化程式可被安排來將該N個候選/黃金位址分別分類至M個群組/部分,其中該M個群組/部分的該些個數可以是不同的,舉例來說(但不限定),一種容量尺寸所相應的一部分的候選/黃金位址之個數可以不同於另一種不同容量尺寸所相應的另一部分的候選/黃金位址之個數,例如,在上述實施例,該第一部分的候選/黃金位址之個數可以等於65,而不同於64,而該第二部分的候選/黃金位址之個數可以等於63,亦不同於64;在計算之後,一或多個部分的候選/黃金位址之一或多個個數可以由該初始化程式所調整;然而,此並非是本案的限制。
再者,在另一實施例,該初始化程式可以將該N個候選位址均勻地或非均勻地分割為M個部分/群組,其中該M個部分分別相應於不同M個群的多個連續儲存位址的多個數值範圍。該M個部分分別相應於0~CAP1 個十億位元組之多個連續儲存位址的一數值範圍、CAP1 ~CAP2 個十億位元組之多個連續儲存位址的一數值範圍、CAP2 ~CAP3 個十億位元組之多個連續儲存位址的一數值範圍、…、CAPm ~CAPm+1 個十億位元組之多個連續儲存位址的一數值範圍、…、以及CAPM-1 ~CAPM 個十億位元組之多個連續儲存位址的一數值範圍。例如,該初始化程式會將512個候選位址均勻地分別分割為8個部分,該8個部分分別相應於0~4GB的多個連續儲存位址的一數值範圍、4GB~8GB的多個連續儲存位址的一數值範圍、8GB~16GB的多個連續儲存位址的一數值範圍、16GB~32GB的多個連續儲存位址的一數值範圍、32GB~64GB的多個連續儲存位址的一數值範圍、64GB~128GB的多個連續儲存位址的一數值範圍、128GB~512GB的多個連續儲存位址的一數值範圍以及512GB~1024GB的多個連續儲存位址的一數值範圍。
對於該第一部分的候選位址,該初始化程式會決定第一個部分的該些候選位址的位址數值,亦即
Figure 02_image003
個候選的/黃金位址的位址數值,係落入於0~CAP1 個十億位元組所定義之多個儲存位置/空間的多個位址數值的該數值範圍,亦即,該些位址數值的數值範圍係從零至
Figure 02_image029
。該初始化程式會決定該第一部分的候選/黃金位址中任兩個相鄰位址的兩位址數值的一差值係等於
Figure 02_image031
。該初始化程式會決定該第一部分的候選/黃金位址的多個位址數值係包含
Figure 02_image033
Figure 02_image035
Figure 02_image037
Figure 02_image039
、…、以及
Figure 02_image041
,其中
Figure 02_image033
係為一偏移整數,該偏移整數的範圍係可以從零至
Figure 02_image043
並可由該初始化程式來決定之,
再者,對於第m個部分的候選位址(m的範圍從2至M),該初始化程式會決定該第m個部分的候選/黃金位址的多個位址數值,亦即
Figure 02_image003
個候選的/黃金位址的位址數值,係落入於CAPm-1 ~CAPm 個十億位元組所定義之多個儲存位置/空間的多個位址數值的該數值範圍,亦即,該些位址數值的數值範圍係從
Figure 02_image045
Figure 02_image005
。該初始化程式會決定該第m個部分的候選/黃金位址中任兩個相鄰位址的兩位址數值的一差值係等於
Figure 02_image047
。該初始化程式會決定該第m個部分的候選/黃金位址的多個位址數值包含有
Figure 02_image049
Figure 02_image051
Figure 02_image053
Figure 02_image055
、…、以及
Figure 02_image057
,其中
Figure 02_image015
係為一偏移整數,該偏移整數的範圍係可以從零至
Figure 02_image059
並且可以由該初始化程式決定之。
在其他實施例,對於第m個部分的候選位址(m的範圍從2至M),該初始化程式會決定第m個部分的候選/黃金位中的半數的位址數值,亦即
Figure 02_image061
個候選的/黃金位址的位址數值,係落入於CAPm-1 ~CAPm 個十億位元組所定義之多個儲存位置/空間的多個位址數值的該數值範圍,亦即,該些半數的位址數值的數值範圍係從
Figure 02_image045
Figure 02_image005
。該初始化程式會決定該第m個部分的候選/黃金位址中任兩個相鄰位址的兩位址數值的一差值係等於
Figure 02_image063
。該初始化程式會決定該第m個部分的候選/黃金位址的多個位址數值包含有
Figure 02_image049
Figure 02_image065
Figure 02_image067
Figure 02_image069
、…、以及
Figure 02_image071
,其中
Figure 02_image015
係為一偏移整數,該偏移整數的範圍可以從零至
Figure 02_image073
並且可由該初始化程式所決定之。此實施變型亦符合本發明的精神。在該實施例中,可以大幅減少所使用到的候選/黃金位址之個數。
在選定並決定(或產生)M個群的候選/黃金位址之後,該初始化程式係被用來控制該控制器105依序地使用所選定的多個候選/黃金位址,將該開機資訊寫入至一或多個所選定的候選/黃金位址所分別相應之一或多個不同的儲存位置,並接著從該一或多個儲存位置讀回資料以檢查該開機資訊是否有被成功地寫入到上述的至少一個儲存位置。
舉例來說,該初始化程式會傳送該開機資訊至該控制器105並控制該控制器105的處理電路115來將該開機資訊寫入至一第一候選/黃金位址所相應之一第一儲存位置。如果該第一儲存位置係在一壞塊中並且該開機資訊沒有被成功地寫入至該快閃記憶體,則該初始化程式會控制該控制器105的處理電路115將該開機資訊寫入至一第二候選/黃金位址所相應之一第二儲存位置,該第二候選/黃金位址所具有之一位址數值係較大於該第一候選/黃金位址所具有之位址數值。該初始化程式會控制該控制器105的處理電路115持續將該開機資訊寫入至該快閃記憶體,直到該開機資訊被成功寫入之後,該初始化程式才不再控制該控制器105的處理電路115將該開機資訊寫入;此並非是本發明的限制。
如此,對於該控制器105,在從該初始化工具裝置150接收到該開機資訊之後,該處理電路115係被安排暫時將該開機資訊儲存於該隨機存取記憶體120中並接著基於運行於該初始化工具裝置150上的該初始化程式所決定並發送出來的一候選/黃金位址來將該開機資訊寫入至一儲存位置。
因此,當離開工廠之後且該控制器105再次被供電時,該處理電路115係用來基於該初始化程式所採用之相同的規則來產生一連串的多個位址數值,使得所產生之該些位址數值能夠相同於該初始化程式於工廠端所產生的多個位址數值,其中該規則的資訊可記錄於唯讀記憶體125。接著,該處理電路115被安排決定所產生之該些位址數值所分別相應之一連串的候選/黃金位址,而由於該處理電路115與該初始化程式均採用相同的規則,因此該處理電路115所決定出的該些候選/黃金位址也相同於該初始化程式所產生的該些該候選/黃金位址。接著,該處理電路115係依序基於所決定出的該些候選/黃金位址的其中一個來取回/取得該開機資訊。
為使讀者更清楚明白本發明的技術精神,於此提供了第2圖及第3圖的流程作為說明,而相應步驟中的詳細操作說明可參閱前述實施例說明,在此不再重述。
第2圖是本發明一實施例使用運行於該初始化工具裝置150上的該初始化程式來初始化該快閃記憶體110的流程示意圖。第3圖是根據本發明第1圖所示之實施例在離開工廠端之後當控制器115被供電時控制器115的操作流程示意圖。倘若可達到相同的結果,並不需要一定照第2圖、第3圖所示之流程中的步驟順序來執行,且第2圖、第3圖所示之步驟不一定要連續執行,亦即其他步驟亦可插入其中;本發明的方法的流程步驟詳述如下:
步驟205:開始;
步驟210:使用該初始化程式基於多個候選位址的可接受的最大個數N來決定M個部分(或群)的候選位址,其中M是多個不同容量尺寸的個數,該些不同容量尺寸係能夠被該初始化程式所支援,並且該M個部分(或群)的每一部分(或群)包含N/M個候選位址;
步驟215:對於該第m個部分的候選位址,使用該初始化程式來決定該第m個部分的候選位址之多個位址數值,其中整數m的範圍係從1至M;
步驟220:使用該初始化程式基於該些所決定出的位址數值來選擇或決定該第m個部分的候選位址;
步驟225:使用該初始化程式來依序地使用該第m個部分的候選位址中的一個候選位址來將該開機資訊寫入至該快閃記憶體110;
步驟230:決定該開機資訊是否係被成功地寫入至該些所選擇之多個候選位址中的其中至少一個候選位址。如果已成功寫入,則該流程進行步驟235,反之,該流程進行步驟225;以及
步驟235:結束。
步驟305:開始;
步驟310:使用該控制器基於多個候選位址的可接受的最大個數N來決定M個部分(或群)的候選位址,其中M是多個不同容量尺寸的個數,該些不同容量尺寸係能夠被該初始化程式所支援,並且該M個部分(或群)的每一部分(或群)包含N/M個候選位址;
步驟315:對於該第m個部分的候選位址,使用該控制器來決定該第m個部分的候選位址之多個位址數值,其中整數m的範圍係從1至M;
步驟320:使用該控制器基於該些所決定出的位址數值來選擇或決定該第m個部分的候選位址;
步驟325:使用該控制器來依序地使用該第m個部分的候選位址中的一個候選位址來從該快閃記憶體110讀取該開機資訊;
步驟330:決定該開機資訊是否被成功讀取得到。如果成功取得,則流程進行步驟335,反之,流程進行步驟325;
步驟335:該控制器基於所取得之該開機資訊來取得該韌體程式以及執行該韌體程式;以及
步驟340:結束。
第4圖是本發明一實施例多個不同組的候選/黃金位址散布於多個快閃記憶體之多個不同容量尺寸所相應的多個不同位址範圍的範例示意圖。一個位址的表示例如係由5個位元組所表示。在本實施例,舉例來說,該多個不同容量尺寸包含有4GB、8GB、16GB及32GB(但不限定),也就是,M等於4,四組的
Figure 02_image075
個候選/黃金位址例如係分別均勻地散布於從零至4GB所包含的一位址空間、從4GB至8GB所包含的一位址空間、從8GB至16GB所包含的一位址空間以及從16GB至32GB所包含的一位址空間。在從零至4GB與從4GB至8GB所分別包含的兩不同位址空間內的任兩個相鄰候選/黃金位址的兩個位址數值的間隔
Figure 02_image077
Figure 02_image079
的數值均是相同的。在從零至4GB、從8GB至16GB以及從16GB至32GB所分別包含的三個不同位址空間內中的任兩個相鄰候選/黃金位址的兩個位址數值的間隔
Figure 02_image077
Figure 02_image081
Figure 02_image083
則均不相同。
再者,應注意的是,
Figure 02_image003
的值在其他實施例中也可以被計算為一奇數值。舉例來說,
Figure 02_image003
的值可以等於65(如前段所述),例如,四組的各65個候選/黃金位址例如係分別均勻地散布於從零至4GB所包含的一位址空間、從4GB至8GB所包含的一位址空間、從8GB至16GB所包含的一位址空間以及從16GB至32GB所包含的一位址空間。此外,在一實施例,兩個或多個候選/黃金位址的位址數值係散布於由多個儲存區塊所形成之一儲存空間的位址範圍,而所有候選/黃金位址係分別散布於不同個儲存區塊的不同的位址範圍,也就是說,該些候選/黃金位址係分別均勻散布於多個不同的儲存區塊。此外,在另一實施例,兩個或多個候選/黃金位址的位址數值係散布於由多個儲存區段(sector)所形成之一儲存區塊的位址範圍,而所有候選/黃金位址係分別散布於不同個儲存區段的不同的位址範圍,也就是說,該些候選/黃金位址係分別均勻散布於多個不同的儲存區段。此外,在另一實施例,兩個或多個候選/黃金位址的位址數值係散布於由多個儲存頁所形成之一儲存區段的位址範圍,而所有候選/黃金位址係分別散布於不同個儲存頁的不同的位址範圍,也就是說,該些候選/黃金位址係分別均勻散布於多個不同的儲存頁。此外,在另一實施例,兩個或多個候選/黃金位址的位址數值係散布於由多個位元組所形成之一儲存頁的位址範圍,而所有候選/黃金位址係分別散布於不同個位元組的不同的位址範圍,也就是說,該些候選/黃金位址係分別均勻散布於多個不同的位元組。
第5圖是本發明一實施例該控制器105從多個候選/黃金位址(分別相應於不同區塊BLK0、BLK15與BLK30)所規範的多個儲存位置讀取或取得該開機資訊的範例示意圖。首先,該控制器105會嘗試從相應於區塊BLK0的一候選/黃金位址所規範的一儲存位置來取得該開機資訊,並接著在這個例子中將會判斷出該區塊BLK0是一壞塊。因此接著,該控制器105嘗試從相應於區塊BLK15的一候選/黃金位址所規範的一儲存位置來取得該開機資訊,並接著在這個例子中也將會判斷出該區塊BLK15是一壞塊。因此接著,該控制器105再嘗試從相應於區塊BLK30的一候選/黃金位址所規範的一儲存位置來取得該開機資訊,並接著在這個例子中將會判斷出該區塊BLK30是好的儲存區塊並且該開機資訊可以被正確地從該候選/黃金位址所規範的儲存位置讀取得到以接著得到韌體程式。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100:記憶裝置 105:快閃記憶體控制器 110:快閃記憶體 115:處理電路 120:隨機存取記憶體 125:唯讀記憶體 150:快閃記憶體初始化裝置
第1圖是本發明一實施例使用一快閃記憶體初始化裝置寫入一開機資訊至一記憶裝置之方塊示意圖。 第2圖是本發明一實施例使用運行於該初始化工具裝置上的該初始化程式來初始化該快閃記憶體的流程示意圖。 第3圖是根據本發明第1圖所示之實施例在離開工廠端之後當控制器被供電時控制器的操作流程示意圖。 第4圖是本發明一實施例多個不同組的候選/黃金位址散布於多個快閃記憶體之多個不同容量尺寸所相應的多個不同位址範圍的範例示意圖。 第5圖是本發明一實施例該控制器從多個候選/黃金位址(分別相應於不同區塊BLK0、BLK15與BLK30)所規範的多個儲存位置讀取或取得該開機資訊的範例示意圖。
100:記憶裝置
105:快閃記憶體控制器
110:快閃記憶體
115:處理電路
120:隨機存取記憶體
125:唯讀記憶體
150:快閃記憶體初始化裝置

Claims (20)

  1. 一種由一快閃記憶體初始化裝置所執行以初始化一快閃記憶體裝置的快閃記憶體初始化方法,該快閃記憶體裝置包含一快閃記憶體與一快閃記憶體控制器,該快閃記憶體初始化方法包含: 決定多個候選位址的一可接受的最大個數N,每一候選位址係由一列位址與一行位址之一組合所形成,N係為一整數; 決定可由該快閃記憶體所支援的多個不同容量尺寸之個數M,其中M係為小於N的一整數; 將該多個候選位址分類為分別相應於該多個不同容量尺寸之M個部分以決定出在該M個部分中的每一部分之多個候選位址之一個數; 對於第m個部分的多個候選位址,其中m的值從1至M: 決定於該第m個部分的候選位址中任兩個相鄰位址的兩個位址數值的一差值; 根據該任兩個相鄰位址的該兩個位址數值之該差值,決定該第m個部分的候選位址中之多個位址數值;以及 根據該第m個部分的候選位址中之該多個位址數值,決定該第m個部分的候選位址的多個實際位址;以及 通過根據該第m個部分的候選位址的該些實際位址來控制該快閃記憶體控制器來寫入開機資訊到該快閃記憶體裝置中該第m個部分的候選位址中的至少其中一個候選位址所相應之至少一儲存位置,以從該快閃記憶體初始化裝置寫入開機資訊至該閃記憶體裝置。
  2. 如申請專利範圍第1項所述之快閃記憶體初始化方法,其中
    Figure 03_image001
    ,A係為一整數。
  3. 如申請專利範圍第2項所述之快閃記憶體初始化方法,其中於該M個部分的每一個部分中之多個候選位址之該個數係等於
    Figure 03_image003
  4. 如申請專利範圍第1項所述之快閃記憶體初始化方法,其中決定該第m個部分的候選位址中任兩個相鄰位址的兩個位址數值的該差值之步驟包含: 決定相應於該第m個部分的候選位址之一容量尺寸所包含之多個位址的一數值範圍;以及 根據該數值範圍及該第m個部分的候選位址中的多個候選位址之一總個數,來決定該差值。
  5. 如申請專利範圍第4項所述之快閃記憶體初始化方法,其中該容量尺寸表示出
    Figure 03_image007
    個十億位元組;該數值範圍係從零至
    Figure 03_image005
    ;該差值係等於
    Figure 03_image013
    ;以及,該第m個部分的候選位址之該多個位址數值包含
    Figure 03_image015
    Figure 03_image017
    Figure 03_image019
    Figure 03_image021
    、…、及
    Figure 03_image023
    ,其中
    Figure 03_image015
    係為一偏移整數,該偏移整數的範圍係可以從零至
    Figure 03_image025
  6. 如申請專利範圍第1項所述之快閃記憶體初始化方法,其中決定該第m個部分的候選位址中該任兩個相鄰位址的該兩個位址數值的該差值之步驟包含: 決定多個連續儲存位址之一數值範圍,該多個連續儲存位址係由該第m個部分的候選位址之一容量尺寸及另一不同容量尺寸所定義;以及 根據該數值範圍及該第m個部分的候選位址中的多個候選位址之一總個數,決定該差值。
  7. 如申請專利範圍第6項所述之快閃記憶體初始化方法,其中該另一不同容量尺寸係為一第(m-1)個部分的候選位址之一容量尺寸。
  8. 如申請專利範圍第7項所述之快閃記憶體初始化方法,其中該多個連續儲存位址係被該第m個部分的候選位址之該容量尺寸以及該第(m-1)個部分的候選位址之該容量尺寸所分隔。
  9. 如申請專利範圍第7項所述之快閃記憶體初始化方法,其中該第m個部分的候選位址之該容量尺寸係表示出
    Figure 03_image007
    個十億位元組,而該第(m-1)個部分的候選位址之該容量尺寸係表示出
    Figure 03_image085
    個十億位元組;該數值範圍係從
    Figure 03_image045
    Figure 03_image005
    ;該差值係等於
    Figure 03_image047
    ;以及,該第m個部分的候選位址之該多個位址數值包含
    Figure 03_image049
    Figure 03_image051
    Figure 03_image053
    Figure 03_image055
    、…、以及
    Figure 03_image057
    ,其中
    Figure 03_image015
    係為一偏移整數,該偏移整數之範圍可以從零至
    Figure 03_image059
  10. 如申請專利範圍第1項所述之快閃記憶體初始化方法,其中一第一部分的候選位址之一個數係不同於一第二部分的候選位址之一個數。
  11. 一種用來控制一快閃記憶體裝置的一快閃記憶體控制器,包含: 一唯讀記憶體,用來記錄一特定程式碼; 一處理電路,耦接於該唯讀記憶體,用來當該控制器被供電時讀取該特定程式碼,以及用來執行該特定程式碼以進行: 決定多個候選位址之一可接受的最大個數N,每一候選位址係由一列位址與一行位址之一組合所形成,其中N係為一整數; 決定由該快閃記憶體裝置所能夠支援之多個不同容量尺寸之一個數M,其中M係為小於N的一整數; 將該多個候選位址分類為分別相應於該多個不同容量尺寸的M個部分,以決定該M個部分之每一部分之候選位址的一個數; 對於一第m個部分的候選位址,其中m從1至M: 決定該第m個部分的候選位址中任兩個相鄰位址之兩位址數值之間的一差值; 根據該任兩個相鄰位址之該兩位址數值之間的該差值,來決定該第m個部分的候選位址的多個位址數值;以及 根據該第m個部分的候選位址的該多個位址數值,決定該第m個部分的候選位址之多個實際位址;以及 從該快閃記憶體初始化裝置寫入開機資訊至該快閃記憶體裝置 通過根據該第m個部分的候選位址之該多個實際位址來控制該快閃記憶體控制器寫入一開機資訊至該快閃記憶體裝置中該第m個部分的候選位址的至少其中一個位址所相應之至少一儲存位置,以從該快閃記憶體初始化裝置寫入該開機資訊至該快閃記憶體裝置。
  12. 如申請專利範圍第11項所述之快閃記憶體控制器,其中
    Figure 03_image001
    ,A係為一整數。
  13. 如申請專利範圍第12項所述之快閃記憶體控制器,其中該M個部分的每一部分中的多個候選位址之該個數係等於
    Figure 03_image003
  14. 如申請專利範圍第11項所述之快閃記憶體控制器,其中決定該第m個部分的候選位址中該任兩個相鄰位址之該兩位址數值之間的該差值之步驟包含: 決定相應於該第m個部分的候選位址之一容量尺寸所包含之多個位址的一數值範圍;以及 根據該數值範圍及該第m個部分的候選位址中的多個候選位址之一總個數,決定該差值。
  15. 如申請專利範圍第14項所述之快閃記憶體控制器,其中該容量尺寸表示出
    Figure 03_image007
    個十億位元組;該數值範圍係從零至
    Figure 03_image005
    ;該差值係等於
    Figure 03_image013
    ;以及,該第m個部分的候選位址之該多個位址數值包含
    Figure 03_image015
    Figure 03_image017
    Figure 03_image019
    Figure 03_image021
    、…、及
    Figure 03_image023
    ,其中
    Figure 03_image015
    係為一偏移整數,該偏移整數的範圍係可以從零至
    Figure 03_image025
  16. 如申請專利範圍第11項所述之快閃記憶體控制器,其中決定該第m個部分的候選位址中該任兩個相鄰位址的該兩個位址數值的該差值之步驟包含: 決定多個連續儲存位址之一數值範圍,該多個連續儲存位址係由該第m個部分的候選位址之一容量尺寸及另一不同容量尺寸所定義;以及 根據該數值範圍及該第m個部分的候選位址中的多個候選位址之一總個數,決定該差值。
  17. 如申請專利範圍第16項所述之快閃記憶體控制器,其中該另一不同容量尺寸係為一第(m-1)個部分的候選位址之一容量尺寸。
  18. 如申請專利範圍第17項所述之快閃記憶體控制器,其中該多個連續儲存位址係被該第m個部分的候選位址之該容量尺寸以及該第(m-1)個部分的候選位址之該容量尺寸所分隔。
  19. 如申請專利範圍第18項所述之快閃記憶體控制器,其中該第m個部分的候選位址之該容量尺寸係表示出
    Figure 03_image007
    個十億位元組,而該第(m-1)個部分的候選位址之該容量尺寸係表示出
    Figure 03_image085
    個十億位元組;該數值範圍係從
    Figure 03_image045
    Figure 03_image005
    ;該差值係等於
    Figure 03_image047
    ;以及,該第m個部分的候選位址之該多個位址數值包含
    Figure 03_image049
    Figure 03_image051
    Figure 03_image053
    Figure 03_image055
    、…、以及
    Figure 03_image057
    ,其中
    Figure 03_image015
    係為一偏移整數,該偏移整數之範圍係可以從零至
    Figure 03_image059
  20. 如申請專利範圍第11項所述之快閃記憶體控制器,其中一第一部分的候選位址之一個數係不同於一第二部分的候選位址之一個數。
TW109136909A 2020-01-21 2020-10-23 由快閃記憶體初始化裝置所執行以初始化快閃記憶體裝置的快閃記憶體初始化方法以及用來控制快閃記憶體裝置的快閃記憶體控制器 TWI729954B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/747,551 2020-01-21
US16/747,551 US11144223B2 (en) 2020-01-21 2020-01-21 Flash memory initialization scheme for writing boot up information into selected storage locations averagely and randomly distributed over more storage locations and correspondingly method for reading boot up information from selected storage locations

Publications (2)

Publication Number Publication Date
TWI729954B TWI729954B (zh) 2021-06-01
TW202129651A true TW202129651A (zh) 2021-08-01

Family

ID=76857540

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109136909A TWI729954B (zh) 2020-01-21 2020-10-23 由快閃記憶體初始化裝置所執行以初始化快閃記憶體裝置的快閃記憶體初始化方法以及用來控制快閃記憶體裝置的快閃記憶體控制器

Country Status (3)

Country Link
US (2) US11144223B2 (zh)
CN (1) CN113220348B (zh)
TW (1) TWI729954B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11327940B2 (en) * 2019-12-18 2022-05-10 International Business Machines Corporation Interlinked tuples in coordination namespace

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7103684B2 (en) * 2003-12-02 2006-09-05 Super Talent Electronics, Inc. Single-chip USB controller reading power-on boot code from integrated flash memory for user storage
US7640424B2 (en) 2005-10-13 2009-12-29 Sandisk Corporation Initialization of flash storage via an embedded controller
CN1979449B (zh) 2005-12-08 2010-10-27 群联电子股份有限公司 逻辑区块与物理区块形成弹性对应的方法
US8171277B2 (en) * 2008-07-02 2012-05-01 Apple Inc. Method and apparatus for booting from a flash memory without prior knowledge of flash parameter information
CN101667157A (zh) * 2008-09-04 2010-03-10 群联电子股份有限公司 闪存数据传输方法、闪存储存系统及控制器
JP2010108436A (ja) * 2008-10-31 2010-05-13 Hochiki Corp フラッシュメモリを備えた制御装置及びフラッシュメモリへのデータ書込み方法
US8219776B2 (en) * 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
US20130097403A1 (en) * 2011-10-18 2013-04-18 Rambus Inc. Address Mapping in Memory Systems
US20130332644A1 (en) 2012-06-07 2013-12-12 Skymedi Corporation Method of initializing a non-volatile memory system
TWI497511B (zh) 2012-11-08 2015-08-21 Ind Tech Res Inst 具嵌入式非揮發性記憶體之晶片及其測試方法
US9424134B2 (en) * 2014-03-28 2016-08-23 Intel Corporation Boot management in a non-volatile memory system
CN105023608B (zh) * 2014-04-29 2019-05-10 华邦电子股份有限公司 闪速存储器及坏区块的管理方法
CN107958155A (zh) 2016-10-17 2018-04-24 深圳市中兴微电子技术有限公司 一种系统初始化方法和装置
TWI655537B (zh) 2018-03-12 2019-04-01 點序科技股份有限公司 系統碼的管理裝置及其管理方法
JP7143735B2 (ja) * 2018-11-15 2022-09-29 Tdk株式会社 メモリコントローラ、及びメモリシステム

Also Published As

Publication number Publication date
US11144223B2 (en) 2021-10-12
US20210223970A1 (en) 2021-07-22
TWI729954B (zh) 2021-06-01
US20210365197A1 (en) 2021-11-25
CN113220348B (zh) 2024-03-29
CN113220348A (zh) 2021-08-06
US11543982B2 (en) 2023-01-03

Similar Documents

Publication Publication Date Title
EP3607449B1 (en) Garbage collection
US7404031B2 (en) Memory card, nonvolatile semiconductor memory, and method of controlling semiconductor memory
JP5002201B2 (ja) メモリシステム
US20170139839A1 (en) Data storage device and data maintenance method thereof
JP5497754B2 (ja) アドホックフラッシュメモリ基準セル
TWI525430B (zh) 快取記憶體裝置以及該裝置的資料處理方法
TWI759699B (zh) 能夠快速產生或更新有效頁數目對照表之內容的快閃記憶體控制器、方法及對應的儲存裝置
TWI601148B (zh) 損壞資料行的篩選方法與具有損壞資料行總表的資料儲存裝置
US11068177B2 (en) Data storage devices and data processing methods for shortening time required for a host device to wait for initialization of the data storage device
US20190065361A1 (en) Method for writing data into flash memory module and associated flash memory controller and electronic device
TWI437569B (zh) 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器
CN111651371A (zh) 非对称型平面管理方法以及数据存储装置及其控制器
TWI729954B (zh) 由快閃記憶體初始化裝置所執行以初始化快閃記憶體裝置的快閃記憶體初始化方法以及用來控制快閃記憶體裝置的快閃記憶體控制器
US20190347037A1 (en) Data storage apparatus and system information programming method therefor
EP3057100B1 (en) Memory device and operating method of same
TW201941208A (zh) 記憶體管理方法與儲存控制器
CN108572786B (zh) 避免读取扰动的数据搬移方法以及使用该方法的装置
JP4661566B2 (ja) アクセスコントローラ、フラッシュメモリシステム及びアクセス制御方法
TWI760674B (zh) 快閃記憶體開卡裝置所使用來寫入開機啟動資訊至記憶體裝置的方法、記憶體裝置的控制器及所使用的方法
JP4569554B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
TWI652572B (zh) 資料儲存裝置
JP6412820B2 (ja) 記憶システム、制御装置、メモリ制御装置、記憶装置、上位装置、制御プログラム及びデータ読み出し方法
TWI567550B (zh) 資料儲存裝置及其資料維護方法
CN114398010A (zh) 数据读写方法、存储器存储装置及存储器控制器
CN114077386A (zh) 存储器系统及其包括的存储器控制器的操作方法