TWI835027B - Method and computer program product and apparatus for updating host-to-flash address mapping table - Google Patents

Method and computer program product and apparatus for updating host-to-flash address mapping table Download PDF

Info

Publication number
TWI835027B
TWI835027B TW110143439A TW110143439A TWI835027B TW I835027 B TWI835027 B TW I835027B TW 110143439 A TW110143439 A TW 110143439A TW 110143439 A TW110143439 A TW 110143439A TW I835027 B TWI835027 B TW I835027B
Authority
TW
Taiwan
Prior art keywords
host
flash memory
address comparison
address
memory address
Prior art date
Application number
TW110143439A
Other languages
Chinese (zh)
Other versions
TW202321921A (en
Inventor
邱慎廷
Original Assignee
慧榮科技股份有限公司
Filing date
Publication date
Application filed by 慧榮科技股份有限公司 filed Critical 慧榮科技股份有限公司
Priority to TW110143439A priority Critical patent/TWI835027B/en
Publication of TW202321921A publication Critical patent/TW202321921A/en
Application granted granted Critical
Publication of TWI835027B publication Critical patent/TWI835027B/en

Links

Images

Abstract

The invention is related to a method, a computer program product, and an apparatus for updating a Host-to-Flash address mapping (H2F) table. The method includes: allocating apace in a random access memory (RAM) for a first H2F sub-table, and for intermediary information for updating a second H2F sub-table stored in a flash module; when executing a host write command for programming data into the flash module, or when executing a host discard command for discarding data from the flash module, updating the first H2F sub-table and the intermediary information stored in the RAM; and in a table update procedure, programming the first H2F sub-table temporarily stored in the RAM into a system block of the flash module, and updating the second H2F sub-table according the intermediary information temporarily stored in the RAM, and programming updated second H2F sub-table into the system block of the flash module.

Description

更新主機與閃存位址對照表的方法及電腦程式產品及裝置 Methods and computer program products and devices for updating host and flash memory address comparison tables

本發明涉及儲存裝置,尤指一種更新主機與閃存位址對照表的方法、電腦程式產品及裝置。 The present invention relates to storage devices, and in particular, to a method, computer program product and device for updating a host and flash memory address comparison table.

閃存通常分為NOR閃存與NAND閃存。NOR閃存為隨機存取裝置,中央處理器(Host)可於位址腳位上提供任何存取NOR閃存的位址,並及時地從NOR閃存的資料腳位上獲得儲存於該位址上的資料。相反地,NAND閃存並非隨機存取,而是序列存取。NAND閃存無法像NOR閃存一樣,可以存取任何隨機位址,中央處理器反而需要寫入序列的位元組(Bytes)的值到NAND閃存中,用於定義請求命令(Command)的類型(如,讀取、寫入、抹除等),以及用在此命令上的位址。位址可指向一個頁面(閃存中寫入作業的最小資料塊)或一個區塊(閃存中抹除作業的最小資料塊)。 Flash memory is usually divided into NOR flash memory and NAND flash memory. NOR flash memory is a random access device. The central processor (Host) can provide any address to access the NOR flash memory on the address pin, and obtain the data stored at the address from the data pin of the NOR flash memory in a timely manner. material. On the contrary, NAND flash memory does not have random access, but sequential access. NAND flash memory cannot access any random address like NOR flash memory. Instead, the central processor needs to write a sequence of Bytes values into the NAND flash memory to define the type of request command (Command) (such as , read, write, erase, etc.), and the address used on this command. The address can point to a page (the smallest block of data for a write operation in flash memory) or a block (the smallest block of data for an erase operation in flash memory).

為了提昇閃存模組的資料寫入及讀取效能,閃存控制器會以多個通道並行地執行資料寫入及讀取。為了達成並行處理的目的,一段連續性的資料會分散地儲存到多個通道所連接的閃存單元,並使用主機與閃存位址對照表(Host-to-Flash Address Mapping Table,簡稱H2F表)紀錄使用者資料的邏輯位址(由主機端管理)與實體位址(由閃存控制器管理)間的對應關係。然而,H2F表的更新也影響到整體系統的效能。因此,本發明提出一種更新主機與閃存位址對照表的方法、產品電腦程式及裝置,用於提升系統整體效能。 In order to improve the data writing and reading performance of the flash memory module, the flash memory controller performs data writing and reading in parallel through multiple channels. In order to achieve the purpose of parallel processing, a continuous piece of data will be distributed and stored in the flash memory units connected to multiple channels, and recorded using the Host-to-Flash Address Mapping Table (H2F table). The correspondence between the logical address of user data (managed by the host) and the physical address (managed by the flash controller). However, the update of the H2F table also affects the overall system performance. Therefore, the present invention proposes a method, product computer program and device for updating the address comparison table between the host and the flash memory, so as to improve the overall performance of the system.

有鑑於此,如何減輕或消除上述相關領域的缺失,實為有待解決的問題。 In view of this, how to alleviate or eliminate the deficiencies in the above-mentioned related fields is a problem that needs to be solved.

本說明書涉及一種更新主機與閃存位址對照表的方法,由處理單元執行,包含:在隨機存取記憶體中配置空間給第一主機與閃存位址對照子表,以及給用以更新閃存模組中的第二主機與閃存位址對照子表的中間資訊;在執行主機寫入命令以寫入資料到所述閃存模組時或者執行主機丟棄命令以丟棄所述閃存模組中的資料時,更新所述隨機存取記憶體中暫存的所述第一主機與閃存位址對照子表和所述中間資訊;以及在表格更新程序中,將所述隨機存取記憶體中暫存的所述第一主機與閃存位址對照子表寫入所述閃存模組中的系統塊,依據所述隨機存取記憶體中暫存的所述中間資訊更新所述第二主機與閃存位址對照子表並且將更新後的第二主機與閃存位址對照子表寫入所述閃存模組中的所述系統塊。 This description relates to a method for updating a host and flash memory address comparison table, which is executed by a processing unit and includes: configuring space in a random access memory for the first host and flash memory address comparison table, and updating the flash memory model. The intermediate information of the second host in the group and the flash memory address comparison table; when executing a host write command to write data to the flash memory module or executing a host discard command to discard data in the flash memory module , update the first host and flash memory address comparison sub-table and the intermediate information temporarily stored in the random access memory; and in the table update procedure, update the temporarily stored in the random access memory The first host and flash memory address comparison table is written into the system block in the flash memory module, and the second host and flash memory address are updated based on the intermediate information temporarily stored in the random access memory. Compare the sub-table and write the updated second host and flash memory address comparison sub-table into the system block in the flash memory module.

本說明書另涉及一種電腦程式產品,包含程式碼。當處理單元執行所述程式碼時,實施如上所述的更新主機與閃存位址對照表的方法。 This manual also relates to a computer program product, including program code. When the processing unit executes the program code, the above-mentioned method of updating the host and flash memory address comparison table is implemented.

本說明書更另涉及一種更新主機與閃存位址對照表的裝置,包含:隨機存取記憶體;閃存介面;和處理單元。閃存介面耦接閃存模組,並處理單元耦接隨機存取記憶體和閃存介面。處理單元用於在所述隨機存取記憶體中配置空間給第一主機與閃存位址對照子表,以及給用以更新所述閃存模組中的第二主機與閃存位址對照子表的中間資訊;在執行主機寫入命令以寫入資料到所述閃存模組時或者執行主機丟棄命令以丟棄所述閃存模組中的資料時,更新所述隨機存取記憶體中暫存的所述第一主機與閃存位址對照子表和所述中間資訊;以及在表格更新程序中,將所述隨機存取記憶體中暫存的所述第一主機與閃存位址對照子表寫入所述閃存模組中的系統塊,依據所述隨機存取記憶體中暫存的所述中間資訊更新所述第二主機與閃存位 址對照子表並且將更新後的第二主機與閃存位址對照子表寫入所述閃存模組中的所述系統塊。 This specification further relates to a device for updating a host and flash memory address comparison table, including: a random access memory; a flash memory interface; and a processing unit. The flash memory interface is coupled to the flash memory module, and the processing unit is coupled to the random access memory and the flash memory interface. The processing unit is configured to configure space in the random access memory for the first host and flash memory address comparison sub-table, and to update the second host and flash memory address comparison sub-table in the flash memory module. Intermediate information; when executing a host write command to write data to the flash memory module or executing a host discard command to discard data in the flash memory module, update all temporarily stored data in the random access memory The first host and flash memory address comparison subtable and the intermediate information; and in the table update procedure, write the first host and flash memory address comparison subtable temporarily stored in the random access memory. The system block in the flash memory module updates the second host and flash memory bits according to the intermediate information temporarily stored in the random access memory. The address comparison subtable is generated and the updated second host and flash memory address comparison subtable are written into the system block in the flash memory module.

上述實施例的優點之一,通過隨機寫入條件的檢查,可避免因為大量的主機與閃存位址對照子表更新而延遲後續主機讀命令和/或主機寫命令的執行。 One of the advantages of the above embodiment is that by checking random write conditions, it is possible to avoid delaying the execution of subsequent host read commands and/or host write commands due to a large number of host and flash memory address comparison subtable updates.

本發明的其他優點將搭配以下的說明和圖式進行更詳細的解說。 Other advantages of the present invention will be explained in more detail in conjunction with the following description and drawings.

10:電子裝置 10: Electronic devices

110:主機端 110: Host side

130:閃存控制器 130:Flash controller

131:主機介面 131:Host interface

132:匯流排 132:Bus

134:處理單元 134: Processing unit

136:隨機存取記憶體 136: Random access memory

138:直接記憶體存取控制器 138: Direct Memory Access Controller

139:閃存介面 139:Flash memory interface

150:閃存模組 150:Flash memory module

151:介面 151:Interface

153#0~153#15:NAND閃存單元 153#0~153#15: NAND flash memory unit

CH#0~CH#3:通道 CH#0~CH#3: Channel

CE#0~CE#3:致能訊號 CE#0~CE#3: enable signal

310,330:資料平面 310,330: Data plane

310#0~310#m,330#0~330#m:實體塊 310#0~310#m,330#0~330#m: solid block

P#0~P#n:實體頁面 P#0~P#n: Entity page

410:高階對照表 410: Advanced comparison table

430#0~430#15:H2F子表 430#0~430#15:H2F subtable

510:實體頁面中的區段 510: Sections in entity pages

530:實體位址資訊 530:Physical address information

530-0:實體塊編號 530-0: Entity block number

530-1:實體頁面編號和其中的區段編號 530-1: Entity page number and section number within it

S610~S660:方法步驟 S610~S660: Method steps

S710~S740:方法步驟 S710~S740: Method steps

S810~S840:方法步驟 S810~S840: Method steps

圖1為依據本發明實施例的電子裝置的系統架構圖。 FIG. 1 is a system architecture diagram of an electronic device according to an embodiment of the present invention.

圖2為依據本發明實施例的閃存模組的示意圖。 FIG. 2 is a schematic diagram of a flash memory module according to an embodiment of the present invention.

圖3為依據本發明實施例的NAND閃存單元的示意圖。 FIG. 3 is a schematic diagram of a NAND flash memory unit according to an embodiment of the present invention.

圖4為依據本發明實施例的高階對照表和主機與閃存位址對照子表之間的關聯示意圖。 FIG. 4 is a schematic diagram of the association between the high-level comparison table and the host and flash memory address comparison sub-table according to an embodiment of the present invention.

圖5為依據本發明實施例的主機與閃存位址對照子表和實體頁面之間的關聯示意圖。 FIG. 5 is a schematic diagram of the association between the host and the flash memory address comparison subtable and the physical page according to an embodiment of the present invention.

圖6為依據本發明實施例的執行主機寫入命令的方法流程圖。 Figure 6 is a flow chart of a method for executing a host write command according to an embodiment of the present invention.

圖7為依據本發明實施例的執行主機丟棄命令的方法流程圖。 Figure 7 is a flow chart of a method for executing a host discard command according to an embodiment of the present invention.

圖8為依據本發明實施例的執行表格更新程序的方法流程圖。 FIG. 8 is a flowchart of a method for executing a table update program according to an embodiment of the present invention.

以下說明為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。 The following description is a preferred implementation manner for completing the invention, and its purpose is to describe the basic spirit of the invention, but is not intended to limit the invention. For the actual invention, reference must be made to the following claims.

必須了解的是,使用於本說明書中的“包含”、“包括”等詞,用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。 It must be understood that the words "including" and "include" used in this specification are used to indicate the existence of specific technical features, numerical values, method steps, work processes, components and/or components, but do not exclude the possibility of adding further technical features, values, method steps, processes, components, components, or any combination of the above.

於權利要求中使用如“第一”、“第二”、“第三”等詞是用來修飾權利要求中的元件,並非用來表示之間具有優先順序,前置關係,或者 是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。 The use of words such as "first", "second" and "third" in the claims is used to modify the elements in the claims, and is not used to indicate priority, precedence, or precedence between them. It is the time sequence in which one component precedes another, or the execution of method steps. It is only used to distinguish components with the same name.

必須了解的是,當元件描述為“連接”或“耦接”至另一元件時,可以是直接連結、或耦接至其他元件,可能出現中間元件。相反地,當元件描述為“直接連接”或“直接耦接”至另一元件時,其中不存在任何中間元件。使用來描述元件之間關係的其他語詞也可類似方式解讀,例如“介於”相對於“直接介於”,或者是“鄰接”相對於“直接鄰接”等等。 It must be understood that when an element is described as being "connected" or "coupled" to another element, it can be directly connected or coupled to the other element, and intervening elements may be present. In contrast, when an element is described as being "directly connected" or "directly coupled" to another element, there are no intervening elements present. Other words used to describe the relationship between elements could be interpreted in a similar fashion, such as "between" versus "directly between," "adjacent" versus "directly adjacent," etc.

參考圖1。電子裝置10包含主機端(Host Side)110、閃存控制器130及閃存模組150,並且閃存控制器130及閃存模組150可合稱為裝置端(Device Side)。電子裝置10可實施於個人電腦、筆記型電腦(Laptop PC)、平板電腦、手機、數位相機、數位攝影機等電子產品之中。主機端110與閃存控制器130的主機介面(Host Interface)137可以通用序列匯流排(Universal Serial Bus,USB)、先進技術附著(advanced technology attachment,ATA)、序列先進技術附著(serial advanced technology attachment,SATA)、快速周邊元件互聯(peripheral component interconnect express,PCI-E)、通用快閃記憶儲存(Universal Flash Storage,UFS)、嵌入式多媒體卡(Embedded Multi-Media Card,eMMC)等通訊協定彼此溝通。閃存控制器130的閃存介面(Flash Interface)139與閃存模組150可以雙倍資料率(Double Data Rate,DDR)通訊協定彼此溝通,例如,開放NAND快閃(Open NAND Flash Interface,ONFI)、雙倍資料率開關(DDR Toggle)或其他通訊協定。閃存控制器130包含處理單元134,可使用多種方式實施,如使用通用硬體(例如,單一處理器、具平行處理能力的多處理器、圖形處理器或其他具運算能力的處理器),並且在執行軟體以及/或韌體指令時,提供之後描述的功能。處理單元134通過主機介面131接收主機命令,例如讀取命令 (Read Command)、寫入命令(Write Command)、丟棄命令(Discard Command)、抹除命令(Erase Command)等,排程並執行這些命令。閃存控制器130另包含隨機存取記憶體(Random Access Memory,RAM)136,可實施為動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)、靜態隨機存取記憶體(Static Random Access Memory,SRAM)或上述兩者的結合,用於配置空間作為資料緩衝區,儲存從主機端110讀取並即將寫入閃存模組150的使用者資料(也可稱為主機資料),以及從閃存模組150讀取並即將輸出給主機端110的使用者資料。隨機存取記憶體136另可儲存執行過程中需要的資料,例如,變數、資料表、主機與閃存位址對照表(Host-to-Flash Address Mapping Table,簡稱H2F表)、閃存與主機位址對照表(Flash-to-Host Address Mapping Table,簡稱F2H表)等。閃存介面139包含NAND閃存控制器(NAND Flash Controller,NFC),提供存取閃存模組150時需要的功能,例如命令序列器(Command Sequencer)、低密度奇偶校驗(Low Density Parity Check,LDPC)等。 Refer to Figure 1. The electronic device 10 includes a host side (Host Side) 110, a flash memory controller 130 and a flash memory module 150, and the flash memory controller 130 and the flash memory module 150 can be collectively referred to as a device side (Device Side). The electronic device 10 can be implemented in electronic products such as personal computers, laptop computers (Laptop PC), tablet computers, mobile phones, digital cameras, and digital video cameras. The host interface (Host Interface) 137 between the host 110 and the flash controller 130 can be a Universal Serial Bus (USB), an advanced technology attachment (ATA), or a serial advanced technology attachment (ATA). Communication protocols such as SATA), peripheral component interconnect express (PCI-E), Universal Flash Storage (UFS), and embedded multi-media card (eMMC) communicate with each other. The flash interface (Flash Interface) 139 of the flash memory controller 130 and the flash memory module 150 can communicate with each other using a double data rate (Double Data Rate, DDR) communication protocol, such as Open NAND Flash (Open NAND Flash Interface, ONFI), dual Double data rate switch (DDR Toggle) or other communication protocols. The flash memory controller 130 includes a processing unit 134, which can be implemented in a variety of ways, such as using general-purpose hardware (eg, a single processor, multiple processors with parallel processing capabilities, a graphics processor, or other processors with computing capabilities), and When executing software and/or firmware instructions, the functions described later are provided. The processing unit 134 receives host commands, such as read commands, through the host interface 131 (Read Command), Write Command (Write Command), Discard Command (Discard Command), Erase Command (Erase Command), etc., schedule and execute these commands. The flash memory controller 130 also includes a random access memory (Random Access Memory, RAM) 136, which can be implemented as a dynamic random access memory (Dynamic Random Access Memory, DRAM) or a static random access memory (Static Random Access Memory, SRAM) or a combination of the above two, is used to configure space as a data buffer to store user data (also called host data) read from the host 110 and about to be written to the flash memory module 150, and from the flash memory module. The group 150 reads and outputs the user data to the host 110 . The random access memory 136 can also store data needed during execution, such as variables, data tables, host-to-Flash Address Mapping Table (H2F table for short), flash memory and host addresses. Comparison table (Flash-to-Host Address Mapping Table, referred to as F2H table), etc. The flash memory interface 139 includes a NAND Flash Controller (NFC), which provides functions required to access the flash memory module 150, such as a command sequencer (Command Sequencer) and a low density parity check (LDPC). wait.

