CN112506421A - 存储器控制器及其操作方法 - Google Patents
存储器控制器及其操作方法 Download PDFInfo
- Publication number
- CN112506421A CN112506421A CN202010578829.5A CN202010578829A CN112506421A CN 112506421 A CN112506421 A CN 112506421A CN 202010578829 A CN202010578829 A CN 202010578829A CN 112506421 A CN112506421 A CN 112506421A
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- input
- block
- information
- 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 354
- 238000011017 operating method Methods 0.000 title description 4
- 238000013507 mapping Methods 0.000 claims abstract description 132
- 238000010801 machine learning Methods 0.000 claims abstract description 47
- 230000004044 response Effects 0.000 claims abstract description 33
- 238000013144 data compression Methods 0.000 claims abstract description 21
- 238000013528 artificial neural network Methods 0.000 claims abstract description 14
- 230000000306 recurrent effect Effects 0.000 claims abstract description 12
- 238000007906 compression Methods 0.000 claims description 66
- 230000006835 compression Effects 0.000 claims description 66
- 238000000034 method Methods 0.000 claims description 58
- 238000003860 storage Methods 0.000 claims description 33
- 230000010365 information processing Effects 0.000 claims description 26
- 238000007781 pre-processing Methods 0.000 claims description 26
- 230000007787 long-term memory Effects 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 7
- 230000006403 short-term memory Effects 0.000 claims description 3
- 239000000872 buffer Substances 0.000 description 39
- 238000010586 diagram Methods 0.000 description 32
- 239000010410 layer Substances 0.000 description 31
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 13
- 238000013500 data storage Methods 0.000 description 11
- 230000002093 peripheral effect Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 238000013519 translation Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 230000005684 electric field Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 101100481704 Arabidopsis thaliana TMK3 gene Proteins 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000003936 working memory Effects 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 101100481703 Arabidopsis thaliana TMK2 gene Proteins 0.000 description 2
- 101100444020 Caenorhabditis elegans dsl-1 gene Proteins 0.000 description 2
- 101100366714 Caenorhabditis elegans ssl-1 gene Proteins 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005086 pumping Methods 0.000 description 2
- 239000002356 single layer Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 101000934888 Homo sapiens Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Proteins 0.000 description 1
- 102100025393 Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Human genes 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 101150013423 dsl-1 gene Proteins 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
- 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/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
- 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
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/063—Address space extension for I/O modules, e.g. memory mapped I/O
-
- 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/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/0877—Cache access modes
- G06F12/0882—Page mode
-
- 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/0608—Saving storage space on 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/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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0653—Monitoring storage devices or 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/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
- 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
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy 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/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/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed data
-
- 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
-
- 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/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- 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/7205—Cleaning, compaction, garbage collection, erase control
-
- 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/7209—Validity control, e.g. using flags, time stamps or sequence numbers
-
- 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 Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Read Only Memory (AREA)
Abstract
提供了一种电子装置。根据本公开的存储器控制器改进对输入/输出请求的响应时间并增加动态随机存取存储器(DRAM)的容量,该存储器控制器包括:可用时间预测组件,被配置成基于关于从主机输入的输入/输出请求的输入/输出请求信息,使用递归神经网络(RNN)模型来执行机器学习操作,并预测表示预计在此期间不从主机输入输入/输出请求的时间的空闲时间;以及数据压缩控制器,被配置成响应于长于设置参考时间的空闲时间,通过压缩映射数据来生成经压缩的映射数据,该映射数据指示由主机提供的逻辑地址与指示存储器装置中包括的存储块的物理位置的物理地址之间的映射关系。
Description
相关申请的交叉引用
本申请要求于2019年9月16日提交的申请号为10-2019-0113717的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
本公开的各个实施例总体涉及一种电子装置,且更特别地,涉及一种存储器控制器及其操作方法。
背景技术
存储装置可以响应于诸如计算机或智能电话的主机装置的控制来存储数据。存储装置可以包括存储数据的存储器装置以及控制存储器装置的存储器控制器。存储器装置通常分为易失性存储器装置和非易失性存储器装置。
易失性存储器装置只有在向其供电时才能存储数据,而在没有电力供应的情况下可能会丢失存储的数据。易失性存储器装置的示例包括静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)。
非易失性存储器装置即使在没有电力供应的情况下也可以保留存储的数据。非易失性存储器装置的示例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)和闪速存储器。
发明内容
本公开的各个实施例针对一种改进对输入/输出请求的响应时间和提高动态随机存取存储器(DRAM)的使用效率的存储器控制器,以及操作该存储器控制器的方法。
根据实施例,一种控制存储器装置的存储器控制器,包括:可用时间预测组件,被配置成基于关于从主机输入的输入/输出请求的输入/输出请求信息,使用递归神经网络(RNN)模型来执行机器学习操作,并预测表示预计在此期间不从主机输入输入/输出请求的时间的空闲时间;以及数据压缩控制器,被配置成响应于长于设置参考时间的空闲时间,通过压缩映射数据来生成经压缩的映射数据,该映射数据指示由主机提供的逻辑地址与指示存储器装置中包括的存储块的物理位置的物理地址之间的映射关系。
根据实施例,一种操作存储器控制器的方法可以包括:从主机接收输入/输出请求信息;基于使用递归神经网络(RNN)模型的机器学习,预测表示预计在此期间不从主机输入输入/输出请求的时间的空闲时间;以及当响应于长于设置参考时间的空闲时间时,压缩映射数据,该映射数据是指示数据块的逻辑位置的逻辑地址和指示实际数据块的物理位置的物理地址的映射信息。
根据实施例,一种操作存储器控制器的方法,该存储器控制器控制包括块的存储装置,该操作方法可以包括:响应于访问请求,控制存储装置以访问块;累积访问请求;通过对所累积的访问请求应用机器学习,来预测预计在此期间不接收访问请求的空闲时间;以及在空闲时间期间,压缩与选择块相关的映射信息,其中压缩映射信息所需的时间比空闲时间更短。
附图说明
图1是示出根据本公开的实施例的存储装置的示图;
图2是示出图1所示的存储器装置的结构的示图;
图3是示出图2所示的存储器单元阵列的实施例的示图;
图4是示出图3所示的存储块BLK1至BLKz中的一个(BLKa)的电路图;
图5是示出图3所示的存储块BLK1至BLKz中的一个(BLKb)的另一实施例的电路图;
图6是示出根据本公开的实施例的存储器控制器的操作的示图;
图7是示出根据本公开的实施例的存储器控制器的操作的示图;
图8是示出根据本公开的实施例的存储器控制器的操作的框图;
图9是示出图8所示的可用时间预测组件的操作的示图;
图10是示出图8所示的数据压缩控制器的操作的示图;
图11是示出块选择组件的实施例的示图;
图12是示出块选择组件的另一实施例的示图;
图13是示出根据本公开的实施例的存储器控制器的操作的流程图;
图14是示出图13所示的生成可用时间预测信息的详细流程图;
图15是示出图13所示的压缩映射数据的详细流程图;
图16是示出图1所示的存储器控制器的另一实施例的示图;
图17是示出根据本公开的实施例的应用存储装置的存储卡系统的框图;
图18是示出根据本公开的实施例的应用存储装置的固态驱动器(SSD)系统的框图;以及
图19是示出根据本公开的实施例的应用存储装置的用户系统的框图。
具体实施方式
本发明的具体结构和功能特征在本发明实施例的场景中公开。然而,本发明可以与本文所公开的不同地配置或布置。因此,本发明不限于任何特定的实施例或任何特定的细节。并且,在整个说明书中,对“实施例”、“另一个实施例”等的引用不一定仅针对一个实施例,对任意这种短语的不同引用不一定针对相同的实施例。而且,使用不定冠词(即“一”或“一个”)意为一个或多个,除非明确只意指一个。类似地,术语“包含”、“包括”、“具有”等在本文中使用时,并不排除除了所陈述元件之外存在或添加一个或多个其他元件。
在下文中,将参照附图详细描述本公开的各个实施例。
图1是示出根据本公开实施例的存储装置的示图。
参照图1,存储装置50可以包括存储器装置100和存储器控制器200。存储装置50可以响应于主机300的控制来存储数据。存储装置50的示例包括蜂窝电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、TV、平板PC和车载信息娱乐系统。
根据作为与主机300的通信方法的主机接口,存储装置50可以被配置为各种数据存储装置。例如,存储装置50可以被配置为固态驱动器(SSD),以MMC、eMMC、RS-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中的数据的单位。
根据实施例,存储器装置100可以是双倍数据速率同步动态随机存取存储器(DDRSDRAM)、低功率双倍数据速率第四代(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器、电阻式随机存取存储器(RRAM)、相变存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)或自旋转移力矩随机存取存储器(STT-RAM)。作为示例,在以下描述的场景中,存储器装置100是NAND闪速存储器。
存储器装置100可以被配置成从存储器控制器200接收命令和地址,并访问存储器单元阵列中由地址选择的区域。也就是说,存储器装置100可以在由地址选择的区域上执行与所接收的命令相对应的操作。例如,存储器装置100可以执行编程操作、读取操作和擦除操作。编程操作可以用于将数据存储在存储器装置100中的存储器单元中。存储器装置100可以根据从存储器控制器200输入的编程命令来执行编程操作以在由地址选择的区域中存储数据。读取操作可以用于通过使用读取电压来感测存储在存储器单元中的数据。存储器装置100可以根据从存储器控制器200输入的读取命令来感测存储在由地址选择的区域中的数据。擦除操作可以用于擦除存储在存储器单元中的数据。存储器装置100可以根据从存储器控制器200输入的擦除命令来擦除由地址选择的区域中存储的数据。根据实施例,擦除存储在存储器单元中的数据可以是指降低存储器单元的阈值电压,使得存储器单元的阈值电压处于对应于擦除状态的阈值电压分布内。
存储器控制器200可以控制存储器装置100的总体操作。
当电力被施加到存储装置50时,存储器控制器200可以运行先前存储的固件(FW)。
固件(FW)可以包括接收来自主机300的输入请求或输出对主机300的响应的主机接口层(HIL)、管理主机300的接口和存储器装置100的接口之间的操作的闪存转换层(FTL),以及向存储器装置100提供命令或从存储器装置100接收响应的闪存接口层(FIL)。
当从主机300输入写入请求时,存储器控制器200可以接收待存储的数据和用于识别来自主机300的相应数据的逻辑地址(LA)。存储器控制器200可以将所接收的逻辑地址转换成物理地址(PA),该物理地址指示在存储器装置100中的存储器单元之中、待存储数据的存储器单元的物理地址。存储器控制器200可以提供用于存储数据的编程命令、物理地址和待存储到存储器装置100的数据。
根据实施例,当从主机300输入读取请求时,存储器控制器200可以从主机300接收逻辑地址,用于识别待从存储器装置100读取的数据。存储器控制器200可以获得与所接收的逻辑地址相对应的物理地址,并且可以向存储器装置100提供读取命令和物理地址。
根据实施例,存储器控制器200可以本身独立于来自主机300的请求来控制存储器装置100执行编程操作、读取操作或擦除操作。例如,存储器控制器200可以控制存储器装置100执行诸如损耗均衡、垃圾收集或读取回收的后台操作。
根据实施例,存储器控制器200可以包括可用时间预测组件210和数据压缩控制器220。
可用时间预测组件210可以通过使用从主机输入的输入/输出请求信息来生成可用时间预测信息。更具体地,可用时间预测组件210可以通过使用基于递归神经网络(RNN)的机器学习来生成可用时间预测信息。机器学习是人工智能的一个领域,其中将算法应用到系统,使其能够在没有明确指令的情况下进行学习,也就是说,基于经验数据来进行预测并通过迭代提高其自身的性能。可用时间预测组件210可以采用在机器学习模型之中的递归神经网络(RNN)模型。
通过机器学习,可用时间预测组件210可以学习接收的输入/输出请求之间的时间间隔,并且可以预测在此期间不从主机输入输入/输出请求的空闲时间。可以基于关于已经接收的输入/输出请求信息的设置条数的信息来预测空闲时间。每次接收到新的输入/输出请求信息时,可以改变或更新初始预测或当前预测的空闲时间。可用时间预测组件210可以进一步包括关于参考时间的信息,该参考时间是压缩映射数据花费的平均时间。可用时间预测组件210可以将预测的空闲时间与参考时间进行比较,以输出包括关于是否压缩映射数据的信息的可用时间预测信息。更具体地,当预测的空闲时间长于参考时间时,可以将预测的空闲时间确定为在此期间可以压缩映射数据的可用时间。当预测的空闲时间短于参考时间时,可以不将预测的空闲时间视为可用时间。可用时间预测组件210可以生成关于预测的空闲时间是否表示可用时间的可用时间预测信息,并且可以向数据压缩控制器220提供可用时间预测信息。
数据压缩控制器220可以根据从可用时间预测组件210输入的可用时间预测信息来压缩映射数据。更具体地,当预测的空闲时间是可用时间时,数据压缩控制器220可以在预测的空闲时间压缩映射数据。可选地,当预测的空闲时间不是可用时间时,数据压缩控制器220可以省略映射数据的压缩。
数据压缩控制器220可以在压缩映射数据之前使用块信息来确定待压缩的映射数据。例如,块信息可以包括有效页面的数量或读取计数。垃圾收集(GC)操作可能更有可能在包括较少有效页面的块中执行,而读取回收操作可能更有可能在包括较多页面的块中执行,其中每个页面具有相对高的读取计数。因此,因为关于包括较少有效页面的存储块或具有较多高读取计数页面的存储块的映射数据可能很快改变,所以压缩该数据可能效率低下。因此,当存储块包括数量小于参考数量的有效页面或包括多于参考计数的高读取计数页面时,关于该存储块的映射数据可以不被视为数据压缩操作的目标。
当确定预测的空闲时间表示可用时间并且映射数据对应于压缩的目标时,数据压缩控制器220可以使用各种压缩方法中的任意一种来压缩映射数据。各种压缩方法可以包括增量压缩方法或GZIP方法。然而,也可以使用其他方法。下面描述压缩映射数据的过程。
主机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所示的存储器装置100的结构的示图。
参照图2,存储器装置100可以包括存储器单元阵列110、外围电路120和控制逻辑130。
存储器单元阵列110可以包括多个存储块BLK1至BLKz。多个存储块BLK1至BLKz可以通过行线RL联接到行解码器121。多个存储块BLK1至BLKz可以通过位线BL1至BLm联接到读取和写入电路123。多个存储块BLK1至BLKz中的每一个可以包括多个存储器单元。根据实施例,多个存储器单元可以是非易失性存储器单元。在多个存储器单元之中,联接到相同字线的存储器单元可以被定义成形成单个物理页面。因此,每个存储块可以包括多个物理页面。存储块中的单个存储器单元可以是存储1位数据的单层单元(SLC)、存储2位数据的多层单元(MLC)、存储3位数据的三层单元(TLC)或存储4位数据的四层单元(QLC)。
外围电路120可以包括行解码器121、电压生成器122、读取和写入电路123、列解码器124、输入/输出电路125和感测电路126。
外围电路120可以驱动存储器单元阵列110。例如,外围电路120可以驱动存储器单元阵列110以执行编程操作、读取操作和擦除操作。
电压生成器122可以通过使用供应到存储器装置100的外部电源电压来生成多个操作电压Vop。电压生成器122可以响应于控制逻辑130的控制而操作。更具体地,电压生成器122可以响应于操作信号OPSIG生成用于编程操作、读取操作和擦除操作的操作电压Vop。例如,电压生成器122可以根据控制逻辑130的控制来生成编程电压、验证电压、编程通过电压、验证通过电压、读取电压、擦除电压等。
根据实施例,电压生成器122可以包括用于生成具有各种电压电平的多个操作电压Vop的多个泵浦电容器。电压生成器122可以响应于控制逻辑130的控制,通过选择性地启用多个泵浦电容器来生成多个操作电压Vop。多个生成的操作电压Vop可以由行解码器121供应到存储器单元阵列110。
行解码器121可以通过行线RL联接到存储器单元阵列110。行线RL可以包括漏极选择线、字线、源极选择线和公共源极线。根据各个实施例,字线可以包括普通字线和虚设字线。另外,行线RL可以进一步包括管道选择线。
行解码器121可以响应于控制逻辑130的控制而操作。行解码器121可以响应于来自控制逻辑130的行地址RADD,将由电压生成器122生成的操作电压Vop传送到联接至多个存储块BLK1至BLKz之中的选择存储块的行线RL。
读取和写入电路123可以包括第一至第n页面缓冲器PB1至PBn,页面缓冲器可以分别通过第一至第n位线BL1至BLn联接到存储器单元阵列110。第一至第n页面缓冲器PB1至PBn可以响应于控制逻辑130的控制而操作。例如,第一至第n页面缓冲器PB1至PBn可以响应于页面缓冲器控制信号PBSIGNALS而操作。
根据实施例,第一至第n页面缓冲器PB1至PBn可以通过感测第一至第n位线BL1至BLn的电压或电流来感测存储在存储器单元阵列110中的数据。第一至第n页面缓冲器PB1至PBn可以临时存储所感测的数据。第一至第n页面缓冲器PB1至PBn可以通过数据线DL向列解码器124提供所感测的数据。
根据实施例,第一至第n页面缓冲器PB1至PBn可以通过列解码器124和数据线DL从输入/输出电路125来接收待存储的数据。第一至第n页面缓冲器PB1至PBn通过执行编程操作而接收的数据可以存储在存储器单元阵列110中。
在存储器单元中存储数据的编程操作可以包括施加编程电压和验证编程操作。在施加编程电压时,第一至第n页面缓冲器PB1至PBn可以在编程电压被施加到选择的字线时将待存储的数据传送到选择的存储器单元。联接到被施加编程允许电压(例如,接地电压)的位线的存储器单元可以具有增加的阈值电压。可以维持联接到被施加编程抑制电压(例如,电源电压)的位线的存储器单元的阈值电压。在验证编程操作时,第一至第n页面缓冲器PB1至PBn可以通过位线BL1至BLn来感测存储在选择的存储器单元中的数据。
感测电路126可以响应于允许位VRYBIT生成参考电流,并将从读取和写入电路123接收的感测电压VPB与由参考电流生成的参考电压进行比较,以在验证编程操作时输出通过信号PASS或失败信号FAIL。
输入/输出电路125可以通过列解码器124和数据线DL联接到第一至第n页面缓冲器PB1至PBn。输入/输出电路125可以响应于控制逻辑130的控制而操作。
输入/输出电路125可以将从图1所示的存储器控制器200接收的命令CMD和地址ADDR传送到控制逻辑130,或者向读取和写入电路123提供从图1所示的存储器控制器200接收的数据DATA。
根据实施例,输入/输出电路125可以包括多个接收数据DATA的输入/输出缓冲器(未示出)。在编程操作期间,输入/输出电路125可以从存储器控制器200接收待存储的数据DATA。在读取操作期间,输入/输出电路125可以将从读取和写入电路123中的第一至第n页面缓冲器PB1至PBn传送的数据输出到存储器控制器200。
控制逻辑130可以联接到行解码器121、电压生成器122、读取和写入电路123、列解码器124、输入/输出电路125和感测电路126。控制逻辑130可以被配置成控制存储器装置100的总体操作。
控制逻辑130可以响应于命令CMD和地址ADDR生成用于控制外围电路120的多个控制信号。例如,控制逻辑130可以响应于命令CMD和地址ADDR生成操作信号OPSIG、行地址RADD、页面缓冲器控制信号PBSIGNALS和允许位VRYBIT。控制逻辑130可以响应于由感测电路126输出的通过或失败信号PASS/FAIL来确定验证操作是通过还是失败。
图3是示出图2所示的存储器单元阵列110的实施例的示图。
参照图3,存储器单元阵列110可以包括多个存储块BLK1至BLKz。每个存储块可以具有三维结构。每个存储块可以包括堆叠在衬底上的多个存储器单元。如图3所示,多个存储器单元可以沿+X方向、+Y方向和+Z方向布置。下文参照图4和图5详细描述每个存储块的结构。
图4是示出图3所示的存储块BLK1至BLKz中的一个(BLKa)的电路图。
参照图4,存储块BLKa可以包括多个单元串CS11至CS1m和CS21至CS2m。根据实施例,多个单元串CS11至CS1m和CS21至CS2m中的每一个可以形成为U形。在存储块BLKa中,可以沿行方向(即,+X方向)布置m个单元串。在图4中,示出沿列方向(即,+Y方向)布置两个单元串。然而,这仅为示例;可以沿列方向布置三个或更多个单元串。
多个单元串CS11至CS1m和CS21至CS2m中的每一个可以包括至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn、管道晶体管PT和至少一个漏极选择晶体管DST。
每个选择晶体管SST、DST和每个存储器单元MC1至MCn可以具有类似的结构。根据实施例,选择晶体管SST、DST和存储器单元MC1至MCn中的每一个可以包括沟道层、隧道绝缘层、电荷存储层和阻挡绝缘层。根据实施例,可将用于提供沟道层的柱设置到每个单元串。根据实施例,可将用于提供沟道层、隧道绝缘层、电荷存储层和阻挡绝缘层中的至少一个的柱设置到每个单元串。
每个单元串的源极选择晶体管SST可以联接在公共源极线CSL和存储器单元MC1至MCp之间。
根据实施例,布置在相同行的单元串的源极选择晶体管可以联接到沿行方向延伸的源极选择线,布置在不同行的单元串的源极选择晶体管可以联接到不同的源极选择线。在图4中,第一行中的单元串CS11至CS1m的源极选择晶体管可以联接到第一源极选择线SSL1。第二行中的单元串CS21至CS2m的源极选择晶体管可以联接到第二源极选择线SSL2。
根据另一实施例,单元串CS11至CS1m和CS21至CS2m的源极选择晶体管可以共同联接到一个源极选择线。
每个单元串的第一至第n存储器单元MC1至MCn可以联接在源极选择晶体管SST和漏极选择晶体管DST之间。
第一至第n存储器单元MC1至MCn可以被分为第一至第p存储器单元MC1至MCp和第(p+1)至第n存储器单元MCp+1至MCn。第一至第p存储器单元MC1至MCp可以沿-Z方向顺序地布置,并可以在源极选择晶体管SST和管道晶体管PT之间串联联接。第(p+1)至第n存储器单元MCp+1至MCn可以沿+Z方向顺序地布置,并且可以在管道晶体管PT和漏极选择晶体管DST之间串联联接。第一至第p存储器单元MC1至MCp和第(p+1)至第n存储器单元MCp+1至MCn可以通过管道晶体管PT联接。每个单元串的第一至第n存储器单元MC1至MCn的栅极可以分别联接到第一至第n字线WL1至WLn。
每个单元串的管道晶体管PT的栅极可以联接到管线PL。
每个单元串的漏极选择晶体管DST可以联接在相应的位线和存储器单元MCp+1至MCn之间。沿行方向布置的单元串可以联接到沿行方向延伸的漏极选择线。第一行中的单元串CS11至CS1m的漏极选择晶体管可以联接到第一漏极选择线DSL1。第二行中的单元串CS21至CS2m的漏极选择晶体管可以联接到第二漏极选择线DSL2。
沿列方向布置的单元串可以联接到沿列方向延伸的位线。在图4中,第一列中的单元串CS11和CS21可以联接到第一位线BL1。第m列中的单元串CS1m和CS2m可以联接到第m位线BLm。
在沿行方向布置的单元串中,联接到相同字线的存储器单元可以形成单个页面。例如,在第一行中的单元串CS11至CS1m中,联接到第一字线WL1的存储器单元可以形成单个页面。在第二行中的单元串CS21至CS2m中,联接到第一字线WL1的存储器单元可以形成另一单个页面。当选择漏极选择线DSL1和DSL2中的一个时,可以选择沿一个行方向布置的单元串。当选择第一至第n字线WL1至WLn中的一个时,可以从选择的单元串中选择一个页面。
在另一实施例中,可以设置偶数位线和奇数位线,代替第一至第m位线BL1至BLm。另外,沿行方向布置的单元串CS11至CS1m或CS21至CS2m之中的偶数编号单元串可以分别联接到偶数位线,沿行方向布置的单元串CS11至CS1m或CS21至CS2m之中的奇数编号单元串可以分别联接到奇数位线。
根据实施例,第一至第n存储器单元MC1至MCn中的至少一个可以用作虚设存储器单元。例如,可以设置虚设存储器单元以减小源极选择晶体管SST和存储器单元MC1至MCp之间的电场。可选地,可以设置虚设存储器单元以减小漏极选择晶体管DST和存储器单元MCp+1至MCn之间的电场。当设置更多的虚设存储器单元时,可以提高存储块BLKa的操作可靠性,但是可能增加存储块BLKa的大小。相反,当设置更少的虚设存储器单元时,可以减小存储块BLKa的大小,但是可能降低存储块BLKa的操作可靠性。
为了有效地控制虚设存储器单元,每个虚设存储器单元可以具有所需的阈值电压。在对存储块BLKa执行擦除操作之前或之后,可以对全部或部分虚设存储器单元执行编程操作。当在执行编程操作之后执行擦除操作时,通过控制施加到联接至各个虚设存储器单元的虚设字线的电压,虚设存储器单元可以具有所需的阈值电压。
图5是示出图3所示的存储块BLK1至BLKz中的一个(BLKb)的另一实施例的电路图。
参照图5,存储块BLKb可以包括多个单元串CS11'至CS1m'和CS21'至CS2m'。多个单元串CS11'至CS1m'和CS21'至CS2m'中的每一个可以沿+Z方向延伸。多个单元串CS11'至CS1m'和CS21'至CS2m'中的每一个可以包括至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn和至少一个漏极选择晶体管DST,它们堆叠在存储块BLK1'下的衬底(未示出)上。
每个单元串的源极选择晶体管SST可以联接在公共源极线CSL和第一至第n存储器单元MC1至MCn之间。布置在相同行中的单元串的源极选择晶体管可以联接到相同的源极选择线。布置在第一行中的单元串CS11'至CS1m'的源极选择晶体管可以联接到第一源极选择线SSL1。布置在第二行中的单元串CS21'至CS2m'的源极选择晶体管可以联接到第二源极选择线SSL2。根据另一实施例,单元串CS11'至CS1m'和CS21'至CS2m'的源极选择晶体管可以共同联接到单个源极选择线。
每个单元串的第一至第n存储器单元MC1至MCn可以在源极选择晶体管SST和漏极选择晶体管DST之间串联联接。第一至第n存储器单元MC1至MCn的栅极可以分别联接到第一至第n字线WL1至WLn。
每个单元串的漏极选择晶体管DST可以联接在相应的位线和存储器单元MC1至MCn之间。沿行方向布置的单元串的漏极选择晶体管可以联接到沿行方向延伸的漏极选择线。第一行中的单元串CS11'至CS1m'的漏极选择晶体管可以联接到第一漏极选择线DSL1。第二行中的单元串CS21'至CS2m'的漏极选择晶体管可以联接到第二漏极选择线DSL2。
因此,除了从存储块BLKb的每个单元串移除管道晶体管PT,图5所示的存储块BLKb可以具有与图4所示的存储块BLKa类似的等效电路。
在另一实施例中,可以设置偶数位线和奇数位线,代替第一至第m位线BL1至BLm。另外,沿行方向布置的单元串CS11'至CS1m'或CS21'至CS2m'之中的偶数编号单元串可以分别联接到偶数位线,沿行方向布置的单元串CS11'至CS1m'或CS21'至CS2m'之中的奇数编号单元串可以分别联接到奇数位线。
根据实施例,第一至第n存储器单元MC1至MCn中的至少一个可以用作虚设存储器单元。例如,可以设置虚设存储器单元以减小源极选择晶体管SST和存储器单元MC1至MCn之间的电场。可选地,可以设置虚设存储器单元以减小漏极选择晶体管DST和存储器单元MC1至MCn之间的电场。当设置更多的虚设存储器单元时,可以提高存储块BLKb的操作可靠性,但是可能增加存储块BLKb的大小。相反,当设置更少的虚设存储器单元时,可以减小存储块BLKb的大小,但是可能降低存储块BLKb的操作可靠性。
为了有效地控制虚设存储器单元,每个虚设存储器单元可以具有所需的阈值电压。在对存储块BLKb执行擦除操作之前或之后,可以对全部或部分虚设存储器单元执行编程操作。当在执行编程操作之后执行擦除操作时,通过控制施加到联接至各个虚设存储器单元的虚设字线的电压,虚设存储器单元可以具有所需的阈值电压。
图6是示出根据本公开实施例的存储器控制器的操作的示图。
特别地,图6示出响应于从主机输入的读取请求而执行读取操作的存储器控制器的操作。更具体地,“A”示出仅处理来自主机的读取请求输入的时序图,“B”示出处理从主机输入的读取请求和映射数据的压缩的时序图。
参照“A”,可以在t1从主机输入读取请求。存储器控制器可以响应于所输入的读取请求执行读取操作,读取操作可以通过使用读取电压指示相关联的存储器装置感测存储在存储器单元中的数据。
与在t1被输入的读取请求相对应的读取操作可以在t3完成。此后,当在t5从主机输入下一读取请求时,存储器控制器可以执行读取操作,该读取操作可以在t6完成。
“B”对应于当存储在存储器控制器中的映射数据被压缩时输入读取请求的情况。当在t1从主机输入读取请求,同时存储器控制器压缩映射数据时,可能不会立即执行读取操作;相反,存储器控制器可能等待直到t2,此时映射数据的压缩完成。在t2开始的读取操作在t4完成。
当输入读取请求,同时正在压缩映射数据时,相应读取操作的执行可能会延迟,直到映射数据的压缩完成。因此,可能发生额外的读取延迟。换言之,根据“B”,从主机输入的读取请求在相应映射数据的压缩完成之前可能不会被处理。因此,与仅处理从主机输入的读取请求的“A”相比,t3-t4的额外读取延迟可能在“B”中发生。
图7是示出根据本公开实施例的存储器控制器的操作的示图。
参照图7,“A”示出仅处理从主机输入的读取请求的时序图,“B”示出处理从主机输入的读取请求和压缩映射数据的时序图。
参照“B”,可以在t1'从主机输入读取请求。存储器控制器可以响应于所输入的读取请求立即执行读取操作。此后,读取操作可以在t2'完成。存储器控制器可以具有空闲时间,在该空闲时间期间,在读取操作完成的时间(t2')与在t4'输入下一读取请求的时间之间,不从主机输入输入/输出请求。基于在t1'之前从主机输入的输入/输出请求信息,通过执行机器学习可以预测空闲时间。更具体地,可以使用递归神经网络(RNN)模型来执行机器学习。
压缩映射数据花费的平均时间可以对应于参考时间。存储器控制器可以在参考时间期间压缩存储在映射数据存储装置中的映射数据。参考时间可以被定义为除了用于压缩映射数据的平均时间以外的各种时间。例如,根据另一实施例,参考时间可以被定义为压缩映射数据花费的中位时间。在t2'完成读取操作的执行之后,存储器控制器可以通过比较参考时间与空闲时间来确定是否压缩映射数据。当空闲时间短于参考时间时,可以省略映射数据的压缩,因为在输入下一读取请求之前,映射数据的压缩可能不会完成。相反,当空闲时间长于参考时间时,映射数据可以在预测的空闲时间期间被压缩,因为映射数据的压缩可以在输入下一读取请求之前完成。图7示出参考时间短于空闲时间的情况。因此,在t2',可以完成读取操作的执行,并且可以开始映射数据的压缩。在t3',可以完成映射数据的压缩,然后在t4',可以响应于下一读取请求来执行新的读取操作。
根据图7所示的实施例,与图6所示的实施例相比,存储器控制器可以基于输入/输出请求信息来执行机器学习,并且可以在预测的空闲时间内压缩映射数据。因此,可以最小化或消除由于读取操作被延迟直到映射数据的压缩完成而发生的额外读取延迟。
图8是示出根据本公开实施例的存储器控制器的操作的框图。
参照图8,存储器控制器200可以包括可用时间预测组件210、数据压缩控制器220和映射数据存储装置230。
可用时间预测组件210可以从主机接收输入/输出请求信息并生成可用时间预测信息。可用时间预测信息可以包括关于数据压缩控制器220是否要压缩映射数据的信息。更具体地,可用时间预测信息可以包括通过比较预测的空闲时间与参考时间而获得的结果,该预测的空闲时间表示预计在此期间不从主机输入输入/输出请求的时间,该参考时间表示压缩映射数据花费的平均时间。可用时间预测组件210可以使用机器学习来预测空闲时间。更具体地,可用时间预测组件210可以使用在机器学习模型之中的递归神经网络(RNN)模型。
数据压缩控制器220可以根据从可用时间预测组件210输入的可用时间预测信息,压缩存储在映射数据存储装置230中的映射数据。当(基于上述比较)通过机器学习的应用由可用时间预测信息预测的空闲时间被视为是可用时间时,数据压缩控制器220可以压缩映射数据。当(基于上述比较)机器学习驱动的预测空闲时间不被视为可用时间时,可以省略映射数据的压缩。可以使用包括增量压缩方法和GZIP方法的各种压缩方法来压缩映射数据。随后,数据压缩控制器220可以将经压缩的映射数据存储在映射数据存储装置230中。
映射数据存储装置230可以存储与数据块的逻辑地址和物理地址的映射信息相对应的映射数据。逻辑地址可以对应于主机的地址,以指定由主机管理的数据块的逻辑位置。物理地址可以对应于存储器控制器的地址,以指定存储器装置的实际数据块的物理位置。
图9是示出图8所示的可用时间预测组件210的操作的示图。
参照图9,可用时间预测组件210可以包括第一预处理组件211、第一信息处理组件212、第二预处理组件213、第二信息处理组件214、第三信息处理组件215和第四信息处理组件216。
可用时间预测组件210可以通过使用基于递归神经网络(RNN)的机器学习来生成可用时间预测信息。因此,RNN结构的每个输出值不仅受当前输入值的影响,而且还受先前输入值的预测结果的影响。作为RNN的一种类型的长短时期记忆(LSTM)方法可以具有在不丢失数据的情况下保留数据的特性,即使是由较深的层在相当长时间以前获得的数据。换言之,LSTM可以被设计为具有长期存储器或短期存储器。根据本公开的实施例,可以由多个预处理组件211和213收集输入/输出请求信息,并且可以通过使用应用了LSTM的多个信息处理组件212、214、215和216来应用机器学习以预测空闲时间,预计在该空闲时间期间不从主机输入输入/输出请求。
第一预处理组件211可以存储当前的输入/输出请求信息,该输入/输出请求信息对应于紧接在生成可用时间预测信息之前输入的输入/输出请求信息。第一预处理组件211可以处理当前的输入/输出请求信息以针对RNN机器学习模型的应用进行优化。
第二预处理组件213可以存储从第一预处理组件211输入的过去的输入/输出请求信息。在从主机输入当前的输入/输出请求信息之前,输入过去的输入/输出请求信息。第二预处理组件213可以执行用于处理过去的输入/输出请求信息以针对RNN机器学习模型进行优化的操作。
第一信息处理组件212可以对存储在第一预处理组件211中的当前输入/输出请求信息执行机器学习。第一信息处理组件212的节点可以是全连接层,其中第一信息处理组件212的所有节点连接到第一预处理组件211的,即先前层的所有节点。
第二信息处理组件214可以对存储在第二预处理组件213中的当前输入/输出请求信息执行机器学习。第二信息处理组件214的节点可以是全连接层,其中第二信息处理组件214的所有节点连接到第二预处理组件213的,即先前层的所有节点。
第三信息处理组件215可以对过去输入/输出请求信息执行机器学习,从第二信息处理组件214输入该过去输入/输出请求信息并对其执行初级机器学习。第三信息处理组件215的节点可以是全连接层,其中第三信息处理组件215的所有节点连接到第二信息处理组件214的,即先前层的所有节点。
第四信息处理组件216可以对过去输入/输出请求信息和执行机器学习的当前输入/输出请求信息执行机器学习。第四信息处理组件216的节点可以是全连接层,其中第四信息处理组件216的所有节点连接到第三信息处理组件215的所有节点和第一信息处理组件212的所有节点,即先前的几层。第四信息处理组件216可以通过比较由递归机器学习预测的空闲时间与设置参考时间来生成可用时间预测信息。可用时间预测信息可以包括关于所预测的空闲时间是否被用作在此期间可以执行映射数据的压缩的可用时间的信息。当所预测的空闲时间长于参考时间时,可以生成指示将所预测的空闲时间用作用于压缩的可用时间的信息。当所预测的空闲时间短于参考时间时,可以生成指示所预测的空闲时间不被用作可用时间、即不被用于压缩操作的信息。
图9示出可用时间预测组件210包括两个预处理组件(211、213)和四个信息处理组件(212、214、215、216)。然而,本发明并不限于此布置。可以使用不同深度的其他适当布置。
图10是示出图8所示的数据压缩控制器220的操作的示图。
参照图10,数据压缩控制器220可以包括块选择组件221、相似性检测器222和压缩组件223。
数据压缩控制器220可以从映射数据存储装置230接收映射数据,并且可以将经压缩的映射数据输出到映射数据存储装置230。
更具体地,块选择组件221可以从可用时间预测组件210接收可用时间预测信息,该信息是关于是否压缩映射数据的信息。根据可用时间预测信息,当空闲时间表示用于压缩的可用时间时,基于映射数据指定的块信息可以确定相应的映射数据是否是压缩的目标。块选择组件221可以存储映射数据指定的存储块的块信息。例如,块信息可以指示有效页面的数量或每个均具有大于参考值的读取计数的页面的数量。
相似性检测器222可以从块选择组件221接收块选择信息,并且可以输出作为压缩的目标的映射数据的相似性检测信息。相似性检测信息可以指示多条数据之间的差异。根据增量压缩方法,可以通过表示多条连续数据之间的差异来压缩数据。因此,当多条数据之间的差异很小时,增量压缩方法可以减小数据之间的冗余,并且可以减小待存储数据的大小。
压缩组件223可以根据从相似性检测器222输出的相似性检测信息来压缩映射数据。压缩组件223可以通过包括增量压缩方法和GZIP方法的各种压缩方法来执行压缩操作。压缩组件223可以不根据相似性检测信息执行增量压缩。例如,当多条映射数据之间的差异大于设置参考值时,通过增量压缩方法压缩的数据大小可能不够小。因此,可以不执行增量压缩方法。根据实施例,可以选择性地执行包括增量压缩方法或GZIP方法的各种压缩方法。根据实施例,可以以重叠的方式执行各种压缩方法。
图11是示出根据有效页面的数量的块选择组件的实施例的示图。
参照图11,块选择组件221可以根据有效页面的数量来存储目标块信息。
根据实施例,在根据可用时间预测信息压缩映射数据之前,可以执行确定待压缩的映射数据的操作。可以基于相应映射数据指定的存储块的块信息来确定待压缩的映射数据。根据有效页面的数量,块信息可以包括关于特定存储块是否是垃圾收集(GC)的目标的信息。然而,本发明不限于此。通常,因为待复制的有效页面的数量较少,所以将有效页面的数量相对较少的存储块变为空闲块比将有效页面的数量相对较多的存储块变为空闲块效率更高。因此,作为GC的目标的存储块可以对应于具有相对较少数量的有效页面的存储块。执行GC可能需要关于相应存储块的映射数据。因此,维持将存储块指定为GC操作的目标的映射数据处于其原始状态而不被压缩可能是有利的。
图11示出五个块的每一个中的有效页面的数量。更具体地,在所示实施例中,第一块BLK1具有七个有效页面,第二块BLK2具有四个有效页面,第三块BLK3具有十五个有效页面,第四块BLK4具有十一个有效页面,第五块BLK5具有十九个有效页面。因为包括最少的有效页面的第二块BLK2具有最少数量的待复制有效页面,也就是四个,所以可以对五个块之中的第二块先执行GC。相反,因为包括最多的有效页面的第五块BLK5具有最多数量的待复制有效页面,也就是十九个,所以可以对五个块之中的第五块最后执行GC。因为就GC而言,第二块具有最高的优先级,所以维持指定第二块的映射数据处于其原始数据格式而不被压缩可能是有利的。因为就GC而言,第五块具有最低的优先级,所以以经压缩数据格式存储指定第五块的映射数据可能是有利的。因此,块选择组件221可以在指定五个块的映射数据之中选择指定第五块为压缩目标的映射数据。由块选择组件221选择的映射数据不必限于仅指定一个块的映射数据;相反,可以选择从包括最少有效页面的存储块到包括最多有效页面的存储块顺序地指定多个存储块的映射数据。
图12是示出根据读取计数的块选择组件的实施例的示图。
参照图12,块选择组件221可以根据读取计数来存储目标块信息。
根据实施例,可以根据可用时间预测信息来执行选择待压缩的映射数据的操作。可以基于相应映射数据指定的存储块的块信息来确定待压缩的映射数据。块信息可以根据读取计数指示存储块是否是读取回收的目标。然而,本发明不限于此。当存储块中特定页面的读取计数超过参考值时,读取干扰可能会增加到设置水平以上。因此,为了保存原始数据,存储器控制器可以执行读取回收,其中包括多于设置数量的页面的存储块中存储的数据被移动到并写入另一存储块中,每个页面具有大于参考值的读取计数。执行读取回收可能需要关于相应存储块的映射数据。因此,维持指定作为读取回收操作的目标的存储块的映射数据处于其原始数据格式而不被压缩可能是有利的。
图12示出对于五个块中的每一个,读取计数超过参考值的页面的数量。更具体地,第一块BLK1可以包括读取计数超过参考值的七个页面,第二块BLK2可以包括读取计数超过参考值的四个页面,第三块BLK3可以包括读取计数超过参考值的十五个页面,第四块BLK4可以包括读取计数超过参考值的十一个页面,第五块BLK5可以包括读取计数超过参考值的十九个页面。因为读取干扰最有可能发生在具有读取计数超过参考值的页面最多的第五块中,所以可以先对第五块执行读取回收。因为读取干扰最不可能发生在读取计数超过参考值的页面最少的第二块中,所以最后对第二块执行读取回收。因此,因为第五块在读取回收方面具有最高的优先级,所以以原始数据格式存储指定第五块的映射数据可能是有利的。因为第二块在读取回收方面具有最低优先级,所以以经压缩数据格式存储指定第二块的映射数据可能是有利的。因此,块选择组件221可以在指定五个块的映射数据之中选择指定第二块作为压缩的目标的映射数据。由块选择组件221选择的映射数据不必限于指定一个块的映射数据。相反,可以选择从包括读取计数超过参考值的页面最少的存储块到包括读取计数超过参考值的页面最多的存储块顺序地指定多个存储块的映射数据。
图13是示出根据本公开实施例的存储器控制器的操作的流程图。
参照图13,在步骤S1301,存储器控制器可以生成可用时间预测信息,该可用时间预测信息是预计在此期间不从主机输入输入/输出请求的预测时间段(所预测的空闲时间)。存储器控制器可以从主机接收输入/输出请求信息,并通过机器学习来预测空闲时间。可以通过将所预测的空闲时间与可以是压缩映射数据花费的平均时间的参考时间进行比较来生成包括关于映射数据是否被压缩的信息的可用时间预测信息。
在步骤S1303,存储器控制器可以根据所生成的可用时间预测信息来压缩映射数据。当生成指示所预测的空闲时间是用于压缩的可用时间的可用时间预测信息时,存储器控制器可以在所预测的空闲时间期间压缩映射数据。当生成指示所预测的空闲时间不是用于压缩的可用时间的可用时间预测信息时,存储器控制器可以省略映射数据的压缩。
下面参照图14和图15详细描述每个步骤。
图14是示出生成图13所示的可用时间预测信息的步骤的详细流程图。
参照图14,在步骤S1401,存储器控制器可以从主机接收输入/输出请求信息。输入/输出请求信息可以对应于访问存储装置的请求,主机通过其向存储装置请求编程操作、读取操作等。
在步骤S1403,存储器控制器可以将输入/输出请求信息存储在第一预处理组件中。存储在第一预处理组件中的输入/输出请求信息可以对应于紧接在生成可用时间预测信息之前从主机输入的输入/输出请求信息。第一预处理组件可以执行用于处理输入/输出请求信息,以针对递归神经网络(RNN)机器学习模型进行优化的操作。
在步骤S1405,存储器控制器可以将输入/输出请求信息存储在第二预处理组件中。存储在第二预处理组件中的输入/输出请求信息可以对应于从第一预处理组件输入的输入/输出请求信息。第二预处理组件可以执行用于处理输入/输出请求信息以针对RNN机器学习模型进行优化的操作。
在步骤S1407,存储器控制器可以对存储在第一预处理组件中的输入/输出请求信息执行机器学习。RNN模型或方法可以用于机器学习。每次从第一预处理组件输入输入/输出请求信息时,可以执行机器学习。
在步骤S1409,存储器控制器可以对存储在第二预处理组件中的输入/输出请求信息执行机器学习。RNN模型或方法可以用于机器学习。每次从第二预处理组件输入输入/输出请求信息时,可以执行机器学习。
在步骤S1411,存储器控制器可以凭经验学习多条接收的输入/输出请求信息之间的时间间隔,并且可以预测接收的输入/输出请求信息的项和待从主机接收的输入/输出请求信息的下一项之间的空闲时间。可以在每次从主机输入输入/输出请求信息时执行机器学习,并且可以相应地增加或减少所预测的空闲时间。
在步骤S1413,存储器控制器可以通过比较所预测的空闲时间与设置参考时间来生成可用时间预测信息。参考时间可以是存储器控制器压缩映射数据花费的平均时间。然而,本发明不限于此。当所预测的空闲时间长于参考时间时,可以确定有足够的时间在空闲时间内完成映射数据的压缩。因此,在该实例中,可用时间预测信息包括指示所预测的空闲时间是足以压缩映射数据的时间的信息。当所预测的空闲时间短于参考时间时,可以确定在空闲时间内没有足够的时间来完成映射数据的压缩。因此,在该实例中,可用时间预测信息包括指示所预测的空闲时间不是压缩映射数据的可用时间的信息。
图15是示出图13所示的压缩映射数据的步骤的详细流程图。
参照图15,在步骤S1501,存储器控制器可以基于可用时间预测信息来确定所预测的空闲时间是否表示用于压缩的可用时间。当空闲时间表示用于压缩的可用时间时,可以执行步骤S1503。当空闲时间表示没有用于压缩的可用时间时,不可以压缩映射数据。
在步骤S1503,存储器控制器可以基于映射数据指定的存储块的块信息来确定待压缩的映射数据。例如,当存储块包括更多个有效页面时,该存储块更有可能不是垃圾收集的目标块。因此,可以将相应的映射数据确定为压缩的目标。另外,当存储块包括的读取计数超过参考值的页面较少时,该存储块更有可能不是读取回收的目标块。因此,可以将相应的映射数据确定为压缩的目标。
在步骤S1505,存储器控制器可以检测多条映射数据之间的相似性。相似性可以对应于多条映射数据之间的差异。
在步骤S1507,存储器控制器可以基于多条已检测的映射数据之间的差异来压缩映射数据。作为示例,增量压缩方法可以用于映射数据的压缩。根据增量压缩,可以以指示每对连续数据条之间的差异的方式压缩数据,而不是压缩整个文件。在增量压缩中,随着多条数据之间的差异变小,待存储数据的大小可以减小。根据另一实施例,可以使用另一压缩方法。例如,可以通过GZIP方法压缩映射数据。
在步骤S1509,存储器控制器可以将所压缩的映射数据存储在映射数据存储装置中。因为映射数据以经压缩格式存储,因此可以有效地管理映射数据存储装置的存储容量,从而就额外向其提供的映射数据存储装置以及功耗和成本的增加而言,最小化或甚至消除对增加的存储装置的需求。
图16是示出图1所示的存储器控制器的另一实施例的示图。
参照图16,存储器控制器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)将由主机提供的逻辑地址(LA)转换为物理地址(PA)。闪存转换层(FTL)可以接收逻辑地址(LA),并通过使用映射表将逻辑地址(LA)转换为物理地址(PA)。根据映射单元,可以存在针对闪存转换层(FTL)的各种地址映射方法。典型的地址映射方法包括页面映射方法、块映射方法和混合映射方法。
处理器1010可以被配置成将从主机接收的数据随机化。例如,处理器1010可以使用随机化种子以将从主机接收的数据随机化。经随机化的数据可以作为待存储数据被提供到存储器装置,并且可以被编程在存储器单元阵列中。
处理器1010可以被配置成在读取操作期间将从存储器装置接收的数据去随机化。例如,处理器1010可以使用去随机化种子以将从存储器装置接收的数据去随机化。经去随机化的数据可以被输出到主机。
根据实施例,处理器1010可以运行软件或固件来执行随机化和去随机化操作。
存储器缓冲器1020可以用作处理器1010的工作存储器、高速缓存存储器或缓冲存储器。存储器缓冲器1020可以存储由处理器1010运行的代码和命令。存储器缓冲器1020可以存储由处理器1010处理的数据。存储器缓冲器1020可以包括静态RAM(SRAM)和/或动态RAM(DRAM)。
ECC组件1030可以执行错误校正。ECC组件1030可以通过存储器接口1060,基于待写入到存储器装置的数据来执行ECC编码。经ECC编码的数据可以通过存储器接口1060被传送到存储器装置。ECC组件1030可以对通过存储器接口1060从存储器装置接收的数据执行ECC解码。在实施例中,ECC组件1030可以作为存储器接口1060的组件包括在存储器接口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。这些组件中的一个或两个可以单独设置,或者它们的功能中一个或两个可以由存储器控制器100中的一个或多个其它组件执行。
在实施例中,处理器1010可以使用代码控制存储器控制器1000的操作。处理器1010可以从设置在存储器控制器1000中的非易失性存储器装置(例如,ROM)加载代码。在另一示例中,处理器1010可以通过存储器接口1060从存储器装置加载代码。
在实施例中,存储器控制器1000的总线1070可以包括控制总线和数据总线。数据总线可以被配置成在存储器控制器1000中传输数据,并且控制总线可以被配置成在存储器控制器1000中传输诸如命令或地址的控制信息。数据总线和控制总线可以彼此隔离,从而既不干扰也不影响对方。数据总线可以联接到主机接口1040、缓冲控制器1050、ECC组件1030和存储器接口1060。控制总线可以联接到主机接口1040、处理器1010、缓冲控制器1050、存储器缓冲器1020和存储器接口1060。
图17是示出根据本公开实施例的应用存储装置的存储卡系统2000的框图。
参照图17,存储卡系统2000可以包括存储器控制器2100、存储器装置2200和连接器2300。
存储器控制器2100可以联接到存储器装置2200。存储器控制器2100可以被配置成访问存储器装置2200。存储器控制器2100可以具有与上文参照图1描述的存储器控制器200相同的配置。
在实施例中,存储器控制器2100可以包括诸如随机存取存储器(RAM)、处理单元、主机接口、存储器接口和ECC组件的组件。
存储器控制器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可以集成到单个半导体装置中以形成存储卡,诸如个人计算机存储卡国际协会(PCMCIA)、紧凑型闪存(CF)卡、智能媒体(SM或SMC)卡、记忆棒、多媒体卡(MMC、RS-MMC、微型MMC和eMMC)、SD(SD、迷你SD、微型SD或SDHC)卡和/或通用闪存(UFS)。
图17所示的存储器控制器2100可以是参照图1描述的存储器控制器200或参照图16描述的存储器控制器1000。另外,存储器装置2200可以是参照图1描述的存储器装置100。
图18是示出根据本公开实施例的应用存储装置的固态驱动器(SSD)系统3000的框图。
参照图18,SSD系统3000可以包括主机3100和SSD 3200。SSD3200可以通过信号连接器3001与主机3100交换信号(SIG),并且可以通过电源连接器3002接收电力(PWR)。SSD3200可以包括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、并行ATA、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙和/或NVMe。
辅助电源3230可以通过电源连接器3002联接到主机3100。辅助电源3230可以被从主机3100供应电力(PWR),并且可以被充电。当来自主机3100的电力供应不平稳时,辅助电源3230可以供应SSD 3200的电力。在实施例中,辅助电源3230可以位于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的非易失性存储器。
图19是示出根据本公开实施例的应用存储装置的用户系统4000的框图。
参照图19,用户系统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和/或LPDDR3 SDRAM的易失性随机存取存储器,和/或诸如PRAM、ReRAM、MRAM和/或FRAM的非易失性随机存取存储器。在实施例中,应用处理器4100和存储器模块4200可以基于堆叠封装(POP)进行封装,然后可以被设置为单个半导体封装。
网络模块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、扬声器和监视器。
根据本公开的实施例,提供了一种改进对输入/输出请求的响应时间和增加剩余的动态随机存取存储器(DRAM)的容量的存储器控制器和存储器控制器的操作方法。
虽然已经示出和描述了本发明的各个实施例,但是本领域技术人员将根据本公开理解,可以对任何所公开的实施例进行各种修改。本发明涵盖所有此类修改,只要它们落入权利要求的范围内。
Claims (20)
1.一种控制存储器装置的存储器控制器,所述存储器控制器包括:
可用时间预测组件,基于关于从主机输入的输入/输出请求的输入/输出请求信息,使用递归神经网络(RNN)模型来执行机器学习操作,并预测表示预计在此期间不从所述主机输入所述输入/输出请求的时间的空闲时间;以及
数据压缩控制器,响应于长于设置参考时间的所述空闲时间,通过压缩映射数据来生成经压缩的映射数据,所述映射数据指示由所述主机提供的逻辑地址与指示所述存储器装置中包括的存储块的物理位置的物理地址之间的映射关系。
2.根据权利要求1所述的存储器控制器,其中所述可用时间预测组件包括:
多个预处理组件,将所述输入/输出请求信息转换为用于机器学习的数据;以及
多个信息处理组件,通过使用所述多个预处理组件的输出来执行用于预测所述空闲时间的机器学习,并且输出关于表示可用时间的所述空闲时间是否足够压缩所述映射数据的可用时间预测信息。
3.根据权利要求2所述的存储器控制器,其中所述多个信息处理组件通过所述递归神经网络(RNN)模型来执行机器学习。
4.根据权利要求3所述的存储器控制器,其中所述多个信息处理组件通过长短时期记忆(LSTM)方法来执行机器学习,所述长短时期记忆(LSTM)方法是被设计成具有长期存储器或短期存储器的递归神经网络(RNN)模型。
5.根据权利要求2所述的存储器控制器,其中所述多个信息处理组件具有全连接层(FCL),其中先前层的节点和当前层的节点完全连接。
6.根据权利要求2所述的存储器控制器,其中所述数据压缩控制器包括:
块选择组件,响应于长于所述设置参考时间的所述空闲时间,根据所述存储块的块信息来确定压缩目标映射数据,所述压缩目标映射数据是所述映射数据之中的待压缩的映射数据;
相似性检测器,检测所述压缩目标映射数据之间的差异;以及
压缩组件,压缩所述压缩目标映射数据。
7.根据权利要求6所述的存储器控制器,其中所述压缩组件通过增量压缩方法压缩所述压缩目标映射数据。
8.根据权利要求6所述的存储器控制器,其中所述压缩组件通过GZIP方法压缩所述压缩目标映射数据。
9.根据权利要求6所述的存储器控制器,其中所述块信息包括关于所述存储块中包括的有效页面的数量或所述存储块中包括的页面的读取计数的信息。
10.根据权利要求1所述的存储器控制器,其中所述设置参考时间是压缩所述映射数据花费的平均时间。
11.一种操作存储器控制器的方法,所述方法包括:
从主机接收输入/输出请求信息;
基于使用递归神经网络(RNN)模型的机器学习,预测表示预计在此期间不从所述主机输入输入/输出请求的时间的空闲时间;以及
响应于长于设置参考时间的所述空闲时间,压缩映射数据,所述映射数据是指示数据块的逻辑位置的逻辑地址和指示实际数据块的物理位置的物理地址的映射信息。
12.根据权利要求11所述的方法,其中预测所述空闲时间包括:
处理所述输入/输出请求信息以优化机器学习;
基于所述输入/输出请求信息来执行机器学习以预测所述空闲时间;以及
生成关于表示可用时间的所述空闲时间是否足够压缩所述映射数据的可用时间预测信息。
13.根据权利要求12所述的方法,其中执行所述机器学习是通过长短时期记忆(LSTM)方法执行的,所述长短时期记忆(LSTM)方法是被设计成具有长期存储器或短期存储器的递归神经网络(RNN)模型。
14.根据权利要求12所述的方法,其中执行所述机器学习是在先前层的节点和当前层的节点完全连接的全连接层(FCL)中执行的。
15.根据权利要求12所述的方法,其中生成所述可用时间预测信息是在先前层的节点和当前层的节点完全连接的全连接层(FCL)中执行的。
16.根据权利要求11所述的方法,其中压缩所述映射数据是通过增量压缩方法执行的,在增量压缩方法中,基于多条连续数据之间的差异来压缩数据。
17.根据权利要求16所述的方法,其中压缩所述映射数据包括通过GZIP方法来压缩数据。
18.根据权利要求11所述的方法,其中压缩所述映射数据包括基于存储所述映射数据的块的块信息来确定压缩目标映射数据。
19.根据权利要求18所述的方法,其中所述块信息包括关于所述存储块中包括的有效页面的数量或所述存储块中的包括的页面的读取计数的信息。
20.一种控制器的操作方法,所述控制器控制包括块的存储装置,所述操作方法包括:
响应于访问请求,控制所述存储装置以访问所述块;
累积所述访问请求;
通过对所累积的访问请求应用机器学习,来预测预计在此期间不接收访问请求的空闲时间;以及
在所述空闲时间期间,压缩与选择块相关的映射信息,
其中压缩所述映射信息所需的时间比所述空闲时间更短。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0113717 | 2019-09-16 | ||
KR1020190113717A KR102717019B1 (ko) | 2019-09-16 | 메모리 컨트롤러 및 그것의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112506421A true CN112506421A (zh) | 2021-03-16 |
CN112506421B CN112506421B (zh) | 2024-05-21 |
Family
ID=74869503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010578829.5A Active CN112506421B (zh) | 2019-09-16 | 2020-06-23 | 存储器控制器及其操作方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11301371B2 (zh) |
CN (1) | CN112506421B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118101421A (zh) * | 2023-12-20 | 2024-05-28 | 福建省电子政务建设运营有限公司 | 一种基于机器学习的智能告警阈值自适应方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11129252B2 (en) * | 2020-02-18 | 2021-09-21 | Elemental LED, Inc. | Output stabilization of mixed color temperature LED lighting systems |
CN114443151A (zh) * | 2022-01-14 | 2022-05-06 | 山东云海国创云计算装备产业创新中心有限公司 | 一种轮询方法、装置及计算机可读存储介质 |
JP2023170243A (ja) * | 2022-05-18 | 2023-12-01 | 横河電機株式会社 | データ記録装置、データ記録方法、および、データ記録プログラム |
CN118642668B (zh) * | 2024-08-16 | 2024-10-18 | 山东浪潮科学研究院有限公司 | 一种用于多通道lpddr存储管理的动态数据分配方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1993016557A1 (en) * | 1992-02-11 | 1993-08-19 | Koz Mark C | Adaptive video file server and methods for its use |
KR20120057694A (ko) * | 2010-08-12 | 2012-06-07 | 엘지전자 주식회사 | 모바일 환경에서 데이터 압축 방법 및 이를 이용하는 이동 단말기 |
US20180189635A1 (en) * | 2016-12-30 | 2018-07-05 | Samsung Electronics Co., Ltd. | Method and apparatus for supporting machine learning algorithms and data pattern matching in ethernet ssd |
US20190129636A1 (en) * | 2017-11-01 | 2019-05-02 | Western Digital Technologies, Inc. | Storage device and method for adaptive sleep mode transitions |
US20190147125A1 (en) * | 2017-11-15 | 2019-05-16 | Schlumberger Technology Corporation | Field Operations System |
US20190197420A1 (en) * | 2017-12-22 | 2019-06-27 | Intel Corporation | Compression for deep learning in case of sparse values mapped to non-zero value |
CN110109616A (zh) * | 2019-04-02 | 2019-08-09 | 天津大学 | 基于神经网络的命名数据网内容存储池数据删除方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101649357B1 (ko) | 2010-05-10 | 2016-08-19 | 삼성전자주식회사 | 데이터 저장 장치, 그것의 동작 방법, 그리고 그것을 포함한 스토리지 서버 |
US9417999B2 (en) * | 2012-12-17 | 2016-08-16 | International Business Machines Corporation | Write peformance in solid state storage by recognizing copy source to target operations and only storing updates instead of entire block |
KR102023351B1 (ko) | 2013-03-19 | 2019-11-04 | 삼성전자 주식회사 | 저장 장치 내 할당 촉진을 위한 데이터 분석 방법 및 장치 |
US9703594B1 (en) * | 2015-03-02 | 2017-07-11 | Amazon Technologies, Inc. | Processing of long running processes |
KR102262550B1 (ko) * | 2015-03-03 | 2021-06-10 | 에스케이하이닉스 주식회사 | 복수의 기능 블록들을 포함하는 반도체 장치 및 그것의 동작 방법 |
KR102656190B1 (ko) | 2016-11-24 | 2024-04-11 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 불휘발성 메모리 장치의 액세스 방법 |
US10963394B2 (en) * | 2018-04-16 | 2021-03-30 | Samsung Electronics Co., Ltd. | System and method for optimizing performance of a solid-state drive using a deep neural network |
US11327886B2 (en) * | 2019-07-10 | 2022-05-10 | Board Of Trustees Of The University Of Illinois | Capturing time-varying storage of data in memory device for data recovery purposes |
-
2020
- 2020-04-23 US US16/856,851 patent/US11301371B2/en active Active
- 2020-06-23 CN CN202010578829.5A patent/CN112506421B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1993016557A1 (en) * | 1992-02-11 | 1993-08-19 | Koz Mark C | Adaptive video file server and methods for its use |
KR20120057694A (ko) * | 2010-08-12 | 2012-06-07 | 엘지전자 주식회사 | 모바일 환경에서 데이터 압축 방법 및 이를 이용하는 이동 단말기 |
US20180189635A1 (en) * | 2016-12-30 | 2018-07-05 | Samsung Electronics Co., Ltd. | Method and apparatus for supporting machine learning algorithms and data pattern matching in ethernet ssd |
US20190129636A1 (en) * | 2017-11-01 | 2019-05-02 | Western Digital Technologies, Inc. | Storage device and method for adaptive sleep mode transitions |
US20190147125A1 (en) * | 2017-11-15 | 2019-05-16 | Schlumberger Technology Corporation | Field Operations System |
US20190197420A1 (en) * | 2017-12-22 | 2019-06-27 | Intel Corporation | Compression for deep learning in case of sparse values mapped to non-zero value |
CN110109616A (zh) * | 2019-04-02 | 2019-08-09 | 天津大学 | 基于神经网络的命名数据网内容存储池数据删除方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118101421A (zh) * | 2023-12-20 | 2024-05-28 | 福建省电子政务建设运营有限公司 | 一种基于机器学习的智能告警阈值自适应方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112506421B (zh) | 2024-05-21 |
US11301371B2 (en) | 2022-04-12 |
US20210081313A1 (en) | 2021-03-18 |
KR20210032222A (ko) | 2021-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109213705B (zh) | 存储装置及其操作方法 | |
CN110321070B (zh) | 存储器控制器及其操作方法 | |
CN112506421B (zh) | 存储器控制器及其操作方法 | |
CN111104059B (zh) | 存储器控制器及操作该存储器控制器的方法 | |
US11256614B2 (en) | Memory controller for allocating logical address and method of operating the same | |
CN111258793A (zh) | 存储器控制器及其操作方法 | |
CN111580744B (zh) | 存储器控制器及其操作方法 | |
CN114267392A (zh) | 存储器控制器、存储装置及其操作方法 | |
CN113535079B (zh) | 存储器控制器以及具有存储器控制器的存储装置 | |
CN112988049A (zh) | 存储装置及其操作方法 | |
CN111752856A (zh) | 存储器控制器及其操作方法 | |
CN111192617A (zh) | 存储装置及其操作方法 | |
CN111105836A (zh) | 存储装置及其操作方法 | |
CN111445939B (zh) | 存储装置及其操作方法 | |
CN111338979A (zh) | 存储器控制器及其操作方法 | |
US11237768B2 (en) | Memory device changing memory area in which data is stored and operating method thereof | |
CN110413219B (zh) | 存储器控制器、存储器系统及其操作方法 | |
CN111796962A (zh) | 存储装置以及存储装置的操作方法 | |
US11599275B2 (en) | Memory controller for controlling power loss recovery and method of operating the same | |
CN112445420B (zh) | 存储控制器、存储装置以及操作该存储装置的方法 | |
CN111580743B (zh) | 存储器控制器及其操作方法 | |
CN114360593A (zh) | 存储装置及其操作方法 | |
CN113555054A (zh) | 存储装置及其操作方法 | |
CN112199037A (zh) | 存储器控制器及其操作方法 | |
KR102717019B1 (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 | ||
GR01 | Patent grant |