CN111897743B - 数据储存装置及逻辑至物理地址映射表的载入方法 - Google Patents

数据储存装置及逻辑至物理地址映射表的载入方法 Download PDF

Info

Publication number
CN111897743B
CN111897743B CN201910444860.7A CN201910444860A CN111897743B CN 111897743 B CN111897743 B CN 111897743B CN 201910444860 A CN201910444860 A CN 201910444860A CN 111897743 B CN111897743 B CN 111897743B
Authority
CN
China
Prior art keywords
processing core
mapping table
group mapping
instruction
logical
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN201910444860.7A
Other languages
English (en)
Other versions
CN111897743A (zh
Inventor
颜瑞霖
林圣勋
孙健玮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
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 Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of CN111897743A publication Critical patent/CN111897743A/zh
Application granted granted Critical
Publication of CN111897743B publication Critical patent/CN111897743B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)

Abstract

本发明涉及一种数据储存装置及逻辑至物理地址映射表的载入方法。该数据储存装置包括:一快闪存储器、一动态随机存取存储器、及一存储器控制器。快闪存储器用以储存一逻辑至物理地址映射表,其划分为多个群组映射表。动态随机存取存储器用以储存一部分的这些群组映射表。存储器控制器包括一第一处理核心及一第二处理核心,其中第一处理核心用以接收来自一主机的一主机指令。当主机指令中的特定逻辑地址的特定群组映射表未储存于动态随机存取存储器,第一处理核心依据第一位元表及第二位元表中以决定第二处理核心是否已将特定群组映射表从快闪存储器读取至动态随机存取存储器。

Description