閃存控制器130中可配置匯流排架構(Bus Architecture)132,用於讓元件之間彼此耦接以傳遞資料、位址、控制訊號等,這些元件包含主機介面131、處理單元134、RAM 136、直接記憶體存取(Direct Memory Access,DMA)控制器138、閃存介面139等。於一些實施例中,主機介面131、處理單元134、RAM 136、DMA控制器138與閃存介面139可通過單一匯流排彼此耦接。於另一些實施例中,閃存控制器130中可配置高速匯流排,用於讓處理單元134、DMA控制器138與RAM 136彼此耦接,並且配置低速匯流排,用於讓處理單元134、DMA控制器138、主機介面131與閃存介面139彼此耦接。DMA控制器138可依據處理單元134的指令,通過匯流排架構132在元件間搬移資料,例如,將主機介面131或閃存介面139中特 定資料緩存器(Data Buffer)的資料搬到RAM 136中的特定位址,將RAM 136中特定位址的資料搬到將主機介面131或閃存介面139中的特定資料緩存器等。 The flash memory controller 130 can be configured with a bus architecture (Bus Architecture) 132 for coupling components to each other to transmit data, addresses, control signals, etc. These components include the host interface 131, the processing unit 134, the RAM 136, Direct Memory Access (DMA) controller 138, flash memory interface 139, etc. In some embodiments, the host interface 131, the processing unit 134, the RAM 136, the DMA controller 138, and the flash memory interface 139 may be coupled to each other through a single bus. In other embodiments, the flash memory controller 130 may be configured with a high-speed bus for coupling the processing unit 134, the DMA controller 138 and the RAM 136 to each other, and a low-speed bus may be configured for the processing unit 134, the DMA The controller 138, the host interface 131 and the flash memory interface 139 are coupled to each other. The DMA controller 138 can move data between components through the bus architecture 132 according to the instructions of the processing unit 134, for example, transferring special data in the host interface 131 or the flash memory interface 139. The data in the specific data buffer (Data Buffer) is moved to a specific address in the RAM 136, and the data in the specific address in the RAM 136 is moved to a specific data register in the host interface 131 or the flash memory interface 139, etc.

