TWI737031B - Method and computer program product for reading data fragments of a page on multiple planes - Google Patents

Method and computer program product for reading data fragments of a page on multiple planes Download PDF

Info

Publication number
TWI737031B
TWI737031B TW108140180A TW108140180A TWI737031B TW I737031 B TWI737031 B TW I737031B TW 108140180 A TW108140180 A TW 108140180A TW 108140180 A TW108140180 A TW 108140180A TW I737031 B TWI737031 B TW I737031B
Authority
TW
Taiwan
Prior art keywords
read
data
command
page
plane
Prior art date
Application number
TW108140180A
Other languages
Chinese (zh)
Other versions
TW202038097A (en
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 慧榮科技股份有限公司
Publication of TW202038097A publication Critical patent/TW202038097A/en
Application granted granted Critical
Publication of TWI737031B publication Critical patent/TWI737031B/en

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/061Improving I/O performance
    • 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
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

Abstract

A computer program product being loaded and executed by a processing unit, includes program code to: provide a scheduling table; arrange each memory access instruction of a command queue into a cell of the scheduling table according to its physical address information; select two or more memory access instructions for one logical unit number (LUN) according to the content of the scheduling table; direct a flash interface to complete a multi-page read lite (MPR-lite) operation for reading data requested by the selected memory access instructions from the LUN; and reply the read data to a host.

Description

多平面上頁面的片段資料讀取方法及電腦程式產品 Method for reading fragment data of pages on multiple planes and computer program product

本發明涉及快閃記憶裝置,特別指一種多平面上頁面的片段資料讀取方法及電腦程式產品。 The invention relates to a flash memory device, in particular to a method for reading fragment data of pages on multiple planes and a computer program product.

快閃記憶裝置通常分為NOR快閃記憶裝置與NAND快閃記憶裝置。NOR快閃記憶裝置為隨機存取裝置,主機(Host)可於位址腳位上提供任何存取NOR快閃記憶裝置的位址,並及時地從NOR快閃記憶裝置的資料腳位上獲得儲存於該位址上的資料。相反地,NAND快閃記憶裝置並非隨機存取,而是序列存取。NAND快閃記憶裝置無法像NOR快閃記憶裝置一樣,可以存取任何隨機位址,主機反而需要寫入序列的位元組(Bytes)的值到NAND快閃記憶裝置中,用以定義請求命令(Command)的類型(如,讀取、寫入、抹除等),以及用在此命令上的位址。位址可指向一個頁面(快閃記憶裝置中寫入作業的最小資料塊)或一個區塊(快閃記憶裝置中抹除作業的最小資料塊)。 Flash memory devices are generally divided into NOR flash memory devices and NAND flash memory devices. The NOR flash memory device is a random access device. The host can provide any address for accessing the NOR flash memory device on the address pin, and obtain it from the data pin of the NOR flash memory device in time Data stored at that address. On the contrary, NAND flash memory devices are not random access, but serial access. NAND flash memory devices cannot access any random address like NOR flash memory devices. Instead, the host needs to write serial bytes (Bytes) into the NAND flash memory device to define the request command (Command) type (for example, read, write, erase, etc.), and the address used for this command. The address can point to a page (the smallest data block for writing in a flash memory device) or a block (the smallest data block for erasing in a flash memory device).

傳統的NAND快閃記憶體(NAND flash memory)提供的讀取命令,通常讓控制器能夠讀取一整個跨平面頁面的資料。然而,隨著NAND快閃記憶裝置中的跨平面頁面的長度(如16KB)已經超過主機執行的作業系統所管理的邏輯區塊位址(Logical Block Address LBA)的資料長度(如4KB),傳統每次都要讀取一整個跨平面頁面資料的讀取操作於處理主機的短資料讀取命令時可能降低NAND 快閃記憶體的整體效能。因此,本發明提出一種多平面上頁面的片段資料讀取方法及電腦程式產品,針對擁有較長跨平面頁面的NAND快閃記憶體進行最佳化的資料讀取操作。 The read command provided by the traditional NAND flash memory usually allows the controller to read an entire cross-plane page data. However, as the length of the cross-plane page in the NAND flash memory device (such as 16KB) has exceeded the data length (such as 4KB) of the logical block address (Logical Block Address LBA) managed by the operating system executed by the host, the traditional A read operation that reads an entire cross-plane page data every time may reduce NAND when processing short data read commands from the host. The overall performance of flash memory. Therefore, the present invention provides a method and computer program product for reading fragment data of pages on multiple planes to perform optimized data reading operations for NAND flash memory with longer span pages.

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

本發明提出一種多平面上頁面的片段資料讀取方法,該方法由處理單元於載入並執行韌體或軟體的程式碼時實施,包含:提供排程資料表;將命令佇列中的每一記憶體操作命令依據其實體位址資訊安排到排程資料表中的儲存格;依據排程資料表的內容為一個邏輯單元號挑選二個或以上的記憶體操作命令;驅動閃存介面來完成多頁面讀取精簡操作,從該邏輯單元號讀取該挑選的記憶體操作命令請求的資料;以及回覆讀取的資料給主機。 The present invention provides a method for reading fragment data of pages on multiple planes. The method is implemented by a processing unit when loading and executing firmware or software code, including: providing a schedule data table; A memory operation command is arranged into a cell in the scheduling table according to its physical address information; two or more memory operation commands are selected for a logical unit number according to the content of the scheduling table; the flash memory interface is driven to complete multiple operations. Page read simplified operation, read the data requested by the selected memory operation command from the logical unit number; and reply the read data to the host.

本發明提出一種多平面上頁面的片段資料讀取的電腦程式產品,包含用於實施如上步驟的程式碼。 The present invention provides a computer program product for reading fragment data of pages on multiple planes, including program codes for implementing the above steps.

上述實施例的優點之一,通過使用排程資料表將兩個或兩個以上的片段讀取操作搜集成為一個MPR-lite操作,可以提升短資料讀取的效能。 One of the advantages of the above embodiment is that by using the scheduling data table to collect two or more fragment reading operations into one MPR-lite operation, the performance of short data reading can be improved.

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

100:快閃儲存系統架構 100: Flash storage system architecture

110:主機 110: host

130:控制器 130: Controller

131:主機介面 131: Host Interface

133-0、133-1:處理器核心 133-0, 133-1: processor core

135:命令佇列 135: Command Queue

136:資料快取 136: data cache

137:閃存介面 137: Flash memory interface

138:DMA控制器 138: DMA controller

139:資料緩存器 139: data buffer

150:LUNs 150: LUNs

150#0~150#11:LUN 150#0~150#11:LUN

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

CE#0~CE#2:晶片致能訊號 CE#0~CE#2: Chip enable signal

CQT、CQH:指標 CQT, CQH: indicators

139#0:存取子介面 139#0: Access sub-interface

410#0~470#m:平面 410#0~470#m: plane

P#0~P#(n):頁面 P#0~P#(n): page

490#1~490#n:超頁面 490#1~490#n: Super page

tWB、tRSNAP、tDBSY、tPR:時間區間 t WB , t RSNAP , t DBSY , t PR : time interval

900:排程資料表 900: Schedule data table

S1010~S1090:方法步驟 S1010~S1090: method steps

1100、1200:MPR-Lite排程資料表 1100, 1200: MPR-Lite scheduling data table

圖1為依據本發明實施例的快閃儲存系統架構圖。 FIG. 1 is an architecture diagram of a flash storage system according to an embodiment of the present invention.

圖2為閃存介面與邏輯單元號(Logical Unit Number LUN)的連接示意圖。 Figure 2 is a schematic diagram of the connection between a flash memory interface and a logical unit number (Logical Unit Number LUN).

圖3為命令佇列示意圖。 Figure 3 is a schematic diagram of the command queue.

圖4為LUN的資料組織示意圖。 Figure 4 is a schematic diagram of LUN data organization.

圖5為閃存介面操作的片段讀取的時序圖。 FIG. 5 is a timing diagram of segment reading of the flash interface operation.

圖6為頁面中的區段示意圖。 Figure 6 is a schematic diagram of the sections on the page.

圖7為閃存介面操作的多頁面讀取精簡的時序圖。 FIG. 7 is a simplified timing diagram of multi-page reading of flash memory interface operation.

圖8為LUN中的平面及跨平面頁面的組織示意圖。 Figure 8 is a schematic diagram of the organization of the plane and cross-plane pages in the LUN.

圖9為依據一些實施方式的記憶體操作命令排程示意圖。 FIG. 9 is a schematic diagram of memory operation command scheduling according to some embodiments.

圖10為依據本發明實施例的記憶體操作命令排程方法的流程圖。 FIG. 10 is a flowchart of a method for scheduling memory operation commands according to an embodiment of the present invention.

圖11及圖12為依據本發明實施例的記憶體操作命令排程示意圖。 11 and 12 are schematic diagrams of memory operation command scheduling according to an embodiment of the present invention.

圖13及圖14為依據本發明實施例的記憶體操作命令挑選示意圖。 13 and 14 are schematic diagrams of selecting memory operation commands according to an embodiment of the present invention.

以下說明為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。 The following descriptions are preferred implementations for completing the invention, and their purpose is to describe the basic spirit of the invention, but not to limit the invention. The actual content of the invention must refer to the scope of the claims that follow.

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

於權利要求中使用如”第一”、”第二”、”第三”等詞是用來修飾權利要求中的元件,並非用來表示之間具有優先順序,前置關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。 Words such as "first", "second", and "third" used in the claims are used to modify the elements in the claims, and are not used to indicate that there is a precedence, prerequisite relationship, or an element. Prior to another element, or the chronological order of execution of method steps, is only used to distinguish elements 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 other elements, and intermediate elements may appear. Conversely, when an element is described as being "directly connected" or "directly coupled" to another element, there are no intervening elements. Other terms used to describe the relationship between elements can also be interpreted in a similar manner, such as "between" and "directly between", or "adjacent" as opposed to "directly abutting" and so on.

參考圖1,快閃儲存系統架構100包含主機(Host)110、控制器(Controller,或稱裝置端Device)130及邏輯單元號(Logical Block Number,LUN)150。此系統架構可實施於個人電腦、筆記型電腦 (Laptop PC)、平板電腦、手機、數位相機、數位攝影機等電子產品。控制器130可包含多核處理器133,為單一運算元件,搭配兩個用於載入韌體或軟體模組的程式碼的獨立處理器核心133-0及133-1。處理器核心133-0可通過主機介面131使用通用快閃記憶儲存(Universal Flash Storage,UFS)、快速非揮發記憶體(Non-Volatile Memory Express,Nvme)、通用序列匯流排(Universal Serial Bus,USB)、先進技術附著(Advanced Technology Attachment,ATA)、序列先進技術附著(Serial Advanced Technology Attachment,SATA)、快速周邊元件互聯(Peripheral Component Interconnect Express,PCI-E)或其他介面協定,與主機110彼此通信。處理器核心133-1可通過閃存介面137使用雙倍資料率(Double Data Rate,DDR)通訊協定,例如,開放NAND快閃(Open NAND Flash Interface,ONFI)、雙倍資料率開關(DDR Toggle)或其他介面協定,與LUN 110彼此通信。 1, the flash storage system architecture 100 includes a host (Host) 110, a controller (Controller, or Device) 130, and a logical block number (LUN) 150. This system architecture can be implemented on personal computers and laptops (Laptop PC), tablet computers, mobile phones, digital cameras, digital cameras and other electronic products. The controller 130 may include a multi-core processor 133, which is a single computing element, with two independent processor cores 133-0 and 133-1 for loading firmware or software module codes. The processor core 133-0 can use Universal Flash Storage (UFS), Fast Non-Volatile Memory Express (Nvme), and Universal Serial Bus (USB) through the host interface 131. ), Advanced Technology Attachment (ATA), Serial Advanced Technology Attachment (SATA), Peripheral Component Interconnect Express (PCI-E) or other interface protocols to communicate with the host 110 . The processor core 133-1 can use the Double Data Rate (DDR) communication protocol through the flash memory interface 137, for example, Open NAND Flash Interface (ONFI), Double Data Rate Switch (DDR Toggle) Or other interface protocols to communicate with LUN 110.

