TWI814655B - 記憶裝置、快閃記憶體控制器及其控制方法 - Google Patents
記憶裝置、快閃記憶體控制器及其控制方法 Download PDFInfo
- Publication number
- TWI814655B TWI814655B TW111146503A TW111146503A TWI814655B TW I814655 B TWI814655 B TW I814655B TW 111146503 A TW111146503 A TW 111146503A TW 111146503 A TW111146503 A TW 111146503A TW I814655 B TWI814655 B TW I814655B
- Authority
- TW
- Taiwan
- Prior art keywords
- command
- flash memory
- converted
- memory controller
- read
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 19
- 238000012545 processing Methods 0.000 claims abstract description 40
- 230000005540 biological transmission Effects 0.000 claims abstract description 33
- 230000008569 process Effects 0.000 claims abstract description 9
- 238000012546 transfer Methods 0.000 claims description 15
- 238000006243 chemical reaction Methods 0.000 claims description 8
- 238000007689 inspection Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 10
- 230000004044 response Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Debugging And Monitoring (AREA)
Abstract
本發明揭露了一種快閃記憶體控制器,其用來存取一快閃記憶體模組,且該快閃記憶體控制器包含有一傳輸介面電路、一緩衝記憶體及一微處理器。該傳輸介面電路耦接於一主裝置,其中該傳輸介面電路包含一命令處理電路,其用以接收來自該主裝置的一命令,並對該命令進行轉換以產生具有一特定格式的一轉換後命令至該緩衝記憶體。該微處理器用以自該緩衝記憶體中讀取該轉換後命令,並根據該轉換後命令來對該快閃記憶體模組進行存取。
Description
本發明係有關於快閃記憶體控制器。
在目前符合通用快閃記憶體儲存(Universal Flash Storage,UFS)標準的快閃記憶體控制器中,若是接收到來自主裝置的命令,例如讀取命令或是寫入命令時,快閃記憶體控制器需要透過其中的韌體來對所接收到的命令進行一系列的錯誤檢查,以判斷這些命令是否有任何的錯誤,以供進行後續的處理。具體來說,依據UFS規格中的定義,每一個命令需要經過十幾種錯誤檢查後才能判斷命令是否不具有任何錯誤,而只有在命令不具有任何錯誤的情形下,該命令才可以進行下一步的處理;此外,由於讀取命令與寫入命令具有多種不同的格式,故韌體也會需要對這些具有不同格式的讀取命令與寫入命令進行辨識或其他處理。如上所述,由於每一個命令都需要經過多種檢查,因此,若是快閃記憶體控制器在短時間內自主裝置接收到大量的命令,則會需要大量的時間來依序對這些命令進行辨識與錯誤檢查,造成整體效能的降低。
因此,本發明的目的之一在於提出一種快閃記憶體控制器,其中的
傳輸介面電路會在接收到來自主裝置的命令之後,將所接收到的命令轉換為具有一種固定格式的轉換後命令,以使得後續在韌體的處理上可以快速有效率的進行,以解決先前技術中所述的問題。
在本發明的一個實施例中,揭露了一種快閃記憶體控制器,其用來存取一快閃記憶體模組,且該快閃記憶體控制器包含有一傳輸介面電路、一緩衝記憶體及一微處理器。該傳輸介面電路耦接於一主裝置,其中該傳輸介面電路包含一命令處理電路,其用以接收來自該主裝置的一命令,並對該命令進行轉換以產生具有一特定格式的一轉換後命令;其中該命令支援多種格式,且該特定格式不同於該多種格式。該緩衝記憶體用以儲存該轉換後命令。該微處理器用以自該緩衝記憶體中讀取該轉換後命令,並根據該轉換後命令來對該快閃記憶體模組進行存取。
在本發明的一個實施例中,揭露了一種記憶裝置,其包含有一快閃記憶體模組與一快閃記憶體控制器,其中該快閃記憶體控制器包含有一傳輸介面電路、一緩衝記憶體及一微處理器。該傳輸介面電路耦接於一主裝置,其中該傳輸介面電路包含一命令處理電路,其用以接收來自該主裝置的一命令,並對該命令進行轉換以產生具有一特定格式的一轉換後命令;其中該命令支援多種格式,且該特定格式不同於該多種格式。該緩衝記憶體用以儲存該轉換後命令。該微處理器用以自該緩衝記憶體中讀取該轉換後命令,並根據該轉換後命令來對該快閃記憶體模組進行存取。
在本發明的一個實施例中,揭露了一種快閃記憶體控制器的控制方法,其包含有以下步驟:接收來自一主裝置的一命令;對該命令進行轉換以產
生具有一特定格式的一轉換後命令,其中該命令支援多種格式,且該特定格式不同於該多種格式;將該轉換後命令儲存至一緩衝記憶體;以及根據該轉換後命令來對一快閃記憶體模組進行存取。
10:電子裝置
50:主裝置
52:處理器
54:電源供應電路
100:記憶裝置
110:快閃記憶體控制器
112:微處理器
112M:唯讀記憶體
112C:程式碼
114:記憶體介面電路
116:緩衝記憶體
118:傳輸介面電路
118M:M實體層電路
118P:Unipro層
118U:UFS控制器
120:快閃記憶體模組
122-1~122-N:快閃記憶體元件
142:命令處理電路
144:暫存器
200~210:步驟
300:讀取命令
400:讀取命令
500:讀取命令
600:轉換後命令
第1圖為依據本發明一實施例之一電子裝置的示意圖。
第2圖為根據本發明一實施例之快閃記憶體控制器的控制方法的流程圖。
第3圖繪示了具有一第一格式之讀取命令的示意圖。
第4圖繪示了具有一第二格式之讀取命令的示意圖
第5圖繪示了具有一第三格式之讀取命令的示意圖
第6圖為根據本發明一實施例之命令處理電路對讀取命令或是寫入命令進行轉換以產生具有特定格式的轉換後命令的示意圖。
第1圖為依據本發明一實施例之電子裝置10的示意圖,其中電子裝置10可包含一主裝置50以及一記憶裝置100。主裝置50可包含至少一處理器52,且主裝置50可另包含耦接至處理器52的電源供應電路54。處理器52係用來控制主裝置50的運作,而電源供應電路52係用來供應電源給處理器52以及記憶裝置100,並且輸出一或多個驅動電壓至記憶裝置100。記憶裝置100可用來提供儲存空間給主裝置50,並且從主裝置50取得該一或多個驅動電壓以作為記憶裝置100的電源。在一實施例中,主裝置50可以是一多功能行動電話、一穿戴式裝置、一平板電腦、個人電腦或是其他任何電子產品,且記憶裝置100可以是一嵌入式儲存裝置,例如符合UFS標準的嵌入式儲存裝置。依據本實施例,記憶裝置100
可包含一快閃記憶體控制器110以及一快閃記憶體模組120,其中記憶體控制器110係用來控制記憶裝置100的運作並存取快閃記憶體模組120,而快閃記憶體模組120係用來儲存資訊。快閃記憶體模組120可包含至少一快閃記憶體元件(例如一或多個快閃記憶體晶片(chip)或是一或多個快閃記憶體晶粒(die)),例如多個快閃記憶體元件122-1、122-2、...、及122-N,其中N為大於一的正整數。
如第1圖所示,快閃記憶體控制器110可包含一微處理器112、一唯讀記憶體(read-only memory,ROM)112M、一記憶體介面電路114、一緩衝記憶體116、以及一傳輸介面電路118,其中以上元件可透過一匯流排彼此耦接。緩衝記憶體116係藉由一靜態隨機存取記憶體(Static Random Access Memory,SRAM)來實施,且緩衝記憶體116可用來提供內部儲存空間給記憶體控制器110。另外,本實施例的唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112係用來執行程式碼112C以控制快閃記憶體120的存取。請注意,在某些例子中,程式碼112C可被儲存在緩衝記憶體116或任意類型的記憶體中。另外,記憶體介面電路可以包含一編碼器與解碼器,以對寫入至快閃記憶體模組120中的資料進行編碼,或是自快閃記憶體模組120中讀取的資料進行解碼;而傳輸介面電路118可符合一特定通訊標準(例如UFS標準),且可依據該特定通訊標準來進行通訊,例如,為記憶裝置100與主裝置50進行通訊。傳輸介面電路118可包含一通用快閃記憶體儲存控制器(簡稱UFS控制器)118U、符合MIPI聯盟相關規格之一M實體層(M-PHY)電路118M與標準化通訊協定(Unified Protocol,通常稱為UniPro)層118P,其可與彼此進行互動,且UFS控制器118U至少包含了一命令處理電路142以及一暫存器144。
在本實施例中,主裝置50可傳送多個命令至快閃記憶體控制器110,
快閃記憶體控制器110接著會根據這些來自主裝置50的命令來對快閃記憶體模組120進行讀取或寫入的操作。
第2圖為根據本發明一實施例之快閃記憶體控制器110的控制方法的流程圖。同時參考第1圖與第2圖,於步驟200,流程開始,且記憶裝置100上電並完成初始化操作。在步驟202,快閃記憶體控制器110的UFS控制器118U自主裝置50接收到一命令。接著,於步驟204,UFS控制器118U的命令處理電路142判斷該命令是否為一讀取命令或是一寫入命令,若是,流程進入步驟206;若否,流程進入步驟208並將該命令儲存至緩衝記憶體116。接著,在步驟206中,命令處理電路142將該命令進行轉換,以產生具有一特定格式的轉換後命令。
具體來說,主裝置50傳送至快閃記憶體控制器110的讀取命令可能會具有不同的格式,例如UFS規格書中所述之READ(6)、READ(10)、READ(16)。第3圖繪示了具有一第一格式之讀取命令300的示意圖,其中讀取命令300係對應至UFS規格書中所述之READ(6)。如第3圖所示,讀取命令300包含了6個位元組,其中位元組B0儲存操作碼(operation code),位元組B1~B3包含了邏輯區塊位址(Logical Block Address,LBA)以及一保留欄位,位元組B4包含了傳送長度(transfer length),且位元組B5包含了控制碼(control code)。
第4圖繪示了具有一第二格式之讀取命令400的示意圖,其中讀取命令400係對應至UFS規格書中所述之READ(10)。如第4圖所示,讀取命令400包含了10個位元組,其中位元組B0儲存操作碼,位元組B1儲存“RDPROTECT”、禁用頁面快取(Disable Page Out,DPO)、強制存取(Force Unit Access,FUA)、保留欄位、“FUA_NV”、“Obsolete”等參數,位元組B2~B5包含了邏輯區塊位址,位
元組B6包含保留欄位以及群組編號(Group Number),位元組B7~B8包含了傳送長度,且位元組B9包含了控制碼。
第5圖繪示了具有一第三格式之讀取命令500的示意圖,其中讀取命令500係對應至UFS規格書中所述之READ(16)。如第5圖所示,讀取命令500包含了16個位元組,其中位元組B0儲存操作碼,位元組B1儲存“RDPROTECT”、禁用頁面快取(Disable Page Out,DPO)、強制存取(Force Unit Access,FUA)、保留欄位、“FUA_NV”等參數,位元組B2~B9包含了邏輯區塊位址,位元組B10~B13包含了傳送長度,位元組B14包含保留欄位以及群組編號,且位元組B15包含了控制碼。
需注意的是,由於上述之讀取命令300、400、500之每一個欄位所攜帶的內容已分別見於UFS規格書中,故細節在此不贅述。此外,第3~5圖之讀取命令的格式僅是作為範例說明,而非是本發明的限制。在其他的實施例中,快閃記憶體控制器110所允許接收到之讀取命令可以具有其他不同的格式差異,例如讀取命令具有不同的位元組、讀取命令具有不同的邏輯區塊位址長度、讀取命令具有不同的傳送長度(所允許的最大傳送長度,亦即所允許之最大讀取資料量)、讀取命令具有不同數量的欄位...等等,這些設計上的變化應隸屬於本發明的範疇。
同樣地,主裝置50傳送至快閃記憶體控制器110的寫入命令也可能會具有不同的格式,例如UFS規格書中所述之WRITE(6)、WRITE(10)、WRITE(16),而由於這些不同格式的寫入命令已見於UFS規格書中,故細節在此不贅述。此外,上UFS規格書中所述之WRITE(6)、WRITE(10)、WRITE(16)僅是作
為範例說明,而非是本發明的限制。在其他的實施例中,快閃記憶體控制器110所允許接收到之寫入命令可以具有其他不同的格式差異,例如寫入命令具有不同的位元組、寫入命令具有不同的邏輯區塊位址長度、寫入命令具有不同的傳送長度(所允許的最大傳送長度,亦即所允許之最大寫入資料量)、寫入命令具有不同數量的欄位...等等,這些設計上的變化應隸屬於本發明的範疇。
第6圖為根據本發明一實施例之命令處理電路142對讀取命令或是寫入命令進行轉換以產生具有特定格式的轉換後命令600的示意圖。在本實施例中,轉換後命令600可以包含4個碼字D0~D3,且每一個碼字D0~D3包含了8個位元組B0~B7,但本發明並不以此為限。如第6圖所示,在轉換後命令600的第一個碼字D0中,位元組B0包含了此命令的邏輯單元編號(Logical Unit Number,LUN);位元組B1包含了一標籤,其用來表示轉換後命令600是讀取命令或是寫入命令;位元組B2包含一操作碼,其用來表示轉換後命令600在轉換前是屬於哪一種格式的寫入/讀取命令,在本實施例中,操作碼可以用來指出轉換後命令600在轉換前的命令是屬於READ(6)、READ(10)、READ(16)、WRITE(6)、WRITE(10)、WRITE(16)中的哪一者;位元組B3係為一讀寫識別碼,其實質內容與位元組B1的內容相同,係使用另一個方式來記錄轉換後命令600是讀取命令或是寫入命令,以供內部電路使用;位元組B4為一回應設定,其用來設定要在何種情況下傳送一回應訊息給主裝置50,以告知已成功接收到所傳送的命令,舉例來說,該回應設定可以設定當快閃記憶體控制器110接收到來自主裝置50的命令且該命令儲存在緩衝記憶體116時,便回傳回應訊息給主裝置50以告知已成功接收到所傳送的命令;或是該回應設定可以設定當快閃記憶體控制器110根據來自主裝置50的命令來成功存取快閃記憶體模組120後,才回傳回應訊息給主裝置50以告知已成功接收到所傳送的命令。位元組B5包含了一群組編號,其用來設定寫入/
讀取屬性,例如使用單層式儲存(Single-Level Cell)方式來進行寫入/讀取、雙層式儲存(Multi-Level Cell)方式來進行寫入/讀取、或是三層式儲存(Triple-Level Cell)方式來進行寫入/讀取;位元組B6為記憶體槽(slot)的索引值,亦即轉換後命令600及相關內容在緩衝記憶體116內的位址;以及位元組B7為命令組型式(Command Set Type)。
在轉換後命令600的第二個碼字D1中,位元組B0~B7可以用來儲存邏輯區塊位址,其中若是寫入命令所要寫入的資料量較低、或是讀取命令所要讀取的資料量較低時,可以僅使用位元組B0~B3來記錄邏輯區塊位址。
在轉換後命令600的第三個碼字D2中,位元組B0~B3係用來表示傳送長度,亦即寫入命令所要寫入的資料量、或是讀取命令所要讀取的資料量。
在轉換後命令600的第四個碼字D3中,位元組B0、B1係用來記錄轉換後命令600在轉換前的讀取命令或是寫入命令是否有錯誤;位元組B2為一上溢/下溢(overflow/underflow)標籤;位元組B3為一保留欄位;以及位元組B4~B7為一剩餘傳送值(Residual Transfer Count)。其中,上溢/下溢標籤與剩餘傳送值的內容可見於UFS規格書,且為本領域中具有通常知識者所熟知,故在此不贅述。
需注意的是,轉換後命令600的部份內容可以直接由原本的讀取/寫入命令來產生,例如邏輯區塊位址以及傳送長度可以根據第3~5中的讀取命令300、400、500中的邏輯區塊位址以及傳送長度來產生;此外,轉換後命令600的另一部份內容則可以透過分析原本的讀取/寫入命令或是透過目前記憶裝置100的一些設定與狀態來產生,例如記憶體槽索引值、上溢/下溢標籤、剩餘傳送
值、錯誤狀態...等等。
在本實施例中,不論UFS控制器118U所接收的是讀取命令或是寫入命令,不論UFS控制器118U所接收的讀取命令具有哪一種格式,也不論UFS控制器118U所接收的寫入命令具有哪一種格式,命令處理電路142都會將來自主裝置50的讀取命令或是寫入命令轉換為具有特定格式的轉換後命令。
需注意的是,第6圖所示的轉換後命令600僅是做為範例說明,而非是本發明的限制。在其他實施例中,只要轉換後命令600包含了邏輯單元編號、標籤、邏輯區塊位址、傳送長度以及錯誤狀態,且邏輯單元編號、標籤、邏輯區塊位址、傳送長度以及錯誤狀態分別位於轉換後命令600中的固定位址,轉換後命令600可以具有不同的欄位內容。
此外,於步驟206,命令處理電路142可另外對所接收到命令做檢查以判斷是否符合規格書的規範。具體來說,假設自主裝置50所接收到的是讀取命令或是寫入命令,命令處理電路142會對自主裝置50所接收到的是讀取命令或是寫入命令做檢查,以判斷所接收到的命令是否有錯誤。舉例來說,命令處理電路142可以判斷讀取命令或是寫入命令中的邏輯單元編號是否超過記憶裝置100的最大邏輯單元編號,若是,則判斷所接收到的命令有錯誤;命令處理電路142可以判斷讀取命令或是寫入命令中的邏輯單元編號是否已被記憶裝置100設定過,若否,則判斷所接收到的命令有錯誤;命令處理電路142可以判斷讀取命令或是寫入命令中的邏輯單元編號是否已被記憶裝置100禁用,若是,則判斷所接收到的命令有錯誤;命令處理電路142可以判斷讀取命令或是寫入命令中的邏輯區塊位址的長度是否超過快閃記憶體控制器110所允許的邏輯區塊位址的長
度,若是,則判斷所接收到的命令有錯誤;命令處理電路142可以判斷讀取命令或是寫入命令中的傳送長度是否超過快閃記憶體控制器110所允許的傳送長度,若是,則判斷所接收到的命令有錯誤...等等。在對讀取命令或是寫入命令做檢查之後,命令處理電路142在轉換後命令600中的第四個碼字D3的位元組B0、B1記錄錯誤狀態。
在一實施例中,暫存器144中可設定多個檢查項目,而命令處理電路142會自暫存器144中讀取檢查項目的內容來以對讀取命令或是寫入命令進行檢查。在一實施例中,暫存器144儲存了16個檢查項目,轉換後命令600中的第四個碼字D3的位元組B0、B1所包含了16個位元則分別對應至16個檢查項目,而每一個位元的位元值“0”、“1”可用來指出對應的檢查項目是否通過。舉例來說,位元組B0、B1的第一個位元為“1”代表第一個檢查項目未通過,而位元組B0、B1的第一個位元為“0”代表讀取/寫入命令通過第一個檢查項目;位元組B0、B1的第二個位元為“1”代表第二個檢查項目未通過,而位元組B0、B1的第二個位元為“0”代表讀取/寫入命令通過第二個檢查項目...以此類推。
需注意的是,在本實施例中,步驟204、206的操作都是在傳輸介面電路118中使用硬體電路所完成,而不涉及任何的韌體操作,亦即,微處理器112不會執行程式碼112C對來自主裝置50的命令進行格式轉換或是檢查。
在步驟208中,命令處理電路142將轉換後命令600儲存至緩衝記憶體116,且轉換前的讀取/寫入命令也會儲存至緩衝記憶體116中。具體來說,若是命令處理電路142將第4圖所示之具有READ(10)格式的讀取命令400進行轉換以產生轉換後命令600,則讀取命令400與轉換後命令600都會同時儲存在緩衝記憶
體116中。
在步驟210中,在轉換後命令600成功儲存至緩衝記憶體116後,微處理器112可以透過一特定機制以得知目前有來自主裝置50的命令。舉例來說,UFS控制器118U可以另包含多個暫存器(register)以表示是否有接收到來自主裝置50且尚未執行的命令以及該命令儲存於緩衝記憶體116的位址,而微處理器112可以週期性地去讀取這些暫存器以判斷是否需要自緩衝記憶體116讀取並執行命令,但本發明並不以此為限。接著,微處理器112直接讀取緩衝記憶體116的轉換後命令600,而不會讀取轉換後命令600在轉換前的讀取/寫入命令,並根據轉換後命令600的內容來進行相關操作。具體來說,若是轉換後命令600中的錯誤狀態指出讀取/寫入命令沒有錯誤,則微處理器112可以根據轉換後命令600中的邏輯區塊位址、傳送長度及其他資訊以將資料寫入至快閃記憶體模組120,或是自快閃記憶體模組120中讀取資料;若是轉換後命令600中的錯誤狀態指出讀取/寫入命令存在錯誤,則微處理器112可以根據轉換後命令600中的錯誤狀態來產生一回應訊號至主裝置50,以告知主裝置50之前所傳送的命令存在錯誤而無法順利執行。在一實施例中,由於轉換後命令600中的錯誤狀態指出了哪一個檢查項目有錯誤,故微處理器112可以直接根據轉換後命令600中的錯誤狀態來產生回應訊號至主裝置50,以告知主裝置50之前所傳送的命令不符合哪一個檢查項目。
如上所述,由於轉換後命令600具有固定的格式以及錯誤狀態欄位,故微處理器112可以不需要對轉換後命令600進行格式上的判斷,且也不需要去檢查來自主裝置50的讀取/寫入命令是否有錯誤,故可以有效地加速命令的處理速度。
在執行轉換後命令600的執行後,轉換後命令600與轉換前的命令(例如步驟208所述之讀取命令400)便允許自緩衝記憶體116中移除。
在一實施例中,由於轉換後命令600與轉換前的讀取/寫入命令(例如讀取命令400)會儲存在緩衝記憶體116中,UFS控制器118U與微處理器112可以選擇要處理轉換後命令600或是讀取命令400,亦即,在一第一模式下,微處理器112只會自緩衝記憶體中116中讀取轉換後命令600,而不會執行讀取命令400;以及在一第二模式下,微處理器112只會自緩衝記憶體中116中讀取原本的讀取/寫入命令(例如讀取命令400),而此時命令處理電路142可以關閉且停止產生轉換後命令600。
簡要歸納本發明,在本發明之快閃記憶體控制器中,透過將來自主裝置50的讀取命令與寫入命令轉換為具有特定格式的轉換後命令,可以讓微處理器112在後續的處理上更有效率。此外,由於命令處理電路142會針對每一個來自主裝置50的讀取/寫入命令進行轉換以產生轉換後命令600,因此,當主裝置50需要對記憶裝置100進行大量讀取或是大量寫入時,由於命令處理電路142是全部使用硬體來實現,因此可以很快速地將大量的讀取/寫入命令進行轉換與錯誤檢查來產生多個轉換後命令,以供微處理器112進行處理,以快速有效率的執行這些大量的讀取/寫入命令。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
10:電子裝置
50:主裝置
52:處理器
54:電源供應電路
100:記憶裝置
110:快閃記憶體控制器
112:微處理器
112M:唯讀記憶體
112C:程式碼
114:記憶體介面電路
116:緩衝記憶體
118:傳輸介面電路
118M:M實體層電路
118P:Unipro層
118U:UFS控制器
120:快閃記憶體模組
122-1~122-N:快閃記憶體元件
142:命令處理電路
144:暫存器
Claims (14)
- 一種快閃記憶體控制器,其用來存取一快閃記憶體模組,且該快閃記憶體控制器包含有:一傳輸介面電路,耦接於一主裝置,其中該傳輸介面電路包含一命令處理電路,其用以接收來自該主裝置的一命令,並對該命令進行轉換以產生具有一特定格式的一轉換後命令;其中該命令支援多種格式,且該特定格式不同於該多種格式;一緩衝記憶體,用以儲存該轉換後命令;以及一微處理器,用以自該緩衝記憶體中讀取該轉換後命令,並根據該轉換後命令來對該快閃記憶體模組進行存取;其中該命令處理電路另根據多個檢查項目來對該命令進行檢查以產生至少一檢查結果,且該轉換後命令包含一錯誤狀態欄位以記錄該至少一檢查結果;其中該多個檢查項目包含該命令中的一邏輯單元編號是否超過一最大邏輯單元編號、該命令中的該邏輯單元編號是否已被該快閃記憶體控制器設定過、該命令中的該邏輯單元編號是否已被該快閃記憶體控制器禁用、該命令中的一邏輯區塊位址的長度是否超過該快閃記憶體控制器所允許的邏輯區塊位址的長度、以及該命令中的一傳送長度是否超過該快閃記憶體控制器所允許的傳送長度中的至少一部份。
- 如申請專利範圍第1項所述之快閃記憶體控制器,其中不論該命令為一讀取命令或是寫入命令,且也不論該命令的格式為該多種格式中的哪一者,該命令處理電路只會產生具有該特定格式的該轉換後命令。
- 如申請專利範圍第1項所述之快閃記憶體控制器,其中該傳輸介面電路另包含一暫存器,其用來儲存該多個檢查項目。
- 如申請專利範圍第1項所述之快閃記憶體控制器,其中該直接自該緩衝記憶體讀取該轉換後命令,並在不使用該多個檢查項目來對該轉換後命令進行檢查的情形下,直接根據該轉換後命令的內容來對該快閃記憶體模組進行存取。
- 如申請專利範圍第1項所述之快閃記憶體控制器,其中該傳輸介面電路包含多個暫存器以表示是否有接收到來自該主裝置且尚未執行的命令、以及尚未執行的命令儲存於該緩衝記憶體的位址;以及在該命令處理電路將該轉換後命令儲存至該緩衝記憶體之後,該微處理器讀取該多個暫存器以讀取該緩衝記憶體內的該轉換後命令。
- 如申請專利範圍第1項所述之快閃記憶體控制器,其中該緩衝記憶體同時儲存該命令以及該轉換後命令,且該微處理器只會自該緩衝記憶體讀取該轉換後命令,而不會讀取該命令,以對該快閃記憶體模組進行存取。
- 如申請專利範圍第1項所述之快閃記憶體控制器,其中該命令處理電路的操作全部使用一硬體電路來實現,且該命令處理電路對該命令進行轉換以產生具有該特定格式的該轉換後命令的過程不涉及該微處理器的操作。
- 一種記憶裝置,包含有:一快閃記憶體模組;以及一快閃記憶體控制器,用以存取該快閃記憶體模組,其中該快閃記憶體控制器包含有:一傳輸介面電路,耦接於一主裝置,其中該傳輸介面電路包含一命令處理電路,其用以接收來自該主裝置的一命令,並對該命令進行轉換以產生具有一特定格式的一轉換後命令;其中該命令支援多種格式,且該特定格式不同於該多種格式;一緩衝記憶體,用以儲存該轉換後命令;以及一微處理器,用以自該緩衝記憶體中讀取該轉換後命令,並根據該轉換後命令來對該快閃記憶體模組進行存取;其中該命令處理電路另根據多個檢查項目來對該命令進行檢查以產生至少一檢查結果,且該轉換後命令包含一錯誤狀態欄位以記錄該至少一檢查結果;其中該多個檢查項目包含該命令中的一邏輯單元編號是否超過一最大邏輯單元編號、該命令中的該邏輯單元編號是否已被該快閃記憶體控制器設定過、該命令中的該邏輯單元編號是否已被該快閃記憶體控制器禁用、該命令中的一邏輯區塊位址的長度是否超過該快閃記憶體控制器所允許的邏輯區塊位址的長度、以及該命令中的一傳送長度是否超過該快閃記憶體控制器所允許的傳送長度中的至少一部份。
- 如申請專利範圍第8項所述之記憶裝置,其中不論該命令為一讀取命令或是寫入命令,且也不論該命令的格式為該多種格式中的哪一者,該命令處理電路只會產生具有該特定格式的該轉換後命令。
- 如申請專利範圍第8項所述之記憶裝置,其中該傳輸介面電路另包含一暫存器,其用來儲存該多個檢查項目。
- 如申請專利範圍第8項所述之記憶裝置,其中該直接自該緩衝記憶體讀取該轉換後命令,並在不使用該多個檢查項目來對該轉換後命令進行檢查的情形下,直接根據該轉換後命令的內容來對該快閃記憶體模組進行存取。
- 一種快閃記憶體控制器的控制方法,包含有:接收來自一主裝置的一命令;對該命令進行轉換以產生具有一特定格式的一轉換後命令,其中該命令支援多種格式,且該特定格式不同於該多種格式;將該轉換後命令儲存至一緩衝記憶體;以及根據該轉換後命令來對一快閃記憶體模組進行存取;其中對該命令進行轉換以產生具有該特定格式的該轉換後命令的步驟包含有:根據多個檢查項目來對該命令進行檢查以產生至少一檢查結果,其中該轉換後命令包含一錯誤狀態欄位以記錄該至少一檢查結果;其中該多個檢查項目包含該命令中的一邏輯單元編號是否超過一最大邏輯單元編號、該命令中的該邏輯單元編號是否已被該快閃記憶體控制器設定過、該命令中的該邏輯單元編號是否已被該快閃記憶體控制器禁用、該命令中的一邏輯區塊位址的長度是否超過該快閃記憶體控制器所允許的邏輯區塊位址的長度、以及該命令中的一傳送長度是否超過該快 閃記憶體控制器所允許的傳送長度中的至少一部份。
- 如申請專利範圍第12項所述的控制方法,其中不論該命令為一讀取命令或是寫入命令,且也不論該命令的格式為該多種格式中的哪一者,對該命令進行轉換的步驟只會產生具有該特定格式的該轉換後命令。
- 如申請專利範圍第12項所述的控制方法,對該命令進行轉換以產生具有該特定格式的該轉換後命令的步驟係全部由一硬體電路來執行,而不涉及韌體的操作。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111146503A TWI814655B (zh) | 2022-12-05 | 2022-12-05 | 記憶裝置、快閃記憶體控制器及其控制方法 |
CN202310011541.3A CN118151838A (zh) | 2022-12-05 | 2023-01-05 | 记忆装置、快闪存储器控制器及其控制方法 |
US18/233,897 US20240184484A1 (en) | 2022-12-05 | 2023-08-15 | Flash memory controller and associated memory device and control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111146503A TWI814655B (zh) | 2022-12-05 | 2022-12-05 | 記憶裝置、快閃記憶體控制器及其控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI814655B true TWI814655B (zh) | 2023-09-01 |
TW202424733A TW202424733A (zh) | 2024-06-16 |
Family
ID=88965921
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111146503A TWI814655B (zh) | 2022-12-05 | 2022-12-05 | 記憶裝置、快閃記憶體控制器及其控制方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240184484A1 (zh) |
CN (1) | CN118151838A (zh) |
TW (1) | TWI814655B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200739547A (en) * | 2005-08-17 | 2007-10-16 | Koninkl Philips Electronics Nv | Method and device for storing/reading data on/from a record medium and for transferring information to/from it |
TW200839754A (en) * | 2007-01-10 | 2008-10-01 | Ibm | Use of unique identifiers for each data format supported by a multi-format data store |
EP2311039B1 (en) * | 2008-07-02 | 2013-05-01 | Micron Technology, Inc. | Multi-mode memory device and method |
TW201433919A (zh) * | 2013-02-27 | 2014-09-01 | Toshiba Kk | 記憶體裝置 |
US20180018172A1 (en) * | 2015-12-29 | 2018-01-18 | Intel Corporation | Hardware apparatus and methods for converting encoding formats |
CN112506569A (zh) * | 2020-12-14 | 2021-03-16 | 杭州趣链科技有限公司 | 一种字节码执行方法、字节码执行装置及终端设备 |
-
2022
- 2022-12-05 TW TW111146503A patent/TWI814655B/zh active
-
2023
- 2023-01-05 CN CN202310011541.3A patent/CN118151838A/zh active Pending
- 2023-08-15 US US18/233,897 patent/US20240184484A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200739547A (en) * | 2005-08-17 | 2007-10-16 | Koninkl Philips Electronics Nv | Method and device for storing/reading data on/from a record medium and for transferring information to/from it |
TW200839754A (en) * | 2007-01-10 | 2008-10-01 | Ibm | Use of unique identifiers for each data format supported by a multi-format data store |
EP2311039B1 (en) * | 2008-07-02 | 2013-05-01 | Micron Technology, Inc. | Multi-mode memory device and method |
TW201433919A (zh) * | 2013-02-27 | 2014-09-01 | Toshiba Kk | 記憶體裝置 |
US20180018172A1 (en) * | 2015-12-29 | 2018-01-18 | Intel Corporation | Hardware apparatus and methods for converting encoding formats |
CN112506569A (zh) * | 2020-12-14 | 2021-03-16 | 杭州趣链科技有限公司 | 一种字节码执行方法、字节码执行装置及终端设备 |
Also Published As
Publication number | Publication date |
---|---|
CN118151838A (zh) | 2024-06-07 |
US20240184484A1 (en) | 2024-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8812784B2 (en) | Command executing method, memory controller and memory storage apparatus | |
US8898375B2 (en) | Memory controlling method, memory controller and memory storage apparatus | |
US8806301B2 (en) | Data writing method for a flash memory, and controller and storage system using the same | |
TWI443513B (zh) | 記憶體儲存裝置、記憶體控制器與資料寫入方法 | |
US10866736B2 (en) | Memory controller and data processing circuit with improved system efficiency | |
TWI498899B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
US11003614B2 (en) | Embedding protocol parameters in data streams between host devices and storage devices | |
TWI607309B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN109643574B (zh) | 用于在完成数据加载操作之前启动预读取操作的方法和设备 | |
US8812772B2 (en) | Data merging method for non-volatile memory and controller and storage apparatus using the same | |
TW201426303A (zh) | 資料讀取方法、記憶體控制器與記憶體儲存裝置 | |
TW201740385A (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI820603B (zh) | 藉助於多階段記憶體映射隊列以進行存取控制的方法、系統單晶片積體電路、記憶體裝置以及用於記憶體裝置的控制器 | |
US11782638B2 (en) | Storage device with improved read latency and operating method thereof | |
TWI820951B (zh) | 藉助於預定命令來進行記憶體裝置的資料存取控制的方法及設備 | |
US10289334B2 (en) | Valid data merging method, memory controller and memory storage apparatus | |
TWI814655B (zh) | 記憶裝置、快閃記憶體控制器及其控制方法 | |
US20230176733A1 (en) | Data storage device and data storage system | |
US9009389B2 (en) | Memory management table processing method, memory controller, and memory storage apparatus | |
WO2023056687A1 (zh) | 一种固态硬盘及其数据操作方法、装置及电子设备 | |
TWI503841B (zh) | 寫入方法、記憶體控制器與記憶體儲存裝置 | |
US20240184485A1 (en) | Flash memory controller and associated memory device and control method | |
TW202137006A (zh) | 寫入閃存管理表的電腦程式產品及方法及裝置 | |
TWI820952B (zh) | 藉助於預定命令來進行記憶體裝置的資料存取控制的方法及設備 | |
TWI569201B (zh) | 控制方法、記憶體控制器與資料傳輸系統 |