匯流排包含並行的物理線,連接閃存控制器130中兩個以上的組件。匯流排是一種共享的傳輸媒體,在任意的時間上,只能有兩個裝置可以使用這些線來彼此溝通,用於傳遞資料。資料及控制訊號能夠在組件間分別沿資料和控制線進行雙向傳播,但另一方面,位址訊號只能沿位址線進行單向傳播。例如,當處理單元134想要讀取RAM 136的特定位址上的資料時,處理單元134在位址線上傳送此位址給RAM 136。接著,此位址的資料會在資料線上回覆給處理單元134。為了完成資料讀取操作,控制訊號會使用控制線進行傳遞。 The bus includes parallel physical lines that connect two or more components in the flash memory controller 130 . The bus is a shared transmission medium. At any time, only two devices can use these lines to communicate with each other and transfer data. Data and control signals can propagate in both directions between components along data and control lines respectively, but on the other hand, address signals can only propagate in one direction along address lines. For example, when the processing unit 134 wants to read data at a specific address of the RAM 136, the processing unit 134 transmits the address to the RAM 136 on the address line. Then, the data at this address will be returned to the processing unit 134 on the data line. In order to complete the data reading operation, control signals are transmitted using control lines.

閃存模組150提供大量的儲存空間,通常是數百個千兆位元組(Gigabytes,GB),甚至是數個兆兆位元組(Terabytes,TB),用於儲存大量的使用者資料,例如高解析度圖片、影片等。閃存模組150中包含控制電路以及記憶體陣列,記憶體陣列中的記憶單元可包含單層式單元(Single Level Cells,SLCs)、多層式單元(Multiple Level Cells,MLCs)三層式單元(Triple Level Cells,TLCs)、四層式單元(Quad-Level Cells,QLCs)或上述的任意組合。處理單元134通過閃存介面139寫入使用者資料到閃存模組150中的指定位址(目的位址),以及從閃存模組150中的指定位址(來源位址)讀取使用者資料。閃存介面139使用數個電子訊號來協調閃存控制器130與閃存模組150間的資料與命令傳遞,包含資料線(Data Line)、時脈訊號(Clock Signal)與控制訊號(Control Signal)。資料線可用於傳遞命令、位址、讀出及寫入的資料;控制訊號線可用於傳遞晶片致能(Chip Enable,CE)、位址提取致能(Address Latch Enable,ALE)、命令提取致能(Command Latch Enable,CLE)、寫入致能(Write Enable,WE)等控制訊號。 The flash memory module 150 provides a large amount of storage space, usually hundreds of gigabytes (GB) or even several terabytes (TB), for storing a large amount of user data. For example, high-resolution pictures, videos, etc. The flash memory module 150 includes a control circuit and a memory array. The memory cells in the memory array may include Single Level Cells (SLCs), Multiple Level Cells (MLCs), or Triple Level Cells (Triple Level Cells). Level Cells (TLCs), Quad-Level Cells (QLCs), or any combination of the above. The processing unit 134 writes user data to a specified address (destination address) in the flash memory module 150 through the flash memory interface 139, and reads user data from a specified address (source address) in the flash memory module 150. The flash memory interface 139 uses several electronic signals to coordinate the transmission of data and commands between the flash memory controller 130 and the flash memory module 150, including data lines (Data Line), clock signals (Clock Signal) and control signals (Control Signal). Data lines can be used to transmit commands, addresses, read and write data; control signal lines can be used to transmit chip enable (Chip Enable, CE), address extraction enable (Address Latch Enable, ALE), command extraction enable Control signals such as Command Latch Enable (CLE) and Write Enable (WE).

參考圖2,閃存模組150中的介面151可包含四個輸出入通道(I/O channels,以下簡稱通道)CH#0至CH#3,每一個通道連接四個NAND閃存單元,例如,通道CH#0連接NAND閃存單元153#0、153#4、153#8及153#12。每個NAND閃存單元可封裝為獨立的芯片(die)。閃存介面139可通過介面151發出致能訊號CE#0至CE#3中的一個來致能NAND閃存單元153#0至153#3、153#4至153#7、153#8至153#11、或153#12至153#15,接著以並行的方式從致能的NAND閃存單元讀取使用者資料,或者寫入使用者資料至致能的NAND閃存單元。 Referring to Figure 2, the interface 151 in the flash memory module 150 may include four input/output channels (I/O channels, hereinafter referred to as channels) CH#0 to CH#3, each channel is connected to four NAND flash memory units, for example, channel CH#0 is connected to NAND flash memory cells 153#0, 153#4, 153#8 and 153#12. Each NAND flash memory cell can be packaged as an independent chip (die). The flash memory interface 139 can send one of the enable signals CE#0 to CE#3 through the interface 151 to enable the NAND flash memory units 153#0 to 153#3, 153#4 to 153#7, and 153#8 to 153#11. , or 153#12 to 153#15, and then read user data from the enabled NAND flash memory unit in a parallel manner, or write user data to the enabled NAND flash memory unit.

每個NAND閃存單元可包含多個資料平面(Data Planes),每個資料平面可包含多個實體塊(Physical Blocks),並且每個實體塊可包含多個實體頁面(Physical Pages)。參考圖3的實施例,NAND閃存單元153#0包含兩個資料平面310及330。資料平面310包含實體塊310#0至310#m,且資料平面330包含實體塊330#0至330#m。每個實體塊包含n+1個實體頁面。NAND閃存單元、實體塊和實體頁面可分別使用邏輯單元號(Logical Block Number,LUN)、塊編號(Block Number)和頁面編號(Page Number)識別,而以上編號的任意組合可稱為閃存模組150的實體位址。 Each NAND flash memory unit can include multiple data planes (Data Planes), each data plane can include multiple physical blocks (Physical Blocks), and each physical block can include multiple physical pages (Physical Pages). Referring to the embodiment of FIG. 3 , NAND flash memory cell 153#0 includes two data planes 310 and 330 . Data plane 310 includes physical blocks 310#0 to 310#m, and data plane 330 includes physical blocks 330#0 to 330#m. Each entity block contains n+1 entity pages. NAND flash memory cells, physical blocks and physical pages can be identified using logical block number (LUN), block number (Block Number) and page number (Page Number) respectively, and any combination of the above numbers can be called a flash memory module 150's physical address.