邏輯單元號(Logical Unit Number,LUN)150提供大量的儲存空間,通常是數百Gigabytes,甚至是Terabytes,可用於儲存大量的使用者資料,例如高解析度圖片、影片等。LUN 150中包含控制電路以及記憶體陣列,記憶體陣列中的記憶單元可為三層式單元(Triple Level Cells,TLCs)或四層式單元(Quad-Level Cells,QLCs)。資料緩存器(Data Buffer)139可用於緩存從LUN 150讀取並即將敲出給主機110的使用者資料。參考圖2,閃存介面137可包含四個輸出入通道(I/O Channels,以下簡稱通道CH),包括通道CH#0至CH#3,每一個通道CH連接三個LUN,例如,通道CH#0連接LUN150#0、150#4及150#8。處理器核心133-1可驅動閃存介面137發出致能訊號CE#0至CE#2中的一個來致能LUN 150#0至150#3、LUN 150#4至150#7、或LUN 150#8至150#11,接著以並行的方式從致能的LUN讀取使用者資料。為了簡化說明,在下述僅以通道 CH#0至CH#1以及CE#0至CE#1來致能LUN 150#0~1以及LUN 150#4~5為例進行說明,但不以此為限。 The Logical Unit Number (LUN) 150 provides a large amount of storage space, usually hundreds of Gigabytes, or even Terabytes, which can be used to store a large amount of user data, such as high-resolution pictures, videos, and so on. The LUN 150 includes a control circuit and a memory array. The memory cells in the memory array can be triple level cells (TLCs) or quad-level cells (QLCs). The data buffer (Data Buffer) 139 can be used to buffer the user data read from the LUN 150 and will be knocked out to the host 110. Referring to Figure 2, the flash memory interface 137 may include four I/O Channels (hereinafter referred to as channel CH), including channels CH#0 to CH#3, and each channel CH is connected to three LUNs, for example, channel CH# 0 is connected to LUN150#0, 150#4, and 150#8. The processor core 133-1 can drive the flash memory interface 137 to send one of the enabling signals CE#0 to CE#2 to enable LUN 150#0 to 150#3, LUN 150#4 to 150#7, or LUN 150# 8 to 150#11, and then read user data from the enabled LUNs in parallel. In order to simplify the description, only the channel CH#0 to CH#1 and CE#0 to CE#1 are used to enable LUN 150#0~1 and LUN 150#4~5 as examples, but not limited to this.