数据储存装置及逻辑至物理地址映射表的载入方法
技术领域
本发明有关于一种数据储存装置,特别是有关于一种数据储存装置及逻辑至物理地址映射表的载入方法。
背景技术
快闪存储器装置通常分为NOR快闪装置与NAND快闪装置。NOR快闪装置为随机存取装置,而可于地址脚位上提供任何的物理地址,存储器控制器可由NOR快闪装置的数据脚位上获得储存于物理地址上的数据。相反地,NAND快闪装置并非随机存取,而是序列存取。NAND快闪装置无法像NOR快闪装置一样,可以存取任何随机地址,存储器控制器反而需要写入序列的位元组(bytes)的值到NAND快闪装置中,用以输入操作命令(command)的类型(如,读取、写入、抹除等命令)以及物理地址。物理地址可指向一个页面(在快闪存储器中的一个写入作业的最小数据块)或一个区块(在快闪存储器中的一个抹除作业的最小数据块)。实际上,NAND快闪装置通常从存储器单元(memory cells)上读取或写入完整的数页数据。当一整页的数据从阵列读取到装置中的缓存器(buffer)后,藉由使用提取信号(strobesignal)顺序地敲出(clock out)内容,让存储器控制器可逐位元组或字元组(words)存取数据。
然而,随着NAND快闪存储器的容量增加,数据储存装置所配置的动态随机存取存储器的容量也需增加,才能完整地暂存操作NAND快闪存储器所需的逻辑至物理地址映射表。动态随机存取存储器的容量增加,配置的动态随机存取存储器的成本也会增加。若配置容量较小的动态随机存取存储器,控制器在执行写入指令时,需要经常置换并更新在动态随机存取存储器中的群组映射表。然而,对于具有两个处理核心的存储器控制器来说,两个处理核心之间缺乏有效的沟通机制,使得主要处理核心往往需浪费时间或***资源才能判断另一处理核心是否已将群组映射表读取至动态随机存取存储器,进而造成数据储存装置的处理效能下降。
因此,需要一种数据储存装置及逻辑至物理地址映射表的载入方法以解决上述问题。
发明内容
本发明提供一种数据储存装置。数据储存装置包括:一快闪存储器、一动态随机存取存储器、及一存储器控制器。快闪存储器用以储存一逻辑至物理地址映射表,其中该逻辑至物理地址映射表分为多个群组映射表。动态随机存取存储器用以储存一部分的这些群组映射表、一第一位元表及一第二位元表,其中该第一位元表包括多个第一栏位且该第二位元表包括多个第二栏位,各群组映射表相应于各第一栏位及各第二栏位。存储器控制器包括一第一处理核心及一第二处理核心,该第一处理核心用以接收来自一主机的一主机指令,其中该主机指令包括一或多个逻辑地址。适应于该第一处理核心判断在该主机指令中的该一或多个逻辑地址的一特定逻辑地址在这些群组映射表中所相应的一特定群组映射表尚未储存于该动态随机存取存储器,该第一处理核心是将该特定群组映射表相应的该第一位元表的该第一栏位的数值进行切换,并将该特定群组映射表的一读取指令写入至一先进先出缓冲器。该第二处理核心执行来自该先进先出缓冲器的该读取指令,并且当成功地将该特定群组映射表从该快闪存储器读取至该动态随机存取存储器后,该第二处理核心将该特定群组映射表在该第二位元表相应的该第二栏位的数值进行切换。该第一处理核心依据储存于该动态随机存取存储器中的该特定群组映射表以执行该主机指令。
在一些实施例中,当该数据储存装置开机时,该第一处理核心是将该第一位元表及该第二位元表中的各第一栏位及各第二栏位重置为0。适应于该第一处理核心判断相应于该特定群组映射表在该第一位元表的该第一栏位的数值与该第二位元表的该第二栏位的数值相等时,该第一处理核心判断该特定群组映射表已储存至该动态随机存取存储器。
在一些实施例中,适应于该第一处理核心将该特定群组映射表的该特定读取指令写入至该先进先出缓冲器,该第一处理核心继续执行该主机指令中的该特定逻辑地址的后续逻辑地址的操作而不等待该第二处理核心完成该读取指令。
在一些实施例中,该预定条件为在该第一处理核心将该特定群组映射表的该特定读取指令写入至该先进先出缓冲器后已经过一预定时间,或是该第一处理核心已写入一预定数量的该读取指令至该先进先出缓冲器。
在另一些实施例中,该预定条件为在该第一处理核心判断需要使用该特定群组映射表以进行相关操作,包括:适应于该第一处理核心已执行完毕该主机指令中的该特定逻辑地址的后续逻辑地址的操作及/或该第一处理核心已将该主机指令中的各逻辑地址相应的该群组映射表的读取指令均写入至该先进先出缓冲器。
本发明还提供一种逻辑至物理地址映射表的载入方法,用于一数据储存装置,其中该数据储存装置包括一快闪存储器、一动态随机存取存储器、一第一处理核心、及一第二处理核心,该快闪存储器用以储存一逻辑至物理地址映射表,其中该逻辑至物理地址映射表划分为多个群组映射表,且该动态随机存取存储器储存一部分的这些群组映射表、一第一位元表、及一第二位元表,其中该第一位元表包括多个第一栏位且该第二位元表包括多个第二栏位,各群组映射表相应于各第一栏位及各第二栏位,该方法包括:利用该第一处理核心接收来自一主机的一主机指令,其中该主机指令包括一或多个逻辑地址;适应于在该主机指令中的该一或多个逻辑地址的一特定逻辑地址在这些群组映射表中所相应的一特定群组映射表尚未储存于该动态随机存取存储器,利用该第一处理核心将该特定群组映射表相应的该第一位元表的该第一栏位的数值进行切换,并将该特定群组映射表的一读取指令写入至一先进先出缓冲器;利用该第二处理核心执行来自该先进先出缓冲器的该读取指令;当成功地执行该读取指令将该特定群组映射表从该快闪存储器读取至该动态随机存取存储器后,利用该第二处理核心将该特定群组映射表在该第二位元表相应的该第二栏位的数值进行切换;以及利用该第一处理核心依据储存于该动态随机存取存储器中的该特定群组映射表以执行该主机指令。
附图说明
图1为依据本发明一实施例中的电子装置的方块图。
图2为依据本发明一实施例的存取介面与储存单元的方块图。
图3为依据本发明一实施例的一个存取子介面与多个快闪存储器晶粒的连接示意图。
图4为依据本发明一实施例中的逻辑至物理地址映射表、请求位元表及回应位元表的示意图。
图5是显示依据本发明一实施例中的逻辑至物理地址映射表的载入方法的流程图。
符号说明
100~电子装置;
120~主机;
140~数据储存装置;
150~存取介面;
160~存储器控制器;
162~处理单元;
163~储存单元;
164~韧体;
165~指令缓冲器;
166~静态随机存取存储器;
1621~第一处理核心;
1622~第二处理核心;
1623~先进先出缓冲器;
1624~内部总线;
170~存取介面;
180~快闪存储器;
181~快闪转译层;
190~动态随机存取存储器;
170_0-170_j~存取子介面;
180_0_0-180_j_i~快闪存储器晶粒;
320_0_0-320_0_i~芯片致能控制信号;
400~逻辑至物理地址映射表;
401~群组映射表;
410~请求位元表;
412~回应位元表;
4101、4121~栏位;
420~第一预定空间;
430~第二预定空间;
S510-S550~步骤。
具体实施方式
为使本发明的上述目的、特征和优点能更明显易懂,下文特举一较佳实施例,并配合附图,作详细说明如下。
图1为依据本发明一实施例中的电子装置的方块图。电子装置100例如可为个人电脑(personal computer,PC)、一数据伺服器(data server)、网络附加储存装置(network-attached storage,NAS),可携式电子装置(portable electronic device)等等,但本发明并不限于此。可携式电子装置例如可为一笔记型电脑、手持移动电话、智慧型手机、平板电脑、个人数位助理(personal digital assistant,PDA)、数位相机(digital camera)、数位摄影机(digital video camera)、可携式多媒体播放器(portable multimedia player)、个人导航装置(personal navigation device)、手持游戏主机(handheld game console)、电子书(e-book)等等,但本发明并不限于此。
电子装置100包括主机(host)120以及数据储存装置140。数据储存装置140包括存储器控制器160、快闪存储器180以及动态随机存取存储器190。存储器控制器160包括处理单元162、储存单元163、静态随机存取存储器(Static Random Access Memory,SRAM)166。处理单元162可由专用硬体电路或通用硬体所实现,具有多个处理核心的处理器或是具平行处理能力的多处理器,且上述实现方式例如可为通用处理器(General-PurposeProcessor)、或微控制器(Microcontroller),但本发明并不限于此。为了便于说明,在后述实施例中,处理单元162包括第一处理核心1621及第二处理核心1622,且第一处理核心1621及第二处理核心1622透过一内部总线1624进行沟通。
动态随机存取存储器190为非必要元件,并且可被主机存储器缓存(Host MemoryBuffer,HMB)所替代。动态随机存取存储器190的数据储存空间大于静态随机存取存储器166。
存储器控制器160中的处理单元162可根据主机120所下达的主机指令而对快闪存储器180进行操作,例如透过存取介面170写入数据到快闪存储器180中的指定地址、或是由快闪存储器180中的指定地址读取页面数据。
处理单元162与快闪存储器180间的数据与操作命令传递系透过数个电子信号进行协调,上述电子信号包括数据线(data line)、时脉信号(clock signal)与控制信号(control signal)。数据线可用以传递命令、地址、读出及写入的数据;控制信号线可用以传递芯片致能(chip enable,CE)、地址提取致能(address latch enable,ALE)、命令提取致能(command latch enable,CLE)、写入致能(write enable,WE)等控制信号。
存取介面170可采用双倍数据率(double data rate,DDR)通讯协定与快闪存储器180沟通,例如,开放NAND快闪(open NAND flash interface,ONFI)、双倍数据率开关(DDRToggle)或其他介面。处理单元162另可使用存取介面150透过指定通讯协定与主机120进行沟通,例如,通用序列总线(universal serial bus,USB)、先进技术附着(advancedtechnology attachment,ATA)、序列先进技术附着(serial advanced technologyattachment,SATA)、快速周边元件互联(peripheral component interconnect express,PCI-E)、非挥发性存储器的传输规范(Non-Volatile Memory Express,NVMe)或其他介面。
储存单元163可为非挥发性存储器,例如为只读存储器(read-only memory,ROM)、可擦除式可程序化只读存储器(erasable programmable read-only memory,EPROM)、电子可擦除式可程序化只读存储器(electrically erasable programmable read-onlymemory,EEPROM)或电子熔丝(E-Fuse)。储存单元163是储存启动程序164,其包括启动码(Boot Code)或启动程序(Bootloader),且可由处理单元162执行,存储器控制器160基于启动程序164而完成开机,并开始控制该快闪存储器180的运作,例如,读取线上烧录(InSystem Programming,ISP)码。
快闪存储器180例如为NAND快闪存储器,且快闪存储器180可包含多个快闪存储器晶粒(Die)/逻辑单元编号(Logical Unit Number,LUN),各自使用关联的存取子介面与处理单元162进行沟通。
图2为依据本发明实施例的存取介面与储存单元的方块图。数据储存装置140可包含j+1个存取子介面170_0至170_j,存取子介面又可称为通道(Channel),每一个存取子介面连接i+1个快闪存储器晶粒。换句话说,i+1个快闪存储器晶粒共享一个存取子介面。例如,当数据储存装置140包含4个通道(j=3)且每一个通道连接4个储存单元(i=3)时,快闪存储器180一共拥有16个快闪存储器晶粒180_0_0至180_j_i。处理单元162可驱动存取子介面170_0至170_j中之一者,从指定的快闪存储器晶粒读取数据。每个快闪存储器晶粒拥有独立的芯片致能(CE)控制信号。
换句话说,当欲对指定的快闪存储器晶粒进行数据读取时,需要驱动关联的存取子介面致能此快闪存储器晶粒的芯片致能控制信号。图3为依据本发明实施例的一个存取子介面与多个快闪存储器晶粒的连接示意图。处理单元162可透过存取子介面170_0使用独立的芯片致能控制信号320_0_0至320_0_i来从连接的快闪存储器晶粒180_0_0至180_0_i中选择出其中一者,接着,透过共享的数据线310_0从选择出的快闪存储器晶粒的指定位置读取数据。
在一实施例中,数据储存装置140运作时,存储器控制器160建立并更新逻辑至物理地址映射表(L2P映射表),L2P映射表标示逻辑地址至物理空间的映射资讯,且储存于数据储存装置140中的快闪存储器180。此外,仅配置小容量的动态随机存取存储器190(又称作部份动态随机存取存储器,Partial DRAM),或是数据储存装置140并未配置有动态随机存取存储器190而使用主机存储器缓存(Host Memory Buffer,HMB),因此,无法将整个L2P映射表载入动态随机存取存储器190或主机存储器缓存。在此条件下,存储器控制器160仅将部分L2P映射表载入动态随机存取存储器190或主机存储器缓存。
逻辑地址较佳为逻辑区块地址(Logical Block Address,LBA),可对应到512B的使用者数据(简称数据)。在另一些实施例中,逻辑地址可为全域主机页编号(Global HostPage,GHP),可对应到4KB或16KB的数据。为了简化说明,在下述中将以LBA为例,但不以此为限。
图4为依据本发明一实施例中的L2P映射表、请求位元表及回应位元表的示意图。
在一实施例中,L2P映射表400例如可划分为多个群组(Group)映射表401,例如:1024个群组映射表401。群组映射表401的大小例如为4KB,假设群组映射表401的每一栏位(Entry)大小为4B,则群组映射表401可记录1024笔映射资讯。各群组映射表401的大小亦可视实际设计的需求所决定,本发明并不限于此。存储器控制器160例如可将L2P映射表400中的部分的群组映射表401储存至动态随机存取存储器190中的第一预定空间420,例如,16个群组映射表401,如图4所示。
举例来说,存储器控制器160是由主机120接收一或多个主机指令,主机指令例如可为写入指令或读取指令。举例来说,上述主机指令可带有一或多个LBA,视写入或读取数据的型态而定(例如为随机写入/读取、连续写入/读取)。
在一实施例中,假定存储器控制器160所接收来自主机120的主机指令为写入指令,存储器控制器160的处理单元162会先判断主机指令的各LBA相应的群组映射表401是否已储存于动态随机存取存储器190中。若主机指令的各LBA相应的群组映射表401已储存于动态随机存取存储器190中,则存储器控制器160则不需从快闪存储器180读取任何群组映射表401。若主机指令的一部分或全部的LBA相应的群组映射表401尚未储存于动态随机存取存储器190中,则存储器控制器160会从快闪存储器180读取相应的群组映射表401至动态随机存取存储器190中,例如采用一预定置换机制以将所读取的一或多个群组映射表401置换原本储存于动态随机存取存储器190中的一或多个群组映射表401。其中,上述预定置换机制例如可为最近最少使用(least recently used,LRU)演算法、最近最不常用(leastfrequently used,LFU)演算法、先进先出(first-in-first-out,FIFO)演算法、二次机会演算法等等,但本发明并不限于此。
举例来说,处理单元162中的第一处理核心1621会将主机指令所需要的一或多个群组映射表401相应的一或多个操作指令(读取指令)依序写入至先进先出缓冲器1623中,且第二处理核心1622则由先进先出缓冲器1623依序取得来自第一处理核心1621的读取指令,并执行读取指令以从快闪存储器180读取相应的群组映射表401,并将读取的群组映射表401写入至动态随机存取存储器190。之后,第二处理核心1622再回报第一处理核心1621有关于读取指令的执行结果,例如:完成、失败等等。
详细而言,上述预定置换机制是由第一处理核心1621所决定。举例来说,第一处理核心1621依据群组-地址映射表(Group-to-Flash Mapping Table,G2F Table)以取得欲读取的群组映射表401的物理地址,接着,写入包括欲读取的群组映射表401的物理地址(包括快闪存储器晶粒的地址)以及将欲读取的群组映射表401写入至动态随机存取存储器190的物理地址的操作指令(读取指令)至先进先出缓冲器1623。第二处理核心1622再由先进先出缓冲器1623取得并执行读取指令。当读取指令执行完成,这表示相应于读取指令的群组映射表401已被取得并写入至动态随机存取存储器190。第一处理核心1621及第二处理核心1622之间需有同步机制,让第二处理核心1622可以得知先进先出缓冲器1623有新的读取指令,另外,让第二处理核心1622可以回报第一处理核心1621有关于读取指令的执行进度,或是,让第一处理核心1621可以得知第二处理核心1622有关于读取指令的执行结果。在读取指令执行完成后,第一处理核心1621可以依据主机指令来查找或更新在动态随机存取存储器190的群组映射表401的内容。
在第一实施例中,第一处理核心1621会将主机指令所需要的一或多个群组映射表401相应的一或多个操作指令(读取指令)依序写入至先进先出缓冲器1623,此时先进先出缓冲器1623的功能如同指令伫列(Command Queue)。第一处理核心1621等待第二处理核心1622将指令伫列中的所有读取指令执行完毕,意即先进先出缓冲器1623为空乏(Empty)状态时,第一处理核心1621才得知主机指令所需的一或多个群组映射表401已读取完成,第一处理核心1621方能继续执行主机指令。
第二实施例与第一实施例类似,第一处理核心1621可主动检查先进先出缓冲器1623中的指令伫列的处理进度,如此一来,可以及早得知哪些群组映射表401已读取完成,可及早查找或更新那些群组映射表401的内容。
然而,在第一实施例的同步机制中,第一处理核心1621因为需要等待第二处理核心1622将指令伫列中的所有读取指令均执行完毕后才会继续执行后续的操作,会造成第一处理核心1621处于闲置状态,而无法达到应有的效能。在第二实施例的同步机制中,第一处理核心1621需另外读取指令伫列的内容(例如头指标、尾指标、以及指令伫列相关的数据结构)以进行判断或是记录指令伫列中的读取指令的索引的对应关系,这亦会造成第一处理核心1621的效能浪费。
在第三实施例中,在动态随机存取存储器190中的第二预定空间430配置了请求位元表410及回应位元表412,如图4所示。其中,第一处理核心1621及第二处理核心1622是分别管理请求位元表410及回应位元表412。举例来说,请求位元表410中具有多个栏位4101,且各栏位4101相应于一群组映射表401,藉以表示相应的群组映射表401的请求状态(Request Status)。请求位元表412中具有多个栏位4121,且各栏位4121亦相应于一群组映射表401,藉以表示相应的群组映射表401的回应状态(Acknowledge Status)。在一些实施例中,请求位元表410及回应位元表412配置于静态随机存取存储器166。
当电子装置100开机时,第一处理核心1621(及/或第二处理核心)重置请求位元表410及回应位元表412中的所有栏位4101及4121,例如重置为0。当处理单元162接收到主机指令且第一处理核心1621判断在主机指令中的特定逻辑地址的操作需要读取相应的群组映射表401(例如为特定群组映射表),第一处理核心1621是将欲读取的特定群组映射表在请求位元表410中的相应的栏位的数值进行切换(toggle)。若特定群组映射表在请求位元表410中的相应的栏位的数值为0,则第一处理核心1621将特定群组映射表在请求位元表410中的相应的栏位的数值切换为1。若特定群组映射表在请求位元表410中的相应的栏位的数值为1,则第一处理核心1621是将特定群组映射表在请求位元表410中的相应的栏位的数值切换为0。
当第一处理核心1621将欲读取的特定群组映射表在请求位元表410中的相应的栏位4101的数值进行切换后,第一处理核心1621会将欲读取的特定群组映射表相应的操作指令(例如第一读取指令)写入至先进先出缓冲器1623。其中,第一读取指令指令带有特定群组映射表的物理地址以及将由快闪存储器180读取出的特定群组映射表要写入至动态随机存取存储器190的第一预定空间420的物理地址(或逻辑地址)。
需注意的是,当第一处理核心1621将欲读取的特定群组映射表相应的操作指令写入至先进先出缓冲器1623后,第一处理核心1621并不需等待第二处理核心1622将特定群组映射表成功读取至动态随机存取存储器190,即可继续处理其他主机指令(之前或之后的主机指令),例如,依据已储存于动态随机存取存储器190的群组映射表401,继续之前主机指令的执行;或是,执行之后主机指令,判断所需的群组映射表是否皆已在动态随机存取存储器190,判断是否应自快闪存储器180读取的特定群组映射表,如果判断结果是,则切换请求位元表410并写入操作指令至先进先出缓冲器1623。
当第二处理核心1622从先进先出缓冲器1623取得操作指令,并执行上述操作指令,将从快闪存储器180所读取特定群组映射表写入动态随机存取存储器190后(意即完成上述操作指令),第二处理核心1622是将所读取的特定群组映射表在回应位元表412中的相应的栏位4121的数值进行切换。若特定群组映射表在回应位元表412中的相应的栏位4121的数值为0,则第二处理核心1622是将上述栏位4121的数值切换为1。若特定群组映射表在回应位元表412中的相应的栏位4121的数值为1,则第二处理核心1622是将上述栏位4121的数值切换为0。第二处理核心1622亦可依据类似方式从先进先出缓冲器1623取得后续的操作指令,再从快闪存储器180读取相应的群组映射表401,并将所读取的群组映射表401在回应位元表412中的相应的栏位4121的数值进行切换。
需注意的是,请求位元表410及回应位元表412中的所有栏位4101及4121是在开机时重置为0,且数据储存装置140会持续地从主机120接收存取指令。当第一处理核心1621第一次发出相应于上述特定群组映射表的操作指令后,第一处理核心1621会将上述特定群组映射表在请求位元表410中的相应栏位4101的数值切换为1。当第二处理核心1622成功地将上述特定群组映射表从快闪存储器180读取至动态随机存取存储器190后,第二处理核心1622会将上述特定群组映射表在回应位元表412中的相应栏位4121的数值切换为1。
然而,第一处理核心1621所执行的预定置换机制可能会将已储存至动态随机存取存储器190中的上述特定群组映射表置换为其他的群组映射表401。因此,当第一处理核心1621执行后续主机指令并再度发出相应于上述特定群组映射表的读取指令后,第一处理核心1621会将上述特定群组映射表在请求位元表410中的相应栏位4101的数值由1切换为0。类似地,当第二处理核心1622再度成功地将上述特定群组映射表从快闪存储器180读取至动态随机存取存储器190后,第二处理核心1622会将上述特定群组映射表在回应位元表412中的相应栏位4121的数值由1切换为0。
详细而言,在第一处理核心1621写入上述特定群组映射表401的操作指令至先进先出缓冲器1623后,在预定条件成立时,第一处理核心1621是比对请求位元表410及回应位元表412以判断上述特定群组映射表是否已成功地被第二处理核心1622从快闪存储器180读取至动态随机存取存储器190。举例来说,在第一处理核心1621写入上述特定群组映射表401的操作指令至先进先出缓冲器1623后,若上述特定群组映射表在请求位元表410及回应位元表412中的相应栏位的数值一致(例如均为0或均为1),则表示上述特定群组映射表已成功地写入动态随机存取存储器190。此外,第一处理核心1621比对请求位元表410及回应位元表412时,可比对请求位元表410及回应位元表412中的全部栏位4101及4121,或是仅针对上述特定群组映射表在请求位元表410及回应位元表412的相应栏位4101及4121进行比对。
在一实施例中,上述预定条件例如为:在第一处理核心1621写入上述特定群组映射表401的读取指令至先进先出缓冲器1623后,第一处理核心1621可在经过预定时间或是周期性地比对请求位元表410及回应位元表412,或是在写入预定数量的操作指令至先进先出缓冲器1623后再比对请求位元表410及回应位元表412。
选择性地或额外地,上述预定条件例如为:第一处理核心1621判断需要使用上述特定群组映射表以进行相关操作,例如第一处理核心1621已执行完毕目前主机指令中的特定逻辑地址的后续逻辑地址的操作(例如目前主机指令中的后续逻辑地址相应的群组映射表已储存于动态随机存取存储器190)及/或第一处理核心1621已将目前的主机指令中的后续逻辑地址相应的群组映射表的操作指令均写入至先进先出缓冲器1623。
举例来说,第一处理核心1621可依序判断在目前主机指令中的各逻辑地址相应的群组映射表401是否已储存于动态随机存取存储器190。若判断目前主机指令的特定逻辑地址相应的特定群组映射表已储存于动态随机存取存储器190,则第一处理核心1621可执行此特定逻辑地址的操作,例如,依据群组映射表401所记录的物理位置(快闪存储器180的物理位置)中读取页面数据,或是在写入超级页面至快闪存储器180之后,依据超级页面的物理位置来更新群组映射表401的内容等等。若判断目前主机指令的特定逻辑地址相应的特定群组映射表尚未储存于动态随机存取存储器190,则第一处理核心1621可径行执行目前主机指令中的后续逻辑地址的操作而不需等待第二处理核心1622将特定逻辑地址相应的特定群组映射表暂存至动态随机存取存储器190(意即完成特定群组映射表的操作指令)。
若目前主机指令中的各逻辑地址相应的群组映射表401是否储存于动态随机存取存储器190的状态均已判断完毕,则第一处理核心1621可依序判断目前主机指令中群组映射表401尚未储存于动态随机存取存储器190的各逻辑地址的读取指令是否已执行完毕。第一处理核心1621例如可在预定条件成立时,从动态随机存取存储器190(或静态随机存取存储器166)读取请求位元表410及回应位元表412,并比对请求位元表410及回应位元表412中的所有栏位4101及4121。
图5为依据本发明一实施例中的逻辑至物理地址映射表的载入方法的流程图。请同时参考图1、4、5。
在步骤S510,第一处理核心1621接收来自主机120的主机指令,其中主机指令包括一或多个逻辑地址,主机指令例如可为写入指令或读取指令。举例来说,主机指令为读取指令,读取的标的为LBA#100~#107的数据。
在步骤S520,第一处理核心1621判断主机指令的一或多个逻辑地址所相应的一特定群组映射表是否储存于动态随机存取存储器190中,如果是则执行步骤S550,如果否则执行步骤S530。LBA#100~#107的映射关系乃记录于群组映射表#0,因此,第一处理核心1621判断群组映射表#0是否储存于动态随机存取存储器190中,如果否,则执行步骤S530。
在步骤S530,第一处理核心1621将特定群组映射表在第一位元表相应的第一栏位的数值进行切换,并将读取特定群组映射表的操作指令写入至先进先出缓冲器1623。群组映射表#0乃对应至请求位元表410的栏位#0,因此,第一处理核心1621切换请求位元表410的栏位#0的数值,例如,由"0"切换成"1",或由"1"切换成"0",并写入读取群组映射表#0的操作指令至先进先出缓冲器1623。其中,操作指令包括群组映射表#0的物理地址(例如包括快闪存储器晶粒的编号及页面数据的物理地址)、以及群组映射表#0写入至动态随机存取存储器190的第一预定空间420的物理地址。
在步骤S540,第二处理核心1622执行先进先出缓冲器1623的操作指令,并于执行成功后将特定群组映射表在第二位元表相应的第二栏位的数值进行切换。第二处理核心1622执行先进先出缓冲器1623的操作指令,从快闪存储器180读取群组映射表#0,并将群组映射表#0载入至动态随机存取存储器190。群组映射表#0乃对应至回应位元表412的栏位#0,第二处理核心1622切换回应位元表412的栏位#0的数值,例如,由"1"切换成"0",或由"0"切换成"1"。
在步骤S550,第一处理核心1621依据储存于动态随机存取存储器190中的特定群组映射表以执行主机指令。群组映射表#0记录LBA#100~#107所对应的物理地址,第一处理核心1621再读取LBA#100~#107所对应的物理地址中所储存的数据,并输出数据至主机120。
综上所述,本发明是提供一种数据储存装置及逻辑至物理地址映射表的载入方法,其可在数据储存装置中具有第一处理核心及第二处理核心的存储器控制器的动态随机存取存储器的空间不足以存放整张逻辑至物理地址映射表的情况下,分别利用第一处理核心及第二处理核心分别管理请求位元表及回应位元表。
当主机指令中的特定逻辑地址相应的特定群组映射表未储存于动态随机存取存储器时,第一处理核心可将特定群组映射表的读取指令写入至先进先出缓冲器并将特定群组映射表在请求位元表中的相应栏位的数值进行切换。第二处理核心则可由先进先出缓冲器取得特定群组映射表的读取指令并执行,当第二处理核心成功地将特定群组映射表从快闪存储器读取至动态随机存取存储器时,第二处理核心则会将特定群组映射表在回应位元表中的相应栏位的数值进行切换。
第一处理核心在写入读取指令至先进先出缓冲器后,可继续处理主机指令中后续逻辑地址的其他操作,并不需持续等待第二处理核心完成读取指令。第一处理核心并可在预定条件满足时才比对特定群组映射表在请求位元表及回应位元表中的相应栏位以判断特定群组映射表是否已储存于动态随机存取存储器。因此,本发明可增进具有两个处理核心的数据储存装置的处理效能。
本发明虽以较佳实施例揭示如上,然其并非用以限定本发明的范围,任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护范围以权利要求书界定为准。