每個實體塊依其功能可區分為資料塊(Data Block)、當前塊(Current block)或系統塊(System block)。處理單元134可為每個NAND閃存單元中每個平面選擇出一個空的實體塊做為當前塊,用於預備寫入從主機端110接收的使用者資料。為了提昇資料寫入的效率,主機端110提供的使用者資料可並行地寫入多個NAND閃存單元中多個平面的多個當前塊中的特定頁面。處理單元134可在RAM 136中維護每個當前塊的F2H表,包含多筆紀錄,依頁面編號的順序儲存當前塊中每個頁面的使用者資料關聯於哪的邏輯位址的資訊。邏輯位址可使用邏輯區塊位址(Logical Block Address, LBA)、主頁面編號(Host Page Number)或其他方式表示,由主機端110管理。舉例來說,每個邏輯區塊位址關聯於512B大小的使用者資料,而每個主頁面編號關聯於4KB大小的使用者資料。一個當前塊中的所有頁面都儲存滿使用者資料之後,或者一個當前塊中的剩餘頁面都填入虛假值之後,處理單元134可驅動閃存介面139將RAM 136中的相應F2H表寫入當前塊的指定頁面(例如最後一個頁面),或者其他指定實體塊中的空頁面。當相應F2H表已經寫入閃存模組150後,當前塊就改變為資料塊,換句話說,其中儲存的使用者資料不會再改變。接著,處理單元134可選擇出另一個空的實體塊作為新的當前塊。此外,處理單元134可將特定實體塊設置為系統塊,用於儲存管理資訊,例如閃存識別碼(Flash Identifier,ID)、壞塊表(Bad Block Table)、壞行表(Bad Column Table)、H2F表等。F2H表可另稱為實體與邏輯位址對照表(Physical-to-Logical Address Mapping Table,簡稱為P2L表),而H2F表可另稱為邏輯與實體位址對照表(Logical-to-Physical Address Mapping Table,簡稱為L2P表)。 Each entity block can be divided into a data block (Data Block), current block (Current block) or system block (System block) according to its function. The processing unit 134 may select an empty physical block for each plane in each NAND flash memory unit as the current block for preparing to write the user data received from the host 110 . In order to improve the efficiency of data writing, the user data provided by the host 110 can be written in parallel to specific pages in multiple current blocks of multiple planes in multiple NAND flash memory cells. The processing unit 134 may maintain the F2H table of each current block in the RAM 136, including a plurality of records, and store the information of the logical address to which the user data of each page in the current block is associated in the order of the page number. The logical address can use the logical block address (Logical Block Address, LBA), host page number (Host Page Number) or other means, managed by the host side 110. For example, each logical block address is associated with 512B of user data, and each master page number is associated with 4KB of user data. After all pages in a current block are filled with user data, or after the remaining pages in a current block are filled with false values, the processing unit 134 can drive the flash memory interface 139 to write the corresponding F2H table in the RAM 136 into the current block. The specified page (such as the last page), or the empty page in other specified entity blocks. After the corresponding F2H table has been written into the flash memory module 150, the current block is changed into a data block. In other words, the user data stored therein will not change. Then, the processing unit 134 may select another empty physical block as a new current block. In addition, the processing unit 134 can set a specific physical block as a system block for storing management information, such as a flash identifier (Flash Identifier, ID), bad block table (Bad Block Table), bad row table (Bad Column Table), H2F table etc. The F2H table can also be called the Physical-to-Logical Address Mapping Table (P2L table for short), and the H2F table can also be called the Logical-to-Physical Address Mapping Table (Logical-to-Physical Address Mapping Table, referred to as L2P table).

除了將F2H表寫入閃存模組150中的相應實體頁面外,處理單元134還需要依據當前塊的F2H表的內容更新H2F表,用於將來執行主機讀命令時能從H2F表快速查找出關聯於特定邏輯位址的使用者資料實際儲存於哪個實體位址的資訊。H2F表包含多筆紀錄,依邏輯位址的順序儲存每個邏輯位址的使用者資料實際儲存在哪個實體位址的資訊。然而,由於RAM 136無法提供足夠空間儲存整個H2F表以供處理單元134將來於資料讀取操作時快速查找,H2F表可切成多個H2F子表,並儲存於閃存模組150,使得將來於資料讀取操作時只要從閃存模組150讀取相應的H2F子表至RAM 136。參考圖4,整個H2F表可切成H2F子表430#0~430#15。處理單元134更維護高階對照表410,包含多個紀錄,依邏輯位址的順序儲存每段邏輯位址區段 關聯的H2F子表的實體位址資訊。例如,第0個至第4095個主頁面的關聯H2F子表430#0儲存於特定LUN的特定實體塊中(字母”Z”可代表LUN和實體塊的編號)的第0個實體頁面,第4096個至第8191個主頁面的關聯H2F子表430#1儲存於特定LUN的特定實體塊中的第1個實體頁面,依此類推。雖然圖4中只包含16個H2F子表,但是所屬技術領域的技術人員可因應閃存模組150的容量,設置更多的H2F子表,本發明並不因此侷限。 In addition to writing the F2H table to the corresponding physical page in the flash memory module 150, the processing unit 134 also needs to update the H2F table according to the content of the F2H table of the current block, so that when executing the host read command in the future, the user data associated with a specific logical address can be quickly found from the H2F table. The H2F table contains multiple records, storing information about which physical address the user data of each logical address is actually stored in according to the order of the logical addresses. However, since RAM 136 cannot provide enough space to store the entire H2F table for the processing unit 134 to quickly search in the future during data reading operations, the H2F table can be divided into multiple H2F sub-tables and stored in the flash memory module 150, so that in the future during data reading operations, only the corresponding H2F sub-table needs to be read from the flash memory module 150 to RAM 136. Referring to FIG. 4, the entire H2F table can be divided into H2F sub-tables 430#0~430#15. The processing unit 134 further maintains a high-level lookup table 410, which includes multiple records, storing the physical address information of the H2F sub-table associated with each logical address segment in the order of the logical address. For example, the H2F sub-table 430#0 associated with the 0th to 4095th main pages is stored in the 0th physical page in a specific physical block of a specific LUN (the letter "Z" may represent the number of the LUN and the physical block), and the H2F sub-table 430#1 associated with the 4096th to 8191th main pages is stored in the 1st physical page in a specific physical block of a specific LUN, and so on. Although FIG. 4 only includes 16 H2F sub-tables, a person skilled in the art may set more H2F sub-tables according to the capacity of the flash memory module 150, and the present invention is not limited thereto.

每個H2F子表所需的空間可以為4KB、8KB、16KB、32KB等。參考圖5。舉例來說,H2F子表430#0依照邏輯位址的順序儲存相應於每一邏輯位置的實體位置資訊。邏輯位置可以主頁面編號表示,每一個主頁面編號對應到一個固定大小的實體儲存空間,例如4KB。所屬技術領域人員也使用LBA來表示邏輯位置,本發明並不因此侷限。舉例來說,H2F子表430#0依序儲存從H#0至H#4095的實體位址資訊。實體位址資訊530可以四個位元組表示:前二個位元組530-0紀錄實體塊編號(Physical Block Number);後二個位元組530-1紀錄實體頁面編號(Physical Page Number)和實體頁面中的區段編號。舉例來說,相應於主頁面H#2的實體位址資訊530可指向實體塊310#1中的實體頁面510。位元組530-0紀錄實體塊310#1的編號,位元組530-1紀錄實體頁面和其中的區段510的編號。 The space required for each H2F subtable can be 4KB, 8KB, 16KB, 32KB, etc. Refer to Figure 5. For example, the H2F subtable 430#0 stores the physical location information corresponding to each logical location in the order of logical addresses. The logical location can be represented by a main page number. Each main page number corresponds to a fixed-size physical storage space, such as 4KB. Those skilled in the art also use LBA to represent logical locations, and the present invention is not limited thereby. For example, H2F subtable 430#0 stores entity address information from H#0 to H#4095 in sequence. The physical address information 530 can be represented by four bytes: the first two bytes 530-0 record the physical block number (Physical Block Number); the last two bytes 530-1 record the physical page number (Physical Page Number) and the segment number in the entity page. For example, the physical address information 530 corresponding to the main page H#2 may point to the physical page 510 in the physical block 310#1. Byte 530-0 records the number of the physical block 310#1, and byte 530-1 records the number of the physical page and the section 510 therein.

在執行主機寫入命令來把使用者資料寫入到閃存模組139後,或者執行主機丟棄命令(Host Discard Command)將閃存模組139中儲存的特定邏輯位址的資料捨棄後,相應的H2F子表需要隨之更新以讓之後的資料讀取操作能夠有效率的執行。不同於主機抹除命令的執行,處理單元134在執行主機丟棄命令時不需要將原來儲存特定邏輯位址的資料的記憶單元進行抹除操作。在一些系統架構中,RAM 136可配置足夠的空間來暫存所有的H2F子表。每當處理單元134驅動閃存介面139寫入使用者資料後,或者當閃存模組139中儲 存的特定邏輯位址的資料被捨棄後,可更新相應的H2F子表的內容以反映之前的寫入或者捨棄操作。每隔一段時間或者在預設條件滿足時,處理單元134驅動閃存介面139將RAM 136中所有的H2F子表寫入閃存模組150的指定系統塊。然而,在另一些系統架構中,RAM 136無法配置足夠的空間來暫存所有的H2F子表。於是,處理單元134只能在RAM 136中暫存需要空間少很多的F2H表。每當一個當前塊中的所有頁面都儲存滿使用者資料之後,或者一個當前塊中的剩餘頁面都填入虛假值之後,處理單元134才依據當前塊的F2H表的內容更新相應的H2F表。每當預設數量的主機捨棄命令被執行後,處理單元134更新相應的H2F表來反映之前的捨棄操作。由於之前執行過的主機寫入命令和主機捨棄命令可能牽涉到多個H2F子表,詳細來說,處理單元134先搜尋高階對照表410的內容來找出關聯H2F子表的實體位址,並驅動閃存介面139從閃存模組150的這些實體位址讀取關聯H2F子表並儲存於RAM 136。接著,處理單元134依據當前塊的F2H表的內容和之前捨棄的邏輯位址更新RAM 136中H2F子表的關聯紀錄的實體位址資訊,並驅動閃存介面139寫入更新後的H2F子表到閃存模組150的指定系統塊。然而,上述實施方式在主機端110進行隨機寫入(Random Write)時,由於需要更新的H2F子表太多而延遲了後續主機讀命令和/或主機寫命令的執行。更糟的是,後續主機寫命令還可能因為等待H2F子表更新的時間過長而逾時,造成主機端110還需要花費時間和運算資源重新產生並傳送主機寫命令給閃存控制器130。 After executing the host write command to write user data to the flash memory module 139, or executing the host discard command (Host Discard Command) to discard the data at a specific logical address stored in the flash memory module 139, the corresponding H2F The subtable needs to be updated accordingly so that subsequent data reading operations can be performed efficiently. Different from the execution of the host erase command, the processing unit 134 does not need to erase the memory unit that originally stored the data at the specific logical address when executing the host discard command. In some system architectures, RAM 136 may be configured with enough space to temporarily store all H2F subtables. Whenever the processing unit 134 drives the flash memory interface 139 to write user data, or when the flash memory module 139 stores After the stored data at a specific logical address is discarded, the contents of the corresponding H2F subtable can be updated to reflect the previous write or discard operation. At regular intervals or when preset conditions are met, the processing unit 134 drives the flash memory interface 139 to write all H2F subtables in the RAM 136 to the designated system block of the flash memory module 150 . However, in other system architectures, RAM 136 cannot be configured with enough space to temporarily store all H2F subtables. Therefore, the processing unit 134 can only temporarily store the F2H table in the RAM 136 which requires much less space. Whenever all the pages in a current block are filled with user data, or after the remaining pages in a current block are filled with false values, the processing unit 134 updates the corresponding H2F table according to the contents of the F2H table of the current block. Whenever a preset number of host discarding commands are executed, the processing unit 134 updates the corresponding H2F table to reflect the previous discarding operations. Since the previously executed host write command and host discard command may involve multiple H2F sub-tables, in detail, the processing unit 134 first searches the contents of the high-level lookup table 410 to find the entity address associated with the H2F sub-table, and The driver flash memory interface 139 reads the associated H2F subtable from these physical addresses of the flash memory module 150 and stores it in the RAM 136 . Next, the processing unit 134 updates the physical address information of the associated record of the H2F subtable in the RAM 136 based on the contents of the F2H table of the current block and the previously discarded logical address, and drives the flash memory interface 139 to write the updated H2F subtable to Designated system block of flash memory module 150 . However, in the above embodiment, when the host side 110 performs random write (Random Write), the execution of subsequent host read commands and/or host write commands is delayed due to too many H2F subtables that need to be updated. To make matters worse, the subsequent host write command may time out due to waiting for a long time for the H2F subtable to be updated, causing the host 110 to spend time and computing resources to regenerate and transmit the host write command to the flash memory controller 130 .