控制器130可配置命令佇列135,用於儲存多個快閃記憶體操作命令,快閃記憶體操作命令例如是讀取頁面(Read Page)命令、頁面編程(Program Page)命令、抹寫區塊(Erase Block)命令等等。快閃記憶體操作命令可以關聯於主機110發出的但尚未處理的主機命令(Host Commands),例如是主機讀取命令、主機寫入命令等等,亦可以是控制器130所自主發出的命令。 The controller 130 can be configured with a command queue 135 for storing a plurality of flash memory operation commands. The flash memory operation commands are, for example, a read page (Read Page) command, a page programming (Program Page) command, and an erase area Block (Erase Block) commands and so on. The flash memory operation commands can be associated with host commands (Host Commands) issued by the host 110 but not yet processed, such as host read commands, host write commands, etc., or can be commands independently issued by the controller 130.

命令佇列135可實施於靜態隨機存取記憶體(Static Random Access Memory,SRAM),包含多筆項目(Entry)的集合。命令佇列135中的每一筆項目可儲存一個快閃記憶體操作命令及相關資訊。集合中的快閃記憶體操作命令可依據到達時間依序存放。集合的操作基本原則是由處理器核心133-0從結束位置(如指標CQT所指的位置)新增快閃記憶體操作命令(可稱為入列),並且由處理器核心133-1從開始位置(如指標CQH所指的位置)移除快閃記憶體操作命令(可稱為出列)。然而,為了最佳化資料讀取操作,第一個新增至命令佇列135的快閃記憶體操作命令,不一定會是第一個被移出的。另外,控制器130亦可使用堆疊(Stack)以儲存上述的快閃記憶體操作命令,並不以此為限。 The command queue 135 can be implemented in a static random access memory (SRAM), and includes a collection of multiple entries. Each item in the command queue 135 can store a flash memory operation command and related information. The flash memory operation commands in the set can be stored in order according to the arrival time. The basic principle of the operation of the set is that the processor core 133-0 adds a flash memory operation command (which can be called enqueue) from the end position (as indicated by the index CQT), and the processor core 133-1 The starting position (as indicated by the indicator CQH) removes the flash memory operation command (which can be called dequeue). However, in order to optimize the data read operation, the first flash memory operation command added to the command queue 135 may not be the first to be removed. In addition, the controller 130 can also use a stack to store the aforementioned flash memory operation commands, and it is not limited thereto.

LUN 150包含多個平面(Planes),參考圖4,以LUN 150#0為例,其包含4個平面(Planes),包括:平面410至470。每一平面包含多個物理區塊(Physical Blocks,簡稱為區塊),以平面410為例,其包含區塊410#0~m,m為正整數。每個區塊包含多個頁面(Pages),以區塊410#0為例,其包含頁面P#0至P#n,n為正整數。每個頁面P包含多個NAND記憶體單元(Memory Cells),並且NAND記憶體單元可為三層式單元或四層式單元。於一些實施例中,當每一個NAND記憶體單元為三層式單元而可記錄8個狀態時,一個字元線 可包含頁面P#0(可稱為最低位元頁面,MSB page)、頁面P#1(可稱為中間位元頁面,CSB,Center Significant Bit page)及頁面P#2(可稱為最高位元頁面,LSB page)。當每一個NAND記憶體單元為四層式單元而可記錄16個狀態時,除了MSB、CSB以及LSB頁面之外,更包括TSB(可稱為頂部位元,TSB,Top Significant Bit)頁面。同一LUN 150中的不同平面中一個的區塊可虛擬形成大區塊(Big Block),不同LUN 150中的大區塊(Big Block)可虛擬形成超級區塊(Super Block)。 LUN 150 includes multiple planes (Planes). Referring to FIG. 4, taking LUN 150#0 as an example, it includes four planes (Planes), including planes 410 to 470. Each plane includes multiple physical blocks (Physical Blocks, referred to as blocks). Taking the plane 410 as an example, it includes blocks 410#0~m, where m is a positive integer. Each block includes multiple pages (Pages). Taking block 410#0 as an example, it includes pages P#0 to P#n, where n is a positive integer. Each page P includes a plurality of NAND memory cells (Memory Cells), and the NAND memory cell can be a three-layer cell or a four-layer cell. In some embodiments, when each NAND memory cell is a three-layer cell and can record 8 states, one word line Can include page P#0 (can be called the lowest bit page, MSB page), page P#1 (can be called the middle bit page, CSB, Center Significant Bit page) and page P#2 (can be called the highest bit page) Meta page, LSB page). When each NAND memory cell is a four-layer cell and can record 16 states, in addition to MSB, CSB, and LSB pages, it also includes TSB (which can be called top bit, TSB, Top Significant Bit) page. One block in different planes in the same LUN 150 can virtually form a big block, and big blocks in different LUNs 150 can virtually form a super block.

資料快取136以及/或資料緩存器(Data Buffer)139可儲存資料讀取時所需查找的邏輯-物理映射表(Logical-Physical Mapping Table,L2P映射表),L2P映射表記錄每一筆資料的邏輯位址與物理位址的映射資訊。資料快取136可實施於SRAM,資料緩存器139可實施於動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)中的預先分配區域。 The data cache 136 and/or the data buffer (Data Buffer) 139 can store the logical-physical mapping table (Logical-Physical Mapping Table, L2P mapping table) that needs to be looked up when data is read. The L2P mapping table records the data of each piece of data. Mapping information between logical address and physical address. The data cache 136 can be implemented in SRAM, and the data buffer 139 can be implemented in a pre-allocated area in a dynamic random access memory (DRAM).

雖然每個區塊或頁面中的記憶體單元為TLCs或QLCs,但是,控制器130可採用單層式單元(Single Logical Cells,SLCs)模式以將資料編程至區塊或頁面中,用以提升資料讀取及資料編程的速度。為了方便區塊編程模式的管理,控制器130較佳建立並維護實體組態資料表(Physical Configuration Table)以記錄每一區塊的編程模式,即預設模式(TLC或QLC)或SLC模式,並將實體組態資料表儲存至資料快取136中。於資料讀取操作中,控制器130可通過搜索實體組態資料表來辨認每個區塊或頁面的編程模式,如此一來,再以適當的讀取方式來讀取區塊或頁面的資料。 Although the memory cells in each block or page are TLCs or QLCs, the controller 130 can use a single-level cell (Single Logical Cells, SLCs) mode to program data into the block or page to improve The speed of data reading and data programming. In order to facilitate the management of the block programming mode, the controller 130 preferably creates and maintains a physical configuration table (Physical Configuration Table) to record the programming mode of each block, that is, the default mode (TLC or QLC) or the SLC mode. And save the entity configuration data table to the data cache 136. In the data reading operation, the controller 130 can identify the programming mode of each block or page by searching the physical configuration data table, and in this way, read the data of the block or page in an appropriate reading method .