Claims (18)

1.一种数据储存装置,包括:
一快闪存储器,用以储存一逻辑至物理地址映射表,其中该逻辑至物理地址映射表划分为多个群组映射表;
一动态随机存取存储器,用以储存一部分的这些群组映射表、一第一位元表及一第二位元表,其中该第一位元表包括多个第一栏位且该第二位元表包括多个第二栏位,各群组映射表相应于各第一栏位及各第二栏位;以及
一存储器控制器,包括一第一处理核心及一第二处理核心,其中该第一处理核心用以接收来自一主机的一主机指令,其中该主机指令包括一或多个逻辑地址;
其中,适应于该第一处理核心判断在该主机指令中的该一或多个逻辑地址的一特定逻辑地址在这些群组映射表中所相应的一特定群组映射表尚未储存于该动态随机存取存储器,该第一处理核心将该特定群组映射表相应的该第一位元表的该第一栏位的数值进行切换,并将该特定群组映射表的一读取指令写入至一先进先出缓冲器,
其中,该第二处理核心执行来自该先进先出缓冲器的该读取指令,并且当成功地执行该读取指令将该特定群组映射表从该快闪存储器读取至该动态随机存取存储器后,该第二处理核心将该特定群组映射表在该第二位元表相应的该第二栏位的数值进行切换,
其中,该第一处理核心依据储存于该动态随机存取存储器中的该特定群组映射表以执行该主机指令。
2.如权利要求1所述的数据储存装置,其特征在于,该第一处理核心写入至该先进先出缓冲器的该读取指令包括该特定群组映射表在该快闪存储器中的一物理地址以及欲储存该特定群组映射表至该动态随机存取存储器中的物理地址。
3.如权利要求2所述的数据储存装置,其特征在于,当该数据储存装置开机时,该第一处理核心是将该第一位元表及该第二位元表中的各第一栏位及各第二栏位重置为0。
4.如权利要求3所述的数据储存装置,其特征在于,在该第一处理核心比较相应于该特定群组映射表在该第一位元表的该第一栏位及在该第二位元表的该第二栏位以判断该特定群组映射表是否已储存至该动态随机存取存储器的过程中,适应于该第一处理核心判断相应于该特定群组映射表在该第一位元表的该第一栏位的数值与该第二位元表的该第二栏位的数值相等时,该第一处理核心判断该特定群组映射表已储存至该动态随机存取存储器。
5.如权利要求1所述的数据储存装置,其特征在于,适应于该第一处理核心将该特定群组映射表的该读取指令写入至该先进先出缓冲器,该第一处理核心继续执行该主机指令中的该特定逻辑地址的后续逻辑地址的操作而不等待该第二处理核心完成该读取指令。
6.如权利要求1所述的数据储存装置,其特征在于,适应于一预定条件已满足时,该第一处理核心比较相应于该特定群组映射表在该第一位元表的该第一栏位及在该第二位元表的该第二栏位以判断该特定群组映射表是否已储存至该动态随机存取存储器。
7.如权利要求6所述的数据储存装置,其特征在于,该预定条件为在该第一处理核心将该特定群组映射表的该读取指令写入至该先进先出缓冲器后已经过一预定时间,或是该第一处理核心已写入一预定数量的该读取指令至该先进先出缓冲器。
8.如权利要求6所述的数据储存装置,其特征在于,该预定条件为在该第一处理核心判断需要使用该特定群组映射表以进行相关操作。
9.如权利要求5所述的数据储存装置,其特征在于,适应于该第一处理核心已执行完毕该主机指令中的该特定逻辑地址的后续逻辑地址的操作及/或该第一处理核心已将该主机指令中的各逻辑地址相应的该群组映射表的读取指令均写入至该先进先出缓冲器时,该第一处理核心判断需要使用该特定群组映射表以进行相关操作。
10.一种逻辑至物理地址映射表的载入方法,用于一数据储存装置,其中该数据储存装置包括一快闪存储器、一动态随机存取存储器、一第一处理核心、及一第二处理核心,该快闪存储器用以储存一逻辑至物理地址映射表,其中该逻辑至物理地址映射表划分为多个群组映射表,且该动态随机存取存储器储存一部分的这些群组映射表、一第一位元表、及一第二位元表,其中该第一位元表包括多个第一栏位且该第二位元表包括多个第二栏位,各群组映射表相应于各第一栏位及各第二栏位,该方法包括:
利用该第一处理核心接收来自一主机的一主机指令,其中该主机指令包括一或多个逻辑地址;
适应于在该主机指令中的该一或多个逻辑地址的一特定逻辑地址在这些群组映射表中所相应的一特定群组映射表尚未储存于该动态随机存取存储器,利用该第一处理核心将该特定群组映射表相应的该第一位元表的该第一栏位的数值进行切换,并将该特定群组映射表的一读取指令写入至一先进先出缓冲器;
利用该第二处理核心执行来自该先进先出缓冲器的该读取指令;
当成功地执行该读取指令将该特定群组映射表从该快闪存储器读取至该动态随机存取存储器后,利用该第二处理核心将该特定群组映射表在该第二位元表相应的该第二栏位的数值进行切换;以及
利用该第一处理核心依据储存于该动态随机存取存储器中的该特定群组映射表以执行该主机指令。
11.如权利要求10所述的逻辑至物理地址映射表的载入方法,其特征在于,该第一处理核心写入至该先进先出缓冲器的该读取指令包括该特定群组映射表在该快闪存储器中的一物理地址以及欲储存该特定群组映射表至该动态随机存取存储器中的物理地址。
12.如权利要求11所述的逻辑至物理地址映射表的载入方法,其特征在于,还包括:
当该数据储存装置开机时,利用该第一处理核心将该第一位元表及该第二位元表中的各第一栏位及各第二栏位重置为0。
13.如权利要求12所述的逻辑至物理地址映射表的载入方法,其特征在于,利用该第一处理核心比较相应于该特定群组映射表在该第一位元表的该第一栏位及在该第二位元表的该第二栏位以判断该特定群组映射表是否已储存至该动态随机存取存储器的步骤包括:
当该第一处理核心判断相应于该特定群组映射表在该第一位元表的该第一栏位的数值与该第二位元表的该第二栏位的数值相等时,该第一处理核心判断该特定群组映射表已储存至该动态随机存取存储器。
14.如权利要求10所述的逻辑至物理地址映射表的载入方法,其特征在于,还包括:
适应于该第一处理核心将该特定群组映射表的该读取指令写入至该先进先出缓冲器,利用该第一处理核心继续执行该主机指令中的该特定逻辑地址的后续逻辑地址的操作而不等待该第二处理核心完成该读取指令。
15.如权利要求10所述的逻辑至物理地址映射表的载入方法,其特征在于,还包括:
适应于一预定条件已满足时,利用该第一处理核心比较相应于该特定群组映射表在该第一位元表的该第一栏位及在该第二位元表的该第二栏位以判断该特定群组映射表是否已储存至该动态随机存取存储器。
16.如权利要求15所述的逻辑至物理地址映射表的载入方法,其特征在于,该预定条件为在该第一处理核心将该特定群组映射表的该读取指令写入至该先进先出缓冲器后已经过一预定时间,或是该第一处理核心已写入一预定数量的该读取指令至该先进先出缓冲器。
17.如权利要求15所述的逻辑至物理地址映射表的载入方法,其特征在于,该预定条件为在该第一处理核心判断需要使用该特定群组映射表以进行相关操作。
18.如权利要求14所述的逻辑至物理地址映射表的载入方法,其特征在于,该第一处理核心判断需要使用该特定群组映射表以进行相关操作的步骤包括:
适应于该第一处理核心已执行完毕该主机指令中的该特定逻辑地址的后续逻辑地址的操作及/或该第一处理核心已将该主机指令中的各逻辑地址相应的该群组映射表的读取指令均写入至该先进先出缓冲器。
CN201910444860.7A 2019-05-06 2019-05-27 数据储存装置及逻辑至物理地址映射表的载入方法 Active CN111897743B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW108115525A TWI710905B (zh) 2019-05-06 2019-05-06 資料儲存裝置及邏輯至物理位址映射表之載入方法
TW108115525 2019-05-06

