CN113867619A - 存储器控制器及其操作方法 - Google Patents
存储器控制器及其操作方法 Download PDFInfo
- Publication number
- CN113867619A CN113867619A CN202110215901.2A CN202110215901A CN113867619A CN 113867619 A CN113867619 A CN 113867619A CN 202110215901 A CN202110215901 A CN 202110215901A CN 113867619 A CN113867619 A CN 113867619A
- Authority
- CN
- China
- Prior art keywords
- memory
- command
- segment
- segments
- controller
- 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.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 352
- 238000011017 operating method Methods 0.000 title description 2
- 230000004044 response Effects 0.000 claims abstract description 20
- 238000013507 mapping Methods 0.000 claims description 84
- 238000000034 method Methods 0.000 claims description 25
- 230000000977 initiatory effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 10
- 238000012937 correction Methods 0.000 description 9
- 239000010410 layer Substances 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 4
- 101100524346 Xenopus laevis req-a gene Proteins 0.000 description 3
- 101100524347 Xenopus laevis req-b gene Proteins 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 230000003936 working memory Effects 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 101710178035 Chorismate synthase 2 Proteins 0.000 description 2
- 101710152694 Cysteine synthase 2 Proteins 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 101000934888 Homo sapiens Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Proteins 0.000 description 1
- 101000648827 Homo sapiens TPR and ankyrin repeat-containing protein 1 Proteins 0.000 description 1
- 102100025393 Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Human genes 0.000 description 1
- 102100028173 TPR and ankyrin repeat-containing protein 1 Human genes 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30047—Prefetch instructions; cache control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本公开涉及一种存储器控制器,该存储器控制器包括主机接口控制器、第一队列、第二队列和高速缓存存储器。主机接口控制器可以被配置为基于从主机接收到的请求来生成与该请求相对应的一个或多个命令段。第一队列可以被配置为存储该一个或多个命令段。第二队列可以被配置为存储该一个或多个命令段之中的目标命令段。响应于目标命令段被从第一队列传送到第二队列,存储器控制器将与该目标命令段相对应的目标映射段高速缓存到高速缓存存储器中。
Description
相关申请的交叉引用
本申请要求于2020年6月30日向韩国知识产权局提交的申请号为10-2020-0080589的韩国专利申请的优先权,该韩国专利申请的全部公开内容通过引用并入本文。
技术领域
本公开的各个实施例总体上涉及一种电子装置,并且更特别地,涉及一种存储器控制器以及操作该存储器控制器的方法。
背景技术
存储装置是在诸如计算机或智能电话的主机装置的控制下存储数据的装置。存储装置可以包括存储数据的存储器装置和控制存储器装置的存储器控制器。存储器装置分为易失性存储器装置和非易失性存储器装置。
易失性存储器装置是仅在供电时才存储数据并且在供电中断时丢失所存储的数据的存储器装置。易失性存储器装置的示例可以包括静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)。
非易失性存储器装置可以是一种即使在供电中断时也可以保留所存储的数据的存储器装置。非易失性存储器装置的示例可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)和闪速存储器。
发明内容
本公开的各个实施例涉及一种具有提高的映射高速缓存性能的存储器控制器以及操作该存储器控制器的方法。
本公开的实施例可以提供一种存储器控制器。该存储器控制器可以包括主机接口控制器、第一队列、第二队列和高速缓存存储器。主机接口控制器可以被配置为基于从主机接收到的请求来生成与该请求相对应的一个或多个命令段。第一队列可以被配置为存储该一个或多个命令段。第二队列可以被配置为存储该一个或多个命令段之中的目标命令段。响应于目标命令段被从第一队列传送到第二队列,存储器控制器将与该目标命令段相对应的目标映射段高速缓存到高速缓存存储器中。
本公开的实施例可以提供一种操作存储器控制器的方法,该存储器控制器包括第一队列、第二队列、高速缓存存储器和主机接口控制器。该方法可以包括:由主机接口控制器基于来自主机的请求,生成与该请求相对应的一个或多个命令段;将该一个或多个命令段存储在第一队列中;将该一个或多个命令段之中的目标命令段从第一队列传送到第二队列;以及由主机接口控制器响应于目标命令段被从第一队列传送到第二队列,将与目标命令段相对应的目标映射段高速缓存到高速缓存存储器中。
本公开的实施例可以提供一种用于控制存储器装置的存储器控制器。该存储器控制器可以包括主机接口控制器、存储器操作控制器、缓冲存储器和高速缓存存储器。主机接口控制器可以被配置为基于从主机接收到的请求来生成与该请求相对应的一个或多个命令段。存储器操作控制器可以被配置为基于一个或多个命令段之中的目标命令段来控制存储器装置的操作。缓冲存储器可以被配置为存储存储器装置的多条逻辑到物理地址映射信息。主机接口控制器可以被配置为将缓冲存储器中存储的多条逻辑到物理地址映射信息之中与目标命令段相对应的目标映射段高速缓存在高速缓存存储器中,并且存储器操作控制器可以被配置为将缓冲存储器中存储的多条逻辑到物理地址映射信息之中与一个或多个命令段中除了目标命令段之外的剩余命令段相对应的映射段高速缓存在高速缓存存储器中。
附图说明
图1示出根据本公开的实施例的存储装置。
图2示出图1的存储器控制器的配置和操作。
图3示出图2的命令队列的操作。
图4A示出根据实施例的映射段的高速缓存。
图4B示出根据实施例的高速缓存访问。
图5A示出根据实施例的映射段的高速缓存。
图5B示出根据实施例的高速缓存访问。
图6A示出根据实施例的映射段的高速缓存。
图6B示出根据实施例的高速缓存访问。
图7A示出根据实施例的映射段的高速缓存。
图7B示出根据实施例的高速缓存访问。
图8是示出根据本公开的实施例的操作存储器控制器的方法的流程图。
图9示出图1的存储器控制器的实施例。
图10示出应用根据本公开的实施例的存储装置的存储卡系统。
图11示出应用根据本公开的实施例的存储装置的固态驱动器(SSD)系统。
图12示出应用根据本公开的实施例的存储装置的用户系统。
具体实施方式
例示了本说明书或申请中引入的本公开的实施例中的特定结构或功能描述,以描述根据本公开的构思的实施例。根据本公开的构思的实施例可以以各种形式来实践,并且不应被解释为限于说明书或申请中描述的实施例。
图1是示出根据本公开的实施例的存储装置50的示图。
存储装置50可以包括存储器装置100和控制存储器装置100的操作的存储器控制器200。存储装置50可以是在诸如移动电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、电视(TV)、平板个人计算机(PC)或车载信息娱乐系统的主机300的控制下存储数据的装置。
根据被设置为用于与主机300通信的主机接口,存储装置50可以被制造为各种类型的存储装置中的任意一种。例如,存储装置50可以被实施为例如以下的各种类型的存储装置中的任意一种:固态驱动器(SSD),诸如MMC、嵌入式MMC(eMMC)、缩小尺寸的MMC(RS-MMC)或微型MMC的多媒体卡,诸如SD、迷你SD或微型SD卡的安全数字卡,通用串行总线(USB)存储装置,通用闪存(UFS)装置,个人计算机存储卡国际协会(PCMCIA)卡类型的存储装置,外围组件互连(PCI)卡类型的存储装置,高速PCI(PCI-E)卡类型的存储装置,紧凑型闪存(CF)卡,智能媒体卡和记忆棒。
存储装置50可以以诸如以下的各种类型的封装形式中的任意一种来制造:例如,堆叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)和晶圆级堆叠封装(WSP)。
存储器装置100可以存储数据。存储器装置100可以响应于存储器控制器200的控制而操作。存储器装置100可以包括存储器单元阵列,存储器单元阵列包括存储数据的多个存储器单元。
存储器单元中的每一个可以被实施为能够存储一个数据位的单层单元(SLC)、能够存储两个数据位的多层单元(MLC)、能够存储三个数据位的三层单元(TLC)或能够存储四个数据位的四层单元(QLC)。
存储器单元阵列可以包括多个存储块。每个存储块可以包括多个页面。单个页面可以包括多个存储器单元。在实施例中,页面可以是将数据存储在存储器装置100中或读取存储器装置100中存储的数据的单位。
存储块可以是擦除数据的单位。在实施例中,存储器装置100可以采用诸如以下的许多替代形式:双倍数据速率同步动态随机存取存储器(DDR SDRAM)、低功率双倍数据速率第四代(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)SDRAM、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器装置、电阻式RAM(RRAM)、相变存储器(PRAM)、磁阻RAM(MRAM)、铁电RAM(FRAM)或自旋转移扭矩RAM(STT-RAM)。在本说明书中,为了便于描述,将基于存储器装置100为NAND闪速存储器的假设进行描述。
存储器装置100可以从存储器控制器200接收命令和地址,并且可以访问存储器单元阵列中的由该地址选择的区域。也就是说,存储器装置100可以对由该地址选择的区域执行由命令指示的操作。例如,存储器装置100可以执行写入操作(即,编程操作)、读取操作和擦除操作中的任意一种。在编程操作期间,存储器装置100可以将数据编程到由地址选择的区域。在读取操作期间,存储器装置100可以从由地址选择的区域读取数据。在擦除操作期间,存储器装置100可以擦除由地址选择的区域中存储的数据。
存储器控制器200控制存储装置50的全部操作。
当向存储装置50施加电力时,存储器控制器200可以运行固件(FW)。当存储器装置100为闪速存储器装置时,存储器控制器200可以运行诸如闪存转换层(FTL)的固件,以控制主机300与存储器装置100之间的通信。
在实施例中,存储器控制器200可以从主机300接收数据和逻辑块地址(LBA),并且可以将逻辑块地址(LBA)转换成物理块地址(PBA),物理块地址指示存储器装置100中包括的并且将存储数据的存储器单元的地址。
存储器控制器200可以响应于从主机300接收到的请求而控制存储器装置100,从而执行编程操作、读取操作或擦除操作。在编程操作期间,存储器控制器200可以将写入命令、物理块地址和数据提供到存储器装置100。在读取操作期间,存储器控制器200可以将读取命令和物理块地址提供到存储器装置100。在擦除操作期间,存储器控制器200可以将擦除命令和物理块地址提供到存储器装置100。
在实施例中,存储器控制器200可以自主地生成命令、地址和(在一些情况下)数据,而不管是否接收到来自主机300的请求,并且可以将该命令、地址和(在一些情况下)数据传输到存储器装置100。例如,存储器控制器200可以将命令、地址和数据提供到存储器装置100以执行诸如用于损耗均衡的编程操作和用于垃圾收集的编程操作的后台操作。
在实施例中,存储器控制器200可以控制至少两个存储器装置100。在这种情况下,存储器控制器200可以根据交错方案来控制存储器装置100以提高操作性能。交错方案可以是使至少两个存储器装置100的操作时段彼此重叠的操作方式。
主机300可以使用诸如以下各种通信协议中的至少一种与存储装置50通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)和减少负载的DIMM(LRDIMM)通信协议。
图2是示出图1的存储器控制器的配置和操作的示图。
参照图2,存储器控制器200可以包括缓冲存储器210、高速缓存存储器220、主机接口控制器230、命令队列240和存储器操作控制器250。
命令队列240可以包括第一队列241和第二队列242。
缓冲存储器210可以存储存储器装置100的多条逻辑到物理地址映射信息。逻辑到物理地址映射信息可以是指示从主机300接收的逻辑地址和存储器装置100中存储数据的物理地址之间的映射关系的信息。逻辑到物理地址映射信息可以包括多个映射段。每个映射段可以包括预设数量的逻辑到物理地址对。
高速缓存存储器220可以存储从缓冲存储器210接收的映射段。高速缓存存储器220可以是容量小于缓冲存储器210但速度高于缓冲存储器210的存储器。
主机接口控制器230可以从主机300接收请求。主机接口控制器230可以基于从主机300接收的请求来生成一个或多个命令段。在实施例中,命令段的单位可以是每秒的输入/输出操作(IOPS)。例如,一个IOPS可以是处理4kB数据的单位,但是实施例中一个IOPS处理的数据量不限于此。
例如,主机接口控制器230可以从主机300接收32KB的写入数据和写入请求。将基于以下假设进行描述:响应于一个写入命令段而执行的写入操作中待编程的数据量为4kB。在这种情况下,主机接口控制器230可以基于接收的写入请求来生成八个写入命令段(对应于八个IOPS)。
主机接口控制器230可以从主机300接收关于待存储数据的逻辑地址的信息以及写入请求。从主机300接收的逻辑地址信息可以包括一个或多个逻辑地址段。该一个或多个逻辑地址段可以分别对应于一个或多个写入命令段。
在其它示例中,主机接口控制器230可以从主机300接收对存储器装置100中存储的32KB的数据的读取请求。将基于以下假设进行描述:响应于一个读取命令段而执行的读取操作中待读取的数据量为4KB。在这种情况下,主机接口控制器230可以基于接收到的读取请求来生成八个读取命令段(对应于八个IOPS)。
主机接口控制器230可以从主机300接收关于存储数据的逻辑地址的信息以及读取请求。从主机300接收的逻辑地址信息可以包括一个或多个逻辑地址段。该一个或多个逻辑地址段可以分别对应于一个或多个读取命令段。
在实施例中,主机接口控制器230可以将所生成的一个或多个命令段存储在第一队列241中。当第一队列241中存储的命令段之中的目标命令段被传送到第二队列242时,主机接口控制器230可以将缓冲存储器210中存储的多条逻辑到物理地址映射信息之中的目标映射段高速缓存到高速缓存存储器220中。目标映射段可以包括关于将执行与目标命令段相对应的存储器操作的地址的信息。存储器操作可以是读取操作、编程操作或擦除操作。
在实施例中,主机接口控制器230可以将缓冲存储器210中存储的多条逻辑到物理地址映射信息之中与第一个命令段相对应的映射段高速缓存到高速缓存存储器220中。第一个命令段可以是一个或多个命令段之中与第一顺序位置相对应的命令段,即,第一顺序的命令段。一个或多个命令段的顺序可以根据与命令段相对应的逻辑地址段的范围来确定。
例如,主机接口控制器230可以从主机300接收与LBA1至LBA100相对应的读取请求。假设主机接口控制器230基于该读取请求生成第一至第四读取命令段,则与第一读取命令段相对应的第一逻辑地址段的范围可以为从LBA1至LBA25。与第二读取命令段相对应的第二逻辑地址段的范围可以为从LBA26至LBA50。与第三读取命令段相对应的第三逻辑地址段的范围可以为从LBA51至LBA75。与第四读取命令段相对应的第四逻辑地址段的范围可以为从LBA76至LBA100。
在第一至第四读取命令段之中,第一个命令段可以是逻辑地址段的范围在其它逻辑地址段范围之前的读取命令段。在上面的示例中,第一个命令段可以是与LBA1至LBA25相对应的读取命令段,即第一读取命令段。然而,如何确定第一个命令段不限于本实施例。
在实施例中,存储器操作控制器250可以将缓冲存储器210中存储的多条逻辑到物理地址映射信息之中与剩余命令段相对应的映射段高速缓存到高速缓存存储器220中。剩余命令段可以是除了第一个命令段之外的一个或多个命令段。在上面的示例中,剩余命令段可以是第二至第四读取命令段。
命令队列240可以存储由主机接口控制器230生成的命令段,并且可以将所存储的命令段提供到存储器操作控制器250。
第一队列241可以是未决队列(Pending Q)。第一队列241可以存储由主机接口控制器230生成的一个或多个命令段。第一队列241可以后续将所存储的一个或多个命令段提供到第二队列242。第一队列241可以按命令段输入到第一队列241的顺序将命令段顺序地提供到第二队列242。第一队列241可以是存储等待被传送到第二队列242的命令段的队列。
第二队列242可以是进程间通信队列(IPC Q)。第二队列242可以存储从第一队列241接收的每个命令段,并且可以后续将所存储的命令段提供到存储器操作控制器250。第二队列242可以是存储待由存储器操作控制器250处理的命令段的队列。当存储器操作控制器250准备好处理命令段时,第二队列242可以按命令段输入到第二队列242的顺序来将命令段顺序地提供到存储器操作控制器250。
在实施例中,第二队列242的大小可以小于或等于第一队列241的大小。
存储器操作控制器250可以基于从第二队列242接收的目标命令段来控制存储器装置100,从而执行存储器操作。为了执行存储器操作,存储器操作控制器250可以使用与目标命令段相对应的目标映射段来执行对目标命令段的逻辑地址的逻辑到物理地址转换。
存储器操作控制器250可以访问高速缓存存储器220,然后确定与目标命令段相对应的目标映射段是否被高速缓存在高速缓存存储器220中。当目标映射段被高速缓存在高速缓存存储器220中时,可以发生高速缓存命中。当目标映射段未高速缓存在高速缓存存储器220中时,可以发生高速缓存未命中。
当发生高速缓存命中时,存储器操作控制器250可以响应于从第二队列242接收的目标命令段而控制存储器装置100,从而基于高速缓存在高速缓存存储器220中的目标映射段来执行存储器操作。
当发生高速缓存未命中时,存储器操作控制器250可以响应于从第二队列242接收的目标命令段而控制存储器装置100,从而基于缓冲存储器210中存储的多条映射信息之中的目标映射段来执行存储器操作。当发生高速缓存未命中时,存储器操作控制器250而不是主机接口控制器230可以将缓冲存储器210中存储的多条映射信息之中的目标映射段高速缓存到高速缓存存储器220中。
因为高速缓存存储器220的操作速度高于缓冲存储器210的操作速度,所以在发生高速缓存命中的情况下,可以比在发生高速缓存未命中时更快地处理存储器操作。
存储器操作控制器250可以控制存储器装置100,从而基于管理启动信息来执行装置管理操作。
管理启动信息可以包括从主机300接收的数据的大小信息以及每当执行装置管理操作时被初始化的计时器信息中的至少一个。
装置管理操作可以包括以下中的至少一个:用于准备待存储写入数据的块的块擦除操作、获得空闲块的垃圾收集操作以及将缓冲存储器中存储的映射信息清除到存储器装置中的映射更新操作。然而,实施例不限于装置管理操作的这些示例。
每当从主机300接收的数据量达到预定量时,存储器操作控制器250可以基于管理启动信息来执行装置管理操作。存储器操作控制器250可以基于管理启动信息来执行装置管理操作,并且可以每当经过预定时间段时执行装置管理操作。
当没有正在执行装置管理操作时,存储器操作控制器250可以准备好处理命令段。存储器操作控制器250可以在没有正在执行装置管理操作时,响应于从第二队列242接收的目标命令段而控制存储器装置100,从而执行存储器操作。
图3是示出图2的命令队列240的操作的示图。
参照图3,主机接口控制器230可以从主机顺序地接收第一至第三请求REQ1至REQ3。
主机接口控制器230可以基于第一请求REQ1来生成第一和第二命令段CS1和CS2。主机接口控制器230可以基于第二请求REQ2来生成第三命令段CS3。主机接口控制器230可以基于第三请求REQ3来生成第四、第五和第六命令段CS4、CS5和CS6。基于每个请求所生成的命令段的数量可以根据响应于该请求而待处理的数据量来确定。
第一队列241可以存储第三至第六命令段CS3至CS6。第二队列242可以存储第一和第二命令段CS1和CS2。第一和第二命令段CS1和CS2可以是在由主机接口控制器230生成之后存储在第一队列241中,然后接着被从第一队列241传送到第二队列242的命令段。
第二队列242可以将第一和第二命令段CS1和CS2提供到存储器操作控制器250。根据命令段输入到第二队列242的顺序,第二队列242可以将第一命令段CS1在第二命令段CS2之前提供到存储器操作控制器250。当存储器操作控制器250准备好处理命令段中的每一个时,第二队列242可以将命令段中的每一个提供到存储器操作控制器250。
存储器操作控制器250可以在没有正在执行装置管理操作时,基于从第二队列242接收的命令段来控制存储器装置100,从而执行存储器操作。
图4A是示出根据实施例的映射段的高速缓存的示图。
参照图4A,缓冲存储器210可以包括存储器装置的多条逻辑到物理地址映射信息。映射信息可以包括多个映射段MS1至MSn(其中,n是1或更大的自然数)。
缓冲存储器210中存储的多条映射信息之中的第一至第六映射段MS1至MS6可以被高速缓存在高速缓存存储器220中。第一至第六映射段MS1至MS6可以分别对应于参照图3描述的第一至第六命令段CS1至CS6。
换句话说,第一映射段MS1可以包括关于将执行与第一命令段CS1相对应的存储器操作的地址的信息。第二映射段MS2可以包括关于将执行与第二命令段CS2相对应的存储器操作的地址的信息。类似地,第六映射段MS6可以包括关于将执行与第六命令段CS6相对应的存储器操作的地址的信息。
图4B是示出根据图4A的实施例的高速缓存访问的示图。
参照图4B,响应于上面参照图3描述的从第二队列242接收的命令段,存储器操作控制器250可以访问高速缓存存储器220以确定与该命令段相对应的映射段是否被高速缓存在高速缓存存储器220中。
当确定与该命令段相对应的映射段被高速缓存在高速缓存存储器220中时,可以发生高速缓存命中。当确定与该命令段相对应的映射段未高速缓存在高速缓存存储器220中时,可以发生高速缓存未命中。
在图4B中,因为高速缓存存储器220高速缓存了分别与上面参照图3描述的第一至第六命令段CS1至CS6相对应的第一至第六映射段MS1至MS6,所以第一至第六命令段CS1至CS6中的每一个在被存储器控制器250处理时可以满足高速缓存命中条件。
图5A是示出根据另一实施例的映射段的高速缓存的示图。
在图5A所示的示例中,高速缓存存储器220的容量可以比缓冲存储器210的容量更有限。将基于以下假设进行描述:可高速缓存在高速缓存存储器220中的映射段的最大数量为3,但是实施例不限于可以高速缓存在高速缓存存储器220中的映射段的该最大数量。
在图5A中,上面参照图3描述的主机接口控制器230可以被配置为每当生成命令段时,将缓冲存储器210中存储的多条映射信息之中与所生成的命令段相对应的映射段高速缓存在高速缓存存储器220中。
在此,主机接口控制器230可以基于第一请求REQ1来生成第一和第二命令段CS1和CS2,并且可以将第一和第二命令段CS1和CS2存储在第一队列241中。当生成第一和第二命令段CS1和CS2时,主机接口控制器230可以将缓冲存储器210中存储的多条映射信息之中与第一和第二命令段CS1和CS2相对应的第一和第二映射段MS1和MS2高速缓存在高速缓存存储器220中。
第一队列241中存储的第一和第二命令段CS1和CS2可以被传送到第二队列242。
主机接口控制器230可以基于第二请求REQ2来生成第三命令段CS3,并且可以将所生成的第三命令段CS3存储在第一队列241中。当生成第三命令段CS3时,主机接口控制器230可以将缓冲存储器210中存储的多条映射信息之中与第三命令段CS3相对应的第三映射段MS3高速缓存在高速缓存存储器220中。
主机接口控制器230可以响应于第三请求REQ3而生成第四至第六命令段CS4至CS6,并且可以将所生成的第四至第六命令段CS4至CS6存储在第一队列241中。当生成第四至第六命令段CS4至CS6时,主机接口控制器230可以将缓冲存储器210中存储的多条映射信息之中分别与第四至第六命令段CS4至CS6相对应的第四、第五和第六映射段MS4、MS5和MS6高速缓存在高速缓存存储器220中。
因为可高速缓存在高速缓存存储器220中的映射段的最大数量为3,所以当生成第四至第六命令段CS4至CS6时,先前已经高速缓存的第一至第三映射段MS1至MS3可以被第四至第六映射段MS4至MS6替换。
图5B是示出根据图5A的实施例的高速缓存访问的示图。
在图5B的示例中,在存储器控制器250处理第一至第三命令段CS1至CS3时,第一至第三映射段MS1至MS3未被高速缓存在高速缓存存储器220中,并且因此,上面参照图5A描述的第一至第三命令段CS1至CS3可以在高速缓存未命中条件下进行处理。
因为第四至第六映射段MS4至MS6被高速缓存在高速缓存存储器220中,所以上面参照图5A描述的第四至第六命令段CS4至CS6可以在高速缓存命中条件下进行处理。
然而,当在将要处理第四至第六命令段CS4至CS6的时间已经生成了新的命令段时,如果高速缓存在高速缓存存储器220中的第四至第六映射段MS4至MS6已经被与一个或多个新的命令段相对应的一个或多个映射段替换,则第四至第六命令段CS4至CS6也可以在高速缓存未命中条件下进行处理。
图6A是示出根据另一实施例的映射段的高速缓存的示图。
参照图6A,上面参照图3描述的主机接口控制器230可以在每当第一队列241中存储的命令段被传送到第二队列242时,将缓冲存储器210中存储的多条映射信息之中与所传送的命令段相对应的映射段高速缓存到高速缓存存储器220中。
在此,主机接口控制器230可以基于第一请求REQ1来生成第一和第二命令段CS1和CS2,并且可以将第一和第二命令段CS1和CS2存储在第一队列241中。
当第一队列241中存储的第一和第二命令段CS1和CS2被传送到第二队列242时,主机接口控制器230可以将缓冲存储器210中存储的多条映射信息之中分别与第一和第二命令段CS1和CS2相对应的第一和第二映射段MS1和MS2高速缓存在高速缓存存储器220中。
主机接口控制器230可以基于第二请求REQ2来生成第三命令段CS3,并且可以将所生成的第三命令段CS3存储在第一队列241中。
当第一队列241中存储的第三命令段CS3被传送到第二队列242时,主机接口控制器230可以将缓冲存储器210中存储的多条映射信息之中与第三命令段CS3相对应的第三映射段MS3高速缓存在高速缓存存储器220中。
主机接口控制器230可以响应于第三请求REQ3而生成第四至第六命令段CS4至CS6,并且可以将所生成的第四至第六命令段CS4至CS6存储在第一队列241中。
在图6A中,因为第一队列241中存储的第四至第六命令段CS4至CS6尚未被传送到第二队列242,所以缓冲存储器210中存储的多条映射信息之中分别与第四至第六命令段CS4至CS6相对应的第四至第六映射段MS4至MS6可能尚未高速缓存在高速缓存存储器220中。第四至第六映射段MS4至MS6可以后续在第四至第六命令段CS4至CS6分别被从第一队列241传送到第二队列242时,被高速缓存在高速缓存存储器220中。
图6B是示出根据图6A的实施例的高速缓存访问的示图。
参照图6B,第一至第三映射段MS1至MS3被高速缓存在高速缓存存储器220中,因此上面参照图6A描述的第一至第三命令段CS1至CS3可以在高速缓存命中条件下进行处理。
在已经处理了第一至第三命令段CS1至CS3之后,可以处理第四至第六命令段CS4至CS6。第四至第六命令段CS4至CS6可以在被经由第一队列241和第二队列242传送到存储器操作控制器250时进行处理。当第四至第六命令段CS4至CS6被从第一队列241传送到第二队列242时,与第四至第六命令段CS4至CS6相对应的第四至第六映射段MS4至MS6可以被高速缓存在高速缓存存储器220中。因此,第四至第六命令段CS4至CS6可以在高速缓存命中条件下进行处理。
也就是说,当第一队列241中存储的命令段被传送到第二队列242时(而不是当主机接口控制器230生成命令段时),与该命令段相对应的映射段被高速缓存在高速缓存存储器220中,因此可以有效地利用容量有限的高速缓存存储器220,并且可以增加映射段的高速缓存命中率。
图7A是示出根据另一实施例的映射段的高速缓存的示图。
参照图7A,上面参照图3描述的主机接口控制器230可以基于来自主机300的请求来生成一个或多个命令段。主机接口控制器230可以将缓冲存储器210中存储的多条映射信息之中与该一个或多个命令段中的第一个命令段相对应的映射段高速缓存在高速缓存存储器220中。
主机接口控制器230可以基于第一请求REQ1来生成第一和第二命令段CS1和CS2。主机接口控制器230可以将缓冲存储器210中存储的多条映射信息之中与第一命令段CS1相对应的第一映射段MS1高速缓存在高速缓存存储器220中,该第一命令段CS1是基于第一请求REQ1而生成的命令段中的初始命令段。
主机接口控制器230可以基于第二请求REQ2来生成第三命令段CS3。主机接口控制器230可以将缓冲存储器210中存储的多条映射信息之中与所生成的第三命令段CS3相对应的第三映射段MS3高速缓存在高速缓存存储器220中,该第三命令段CS3是基于第二请求REQ2而生成的命令段中的初始命令段。
主机接口控制器230可以基于第三请求REQ3来生成第四至第六命令段CS4至CS6。主机接口控制器230可以将缓冲存储器210中存储的多条映射信息之中与第四命令段CS4相对应的第四映射段MS4高速缓存在高速缓存存储器220中,该第四命令段CS4是基于第三请求REQ3而生成的命令段中的初始命令段。
图7B是示出根据图7A的实施例的高速缓存访问的示图。
参照图7B,第一、第三和第四映射段MS1、MS3和MS4被高速缓存在高速缓存存储器220中,因此上面参照图7A描述的第一、第三和第四命令段CS1、CS3和CS4可以在高速缓存命中条件下进行处理。
因为第二、第五和第六映射段MS2、MS5和MS6未高速缓存在高速缓存存储器220中,所以上面参照图7A描述的第二、第五和第六命令段CS2、CS5和CS6可以在高速缓存未命中条件下进行处理。
因为与第二命令段CS2相对应的逻辑地址和与第一命令段CS1相对应的逻辑地址连续,所以即使在高速缓存未命中条件下,也可以基于关于逻辑地址的连续性的信息,从缓冲存储器210中存储的映射信息中容易地确定第二映射段MS2的信息。例如,在实施例中,可以通过将与第一命令段CS1相对应的第一映射段MS1的物理地址加上第二命令段CS2的逻辑地址与第一命令段CS1的逻辑地址之间的差值来确定与第二命令段CS2相对应的第二映射段MS2的物理地址。以这种方式,可以使用被高速缓存的第一映射段MS1,将用于紧接第一命令段CS1之后的第二命令段CS2的第二映射段MS2高速缓存到所述高速缓存存储器220中。
类似地,因为执行与第五和第六命令段CS5和CS6相对应的存储器操作的逻辑地址和执行与第四命令段CS4相对应的存储器操作的逻辑地址连续,所以即使在高速缓存未命中条件下,也可以基于逻辑地址的连续性信息,从缓冲存储器210中存储的映射信息中容易地获取第五和第六映射段MS5和MS6。
也就是说,主机接口控制器230可以基于单个请求来生成一个或多个命令段。主机接口控制器230可以将与一个或多个命令段中的第一个命令段(而不是所有所生成的命令段)相对应的映射段高速缓存在高速缓存存储器220中,因此可以有效地利用容量有限的高速缓存存储器220,并且可以提高映射段的高速缓存命中率。
图8是示出根据本公开的实施例的操作存储器控制器的方法的流程图。
参照图8,在步骤S801,存储器控制器可以生成与来自主机的请求相对应的一个或多个命令段。可以不同地设置根据一个命令段的待处理的数据量。
在步骤S803,存储器控制器可以将所生成的一个或多个命令段存储在第一队列中。
在步骤S805,存储器控制器可以将一个或多个命令段之中的目标命令段从第一队列传送到第二队列。当第二队列中存在可用空间时,存储器控制器可以以命令段输入到第一队列的顺序将命令段传送到第二队列。
在步骤S807,当目标命令段被从第一队列传送到第二队列时,存储器控制器可以将与目标命令段相对应的目标映射段高速缓存在高速缓存存储器中。
图9是示出可以实现图1的存储器控制器200的存储器控制器1000的实施例的示图。
存储器控制器1000联接到主机和存储器装置。响应于来自主机的请求,存储器控制器1000可以访问存储器装置。例如,存储器控制器1000可以控制存储器装置的读取操作、写入操作、擦除操作和后台操作。存储器控制器1000可以提供存储器装置和主机之间的接口。存储器控制器1000可以运行固件以控制存储器装置。
存储器控制器1000可以包括处理器1010、存储器缓冲器1020、错误校正电路(ECC)1030、主机接口1040、缓冲器控制器1050、存储器接口1060和总线1070。
总线1070可以提供存储器控制器1000的组件之间的通道。
处理器1010可以控制存储器控制器1000的全部操作,并且执行逻辑操作。处理器1010可以通过主机接口1040与外部主机通信,并且还通过存储器接口1060与存储器装置通信。进一步地,处理器1010可以通过缓冲器控制器1050与存储器缓冲器1020通信。处理器1010可以通过使用存储器缓冲器1020作为工作存储器、高速缓存存储器、缓冲存储器或其组合来控制存储装置的操作。
处理器1010可以执行闪存转换层(FTL)的功能。处理器1010可以通过FTL将由主机提供的逻辑块地址(LBA)转换为物理块地址(PBA)。FTL可以接收LBA,并且使用映射表将LBA转换为PBA。根据映射单位,通过FTL执行的地址映射方法的示例可以包括各种方法。代表性的地址映射方法包括页面映射方法、块映射方法和混合映射方法。
处理器1010可以对从主机接收的数据进行随机化。例如,处理器1010可以使用随机化种子对从主机接收的数据进行随机化。经随机化的数据可以作为待存储的数据被提供到存储器装置,并且可以被编程到存储器单元阵列。
处理器可以在读取操作期间对从存储器装置接收的数据进行去随机化。例如,处理器1010可以使用去随机化种子对从存储器装置接收的数据进行去随机化。经去随机化的数据可以被输出到主机。
在实施例中,处理器1010可以运行软件或固件以执行随机化或去随机化操作。
存储器缓冲器1020可以用作处理器1010的工作存储器、高速缓存存储器或缓冲存储器。存储器缓冲器1020可以存储由处理器1010运行的代码和命令。存储器缓冲器1020可以存储由处理器1010处理的数据。存储器缓冲器1020可以包括静态RAM(SRAM)或动态RAM(DRAM)。
错误校正电路1030可以执行错误校正。错误校正电路1030可以基于待通过存储器接口1060写入存储器装置的数据来执行错误校正码(ECC)编码。经ECC编码的数据可以通过存储器接口1060传送到存储器装置。错误校正电路1030可以基于通过存储器接口1060从存储器装置接收的数据来执行ECC解码。在示例中,可以包括错误校正电路1030作为存储器接口1060的组件。
主机接口1040可以在处理器1010的控制下与外部主机通信。主机接口1040可以使用诸如以下的各种通信方法中的至少一种来执行通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)和减少负载的DIMM(LRDIMM)通信方法。
缓冲器控制器1050可以在处理器1010的控制下控制存储器缓冲器1020。
存储器接口1060可以在处理器1010的控制下与存储器装置通信。存储器接口1060可以通过通道将命令、地址和数据传输到存储器装置以及从存储器装置接收命令、地址和数据。
在实施例中,存储器控制器1000可以不包括存储器缓冲器1020和缓冲器控制器1050。
在实施例中,处理器1010可以使用代码来控制存储器控制器1000的操作。处理器1010可以从设置在存储器控制器1000中的非易失性存储器装置(例如,ROM)加载代码。在实施例中,处理器1010可以通过存储器接口1060从存储器装置加载代码。
在实施例中,存储器控制器1000的总线1070可以分为控制总线和数据总线。数据总线可以在存储器控制器1000中传输数据,并且控制总线可以在存储器控制器1000中传输诸如命令或地址的控制信息。数据总线和控制总线可以彼此分开,并且可以互不干扰且互不影响。数据总线可以联接到主机接口1040、缓冲器控制器1050、错误校正电路1030和存储器接口1060。控制总线可以联接到主机接口1040、处理器1010、缓冲器控制器1050、存储器缓冲器1020和存储器接口1060。
在实施例中,图2的主机接口控制器230可以由主机接口1040来实现。图2的缓冲存储器210、高速缓存存储器220和命令队列240可以由存储器缓冲器1020来实现。图2的存储器操作控制器250可以由处理器1010来实现。
图10是示出应用根据本公开的实施例的存储装置的存储卡系统2000的框图。
存储卡系统2000可以包括存储器控制器2100、存储器装置2200和连接器2300。
存储器控制器2100联接到存储器装置2200。存储器控制器2100可以访问存储器装置2200。例如,存储器控制器2100可以控制存储器装置2200的读取操作、写入操作、擦除操作和后台操作。存储器控制器2100可以提供存储器装置2200和主机之间的接口。存储器控制器2100可以运行固件以控制存储器装置2200。存储器控制器2100可以以与参照图1描述的存储器控制器200相同的方式来实施。
在实施例中,存储器控制器2100可以包括诸如RAM、处理器、主机接口、存储器接口和错误校正电路的组件。
存储器控制器2100可以通过连接器2300与外部装置通信。存储器控制器2100可以基于特定的通信协议与外部装置(例如,主机)通信。在实施例中,存储器控制器2100可以通过诸如以下的各种接口协议中的至少一种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)协议、串行ATA(SATA)、并行ATA(PATA)、小型计算机小型接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、WIFI、蓝牙和高速非易失性存储器(NVMe)协议。在实施例中,连接器2300可以由上述各种通信协议中的至少一种来定义。
在实施例中,存储器装置2200可以被实施为诸如以下的各种非易失性存储器装置中的任意一种:电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)和自旋扭矩磁性RAM(STT-MRAM)。
存储器控制器2100和存储器装置2200可以集成到单个半导体装置中以形成存储卡。例如,存储器控制器2100和存储器装置2200可以集成到单个半导体装置中,然后可以形成诸如以下的存储卡:个人计算机存储卡国际协会(PCMCIA)、紧凑型闪存卡(CF)、智能媒体卡(SM或SMC)、记忆棒、多媒体卡(MMC、RS-MMC、微型MMC或eMMC)、SD卡(SD、迷你SD、微型SD或SDHC)、通用闪存(UFS)等。
图11是示出应用根据本公开的实施例的存储装置的固态驱动器(SSD)系统3000的框图。
SSD系统3000可以包括主机3100和SSD 3200。SSD 3200可以通过信号连接器3001与主机3100交换信号SIG,并且可以通过电源连接器3002接收电力PWR。SSD 3200可以包括SSD控制器3210、多个闪速存储器3221至322n、辅助电源3230和缓冲存储器3240。
根据本公开的实施例,SSD控制器3210可以执行上面参照图1描述的存储器控制器200的功能。
SSD控制器3210可以响应于从主机3100接收的信号SIG而控制多个闪速存储器3221至322n。在实施例中,信号SIG可以指示基于主机3100和SSD 3200的接口的信号。例如,信号SIG可以由诸如以下的各种接口中的至少一种来定义:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机小型接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、WiFi、蓝牙和高速非易失性存储器(NVMe)接口。
辅助电源3230可以通过电源连接器3002联接到主机3100。可以从主机3100向辅助电源3230供应电力PWR并对其充电。当主机3100的电力供应执行地不平稳时,辅助电源3230可以为SSD 3200供应电力。在实施例中,辅助电源3230可以位于SSD 3200内部或位于SSD3200外部。例如,辅助电源3230可以位于主板中,并且还可以向SSD 3200提供辅助电力。
缓冲存储器3240用作SSD 3200的缓冲存储器。例如,缓冲存储器3240可以临时存储从主机3100或从多个闪速存储器3221至322n接收的数据,或者可以临时存储闪速存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可以包括诸如DRAM、SDRAM、DDRSDRAM、LPDDR SDRAM和GRAM的易失性存储器,或者诸如FRAM、ReRAM、STT-MRAM和PRAM的非易失性存储器。
图12是示出应用根据本公开的实施例的存储装置的用户系统4000的框图。
用户系统4000可以包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可以运行用户系统4000、操作系统(OS)或用户程序中包括的组件。在实施例中,应用处理器4100可以包括用于控制用户系统4000中包括的组件的控制器、接口、图形引擎等。应用处理器4100可以由片上系统(SoC)形成。
存储器模块4200可以用作用户系统4000的主存储器、工作存储器、缓冲存储器或高速缓存存储器。存储器模块4200可以包括诸如DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3SDRAM、LPDDR SDRAM、LPDDR2 SDRAM和LPDDR3 SDRAM的易失性RAM,或者诸如PRAM、ReRAM、MRAM和FRAM的非易失性RAM。在实施例中,可以基于堆叠封装(POP)对应用处理器4100和存储器模块4200进行封装,然后可以将其设置为单个半导体封装。
网络模块4300可以与外部装置通信。在实施例中,网络模块4300可以支持诸如以下的无线通信:码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、Wimax、WLAN、超宽带(UWB)、蓝牙或WI-FI。在实施例中,网络模块4300可以被包括在应用处理器4100中。
存储模块4400可以存储数据。例如,存储模块4400可以存储从应用处理器4100接收的数据。可选地,存储模块4400可以将该存储模块4400中存储的数据传输到应用处理器4100。在实施例中,存储模块4400可以被实施为诸如以下的非易失性半导体存储器装置:相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、NAND闪速存储器、NOR闪速存储器或具有三维(3D)结构的NAND闪速存储器。在实施例中,存储模块4400可以被设置为可移动存储介质(可移动驱动器),例如用户系统4000的存储卡或外部驱动器。
在实施例中,存储模块4400可以包括多个非易失性存储器装置,非易失性存储器装置中的每一个可以以与上面参照图1描述的存储器装置100相同的方式操作。存储模块4400可以以与上面参照图1描述的存储装置50相同的方式操作。
用户接口4500可以包括向应用处理器4100输入数据或指令或者向外部装置输出数据的接口。在实施例中,用户接口4500可以包括用户输入接口,诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、照相机、麦克风、陀螺仪传感器、振动传感器和压电元件。用户接口4500可以进一步包括用户输出接口,诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监视器。
根据本公开,提供了一种具有提高的映射高速缓存性能的存储器控制器以及操作存储器控制器的方法。
Claims (20)
1.一种存储器控制器,包括:
主机接口控制器,基于从主机接收到的请求来生成与所述请求相对应的一个或多个命令段;
第一队列,存储所述一个或多个命令段;
第二队列,存储所述一个或多个命令段之中的目标命令段;以及
高速缓存存储器,
其中所述存储器控制器响应于所述目标命令段从所述第一队列传送到所述第二队列,将与所述目标命令段相对应的目标映射段高速缓存到所述高速缓存存储器中。
2.根据权利要求1所述的存储器控制器,进一步包括:
缓冲存储器,存储存储器装置的多条逻辑到物理地址映射信息,
其中所述主机接口控制器将所述缓冲存储器中存储的所述多条逻辑到物理地址映射信息之中的所述目标映射段高速缓存到所述高速缓存存储器中,并且
其中所述目标映射段包括关于将执行与所述目标命令段相对应的存储器操作的地址的信息。
3.根据权利要求2所述的存储器控制器,进一步包括:
存储器操作控制器,响应于从所述第二队列接收到的所述目标命令段,控制所述存储器装置以基于高速缓存在所述高速缓存存储器中的所述目标映射段来执行所述存储器操作。
4.根据权利要求3所述的存储器控制器,其中所述主机接口控制器将与所述一个或多个命令段之中的第一个命令段相对应的映射段作为所述目标映射段而高速缓存到所述高速缓存存储器中。
5.根据权利要求4所述的存储器控制器,其中所述存储器操作控制器将与所述一个或多个命令段之中除了所述第一个命令段之外的剩余命令段相对应的映射段高速缓存在所述高速缓存存储器中。
6.根据权利要求4所述的存储器控制器,其中所述主机接口控制器接收分别与所述一个或多个命令段相对应的一个或多个逻辑地址段。
7.根据权利要求6所述的存储器控制器,其中基于与所述一个或多个命令段相对应的逻辑地址段的范围来确定所述一个或多个命令段的顺序。
8.根据权利要求3所述的存储器控制器,其中所述存储器操作控制器基于管理启动信息来控制所述存储器装置以执行装置管理操作。
9.根据权利要求8所述的存储器控制器,其中所述管理启动信息包括从所述主机接收的数据的大小信息以及每当执行所述装置管理操作时被初始化的计时器信息中的至少一个。
10.根据权利要求8所述的存储器控制器,其中所述装置管理操作包括以下操作中的至少一种:获得待存储写入数据的块的块擦除操作、获得空闲块的垃圾收集操作以及将所述缓冲存储器中存储的所述映射信息清除到所述存储器装置中的映射更新操作。
11.根据权利要求8所述的存储器控制器,其中在不执行所述装置管理操作时,所述存储器操作控制器控制所述存储器装置以执行与从所述第二队列接收的所述目标命令段相对应的所述存储器操作。
12.一种操作存储器控制器的方法,所述存储器控制器包括第一队列、第二队列、高速缓存存储器和主机接口控制器,所述方法包括:
由所述主机接口控制器基于来自主机的请求,生成与所述请求相对应的一个或多个命令段;
将所述一个或多个命令段存储在所述第一队列中;
将所述一个或多个命令段之中的目标命令段从所述第一队列传送到所述第二队列;并且
由所述主机接口控制器响应于所述目标命令段从所述第一队列传送到所述第二队列,将与所述目标命令段相对应的目标映射段高速缓存到所述高速缓存存储器中。
13.根据权利要求12所述的方法,其中:
将所述目标映射段高速缓存在所述高速缓存存储器中包括:将缓冲存储器中存储的存储器装置的多条逻辑到物理地址映射信息之中的所述目标映射段高速缓存到所述高速缓存存储器中,并且
所述目标映射段包括关于将执行与所述目标命令段相对应的存储器操作的地址的信息。
14.根据权利要求13所述的方法,其中所述目标映射段是与所述一个或多个命令段之中的第一个命令段相对应的映射段。
15.根据权利要求14所述的方法,进一步包括:
使用被高速缓存的目标映射段,将用于紧接所述目标命令段之后的命令段的逻辑到物理地址映射信息高速缓存到所述高速缓存存储器中。
16.根据权利要求13所述的方法,进一步包括:
响应于所述目标命令段,控制所述存储器装置以基于被高速缓存在所述高速缓存存储器中的所述目标映射段来执行所述存储器操作。
17.一种用于控制存储器装置的存储器控制器,包括:
主机接口控制器,基于从主机接收到的请求来生成与所述请求相对应的一个或多个命令段;
存储器操作控制器,基于所述一个或多个命令段之中的目标命令段来控制所述存储器装置的操作;
缓冲存储器,存储所述存储器装置的多条逻辑到物理地址映射信息;以及
高速缓存存储器,
其中所述主机接口控制器将所述缓冲存储器中存储的所述多条逻辑到物理地址映射信息之中与所述目标命令段相对应的目标映射段高速缓存到所述高速缓存存储器中,并且
其中所述存储器操作控制器将所述缓冲存储器中存储的所述多条逻辑到物理地址映射信息之中与所述一个或多个命令段中除了所述目标命令段之外的剩余命令段相对应的映射段高速缓存到所述高速缓存存储器中。
18.根据权利要求17所述的存储器控制器,进一步包括:
第一队列,存储从所述主机接口控制器接收到的所述一个或多个命令段;以及
第二队列,从所述第一队列接收所述目标命令段,并且将所述目标命令段提供到所述存储器操作控制器。
19.根据权利要求17所述的存储器控制器,其中:
所述主机接口控制器从所述主机接收分别与所述一个或多个命令段相对应的逻辑地址段,并且
基于与所述一个或多个命令段相对应的逻辑地址段的范围来确定所述一个或多个命令段的顺序。
20.根据权利要求19所述的存储器控制器,
其中所述目标映射段包括与所述一个或多个命令段之中的第一顺序的命令段相对应的映射段。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2020-0080589 | 2020-06-30 | ||
KR1020200080589A KR102435253B1 (ko) | 2020-06-30 | 2020-06-30 | 메모리 컨트롤러 및 그 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113867619A true CN113867619A (zh) | 2021-12-31 |
CN113867619B CN113867619B (zh) | 2024-07-02 |
Family
ID=78989809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110215901.2A Active CN113867619B (zh) | 2020-06-30 | 2021-02-26 | 存储器控制器及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11436148B2 (zh) |
KR (1) | KR102435253B1 (zh) |
CN (1) | CN113867619B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020168522A1 (zh) * | 2019-02-21 | 2020-08-27 | 华为技术有限公司 | 一种片上系统、访问命令的路由方法及终端 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1668990A (zh) * | 2002-07-09 | 2005-09-14 | 富士通株式会社 | 开放型通用抗攻击cpu及其应用系统 |
US20160070472A1 (en) * | 2014-09-09 | 2016-03-10 | Kabushiki Kaisha Toshiba | Memory system |
US20170242785A1 (en) * | 2016-02-23 | 2017-08-24 | Sandisk Technologies Llc | Efficient Implementation of Optimized Host-Based Garbage Collection Strategies Using Xcopy and Arrays of Flash Devices |
CN111338976A (zh) * | 2018-12-19 | 2020-06-26 | 爱思开海力士有限公司 | 存储器系统以及存储器系统的操作方法 |
Family Cites Families (68)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2862948B2 (ja) | 1990-04-13 | 1999-03-03 | 三菱電機株式会社 | 半導体記憶装置 |
US5353425A (en) | 1992-04-29 | 1994-10-04 | Sun Microsystems, Inc. | Methods and apparatus for implementing a pseudo-LRU cache memory replacement scheme with a locking feature |
US5604753A (en) | 1994-01-04 | 1997-02-18 | Intel Corporation | Method and apparatus for performing error correction on data from an external memory |
US6000006A (en) | 1997-08-25 | 1999-12-07 | Bit Microsystems, Inc. | Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage |
US6324620B1 (en) | 1998-07-23 | 2001-11-27 | International Business Machines Corporation | Dynamic DASD data management and partitioning based on access frequency utilization and capacity |
US6330556B1 (en) | 1999-03-15 | 2001-12-11 | Trishul M. Chilimbi | Data structure partitioning to optimize cache utilization |
US6493800B1 (en) | 1999-03-31 | 2002-12-10 | International Business Machines Corporation | Method and system for dynamically partitioning a shared cache |
US6658533B1 (en) | 2000-09-21 | 2003-12-02 | Intel Corporation | Method and apparatus for write cache flush and fill mechanisms |
US7877539B2 (en) | 2005-02-16 | 2011-01-25 | Sandisk Corporation | Direct data file storage in flash memories |
US8443134B2 (en) | 2006-12-06 | 2013-05-14 | Fusion-Io, Inc. | Apparatus, system, and method for graceful cache device degradation |
US20090300293A1 (en) | 2008-05-30 | 2009-12-03 | Advanced Micro Devices, Inc. | Dynamically Partitionable Cache |
US8046551B1 (en) | 2008-08-14 | 2011-10-25 | Emc Corporation | Techniques for processing I/O requests |
KR101014040B1 (ko) | 2009-03-19 | 2011-02-14 | (주)인디링스 | 디램 버퍼 관리 장치 및 방법 |
US8219776B2 (en) | 2009-09-23 | 2012-07-10 | Lsi Corporation | Logical-to-physical address translation for solid state disks |
US8166258B2 (en) | 2009-07-24 | 2012-04-24 | Lsi Corporation | Skip operations for solid state disks |
KR101711945B1 (ko) | 2010-01-06 | 2017-03-03 | 주식회사 태진인포텍 | 멀티 레벨 버퍼 캐시 관리 정책에 따른 메모리 관리 방법 |
GB2496798B (en) | 2010-07-27 | 2016-10-12 | Ibm | Logical to physical address mapping in storage systems comprising solid state memory devices |
EP2598996B1 (en) | 2010-07-28 | 2019-07-10 | SanDisk Technologies LLC | Apparatus, system, and method for conditional and atomic storage operations |
US20120096059A1 (en) | 2010-10-13 | 2012-04-19 | Hitachi, Ltd. | Storage apparatus and file system management method |
US8738846B2 (en) | 2010-10-15 | 2014-05-27 | Arkologic Limited | File system-aware solid-state storage management system |
US8656454B2 (en) | 2010-12-01 | 2014-02-18 | Microsoft Corporation | Data store including a file location attribute |
WO2012090239A1 (en) | 2010-12-27 | 2012-07-05 | Hitachi, Ltd. | Storage system and management method of control information therein |
US9026737B1 (en) | 2011-06-29 | 2015-05-05 | Emc Corporation | Enhancing memory buffering by using secondary storage |
KR101790165B1 (ko) | 2011-08-09 | 2017-11-20 | 삼성전자 주식회사 | 메모리 시스템 및 그것의 메타 데이터 관리 방법 |
KR101858159B1 (ko) | 2012-05-08 | 2018-06-28 | 삼성전자주식회사 | 멀티-cpu 시스템과 이를 포함하는 컴퓨팅 시스템 |
US8909860B2 (en) | 2012-08-23 | 2014-12-09 | Cisco Technology, Inc. | Executing parallel operations to increase data access performance |
KR101993704B1 (ko) | 2012-08-24 | 2019-06-27 | 삼성전자주식회사 | 플래시 메모리를 기반으로 하는 저장 장치 및 플래시 메모리를 제어하는 메모리 컨트롤러의 쓰기 메모리 블록 할당 방법 |
CN102937967B (zh) | 2012-10-11 | 2018-02-27 | 南京中兴新软件有限责任公司 | 数据冗余实现方法及装置 |
KR102002925B1 (ko) | 2012-11-01 | 2019-07-23 | 삼성전자주식회사 | 메모리 모듈, 그것을 포함하는 메모리 시스템, 그것의 구동 방법 |
KR101992934B1 (ko) | 2012-11-14 | 2019-06-26 | 삼성전자주식회사 | 메모리 시스템 및 이의 동작 방법 |
US20140258628A1 (en) | 2013-03-11 | 2014-09-11 | Lsi Corporation | System, method and computer-readable medium for managing a cache store to achieve improved cache ramp-up across system reboots |
US9116824B2 (en) | 2013-03-15 | 2015-08-25 | Sandisk Technologies Inc. | System and method to reduce read latency of a data storage device |
KR20140117994A (ko) | 2013-03-27 | 2014-10-08 | 한국전자통신연구원 | 복제 파일 중복 제거 방법 및 장치 |
WO2014191966A1 (en) | 2013-05-31 | 2014-12-04 | Stmicroelectronics S.R.L. | Communication interface for interfacing a transmission circuit with an interconnection network, and corresponding system and integrated circuit |
KR102308777B1 (ko) * | 2014-06-02 | 2021-10-05 | 삼성전자주식회사 | 비휘발성 메모리 시스템 및 비휘발성 메모리 시스템의 동작방법 |
GB2526849B (en) | 2014-06-05 | 2021-04-14 | Advanced Risc Mach Ltd | Dynamic cache allocation policy adaptation in a data processing apparatus |
JP6166476B2 (ja) | 2014-07-09 | 2017-07-19 | 株式会社日立製作所 | メモリモジュールおよび情報処理システム |
KR102344834B1 (ko) | 2014-09-24 | 2021-12-29 | 삼성전자주식회사 | 솔리드 스테이트 드라이브 및 이를 포함하는 컴퓨팅 시스템 |
US20160162416A1 (en) | 2014-12-08 | 2016-06-09 | Intel Corporation | Apparatus and Method for Reducing Latency Between Host and a Storage Device |
US10761772B2 (en) | 2014-12-19 | 2020-09-01 | Toshiba Memory Corporation | Memory system including a plurality of chips and a selectively-connecting bus |
US10007446B2 (en) | 2015-05-05 | 2018-06-26 | Macronix International Co., Ltd. | Method, apparatus, and storage medium for writing data into persistent storage device |
KR102491624B1 (ko) | 2015-07-27 | 2023-01-25 | 삼성전자주식회사 | 데이터 저장 장치의 작동 방법과 상기 데이터 저장 장치를 포함하는 시스템의 작동 방법 |
KR20170015708A (ko) | 2015-07-30 | 2017-02-09 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 프로그램 방법 |
KR102491651B1 (ko) | 2015-12-14 | 2023-01-26 | 삼성전자주식회사 | 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 동작 방법 |
KR102533389B1 (ko) | 2016-02-24 | 2023-05-17 | 삼성전자주식회사 | 장치 수명을 향상시키는 데이터 저장 장치 및 이를 포함하는 raid 시스템 |
US10037298B2 (en) | 2016-06-29 | 2018-07-31 | Amazon Technologies, Inc. | Network-accessible data volume modification |
US10469405B2 (en) | 2016-06-29 | 2019-11-05 | Amazon Technologies, Inc. | Network-accessible data volume modification |
KR20180051272A (ko) | 2016-11-08 | 2018-05-16 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
JP2018147231A (ja) | 2017-03-06 | 2018-09-20 | 東芝メモリ株式会社 | メモリコントローラ、メモリシステムおよびメモリシステムの制御方法 |
KR20180104830A (ko) | 2017-03-14 | 2018-09-27 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
JP6800312B2 (ja) | 2017-03-27 | 2020-12-16 | 三菱電機株式会社 | キャッシュメモリおよびその制御方法 |
US10236070B2 (en) | 2017-06-27 | 2019-03-19 | Western Digital Technologies, Inc. | Read level tracking and optimization |
US11188234B2 (en) | 2017-08-30 | 2021-11-30 | Micron Technology, Inc. | Cache line data |
JP2019079448A (ja) | 2017-10-27 | 2019-05-23 | 株式会社日立製作所 | ストレージシステム及びストレージシステムの制御方法 |
KR102421149B1 (ko) | 2018-01-02 | 2022-07-14 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
US10997065B2 (en) | 2017-11-13 | 2021-05-04 | SK Hynix Inc. | Memory system and operating method thereof |
KR102101622B1 (ko) | 2017-12-06 | 2020-04-17 | 주식회사 멤레이 | 메모리 제어 장치 및 이를 포함하는 컴퓨팅 디바이스 |
KR20190090635A (ko) * | 2018-01-25 | 2019-08-02 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US11003529B2 (en) | 2018-03-22 | 2021-05-11 | Winbond Electronics Corp. | Encoding method and memory storage apparatus using the same |
US10936374B2 (en) | 2018-05-17 | 2021-03-02 | International Business Machines Corporation | Optimizing dynamic resource allocations for memory-dependent workloads in disaggregated data centers |
US10878880B2 (en) | 2018-09-20 | 2020-12-29 | Qualcomm Incorporated | Selective volatile memory refresh via memory-side data valid indication |
US11100011B2 (en) | 2018-12-13 | 2021-08-24 | Sony Semiconductor Israel Ltd. | Flash translation layer with hierarchical security |
KR20200095103A (ko) | 2019-01-31 | 2020-08-10 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그 동작 방법 |
KR20200116372A (ko) * | 2019-04-01 | 2020-10-12 | 에스케이하이닉스 주식회사 | 저장 장치, 컨트롤러 및 컨트롤러의 동작 방법 |
KR102456176B1 (ko) | 2020-05-21 | 2022-10-19 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
KR20210092988A (ko) | 2020-01-17 | 2021-07-27 | 에스케이하이닉스 주식회사 | 가비지 콜렉션 동작을 위한 메모리 시스템 및 메모리 시스템의 동작방법 |
KR102495910B1 (ko) | 2020-04-13 | 2023-02-06 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
KR20210144180A (ko) | 2020-05-21 | 2021-11-30 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
-
2020
- 2020-06-30 KR KR1020200080589A patent/KR102435253B1/ko active IP Right Grant
- 2020-10-09 US US17/067,412 patent/US11436148B2/en active Active
-
2021
- 2021-02-26 CN CN202110215901.2A patent/CN113867619B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1668990A (zh) * | 2002-07-09 | 2005-09-14 | 富士通株式会社 | 开放型通用抗攻击cpu及其应用系统 |
US20160070472A1 (en) * | 2014-09-09 | 2016-03-10 | Kabushiki Kaisha Toshiba | Memory system |
US20170242785A1 (en) * | 2016-02-23 | 2017-08-24 | Sandisk Technologies Llc | Efficient Implementation of Optimized Host-Based Garbage Collection Strategies Using Xcopy and Arrays of Flash Devices |
CN111338976A (zh) * | 2018-12-19 | 2020-06-26 | 爱思开海力士有限公司 | 存储器系统以及存储器系统的操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US11436148B2 (en) | 2022-09-06 |
CN113867619B (zh) | 2024-07-02 |
KR102435253B1 (ko) | 2022-08-24 |
US20210406188A1 (en) | 2021-12-30 |
KR20220001990A (ko) | 2022-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11861359B2 (en) | Storage device and method of operating the same | |
US11934309B2 (en) | Memory controller, storage device including the memory controller, and method of operating the memory controller and the storage device | |
CN113377692A (zh) | 计算系统及其操作方法 | |
US11775211B2 (en) | Memory controller and method of operating the same | |
US11922048B2 (en) | Memory controller managing map data and operating method thereof | |
US11520519B2 (en) | Storage device and method of operating the same | |
CN113867619B (zh) | 存储器控制器及其操作方法 | |
US11768625B2 (en) | Storage device managing a multi-tier cache memory and operating method thereof | |
US20240045806A1 (en) | Storage device, electronic device including the same, and operating method thereof | |
US12105988B2 (en) | Memory controller for reducing the number of error bits in read data and memory system including the same | |
US12056356B2 (en) | Storage device, electronic device including the same, and operating method thereof | |
US20240036731A1 (en) | Memory system and method of operating the same | |
KR20230168908A (ko) | 컴퓨팅 시스템 및 그 동작 방법 |
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 |