控制器130可輸出讀取頁面命令,用以讀取LUN 150中一個平面中的一個區塊的一個頁面,亦可輸出讀取頁面多平面(Read Page Multi-plane)命令以讀取不同平面的一個區塊的一個頁面的資料。然而,有時候主機110並不需要一整個頁面資料,而是僅需要一個頁面中 的4KB資料。此時,控制器130可利用片段讀取(Snap Read)命令以讀取一個頁面中的部分資料。關於片段讀取操作,參考圖5。波型510顯示耦接於LUN 150及閃存介面137間的資料線DQ[7:0]的時脈類型,以1個”CMD”時脈指出從閃存介面137傳送的主要命令,5個”Addr”時脈指出從閃存介面137傳送想要讀取的LUN 137的實體位址,再以1個”CMD”時脈指出從閃存介面137傳送的確認(Confirm)命令,最後,”DOUT”表示從LUN 150所輸出的資料。波型520為波型510的示範片段讀取命令,主要命令為00h,確認命令為20h,因此,LUN 150判斷此操作命令為片段讀取命令,為讀取指定頁面(實體位址)的部分頁面資料。 The controller 130 can output a read page command to read a page of a block in a plane of the LUN 150, and can also output a read page multi-plane command to read different planes. Data of one page of one block. However, sometimes the host 110 does not need a whole page of data, but only 4KB of data in one page. At this time, the controller 130 can use a Snap Read command to read part of the data in a page. Regarding the fragment read operation, refer to Figure 5. Waveform 510 shows the clock type of the data line DQ[7:0] coupled between LUN 150 and flash memory interface 137, with 1 "CMD" clock indicating the main command sent from flash memory interface 137, and 5 "Addr" The clock indicates the physical address of LUN 137 to be read from the flash memory interface 137, and then a "CMD" clock indicates the Confirm command sent from the flash memory interface 137, and finally, "D OUT " indicates Data output from LUN 150. Waveform 520 is an exemplary fragment read command of waveform 510. The main command is 00h and the confirmation command is 20h. Therefore, LUN 150 judges that this operation command is a fragment read command, which reads the specified page (physical address). Page information.

部分頁面資料例如為16KB頁面資料中的8KB資料,參考圖6,其中,8KB資料可選自頁面中的三種不同的區段:前8KB區段625,中間8KB區段645,及後8KB區段665,每一8KB區段的長度較佳大於等於8KB。另外,部分頁面資料也可例如為16KB頁面資料中的4KB資料,即將16KB頁面區分成第一4KB區段、第二4KB區段、第三4KB區段以及第四4KB區段,每一4KB區段的長度較佳大於等於4KB。 Part of the page data is, for example, 8KB data in a 16KB page data. Refer to Figure 6, where the 8KB data can be selected from three different sections in the page: the first 8KB section 625, the middle 8KB section 645, and the last 8KB section 665. The length of each 8KB section is preferably greater than or equal to 8KB. In addition, part of the page data can also be, for example, 4KB data in a 16KB page data, that is, a 16KB page is divided into a first 4KB section, a second 4KB section, a third 4KB section, and a fourth 4KB section, each 4KB section The length of the segment is preferably greater than or equal to 4KB.

另外,由於LUN 150包含多個平面(Planes),因此,控制器130可輸出多頁面讀取精簡(Multi-Page Read Lite,MPR-Lite)命令,用以讀取LUN 150中多個平面中的頁面上的片段資料,參考圖6,例如:平面810及830的頁面P#0中的前8KB區段625,平面830及850的頁面P#1的後8KB區段665。MPR-Lite命令可提升片段資料的讀取效能。 In addition, because the LUN 150 includes multiple planes (Planes), the controller 130 can output a Multi-Page Read Lite (MPR-Lite) command to read multiple planes in the LUN 150. Refer to FIG. 6 for the fragment information on the page, for example: the first 8KB section 625 in the page P#0 of the planes 810 and 830, and the last 8KB section 665 of the page P#1 in the planes 830 and 850. MPR-Lite command can improve the reading performance of fragment data.

參考圖1,以資料讀取為例,處理器核心133-0可通過主機介面131取得來自主機110的資料讀取命令,其中,資料讀取命令提供目標資料的邏輯位址。處理器核心133-0藉由查找L2P映射表以及邏輯位址可取得目標資料在LUN 150中的頁面位置(實體位址),並藉由實體組態資料表可得知目標資料的編程模式。接著,處理器核心133-0產生快閃記憶體操作命令至命令佇列135,其中,快閃記憶體操作 命令包括目標資料的實體位址。 1, taking data reading as an example, the processor core 133-0 can obtain a data reading command from the host 110 through the host interface 131, where the data reading command provides the logical address of the target data. The processor core 133-0 can obtain the page position (physical address) of the target data in the LUN 150 by looking up the L2P mapping table and the logical address, and can know the programming mode of the target data from the physical configuration data table. Then, the processor core 133-0 generates a flash memory operation command to the command queue 135, where the flash memory operation The command includes the physical address of the target data.

控制器130可利用命令佇列135以儲存多個快閃記憶體操作命令,例如:64個快閃記憶體操作命令。處理器核心133-1可在資料快取136中建立並維護排程表(Scheduling Table)900以及/或待命表(Standby Table)910,用以排序命令佇列135中快閃記憶體操作命令,使得快閃記憶體操作命令的執行更具效率。參考圖9,例如,命令佇列135目前儲存13個讀取頁面命令,標號分別為”a”~”m”。處理器核心133-1將讀取特定LUN 150的讀取頁面命令記錄至排程表900中的特定欄位,例如,將讀取頁面命令”b”、”a”、”d”排入排程表900中,以分別讀取LUN 150#0、LUN 150#4以及LUN 150#1的頁面,如此一來,處理器核心133-1可以同步以及交錯(Interleaving)的操作方式將讀取頁面命令”b”、”a”、”d”輸出至LUN 150#0、LUN 150#4以及LUN 150#1。處理器核心133-1將讀取頁面命令”c”、”e”~”m”排入待命表,當排程表900中的讀取頁面命令”b”、”a”、”d”執行完畢之後,再將待命表中的讀取頁面命令”e”、”c”、”g”排入至排程表900。之後,再將待命表中的讀取頁面命令”j”、”f”、”k”排入至排程表900,最後,將待命表中的讀取頁面命令”i”、”m”排入至排程表900。因此,13個讀取頁面命令需要4個週期才能執行完畢。於一些實施方式,處理器核心133-1僅建立並維護排程表900,並將快閃記憶體操作命令依序儲存至排程表900,處理器核心133-1執行完第一列快閃記憶體操作命令後,繼續執行下一列快閃記憶體操作命令,以此類推。 The controller 130 can use the command queue 135 to store a plurality of flash memory operation commands, for example, 64 flash memory operation commands. The processor core 133-1 can create and maintain a Scheduling Table 900 and/or a Standby Table 910 in the data cache 136 to sort the flash memory operation commands in the command queue 135. Makes the execution of flash memory operation commands more efficient. Referring to FIG. 9, for example, the command queue 135 currently stores 13 read page commands, which are labeled "a" ~ "m". The processor core 133-1 records the page read command for reading a specific LUN 150 to a specific column in the schedule table 900, for example, arranges page read commands "b", "a", and "d" into the schedule table. In the schedule 900, the pages of LUN 150#0, LUN 150#4, and LUN 150#1 are read respectively. In this way, the processor core 133-1 can read the pages in a synchronous and interleaving operation mode. The commands "b", "a", and "d" are output to LUN 150#0, LUN 150#4, and LUN 150#1. The processor core 133-1 will read the page commands "c", "e" ~ "m" into the standby list, when the page read commands "b", "a", "d" in the schedule table 900 are executed After completion, the page read commands "e", "c", and "g" in the standby table are then arranged into the schedule table 900. After that, the page read commands "j", "f", and "k" in the standby table are placed into the schedule table 900, and finally, the page read commands "i", "m" in the standby table are arranged Enter the schedule 900. Therefore, 13 page read commands require 4 cycles to be executed. In some embodiments, the processor core 133-1 only creates and maintains the schedule 900, and sequentially stores the flash memory operation commands in the schedule 900, and the processor core 133-1 finishes executing the first row of flash After the memory operation command, continue to execute the next row of flash memory operation commands, and so on.

如果目標資料為一個頁面中的4KB或8KB資料時,則控制器130可利用命令佇列135以儲存片段讀取命令而非讀取頁面命令。或是,以MPR-Lite命令來執行命令佇列135中的片段讀取命令,即將多個片段讀取命令整合成一個MPR-Lite命令。當多個片段讀取命令整合成一個MPR-Lite命令時,控制器130需將多個片段讀取命令變更成多 個讀取頁面多平面命令,確認命令為32h,而最後一個片段讀取命令不變更,確認命令為20h,如此一來,控制器130不但可以同步以及交錯的操作方式來執行片段讀取命令,更可以增加片段讀取命令的執行效率。參考圖11,片段讀取命令”b”為讀取LUN 150#0中目標資料,片段讀取命令”a”和”h”為讀取LUN 150#4中不同平面的目標資料,片段讀取命令”d”和”g”為讀取LUN 150#1中不同平面的目標資料,因此,控制器130可將片段讀取命令”a”、”b”、”d”、”h”以及”g”以MPR-Lite命令來執行,因此,控制器130可一併執行5個片段讀取命令,而非3個片段讀取命令,換句話說,MPR-Lite命令可將片段讀取命令的執行效率提升了66%。 If the target data is 4KB or 8KB data in a page, the controller 130 can use the command queue 135 to store the fragment read command instead of the page read command. Or, use the MPR-Lite command to execute the fragment read command in the command queue 135, that is, integrate multiple fragment read commands into one MPR-Lite command. When multiple segment read commands are integrated into one MPR-Lite command, the controller 130 needs to change the multiple segment read commands to multiple A read page multi-plane command, the confirmation command is 32h, and the last fragment read command is unchanged, and the confirmation command is 20h. As a result, the controller 130 can not only execute the fragment read command in a synchronous and interleaved operation mode, It can also increase the execution efficiency of fragment read commands. Referring to Figure 11, the fragment read command "b" is to read the target data in LUN 150#0, and the fragment read commands "a" and "h" are to read the target data in different planes in LUN 150#4. The fragment read The commands "d" and "g" are for reading target data of different planes in LUN 150#1. Therefore, the controller 130 can read the fragments with the commands "a", "b", "d", "h" and " g" is executed by the MPR-Lite command. Therefore, the controller 130 can execute 5 fragment read commands together instead of 3 fragment read commands. In other words, the MPR-Lite command can execute The execution efficiency has increased by 66%.

於一些實施例中,為因應如上所述的MPR Lite命令,處理器核心133-1可於載入並執行特定軟體或韌體命令時實施如圖10所示的快閃記憶體操作命令排序功能。 In some embodiments, in response to the MPR Lite command as described above, the processor core 133-1 can implement the flash memory operation command sequence function as shown in FIG. 10 when loading and executing specific software or firmware commands. .

步驟S1010:處理器核心133-1於資料快取136中提供MPR-Lite排程資料表。相較於圖9所示的排程表900及待命表910,MPR-Lite排程資料表針對每個LUN提供更細緻的區分,有利於將兩個或以上的片段讀取命令整合成一個MPR-lite操作。 Step S1010: The processor core 133-1 provides the MPR-Lite scheduling data table in the data cache 136. Compared with the schedule table 900 and the standby table 910 shown in FIG. 9, the MPR-Lite schedule table provides a more detailed distinction for each LUN, which is conducive to integrating two or more fragment read commands into one MPR -lite operation.

參考圖11所示的MPR-Lite排程資料表1100,針對每個LUN,可包含兩欄”Plane0/1”及”Plane2/3”,用於將片段讀取命令依據其欲讀取的實體位址區分到其中一欄的儲存格中。例如,MPR-Lite排程資料表1100中第三欄的儲存格用來紀錄讀取平面810以及/或平面830上資料的片段讀取命令;而其中第四欄的儲存格用來紀錄讀取平面850以及/或平面870上資料的片段讀取命令。 Refer to the MPR-Lite scheduling data table 1100 shown in Figure 11. For each LUN, two columns "Plane0/1" and "Plane2/3" can be included, which are used to read the fragments according to the entity to be read The address is divided into cells in one of the columns. For example, the cell in the third column of the MPR-Lite schedule table 1100 is used to record read commands for reading data on the plane 810 and/or plane 830; and the cell in the fourth column is used to record reading The plane 850 and/or the fragment read command of the data on the plane 870.

此外,由於資料編程至區塊時,可能是採用預設編程模式,例如:TLC或QLC模式,亦可能是採用SLC模式。不同的編程模式需使用不同的資料讀取方式方能正確地讀取資料,因此,將多個片段讀取命令整合成一個MPR-Lite命令時,為了正確地讀取資料,多個片段 讀取命令所欲讀取的目標資料必需採用相同編程模式,因此,MPR-Lite排程資料表1100可略作調整而成為MPR-Lite排程資料表1200,參考圖12所示,針對每個LUN,可包含三欄”Main P0/1”、”SLC P2/3”及”QLC P2/3”,用於將每個快閃記憶體操作命令依據其欲讀取的實體位址及使用的模式區分到其中一欄的儲存格中。例如,MPR-lite排程資料表1200中第四欄的儲存格用來紀錄讀取平面810以及/或平面830上資料的快閃記憶體操作命令,而不管使用的讀取模式為何;其中第五欄的儲存格用來紀錄使用SLC模式讀取平面850以及/或平面870上資料的快閃記憶體操作命令;而其中第六欄的儲存格用來紀錄使用QLC模式讀取平面850以及/或平面870上資料的快閃記憶體操作命令。 In addition, when the data is programmed into the block, the preset programming mode may be used, such as the TLC or QLC mode, or the SLC mode may be used. Different programming modes require different data reading methods to read data correctly. Therefore, when multiple fragment read commands are integrated into one MPR-Lite command, in order to read data correctly, multiple fragments The target data to be read by the read command must use the same programming mode. Therefore, the MPR-Lite scheduling data table 1100 can be slightly adjusted to become the MPR-Lite scheduling data table 1200. Refer to Figure 12 for each LUN, can include three columns "Main P0/1", "SLC P2/3" and "QLC P2/3", which are used to assign each flash memory operation command according to the physical address to be read and the used The mode is divided into cells in one of the columns. For example, the cell in the fourth column of the MPR-lite schedule table 1200 is used to record flash memory operation commands for reading data on the plane 810 and/or plane 830, regardless of the reading mode used; The five-column cell is used to record the flash memory operation commands used to read data on the plane 850 and/or plane 870 in SLC mode; and the cell in the sixth column is used to record the read plane 850 and/or data in the QLC mode. Or flash memory operation command for data on plane 870.