Publications (2)

Publication Number Publication Date
CN111897743A CN111897743A (zh) 2020-11-06
CN111897743B true CN111897743B (zh) 2024-07-05

Family

ID=73045793

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910444860.7A Active CN111897743B (zh) 2019-05-06 2019-05-27 数据储存装置及逻辑至物理地址映射表的载入方法

Country Status (3)

Country Link
US (1) US11210226B2 (zh)
CN (1) CN111897743B (zh)
TW (1) TWI710905B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210132806A (ko) * 2020-04-28 2021-11-05 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
US11481116B2 (en) * 2020-09-09 2022-10-25 Microsoft Technology Licensing, Llc Computing device with independently coherent nodes
CN116710902A (zh) * 2020-12-28 2023-09-05 华为技术有限公司 快闪存储装置、存储控制方法和电子设备
US11977767B2 (en) * 2022-03-14 2024-05-07 Silicon Motion, Inc. Method and apparatus for caching address mapping information in flash memory based storage device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102103566A (zh) * 2009-12-18 2011-06-22 Nxp股份有限公司 闪存存储器接口
CN104750616A (zh) * 2013-12-26 2015-07-01 慧荣科技股份有限公司 数据储存装置以及快闪存储器控制方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1308836C (zh) * 2003-05-27 2007-04-04 智邦科技股份有限公司 数据储存的方法及***
US7793036B2 (en) * 2007-05-30 2010-09-07 Intel Corporation Method and arrangements for utilizing NAND memory
TWI454906B (zh) * 2009-09-24 2014-10-01 Phison Electronics Corp 資料讀取方法、快閃記憶體控制器與儲存系統
JP5826728B2 (ja) 2012-09-07 2015-12-02 株式会社東芝 情報処理装置
US9690695B2 (en) * 2012-09-20 2017-06-27 Silicon Motion, Inc. Data storage device and flash memory control method thereof
CN104794070B (zh) * 2015-04-23 2017-10-31 南京道熵信息技术有限公司 基于动态非覆盖raid技术的固态闪存写缓存***及方法
US10181352B2 (en) * 2015-09-09 2019-01-15 Toshiba Memory Corporation Memory system and method of controlling nonvolatile memory
KR20180019419A (ko) * 2016-08-16 2018-02-26 삼성전자주식회사 메모리 컨트롤러, 메모리 시스템 및 그 동작방법
US10489204B2 (en) 2017-01-31 2019-11-26 Samsung Electronics Co., Ltd. Flexible in-order and out-of-order resource allocation
US10209914B2 (en) 2017-01-31 2019-02-19 Sandisk Technologies Llc System and method for dynamic folding or direct write based on block health in a non-volatile memory system
KR20190017550A (ko) 2017-08-11 2019-02-20 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20200085966A (ko) * 2019-01-07 2020-07-16 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법
US10908821B2 (en) * 2019-02-28 2021-02-02 Micron Technology, Inc. Use of outstanding command queues for separate read-only cache and write-read cache in a memory sub-system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102103566A (zh) * 2009-12-18 2011-06-22 Nxp股份有限公司 闪存存储器接口
CN104750616A (zh) * 2013-12-26 2015-07-01 慧荣科技股份有限公司 数据储存装置以及快闪存储器控制方法

