CN108062280B - 存储器控制器以及包括该存储器控制器的存储器*** - Google Patents
存储器控制器以及包括该存储器控制器的存储器*** Download PDFInfo
- Publication number
- CN108062280B CN108062280B CN201711078396.1A CN201711078396A CN108062280B CN 108062280 B CN108062280 B CN 108062280B CN 201711078396 A CN201711078396 A CN 201711078396A CN 108062280 B CN108062280 B CN 108062280B
- Authority
- CN
- China
- Prior art keywords
- memory
- page number
- logical
- address
- layer mapping
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 293
- 238000013507 mapping Methods 0.000 claims abstract description 96
- 238000013519 translation Methods 0.000 claims abstract description 44
- 238000012545 processing Methods 0.000 claims abstract description 20
- 239000000284 extract Substances 0.000 claims description 26
- 230000004044 response Effects 0.000 claims description 11
- 238000004806 packaging method and process Methods 0.000 claims description 2
- 238000006243 chemical reaction Methods 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 16
- 238000000034 method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 101100353046 Caenorhabditis elegans mig-6 gene Proteins 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000036316 preload Effects 0.000 description 2
- 239000000919 ceramic Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation 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/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
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash 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/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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
- 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
- G06F2212/1024—Latency reduction
-
- 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
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
提供存储器控制器和包括该存储器控制器的存储器***。存储器控制器包括存储器,存储包括闪速存储器的物理页号(PPN)和与PPN对应的逻辑页号(LPN)的闪存转换层(FTL)映射表;中央处理单元(CPU),访问与LPN对应的逻辑地址被分配到的存储器映射地址空间;以及LPN转换器,从CPU接收逻辑地址、提取对应于逻辑地址的LPN、从存储器读取对应于所提取的LPN的FTL映射表、提取对应于所提取的LPN的PPN、以及将所提取的PPN发送至CPU。
Description
本申请要求于2016年11月7日提交的申请号为10-2016-0147462的韩国专利的优先权,通过引用将上述申请的公开内容全部并入此文。
技术领域
本公开涉及存储器控制器以及包括该存储器控制器的存储器***,并且更具体地,涉及基于闪速存储器的存储器控制器和包括该基于闪速存储器的存储器控制器的存储器***。
背景技术
闪速存储器控制器使用闪存转换层(Flash Translation Layer,FTL)以便将逻辑块地址(Logical Block Address,LBA)从主机映射到闪速存储器的物理页号(PhysicalPage Number,PPN)。PPN是实际闪速存储器数据存在的地址。然而,在映射处理中需要许多步骤并且由于在执行映射处理的步骤中需要固件开销,这为固件创建了读取/写入延迟。
发明内容
本公开的示例性实施例提供了一种存储器控制器,其将可由中央处理单元(Central Processing Unit,CPU)访问的存储器映射地址空间的逻辑地址的部分分配至逻辑页号(Logical Page Number,LPN),并且因此不引发额外的计算或者当访问LPN时的延迟。
本公开的示例性实施例还提供了一种存储器***,其将可由CPU访问的存储器映射地址空间的逻辑地址的部分分配至LPN,并且因此不引发额外的计算或者当访问LPN时的延迟。
然而,本公开的示例性实施例不限于本文阐述的那些。通过参考下面给出的本公开的详细描述,本公开的以上和其他示例性实施例对于本公开所属领域的普通技术人员将变得更加显而易见。
根据示例性实施例的一方面,提供了一种存储器控制器,包括:存储器,该存储器存储闪存转换层(FTL)映射表,其包括闪速存储器的物理页号(PPN)和对应于PPN的逻辑页号(Logical Page Number,LPN);中央处理单元(CPU),该中央处理单元访问与LPN对应的逻辑地址被分配到的存储器映射地址空间;以及LPN转换器,该LPN转换器从CPU接收逻辑地址、提取对应于逻辑地址的LPN、从存储器读取对应于所提取的LPN的FTL映射表、提取对应于所提取的LPN的PPN、以及将所提取的PPN发送至CPU。
根据示例性实施例的另一方面,提供了一种存储器***,包括:存储数据的闪速存储器;以及控制闪速存储器的存储器控制器,其中存储器控制器包括:存储器,其存储包括闪速存储器的PPN和与PPN对应的LPN的闪存转换层(FTL)映射表;以及LPN转换器,其接收存储LPN的存储器映射地址空间的逻辑地址,并且其中存储器***通过使用加载指令或者存储指令来调用(call)闪速存储器的PPN、和LPN。
根据示例性实施例的另一方面,提供了一种存储器***,包括:主机;以及存储设备,该存储设备包括闪速存储器,该存储设备从主机接收对在闪速存储器中所存储的数据的请求、以及向主机提供数据,其中存储设备包括:存储器,其存储包括闪速存储器的物理页号(PPN)和与PPN对应的逻辑页号(LPN)的闪存转换层(FTL)映射表;中央处理单元(CPU),其访问与LPN对应的逻辑地址被分配到的存储器映射地址空间,并且在通过使用指令和逻辑地址根据来自主机的请求来执行访问操作;以及LPN转换器,其从CPU接收逻辑地址、提取对应于所接收的逻辑地址的LPN、从存储器中读取对应于所提取的LPN的FTL映射表、并且提取对应于所提取的LPN的PPN。
根据示例性实施例的另一方面,提供了一种存储器***,包括:存储数据的闪速存储器;以及控制闪速存储器的存储器控制器,该存储器控制器包括:中央处理单元(CPU);存储器映射地址空间,其可由CPU寻址,并且存储与闪速存储器的各个物理页号(PPN)对应的一个或多个逻辑页号(LPN);以及LPN转换器,其从CPU中接收存储器映射地址空间的逻辑地址、提取对应于逻辑地址的LPN、使用所提取的LPN从闪存转换层(FTL)映射表提取PPN、并且将所提取的PPN发送至CPU。
从以下详细描述、附图和权利要求,其他特征和示例性实施例可以是显而易见的。
附图说明
通过参考附图详细描述其示例性实施例,以上和其它方面将变得更加显而易见,其中
图1是根据本公开的一些示例性实施例的存储器***的框图;
图2是根据本公开的一些示例性实施例的存储器控制器的框图;
图3是图2的存储器控制器的逻辑页号(LPN)转换器的框图;
图4是示出根据本公开的一些示例性实施例的存储器控制器的操作的框图;
图5是示出根据本公开的一些示例性实施例的可由被包括在存储器控制器中的CPU访问的存储器映射地址空间的示意图;
图6A是示出根据本公开的一些示例性实施例的在存储器控制器中被使用的逻辑地址和LPN之间的关系的表;
图6B是示出根据本公开的一些示例性实施例的在存储器控制器中被使用的在对齐的访问/格式的情况下的FTL映射表的表;
图7是示出根据本公开的一些示例性实施例的LPN转换器的操作的框图;
图8A是示出根据本公开的一些示例性实施例的在LPN转换器中被使用的逻辑地址、LPN、和闪存转换层(FTL)映射地址之间的关系的表;
图8B是示出根据本公开的一些示例性实施例的在LPN转换器中被使用的在非对齐的格式/访问的情况下的FTL映射表的表;
图9是示出根据本公开的一些示例性实施例的存储器控制器的利用加载指令的操作的框图;
图10是示出根据本公开的一些示例性实施例的存储器控制器的利用加载指令的操作的流程图;
图11是示出根据本公开的一些示例性实施例的存储器控制器的利用存储指令的操作的框图;以及
图12是示出根据本公开的一些示例性实施例的存储器控制器的利用存储指令的操作的流程图。
具体实施方式
闪存转换层(FTL)是用于克服闪速存储器的缺点和有效地管理闪速存储器的软件。FTL以页为单元来管理地址映射。以通常具有512B到4KB大小的逻辑块地址(LBA)为单元将数据发送至主机。然而,由于LBA不与闪速存储器的页精确地对应,并且因此不能被一对一地映射至闪速存储器的页,可以由FTL通过使用其每个将若干扇区组合在一起的逻辑页号(LPN)来管理闪速存储器。因此,可以以LPN为单元来编程和读取闪速存储器。在数据实际存在的、闪速存储器中的地址被称为物理页号(PPN),并且PPN可以与LPN一对一地对应。
FTL从文件***接收LPN并且可以将所接收的LPN转换成PPN。
FTL具有用于地址转换的地址映射表。地址映射表被存储在随机存取存储器(Random Access Memory,RAM)中。地址映射表示出逻辑地址和物理地址之间的对应。
将参考图1至图12在下文中描述根据本公开的一些示例性实施例的存储器控制器和具有该存储器控制器的存储器***。
图1是根据本公开的一些示例性实施例的存储器***的框图。
参考图1,存储器***包括主机200和存储设备1000。存储设备1000包括存储器控制器100和闪速存储器300。主机200、存储器控制器100、和闪速存储器300可以被实现为单独的芯片、模块、或者设备,或者可以被包括在单一设备中。例如,存储器控制器100和闪速存储器300可以被集成到单一存储设备中并且然后可以被连接至主机200。然而,本公开不限于该示例。也就是说,在另一示例中,主机200、存储器控制器100、和闪速存储器300可以被集成到单一设备中。
主机200通过使用应用或者文件***将读取或者写入操作的请求发送至存储器控制器100。存储器控制器100响应于由主机200发送的请求来控制闪速存储器300的例如读取或者写入操作的操作。
从闪速存储器300读取数据或者写入数据至闪速存储器300的单元与从闪速存储器300中擦除数据的单元不同。也就是说,可以以内存块为单元来擦除闪速存储器300,并且可以以页为单元来读取或者写入闪速存储器300。不同于其他的半导体存储器设备,闪速存储器300不支持覆写功能。因此,闪速存储器300首先被擦除以被写入。
闪速存储器300包括具有字符串单元(cell)结构的多个存储器单元。多个存储器单元被称为存储器单元阵列。闪速存储器300的存储器单元阵列包括多个存储器块。存储器块中的每一个包括多个页。页的每一个包括一起共享单一字线的多个存储器单元。在数据实际存在的、闪速存储器300的地址被称为物理页号(PPN)。
为了管理PPN,存储器控制器100使用逻辑页号(LPN),其与PPN一对一地对应。存储器控制器100利用闪存转换层(FTL)的使用来管理LPN和PPN。FTL可以以FTL映射表的形式被存储在存储器控制器100的存储器(例如,要在下面被详细描述的、图2的存储器130)中。
更具体地,存储器控制器100可以通过使用包括LPN和PPN的FTL映射表来访问在闪速存储器300中的数据,并且这将在稍后被具体地描述。
图2是根据本公开的示例性实施例的存储器控制器的框图。
参考图2,存储器控制器100可以包括中央处理单元(CPU)110、逻辑页号(LPN)转换器120、存储器130、主机接口(InterFace,I/F)140、闪速存储器控制器150、和总线160。
CPU 110可以执行用于驱动存储器控制器100的计算。CPU 110可以通过使用被分配到存储器映射地址空间的逻辑地址来调用闪速存储器300的PPN。
响应于从CPU 110接收被分配到CPU 110存储器映射地址空间的逻辑地址中的一个,LPN转换器120可以将对应于所接收的逻辑地址的PPN发送至CPU 110。
更具体地,LPN转换器120可以提取对应于所接收的逻辑地址的LPN、可以从存储器130中读取FTL映射表、可以从FTL映射表中提取对应于所提取的LPN的PPN、以及可以将所提取的PPN发送至CPU 110,并且这将在稍后被详细地描述。
存储器130可以存储FTL映射表,其包括闪速存储器300的PPN和分别与闪速存储器300的PPN对应的LPN。这将在下面参考图6A-图6B和图8A-图8B被进一步详细地描述。存储器130可以包括非易失性存储器或者易失性存储器。存储器130可以被用作CPU 110的操作存储器中的至少一个、在闪速存储器300和主机200之间的高速缓存存储器、以及缓冲存储器。
主机I/F 140可以包括在主机200和存储器控制器100之间交换数据的协议。例如,主机I/F 140可以被配置为经由诸如以下协议的各种I/F协议中的至少一个与主机200通信:通用串行总线(Universal Serial Bus,USB)协议、多媒体卡(MultiMedia Card,MMC)协议、外设组件互联(Peripheral Component Interconnection,PCI)协议、PCI高速(PCI-Express,PCI-E)协议、高技术配置(Advanced Technology Attachment,ATA)协议、串行ATA协议、并行ATA协议、小型计算机***接口(Small Computer System Interface,SCSI)协议、增强小型磁盘接口(Enhanced Small Disk Interface,ESDI)协议、以及电子集成驱动器(Integrated Drive Electronics,IDE)协议等等。这些协议仅是示例,并且不具体地限制所使用的协议。
闪速存储器控制器150可以在存储器控制器100和闪速存储器300之间交换指令和数据并且可以控制闪速存储器300。
总线160可以被用于在CPU 110、LPN转换器120、存储器130、主机I/F140、和闪速存储器控制器150之间交换数据。例如,总线600可以将对应于所调用的逻辑地址的PPN发送至存储器控制器100的元件。总线160可以包括发送逻辑地址的地址总线、和发送数据的数据总线,但是本公开不限于此。
总线160是数据经由其被发送的路径。在一些示例性实施例中,总线600可以具有多层结构。总线600可以包括用于在CPU 110、LPN转换器120、存储器130、主机I/F 140、和闪速存储器控制器150之间交换数据的协议。多层高级高性能总线(Advanced High-performance Bus,AHB)或者多层高级可扩展接口(Advanced eXtensible Interface,AXI)可以被用作总线600,但是本公开不限于此。
图3是图2的LPN转换器120的框图。
参考图3,LPN转换器120可以包括LPN提取器121、FTL映射地址生成器123、解包器(unpacker)/打包器(packer)125、高速缓存127、和数据总线129。可以例如由特别被创造以执行LPN转换器功能的专用集成电路(Application Specific Integrated Circuit,ASIC)或者由硬件块来以硬件的形式在存储器控制器100中实现LPN转换器120,但是本公开不限于此。也就是说,可替换地,在一些示例性实施例中,LPN转换器120可以以软件的形式作为模块在存储器控制器100中操。可以由结合一个或者多个存储器而操作的微处理器中的至少一个来实现以软件的形式的LPN转换器120,例如由结合存储器130而操作的CPU 110来实现该LPN转换器120。
LPN提取器121可以使用逻辑地址来提取对应于逻辑地址的LPN。
FTL映射地址生成器123可以通过使用所提取的LPN来生成FTL映射地址,经由其可以访问在存储器130中所存储的FTL映射表。
解包器/打包器125可以从存储器130中接收FTL映射表并且可以执行作为提取与所提取的LPN对应的PPN的处理的解包,或者执行作为将包括经修改的PPN的FTL映射表转变成可以被发送的形式的处理的打包。
高速缓存127可以暂时存储由FTL映射地址生成器123生成的FTL映射地址和/或从存储器130接收的FTL映射表。
数据总线129可以被用在LPN提取器121、FTL映射地址生成器123、解包器/打包器125、和高速缓存之间的数据通信中。数据总线129可以是经由其数据被发送的路径,并且可以包括用于交换数据的协议。
图4是示出根据本公开的一些示例性实施例的存储器控制器的操作的框图。图5是示出根据本公开的一些示例性实施例的可由被包括在存储器控制器中的CPU访问的存储器映射地址空间的示意图。图6A是示出根据本公开的一些示例性实施例的在存储器控制器中被使用的逻辑地址和LPN之间的关系的表。图6是示出根据本公开的一些示例性实施例的在存储器控制器中被使用的在对齐的访问/格式的情况下的FTL映射表的表。
参考图4,存储器控制器100的CPU 110将逻辑地址发送至LPN转换器120。由CPU110发送的逻辑地址可以是在CPU 110的操作中所使用的存储器映射地址空间的逻辑地址。
更具体地,参考图5,逻辑地址可以包括32比特比特地址。也就是说,例如,CPU 110可以使用32比特地址***来处理指令或者执行计算,但是本公开不限于此。在另一示例中,CPU 110可以使用64比特或者128比特地址***。
逻辑地址可以是32-比特长的十六进制数,其范围,例如,从“0x0000_0000”至“0xFFFF_FFFF”。存储器映射地址空间的逻辑地址可以被划分为多个扇区,并且扇区可以被分别分配到被包括在存储器控制器100中的输入/输出(I/O)设备、LPN、随机存取存储器(RAM)、和只读存储器(Read-Only Memory,ROM)。从一个存储器***至另一存储器***,扇区的每一个的大小和其它细节可以变化。例如,如图5中所示,对应于LPN的逻辑地址0x4000_0000到逻辑地址0x7FFF_FFFF可以被分配给存储器映射地址的第一扇区I,并且用于访问动态随机存取存储器(Dynamic Random Access Memory,DRAM)的逻辑地址0x8000_0000到逻辑地址0xFFFE_FFFF可以被分配给存储器映射地址的第二扇区II。图5示出对应于LPN的逻辑地址0x4000_0000到逻辑地址0x7FFF_FFFF被分配给第一扇区I。然而,这仅仅是示例,并且可以在一些示例性实施例中,逻辑地址0x4000_0000到逻辑地址0x7FFF_FFFF可以被分配给多个扇区。附加地,作为对应于LPN的在图5中示出的逻辑地址可以有不同的范围。例如,在其它示例性实施例中,逻辑地址0x2000_0000到逻辑地址0x8FFF_FFFF可以对应于LPN。
例如,响应于DRAM被访问,使用被分配给第二扇区II的逻辑地址0x8000_0000到逻辑地址0xFFFE_FFFF。并且响应于闪速存储器300的LPN被访问,可以使用被分配给第一扇区I的逻辑地址0x4000_0000到逻辑地址0x7FFF_FFFF。然而,本公开不限于该示例。
CPU 110将对应于LPN的逻辑地址直接分配给存储器映射地址的部分。因此,CPU能够通过寻址存储器映射地址空间的逻辑地址来直接访问LPN。如果对应于LPN的逻辑地址被直接分配给存储器映射地址空间,可以在没有额外的计算的情况下和/或在没有任何额外的延迟的情况下通过一个指令从LPN中读取或者向LPN中写入数据。例如,暂时参考在图6A中示出的示例,CPU可以通过读取逻辑地址0x4000_0000来读取LPN“0”,并且可以通过读取逻辑地址0x4000_0001来读取LPN“1”。
也就是说,CPU 110可以通过以与使用被分配给特定设备(例如,DRAM)的地址相似的方式使用对应于LPN的逻辑地址来调用PPN以访问特定设备。因此,存储器控制器100可以避免调用LPN必需的固件开销,从而减小操作延迟并提高性能。
参考图6A,用于LPN的、被分配给存储器映射地址空间的部分的逻辑地址可以与LPN一对一地对应。参考图6B,由于LPN也与PPN一对一地对应,被分配给存储器映射地址空间的逻辑地址也可以与PPN一对一地对应。
闪速存储器300可以包括固件(FirmWare,F/W),其存储加载指令和存储指令。CPU110可以从闪速存储器300的F/W中调用加载指令或者存储指令并且可以在CPU 110的RAM中存储的所调用的指令。可以以汇编语言写入F/W的各种指令,并且可以由各种指令的组合来创建执行特定操作的F/W代码。
CPU 110可以通过使用加载指令或者存储指令、和逻辑地址来访问闪速存储器300。
也就是说,CPU 110可以通过使用加载指令或者存储指令、以及逻辑地址来调用闪速存储器300的PPN。
例如,在其中CPU 110执行指令“LRD R0,[0x4000_0000]”的情况下,CPU 110可以将逻辑地址“0x4000_0000”直接发送至LPN转换器120并且可以因此调用对应于LPN“0”的PPN,例如,在图6B中示出的示例中的PPN_0。参考指令“LRD R0,[0x4000_0000]”,“LRD”代表加载指令,并且“R0”是可变的。因此,响应于指令“LRD R0,[0x4000_0000]”,来自PPN_0的数据可以被加载到/为R0。
类似地,在其中CPU 110执行指令“STR R0,[0x4000_0004]”的情况下,CPU 110可以将逻辑地址“0x4000_0004”直接发送至LPN转换器120并且可以因此调用对应于LPN“4”的PPN,例如,在图6B中示出的样本中的PPN_2。参考指令“STR R0,[0x4000_0004]”,“STR”代表存储指令,并且“R0”是可变的。因此,响应于指令“STR R0,[0x4000_0004]”,来自R0的数据可以被存储在PPN_2中。
也就是说,存储器控制器100可以将LPN分配给存储器映射地址空间的逻辑地址并且可以因此能够利用包括逻辑地址的指令来直接调用LPN。因此,可以减小用于调用期望的LPN的指令的大小,并且可以避免用于搜索LPN的固件开销,从而减小延迟并提高性能。
再次参考图4,LPN转换器120从CPU 110中接收逻辑地址、提取对应于所接收的逻辑地址的LPN,并且提取对应于所提取的LPN的FTL映射地址。
此后,LPN转换器120将所提取的FTL映射地址发送至存储器130并且从存储器130中接收包括对应于所提取的FTL映射地址的FTL映射表的数据。
此后,LPN转换器120从被包括在所接收的数据中的FTL映射表中提取PPN并且将所提取的PPN发送至CPU 110。
将在下文中参考图7描述LPN转换器120的操作。
图7是示出根据本公开的一些示例性实施例的LPN转换器的操作的框图。图8A是示出根据本公开的一些示例性实施例的在LPN转换器中被使用的逻辑地址、LPN、和闪存转换层(FTL)映射地址之间的关系的表。图8是示出根据本公开的一些示例性实施例的在LPN转换器中被使用的在非对齐的格式/访问的情况下的FTL映射表的表。
参考图7,LPN转换器120的LPN提取器121可以从CPU 110中接收逻辑地址。所接收的逻辑地址可以包括有CPU 110的地址空间映射的存储器的部分的地址。
LPN提取器121可以提取对应于所接收的逻辑地址的LPN。例如,在其中所接收的逻辑地址是“0x4000_0000”的情况下,可以提取LPN“0”,并且在其中所接收的逻辑地址是“0x4000_0001”的情况下,在图6A示出的示例中可以提取LPN“1”。然而,本公开不限于该示例。LPN提取器121可以将所提取的LPN发送至FTL映射地址生成器123和解包器/打包器125。
FTL映射地址生成器123可以通过使用所提取的LPN来计算FTL映射地址,经由其可以访问在存储器130中所存储的FTL映射表。
更具体地,参考图8A-图8B,FTL映射表可以包括关于LPN和PPN的信息。在FTL映射表中,PPN可以被顺序地连接至彼此。PPN的单元大小可以与可以由CPU 110处理的单元大小不同。PPN的单元大小可以根据闪速存储器300的存储容量而变化。
例如,PPN的单元大小可以是28比特,并且可以由CPU 110处理的单元大小可以是32比特。CPU 110或者LPN转换器120可以以第一线L1、第二线L2和第三线L3的顺序读取FTL映射表。在这种情况下,因为PPN的单元大小可以与由CPU 110处理的单元大小不同,整个第一PPN(例如,图8B中的PPN_0)和第二PPN(例如,图8B中的PPN_1)的部分可以被包括在第一线L1中,第二PPN PPN_1的其余部分和第三PPN(例如,PPN_2)的部分可以被包括在第二线L2中,并且第三PPN(例如,PPN_2)的其余部分和第四PPN(例如,PPN_3)可以被包括在第三线L3中等等。因此,在FTL映射表中的PPN是非对齐的格式/访问。换句话说,在图8B的FTL映射表中的PPN的格式是与可以由CPU 110处理/访问的单元大小非对齐的。相反,在图6B示出的示例中,PPN的单元大小可以是32比特,该单元大小是与可以由CPU 110处理/访问的格式对齐的。换句话说,图6B中的PPN没有如图8B中所示的被顺序地连接至彼此。
因此,为了正确读取分别对应于LPN的PPN,使用分别对应于FTL映射地址(例如,线和在线内的比特数)。PPN可以与FTL映射地址一对一地对应。
FTL映射地址生成器123可以计算对应于所提取的LPN的FTL映射地址。所计算的FTL映射地址可以被发送至高速缓存127。
再次参考图7,高速缓存127可以通过使用由FTL映射地址生成器123提供的所计算的FTL映射地址来访问存储器130,可以从存储器130接收对应于所计算的FTL映射地址的FTL映射表,并且可以将所接收的FTL映射表发送至解包器/打包器125,但是本公开不限于此。尽管没有具体地示出,高速缓存127可以在一些示例性实施例中被省略,在这种情况下,与存储器130交换数据的高速缓存127的功能可以由存储器I/F执行。
解包器/打包器125可以从存储器130中接收对应于所计算的FTL映射地址的FTL映射地址。解包器/打包器125可以执行解包,即,从所接收的FTL映射表中提取对应于所提取的LPN的PPN。
在其中所提取的PPN被修改(例如,数据被改变)的情况下,解包器/打包器125生成包括经修改的PPN的新的FTL映射表。此后,解包器/打包器125将新的FTL映射表打包成可以由CPU 110处理的单元大小,并且通过高速缓存127将新的FTL映射表发送至存储器130。在一些示例性实施例中,解包器/打包器125可以将新的FTL映射表直接发送至存储器130。然后,存储器130利用包括经修改的PPN的新的FTL映射表来更新现有的FTL映射表。
在其中CPU 110读取FTL映射表的情况下,由于PPN的单元大小和可以由CPU 110处理的单元大小之间的差异,如图8B中所示,所加载的FTL映射表可以处于非对齐的状态。解包器/打包器125可以通过解包从处于非对齐的状态的FTL映射表中提取PPN。
在其中PPN被修改的情况下,解包器/打包器125可以将修改后的PPN打包成可以由CPU 110处理的单元大小并且可以将经打包的PPN发送至存储器130。例如,图8B示出经打包的FTL映射表。然后,存储器130可以利用经打包的PPN来更新现有的FTL映射表。
高速缓存127可以暂时存储地址和与存储器130交换的数据。更具体地,高速缓存127可以暂时存储由FTL映射地址生成器123生成的FTL映射地址和从存储器130接收的FTL映射表。
在其中CPU 110不止一次地调用相同的LPN的情况下,高速缓存127可以将在高速缓存127中所存储的FTL映射表发送至解包器/打包器125,而不是访问存储器130。也就是说,如果在高速缓存127中所暂时存储的FTL映射地址匹配所最近接收的FTL映射地址,即,如果发生高速缓存命中,对存储器130的访问可以被省略并且可以从高速缓存127中读取FTL。因此,可以减小可以由访问存储器130导致的任何延迟,并且可以提高存储器控制器100的操作速率。
高速缓存127可以通过预加载功能来提前加载在存储器130中所存储的FTL映射表,并且可以暂时存储所加载的FTL映射表。在其中CPU 110调用在高速缓存127中所存储的FTL映射地址的情况下,高速缓存127可以容易地提供其上所存储的FTL映射表。因此,可以减小访问存储器130花费的时间量,并且可以提高存储器130的操作速率。
在一些示例性实施例中,LPN转换器120可以省略高速缓存127,在这种情况下,FTL映射地址生成器123可以将FTL映射地址直接发送至存储器130并且解包器/打包器125可以从存储器130中直接接收FTL映射表的数据。然而,本公开不限于此。
图9是示出根据本公开的一些示例性实施例的存储器控制器的根据加载指令的操作的框图。图10是示出根据本公开的一些示例性实施例的存储器控制器的根据加载指令的操作的流程图。将在下文中描述图9和图10的示例性实施例,主要聚焦与图7和图8A-图8B的示例性实施例的差异以避免任何冗余的描述。
参考图9和图10,存储器控制器100的CPU 110可以使用加载指令LDR和逻辑地址来执行访问操作。尽管没有具体地示出,加载指令LDR可以从闪速存储器300的固件(F/W)中被接收并且可以被存储在CPU 110的内部存储器(诸如,例如RAM或者ROM)中。可替换地,加载指令LDR可以已经被存储在CPU 110的内部存储器(诸如,例如RAM或者ROM)中。
在其中外部设备(例如,主机200)发送用于读取在闪速存储器300中所存储的数据的请求的情况下,CPU 110可以执行访问指令,其是加载指令LDR和逻辑地址的组合。访问指令可以是,例如,“LRD R0,[LPN]”,其中“LRD”代表加载指令,“R0”是可变的,并且“[LPN]”代表被分配至存储器映射地址空间的逻辑地址。可以以汇编语言配置访问指令。
在访问指令被执行的情况下,CPU 110将被包括在访问指令中的逻辑地址发送至LPN转换器120。
然后,FTL映射地址生成器123接收由CPU 110发送的逻辑地址。
此后,LPN提取器121通过使用所接收的逻辑地址来提取LPN(S120)。LPN提取器121将所提取的LPN发送至FTL映射地址生成器123。
此后,FTL映射地址生成器123计算FTL映射地址(S130)。FTL映射地址是经由其可以访问在存储器130中所存储的FTL映射地址的地址。可以通过使用所提取的LPN来计算FTL映射地址。FTL映射地址生成器123将所计算的FTL映射地址发送至高速缓存127。
此后,高速缓存127从存储器130中读取对应于所计算的FTL映射地址的FTL映射表(S140)。高速缓存127将所读取的FTL映射表发送至解包器/打包器125。
此后,解包器/打包器125解包PPN(S150)。也就是说,解包器/打包器125执行解包,即,提取对应于所提取的LPN的PPN。解包器/打包器125将所提取的PPN发送至LPN提取器121。
此后,LPN提取器从解包器/打包器125中接收所提取的PPN并且将所接收的PPN发送至CPU 110(S160)。然而,本公开不限于此。也就是说,在一些示例性实施例中,解包器/打包器125可以将所提取的PPN直接发送至CPU 110。
图11是示出根据本公开的一些示例性实施例的存储器控制器的根据加载指令的操作的框图。图12是示出根据本公开的一些示例性实施例的存储器控制器的根据存储指令的操作的流程图。将在下文中描述图11和图12的示例性实施例,主要聚焦与图9和图10的示例性实施例的差异以避免任何冗余的描述。
参考图11和图12,存储器控制器100的CPU 110可以使用存储指令STR和逻辑地址来执行访问操作。尽管没有具体地示出,存储指令STR可以从闪速存储器300的F/W中被接收并且可以被存储在CPU 110中的内部存储器(诸如,例如RAM或者ROM)。可替换地,存储指令STR可以已经被存储在CPU110中的内部存储器(诸如,例如RAM或者ROM)中。
例如,在其中外部设备(例如,主机200)发出用于修改在闪速存储器300中所存储的数据的请求的情况下,CPU 110可以执行访问指令,其是存储指令STR和逻辑地址的组合。访问指令可以是,例如,“STD R0,[LPN]”,其中“STD”代表存储指令,“R0”是可变的,并且“[LPN]”代表被分配至存储器映射地址空间的逻辑地址。可以以汇编语言配置访问指令。
在访问指令被执行的情况下,CPU 110将被包括在访问指令中的逻辑地址发送至LPN转换器120。
图12的S210、S220、S230、S240、和S250可以基本上分别与图10的S110、S120、S130、S140、和S150相同,并且因此,其详细描述将被省略。将在下文中描述S250之后的、LPN转换器120的操作。
LPN提取器121从解包器/打包器125中接收PPN(S260)。
此后,LPN提取器121修改PPN(S270)。LPN提取器121可以利用新的PPN来更新所接收的PPN。LPN提取器121将经更新的PPN发送至解包器/打包器125。然而,本公开不限于此。也就是说,可以由解包器/打包器125来执行操作S270。
此后,解包器/打包器125打包经修改的PPN(S280)。解包器/打包器125可以执行打包,即,可以生成包括经修改的PPN的新的FTL映射表。新的FTL映射表包括经修改的PPN,并且在新的FTL映射表中,经修改的PPN和其他PPN可以被顺序地连接至彼此。新的FTL映射地址可以被发送至高速缓存127。
此后,高速缓存127在存储器130中存储新的FTL映射表(S290)。结果,可以根据存储指令STR来更新在存储器130中所存储的现有的FTL映射表。
尽管没有具体地示出,可以使用各种类型的封装来安装图1的存储设备1000。例如,可以使用以下封装来安装闪速存储器300和/或存储器控制器100:诸如堆叠封装(Package on Package,PoP)、球栅阵列(Ball grid array,BGA)、晶片尺寸封装(Chipscale package,CSP)、塑料引线芯片载体(Plastic Leaded Chip Carrier,PLCC)、塑料双列直插式封装(Plastic Dual In-Line Package,PDIP)、窝伏尔组件芯片(Die in WafflePack)、晶圆形芯片(Die in Wafer Form)、板上芯片(Chip On Board,COB)、陶瓷双列直插式封装(Ceramic Dual In-Line Package、CERDIP)、塑料四方形扁平封装(Plastic MetricQuad Flat Pack,MQFP)、薄型四方扁平封装(Thin Quad FlatPack,TQFP)、小外型(SmallOutline,SOIC)、缩小外型封装(Shrink Small Outline Package,SSOP)、薄型小外形封装(Thin Small Outline,TSOP)、薄型四方扁平封装(Thin Quad FlatPack,TQFP)、***级封装(System In Package,SIP)、多芯片封装(Multi Chip Package,MCP)、晶圆级制造封装(Wafer-level Fabricated Package,WFP)、以及晶圆级处理堆栈封装(Wafer-LevelProcessed Stack Package,WSP),但是本公开不限于此。
虽然已经参考其示例性实施例具体地示出和描述了本发明构思,本领域普通技术人员将理解,在不脱离由以下权利要求定义的本发明构思的精神和范围的情况下,可以在形式和细节上进行各种改变。因此期望本实施例在所有方面被认为是说明性的而不是限制性的,对所附权利要求而不是前述描述进行参考以指示所要求保护的发明的范围。
Claims (20)
1.一种存储器控制器,包括:
存储器,存储闪存转换层映射表,所述闪存转换层映射表包括闪速存储器的物理页号和与所述物理页号对应的逻辑页号的对应关系;
中央处理单元,通过寻址存储器映射地址空间的逻辑地址来直接访问逻辑页号,对应于逻辑页号的逻辑地址被直接分配给存储器映射地址空间的一部分;以及
逻辑页号转换器,从所述中央处理单元接收所述逻辑地址、提取对应于所述逻辑地址的逻辑页号、从所述存储器读取对应于所提取的逻辑页号的闪存转换层映射表、基于闪存转换层映射表中的对应关系提取对应于所提取的逻辑页号的物理页号、以及将所提取的物理页号发送至所述中央处理单元;
其中,所述存储器映射地址空间不同于存储器中的闪存转换层映射表。
2.如权利要求1所述的存储器控制器,其中所述逻辑页号转换器包括:
逻辑页号提取器,其提取对应于所接收的逻辑地址的逻辑页号;
闪存转换层映射地址生成器,其通过使用所述所提取的逻辑页号来生成闪存转换层映射地址,其中经由所述闪存转换层映射地址来访问在所述存储器中所存储的所述闪存转换层映射表;以及
解包器/打包器,其从所述存储器接收对应于所生成的闪存转换层映射地址的所述闪存转换层映射表并且提取所述物理页号。
3.如权利要求2所述的存储器控制器,还包括:
高速缓存,暂时存储由所述闪存转换层映射地址生成器生成的所述闪存转换层映射地址和从所述存储器接收的所述闪存转换层映射表。
4.如权利要求3所述的存储器控制器,其中响应于相同的逻辑地址不止一次被接收,所述逻辑页号转换器通过使用在所述高速缓存中所存储的所述闪存转换层映射表来提供随后所接收的逻辑地址的所述物理页号。
5.如权利要求2所述的存储器控制器,其中响应于所述物理页号被修改,所述解包器/打包器通过打包经修改的物理页号来生成新的闪存转换层映射表。
6.如权利要求1所述的存储器控制器,其中所述存储器映射地址空间包括与所述逻辑页号对应的逻辑地址被分配到的第一扇区和用于访问被包括在所述存储器控制器中的动态随机存取存储器的逻辑地址被分配到的第二扇区。
7.如权利要求6所述的存储器控制器,其中
响应于所述动态随机存取存储器被访问,使用被分配至所述第二扇区的逻辑地址,以及
响应于所述闪速存储器被访问,使用被分配至所述第一扇区的逻辑地址。
8.如权利要求1所述的存储器控制器,其中所述逻辑页号与所述物理页号一对一地对应。
9.如权利要求1所述的存储器控制器,其中加载指令或者存储指令与逻辑地址一起被使用来执行用于调用闪速存储器的物理页号的访问操作。
10.一种存储器***包括:
闪速存储器,存储数据;以及
存储器控制器,控制所述闪速存储器,
其中所述存储器控制器包括:
存储器,其存储闪存转换层映射表,所述闪存转换层映射表包括所述闪速存储器的物理页号和与所述物理页号对应的逻辑页号的对应关系,
逻辑页号转换器,其从中央处理单元接收逻辑地址,提取对应于所述逻辑地址的逻辑页号、从所述存储器读取对应于所提取的逻辑页号的闪存转换层映射表、基于闪存转换层映射表中的对应关系提取对应于所提取的逻辑页号的物理页号、以及将所提取的物理页号发送至所述中央处理单元,所述中央处理单元通过寻址存储器映射地址空间的逻辑地址来直接访问逻辑页号,对应于逻辑页号的逻辑地址被直接分配给存储器映射地址空间的一部分,以及
其中,所述存储器***通过使用加载指令或者存储指令来调用所述闪速存储器的物理页号、和所述逻辑页号;
其中,所述存储器映射地址空间不同于存储器中的闪存转换层映射表。
11.如权利要求10所述的存储器***,其中
所述闪速存储器包括固件,其包括所述加载指令或者所述存储指令,以及
所述存储器***还包括中央处理单元中央处理单元,其从所述闪速存储器加载所述加载指令或者所述存储指令,并且通过使用所述逻辑地址来执行访问操作。
12.如权利要求11所述的存储器***,其中以汇编语言配置用于所述访问操作的访问指令并且所述访问指令被存储在被包括在所述中央处理单元中的存储器中或者被存储在所述固件中。
13.如权利要求11所述的存储器***,其中所述中央处理单元将所述逻辑地址直接发送至所述逻辑页号转换器并且从所述逻辑页号转换器接收所述物理页号。
14.如权利要求10所述的存储器***,其中所述逻辑地址与所述闪速存储器的物理页号一对一地对应。
15.如权利要求10所述的存储器***,其中所述逻辑页号的单元大小与所述存储器映射地址空间的存储器映射地址的单元大小相同。
16.一种存储器***,包括:
主机;以及
存储设备,包括闪速存储器,所述存储设备从主机接收对在所述闪速存储器中所存储的数据的请求、以及向主机提供所述数据,
其中,所述存储设备包括:
存储器,其存储闪存转换层映射表,所述闪存转换层映射表包括所述闪速存储器的物理页号和与所述物理页号对应的逻辑页号的对应关系;
中央处理单元,其通过寻址存储器映射地址空间的逻辑地址来直接访问逻辑页号,对应于逻辑页号的逻辑地址被直接分配给存储器映射地址空间的一部分并且在接收到来自主机的请求时,通过使用指令和所述逻辑地址来执行访问操作;以及
逻辑页号转换器,其从所述中央处理单元中接收逻辑地址、提取对应于所接收的逻辑地址的逻辑页号、从存储器中读取对应于所提取的逻辑页号的所述闪存转换层映射表、并且基于闪存转换层映射表中的对应关系提取对应于所提取的逻辑页号的物理页号,
其中,所述存储器映射地址空间不同于存储器中的闪存转换层映射表。
17.如权利要求16所述的存储器***,其中在所述访问操作中所使用的指令是加载指令或者存储指令,并且与所述逻辑地址组合。
18.如权利要求16所述的存储器***,其中所述逻辑页号转换器包括:
逻辑页号提取器,其提取对应于从所述中央处理单元接收的所述逻辑地址的所述逻辑页号;
闪存转换层映射地址生成器,其通过使用所述所提取的逻辑页号来生成闪存转换层映射地址,其中经由所述闪存转换层映射地址来访问被存储在所述存储器中的所述闪存转换层映射表;以及
解包器/打包器,其从所述存储器接收对应于所生成的闪存转换层映射地址的闪存转换层映射表并且提取对应于所提取的逻辑页号的物理页号。
19.如权利要求18所述的存储器***,还包括:
高速缓存,暂时存储由所述闪存转换层映射地址生成器生成的所述闪存转换层映射地址和从所述存储器接收的所述闪存转换层映射表。
20.如权利要求19所述的存储器***,其中响应于所述中央处理单元不止一次地调用相同的逻辑地址,在不访问所述存储器的情况下,所述逻辑页号转换器通过使用在所述高速缓存中所存储的所述闪存转换层映射表来提供随后所接收的逻辑地址的所述物理页号。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160147462A KR102661020B1 (ko) | 2016-11-07 | 2016-11-07 | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
KR10-2016-0147462 | 2016-11-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108062280A CN108062280A (zh) | 2018-05-22 |
CN108062280B true CN108062280B (zh) | 2024-01-16 |
Family
ID=62063681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711078396.1A Active CN108062280B (zh) | 2016-11-07 | 2017-11-06 | 存储器控制器以及包括该存储器控制器的存储器*** |
Country Status (3)
Country | Link |
---|---|
US (1) | US10671522B2 (zh) |
KR (1) | KR102661020B1 (zh) |
CN (1) | CN108062280B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112513822B (zh) * | 2018-08-01 | 2024-05-10 | 华为技术有限公司 | 信息处理方法及装置、设备、*** |
CN110851372B (zh) * | 2018-08-20 | 2023-10-31 | 慧荣科技股份有限公司 | 储存装置及快取区定址方法 |
KR20200031924A (ko) | 2018-09-17 | 2020-03-25 | 삼성전자주식회사 | 메모리 컨트롤러, 메모리 컨트롤러의 동작 방법 및 메모리 컨트롤러를 포함하는 스토리지 장치 |
KR20200085510A (ko) * | 2019-01-07 | 2020-07-15 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 동작 방법과, 이를 위한 컨트롤러 |
US10901912B2 (en) | 2019-01-28 | 2021-01-26 | Western Digital Technologies, Inc. | Flash translation layer table for unaligned host writes |
KR20200106682A (ko) | 2019-03-05 | 2020-09-15 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 및 그것의 동작방법 |
CN110347614B (zh) * | 2019-07-08 | 2022-08-12 | 镕铭微电子(济南)有限公司 | 存储空间映射算法、缓存状态机、存储装置、存储介质 |
CN111338989B (zh) * | 2020-02-12 | 2021-01-12 | 合肥康芯威存储技术有限公司 | 一种存储器及其控制方法与存储*** |
KR102365312B1 (ko) | 2021-06-17 | 2022-02-23 | 삼성전자주식회사 | 스토리지 컨트롤러, 연산 스토리지 장치, 및 연산 스토리지 장치의 동작 방법 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6820180B2 (en) * | 2002-04-04 | 2004-11-16 | International Business Machines Corporation | Apparatus and method of cascading backup logical volume mirrors |
KR100706242B1 (ko) * | 2005-02-07 | 2007-04-11 | 삼성전자주식회사 | 메모리 시스템 및 그것의 런 단위 어드레스 매핑 테이블 구성 방법 |
KR100781517B1 (ko) | 2006-02-16 | 2007-12-03 | 삼성전자주식회사 | 비휘발성 메모리의 맵핑 정보 관리 장치 및 방법 |
US8095723B2 (en) * | 2007-02-16 | 2012-01-10 | Electronics And Telecommunications Research Institute | Log-based flash translation layer and operating method thereof |
US7917689B2 (en) | 2007-12-28 | 2011-03-29 | Intel Corporation | Methods and apparatuses for nonvolatile memory wear leveling |
US20100325374A1 (en) * | 2009-06-17 | 2010-12-23 | Sun Microsystems, Inc. | Dynamically configuring memory interleaving for locality and performance isolation |
US20140059278A1 (en) | 2011-11-14 | 2014-02-27 | Lsi Corporation | Storage device firmware and manufacturing software |
KR20130084846A (ko) * | 2012-01-18 | 2013-07-26 | 삼성전자주식회사 | 플래시 메모리를 기반으로 하는 저장 장치, 그것을 포함한 사용자 장치, 그리고 그것의 데이터 읽기 방법 |
US8645594B2 (en) | 2012-06-29 | 2014-02-04 | Intel Corporation | Driver-assisted base address register mapping |
CN103970669A (zh) | 2013-02-06 | 2014-08-06 | Lsi公司 | 用于加速在固态设备中的回收操作的物理到逻辑地址映射 |
US20140244901A1 (en) | 2013-02-26 | 2014-08-28 | Lsi Corporation | Metadata management for a flash drive |
US9122588B1 (en) | 2013-03-15 | 2015-09-01 | Virident Systems Inc. | Managing asymmetric memory system as a cache device |
US9213633B2 (en) | 2013-04-30 | 2015-12-15 | Seagate Technology Llc | Flash translation layer with lower write amplification |
US20160026399A1 (en) | 2014-07-23 | 2016-01-28 | Lsi Corporation | Block i/o interface for a host bus adapter that utilizes nvdram |
-
2016
- 2016-11-07 KR KR1020160147462A patent/KR102661020B1/ko active IP Right Grant
-
2017
- 2017-09-22 US US15/713,052 patent/US10671522B2/en active Active
- 2017-11-06 CN CN201711078396.1A patent/CN108062280B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US10671522B2 (en) | 2020-06-02 |
CN108062280A (zh) | 2018-05-22 |
US20180129599A1 (en) | 2018-05-10 |
KR20180050888A (ko) | 2018-05-16 |
KR102661020B1 (ko) | 2024-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108062280B (zh) | 存储器控制器以及包括该存储器控制器的存储器*** | |
US10896136B2 (en) | Storage system including secondary memory that predicts and prefetches data | |
CN109240938B (zh) | 存储***以及控制非易失性存储器的控制方法 | |
US8010740B2 (en) | Optimizing memory operations in an electronic storage device | |
KR102367982B1 (ko) | 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템 | |
KR102565895B1 (ko) | 메모리 시스템 및 그것의 동작 방법 | |
KR20120057521A (ko) | 개선된 플래시 메모리 호환성을 갖는 전자 장치 및 전자 장치의 플래시 메모리 호환성을 개선하는 방법 | |
US10324651B2 (en) | Data transmission method, and storage controller and list management circuit using the same | |
CN111338564B (zh) | 包括数据存储设备的***和控制丢弃操作的方法 | |
US20180173418A1 (en) | Apparatus, system and method for offloading collision check operations in a storage device | |
US11907120B2 (en) | Computing device for transceiving information via plurality of buses, and operating method of the computing device | |
TWI640864B (zh) | 重疊輸入輸出記憶體管理單元映射及第二層記憶體讀取之二階命令緩衝器 | |
US7249241B1 (en) | Method and apparatus for direct virtual memory address caching | |
US10466938B2 (en) | Non-volatile memory system using a plurality of mapping units and operating method thereof | |
CN111913892B (zh) | 使用cmb提供开放通道存储设备 | |
CN107844265B (zh) | 操作计算***的方法以及操作计算***中的存储器控制器的方法 | |
US10168901B2 (en) | Memory system, information processing apparatus, control method, and initialization apparatus | |
US10853263B1 (en) | Unified kernel virtual address space for heterogeneous computing | |
JP5958195B2 (ja) | 仮想記憶管理システム、仮想記憶管理装置、仮想記憶初期化方法および仮想記憶初期化プログラム | |
US20170031633A1 (en) | Method of operating object-oriented data storage device and method of operating system including the same | |
US20240201879A1 (en) | Storage device, storage device operating method and resource management device for determining unit of data required for operation of resources of storage device based on access pattern of host device | |
JP2024507141A (ja) | メモリ保護データを使用すること |
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 |