為了解決如上所述實施方式的問題,本發明提出一種更新主機與閃存位址對照表的方法、電腦程式產品和裝置,在RAM 136中配置空間給數個H2F子表,以及給用以更新閃存模組150中的其他H2F子表的中間資訊。在一些實施例中,系統架構可配置足夠讓RAM 136暫存當前塊的F2H表和一部分的H2F子表的空間。在另一些實施例中, 系統架構可配置足夠讓RAM 136暫存丟棄佇列和一部分的H2F子表的空間。在更另一些實施例中,系統架構可配置足夠讓RAM 136暫存當前塊的F2H表、丟棄佇列和一部分的H2F子表的空間。以上所述暫存的H2F子表的數量視RAM 136中配置空間的大小而定。在執行主機寫入命令以寫入資料到閃存模組150時或者執行主機丟棄命令以丟棄閃存模組150中的資料時,更新RAM 136中暫存的H2F子表和中間資訊。在表格更新程序(Table Update Procedure)中,將RAM 136中暫存的H2F子表(可稱為第一H2F子表)寫入閃存模組150中的指定系統塊,依據RAM 136中暫存的中間資訊更新閃存模組150中的H2F子表(可稱為第二H2F子表)並且將更新後的H2F子表寫入閃存模組150中的指定系統塊。 In order to solve the problems of the above embodiments, the present invention proposes a method, computer program product and device for updating the host and flash memory address comparison table, configuring space in the RAM 136 for several H2F sub-tables, and updating the flash memory. Intermediate information for other H2F subtables in module 150. In some embodiments, the system architecture may be configured with enough space for RAM 136 to temporarily store the current block's F2H table and a portion of the H2F sub-table. In other embodiments, The system architecture can be configured with enough RAM 136 to temporarily store the discard queue and a portion of the H2F subtable. In still other embodiments, the system architecture may be configured with enough space for RAM 136 to temporarily store the F2H table of the current block, the discard queue, and a portion of the H2F sub-table. The number of temporarily stored H2F sub-tables mentioned above depends on the size of the configuration space in RAM 136. When executing a host write command to write data to the flash memory module 150 or executing a host discard command to discard data in the flash memory module 150, the H2F subtable and intermediate information temporarily stored in the RAM 136 are updated. In the table update procedure (Table Update Procedure), the H2F subtable temporarily stored in the RAM 136 (which can be called the first H2F subtable) is written into the designated system block in the flash memory module 150. According to the temporarily stored in the RAM 136 The intermediate information updates the H2F subtable in the flash memory module 150 (which may be called the second H2F subtable) and writes the updated H2F subtable into the designated system block in the flash memory module 150 .

本發明實施例提出一種主機寫入命令的執行方法,由處理單元134載入和執行相關韌體或軟體指令時實施。本方法在每次執行完主機寫入命令後,更新RAM 136中暫存的H2F子表和當前塊的F2H,用於儲存最新的邏輯與實體位址之間的對照資訊以及H2F子表的更新狀態。參考圖6,詳細步驟說明如下: The embodiment of the present invention proposes a method for executing a host write command, which is implemented when the processing unit 134 loads and executes relevant firmware or software instructions. This method updates the H2F subtable temporarily stored in RAM 136 and the F2H of the current block after each execution of the host write command, which is used to store the latest comparison information between logical and physical addresses and the update of the H2F subtable. condition. Referring to Figure 6, the detailed steps are as follows:

步驟S610:執行第一個(下一個)主機寫入命令。處理單元134可根據主機寫入命令的參數(包含邏輯位址、長度等)驅動閃存介面139寫入主機端110的使用者資料至閃存模組150中當前塊的指定頁面。 Step S610: Execute the first (next) host write command. The processing unit 134 can drive the flash memory interface 139 to write the user data of the host 110 to the specified page of the current block in the flash memory module 150 according to the parameters of the host write command (including logical address, length, etc.).

步驟S620:更新RAM 136中暫存的當前塊的F2H表,用以儲存當前塊中的寫入頁面對應於邏輯位址的對照資訊。 Step S620: Update the F2H table of the current block temporarily stored in the RAM 136 to store the comparison information corresponding to the logical address of the written page in the current block.

步驟S630:判斷這些邏輯位址所關聯的H2F子表是否暫存在RAM 136。如果是,則流程繼續步驟S640的處理;否則,流程繼續步驟S660的處理。 Step S630: Determine whether the H2F subtables associated with these logical addresses are temporarily stored in the RAM 136. If yes, the flow continues with the processing of step S640; otherwise, the flow continues with the processing of step S660.

步驟S640:更新RAM 136中暫存的H2F子表,用於儲存這些邏輯位址對應於哪些實體位址的對照資訊。 Step S640: Update the H2F subtable temporarily stored in RAM 136 for storing comparison information of which physical addresses these logical addresses correspond to.

步驟S650:將RAM 136中暫存的F2H表中的相應紀錄的更新旗標(Update Flag)設為”1”。 Step S650: Set the update flag (Update Flag) of the corresponding record in the F2H table temporarily stored in RAM 136 to "1".

步驟S660:將RAM 136中暫存的F2H表中的相應紀錄的更新旗標設為”0”。 Step S660: Set the update flag of the corresponding record in the F2H table temporarily stored in RAM 136 to "0".

以下舉些實例說明,當前塊的F2H表中的每個紀錄除了儲存邏輯位址的資訊外,還儲存更新旗標,用於指出這筆紀錄的對照資訊是否已經更新到RAM 136中暫存的H2F子表,“1”代表已更新,“0”代表未更新。表1描述當前塊的F2H表的範例內容:

Figure 110143439-A0305-02-0015-1
第一至第三筆紀錄指出當前塊的頁面P#0至P#2分別儲存了邏輯位址LBA#64~95(也就是主頁面H#2)、LBA#96~127(也就是主頁面H#3)和LBA#128~159(也就是主頁面H#3)的使用者資料,並且它們的對照資訊已經更新到RAM 136中暫存的H2F子表。第四至第六筆紀錄指出當前塊的頁面P#3至P#5分別儲存了邏輯位址LBA#192000~192031(也就是主頁面H#6000)、LBA#192032~192063(也就是主頁面H#6001)和LBA#192064~192095(也就是主頁面H#6002)的使用者資料,並且它們的對照資訊不能更新到RAM 136中暫存的H2F子表。第四至第六筆紀錄可稱為用於更新閃存模組150中的相應H2F子表的中間資訊。換句話說,關聯於邏輯位址LBA#192000~192031、 LBA#192032~192063和LBA#192064~192095的H2F子表430#1尚未從閃存模組150讀出,需要進一步執行表格更新程序。 The following examples illustrate that in addition to storing logical address information, each record in the F2H table of the current block also stores an update flag, which is used to indicate whether the comparison information of this record has been updated to the temporary storage in RAM 136. H2F subtable, "1" means updated, "0" means not updated. Table 1 describes the sample contents of the F2H table for the current block:
Figure 110143439-A0305-02-0015-1
The first to third records indicate that pages P#0 to P#2 of the current block store logical addresses LBA#64~95 (that is, the main page H#2) and LBA#96~127 (that is, the main page) respectively. H#3) and LBA#128~159 (that is, the main page H#3) user data, and their comparison information has been updated to the H2F subtable temporarily stored in RAM 136. The fourth to sixth records indicate that pages P#3 to P#5 of the current block store logical addresses LBA#192000~192031 (that is, the main page H#6000) and LBA#192032~192063 (that is, the main page) respectively. H#6001) and LBA#192064~192095 (that is, the main page H#6002) user data, and their comparison information cannot be updated to the H2F subtable temporarily stored in RAM 136. The fourth to sixth records can be referred to as intermediate information used to update the corresponding H2F sub-table in the flash memory module 150 . In other words, the H2F subtable 430#1 associated with the logical addresses LBA#192000~192031, LBA#192032~192063, and LBA#192064~192095 has not been read from the flash memory module 150, and the table update procedure needs to be further executed.

本發明實施例提出一種主機丟棄命令的執行方法,由處理單元134載入和執行相關韌體或軟體指令時實施。本方法在每次執行完主機丟棄命令後,更新RAM 136中暫存的H2F子表和丟棄佇列,用於儲存最新的邏輯與實體位址之間的對照資訊以及H2F子表的更新狀態。 The embodiment of the present invention proposes a method for executing a host discard command, which is implemented when the processing unit 134 loads and executes relevant firmware or software instructions. This method updates the H2F subtable and discard queue temporarily stored in RAM 136 after each execution of the host discard command, which is used to store the latest comparison information between logical and physical addresses and the update status of the H2F subtable.

參考圖7,詳細步驟說明如下: Referring to Figure 7, the detailed steps are as follows:

步驟S710:執行第一個(下一個)主機丟棄命令。處理單元134可提取主機寫入命令的參數(包含邏輯位址、長度等)。 Step S710: Execute the first (next) host discard command. The processing unit 134 can extract parameters of the host write command (including logical address, length, etc.).

步驟S720:判斷這些邏輯位址所關聯的H2F子表是否暫存在RAM 136。如果是,則流程繼續步驟S730的處理;否則,流程繼續步驟S740的處理。 Step S720: Determine whether the H2F subtables associated with these logical addresses are temporarily stored in the RAM 136. If yes, the flow continues with the processing of step S730; otherwise, the flow continues with the processing of step S740.

步驟S730:更新RAM 136中暫存的H2F子表,用於刪除對應於這些邏輯位址的實體位址的對照資訊。假設主機丟棄命令指示丟棄LBA#64到LBA#127的使用者資料,處理單元134可將相應H2F子表中關聯於LBA#64到LBA#127(也就是主頁面H#2到主頁面H#3)的實體位址欄位填成虛假值(Dummy Values),代表LBA#64到127的使用者資料不存在於閃存模組150中。 Step S730: Update the H2F subtable temporarily stored in the RAM 136 to delete the comparison information of the physical addresses corresponding to these logical addresses. Assuming that the host discard command instructs to discard the user data of LBA#64 to LBA#127, the processing unit 134 can associate the corresponding H2F subtable with LBA#64 to LBA#127 (that is, the main page H#2 to the main page H# The physical address field of 3) is filled with dummy values, which means that the user data of LBA#64 to 127 does not exist in the flash memory module 150.

步驟S740:將主機丟棄命令指示的邏輯位址推入丟棄佇列,用於表示這些邏輯位址的捨棄資訊並沒有更新到相應的H2F子表中。 Step S740: Push the logical addresses indicated by the host discard command into the discard queue, indicating that the discard information of these logical addresses has not been updated to the corresponding H2F subtable.

以下舉些實例說明,假設主機丟棄命令指示丟棄邏輯位址LBA#192032~192095(也就是主頁面H#6001至H#6002)的使用者資料,而邏輯位址LBA#192032~192095關聯的H2F子表並沒有暫存在RAM 136。由於每個實體頁面可以儲存32個LBA的使用者資料,因此邏輯位址LBA#192032~192095分成邏輯位址LBA#192032~192063和LBA#192064~192095,並且將分割後的邏輯位址推入到丟棄佇列中。表2描述丟棄佇列的範例內容:

Figure 110143439-A0305-02-0017-2
丟棄佇列的內容可稱為用於更新閃存模組150中的相應H2F子表的中間資訊。 The following are some examples. Suppose the host discard command instructs to discard the user data at the logical addresses LBA#192032~192095 (that is, the main pages H#6001 to H#6002), and the H2F associated with the logical addresses LBA#192032~192095 The subtable is not temporarily stored in RAM 136. Since each entity page can store user data of 32 LBAs, the logical addresses LBA#192032~192095 are divided into logical addresses LBA#192032~192063 and LBA#192064~192095, and the divided logical addresses are pushed into the discard queue. Table 2 describes sample contents of the drop queue:
Figure 110143439-A0305-02-0017-2
The contents of the discard queue may be referred to as intermediate information used to update the corresponding H2F sub-table in the flash memory module 150 .

總的來說,當前塊的F2H表或者丟棄佇列儲存了特定邏輯位址所關聯的H2F子表是否需要執行表格更新程序的資訊。例如,當前塊的F2H表中的每個具有更新旗標為“0”的紀錄儲存了特定邏輯位址所關聯的H2F子表需要執行表格更新程序的資訊。丟棄佇列中的每個節點儲存了特定邏輯位址所關聯的H2F子表需要執行表格更新程序的資訊。 In general, the F2H table or discard queue of the current block stores information on whether the H2F subtable associated with a specific logical address needs to perform a table update procedure. For example, each record with an update flag of "0" in the F2H table of the current block stores information that the H2F subtable associated with a specific logical address needs to perform a table update procedure. Each node in the discard queue stores information that the H2F subtable associated with a specific logical address needs to perform the table update procedure.

本發明實施例提出一種表格更新程序的執行方法,由處理單元134載入和執行相關韌體或軟體指令時實施。每當在當前塊寫滿或者在預設條件滿足時,執行表格更新程序,用於將RAM 136中暫存的H2F子表寫入閃存模組150,以及根據F2H表和/或丟棄佇列中指示的特定邏輯位址的H2F表的未更新資訊,更新閃存模組150中相應的H2F子表。參考圖8,詳細步驟說明如下: The embodiment of the present invention provides a method for executing a table update program, which is implemented when the processing unit 134 loads and executes relevant firmware or software instructions. Whenever the current block is full or when a preset condition is met, a table update program is executed to write the H2F subtable temporarily stored in the RAM 136 to the flash memory module 150 and to discard the queue according to the F2H table. The unupdated information of the H2F table of the indicated specific logical address is updated to the corresponding H2F sub-table in the flash memory module 150 . Referring to Figure 8, the detailed steps are as follows:

步驟S810:將RAM 136中暫存的H2F子表寫入閃存模組150中的指定系統塊。假設RAM 136中暫存了H2F子表430#0:處理單元134驅動閃存介面139將RAM 136中暫存的H2F子表430#0寫入閃存模組150中的指定系統塊。 Step S810: Write the H2F subtable temporarily stored in the RAM 136 to the designated system block in the flash memory module 150. Assume that the H2F subtable 430#0 is temporarily stored in the RAM 136: the processing unit 134 drives the flash memory interface 139 to write the H2F subtable 430#0 temporarily stored in the RAM 136 into the designated system block in the flash memory module 150.

步驟S820:依據RAM 136中暫存的當前塊的F2H表和丟棄佇列的內容從閃存模組150讀取未更新邏輯位址所關聯的H2F子表並儲存在RAM 136。接續表1所述的當前塊的F2H表的範例和表2所述的丟棄佇列的範例,未更新邏輯位址為LBA#192000至LBA#192031,並且其所關聯的H2F子表為430#1。於是,處理單元134驅動閃存介面139 從指定的系統塊讀取H2F子表430#1,並且儲存至RAM 136。 Step S820: Read the H2F subtable associated with the unupdated logical address from the flash memory module 150 according to the contents of the F2H table of the current block and the discard queue temporarily stored in the RAM 136 and store it in the RAM 136. Following the example of the F2H table for the current block described in Table 1 and the example of the discard queue described in Table 2, the unupdated logical addresses are LBA#192000 to LBA#192031, and their associated H2F subtable is 430# 1. Therefore, the processing unit 134 drives the flash memory interface 139 H2F subtable 430#1 is read from the designated system block and stored in RAM 136.