Also Published As

Publication number Publication date
US11210226B2 (en) 2021-12-28
TW202042065A (zh) 2020-11-16
US20200356491A1 (en) 2020-11-12
TWI710905B (zh) 2020-11-21
CN111897743A (zh) 2020-11-06

Similar Documents

Publication Publication Date Title
CN111897743B (zh) 数据储存装置及逻辑至物理地址映射表的载入方法
CN111459844B (zh) 数据储存装置及用于存取逻辑至物理地址映射表的方法
US7937523B2 (en) Memory system with nonvolatile semiconductor memory
US9122611B2 (en) Method for giving read commands and reading data, and controller and storage system using the same
US7302517B2 (en) Apparatus and method for controlling execute-in-place (XIP) in serial flash memory, and flash memory chip using the same
TWI592865B (zh) 資料讀取方法、資料寫入方法及使用所述方法的儲存控制器
US9176865B2 (en) Data writing method, memory controller, and memory storage device
US20130013853A1 (en) Command executing method, memory controller and memory storage apparatus
KR102649131B1 (ko) 메모리 시스템 내 대용량 데이터 저장이 가능한 블록에서의 유효 데이터 체크 방법 및 장치
CN110908927A (zh) 数据储存装置及其删除命名空间的方法
US8898414B2 (en) Storage devices and methods of driving storage devices
CN113282234B (zh) 存储装置、存储***、及其操作方法
US9037781B2 (en) Method for managing buffer memory, memory controllor, and memory storage device
CN107943710B (zh) 存储器管理方法及使用所述方法的存储控制器
CN114063893A (zh) 数据储存装置与数据处理方法
US10776280B1 (en) Data storage device and method for updating logical-to-physical mapping table
US20230273878A1 (en) Storage device for classifying data based on stream class number, storage system, and operating method thereof
US11144380B2 (en) Memory controller and storage device including the same
CN112825025A (zh) 控制器及其操作方法
KR20210018570A (ko) 컨트롤러, 컨트롤러의 동작 방법 및 이를 포함하는 저장 장치
CN109542336B (zh) 存储设备及其操作方法
US20240012564A1 (en) Memory controller and storage device including the same
US20190213122A1 (en) Method of operating data storage device and method of operating data processing system including the same
CN118072792A (zh) 主机命令的逻辑地址区间搜索方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant