CN113849120B - 存储装置及其操作方法 - Google Patents
存储装置及其操作方法 Download PDFInfo
- Publication number
- CN113849120B CN113849120B CN202010986729.6A CN202010986729A CN113849120B CN 113849120 B CN113849120 B CN 113849120B CN 202010986729 A CN202010986729 A CN 202010986729A CN 113849120 B CN113849120 B CN 113849120B
- Authority
- CN
- China
- Prior art keywords
- transaction
- memory
- write
- data
- memory device
- 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
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000015654 memory Effects 0.000 claims abstract description 284
- 238000003860 storage Methods 0.000 claims abstract description 41
- 230000008569 process Effects 0.000 claims abstract description 5
- 239000000872 buffer Substances 0.000 claims description 24
- 238000012937 correction Methods 0.000 claims description 22
- 230000004044 response Effects 0.000 claims description 22
- 230000002776 aggregation Effects 0.000 claims description 16
- 238000004220 aggregation Methods 0.000 claims description 16
- 230000003247 decreasing effect Effects 0.000 claims description 6
- 238000010926 purge Methods 0.000 claims 3
- 230000004931 aggregating effect Effects 0.000 claims 1
- 238000013507 mapping Methods 0.000 description 35
- 239000010410 layer Substances 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000002093 peripheral effect Effects 0.000 description 8
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 4
- 238000011017 operating method Methods 0.000 description 3
- 239000002356 single layer Substances 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000005086 pumping Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 101000934888 Homo sapiens Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Proteins 0.000 description 1
- 235000014676 Phragmites communis Nutrition 0.000 description 1
- 102100025393 Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Human genes 0.000 description 1
- 230000009977 dual effect Effects 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
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Classifications
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- 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/38—Information transfer, e.g. on bus
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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
-
- 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/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
- 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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
-
- 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
- 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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
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)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本公开涉及一种电子装置。根据本公开,一种具有提高的操作速度的存储装置可以包括:非易失性存储器装置;主存储器,被配置为临时存储与控制非易失性存储器装置相关的数据;以及存储器控制器,被配置为在外部主机的控制下控制非易失性存储器装置和主存储器。主存储器可聚合并处理从存储器控制器接收的写入事务之中的具有连续地址的大量写入事务,该写入事务等于主存储器的突发长度单位。
Description
相关申请的交叉引用
本申请要求于2020年6月25日向韩国知识产权局提交的申请号为10-2020-0077968的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
本公开涉及一种电子装置,并且更特别地,涉及一种存储装置及其操作方法。
背景技术
存储装置是一种在诸如计算机或智能电话的主机装置的控制下存储数据的装置。存储装置可以包括存储数据的存储器装置和控制存储器装置的存储器控制器。存储器装置可以分为易失性存储器装置或非易失性存储器装置。
易失性存储器装置可以是在供电时存储数据且在断电时丢失所存储的数据的装置。易失性存储器装置可以包括静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等。
非易失性存储器装置是在断电时不会丢失数据的装置。非易失性存储器装置可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦可编程ROM(EEPROM)、闪速存储器等。
在企业服务器市场中,由于不断增加的带宽需求和功耗问题,经常利用包括NAND闪速存储器的固态驱动器(SSD)而非硬盘驱动器来作为存储装置。
最初的SSD控制器使用内部存储器作为数据缓冲器。然而,由于对高速的需求,近来SSD控制器使用DRAM作为数据缓冲器。大多企业服务器使用DRAM模块,其中昂贵的错误校正码(ECC)函数被应用为系统总线的主存储器以为服务器提供数据稳定性。
发明内容
本公开的实施例提供一种具有提高的操作速度的存储装置及其操作方法。
一种根据本公开的实施例的易失性存储器控制器,控制易失性存储器装置,可以包括:错误校正电路,被配置为从外部主机接收写入事务,其中该写入事务将数据存储在易失性存储器装置中,并且生成在对与写入事务相对应的数据执行错误校正编码时使用的码字;以及数据聚合器,被配置为生成合并事务,在该合并事务中,合并了与易失性存储器装置的突发(burst)长度相对应的写入事务,并且通过执行突发操作向易失性存储器装置提供合并事务。
一种根据本公开的实施例的存储装置可以包括:非易失性存储器装置;主存储器,被配置为临时存储与控制非易失性存储器装置相关的数据;以及存储器控制器,被配置为在外部主机的控制下控制非易失性存储器装置和主存储器,其中主存储器聚合并处理从存储器控制器接收到的写入事务之中的具有连续地址的大量写入事务,该写入事务等于主存储器的突发长度单位。
根据本公开,提供了一种具有提高的操作速度的存储装置及其操作方法。
附图说明
图1示出根据本公开的实施例的存储装置。
图2示出图1的存储器装置。
图3示出图2的存储块中的任意一个的配置。
图4示出当数据存储在主存储器装置时执行的错误校正编码操作。
图5示出用于存储校验数据的地址映射方法。
图6示出根据本公开的实施例的主存储器的操作。
图7示出根据本公开的实施例的存储装置的操作。
图8示出参照图7所述的调度器和内部总线的操作。
图9示出在不生成合并事务时数据聚合器的操作。
图10示出根据本公开的实施例的存储装置中包括的主存储器的操作。
图11示出图1的存储器控制器的另一实施例。
图12示出应用了根据本公开的实施例的存储装置的存储卡系统。
图13示出应用了根据本公开的实施例的存储装置的固态驱动器(SSD)系统。
图14示出应用了根据本公开的实施例的存储装置的用户系统。
具体实施方式
示出根据本说明书或申请中公开的构思的实施例的特定结构或功能性描述仅用于描述根据本公开的构思的实施例。根据本公开的构思的实施例可以以各种形式实施,并且说明书不受本说明书或本申请中所描述的实施例的限制。
图1示出根据本公开的实施例的存储装置。
参照图1,存储装置50可包括存储器装置100和控制存储器装置100的操作的存储器控制器200。存储装置50可以是在诸如以下的主机400的控制下存储数据的装置:移动电话、智能电话或其他移动装置、MP3播放器、膝上型计算机、台式计算机、游戏机或游戏系统、TV、平板PC、车载信息娱乐系统等。
存储装置50可以被制造为经由主机接口与主机400通信的各种类型的存储装置中的一种。例如,存储装置50可被配置为诸如以下的各种类型的存储装置中的任意一种:SSD,MMC(多媒体卡)、eMMC(嵌入式MMC)、RS-MMC(尺寸减小的MMC)和微型MMC形式的多媒体卡,SD、迷你SD和/或微型SD形式的安全数字卡,通用串行总线(USB)存储装置,通用闪存(UFS)装置,个人计算机存储卡国际协会(PCMCIA)卡型存储装置,外围组件互连(PCI)卡型存储装置,高速PCI(PCI-E)卡型存储装置,紧凑型闪存(CF)卡,智能媒体卡和记忆棒。
存储装置50可以被制造为各种类型的封装中的任意一种。例如,存储装置50可被制造成诸如以下的各种类型的封装形式中的任意一种:堆叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)和晶圆级堆叠封装(WSP)。
存储器装置100可存储数据。存储器装置100在存储器控制器200的控制下操作。存储器装置100可包括存储器单元阵列(未示出),该存储器单元阵列包括存储数据的多个存储器单元。
存储器单元中的每一个可被配置为存储一个数据位的单层单元(SLC)、存储两个数据位的多层单元(MLC)、存储三个数据位的三层单元(TLC)或能够存储四个数据位的四层单元(QLC)。
存储器单元阵列(未示出)可包括多个存储块。一个存储块可包括多个页面。在实施例中,页面可以是用于将数据存储在存储器装置100中或者读取存储在存储器装置100中的数据的单位。存储块可以是用于擦除数据的单位。
在实施例中,存储器装置100可以是双倍数据速率同步动态随机存取存储器(DDRSDRAM)、低功率双倍数据速率4(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器装置、电阻式随机存取存储器(RRAM)、相变存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)、自旋转移力矩随机存取存储器(STT-RAM)等。在本说明书中,为了方便描述,存储器装置100可以是NAND闪速存储器。
存储器装置100被配置为从存储器控制器200接收命令CMD和地址ADDR,并且访问由存储器单元阵列中的地址选择的区域。存储器装置100可以对由地址ADDR识别或参考的区域执行由命令CMD指示的操作。例如,存储器装置100可执行写入操作(例如,编程操作)、读取操作和/或擦除操作。在编程操作期间,存储器装置100可将数据编程在由地址ADDR识别的区域。在读取操作期间,存储器装置100可从由地址ADDR识别的区域读取数据。在擦除操作期间,存储器装置100可擦除存储在由地址ADDR识别的区域中的数据。
存储器控制器200可控制存储装置50的全部操作。在实施例中,存储器控制器200是管理往来于存储器装置100的数据流的数字电路。存储器控制器200可以独立地形成在芯片上,或者与一个或多个其它电路集成。
当向存储装置50供电时,存储器控制器200可运行固件(FW)。当存储器装置100是闪速存储器装置时,固件(FW)可以包括控制与主机400通信的主机接口层(HIL)、控制存储器控制器200和主机400之间通信的闪存转换层(FTL)以及控制与存储器装置100通信的闪存接口层(FIL)。
在实施例中,存储器控制器200可从主机400接收数据和逻辑块地址(LBA)并且可将LBA转换为物理块地址(PBA),该物理块地址(PBA)指示将待存储包括在存储器装置100中的数据的存储器单元的地址。在本说明书中,LBA和“逻辑地址”或“逻辑的地址”可互换使用。在本说明书中,PBA和“物理地址”可互换使用。
根据主机400提供的请求,存储器控制器200可控制存储器装置100以执行编程操作、读取操作和/或擦除操作。在编程操作期间,存储器控制器200可向存储器装置100提供写入命令、PBA和数据。在读取操作期间,存储器控制器200可向存储器装置100提供读取命令和PBA。在擦除操作期间,存储器控制器200可向存储器装置100提供擦除命令和PBA。
在实施例中,存储器控制器200可以独立地或在未接收到来自主机400的请求的情况下生成命令、地址和数据。存储器控制器200可以向存储器装置100传输命令、地址和/或数据。例如,存储器控制器200可以向存储器装置100提供命令、地址和/或数据以执行读取操作和关联程序,例如损耗均衡、读取回收、垃圾收集等。
在实施例中,存储器控制器200可控制至少两个或多个存储器装置100。在这种情况下,存储器控制器200可根据交错方法控制存储器装置100来提高操作性能。交错方法可以是控制针对至少两个存储器装置100的操作的方法,其中操作的执行彼此重叠。
主存储器300可以临时存储从主机400接收到的数据或可以临时存储从存储器装置100接收到的数据。主存储器300可以在主机400的控制下进行操作。在实施例中,主存储器300可以是易失性存储器装置。例如,主存储器300可以是动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)。
主存储器300可以根据由存储器控制器200提供或从存储器控制器200接收到的请求向存储器装置100提供数据,或可以向主机400提供数据。在实施例中,主存储器300可以向存储器控制器200提供数据和/或存储从存储器控制器200接收到的数据。
主存储器300可以使用错误校正码来执行编码操作和/或解码操作以检测或校正所存储的数据中包括的错误位。
在实施例中,存储器控制器200可以读取存储在存储器装置100中的元数据,并且将所读取的元数据存储在主存储器300中。
元数据可以是包括控制存储装置50所需的或所使用的各种信息的数据。例如,元数据可以包括坏块信息和固件,该坏块信息是关于包括在存储器装置100中的多个存储块之中的坏块或多个坏块的信息,并且固件待由存储器控制器200的处理器210运行。
在实施例中,元数据可以包括指示或包含由主机400提供的逻辑地址和存储器装置100中包括的存储器单元的物理地址之间的对应或关系的映射数据。进一步,元数据可以包括指示存储在存储器装置100中包含的页面中的数据是否为有效数据的有效页面表。在实施例中,有效页面表数据可以包括多个有效页面表。有效页面表可以是指示以4KB单位存储在页面中的数据是否有效的位图形式的数据。
可选地,在各个实施例中,元数据可以包括指示对存储器装置100中包括的存储块执行的读取操作的实例的数量的读取计数数据、指示存储器装置100中包括的存储块的擦除实例的数量的循环数据、指示存储在存储器装置100中包含的页面中的数据是否为热数据或冷数据的热/冷数据和/或指示映射数据的内容的改变的日志数据。
在实施例中,对于每种类型,存储在主存储器300中的元数据可以包括具有不同类型的数据结构的数据块组。例如,对于每种类型,元数据可以具有不同的数据大小。因此,对于每种类型,存储在主存储器300中的元数据的大小可以不同。
在本公开的实施例中,存储器控制器200可以包括处理器210和高速缓存存储器220。
处理器210可以控制存储器控制器200的全部操作。处理器210可以控制主存储器300读取存储在主存储器300中的数据,改变该数据,然后将该数据存回主存储器300。
处理器210可以运行固件(FW)。处理器210可以执行访问存储器装置100所需的操作或用于访问存储器装置100的操作。例如,处理器210可以向存储器装置100提供命令,并且控制存储器装置100和主存储器300以执行对应于该命令的操作或以基于该命令执行操作。
例如,当从主机400接收到写入请求时,处理器210可以将与该写入请求相对应的逻辑地址转换为物理地址。处理器210可以将逻辑地址和物理地址之间的对应或关系的映射数据存储在主存储器300中。
为了存储映射数据,处理器210可以从主存储器300中读取包括由主机400提供的逻辑地址的映射信息的映射段。此后,处理器210可以记录与该映射段中的逻辑地址相对应的物理地址。处理器210可以将记录物理地址的映射段存储回主存储器300中。在分配物理地址时,也可以更新与相关联的物理地址相对应的有效页面表的数据。
在实施例中,可以更新存储在主存储器300中的映射数据。例如,在相对于先前写入请求的逻辑地址输入新数据的写入请求时,先前存储的数据可能成为无效数据,并且与逻辑地址相对应的物理地址可能被改变。可选地,在通过诸如垃圾收集、读取回收和/或损耗均衡的各种后台操作改变存储的数据时,可以更新映射数据。
高速缓存存储器220可以存储来自主存储器300、被处理器210访问的数据。高速缓存存储器220的容量可小于主存储器300的容量。在实施例中,高速缓存存储器220可以是易失性存储器装置。例如,主存储器300可以是动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)。高速缓存存储器220可以是操作速度比主存储器300的操作速度快的存储器。
由于高速缓存存储器220的容量小于主存储器300的容量,因此相对于存储在主存储器300中的所有元数据,高速缓存存储器220可以仅存储被处理器210访问的元数据。相对于存储在主存储器300中的所有数据,与特定地址相关联的数据在高速缓存存储器220中的存储被称为高速缓存。
当高速缓存存储器220存储来自主存储器300、待被处理器210访问的数据时,高速缓存存储器220可以向处理器210提供数据。由于高速缓存存储器220的操作速度比主存储器300的操作速度快,因此当待被处理器210访问的数据存储在高速缓存存储器220中时,处理器210可以更快地获得数据,而不是从主存储器300获得数据。
当待被处理器210访问的数据存储在高速缓存存储器220中时,会发生高速缓存命中,且当待被处理器210访问的数据没有存储在高速缓存存储器220中时,会发生高速缓存未命中。当高速缓存存储器220的高速缓存命中增加时,由处理器210处理的操作的速度也可增加。
操作高速缓存存储器220的方法可以分类为或称为直接映射高速缓存、组相联高速缓存和/或全相联高速缓存。
直接映射高速缓存操作方法可以是主存储器300的多个地址以与高速缓存存储器220的一个地址相对应的多对一(n:1)方法操作的方法。也就是说,直接映射高速缓存操作方法可以是提前映射和固定高速缓存存储器(未示出)的地址的操作方法,在该地址中可以高速缓存存储在主存储器300的特定地址中的数据。
全相联高速缓存可以是不固定地映射高速缓存存储器(未示出)的地址和主存储器300的地址且空高速缓存存储器(未示出)的地址可以高速缓存存储在主存储器300的任意地址中的数据的操作方法。在确定发生高速缓存命中或高速缓存未命中时,需要或使用全相联高速缓存来搜索所有地址。
组相联高速缓存操作方法是直接映射高速缓存和全相联高速缓存的中间形式,且通过将高速缓存存储器(未示出)划分为多个高速缓存组来管理高速缓存存储器(未示出)。高速缓存组可以被划分为也被管理的高速缓存通路或高速缓存线。
主机400可使用诸如以下的各种通信方法或协议中的至少一种来与存储装置50通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)和/或低负载DIMM(LRDIMM)。
图2示出图1的存储器装置100。
参照图2,存储器装置100可包括存储器单元阵列110、电压生成器120、地址解码器130、输入/输出电路140和控制逻辑150。
存储器单元阵列110包括多个存储块BLK1至BLKi。多个存储块BLK1至BLKi通过行线RL与地址解码器130连接。多个存储块BLK1至BLKi通过列线CL与输入/输出电路140连接。在实施例中,行线RL可以包括字线、源极选择线和漏极选择线。在实施例中,列线CL可以包括位线。
多个存储块BLK1至BLKi中的每一个包括多个存储器单元。在实施例中,多个存储器单元可以是非易失性存储器单元。多个存储器单元之中连接到相同字线的存储器单元可以称为一个物理页面。也就是说,存储器单元阵列110可包括多个物理页面。存储器装置100的存储器单元中的每一个可被配置为存储一个数据位的单层单元(SLC)、存储两个数据位的多层单元(MLC)、存储三个数据位的三层单元(TLC)或能够存储四个数据位的四层单元(QLC)。
在实施例中,电压生成器120、地址解码器130和输入/输出电路140可以统称为外围电路。外围电路可以在控制逻辑150的控制下驱动存储器单元阵列110。外围电路可以驱动存储器单元阵列110以执行编程操作、读取操作和/或擦除操作。
电压生成器120被配置为使用供应到存储器装置100的外部电源电压来生成多个操作电压Vop。电压生成器120响应于控制逻辑150的控制而操作。
在实施例中,电压生成器120可通过调节外部电源电压来生成内部电源电压。由电压生成器120生成的内部电源电压用作存储器装置100的操作电压。
在实施例中,电压生成器120可使用外部电源电压或内部电源电压来生成多个操作电压。电压生成器120可以被配置为生成存储器装置100中所需的多种电压。例如,电压生成器120可以生成多个擦除电压、多个编程电压、多个通过电压、多个所选择的读取电压和/或多个未选择的读取电压。
电压生成器120可以包括接收内部电源电压以生成具有多个电平的多个操作电压的多个泵浦电容器,并且可以响应于控制逻辑150的控制通过选择性地启用多个泵浦电容器来生成多个操作电压。
所生成的多个操作电压可以通过地址解码器130供应到存储器单元阵列110。
地址解码器130通过行线RL连接到存储器单元阵列110。地址解码器130被配置为响应于控制逻辑150的控制而操作。地址解码器130从控制逻辑150接收一个或多个地址ADDR。地址解码器130可对接收到的地址ADDR之中的块地址进行解码。地址解码器130根据或基于经解码的块地址选择存储块BLK1至BLKi中的至少一个存储块。地址解码器130可对接收到的地址ADDR之中的行地址进行解码。地址解码器130可以根据或基于经解码的行地址在所选择的存储块的字线之中选择至少一个字线。在实施例中,地址解码器130可对接收到的地址ADDR之中的列地址进行解码。地址解码器130可以根据或基于经解码的列地址将输入/输出电路140和存储器单元阵列110相互连接。
例如,地址解码器130可以包括诸如行解码器、列解码器和地址缓冲器的组件。
输入/输出电路140可以包括多个页面缓冲器。多个页面缓冲器可以通过位线连接到存储器单元阵列110。在编程操作期间,可以根据存储在多个页面缓冲器中的数据来将数据存储在所选择的存储器单元中。
在读取操作期间,可以通过位线感测存储在所选择的存储器单元中的数据,且可以将感测到的数据存储在页面缓冲器中。
控制逻辑150可以控制地址解码器130、电压生成器120以及输入/输出电路140。控制逻辑150可以响应于从外部装置接收和/或由外部装置传输的命令CMD而操作。控制逻辑150可以响应于命令CMD和地址ADDR生成各种信号以控制外围电路。
图3示出图2的存储块中的任意一个的配置。
存储块BLKi是图2的存储块BLK1至BLKi中的任意一个BLKi。
参照图3,互相平行布置的多个字线可以连接在第一选择线和第二选择线之间。如图所示,第一选择线可以是源极选择线SSL,并且第二选择线可以是漏极选择线DSL。更具体地,存储块可以包括连接在位线BL1至BLn与源极线SL之间的多个串ST。位线BL1至BLn可以分别连接至串ST,并且源极线SL可以连接到串ST。因为串ST可以被配置为彼此相同,所以作为示例,现在将具体描述连接到第一位线BL1的串ST。
串ST可以包括串联在源极线SL和第一位线BL1之间的源极选择晶体管SST、多个存储器单元MC1至MC16以及漏极选择晶体管DST。一个串ST可以包括至少一个或多个源极选择晶体管SST和漏极选择晶体管DST,且可以包括存储器单元MC1至MC16和/或图中未示出的附加存储器单元。
源极选择晶体管SST的源极可以连接到源极线SL,并且漏极选择晶体管DST的漏极可以连接到第一位线BL1。存储器单元MC1至MC16可以串联连接在源极选择晶体管SST和漏极选择晶体管DST之间。不同串ST中包括的源极选择晶体管SST的栅极可以连接到源极选择线SSL,漏极选择晶体管DST的栅极可以连接到漏极选择线DSL,并且存储器单元MC1至MC16的栅极可以连接到多个字线WL1至WL16。不同串ST中包括的存储器单元之中连接到相同字线的一组存储器单元可以被称为页面PG。因此,存储块BLKi可以包括与字线WL1至WL16的数量相等的页面PG。
一个存储器单元可以存储一个数据位。这一般称为单层单元(SLC)。在这种情况下,一个物理页面PG可以存储一个逻辑页面(LPG)数据。一个逻辑页面(LPG)数据可以包括与一个物理页面PG中包括的单元数量相等的数据位。
一个存储器单元可以存储两个或更多个数据位。在这种情况下,一个物理页面PG可以存储两个或多个逻辑页面(LPG)数据。
图4示出当数据存储在主存储器装置时执行的错误校正编码操作。
参照图4,主存储器可以从如参照图1所述的存储器装置100、存储器控制器200和/或主机400接收待存储的数据。待存储在主存储器中的数据可以是由主机400请求的、待存储在存储器装置100中的写入数据,从存储器装置100中读取的读取数据和/或由存储器控制器200请求的、待存储在主存储器中的数据。
由主存储器接收的数据可以是消息数据(Message Data)。在实施例中,消息数据(Message Data)的大小可以为32字节。
主存储器可以包括其自身的错误校正码引擎(ECC引擎),用于检测和校正待存储的数据的错误位。在实施例中,ECC引擎使用的错误校正码可以是BCH(博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem))、里德所罗门、汉明码、低密度奇偶校验码(LDPC)、独立磁盘冗余阵列(RAID)、循环冗余校验(CRC)等。
ECC引擎可以使用错误校正码对消息数据(Message Data)进行编码。对消息数据(Message Data)进行编码操作的结果可以生成码字。码字可以包括消息数据(MessageData)和校验数据(Parity Data)。主存储器可以将码字存储在主存储器装置(Main MemoryDevice)中。
为了将校验数据(Parity Data)存储在主存储器装置中,主存储器可以使用地址映射方法,包括单独模式映射和/或连续模式映射。
图5示出用于存储校验数据的地址映射方法。
参照图5,主存储器可以使用单独模式映射方法或连续模式映射方法来将校验数据(Parity Data)存储在主存储器装置中。
单独模式映射可以是消息数据和校验数据具有不同的基地址的映射方法。
第一映射表501可以包括映射信息,该映射信息包含根据单独模式映射分配的、其中待存储消息数据和校验数据的地址。根据单独模式映射方法,可能需要或利用执行单独写入操作或读取操作的附加事务来存储或读取校验数据。进一步,事务可以是将数据存储在主存储器中或从主存储器读取数据的访问单位。
连续模式映射可以是消息数据和校验数据具有相同的基地址或连续地址的映射方法。
第二映射表503可以包括映射信息,该映射信息包含根据连续模式映射分配的、其中待存储消息数据和校验数据的地址。根据连续模式映射方法,消息数据和校验数据具有相同的基地址,并且可以由一个事务进行访问。可选地,因为消息数据和校验数据具有连续地址,所以可以使用突发操作一起处理消息数据和校验数据。因此,可能不发生或执行用于访问校验数据的附加事务。
因此,根据连续模式映射方法而非单独模式映射方法来存储校验数据不使用或不需要附加事务。因此,使用连续模式映射方法存储校验数据可以提高存储器的操作效率。
然而,在连续模式映射方法的情况下,因为校验数据是在消息数据之后被立即传输,所以地址对齐可能被破坏。尽管该方法执行单个连续事务,但是该单个连续事务可以作为单独的内部事务进行处理,一个事务用于消息数据,一个事务用于校验数据。
因此,当使用ECC引擎时,连续模式映射方法可比单独模式映射方法更有效,但是当不使用ECC引擎时,效率可能会降低。
在本公开的实施例中,当使用ECC引擎时,提供数据聚合器来提高存储器效率降低,并且执行提高存储器效率降低的方法。
图6示出根据本公开的实施例的主存储器的操作。
参照图6,主存储器300可包括操作控制器310和主存储器装置320。在实施例中,操作控制器310可以是DRAM控制器(易失性存储器控制器),主存储器装置320可以是DRAM(易失性存储器装置)。
操作控制器310可以包括ECC引擎311和数据聚合器312。
ECC引擎311可以从如参照图1所述的存储器装置100、存储器控制器200和/或主机400接收待存储在主存储器装置320中的数据。在实施例中,待存储在主存储器装置320中的数据可以包括由主机400请求的、待存储在存储器装置100中的写入数据,从存储器装置100中读取的读取数据和/或由存储器控制器200请求的、待存储在主存储器中的数据。
ECC引擎311可以使用错误校正码对接收到的数据进行编码。ECC引擎311使用的错误校正码可以是BCH、里德所罗门、汉明码、低密度奇偶校验码(LDPC)、独立磁盘冗余阵列(RAID)、循环冗余校验(CRC)等。
ECC引擎311可以向数据聚合器312提供码字。
数据聚合器312可以从ECC引擎311接收码字。数据聚合器312可以响应于接收到的码字,向ECC引擎提供写入完成响应。写入完成响应可以是指示码字成功地存储在主存储器装置320中的响应。ECC引擎311可以向提供待存储的数据的存储器装置100、存储器控制器200和/或主机400提供接收的写入完成响应。
如本文所述,主存储器装置320可以执行突发操作。在此,突发操作指主存储器装置320通过从数据聚合器312接收的初始地址循序地减少或增加地址来写入或读取大量数据的操作。突发操作的基本单位被称为突发长度(BL)。在实施例中,BL可以是通过从初始地址增加或减少地址的连续读取或写入操作的数量。例如,在主存储器装置320是双倍数据速率(DDR)DRAM的情况下,当BL是8(BL=8)时,响应于时钟(CLK)从初始地址连续执行八次突发读取操作或写入操作。
BL可以由用户确定。也就是说,数据聚合器312可以在主机400的控制下设置BL。进一步,主存储器300可以进一步包括存储关于或有关BL的信息的全局寄存器(未示出)。在实施例中,主存储器装置320可以包括多个存储区域。例如,主存储器装置320可以包括多个内存库。在这种情况下,可以为多个存储区域中的每一个不同地或唯一地设置BL。
在实施例中,数据聚合器312可以临时存储接收到的码字而无需向主存储器装置320提供码字,直到达到预定的大小为止。可选地,数据聚合器312可以临时存储接收到的码字而无需向主存储器装置320提供码字,直到收集到预定数量的写入事务为止。在实施例中,预定的大小可以是与主存储器装置320的BL相对应的数据大小。可选地,写入事务的预定数量可以是BL。
图7示出根据本公开的实施例的存储装置的操作。
参照图7,存储器控制器200可以向操作控制器310提供待存储在主存储器装置320中的数据。
操作控制器310可以包括ECC引擎311和数据聚合器312。
数据聚合器312可以包括调度器312-1、内部缓冲器312-2和聚合控制器312-3。
如本文所述,ECC引擎311可以生成通过使用错误校正码对待存储的数据进行编码而获得的码字。在实施例中,码字可以包括消息数据(例如,原始数据)和与错误校正码相对应的校验数据。ECC引擎311可以向数据聚合器312提供码字。
数据聚合器312可以控制主存储器装置320以执行将数据存储在主存储器装置320中的写入操作或从主存储器装置320读取数据的读取操作。主存储器装置320可以使用事务进行操作。也就是说,数据聚合器312可以向主存储器装置320提供写入事务(例如,执行写入操作的请求)或读取事务(例如,执行读取操作的请求)。
调度器312-1可响应于聚合控制器312-3的控制而进行操作。例如,可以在调度器312-1的控制下将从ECC引擎311提供的写入事务存储在提供的序列中。
内部缓冲器312-2可以在聚合控制器312-3的控制下存储对应于写入事务的码字。
聚合控制器312-3可以从ECC引擎311接收码字。聚合控制器312-3可以将码字存储在内部缓冲器312-2中并向ECC引擎311提供写入完成响应。聚合控制器312-3可以将写入事务存储在调度器312-1中。写入事务可以包括关于与待存储的码字相对应的写入地址的信息。
当存储在内部缓冲器312-2中的码字达到预定的大小时,聚合控制器312-3可以生成合并事务并且向主存储器装置320提供所生成的合并事务,在合并事务中合并了与所存储的码字相对应或相关联的写入事务。
可选地,当将预定数量的写入事务存储在调度器312-1中时,聚合控制器312-3可以生成合并事务并向主存储器装置320提供所生成的合并事务,在合并事务中合并了所存储的写入事务。与合并事务中包括的写入事务相对应的地址可以是连续地址。在实施例中,预定的大小可以是与主存储器装置320的突发长度相对应的数据大小。可选地,写入事务的预定数量可以是突发长度。
图8示出参照图7所述的调度器和内部总线的操作。
参照图7和图8,调度器312-1可以根据或基于输入序列存储输入的写入事务。在图8中,突发长度假定或预选为四。
在图8中,调度器312-1存储第一至第八写入事务(例如,TRSAC)。内部缓冲器312-2可以存储与第一写入事务至第八写入事务相对应的第一码字CODEWORD1至第八码字CODEWORD8。
第一合并事务(Merged Transaction1)可以包括第一至第四写入事务。第二合并事务(Merged Transaction2)可以包括第五至第八写入事务。
可以合并成合并事务的写入事务可以具有连续地址。例如,第一至第四写入事务分别具有连续地址,第一地址ADDR1至第四地址ADDR4,且第五至第八写入事务分别具有连续地址,第五地址ADDR5至第八地址ADDR8。
由于合并事务的突发长度是四,因此当在调度器312-1中存储四个写入事务时,可以生成合并事务。可选地,合并事务可以在预定时间内接收写入事务,然后一起生成合并事务。
因为图8中所有的第一至第八写入事务是地址连续的写入事务,所以可以生成合并任意四个写入事务的合并事务,包括图8中未示出的合并事务。例如,合并事务可以包括第一写入事务、第三写入事务、第四写入事务和第七写入事务。
参照图7描述的聚合控制器312-3可以根据突发操作向主存储器装置320提供合并事务。
图9示出在不生成合并事务时数据聚合器的操作。
参照图9,聚合控制器312-3可以控制调度器312-1和内部缓冲器312-2以执行向主存储器装置320提供存储在调度器312-1中的写入事务的清除操作而不生成合并事务。
例如,聚合控制器312-3可以响应于在主存储器300中生成的事件信号,控制调度器312-1和内部缓冲器312-2以执行清除操作。在此,当写入事务的地址的连续性被破坏、接收到针对与存储在调度器312-1中的写入事务的地址相同的地址的读取事务和/或从存储器控制器200接收到强制清除请求时,可以生成事件信号。在实施例中,当发生紧急情况时,诸如降低存储装置50的功耗的睡眠模式或存储装置50突然断电,可以输入强制清除请求。
具体地,当存储在调度器312-1中的写入事务的地址不连续(例如,写入事务的地址的连续性被破坏)时,聚合控制器312-3可以向主存储器装置320提供每个写入事务而不生成合并事务。例如,当提供的写入事务的地址与存储在调度器312-1中的写入事务的地址不连续时,聚合控制器312-3可以向主存储器装置320提供每个写入事务而不生成合并事务。
可选地,在生成合并事务之前,当接收到的读取事务的地址与存储在调度器312-1中的写入事务的地址相同时,为了避免数据风险,聚合控制器312-3可以向主存储器装置320提供每个写入事务而不生成合并事务。聚合控制器312-3可以在完成写入事务之后,向主存储器装置320提供读取事务。
可选地,响应于从装置的外部输入的强制清除输入,聚合控制器312-3可以向主存储器装置320提供每个写入事务而不生成合并事务。
在实施例中,当在调度器312-1中存储与突发长度相对应的写入事务时,聚合控制器312-3可以生成合并事务,向主存储器装置320提供合并事务,然后将新输入的写入事务存储在调度器312-1中。
图10示出根据本公开的实施例的存储装置中包括的主存储器的操作。
参照图10,在步骤S1001中,主存储器可以接收写入事务。可以从如参照图1所述的存储器控制器200、存储器装置100和/或主机400中的任一个输入写入事务。
在步骤S1003中,主存储器可以对写入数据执行错误校正编码,该写入数据是与写入事务相对应或与相关联的数据。
在步骤S1005中,主存储器可以首先向提供写入事务的存储器控制器200提供写入完成响应。
在步骤S1007中,主存储器将码字存储在内部缓冲器中,该码字是经编码的数据。
在步骤S1009中,主存储器可以确定是否将与突发长度相对应的写入事务存储在内部缓冲器中。当没有存储与突发长度相对应的写入事务时,操作返回到步骤S1001。当存储与突发长度相对应的写入事务时,操作进行到步骤S1011。
在步骤S1011中,主存储器可以生成其中合并了写入事务的合并事务,并且向主存储器提供合并事务以将数据存储在主存储器装置中。在此,合并事务中包括的写入事务可以是具有连续地址的写入事务。
图11示出图1的存储器控制器的另一实施例。
参照图1和图11,存储器控制器1200可以包括处理器1210、RAM 1220、错误校正电路1230、ROM 1260、主机接口1270和闪存接口1280。
处理器1210控制存储器控制器1200的全部操作。RAM 1220可用作存储器控制器1200的缓冲存储器、高速缓存存储器和操作存储器。例如,参照图1描述的高速缓存存储器220可以是RAM 1220,并且可以是实施例中的SRAM。
ROM 1260可以存储存储器控制器1200以固件的形式操作所需的各种信息。
存储器控制器1200可以通过主机接口1270与外部装置(例如,主机400、应用处理器等)通信。
存储器控制器1200可通过闪存接口1280与存储器装置100通信。存储器控制器1200可以通过闪存接口1280向存储器装置100传输命令CMD、地址ADDR和控制信号CTRL,并且接收数据DATA。例如,闪存接口1280可以包括NAND接口。
图12示出应用了根据本公开的实施例的存储装置的存储卡系统。
参照图12,存储卡系统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、并行ATA、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙以及NVMe。例如,连接器2300可以由上述各种通信标准中的至少一种来定义。
例如,存储器装置2200可被配置为诸如以下的各种非易失性存储器元件:电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)以及自旋转移力矩磁性RAM(STT-MRAM)。
存储器控制器2100和存储器装置2200可以集成到一个半导体装置以配置存储卡。例如,存储器控制器2100和存储器装置2200可集成到一个半导体装置中以配置诸如以下的存储卡:PC卡(个人计算机存储卡国际协会(PCMCIA))、紧凑型闪存(CF)卡、智能媒体卡(SM或SMC)、记忆棒、多媒体卡(MMC、RS-MMC、微型MMC或eMMC)、SD卡(SD、迷你SD、微型SD或SDHC)和通用闪存(UFS)。
图13示出应用了根据本公开的实施例的存储装置的固态驱动器(SSD)系统。
参照图13,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和SSD3200之间的接口的信号。例如,信号SIG可以是由诸如以下的接口中的至少一种定义的信号:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙以及NVMe。
辅助电源装置3230通过电源连接器3002连接到主机3100。辅助电源装置3230可以从主机3100接收电力PWR并且可对其进行充电。当来自主机3100的电力供应不平稳时,辅助电源装置3230可以提供SSD 3200的电力。例如,辅助电源装置3230可以位于SSD 3200中或者可以位于SSD 3200外部。例如,辅助电源装置3230可位于主板上,并且可向SSD 3200提供辅助电力。
缓冲存储器3240作为SSD 3200的缓冲存储器来操作。例如,缓冲存储器3240可临时存储从主机3100接收到的数据或从多个闪速存储器3221至322n接收到的数据,或者可临时存储闪速存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可以包括诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM的易失性存储器,或诸如FRAM、ReRAM、STT-MRAM和PRAM的非易失性存储器。
图14示出应用了根据本公开的实施例的存储装置的用户系统。
参照图14,用户系统4000包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可以驱动用户系统4000中包括的组件、操作系统(OS)、用户程序等。例如,应用处理器4100可包括控制用户系统4000中包括的组件的控制器、接口、图形引擎等。应用处理器4100可被设置为片上系统(SoC)。
存储器模块4200可作为用户系统4000的主存储器、工作存储器、缓冲存储器或高速缓存存储器来操作。存储器模块4200可以包括诸如DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM、LPDDR SDRAM、LPDDR2 SDRAM和LPDDR3 SDRAM的易失性随机存取存储器,或诸如FRAM、ReRAM、MRAM和PRAM的非易失性随机存取存储器。例如,应用处理器4100和存储器模块4200可基于堆叠封装(POP)进行封装并被设置为一个半导体封装。
网络模块4300可与外部装置通信。例如,网络模块4300可支持诸如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进、Wimax、WLAN、UWB、蓝牙和Wi-Fi的无线通信。例如,网络模块4300可被包括在应用处理器4100中。
存储模块4400可存储数据。例如,存储模块4400可存储从应用处理器4100接收到的数据。可选地,存储模块4400可将存储在存储模块4400中的数据传输到应用处理器4100。例如,存储模块4400可被实施为诸如以下的非易失性半导体存储器元件:相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、NAND闪速存储器、NOR闪速存储器和三维NAND闪速存储器。例如,存储模块4400可被设置为用户系统4000的可移动存储装置(可移动驱动器),诸如存储卡和外部驱动器。
例如,存储模块4400可以包括多个非易失性存储器装置,并且多个非易失性存储器装置可以以与参照图1所述的存储器装置100相同的方式操作。存储模块4400可以以与参照图1所述的存储装置50相同的方式操作。
用户接口4500可以包括用于将数据或指令输入到应用处理器4100或用于将数据输出到外部装置的接口。例如,用户接口4500可以包括诸如以下的用户输入接口:键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件。用户接口4500可以包括诸如以下的用户输出接口:液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监控器。
Claims (17)
1.一种易失性存储器控制器,控制易失性存储器装置,所述易失性存储器控制器包括:
错误校正电路,所述错误校正电路:
从外部主机接收写入事务,其中所述写入事务将数据存储在所述易失性存储器装置中,并且
生成在对与写入事务相对应的数据执行错误校正编码时使用的码字;以及
数据聚合器,所述数据聚合器:
生成合并事务,其中合并了与所述易失性存储器装置的突发长度相对应的写入事务,并且
通过执行突发操作向所述易失性存储器装置提供所述合并事务,
其中所述突发操作是在循序地减少或增加所述合并事务中包括的写入事务中的任意一个的地址的同时存储数据的操作。
2.根据权利要求1所述的易失性存储器控制器,其中所述数据聚合器包括:
调度器,存储写入事务;
内部缓冲器,存储与所述写入事务相对应的码字;以及
聚合控制器,根据是否将与所述突发长度相对应的写入事务存储在所述调度器中生成所述合并事务。
3.根据权利要求2所述的易失性存储器控制器,其中所述聚合控制器响应于从所述错误校正电路接收到的所述码字,向所述错误校正电路提供写入完成响应,其中所述写入完成响应指示写入事务完成。
4.根据权利要求1所述的易失性存储器控制器,其中所述合并事务中包括的写入事务的地址是连续地址。
5.根据权利要求1所述的易失性存储器控制器,其中所述突发长度对应于循序地减少或增加写入事务中的任意一个的地址的数量。
6.根据权利要求2所述的易失性存储器控制器,其中所述聚合控制器响应于在易失性存储器中生成的事件信号,控制所述易失性存储器装置以执行向所述易失性存储器提供存储在所述调度器中的每个写入事务的清除操作。
7.根据权利要求2所述的易失性存储器控制器,其中当输入到所述调度器的写入事务的地址与存储在所述调度器中的写入事务的地址不连续时,所述聚合控制器控制所述易失性存储器装置以执行向所述易失性存储器提供存储在所述调度器中的每个写入事务的清除操作。
8.根据权利要求2所述的易失性存储器控制器,其中当接收到的读取事务的地址与存储在所述调度器中的写入事务中的一个写入事务的地址相同时,所述聚合控制器控制所述易失性存储器装置以执行向所述易失性存储器提供存储在所述调度器中的每个写入事务的清除操作。
9.根据权利要求2所述的易失性存储器控制器,其中当从所述外部主机接收到强制清除请求时,所述聚合控制器控制所述易失性存储器装置以执行向所述易失性存储器提供存储在所述调度器中的每个写入事务的清除操作。
10.一种存储装置,包括:
非易失性存储器装置;
主存储器,临时存储与控制所述非易失性存储器装置相关的数据;以及
存储器控制器,在外部主机的控制下控制所述非易失性存储器装置和所述主存储器,
其中所述主存储器通过聚合从所述存储器控制器接收到的写入事务之中的具有连续地址的大量写入事务来生成合并事务,并且经由突发操作来处理所述合并事务,所述写入事务等于所述主存储器的突发长度单位,并且
其中所述突发操作是在循序地减少或增加合并事务中包括的写入事务中的任意一个的地址的同时存储数据的操作。
11.根据权利要求10所述的存储装置,其中所述主存储器包括:
错误校正电路,生成与对数据执行错误校正编码相关联的码字,所述数据对应于所述合并事务中包括的写入事务;
数据聚合器,基于生成的所述码字提供写入完成响应;以及
主存储器装置,存储所述码字。
12.根据权利要求11所述的存储装置,其中所述数据聚合器:
生成合并了与突发长度单位相对应的写入事务的合并事务;以及
经由所述突发操作向所述主存储器装置提供所述合并事务。
13.根据权利要求10所述的存储装置,其中所述突发长度对应于循序地减少或增加写入事务中的任意一个的地址的数量。
14.根据权利要求12所述的存储装置,其中合并事务中包括的写入事务的地址是连续地址。
15.根据权利要求10所述的存储装置,其中当接收到具有来自与写入事务相对应的地址的不连续地址的一写入事务时,所述主存储器处理写入事务中的每个写入事务。
16.根据权利要求10所述的存储装置,其中当从所述存储器控制器接收到强制清除请求时,所述主存储器处理写入事务中的每个写入事务。
17.根据权利要求16所述的存储装置,其中当发生用于降低所述存储装置的功耗的睡眠模式或突然断电时,所述存储器控制器向所述主存储器提供所述强制清除请求。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200077968A KR102406449B1 (ko) | 2020-06-25 | 2020-06-25 | 스토리지 장치 및 그 동작 방법 |
KR10-2020-0077968 | 2020-06-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113849120A CN113849120A (zh) | 2021-12-28 |
CN113849120B true CN113849120B (zh) | 2024-07-02 |
Family
ID=78972852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010986729.6A Active CN113849120B (zh) | 2020-06-25 | 2020-09-18 | 存储装置及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11449235B2 (zh) |
KR (1) | KR102406449B1 (zh) |
CN (1) | CN113849120B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022050016A (ja) * | 2020-09-17 | 2022-03-30 | キオクシア株式会社 | メモリシステム |
CN114281723A (zh) * | 2020-09-28 | 2022-04-05 | 马来西亚瑞天芯私人有限公司 | 一种存储设备的内存控制器系统和内存调度方法 |
CN114546260B (zh) * | 2022-01-07 | 2024-03-12 | 华中师范大学 | 数据读写方法、装置、电子设备及存储介质 |
KR20240120996A (ko) * | 2023-02-01 | 2024-08-08 | 에스케이하이닉스 주식회사 | 저장 장치 및 컨트롤러를 포함하는 전자 장치 및 이의 동작 방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6658533B1 (en) * | 2000-09-21 | 2003-12-02 | Intel Corporation | Method and apparatus for write cache flush and fill mechanisms |
Family Cites Families (73)
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 |
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 | (주)인디링스 | 디램 버퍼 관리 장치 및 방법 |
US8166258B2 (en) | 2009-07-24 | 2012-04-24 | Lsi Corporation | Skip operations for solid state disks |
US8219776B2 (en) | 2009-09-23 | 2012-07-10 | Lsi Corporation | Logical-to-physical address translation 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 |
WO2012016089A2 (en) | 2010-07-28 | 2012-02-02 | Fusion-Io, Inc. | 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 |
WO2012051600A2 (en) | 2010-10-15 | 2012-04-19 | Kyquang Son | 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 | 삼성전자 주식회사 | 메모리 시스템 및 그것의 메타 데이터 관리 방법 |
KR101966858B1 (ko) * | 2012-04-24 | 2019-04-08 | 삼성전자주식회사 | 휘발성 메모리 장치의 동작 방법, 휘발성 메모리 장치 및 메모리 시스템의 제어 방법 |
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 |
CN110275840B (zh) * | 2014-02-23 | 2024-03-15 | 拉姆伯斯公司 | 在存储器接口上的分布式过程执行和文件系统 |
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 |
WO2016006067A1 (ja) | 2014-07-09 | 2016-01-14 | 株式会社日立製作所 | メモリモジュールおよび情報処理システム |
US10552043B2 (en) | 2014-09-09 | 2020-02-04 | Toshiba Memory Corporation | Memory system |
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 | 삼성전자주식회사 | 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 동작 방법 |
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 |
KR102533389B1 (ko) | 2016-02-24 | 2023-05-17 | 삼성전자주식회사 | 장치 수명을 향상시키는 데이터 저장 장치 및 이를 포함하는 raid 시스템 |
US10469405B2 (en) | 2016-06-29 | 2019-11-05 | Amazon Technologies, Inc. | Network-accessible data volume modification |
US10037298B2 (en) | 2016-06-29 | 2018-07-31 | 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 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
DE112017007323T5 (de) | 2017-03-27 | 2019-12-05 | Mitsubishi Electric Corporation | Cache-speicher und verfahren zur steuerung desselben |
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 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US10514980B2 (en) * | 2018-03-22 | 2019-12-24 | Winbond Electronics Corp. | Encoding method and memory storage apparatus using the same |
US11003529B2 (en) * | 2018-03-22 | 2021-05-11 | Winbond Electronics Corp. | Encoding method and memory storage apparatus using the same |
KR20190112546A (ko) * | 2018-03-26 | 2019-10-07 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
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-25 KR KR1020200077968A patent/KR102406449B1/ko active IP Right Grant
- 2020-08-12 US US16/991,752 patent/US11449235B2/en active Active
- 2020-09-18 CN CN202010986729.6A patent/CN113849120B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6658533B1 (en) * | 2000-09-21 | 2003-12-02 | Intel Corporation | Method and apparatus for write cache flush and fill mechanisms |
Also Published As
Publication number | Publication date |
---|---|
US20210405885A1 (en) | 2021-12-30 |
KR20220000249A (ko) | 2022-01-03 |
KR102406449B1 (ko) | 2022-06-08 |
US11449235B2 (en) | 2022-09-20 |
CN113849120A (zh) | 2021-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110399311B (zh) | 存储器系统及该存储器系统的操作方法 | |
US10657049B2 (en) | Memory system and operating method thereof | |
US8341332B2 (en) | Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices | |
CN113849120B (zh) | 存储装置及其操作方法 | |
CN108694138B (zh) | 控制器及其操作方法 | |
US10921998B2 (en) | Memory system and operating method thereof | |
CN109697171B (zh) | 控制器及其操作方法 | |
US11449417B2 (en) | Memory controller performing host-aware performance booster mode and method of operating the same | |
US20180341577A1 (en) | Data processing system and data processing method | |
US11599268B2 (en) | Storage device and method of operating the same | |
US10936484B2 (en) | Memory system and operating method thereof | |
US11880274B2 (en) | Host device, memory controller, and computing system including the same | |
KR20220113159A (ko) | 저장 장치 및 그 동작 방법 | |
CN114078543A (zh) | 存储器控制器及其操作方法 | |
CN113687767A (zh) | 存储控制器、存储器装置和存储装置 | |
US20190347193A1 (en) | Memory system and operating method thereof | |
JP2022074016A (ja) | ストレージシステム | |
CN114356209A (zh) | 存储装置及其操作方法 | |
CN107436730B (zh) | 数据处理系统及其操作方法 | |
CN109254722B (zh) | 控制器及其操作方法 | |
CN111258920A (zh) | 存储器系统、存储器系统的操作方法和控制器 | |
US20220187996A1 (en) | Memory controller and storage device including same | |
US20220083258A1 (en) | Storage device and method of operating the storage device | |
CN112711377B (zh) | 分布式存储系统的存储节点及其操作方法 | |
KR20220077689A (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 |