接著,參考圖10,處理器核心133-1反覆執行一個迴圈(步驟S1030至S1090),用於將命令佇列135中的每個快閃快閃記憶體操作命令安排到MPR-Lite排程資料表中的適當儲存格。於每個回合,詳細說明如下: Next, referring to FIG. 10, the processor core 133-1 repeatedly executes a loop (steps S1030 to S1090) for arranging each flash memory operation command in the command queue 135 to the MPR-Lite schedule The appropriate cell in the table. For each round, the details are as follows:

步驟S1030:處理器核心133-1從命令佇列135中取得一個或多個尚未排序的快閃記憶體操作命令的實體位址資訊。如果一個快閃記憶體操作命令指示讀取平面830以及平面850上的資料,處理器核心133-1可將此快閃記憶體操作命令安排到關聯於平面830的欄位中的儲存格,例如圖11中的欄”Plane0/1”或圖12中的欄”Main P0/1”。 Step S1030: The processor core 133-1 obtains the physical address information of one or more unsorted flash memory operation commands from the command queue 135. If a flash memory operation command instructs to read data on the plane 830 and the plane 850, the processor core 133-1 can arrange the flash memory operation command to a cell in the field associated with the plane 830, for example The column "Plane0/1" in Figure 11 or the column "Main P0/1" in Figure 12.

步驟S1050:依據實體位址及其他相關資訊將每一個快閃記憶體操作命令安排到MPR-Lite排程資料表中的適當儲存格。參考圖11的使用案例,MPR-Lite排程資料表1100中第三欄的儲存格用來紀錄讀取平面810以及/或平面830上資料的片段讀取命令”a”、”c”及”f”;而其中第四欄的儲存格用來紀錄讀取平面850以及/或平面870上資料的片段讀取命令”h”及”i”。 Step S1050: Arrange each flash memory operation command to an appropriate cell in the MPR-Lite scheduling table according to the physical address and other related information. Referring to the use case of FIG. 11, the cell in the third column of the MPR-Lite schedule data table 1100 is used to record the read command "a", "c" and "segment reading of data on the plane 810 and/or plane 830. f"; and the cell in the fourth column is used to record read commands "h" and "i" for reading data on the plane 850 and/or plane 870.

於步驟S1050的另一些實施例,記憶體操作命令的其他相關資訊可 包含此快閃記憶體操作命令使用何種模式進行讀取。處理器核心133-1可搜索資料快取136中實體組態資料表的內容,依據實體位址對應到的區塊的編程模式,得知此快閃記憶體操作命令需要使用何種模式進行讀取。參考圖12的使用案例,MPR-Lite排程資料表1200中第四欄的儲存格用來紀錄讀取平面810以及/或平面830上資料的片段讀取命令”a”及”f”;其中第五欄的儲存格用來紀錄使用SLC模式讀取平面850以及/或平面870上資料的片段讀取命令”h”及”i”;而其中第六欄的儲存格用來紀錄使用QLC模式讀取平面850以及/或平面870上資料的片段讀取命令”c”。 In other embodiments of step S1050, other related information of the memory operation command may be Contains which mode the flash memory operation command uses to read. The processor core 133-1 can search the content of the physical configuration data table in the data cache 136, and know which mode the flash memory operation command needs to be read according to the programming mode of the block corresponding to the physical address Pick. Referring to the use case of FIG. 12, the cell in the fourth column of the MPR-Lite schedule data table 1200 is used to record the read commands "a" and "f" of the data on the plane 810 and/or plane 830; where The cell in the fifth column is used to record the fragment read commands "h" and "i" that use SLC mode to read data on plane 850 and/or plane 870; and the cell in the sixth column is used to record the use of QLC mode Read the plane 850 and/or the fragment read command "c" of the data on the plane 870.

接續圖11所述的排序結果,圖13顯示挑選快閃記憶體操作命令的使用案例。例如,於一個批次中,處理器核心133-1驅動閃存介面137發送讀取頁面命令給LUN 150#0,用於讀取片段讀取命令”b”指定的實體位址的資料;發送讀取頁面多平面命令給LUN 150#4,用於讀取片段讀取命令”a”及”h”指定的實體位址的資料,發送讀取頁面多平面命令給LUN 150#1,用於讀取片段讀取命令”d”指定的實體位址的資料,以及發送片段讀取命令給LUN 150#1,用於讀取記憶體操作命令”g”指定的實體位址的資料,以形成一個MPR-lite操作。 Following the sorting result described in FIG. 11, FIG. 13 shows a use case of selecting flash memory operation commands. For example, in a batch, the processor core 133-1 drives the flash memory interface 137 to send a read page command to LUN 150#0, which is used to read the data at the physical address specified by the fragment read command "b"; send read Take the page multi-plane command to LUN 150#4 for reading the data of the physical address specified by the fragment read commands "a" and "h", and send the page multi-plane command to LUN 150#1 for reading Take the data of the physical address specified by the fragment read command "d", and send the fragment read command to LUN 150#1 to read the data of the physical address specified by the memory operation command "g" to form a MPR-lite operation.

接續圖12所述的排序結果,圖14顯示挑選記憶體操作命令的使用案例。例如,於一個批次中,處理器核心133-1判斷目標資料的編程為SLC模式,因此,驅動閃存介面137發送讀取頁面多平面命令給LUN 150#0,用於讀取片段讀取命令”b”指定的實體位址的資料;發送讀取頁面多平面命令給LUN 150#4,用於片段讀取命令”a”及”h”指定的實體位址的資料,發送片段讀取命令給LUN 150#1,用於讀取片段讀取命令”d”指定的實體位址的資料,以形成一個MPR-lite操作。 Following the sorting result described in FIG. 12, FIG. 14 shows a use case of selecting memory operation commands. For example, in a batch, the processor core 133-1 judges that the programming of the target data is SLC mode, therefore, it drives the flash memory interface 137 to send a read page multi-plane command to LUN 150#0, which is used to read the fragment read command The data of the physical address specified by "b"; send the read page multi-plane command to LUN 150#4 for the data of the physical address specified by the fragment read commands "a" and "h", and send the fragment read command For LUN 150#1, it is used to read the data of the physical address specified by the fragment read command "d" to form an MPR-lite operation.

藉由參考MPR-Lite排程資料表的排序結果,處理器核心133-1可逐批次執行如上所述的片段讀取命令,但是,當處理器核心133-1改以 MPR-Lite命令來讀取多平面上頁面的片段資料,不但可提升資料讀取的效率,更提升片段讀取操作的效率。於4K隨機讀取Q64/T4測試中,相較於片段讀取命令,MPR-Lite命令可提升將近30~50%的平均讀取資料命中率。一次讀取的命中率定義為通過閃存介面137從LUN 150中讀取資料被保留下來以回覆給主機110的比例。例如,當片段讀取命令讀取的8K資料全部都保留下來以回覆給主機110時,則這次讀取的命中率為100%。當片段讀取命令讀取的8K資料只保留一半以回覆給主機110時,則這次讀取的命中率為50%。 By referring to the sorting results of the MPR-Lite scheduling table, the processor core 133-1 can execute the fragment read command as described above in batches, but when the processor core 133-1 changes to The MPR-Lite command to read fragment data of pages on multiple planes not only improves the efficiency of data reading, but also improves the efficiency of fragment reading operations. In the 4K random read Q64/T4 test, compared to the fragment read command, the MPR-Lite command can increase the average read data hit rate by nearly 30-50%. The hit rate of a read is defined as the ratio of the data read from the LUN 150 through the flash memory interface 137 which is retained for reply to the host 110. For example, when all the 8K data read by the fragment read command are retained for reply to the host 110, the hit rate of this read is 100%. When only half of the 8K data read by the fragment read command is retained for reply to the host 110, the hit rate of this read is 50%.

本發明所述的方法中的全部或部分步驟可以電腦程式實現,例如電腦的作業系統、電腦中特定硬體的驅動程式、或軟體應用程式。此外,也可實現於如上所示的其他類型程式。所屬技術領域具有通常知識者可將本發明實施例的方法撰寫成電腦程式,為求簡潔不再加以描述。依據本發明實施例方法實施的電腦程式.可儲存於適當的電腦可讀取資料載具,例如DVD、CD-ROM、USB碟、硬碟,亦可置於可通過網路(例如,網際網路,或其他適當載具)存取的網路伺服器。 All or part of the steps in the method of the present invention can be implemented by a computer program, such as a computer operating system, a specific hardware driver in the computer, or a software application program. In addition, it can also be implemented in other types of programs as shown above. Those with ordinary knowledge in the technical field can write the method of the embodiment of the present invention into a computer program, which will not be described for the sake of brevity. The computer program implemented according to the method of the embodiment of the present invention can be stored in an appropriate computer readable data carrier, such as DVD, CD-ROM, USB disk, hard disk, and can also be placed on a network (for example, the Internet) Or other appropriate vehicle).

雖然圖1中包含了以上描述的元件,但不排除在不違反發明的精神下,使用更多其他的附加元件,已達成更佳的技術效果。此外,雖然圖10的流程圖採用指定的順序來執行,但是在不違反發明精神的情況下,熟習此技藝人士可以在達到相同效果的前提下,修改這些步驟間的順序,所以,本發明並不侷限於僅使用如上所述的順序。 此外,熟習此技藝人士亦可以將若干步驟整合為一個步驟,或者是除了這些步驟外,循序或平行地執行更多步驟,本發明亦不因此而侷限。 Although FIG. 1 includes the above-described elements, it is not excluded that, without violating the spirit of the invention, more other additional elements can be used to achieve better technical effects. In addition, although the flowchart in FIG. 10 is executed in a specified order, those skilled in the art can modify the sequence of these steps on the premise of achieving the same effect without violating the spirit of the invention. Therefore, the present invention does not It is not limited to using 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 present 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 that are obvious to those skilled in the art. Therefore, the scope of the claims applied for must be in the broadest way The formula is explained to include all obvious modifications and similar settings.

S1010~S1090:方法步驟 S1010~S1090: method steps

Claims (10)

一種電腦程式產品,用以讀取多平面上頁面的片段資料,由一處理單元載入並執行,包含以下的程式碼:提供一排程資料表;將一命令佇列中的每一記憶體操作命令依據該記憶體操作命令的實體位址資訊安排到該排程資料表中的一儲存格;依據該排程資料表的內容為一邏輯單元號挑選二個或以上的記憶體操作命令以形成一多頁面讀取精簡操作,其中每一該挑選的記憶體操作命令請求讀取少於一跨平面頁面的長度的資料;驅動一閃存介面來完成該多頁面讀取精簡操作,從該邏輯單元號讀取該挑選的記憶體操作命令請求的資料;以及回覆讀取的資料給一主機。 A computer program product used to read fragment data of pages on multiple planes, loaded and executed by a processing unit, including the following code: providing a scheduling data table; storing each memory in a command queue The operation command is arranged in a cell in the schedule table according to the physical address information of the memory operation command; two or more memory operation commands are selected for a logical unit number according to the content of the schedule table A multi-page read streamline operation is formed, where each selected memory operation command requests to read data less than the length of a cross-plane page; a flash memory interface is driven to complete the multi-page read streamline operation, from the logic The unit number reads the data requested by the selected memory operation command; and replies the read data to a host. 如請求項1所述的電腦程式產品,其中該多頁面讀取精簡操作,包含:驅動該閃存介面發送一或多讀取頁面多平面命令後發送一片段讀取命令給該邏輯單元號,讀取該挑選的記憶體操作命令指定的實體位址的資料。 The computer program product according to claim 1, wherein the multi-page reading simplified operation includes: driving the flash memory interface to send one or more page-reading multi-plane commands and then sending a fragment reading command to the logical unit number, and reading Get the data of the physical address specified by the selected memory operation command. 如請求項2所述的電腦程式產品,其中,該讀取頁面多平面命令及該片段讀取命令分別用來讀取不同跨平面頁面上的片段資料。 The computer program product according to claim 2, wherein the read page multi-plane command and the fragment read command are respectively used to read fragment data on different cross-plane pages. 如請求項2所述的電腦程式產品,其中,該讀取頁面多平面命令及該片段讀取命令運行在一模式下。 The computer program product according to claim 2, wherein the read page multi-plane command and the fragment read command run in a mode. 如請求項4所述的電腦程式產品,其中,該模式為單層式單元、三層式單元或四層式單元模式。 The computer program product according to claim 4, wherein the mode is a single-layer unit, a three-layer unit, or a four-layer unit mode. 一種讀取多平面上頁面的片段資料的方法,由一處理單元執行,包含:提供一排程資料表;將一命令佇列中的每一記憶體操作命令依據該記憶體操作命令的實 體位址資訊安排到該排程資料表中的一儲存格;依據該排程資料表的內容為一邏輯單元號挑選二個或以上的記憶體操作命令以形成一多頁面讀取精簡操作,其中每一該挑選的記憶體操作命令請求讀取少於一跨平面頁面的長度的資料;驅動一閃存介面來完成該多頁面讀取精簡操作,從該邏輯單元號讀取該挑選的記憶體操作命令請求的資料;以及回覆讀取的資料給一主機。 A method for reading fragment data of pages on multiple planes, executed by a processing unit, includes: providing a scheduling data table; and arranging each memory operation command in a command queue according to the actual memory operation command The body address information is arranged in a cell in the schedule table; according to the contents of the schedule table, two or more memory operation commands are selected for a logical unit number to form a multi-page read condensed operation. Each selected memory operation command requests to read data less than the length of a cross-plane page; drives a flash memory interface to complete the multi-page read streamline operation, and reads the selected memory operation from the logical unit number Command the requested data; and reply the read data to a host. 如請求項6所述的讀取多平面上頁面的片段資料的方法,其中該多頁面讀取精簡操作,包含:驅動該閃存介面發送一或多讀取頁面多平面命令後發送一片段讀取命令給該邏輯單元號,讀取該挑選的記憶體操作命令指定的實體位址的資料。 The method for reading fragment data of pages on multiple planes according to claim 6, wherein the simplified multi-page reading operation includes: driving the flash memory interface to send one or more page-read multi-plane commands followed by a fragment read The command is given to the logical unit number, and the data of the physical address specified by the selected memory operation command is read. 如請求項7所述的讀取多平面上頁面的片段資料的方法,其中,該讀取頁面多平面命令需要的等待資料就緒時間比該片段讀取命令需要的等待資料就緒時間短。 The method for reading fragment data of a page on a multi-plane according to claim 7, wherein the waiting data ready time required for the read page multi-plane command is shorter than the waiting data ready time required for the fragment read command. 如請求項6所述的讀取多平面上頁面的片段資料的方法,其中該排程資料表中的每一欄用於記錄讀取特定邏輯單元號中特定平面上的記憶體操作命令的資訊。 The method for reading fragment data of pages on multiple planes as described in claim 6, wherein each column in the scheduling data table is used to record information about reading memory operation commands on a specific plane in a specific logical unit number . 如請求項6所述的讀取多平面上頁面的片段資料的方法,其中該排程資料表中的每一欄用於記錄讀取特定邏輯單元號中一第一平面、一第二平面並使用一第一模式、或該第二平面並使用一第二模式的記憶體操作命令的資訊。 The method for reading fragment data of pages on multiple planes according to claim 6, wherein each column in the scheduling data table is used to record and read a first plane and a second plane in a specific logical unit number. Use a first mode or the second plane and use the information of a memory operation command in a second mode.
TW108140180A 2019-04-01 2019-11-06 Method and computer program product for reading data fragments of a page on multiple planes TWI737031B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962827317P 2019-04-01 2019-04-01
US62/827,317 2019-04-01

Publications (2)

Publication Number Publication Date
TW202038097A TW202038097A (en) 2020-10-16
TWI737031B true TWI737031B (en) 2021-08-21

Family

ID=72805449

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108140180A TWI737031B (en) 2019-04-01 2019-11-06 Method and computer program product for reading data fragments of a page on multiple planes

Country Status (2)

Country Link
CN (1) CN111796759B (en)
TW (1) TWI737031B (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112513988A (en) * 2020-11-06 2021-03-16 长江存储科技有限责任公司 Pseudo-asynchronous multiplanar independent read
US11756644B2 (en) 2021-06-23 2023-09-12 International Business Machines Corporation Triage of multi-plane read requests
CN114546289B (en) * 2022-02-27 2023-06-02 苏州浪潮智能科技有限公司 Method, system, equipment and medium for reading data
CN114546294B (en) * 2022-04-22 2022-07-22 苏州浪潮智能科技有限公司 Solid state disk reading method, system and related components

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040010612A1 (en) * 2002-06-11 2004-01-15 Pandya Ashish A. High performance IP processor using RDMA
US20140149665A1 (en) * 2012-11-29 2014-05-29 Infinidat Ltd. Storage System Capable of Managing a Plurality of Snapshot Families and Method of Operating Thereof
US8924675B1 (en) * 2010-09-24 2014-12-30 Emc Corporation Selective migration of physical data
TWI506549B (en) * 2011-12-20 2015-11-01 Intel Corp System and method for out-of-order prefetch instructions in an in-order pipeline

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI475385B (en) * 2012-03-14 2015-03-01 Phison Electronics Corp Method of programming memory cells and reading data, memory controller and memory storage device using the same
US9229854B1 (en) * 2013-01-28 2016-01-05 Radian Memory Systems, LLC Multi-array operation support and related devices, systems and software
KR102615659B1 (en) * 2016-07-08 2023-12-20 에스케이하이닉스 주식회사 Memory system and operating method thereof

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040010612A1 (en) * 2002-06-11 2004-01-15 Pandya Ashish A. High performance IP processor using RDMA
US8924675B1 (en) * 2010-09-24 2014-12-30 Emc Corporation Selective migration of physical data
TWI506549B (en) * 2011-12-20 2015-11-01 Intel Corp System and method for out-of-order prefetch instructions in an in-order pipeline
US20140149665A1 (en) * 2012-11-29 2014-05-29 Infinidat Ltd. Storage System Capable of Managing a Plurality of Snapshot Families and Method of Operating Thereof
US9383942B2 (en) * 2012-11-29 2016-07-05 Infinidat Ltd. Storage system capable of managing a plurality of snapshot families and method of operating thereof

Also Published As

Publication number Publication date
TW202038097A (en) 2020-10-16
CN111796759A (en) 2020-10-20
CN111796759B (en) 2023-11-07

Similar Documents

Publication Publication Date Title
US11954370B2 (en) Command queuing
TWI737031B (en) Method and computer program product for reading data fragments of a page on multiple planes
US8429358B2 (en) Method and data storage device for processing commands
US11216189B2 (en) Method and computer program product for reading partial data of a page on multiple planes
US8626996B2 (en) Solid state memory (SSM), computer system including an SSM, and method of operating an SSM
US9342371B2 (en) Boot partitions in memory devices and systems
US7864572B2 (en) Flash memory storage apparatus, flash memory controller, and switching method thereof
US20100287333A1 (en) Data storage device and related method of operation
US20120117314A1 (en) Memory devices operated within a communication protocol standard timeout requirement
KR102595233B1 (en) Data processing system and operating method thereof
KR20140032789A (en) Controller of nonvolatile memory device and command scheduling method thereof
US11210226B2 (en) Data storage device and method for first processing core to determine that second processing core has completed loading portion of logical-to-physical mapping table thereof
CN111813703A (en) Data storage device and method for updating logical-to-physical address mapping table
US20230273878A1 (en) Storage device for classifying data based on stream class number, storage system, and operating method thereof
TWI781846B (en) Unbalanced plane management method, associated data storage device and controller thereof
KR102549540B1 (en) Storage device and method of operating the same
TWI740446B (en) Computer program product and method and apparatus for managing garbage collection (gc) processes
TWI820473B (en) Method and apparatuse and computer program product for handling sudden power off recovery
TW202340939A (en) Method and computer program product and apparatus for data access in response to host discard commands
TWI430098B (en) Hard disk acceleration access device and access method thereof