步驟S830:依據RAM 136中暫存的當前塊的F2H表和丟棄佇列的內容更新RAM 136中新讀取的H2F子表(例如,H2F子表430#1)。 Step S830: Update the newly read H2F subtable (for example, H2F subtable 430 #1) in RAM 136 according to the contents of the F2H table of the current block and the discard queue temporarily stored in RAM 136.

步驟S840:將RAM 136中更新後的H2F子表寫入閃存模組150中的指定系統塊。 Step S840: Write the updated H2F subtable in the RAM 136 to the designated system block in the flash memory module 150.

如上所述的方法可適用於RAM 136無法配置空間給所有H2F子表的系統架構中,並且通過在RAM 136中預存一部分的H2F子表可以節省表格更新程序的執行時間。 The above method can be applied to a system architecture in which the RAM 136 cannot allocate space to all H2F sub-tables, and the execution time of the table update program can be saved by pre-storing a part of the H2F sub-tables in the RAM 136 .

為了讓讀者更容易理解,雖然如上所述的實施例以一個當前塊作為例子說明操作細節,所屬技術領域人員在適當修改後可應用到能夠並行寫入的多個當前塊的閃存介面,本發明並不因此受限。 In order to make it easier for readers to understand, although the above embodiment uses a current block as an example to illustrate the operation details, those skilled in the art can apply it to a flash memory interface capable of writing multiple current blocks in parallel after appropriate modifications. The present invention It is not limited by this.

本發明所述的方法中的全部或部分步驟可以計算機指令實現,例如儲存裝置中的韌體轉換層(Firmware Translation Layer,FTL)、特定硬體的驅動程式等。此外,也可實現於其他類型程式。所屬技術領域具有通常知識者可將本發明實施例的方法撰寫成計算機指令,為求簡潔不再加以描述。依據本發明實施例方法實施的計算機指令可儲存於適當的電腦可讀取媒體,例如DVD、CD-ROM、USB碟、硬碟,亦可置於可通過網路(例如,網際網路,或其他適當載具)存取的網路伺服器。 All or part of the steps in the method of the present invention can be implemented by computer instructions, such as a firmware translation layer (FTL) in a storage device, a driver for a specific hardware, etc. In addition, it can also be implemented in other types of programs. Those with ordinary skill in the art can write the methods of the embodiments of the present invention as computer instructions, which will not be described again for the sake of simplicity. Computer instructions implemented according to the methods of the embodiments of the present invention can be stored in appropriate computer-readable media, such as DVD, CD-ROM, USB disk, hard disk, or can be placed in a computer that can be accessed through a network (for example, the Internet, or A web server accessible by other appropriate vehicles).

雖然圖1、2中包含了以上描述的元件,但不排除在不違反發明的精神下,使用更多其他的附加元件,已達成更佳的技術效果。此外,雖然圖6至圖8的流程圖採用指定的順序來執行,但是在不違反發明精神的情況下,熟習此技藝人士可以在達到相同效果的前提下,修改這些步驟間的順序,所以,本發明並不侷限於僅使用如上所述的順序。此外,熟習此技藝人士亦可以將若干步驟整合為一個步驟,或者是除了這些步驟外,循序或平行地執行更多步驟,本發明亦不因此而侷限。 Although Figures 1 and 2 contain the components described above, it does not rule out the use of more other additional components to achieve better technical effects without violating the spirit of the invention. In addition, although the flowcharts of Figures 6 to 8 are executed in a specified order, those skilled in the art can modify the order of these steps without violating the spirit of the invention and achieving the same effect. Therefore, The present invention is not limited to the use of only the sequence described above. In addition, those skilled in the art can also integrate several steps into one step, or in addition to these steps, perform more steps sequentially or in parallel, and the invention is not limited thereby.

雖然本發明使用以上實施例進行說明,但需要注意的是,這些描述並非用以限縮本發明。相反地,此發明涵蓋了熟習此技藝人士顯而易見的修改與相似設置。所以,申請權利要求範圍須以最寬廣的方式解釋來包含所有顯而易見的修改與相似設置。 Although the present invention is described using the above embodiments, it should be noted that these descriptions are not intended to limit the present invention. On the contrary, this invention covers modifications and similar arrangements which will be obvious to one skilled in the art. Therefore, the scope of the claims of the application must be interpreted in the broadest manner to include all obvious modifications and similar arrangements.

S810~S840:方法步驟 S810~S840: Method steps

Claims (13)

一種更新主機與閃存位址對照表的方法,由處理單元執行,包含:在隨機存取記憶體中配置空間給第一主機與閃存位址對照子表,以及給用以更新閃存模組中的第二主機與閃存位址對照子表的中間資訊;在執行主機寫入命令以寫入資料到所述閃存模組時或者執行主機丟棄命令以丟棄所述閃存模組中的資料時,更新所述隨機存取記憶體中暫存的所述第一主機與閃存位址對照子表和所述中間資訊;以及在表格更新程序中,將所述隨機存取記憶體中暫存的所述第一主機與閃存位址對照子表寫入所述閃存模組中的系統塊,依據所述隨機存取記憶體中暫存的所述中間資訊更新所述第二主機與閃存位址對照子表並且將更新後的第二主機與閃存位址對照子表寫入所述閃存模組中的所述系統塊。 A method for updating a host and flash memory address comparison table, executed by a processing unit, including: configuring space in a random access memory for a first host and flash memory address comparison table, and updating the address comparison table in a flash memory module. The intermediate information of the second host and flash memory address comparison table; when executing the host write command to write data to the flash memory module or executing the host discard command to discard the data in the flash memory module, update all The first host and flash memory address comparison sub-table and the intermediate information temporarily stored in the random access memory; and in the table update procedure, the third host temporarily stored in the random access memory A host and flash memory address comparison sub-table is written into the system block in the flash memory module, and the second host and flash memory address comparison sub-table is updated based on the intermediate information temporarily stored in the random access memory. And write the updated second host and flash memory address comparison table into the system block in the flash memory module. 如請求項1所述的更新主機與閃存位址對照表的方法,其中,所述中間資訊儲存在當前塊的閃存與主機位址對照表之中,所述方法包含:在執行所述主機寫入命令時,更新所述隨機存取記憶體中暫存的所述當前塊的所述閃存與主機位址對照表,用以儲存所述當前塊中的多個寫入頁面對應於多個邏輯位址的對照資訊,其中,所述多個邏輯位址包含關聯於所述第一主機與閃存位址對照子表的第一邏輯位址和關聯於所述第二主機與閃存位址對照子表的第二邏輯位址;針對所述第一邏輯位址,更新所述第一主機與閃存位址對照子表以儲存所述第一邏輯位址對應於哪個實體位址的對照資訊,以及 將所述當前塊的所述閃存與主機位址對照表中的相應更新旗標設為第一值;以及針對所述第二邏輯位址,將所述當前塊的所述閃存與主機位址對照表中的相應更新旗標設為第二值。 The method for updating the host and flash memory address comparison table as described in claim 1, wherein the intermediate information is stored in the flash memory and host address comparison table of the current block, and the method includes: executing the host write When a command is entered, update the flash memory and host address comparison table of the current block temporarily stored in the random access memory to store multiple write pages in the current block corresponding to multiple logical Comparison information of addresses, wherein the plurality of logical addresses include a first logical address associated with the first host and flash memory address comparison subtable and a first logical address associated with the second host and flash memory address comparison subtable. the second logical address of the table; for the first logical address, update the first host and flash memory address comparison sub-table to store the comparison information of which physical address the first logical address corresponds to, and Set the corresponding update flag in the flash memory and host address comparison table of the current block to a first value; and for the second logical address, compare the flash memory and host address of the current block The corresponding update flag in the lookup table is set to the second value. 如請求項2所述的更新主機與閃存位址對照表的方法,其中,所述當前塊的所述閃存與主機位址對照表中的更新旗標用以指出相應對照資訊是否已經更新到所述第一主機與閃存位址對照子表。 The method for updating the host and flash memory address comparison table as described in claim 2, wherein the update flag in the flash memory and host address comparison table of the current block is used to indicate whether the corresponding comparison information has been updated to all The first host and flash memory address comparison subtable. 如請求項2所述的更新主機與閃存位址對照表的方法,其中,包含:在所述表格更新程序中,依據所述閃存與主機位址對照表中的每個設為所述第二值的所述更新旗標所關聯的對照資訊更新所述第二主機與閃存位址對照子表。 The method for updating the host and flash memory address comparison table as described in claim 2, which includes: in the table update procedure, setting the second The comparison information associated with the update flag of the value updates the second host and flash memory address comparison sub-table. 如請求項1所述的更新主機與閃存位址對照表的方法,其中,所述中間資訊儲存在丟棄佇列之中,所述方法包含:在執行所述主機丟棄命令時,判斷所述主機丟棄命令指出的邏輯位址是否關聯於所述第一主機與閃存位址對照子表;當所述主機丟棄命令指出的邏輯位址關聯於所述第一主機與閃存位址對照子表時,更新所述第一主機與閃存位址對照子表以儲存所述邏輯位址的使用者資料已經丟棄的資訊;以及當所述主機丟棄命令指出的邏輯位址關聯於所述第二主機與閃存位址對照子表時,將所述邏輯位址推入所述丟棄佇列,代表所述邏輯位址的使用者資料已經丟棄的資訊需要更新到所述第二主機與閃存位址對照子表。 The method for updating the host and flash memory address comparison table as described in claim 1, wherein the intermediate information is stored in a discard queue, and the method includes: when executing the host discard command, determining that the host Whether the logical address pointed out by the discard command is associated with the first host and flash memory address comparison sub-table; when the logical address pointed out by the host discard command is associated with the first host and flash memory address comparison sub-table, Update the first host and flash memory address comparison table to store information that the user data of the logical address has been discarded; and when the logical address indicated by the host discard command is associated with the second host and flash memory When the address comparison subtable is used, the logical address is pushed into the discard queue, and the information representing that the user data of the logical address has been discarded needs to be updated to the second host and flash memory address comparison subtable. . 如請求項5所述的更新主機與閃存位址對照表的方法,包含:在所述表格更新程序中,依據所述丟棄佇列中的所述邏輯位址更新所述第二主機與閃存位址對照子表。 The method of updating the host and flash memory address comparison table as described in claim 5, including: in the table update procedure, updating the second host and flash memory bits according to the logical address in the discard queue. Address comparison subtable. 一種電腦程式產品,包含程式碼,其中,當處理單元執行所述程式碼時,實施如請求項1至6中任一項所述的更新主機與閃存位址對照表的方法。 A computer program product includes program code, wherein when the processing unit executes the program code, the method for updating the host and flash memory address comparison table as described in any one of claims 1 to 6 is implemented. 一種更新主機與閃存位址對照表的裝置,包含:隨機存取記憶體;閃存介面,耦接閃存模組;以及處理單元,耦接所述隨機存取記憶體和所述閃存介面,用於在所述隨機存取記憶體中配置空間給第一主機與閃存位址對照子表,以及給用以更新所述閃存模組中的第二主機與閃存位址對照子表的中間資訊;在執行主機寫入命令以寫入資料到所述閃存模組時或者執行主機丟棄命令以丟棄所述閃存模組中的資料時,更新所述隨機存取記憶體中暫存的所述第一主機與閃存位址對照子表和所述中間資訊;以及在表格更新程序中,將所述隨機存取記憶體中暫存的所述第一主機與閃存位址對照子表寫入所述閃存模組中的系統塊,依據所述隨機存取記憶體中暫存的所述中間資訊更新所述第二主機與閃存位址對照子表並且將更新後的第二主機與閃存位址對照子表寫入所述閃存模組中的所述系統塊。 A device for updating a host and flash memory address comparison table, including: a random access memory; a flash memory interface coupled to a flash memory module; and a processing unit coupled to the random access memory and the flash memory interface for Configuring space in the random access memory for the first host and flash memory address comparison sub-table, and providing intermediate information for updating the second host and flash memory address comparison sub-table in the flash memory module; in When executing a host write command to write data to the flash memory module or executing a host discard command to discard data in the flash memory module, update the first host temporarily stored in the random access memory. and the flash memory address comparison subtable and the intermediate information; and in the table update procedure, write the first host and the flash memory address comparison subtable temporarily stored in the random access memory into the flash memory module. The system block in the group updates the second host and flash memory address comparison sub-table based on the intermediate information temporarily stored in the random access memory and compares the updated second host and flash memory address comparison sub-table Write to the system block in the flash memory module. 如請求項8所述的更新主機與閃存位址對照表的裝置,其中,所述中間資訊儲存在當前塊的閃存與主機位址對照表之中,其中,所述處理單元在執行所述主機寫入命令時,更新所述隨機存 取記憶體中暫存的所述當前塊的所述閃存與主機位址對照表,用以儲存所述當前塊中的多個寫入頁面對應於多個邏輯位址的對照資訊,其中,所述多個邏輯位址包含關聯於所述第一主機與閃存位址對照子表的第一邏輯位址和關聯於所述第二主機與閃存位址對照子表的第二邏輯位址;針對所述第一邏輯位址,更新所述第一主機與閃存位址對照子表以儲存所述第一邏輯位址對應於哪個實體位址的對照資訊,以及將所述當前塊的所述閃存與主機位址對照表中的相應更新旗標設為第一值;以及針對所述第二邏輯位址,將所述當前塊的所述閃存與主機位址對照表中的相應更新旗標設為第二值。 The device for updating the host and flash memory address comparison table as described in request item 8, wherein the intermediate information is stored in the flash memory and host address comparison table of the current block, and wherein the processing unit executes the host When a command is written, the random memory is updated Obtain the flash memory and host address comparison table of the current block temporarily stored in the memory to store comparison information corresponding to multiple logical addresses of multiple write pages in the current block, wherein: The plurality of logical addresses include a first logical address associated with the first host and flash memory address comparison sub-table and a second logical address associated with the second host and flash memory address comparison sub-table; for The first logical address, updating the first host and flash memory address comparison sub-table to store the comparison information of which physical address the first logical address corresponds to, and converting the current block of the flash memory The corresponding update flag in the host address comparison table is set to a first value; and for the second logical address, the corresponding update flag in the flash memory and host address comparison table of the current block is set to a first value. is the second value. 如請求項9所述的更新主機與閃存位址對照表的裝置,其中,所述當前塊的所述閃存與主機位址對照表中的更新旗標用以指出相應對照資訊是否已經更新到所述第一主機與閃存位址對照子表。 The device for updating the host and flash memory address comparison table as described in claim 9, wherein the update flag in the flash memory and host address comparison table of the current block is used to indicate whether the corresponding comparison information has been updated to the The first host and flash memory address comparison subtable. 如請求項9所述的更新主機與閃存位址對照表的裝置,其中,所述處理單元在所述表格更新程序中,依據所述閃存與主機位址對照表中的每個設為所述第二值的所述更新旗標所關聯的對照資訊更新所述第二主機與閃存位址對照子表。 The device for updating the host and flash memory address comparison table as described in claim 9, wherein the processing unit, in the table update procedure, sets the value of each address comparison table between the flash memory and the host to the The comparison information associated with the update flag of the second value updates the second host and flash memory address comparison subtable. 如請求項8所述的更新主機與閃存位址對照表的裝置,其中,所述中間資訊儲存在丟棄佇列之中,其中,所述處理單元在執行所述主機丟棄命令時,判斷所述主機丟棄命令指出的邏輯位址是否關聯於所述第一主機與閃存位址對照子表;當所述主機丟棄命令指出的邏輯位址關聯於所述第一主機與閃存位址對照子表時,更新所述第一主機與閃存位址對照子表以儲存所述邏輯位址的使用者資料已經丟棄的資訊;以 及當所述主機丟棄命令指出的邏輯位址關聯於所述第二主機與閃存位址對照子表時,將所述邏輯位址推入所述丟棄佇列,代表所述邏輯位址的使用者資料已經丟棄的資訊需要更新到所述第二第二主機與閃存位址對照子表。 The device for updating the host and flash memory address comparison table as described in request item 8, wherein the intermediate information is stored in a discard queue, and wherein the processing unit determines that when executing the host discard command, Whether the logical address pointed out by the host discard command is associated with the first host and flash memory address comparison sub-table; when the logical address pointed out by the host discard command is associated with the first host and flash memory address comparison sub-table , update the first host and flash memory address comparison table to store the information that the user data of the logical address has been discarded; to And when the logical address pointed out by the host discard command is associated with the second host and flash memory address comparison sub-table, push the logical address into the discard queue, representing the use of the logical address The discarded information of the host data needs to be updated to the second host and flash memory address comparison table. 如請求項12所述的更新主機與閃存位址對照表的裝置,其中,所述處理單元在所述表格更新程序中,依據所述丟棄佇列中的所述邏輯位址更新所述第二主機與閃存位址對照子表。 The device for updating the host and flash memory address comparison table as described in claim 12, wherein the processing unit updates the second logical address according to the logical address in the discard queue in the table update procedure. Host and flash memory address comparison table.
TW110143439A 2021-11-23 Method and computer program product and apparatus for updating host-to-flash address mapping table TWI835027B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW110143439A TWI835027B (en) 2021-11-23 Method and computer program product and apparatus for updating host-to-flash address mapping table

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW110143439A TWI835027B (en) 2021-11-23 Method and computer program product and apparatus for updating host-to-flash address mapping table

Publications (2)

Publication Number Publication Date
TW202321921A TW202321921A (en) 2023-06-01
TWI835027B true TWI835027B (en) 2024-03-11

Family

ID=

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160124649A1 (en) 2014-10-30 2016-05-05 ScaleFlux METHOD TO REDUCE FLASH MEMORY IOs WITH HOST MAINTAINED ADDRESS MAPPING TABLE

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160124649A1 (en) 2014-10-30 2016-05-05 ScaleFlux METHOD TO REDUCE FLASH MEMORY IOs WITH HOST MAINTAINED ADDRESS MAPPING TABLE

Similar Documents

Publication Publication Date Title
US8321639B2 (en) Command tracking for direct access block storage devices
TWI428917B (en) Flash memory device, data storage system, and operation method of a data storage system
TWI678618B (en) Method and apparatus for performing operations to namespaces of a flash memory device
US10296250B2 (en) Method and apparatus for improving performance of sequential logging in a storage device
TWI766207B (en) Method and computer program product for multi-namespace data access
US20220100425A1 (en) Storage device, operating method of storage device, and operating method of computing device including storage device
US11537328B2 (en) Method and apparatus for executing host commands
TWI835027B (en) Method and computer program product and apparatus for updating host-to-flash address mapping table
CN113495850B (en) Method, apparatus and computer readable storage medium for managing garbage collection program
KR20220091362A (en) Utilizing nand buffer for dram-less multilevel cell programming
TWI749490B (en) Computer program product and method and apparatus for programming flash administration tables
TW202321921A (en) Method and computer program product and apparatus for updating host-to-flash address mapping table
TWI805505B (en) Method and computer program product and apparatus for scheduling and executing host data-update commands
TWI818762B (en) Method and computer program product and apparatus for scheduling and executing host data-update commands
TWI822516B (en) Method and computer program product and apparatus for executing host write commands
TWI774277B (en) Method and apparatus for executing host commands
TWI810876B (en) Method and computer program product and apparatus for data access in response to host discard commands
TWI740446B (en) Computer program product and method and apparatus for managing garbage collection (gc) processes
KR20210018570A (en) Controller, operating method thereof and storage device including the same
TWI822517B (en) Method and computer program product and apparatus for executing host write commands
TWI758745B (en) Computer program product and method and apparatus for scheduling executions of host commands
CN116149540A (en) Method for updating host and flash memory address comparison table, computer readable storage medium and device
US11307766B2 (en) Apparatus and method and computer program product for programming flash administration tables
TWI795680B (en) Method and apparatus for data reads in host performance acceleration mode
TWI787110B (en) Method and apparatus for programming data into flash memory