CN111949205A - 共享存储器系统、数据处理系统或网络服务器的数据属性的设备和方法 - Google Patents

共享存储器系统、数据处理系统或网络服务器的数据属性的设备和方法 Download PDF

Info

Publication number
CN111949205A
CN111949205A CN201911296177.XA CN201911296177A CN111949205A CN 111949205 A CN111949205 A CN 111949205A CN 201911296177 A CN201911296177 A CN 201911296177A CN 111949205 A CN111949205 A CN 111949205A
Authority
CN
China
Prior art keywords
data
memory
attribute
memory system
host
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.)
Withdrawn
Application number
CN201911296177.XA
Other languages
English (en)
Inventor
李硕晙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN111949205A publication Critical patent/CN111949205A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/063Address space extension for I/O modules, e.g. memory mapped I/O
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本申请涉及一种存储器系统以及操作存储器系统的方法。该存储器系统可以包括:存储器装置,包括多个存储块;以及控制器,被配置为确定关于多个存储块之中的存储块中存储的数据的数据属性,将数据属性与该数据的逻辑地址相关联,并且将与该逻辑地址相关联的数据属性传送到外部装置。

Description

共享存储器系统、数据处理系统或网络服务器的数据属性的 设备和方法
相关申请的交叉引用
本专利申请要求于2019年5月15日提交的申请号为10-2019-0056863的韩国专利申请的优先权,该韩国专利申请的全部公开内容通过引用并入本文。
技术领域
各个实施例总体涉及一种存储器系统或数据处理系统,并且更特别地,涉及一种用于与其它装置共享存储在存储器系统中的数据属性的方法和设备。
背景技术
近来,计算环境范例已经转变成能够随时随地访问计算机系统的普适计算。因此,诸如移动电话、数码相机和笔记本计算机的便携式电子装置的使用正迅速增加。这些便携式电子装置通常使用或包括使用至少一个存储器装置的存储器系统即数据存储装置。数据存储装置可以用作便携式电子装置的主存储装置或辅助存储装置。
与硬盘相比,由于使用非易失性半导体存储器装置的数据存储装置不具有机械驱动部件(例如,机械臂),所以该数据存储装置具有优异的稳定性和耐用性,并且具有高数据访问速度和低功耗。在具有这些优点的存储器系统的背景下,例如,示例性数据存储装置可以包括通用串行总线(USB)存储器装置、具有各种接口的存储卡或固态驱动器(SSD)等。
发明内容
本公开的实施例可以提供一种存储器系统、数据处理系统和操作进程或方法,该存储器系统、数据处理系统和操作进程或方法可以通过降低存储器系统的操作复杂性和性能劣化来快速且可靠地将数据处理到存储器装置中,并且可以增强存储器装置的使用效率。
本公开的实施例可以提供一种方法和设备,该方法和设备用于确定存储器系统中存储的数据属性并且将该数据属性传递到主机或网络服务器,以使得主机或网络服务器可以将关于该数据属性的信息传送到存储数据的另一存储器系统,并且可以与另一装置共享该数据属性。本公开可以提供一种用于减少确定数据属性所需的资源并且提高或增强存储器系统的性能的方法和设备。
本公开的实施例可以提供一种设备和方法,该设备和方法用于确定关于存储在存储器系统中的多个存储块中的数据的数据属性(例如,热/冷),将数据属性(例如,热/冷)与数据的逻辑地址相关联,并且将与逻辑地址相关联的数据属性传送到主机。
本公开的实施例可以提供一种设备和方法,该设备和方法用于收集通过安装在主机或计算装置中的应用生成或存储的数据属性并且将收集的数据属性传送到网络服务器,主机或计算装置可以将数据存储在存储器系统中或从存储器系统读取数据,该网络服务器可以通过应用的更新数据来分配属性。
本公开的实施例可以提供一种方法和设备,该方法和设备用于在从安装了应用的主机或计算装置收集关于数据的属性之后,将与由应用生成或利用的数据对应的属性分配给另一电子装置或终端。
在实施例中,一种存储器系统可以包括:存储器装置,包括多个存储块;以及控制器,被配置为确定关于多个存储块之中的存储块中存储的数据的数据属性,将数据属性与该数据的逻辑地址相关联,并且将与该逻辑地址相关联的数据属性传送到外部装置。
数据属性可以基于在将数据存储在存储器装置中之后的设定时段内访问该数据的频率来确定。例如,数据属性可以被确定为热属性和冷属性中的一种。在另一示例中,数据属性可以被确定为热属性、暖属性和冷属性中的一种。
数据属性可以基于在从外部装置输入外部命令之后的设定时段内访问该数据的频率来确定。
控制器可以被配置为对与逻辑地址对应的读取操作、写入操作和擦除操作的数量进行计数,并且基于计数的数量来确定数据属性。
控制器可以被配置为当计数的数量等于或大于参考值时,确定数据属性为热,当计数的数量小于参考值时,数据属性为冷。
控制器可以被配置为从外部装置接收用于查询与逻辑地址相关联的数据属性的命令,并且响应于该命令将数据属性传送到外部装置。
控制器可以被配置为生成元数据,该元数据包括来自外部装置的逻辑地址、与该逻辑地址相关联的物理地址,以及指示利用逻辑地址执行的读取操作、写入操作和擦除操作的数量的访问计数。
在另一实施例中,一种存储器系统可以包括:存储器装置,包括基于数据属性的类型分配的多个存储块;以及控制器,被配置为当从外部装置输入的命令包括数据、该数据的逻辑地址以及该数据的数据属性时,基于该数据的数据属性将数据存储在多个存储块之中的存储块中。
控制器可以被配置为当命令不包括该数据的数据属性时,确定数据属性并且将该数据属性传送到外部装置。
控制器可以被配置为基于指示利用逻辑地址执行的读取操作、写入操作和擦除操作的数量的访问计数来确定数据属性。
控制器可以被配置为接收从外部装置输入的用于查询与逻辑地址对应的数据属性的命令,并且响应于该命令将数据属性传送到外部装置。
在另一实施例中,一种用于操作存储器系统的方法可以包括:从外部装置接收编程请求、数据、逻辑地址以及关于该数据的数据属性;确定用于将数据存储在存储器系统的存储器装置中的存储块中的物理位置,该物理位置是基于数据属性而分配;将数据编程在物理位置;以及将逻辑地址与物理位置相关联。
该方法可以进一步包括接收从外部装置输入的用于查询与逻辑地址对应的数据属性的命令,并且响应于该命令将数据属性传送到外部装置。
通过示例而非限制的方式,数据属性可以基于在将数据存储在存储器装置中之后的设定时段内访问该数据的频率来确定。数据属性被确定为热属性和冷属性中的一种。
数据属性可以基于在从外部装置输入外部命令之后的设定时段内访问该数据的频率来确定。
该方法可以进一步包括对与逻辑地址对应的读取操作、写入操作和擦除操作的数量进行计数,并且基于计数的数量来确定数据属性。
当计数的数量等于或大于参考值时,数据属性可以为热,当计数的数量小于参考值时,数据属性可以为冷。
该方法可以进一步包括生成元数据,该元数据包括从外部装置输入的逻辑地址、与该逻辑地址相关联的物理地址,以及指示利用逻辑地址执行的读取操作、写入操作和擦除操作的数量的访问计数。
在另一实施例中,一种数据处理系统可以包括:主机,运行应用;以及存储器系统,从主机接收数据并且将该数据存储在存储器装置中。主机和存储器系统可以单独地被配置为将该数据的数据属性与逻辑地址相关联,并且相互传送或接收数据属性。主机可以被配置为基于应用通过网络传送数据属性。
数据属性可以基于在将数据存储在存储器装置中之后的设定时段内访问该数据的频率来确定。数据属性可以被确定为热属性和冷属性中的一种。数据属性可以基于在从外部装置输入外部命令之后的设定时段内访问该数据的频率来确定。
主机可以被配置为对从存储器系统输入的与逻辑地址对应的数据属性进行分类,并且将该数据属性与为应用设计的数据结构相关联。
数据结构可以包括针对应用进行分配的存储器系统上的存储空间。存储空间可以按与逻辑地址对应的大小划分为多个单元。
在另一实施例中,一种网络服务器可以包括存储装置,被配置为存储构成应用的多个数据;以及收发器,被配置为经由网络从数据处理系统接收关于应用的请求,并且经由网络将多个数据传送到数据处理系统。多个数据可以与和多个数据相关联的数据属性一起被传送到数据处理系统。
收发器可以被配置为将用于收集与应用中包括的多个数据相关联的数据属性的请求传送到其它数据处理系统。
网络服务器可以进一步包括内核逻辑,该内核逻辑被配置为估计通过收发器从其它数据处理系统收集的数据属性的平均值,将平均数据属性与应用相关联,并且将平均数据属性与应用一起存储在存储装置中。
通过示例而非限制的方式,每个数据属性是基于在将数据存储在存储器系统中之后的设定时段内访问存储在数据处理系统的存储器系统中的数据的频率来确定的。数据属性被确定为热属性和冷属性中的一种。每个数据属性是基于在从数据处理系统中的主机输入外部命令之后的设定时段内访问数据处理系统的存储器装置中存储的数据的频率来确定的。
在另一实施例中,一种系统可以包括:服务器;以及第一数据处理系统和第二数据处理系统,每个数据处理系统包括主机和包括存储器装置的存储器系统,该存储器装置包括多个存储块。从服务器接收包括多个文件的应用的第一数据处理系统可以将应用存储在第一存储器系统中,监控每个文件的数据属性,并且将关于该数据属性的属性信息传送到服务器。服务器可以接收属性信息,并且生成用于应用的属性信息。第二数据处理系统可以从服务器接收应用和属性信息,并且可以基于属性信息将应用存储在第二存储器系统中,使得多个文件被分类并存储在第二存储器系统的相应存储块中。
附图说明
本文的描述参照附图,其中相同的附图标记在附图中表示相同的部件,并且其中:
图1示出根据本公开的实施例的存储器系统;
图2示出根据本公开的实施例的包括存储器系统的数据处理系统;
图3示出根据本公开的实施例的存储器系统中的控制器配置;
图4示出根据本公开的实施例的用于确定存储器系统中的数据属性的数据结构的示例;
图5示出根据本公开的实施例的主机配置;
图6示出根据本公开的实施例的用于对主机中的数据属性进行分类的数据结构的示例;
图7示出根据本公开的实施例的在网络服务器、主机和存储器系统之间传送和接收数据属性的方法;
图8示出根据本公开的实施例的存储器系统;
图9是示出根据本公开的实施例的网络服务器;
图10示出根据本公开的实施例的用于对网络服务器中的数据属性进行分类的数据结构的示例;
图11是示出根据本公开的实施例的操作数据处理系统中的主机的方法的流程图;
图12示出根据本公开的实施例的用于操作数据处理系统中的存储器系统的方法的流程图;以及
图13是示出根据本公开的实施例的用于操作网络服务器的方法的流程图。
具体实施方式
以下参照附图详细地描述本公开的各个实施例。然而,本公开的元件和特征可以不同地配置或布置以形成其它实施例,该其它实施例可以是所公开实施例中的任意一个的变型。因此,本教导不限于本文阐述的实施例。相反,提供所描述的实施例使得本公开是彻底且完全的,并且将本公开的范围充分地传达给本教导所属领域的技术人员。注意的是,对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任意这种短语的不同参考不一定针对相同的实施例。
将理解的是,虽然术语“第一”、“第二”、“第三”等可在本文中用于描述各个元件,但是这些元件不受这些术语限制。这些术语用于将一个元件与以其它方式具有相同或相似名称的另一元件区分开。因此,在不脱离本教导的精神和范围的情况下,一个示例中的第一元件也可在另一示例中被称为第二元件或第三元件。
附图不一定按比例绘制,并且在一些情况下,为了清楚地示出实施例的特征,比例可能已经被夸大。当一个元件被称为连接或联接到另一元件时,应该理解的是,前者可以直接连接或联接到后者,或者通过它们之间的中间元件电连接或联接到后者。另外,还将理解的是,当元件被称为在两个元件“之间”时,它可以是两个元件之间的唯一元件或也可存在一个或多个中介元件。
本文使用的术语仅用于描述特定实施例的目的,而不旨在限制。除非上下文另有清楚地说明,否则如本文使用的单数形式也旨在包括复数形式。除非另有说明或从上下文清楚地指出单数形式,否则本申请和所附权利要求书中使用的冠词“一”和“一个”通常应被解释为指“一个或多个”。
将进一步理解的是,当在本说明书中使用时,术语“包括”、“包括有”、“包含”和“包含有”指定所陈述元件的存在,并不排除一个或多个其它元件的存在或添加。如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任意和全部组合。
除非另有定义,否则本文使用的包括技术术语和科学术语的所有术语具有与本领域的技术人员通常理解的含义相同的含义。将进一步理解的是,诸如在常用词典中限定的那些术语的术语应被理解为具有与它们在本公开的上下文和相关领域的背景下的含义一致的含义并且将不被解释为理想化或过于形式式化的意义,除非本文如此明确地限定。
在下面的描述中,阐述了许多具体的细节以便提供对本公开的透彻理解。本文公开的教导可在没有一些或全部这些具体细节的情况下来实践。在其它情况下,没有详细地描述众所周知的进程结构和/或进程,以免不必要地模糊本文公开的教导。
也应注意的是,在一些情况下,如对相关领域的技术人员将显而易见的是,除非另有具体说明,否则结合一个实施例描述的特征或元件可单独使用或与另一实施例的其它特征或元件组合使用。
现在将参照附图描述本公开的各个实施例,其中相同的标号表示相同的元件。
图1示出根据本公开的实施例的存储器系统110。在一些实施例中,存储器系统110可以安装在计算装置或移动装置上,并且将数据、命令、指令或响应传送到与存储器系统110可操作地接合的主机102(参见图2和图3)或从与存储器系统110可操作地接合的主机102(参见图2和图3)接收数据、命令、指令或响应。
参照图1,存储器系统110可以包括控制器130和存储器装置150。控制器130可以根据主机102的请求输出从存储器装置150传递的数据,或者可以将从主机102传送的数据存储在存储器装置150中。存储器装置150可以包括多个存储块,每个存储块包括能够存储数据的多个单元。单元可以组织在页面中,每个页面包括多个单元。此处,存储器装置150的内部配置可以根据存储器装置150的特性、使用存储器系统110的目的或主机102所需的存储器系统110的规格等进行改变。
存储器装置150可以包括非易失性存储器单元。即使不提供电力,即关闭电源,非易失性存储器单元也可以存储1位或更多位的数据。在对非易失性存储器单元编程数据之后,控制器130可以在没有擦除编程在非易失性存储器单元中的数据的情况下不能对非易失性存储器单元重写另一数据。通过示例而非限制的方式,存储块的多个单元可以通过擦除操作一起被擦除。单个页面的多个单元可以通过编程操作一起进行编程。
用于将数据编程在非易失性存储器单元中和擦除非易失性存储器单元中的数据的操作可对非易失性存储器单元造成磨损或损坏。当发生将数据编程在非易失性存储器单元中和擦除非易失性存储器单元中的数据的操作时,非易失性存储器单元的磨损可能会累积,使得基于用于编程和擦除数据的操作的数量(例如,E/W周期)确定可以可靠地将数据存储在非易失性存储器单元中并且可以输出非易失性存储器单元中存储的数据的存储器装置150的预期寿命。通常,存储器装置150中的存储块可以可靠地存储和输出数千或数万次编程操作和擦除操作的数据。
关于与存储器装置150中的多个存储块有关的磨损程度,存储器装置的各个存储块之间的磨损程度的偏差越大,存储器系统110的性能也越低。这是因为当多个存储块之间的磨损程度的偏差增大时,根据物理位置(即,数据存储在存储器装置150中的位置),无法可靠地存储或输出数据的可能性也增大。因此,控制器130可以控制存储器系统110的内部操作以均匀地执行将数据编程在每个存储块中或擦除每个存储块中的数据的操作,从而减小存储器装置150中的多个存储块之间的磨损偏差。例如,当在特定存储块中其它执的编程操作和擦除操作比在其它存储块中多时,控制器130应降低将数据编程在相应存储块中或擦除相应存储块中的数据的频率。
为了执行上述操作,可以识别存储在存储器装置150中的数据属性。数据属性可以被分类为热、冷或暖。热数据对应于频繁发生对数据的访问的情况。当频繁发生对特定数据的读取、写入或擦除时,可以频繁地读取存储数据的非易失性存储器单元,或者存储的数据可以被频繁地重新编程在存储器装置150中的另一位置。与其它数据相比,这种数据可以增加存储器装置150中的非易失性存储器单元的磨损率相对较大。
当不频繁地执行诸如读取、写入或擦除特定数据(冷数据)的操作时,就不必频繁地读取可存储数据的非易失性存储器单元,并且不必频繁地将数据重新编程在另一位置。与热数据或暖数据相比,这种数据可以增加存储器装置150中的非易失性存储器单元的磨损率相对较小。
当控制器130基于数据的相对频率使用关于数据的数据属性时,可以减小存储器装置150中的多个存储块之间的磨损偏差。根据实施例,可以各种方式建立数据属性。例如,根据实施例,数据属性可以被划分为两种类型,例如热和冷,或者三种类型,例如热、暖和冷。根据实施例,控制器130可以通过将数据属性划分为更多类型来控制存储器装置150中的多个存储块。确定数据是热、冷还是暖的标准也可以变化。
控制器130可以包括数据输入/输出(I/O)控制电路198,该数据输入/输出(I/O)控制电路198被配置为从外部装置(例如,主机)接收数据或将来自存储器装置150的数据输出到外部装置。当数据输入/输出控制电路198从外部装置接收读取特定数据的请求时,数据输入/输出控制电路198可以输出存储在存储器装置150的存储块40_1中的数据。
如在本公开中所使用的,术语‘电路’指以下的任意和所有内容:(a)纯硬件电路实现方式(诸如仅在模拟和/或数字电路中的实施方式)和(b)电路和软件(和/或固件)的组合,诸如(如果适用的话):(i)处理器的组合或(ii)处理器的部分/软件(包括共同作用使诸如移动电话或服务器的设备执行各种功能的数字信号处理器、软件和存储器)和(c)电路,诸如微处理器或微处理器的一部分,它们需要软件或固件进行操作,即使软件或固件物理上不存在。‘电路’的这种定义适用于该术语在本申请中的所有用法,包括在任意权利要求中。作为另外示例,如在本申请中所使用的,术语“电路”还涵盖仅处理器(或多个处理器)或处理器的一部分及处理器(或多个处理器)附带的软件和/或固件的实施方式。例如,如果适用于特定要求元件,则术语“电路”还涵盖用于存储装置的集成电路。
从外部装置接收、用于访问存储在存储器装置150中的数据的命令可以与外部装置使用的逻辑地址一起被传送到控制器130。数据输入/输出控制电路198可以将逻辑地址转换为存储器装置150的物理地址,使得存储器装置150可以执行与从外部装置接收的命令对应的操作(例如,读取操作、写入操作或擦除操作)。
当数据输入/输出控制电路198访问数据时,数据属性确定电路196可以增加与由数据输入/输出控制电路198处理的逻辑地址对应的访问计数。数据属性确定电路196可以监控由数据输入/输出控制电路198对每个逻辑地址执行的操作,使得数据属性确定电路196可以确定对每个逻辑地址执行了多少次或怎样的频率执行操作诸如读取操作、写入操作和擦除操作。数据属性确定电路196可以基于每个逻辑地址的访问频率来确定与逻辑地址相关联的数据属性。例如,数据属性确定电路196可以根据逻辑地址的访问频率,将与逻辑地址相关联的数据属性确定为热或冷,或确定为热、冷或暖,或确定为更多个组中的一个。
根据实施例,数据属性确定电路196可以基于逻辑地址确定数据属性。数据属性确定电路196不仅可以监控并参考响应于来自外部装置的命令的数据访问,而且还可以监控并参考由存储器系统110的内部操作引起的数据访问。此处,内部操作可以包括诸如垃圾收集和损耗均衡的操作。即使当数据输入/输出控制电路198可以使用存储器装置150中的物理地址时,也应该更新用于将物理地址与逻辑地址相关联的映射数据,使得外部装置可以基于逻辑地址访问相应数据。当数据输入/输出控制电路198监控用于更新映射数据的操作时,可以检查由内部操作处理的特定数据的访问频率。另外,由于在更新映射数据时数据的物理位置与特定逻辑地址相关联,因此内部操作的结果可以反映在基于逻辑地址确定数据属性中。
根据实施例,数据属性确定电路196可以基于从数据存储在存储器装置150中的时间至从外部装置接收查询数据属性的请求的时间的预定时段内关于数据的访问频率,确定数据属性是热还是冷(或热、冷或暖)。在另一实施例中,数据属性确定电路196可以基于在从外部装置接收到外部命令之后的预定时段内关于数据的访问频率,确定数据属性是热还是冷(或热、冷或暖)。可以不同地选择预定时段。例如,预定时段可以是一个小时、一天、一周或一个月。
在数据属性确定电路196确定与每个逻辑地址相关联的数据属性之后,数据属性传送电路194可以将逻辑地址的数据属性传送到外部装置。因为数据属性通常可以根据存储器系统110的单独使用环境而变化,所以可以知道的是,即使在已经确定数据属性之后,传统存储器系统110也不必将数据属性输出到外部装置。
然而,在实施例中,存储器系统110可以确定每个逻辑地址的数据属性并且将该数据属性共享给外部装置,或者可以从外部装置接收数据属性。当存储器系统110从外部装置接收数据属性时,存储器系统110可以参考该数据属性来确定存储器装置150中用于新编程数据的物理地址,而无需监控数据访问模式来确定数据属性。因此,存储器系统110在存储数据之后的一定时段内不必监控数据访问模式,从而减少确定数据属性所需的资源(例如,时间和功率)。
数据属性传送电路194可以响应于从外部装置接收的查询数据属性的命令来输出以逻辑地址为单位确定的数据属性。在实施例中,当控制器130在将数据新存储在存储器系统110中之后检查预设时间以确定数据属性时,即使没有来自外部装置的命令,数据属性传送电路194也可以自动将数据属性输出到外部装置。在这种情况下,外部装置不将特定命令传送到存储器系统110,而是可以处于能够从存储器系统110接收并识别数据属性的操作状态。
根据实施例,存储器系统110可以响应于从外部装置接收的用于擦除与特定逻辑地址对应的数据的命令,而不是用于查询数据属性的命令,将数据属性传送到外部装置。存储器系统110可以从特定数据被重新编程的时间至特定数据被擦除的时间(例如,在数据寿命内)监控关于特定数据的操作。存储器系统110可以在特定数据的寿命内监控特定数据的访问模式以确定关于特定数据的数据属性,然后将数据属性输出到外部装置。
在下文中,将参照图2至图9更详细地描述本公开的各个实施例。
图2示出描述根据本公开的实施例的数据处理系统100。参照图2,数据处理系统100可以包括主机102和存储器系统110。
主机102可以包括诸如移动电话、MP3播放器和膝上型计算机的便携式电子装置或诸如台式计算机、游戏机、电视(TV)和投影仪的电子装置。
主机102还包括至少一个操作系统(OS),该操作系统(OS)通常可以管理和控制在主机102中执行的功能和操作。OS可以提供与存储器系统110接合的主机102和使用存储器系统110的用户之间的互操作性。OS可以支持与用户请求对应的功能和操作。通过示例而非限制的方式,OS可以根据主机102的移动性被分类为通用操作系统和移动操作系统。通用操作系统可以根据系统的要求或用户的环境被分为个人操作系统和企业操作系统。包括Windows和Chrome的个人操作系统可以支持一般用途的服务。但是包括Windows服务器、Linux和Unix的企业操作系统可以专用于保护和支持高性能。此外,移动操作系统可以包括Android、iOS和Windows mobile。移动操作系统可以支持用于移动性的服务或功能(例如省电功能)。主机102可以包括多个操作系统。主机102可以运行与用户的请求对应、与存储器系统110互锁的多个操作系统。主机102可以将与用户的请求对应的多个命令传送到存储器系统110,从而在存储器系统110内执行与命令对应的操作。
存储器系统110可以响应于来自主机102的请求执行特定操作,并且特别地,可以存储待由主机102访问的数据。存储器系统110可以用作主机102的主存储器系统或辅助存储器系统。存储器系统110可以根据主机接口的协议利用可与主机102电联接的各种类型的存储装置中的任意一种来实施。合适的存储装置的非限制性示例包括固态驱动器(SSD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、尺寸减小的MMC(RS-MMC)、微型-MMC、安全数字(SD)卡、迷你-SD卡、微型-SD卡、通用串行总线(USB)存储装置、通用闪存(UFS)装置、紧凑型闪存(CF)卡、智能媒体卡(SMC)和记忆棒。
用于存储器系统110的存储装置可以利用例如动态随机存取存储器(DRAM)和静态RAM(SRAM)的易失性存储器装置以及诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻式RAM(RRAM或ReRAM)和闪速存储器的非易失性存储器装置来实施。
存储器系统110可以包括控制器130和存储器装置150。存储器装置150可以存储待由主机102访问的数据。控制器130可以控制数据在存储器装置150中的存储。在存储器系统110中,有多种类型的数据。一种是用户数据,其中包括由主机102生成或用户通过主机102输入的信息。另一种是用于执行存储器系统110的操作的固件。另一种是包括提供关于其它数据的信息的数据的元数据。例如,元数据可以支持在存储器系统110内执行的操作。元数据用于管理存储的信息或NAND闪速存储器中的数据。元数据通常包括存储的信息的逻辑到物理地址映射表、存储的信息的属性信息以及可以帮助管理存储的信息的任何其它数据。根据实施例,元数据可以作为块存储在文件系统中。在执行读取操作或写入操作之后,可以更新部分元数据。
控制器130和存储器装置150可被集成到单个半导体装置中,其中单个半导体装置可被包括在如上所例示的各种类型的存储器系统中。
通过示例而非限制的方式,控制器130和存储器装置150可以被集成到单个半导体装置中。配置SSD的控制器130和存储器装置150可以集成到单个半导体装置中以提高操作速度。当存储器系统110用作SSD时,连接至存储器系统110的主机102的操作速度可以比利用硬盘实施的主机102的操作速度提高得更多。另外,集成到一个半导体装置中的控制器130和存储器装置150可以形成存储卡,例如,PC卡(PCMCIA)、紧凑型闪存卡(CF)、诸如智能媒体卡(例如,SM、SMC)的存储卡、记忆棒、多媒体卡(例如,MMC、RS-MMC、微型MMC)、安全数字(SD)卡(例如,SD、迷你-SD、微型SD、SDHC)和通用闪速存储器。
例如,存储器系统110可以被配置成以下中的一部分:计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板计算机、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航系统、黑盒、数码相机、数字多媒体广播(DMB)播放器、3维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、构成数据中心的存储装置、能够在无线环境下传输/接收信息的装置、构成家庭网络的各种电子装置中的一个、构成计算机网络的各种电子装置中的一个、构成远程网络的各种电子装置中的一个、射频识别(RFID)装置或构成计算系统的各种组件中的一个。
存储器装置150可以是非易失性存储器装置,并且即使在不供应电力时也可保留其中存储的数据。存储器装置150可以通过写入操作来存储从主机102提供的数据,而通过读取操作将存储在其中的数据提供至主机102。存储器装置150可以包括多个存储块152、154、156。多个存储块152、154、156中的每一个可以包括多个页面。多个页面中的每一个可以包括电联接至多个字线(WL)的多个存储器单元。存储器装置150还包括多个存储器管芯,存储器管芯中的每一个包括多个平面,平面中的每一个包括多个存储块152、154、156。另外,存储器装置150可以是非易失性存储器装置,例如闪速存储器,其中闪速存储器可以是三维堆叠结构。
控制器130可以控制存储器装置150的全部操作,诸如读取操作、写入操作、编程操作和擦除操作。例如,控制器130可以响应于来自主机102的请求来控制存储器装置150。控制器130可以向主机102提供从存储器装置150读取的数据。控制器130可将由主机102提供的数据存储到存储器装置150中。
控制器130可以包括全部通过内部总线可操作地联接的主机接口(I/F)132、处理器134、错误校正码(ECC)电路138、电源管理单元(PMU)140、存储器接口(I/F)142以及存储器144。
主机接口132可以处理从主机102提供的命令和数据。主机接口132可以通过诸如下列的各种接口协议中的至少一种与主机102通信:通用串行总线(USB)、多媒体卡(MMC)、外围组件互连高速(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)和电子集成驱动器(IDE)。根据实施例,主机接口132是可以通过被称为主机接口层(HIL)的固件来实施、用于与主机102交换数据的组件。
ECC电路138可以校正待在存储器装置150中处理(从存储器装置150输出)的数据的错误位,ECC组件138可以包括ECC编码器和ECC解码器。此处,ECC编码器可以对待编程在存储器装置150中的数据执行错误校正编码,以生成添加奇偶校验位的编码数据并且将编码数据存储在存储器装置150中。当控制器130读取存储在存储器装置150中的数据时,ECC编码器可以检测并校正从存储器装置150读取的数据中包含的错误。换言之,在对从存储器装置150读取的数据执行错误校正解码之后,ECC电路138可以确定错误校正解码是否已经成功,并且输出指示信号(例如校正成功信号或校正失败信号)。ECC电路138可以使用在ECC编码进程中生成的奇偶校验位来校正读取数据的错误位。当错误位的数量大于或等于可校正错误位的阈值时,ECC电路138可不校正错误位而是可以输出指示校正错误位失败的错误校正失败信号。
ECC电路138可以基于诸如下列的编码调制来执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)码、trubo码、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)和分组编码调制(BCM)。ECC电路138可以包括用于基于上述码中的至少一种执行错误校正操作的所有或一些电路、模块、系统或装置。
PMU 140可以管理在控制器130中提供的电力。
存储器接口142可以用作用于处理在控制器130和存储器装置150之间传送的命令和数据的接口,以允许控制器130响应于来自主机102的请求来控制存储器装置150。在当存储器装置150是闪速存储器并且特别地当存储器装置150是NAND闪速存储器时的情况下,存储器接口142可以在处理器134的控制下生成用于存储器装置150的控制信号并且处理输入到存储器装置150或从存储器装置150输出的数据。存储器接口142可以提供用于处理控制器130和存储器装置150之间的命令和数据的接口,例如NAND闪速接口的操作,特别地,控制器130和存储器装置150之间的操作。根据实施例,存储器接口142可以通过固件来实施,该固件作为与存储器装置150交换数据的组件被称为闪速接口层(FIL)。
存储器144可以支持由存储器系统110和控制器130执行的操作。存储器144可以存储用于存储器系统110和控制器130中的操作的临时数据或事务数据。控制器130可以响应于来自主机102的请求来控制存储器装置150。控制器130可以将从存储器装置150读取的数据传递至主机102。控制器130可以将通过主机102输入的数据存储在存储器装置150内。存储器144可以用于存储控制器130和存储器装置150执行诸如读取操作或编程操作(或写入操作)的操作所需的数据。
存储器144可以利用易失性存储器来实施。存储器144可以利用静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)或两者来实施。虽然图1例示了设置在控制器130内的存储器144,但是实施例不限于此。也就是说,存储器144可以位于控制器130内部或外部。例如,存储器144可以由外部易失性存储器来实现,该外部易失性存储器具有在存储器144和控制器130之间传送数据和/或信号的存储器接口。
存储器144可以存储诸如以下的数据:用于执行由主机102请求的数据写入和数据读取的操作所需的数据和/或在存储器装置150和控制器130之间传送以用于诸如如上所述的垃圾收集操作和损耗均衡操作的后台操作的数据。根据实施例,为了支持存储器系统110中的操作,存储器144可以包括编程存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存和映射缓冲器/高速缓存。
处理器134可以利用微处理器或中央处理单元(CPU)来实施。存储器系统110可以包括一个或多个处理器134。处理器134可以控制存储器系统110的全部操作。通过示例而非限制的方式,处理器134可以响应于来自主机102的写入请求或读取请求,控制存储器装置150的编程操作或读取操作。根据实施例,处理器134可以运行固件来控制存储器系统110的全部操作。此处,固件可以被称为闪存转换层(FTL)。FTL可以作为主机102和存储器装置150之间的接口来执行操作。主机102可以通过FTL将写入操作和读取操作的请求传送到存储器装置150。
FTL可以管理地址映射操作、垃圾收集操作和损耗均衡操作。特别地,FTL可以加载、生成、更新或存储映射数据。因此,控制器130可以通过映射数据将从主机102输入的逻辑地址与存储器装置150的物理地址进行映射。由于地址映射操作,存储器装置150可以像通用存储装置一样执行读取操作或写入操作。通过基于映射数据的地址映射操作,当控制器尝试更新存储在特定页面中的数据时,由于闪速存储器装置的特性,控制器130可以对另一空页面编程更新的数据,并且可以使特定页面的旧数据无效(例如,将与更新的数据的逻辑地址对应的物理地址从先前特定页面更新成另一新编程页面)。此外,控制器130可以将新数据的映射数据存储到FTL中。
例如,控制器130使用处理器134,以在存储器装置150中执行主机102请求的操作。处理器134可以处理与来自主机102的命令对应的指令或命令。控制器B30可以执行前台操作作为与来自主机102的命令对应的命令操作,诸如与写入命令对应的编程操作、与读取命令对应的读取操作、与擦除命令(或丢弃命令)对应的擦除操作(或丢弃操作)以及与设置参数命令或带有设置命令的设置特征命令对应的参数设置操作。
再例如,控制器130可以通过处理器134对存储器装置150执行后台操作。通过示例而非限制的方式,对存储器装置150的后台操作包括将存储器装置150中的存储块152、154、156之中的任意存储块中存储的数据复制并存储在另一任意存储块中的操作(例如垃圾收集(GC)操作)。后台操作可以包括存储器装置150中的存储块152、154、156中的至少一个存储块中存储的数据与存储块152、154、156中的至少另一个存储块中的数据之间的移动或交换的操作(例如损耗均衡(WL)操作)。作为后台操作,控制器130可以使用处理器134来将存储在控制器130中的映射数据存储到存储器装置150中的存储块152、154、156中的至少一个,例如映射清除操作。用于检查存储器装置150中多个存储块152、154、156中的坏块的坏块管理操作是处理器134执行的其它后台操作示例中的一个。
根据实施例,图1中所示的控制器130和存储器144可以通过图2中描述的控制器130中的至少一个处理器134和至少一个存储器144来实施。
在存储器系统110中,控制器130执行与来自主机102的多个命令对应的多个命令操作。例如,当顺序地、随机地或可选地执行与多个编程命令对应的多个编程操作、与多个读取命令对应的多个读取操作和与多个擦除命令对应的多个擦除操作时,控制器130可以确定用于将控制器130连接至存储器装置150中的多个存储器管芯的多个通道(或通路)中哪个通道或通路适于或适用执行每个操作。控制器130可以通过所确定的通道或通路传送数据或指令以执行每个操作。在每个操作完成之后,存储器装置150中的多个存储器管芯可以分别通过相同的通道或通路传送操作结果。然后,控制器130可以将响应或确认信号传送至主机102。在实施例中,控制器130可以检查每个通道或每个通路的状态。响应于来自主机102的命令,控制器130可以基于每个通道或每个通路的状态来选择至少一个通道或通路,使得可以经由所选择的通道或通路来传递指令和/或操作结果与数据。
通过示例而非限制的方式,控制器130可以识别关于与存储器装置150中的多个存储器管芯相关联的多个通道(或通路)的状态。控制器130可以将每个通道或每个通路确定为忙碌状态、就绪状态、激活状态、空闲状态、正常状态和/或异常状态中的一种。确定通过哪个通道或通路传递指令(和/或数据)可以与物理块地址,例如指令(和/或数据)被传传递至哪个管芯中相关联。控制器130可以参考从存储器装置150传送的描述符。描述符可以包括描述有关存储器装置150的参数的块或页面,该参数的块或页面为具有预定格式或结构的数据。例如,描述符可以包括装置描述符、配置描述符和单元描述符。控制器130可以参考描述符来确定经由哪个(哪些)通道或通路交换指令或数据。
管理单元(未示出)可以包括在处理器134中。管理单元可以对存储器装置150执行坏块管理。管理单元可以发现存储器装置150中不满足进一步使用条件的坏存储块。此外,管理单元可以对坏存储块执行坏块管理。当存储器装置150是闪速存储器,例如NAND闪速存储器时,由于NAND逻辑功能的特性,在编程操作期间可发生编程失败。在坏块管理期间,可以将编程失败的存储块或坏存储块的数据编程到新的存储块中。坏存储块可能严重劣化具有3D堆叠结构的存储器装置150的利用效率和存储器系统110的可靠性。因此,可靠的坏块管理可以提高存储器系统110的性能。
图3示出根据本公开的实施例的存储器系统中的控制器。控制器130与主机102和存储器装置150协同工作。控制器130可以包括主机接口(I/F)132、闪存转换层(FTL)240、存储器接口(I/F)142和存储器144。
虽然未在图3中示出,但是图2中描述的ECC电路138可以包括在闪存转换层240中。在另一实施例中,ECC电路138可以被实施成包括在控制器130中或与控制器130相关联的单独的模块、电路或固件。
主机接口132可以管理从主机102接收的命令和数据。通过示例而非限制的方式,主机接口132可以包括缓冲器管理器52、事件队列54和命令队列56。命令队列56可以顺序地存储从主机102接收的命令和数据,并且以命令和数据被存储的顺序将命令和数据输出至缓冲器管理器52。缓冲器管理器52可以对从命令队列56传递的命令和数据进行分类、管理或调整。事件队列54可以顺序地传送事件以用于处理从缓冲器管理器52接收的命令和数据。
相同特性的多个命令或数据可以从主机102被连续传送至存储器系统110。可选地,不同特性的命令和数据可以在被混合或混杂之后被传送至存储器系统110。例如,用于读取数据的多个命令(即,读取命令)可以被传递至存储器系统110,或者用于读取数据的命令(即,读取命令)以及用于编程数据的命令(即,编程命令或写入命令)可以被交替地传送至存储器系统110。主机接口132可以将从主机102接收的命令和数据顺序地即,以接收次序存储至命令队列56。此后,主机接口132可以根据命令队列56中的命令和数据的特性来确定控制器130可以执行哪种类型的操作。主机接口132可以基于命令和数据的特性,确定命令和数据的处理顺序和优先级。根据命令和数据的特性,缓冲器管理器52被配置成确定命令和数据是否被存储在存储器144中,或者命令和数据是否被传递至闪存转换层240。事件队列54接收从缓冲器管理器52输入的、待由存储器系统110或控制器130响应于来自主机102的命令和数据而内部执行并处理的事件,以便以接收的顺序将事件传递至闪存转换层240。
根据实施例,闪存转换层240可以包括状态管理器(GC/WL)42、映射管理器(MM)44、主机请求管理器(HRM)46和块管理器48。主机请求管理器46可以管理事件队列54中的事件。映射管理器44可以管理映射数据。状态管理器42可以执行垃圾收集或损耗均衡。通过示例而非限制的方式,状态管理器42可以包括图1的数据I/O控制电路198。块管理器48可以对存储器装置150中的块执行命令或指令。
通过示例而非限制的方式,主机请求管理器46可以使用映射管理器44和块管理器48以根据从主机接口132传递的读取命令和编程命令以及事件处理请求。主机请求管理器46可以将查询请求发送至映射管理器44,用于查找与事件一起接收的逻辑地址对应的物理地址。主机请求管理器46可以将带有物理地址的读取请求发送到存储器接口142,以处理读取请求(即,处理接收的事件)。主机请求管理器46可以将编程请求(即,写入请求)发送到块管理器48,以将数据编程至存储器装置150中的特定页面(例如,无数据的页面)。然后,主机请求管理器46可以将与编程请求对应的映射更新请求传送到映射管理器44,以更新逻辑地址和物理地址的映射信息中与编程数据相关的项。
块管理器48可以将从主机请求管理器46、映射管理器44和/或状态管理器42传递的编程请求转换成用于存储器装置150的闪存编程请求,以管理存储器装置150中的闪存块。为了提高存储器系统110(参见图2)的编程性能,块管理器48可以收集编程请求并且将用于多平面和单触发编程操作的闪存编程请求发送至存储器接口142。块管理器48可以将多个闪存编程请求发送至存储器接口142以增强或最大化多通道和多向闪速控制器的并行处理。
块管理器48可以被配置成根据每个块中的有效页面的数量来管理存储器装置150中的块。例如,在需要空闲块时,块管理器48可以选择并擦除不具有有效页面的块。或者而且,作为示例,在确定需要垃圾收集(例如,空闲存储块的数量小于阈值)时,块管理器48可以选择包括最少有效页面的块。状态管理器42可以执行垃圾收集以将所选择的块的有效数据移动到空块(即,空闲存储块)或开放块,并且擦除所选择的块以使它成为空闲块(即,没有数据的空块)。状态管理器可以为下一编程操作获取足够的空闲块。如果块管理器48将关于待擦除的块的信息提供至状态管理器42,则状态管理器42可以检查待擦除的块的所有闪存页面以确定每个页面是否有效。例如,为了确定每个页面的有效性,状态管理器42可以识别每个页面的带外(OOB)区域中存储的逻辑地址。为了确定每个页面是否有效,状态管理器42可以将页面的物理地址与映射到从查询请求获得的逻辑地址的物理地址进行比较。状态管理器42为每个有效页面向块管理器48发送编程请求。当编程操作完成时,映射表可以通过映射管理器44的更新来更新。
映射管理器44可以管理逻辑到物理映射表。映射管理器44可以处理由主机请求管理器46或状态管理器42生成的诸如查询和更新的请求。映射管理器44可以将整个映射表存储在存储器装置150(例如,闪存/非易失性存储器)中,并且根据存储器144的存储容量高速缓存映射条目。当在处理查询请求或更新请求时发生映射高速缓存未命中时,映射管理器44可以将读取请求发送到存储器接口142以加载存储在存储器装置150中的相关映射表。当映射管理器44中的脏高速缓存块(例如,包括脏映射数据、脏映射表的脏高速缓存区域)的数量超过特定阈值时,编程请求可以被发送至块管理器48,使得在脏映射表可以存储在存储器装置150中之后产生干净高速缓存块。
当执行垃圾收集时,状态管理器42将有效页面复制到空闲块中,并且主机请求管理器46可以为相同逻辑地址的页面编程最新版本的数据,并且即时发出更新请求。当状态管理器42在有效页面的复制没有正常完成的状态下请求映射更新时,映射管理器44可以不更新映射表。这是因为如果状态管理器42请求映射更新并且稍后完成有效页面复制,则发出具有旧物理信息的映射请求。映射管理器44只有在最新映射表仍然指向旧物理地址时才可执行映射更新操作,以确保准确性。
存储器装置150可以包括多个存储块。根据一个存储器单元中可以存储或表示的位的数量,多个存储块可以被分类成不同类型的存储块,诸如单层单元(SLC)存储块或多层单元(MLC)存储块。此处,SLC存储块包括由每个存储一位数据的存储器单元实施的多个页面。SLC存储块可以具有高数据输入/输出(I/O)操作性能和高耐用性。MLC存储块包括由每个存储多位(例如,两位或更多位)数据的存储器单元实施的多个页面。在相同的空间中,MLC存储块可以比SLC存储块具有更大的存储容量。在存储容量方面,MLC存储块可以高度集成。在实施例中,存储器装置150可以利用诸如MLC存储块、三层单元(TLC)存储块、四层单元(QLC)存储块及其组合的MLC存储块来实施。MLC存储块可以包括由每个能够存储两位数据的存储器单元实施的多个页面。三层单元(TLC)存储块可以包括由每个能够存储三位数据的存储器单元实施的多个页面。四层单元(QLC)存储块可以包括每个能够存储四位数据的存储器单元实施的多个页面。在另一实施例中,存储器装置150可以利用包括由每个能够存储五位或更多位数据的存储器单元实施的多个页面的块来实施。
在本公开的实施例中,存储器装置150被实施为非易失性存储器,例如闪速存储器。闪速存储器可以为NAND闪速存储器或NOR闪速存储器。然而,存储器装置150还可以由以下中的至少一种来实施:相变随机存取存储器(PCRAM)、铁电随机存取存储器(FRAM)、自旋转移力矩随机存取存储器(STT-RAM)、自旋转移力矩磁性随机存取存储器(STT-MRAM)。
图4示出根据本公开的实施例的用于确定存储器系统中的数据属性的数据结构的示例。
参照图4,映射表346可以用作用于确定数据属性的数据结构的示例。存储器系统110中组件,诸如图1的数据输入/输出控制电路198或图3中的映射管理器44,可以生成并控制用于将由外部装置或主机102(参见图2至图3)使用的逻辑地址LA与指示数据在存储器装置150中的物理位置的物理地址PA相关联的映射表346。映射表346可以用于确定数据属性,并且可以包括访问计数AC以及逻辑地址LA和物理地址PA。
当执行与相应逻辑地址(例如,LA121)相关联的诸如读取、写入或擦除等命令对应的操作时,与特定逻辑地址(例如,LA121)对应的访问计数AC可以增加。根据实施例,当通过存储器系统110的内部操作以及响应于来自主机102的命令的操作访问数据时,访问计数AC可以增加。
根据实施例,可以在数据属性确定电路196确定与逻辑地址LA对应的数据属性之后重置访问计数AC。在预定时间(或参考时间)内可以增加与特定逻辑地址对应的访问计数AC。访问计数AC的改变可以指示访问与相应逻辑地址对应的数据的频率。例如,图1中的数据属性确定电路196确定特定逻辑地址的数据属性,并且数据属性传送电路194将确定的数据属性传送到主机102。当接收到数据属性时,可以初始化与相应逻辑地址对应的访问计数AC。
在将物理地址与逻辑地址相关联之后,可以增加与特定逻辑地址对应的访问计数AC。如果没有与相应逻辑地址相关联的物理地址,则相应逻辑地址的访问计数AC可以保持初始化状态。
根据实施例,当没有来自主机102的用于请求数据属性的命令时,即使物理地址与相应逻辑地址相关联,也可以不增加与特定逻辑地址对应的访问计数AC。例如,控制器130可以响应于来自主机102的用于请求数据属性的命令,开始增加访问计数AC。
根据实施例,访问计数AC可以响应于从主机102接收到的用于请求数据属性的命令分别与所有逻辑地址中的每一个对应地生成或者可以对应于与某些逻辑地址中的每一个。
可以单独地控制每个逻辑地址的访问计数AC。例如,假设逻辑地址LA001的访问计数AC可以是20,逻辑地址LA121的访问计数AC可以是100。如果访问计数AC大于或等于参考值(例如,50),可以将数据属性确定为热。如果访问计数AC小于参考值,可以将数据属性确定为冷。在本文中,可以将与逻辑地址'LA121'、'LA123'对应的数据属性确定为热,但是可以将与逻辑地址'LA001'、'LA002'、'LA122'对应的数据属性确定为冷。
用于确定数据属性的参考值可以动态地改变。用于确定数据属性的参考值可以固定。当参考值可以改变时,参考值可以根据增加访问计数(AC)的时段而变化。例如,与逻辑地址对应的访问计数增加一星期时的参考值可以大于与逻辑地址对应的访问计数增加一天时的参考值。
如图1至图3所示的存储器系统110可以参考与逻辑地址LA对应的访问计数AC,并且可以确定与逻辑地址LA对应的数据属性。存储器系统110可以确定逻辑地址LA的数据属性,然后将与逻辑地址LA对应的数据属性传送到主机102。
图5示出根据本公开的实施例的主机102。
参照图5,主机102可以包括内核逻辑210、数据输入/输出(I/O)控制电路220、应用数据确定电路230、网络收发器224和系统接口222。
数据输入/输出控制电路220可以被配置为控制输入到主机102或从主机102输出的数据。数据输入/输出控制电路220可以与系统接口222和网络收发器224接合。系统接口222从与主机102联接的另一装置(例如,存储器系统110)接收数据,或将数据传送到另一装置。例如,系统接口222可以控制包括主机102和至少一个存储器系统110的数据处理系统中关于数据和/或命令的传送和接收。根据实施例,系统接口222可以支持用于串行数据通信和/或并行数据通信的协议。
系统接口222可以支持同步串行通信方案。系统接口222可以支持异步串行通信方案。通过示例而非限制的方式,在同步串行通信方案中,系统接口222可以使数据线的操作与时钟信号线的操作同步,并且通过串行总线连接的装置可以共享公共时钟信号。该方案可能是直观的,并且通常可以比其它方案工作得更快。但是,此方案需要另外一条线。同步串行通信的代表性示例可以包括串行外围接口(SPI)协议和例如内部集成电路(I2C)协议的串行通信协议。在可以由系统接口222支持的异步串行通信方案中,可以在没有外部时钟信号的情况下传送数据,并且系统接口22可以稳定地将数据传送到另一装置或从另一装置接收数据。异步串行通信方法的代表性示例是通用异步接收器和发送器(UART)协议。
与数据输入/输出控制电路220可操作地接合的网络收发器224可以执行将主机102连接到通信网络或电信网络的功能。主机102可以通过网络收发器224与另一主机或网络服务器交换数据。通过示例而非限制的方式,网络收发器224可以支持作为用于在计算装置或主机与另一计算装置或另一主机之间的局域网(LAN)或广域网(WAN)中实现数据通信的协议的传输控制协议/互联网协议(TCP/IP)。
数据输入/输出控制电路220可以通过系统接口222从存储器系统110接收数据属性。因为来自存储器系统110的数据属性对应于逻辑地址LA,所以内核逻辑210可以确定哪个应用或程序生成或包含与逻辑地址LA相关联的数据。
如果确定通过数据输入/输出控制电路220接收的数据属性链接到构成特定应用或程序的数据,则应用数据确定电路230可以将数据属性与图6中描述的用于管理应用数据的数据结构进行匹配。
主机102可以安装、使用、运行或管理包括操作系统的多个应用。存储器系统110仅可以存储主机102指示或请求存储的数据。然而,存储器系统110可能无法识别哪个应用包含主机102指示存储的数据。因此,当存储器系统110可以将与逻辑地址LA对应的数据属性传送到主机102时,主机102可以确定哪个应用或操作系统包含与逻辑地址LA对应的数据,该逻辑地址LA与来自存储器系统110的数据属性相关联。
主机102使用的应用可以包括至少一个文件或多个数据结构。例如,主机102可以请求存储器系统110中用于特定应用的可用空间,并且主机102可以指示存储器系统110将由应用生成的数据存储在存储器系统110中。主机102可以为特定应用分配至少一个逻辑地址LA,例如为特定应用分配的空间的大小。主机102可以接收与从存储器系统110接收的逻辑地址LA对应的数据属性。主机102可以确定哪个应用包含与逻辑地址LA对应的数据,该逻辑地址LA与从存储器系统110接收的数据属性相关联。
图6示出根据本公开的实施例的用于对主机中的数据属性进行分类的数据结构的示例。
参照图6,图5的主机102生成用于将与数据参考编号(DATA REF.)对应的数据属性DP与应用APPL(APPL.)相关联的数据表342。此处,数据属性DP可以与在图1至图5中描述的数据属性相匹配,并且可以包括热(H)或冷(C)。主机102使用的多个应用可以基于应用的名称而分类或彼此区分。在图6中,基于应用ID编号APP-ID-0至APP-ID-8,可以将多个应用彼此区分。根据实施例,主机102如何区分每个应用彼此可能不同。
在实施例中,每个应用可以具有至少一个数据参考编号(DATA REF.)。例如,第一应用APP-ID-0可以包括多个数据参考编号DR001、DR002、DR003。例如,数据参考编号可以对应于第一应用APP-ID-0请求的来自主机102的存储空间。可以假设第一应用APP-ID-0需要来自主机的存储空间10MB,并且分配给主机102使用的一个逻辑地址的大小为500KB。在这种情况下,主机102可以将20个逻辑地址分配给第一应用APP-ID-0。20个逻辑地址可以对应于分配给第一应用APP-ID-0的20个数据参考编号(DATA REF.)。
根据实施例,确定分配给主机102使用的应用的数据参考编号的方法可以变化。应用可以请求与主机102使用的文件系统对应的数据参考编号(DATA REF.)。文件系统可以控制如何存储和检索数据。用于管理信息组及其名称的结构和逻辑规则可以被称为是“文件系统”。另外,根据实施例,应用可以生成多个文件和多个数据结构。主机102可以分配对应于应用中包括的文件和数据结构的至少一个数据参考编号(DATA REF.)。
可以以与主机102使用的文件系统对应的各种方式来确定数据参考编号(DATAREF.)。在实施例中,应用请求的或主机102给出的数据参考编号(DATA REF.)可以对应于主机102与存储器系统110之间共享的逻辑地址。
主机102可以从存储器系统110接收与逻辑地址对应的数据属性(例如,热、冷)。主机102可以确定哪个应用包含与逻辑地址对应的数据,以及应用中哪个数据参考编号与逻辑地址匹配。此后,主机102中的应用数据确定电路(参照图5)可以将数据属性与数据参考编号相关联,以便生成数据表342。
图7示出根据本公开的实施例的如何在网络服务器104、主机102和存储器系统110之间传送和接收数据属性。
参照图7,可以在网络服务器104、主机102和存储器系统110之间传送和接收数据属性。存储器系统110可以如图1至图3所示实施。主机102可以如图2至图3和图5所示实施。
存储器系统110可以基于在主机102和存储器系统110之间使用的逻辑地址来传送和接收数据属性。例如,存储器系统110可以将与逻辑地址对应的数据属性传送到主机102。当主机102将包括数据、逻辑地址和数据属性的命令传送到存储器系统110时,存储器系统110可以识别与逻辑地址对应的数据属性。存储器系统110可以确定数据被编程的存储器装置150的物理位置(即,物理地址)。
可以基于应用在主机102与网络服务器104之间传送和接收数据属性。如图5所示,主机102可以将从存储器系统110接收的与逻辑地址对应的数据属性与应用相关联。例如,当主机102从网络服务器104下载特定应用时,主机102可以接收与该应用中的数据相关联的数据属性。主机102可以检查关于应用中的多个文件和多个数据结构的数据属性,然后将数据属性和数据与写入命令一起传送到存储器系统110。在这种情况下,主机102可以将与为该应用分配的逻辑地址对应的数据属性传送到存储器系统110。
在实施例中,主机102可以将从存储器系统110接收的数据属性传送到网络服务器104。主机102可以基于应用重新组织(或重新配置)与逻辑地址对应的数据属性,并且基于该应用将数据属性传送到网络服务器104。
内部确定关于在存储器系统110中编程的数据的数据属性以及响应于该数据属性确定存储数据的位置都可以提高存储器系统110的操作性能(例如寿命和可靠性)。在实施例中,由存储器系统110确定的数据属性可以通过主机102被传送到网络服务器104。网络服务器104可以将数据连同数据属性一起传送到多个主机或多个装置中。例如,数据属性可以包括在可以经由网络从网络服务器104分发的应用中,并且包括数据和数据属性的应用可以被传递到多个主机102中。因为当主机102下载应用并且可以将应用存储在存储器系统110中时可以共享数据属性,所以当相应数据被编程在存储器系统110中时,存储器系统110可以识别并使用数据属性。与不能识别编程数据的属性的情况不同,本实施例可以提供一种存储器系统110,该存储器系统能够基于属性存储数据并且减少在一定时间内确定数据的属性所需的资源。而且,在设计应用时,可以基于在预定时间期间包括非易失性存储装置的存储器系统110中的访问频率来确定数据属性,而不是预测数据属性。数据属性可以从使用或采用相同应用的多个装置收集,诸如主机102,并且可以对收集的属性数据进行平均以概括关于该应用的数据属性。
在实施例中,可以利用多个主机102来确定与应用或计算机程序中包含的数据对应的数据属性。云计算可以用于确定数据属性,使得每个存储器系统可以减少监控数据访问模式和基于数据访问模式确定数据属性所需的资源。由于可以避免资源浪费,因此可以在存储器系统110中执行更有效的操作以提高存储器系统110的性能。
图8示出根据本公开的实施例的存储器系统110。
参照图8,存储器系统110可以包括控制器130和存储器装置150。存储器系统110可以从外部装置(例如,图1至图3、图5和图7的主机102)接收数据属性。与逻辑地址对应的数据属性被传送,并且存储器系统110可以基于数据属性来确定数据在存储器装置150中的与逻辑地址对应的物理位置。例如,存储器装置150可以包括多个存储块40_1。当多个存储块40_1之中的存储块可以存储具有相同属性的数据并且具有不同属性的数据被存储在不同的存储块中时,可以延长存储器装置150的寿命并且可以提高操作稳定性。当控制器130接收数据属性时,控制器130不需要得出存储在存储器装置150中的数据属性。也就是说,响应于来自外部装置的编程命令和数据属性,控制器130可以选择存储器装置150中的、被分配用于存储具有特定数据属性的数据的存储块。控制器130可包括数据接收电路188,用于接收数据;以及存储装置确定电路186,用于确定数据在存储器装置150中存储的物理位置。
图1中的存储器系统110可以确定关于来自外部装置(例如,主机102)的数据的数据属性,并且将该数据属性传送到主机102。与图1中的存储器系统110不同,图8中的存储器系统110可以基于来自主机102的数据属性确定存储数据的物理位置。
在实施例中,图1和图8中的存储器系统110可以利用单个装置来实施。例如,存储器系统110可以确定数据属性并且将数据属性输出到外部装置,或者可以响应于来自主机102的命令,基于输入的数据属性来存储输入的数据。
根据实施例,响应于主机102下载的应用的请求,存储器系统110可以确定关于应用中包含的数据的数据属性,并且将该数据属性传送到经由网络分发应用的网络服务器104(参见图7)。例如,应用可以包括用于收集关于其中所包含的数据的数据属性的程序代码。在通过主机102输入的应用存储在存储器系统110中之后,可以运行程序代码以使存储器系统110监控与应用中包含的数据有关的数据访问模式。可以基于数据访问模式来确定数据属性。存储器系统110可以将数据属性传送到主机102,并且主机102可以将数据属性传送到网络服务器104。在存储器系统110和网络服务器104之间传送数据属性的进程可以以如图7中描述的方法执行。
图9是示出根据本公开的实施例的网络服务器104。
参照图9,网络服务器104可以包括内核逻辑310、数据输入/输出(I/O)控制电路320、网络收发器322和应用存储装置330。
数据输入/输出控制电路320可以控制输入到网络服务器104或从网络服务器104输出的数据。此外,数据输入/输出控制电路320可以与网络收发器322可操作地联接和接合。网络收发器322可以执行将网络服务器104连接到通信网络和电信网络的功能。网络服务器104可以通过网络收发器322与主机或另一网络服务器交换数据。例如,网络收发器322可以支持用于在局域网(LAN)或广域网(WAN)中实现网络服务器104和计算装置或主机102之间的数据通信的诸如TCP/IP的协议。详细地,网络收发器322可以经由局域网(LAN)或广域网(WAN)连接到图5中的主机102的网络收发器224,以将数据或应用传送到主机102并且从主机102接收数据或应用。
当图1至图3、图5和图7中所示的主机102从网络服务器104请求应用时,数据输入/输出控制电路320可以将该应用传递到主机102。该应用可以包括作为便于通过局域网(LAN)或广域网(WAN)传递的格式的至少一个文件或数据结构。
应用可以包括应用中所包含、生成或包括的数据的数据属性。此外,可以定期地或根据事件来更新应用中的数据属性。
例如,应用可以包括程序文件和数据文件。另外,应用可以包括用于设置执行应用所需的资源的信息。该资源可以包括存储空间、文件系统或处理器性能。
当应用最初发布和分发时,该应用中可没有数据属性。用于确定应用中包含的数据属性的信息可能不够。然而,在应用被分发给多个用户,即,多个用户使用的多个计算装置或多个主机102之后,分发应用的网络服务器104可以从多个主机102收集数据属性。当网络服务器104中的数据输入/输出控制电路320可以从多个主机102收集数据属性时,内核逻辑310可以确定应用所包含或生成的数据的数据属性。
当确定用户使用的计算装置或存储器系统110中的数据属性时,数据属性可以根据使用该存储器系统110和主机102的用户的操作环境或数据访问模式或数据使用模式而变化。因此,因为从更多数量的主机102收集更多数据属性,网络服务器104可以更准确地确定数据属性。
在实施例中,网络服务器104可以将数据属性确定为数值。例如,可以将关于第一数据的数据属性确定为参考值(例如,0),可以将关于第二数据的数据属性确定为+3,关于第三数据的数据属性是+5,以及关于第四数据的数据属性是-2。因为每个计算装置或每个主机102在不同的操作环境或条件下操作,所以网络服务器104可以向主机102提供包括数值的数据属性,并且主机102可以根据其操作环境解释数值的数据属性。主机102可以基于来自网络服务器104的数值的数据属性来确定分类值的数据属性,诸如热或冷。
应用存储装置330不仅可以存储应用中包含的文件和数据结构,还可以存储构成应用的数据的数据属性。另外,因为数据属性可以根据应用的版本而不同,所以可以基于应用的版本来存储数据属性。网络服务器104可以传送关于与从主机102请求的版本信息对应的应用的数据属性。
根据实施例,应用存储装置330可以存储多个应用中包含的数据属性。内核逻辑310和数据输入/输出控制电路320可以将多个应用提供至多个计算装置或主机102,并且确定被提供至多个主机102的应用的版本。数据属性可以被提供至每个主机102,并且可以基于分发给主机102的应用及其版本来区分。
内核逻辑310和数据输入/输出控制电路320可以向多个主机102通知应用的新版本。应用的新版本可以包括数据属性。
图10示出根据本公开的实施例的用于对网络服务器104中的数据属性进行分类的数据结构的示例。
参照图10,网络服务器104可以将多个文件PF001、…、PF0006、…、PF012存储在应用属性表344中。每个文件可以包括至少一个数据编号DATA#。在实施例中,数据编号DATA#可以对应于存储器系统110和主机102之间使用的逻辑地址LA。网络服务器104可以将应用所需的存储空间划分为每个对应于在文件系统中设置的最小单位的多个部分,以生成数据编号DATA#并且将数据编号DATA#分配给多个部分中的每一个。每个应用所需的存储空间可不同。
即使在相同的应用中,根据主机102或计算装置中使用的操作系统或文件系统来指定数据的各种方法也可存在差异。每个应用可以包括不同的版本,每个版本对应于主机102或计算装置使用的不同的操作系统。此外,可以将与数据属性相关联的数据编号DATA#不同地分配给应用的每个版本。
例如,多个主机102可以将关于应用的特定版本的数据属性单独地传送到网络服务器104。网络服务器104可以通过根据诸如Window版本或Mobile版的应用版本对数据属性进行分类来从多个主机102收集数据属性,这些应用版本可以描述每个主机102的操作环境。
在图10中,对于应用的每个版本,文件可以具有不同的特性(例如,名称或大小),并且网络服务器104可以基于分配给文件的多个数据编号DATA#将数据属性DP与文件相关联,生成应用属性表344。在应用属性表344中,假设当应用的版本相同时,应用中包含的数据可以被设置为基本相同的格式或数据结构,并且存储在存储器系统中。
例如,存储在网络服务器104中的特定应用可以是单个压缩或编译的文件。当特定应用可以被传递到特定主机102并且存储在与特定主机102接合的存储器系统110中时,假设特定应用需要1MB的存储空间并且可以分配10个逻辑地址。当相应应用在被递送到另一主机和另一存储器系统之后存储在存储器系统110中时,可需要相同的存储空间,并且可以分配相同数量的逻辑地址。然而,在每个存储器系统110中,针对特定应用的与10个逻辑地址对应的数据的物理位置可以不同。此外,虽然每个主机可以分配相同数量的逻辑地址(例如10个),但是分配的逻辑地址的范围(例如1-10、31-40或201-210)可以不同。因此,网络服务器104可以不存储与特定逻辑地址对应的数据属性DP。相反,网络服务器104可以使用数据编号DATA#来存储数据属性DP。主机102可以将数据编号DATA#转换为逻辑地址,使得与数据编号DATA#对应输入的数据属性DP可以与逻辑地址相关联。
应用属性表344可以存储关于数据属性DP的诸如热(H)或冷(C)分类值。然而,根据实施例,如以上参考图9所描述,可以将数据属性DP作为示出相对差异的数值存储。当数据属性DP作为数值被存储时,主机102可以基于操作环境将数值转换为分类值。
根据实施例,存储器系统110可以执行将作为数值(0、1,或2)而存储的数据属性DP改变为诸如热(H)和冷(C)的分类值的操作。因为假设控制器130可以更准确地识别存储器系统110内部的操作环境,所以存储器系统110可以将数据属性DP的数值转换为分类值,从而提高性能。
图11是示出根据本公开的实施例的操作数据处理系统中的主机的方法的流程图。
参照图11,操作主机的方法可以包括:向网络服务器请求应用(S1002);接收从网络服务器传递的应用(S1004);以及检查是否已经确定关于该应用中包含的数据的数据属性(S1006)。主机可以从网络服务器接收应用,并且将该应用存储在与主机可操作地接合的存储器系统中。在将应用存储在存储器系统中的进程中,主机或存储器系统可以检查从网络服务器接收的应用是否包括关于该应用所包含的数据的数据属性的信息。
当检查到来自网络服务器的应用包括关于数据属性的信息(S1006,是)时,主机可以将数据属性传送到存储器系统(S1008)。当数据属性通过主机被传送到存储器系统时,存储器系统可以使用数据属性来确定应用中包含的数据在存储器系统中存储的位置。与数据简单存储在存储器系统中而不论数据属性如何的另一种情况相比,基于数据属性将数据存储在存储器系统中的情况可以提供更好的性能。
当检查到来自网络服务器的应用不包括数据属性时(S1006,否),主机可以向网络服务器请求包括数据属性的应用的版本(S1010)。网络服务器可以响应于主机的请求将包括数据的数据属性的应用的版本传送到主机。然而,根据实施例,当网络服务器不具有包括数据属性的应用的版本时,网络服务器可以向主机请求数据属性或向主机查询关于应用所包含的数据的数据属性。
当从网络服务器接收的应用不包括数据属性时(S1006,否),主机可以向网络服务器查询网络服务器是否需要数据属性。响应于网络服务器的响应,主机可以检查数据属性并且确定是否将数据属性传送到网络服务器。
图12示出根据本公开的实施例的操作数据处理系统中的存储器系统的方法的流程图。
参照图12,操作存储器系统的方法可以包括接收与编程请求一起传送的数据(S1022),检查关于与编程请求一起接收的数据的数据属性(S1024),基于数据属性确定非易失性存储器装置中的物理位置(S1026),并且将数据存储在物理位置(S1028)。存储应用的非易失性存储器装置可以包括图1至图3所示的多个存储块。多个存储块可以包括针对存储热数据而分配的存储块和针对存储冷数据而分配的的另一存储块。例如,当主机将写入请求(或编程请求)、数据和该数据的数据属性一起传送时,存储器系统可以基于该数据属性确定存储该数据的存储块。
当数据属性没有与来自主机的数据一起输入时(步骤S1024中为“否”),存储器系统可以将数据存储在非易失性存储器装置中的临时(或任意)位置中(S1030)。在编程操作中,存储器系统不识别关于数据的数据属性。存储器系统可以监控对数据的访问(或检查数据访问模式)以确定数据属性(S1032)。例如,存储器系统可以执行图1中描述的操作来监控并确定关于数据的数据属性。
根据实施例,响应于从主机或计算装置输入的请求或命令,存储器系统可以监控对存储的数据的访问以确定数据属性。
在确定数据属性之后,存储器系统可以将数据属性传送到主机或计算装置(S1034)。可选地,存储器系统可以响应于从主机或计算装置接收的指令将数据属性传送到主机或计算装置。
图13是示出根据本公开的实施例的操作网络服务器的方法的流程图。
参照图13,操作网络服务器的方法可以包括接收关于经由网络联接的多个应用之中的应用中包括的数据的反馈(S1052),确定从多个装置接收的数据属性的平均值或中值(S1054),将确定的值与应用中包括的数据相关联以生成应用的更新数据(S1056),并且通过网络向多个装置通知应用的更新数据(S1058)。
网络服务器可以通过诸如局域网(LAN)或广域网(WAN)的网络与多个计算装置(或多个主机)可操作地联接。网络服务器可以响应于来自多个计算装置的请求传送应用。在接收到应用之后,多个计算装置可以将关于应用中包含的数据的数据属性提供回至网络服务器。网络服务器可以从多个计算装置接收数据属性(S1052)。
因为多个计算装置可以处于不同的操作环境,所以来自多个计算装置的数据属性可以彼此不同。在从多个计算装置接收到数据属性之后,网络服务器可以通过预定算法确定数据属性(S1054)。例如,预定算法可以是平均值查找算法或中值查找算法。根据实施例,可以通过能够计算多个数据的统计意义的算法来确定更接近一般操作环境的数据属性。例如,统计意义可以包括平均值(在数值的情况下)或典型值(在热、暖或冷属性的情况下)。
数据属性的偏差可以根据多个主机、计算装置或存储器系统的操作环境而变化。然而,随着时间的推移,确定数据属性的次数增加。然后,因为很可能多个主机、计算装置或存储器系统可以在一般操作环境而不是特殊操作环境下确定数据属性,所以偏差可以逐渐减小。
网络服务器可以定期地或基于事件收集关于数据属性和数据的信息,确定应用中包含的数据的数据属性,并且生成包括数据属性的诸如表的数据结构。此后,网络服务器可以通过将关于数据属性的数据结构包括在应用的更新版本中来生成应用的更新数据(即,应用的新版本)(S1056)。
网络服务器可以向多个计算装置通知是否生成应用更新数据(即,应用的新版本)(S1058)。当多个计算装置请求应用的新版本时,网络服务器可以传送包括数据属性的应用的更新版本。
在从网络服务器接收到更新应用所需的数据之后,多个计算装置可以更新存储在存储器系统中的应用。为了更新应用,存储器系统可以基于数据的数据属性确定存储构成应用的数据的物理位置,该数据与更新应用的数据一起传递。此处,通过图7所示的实施例可以理解将数据属性从网络服务器传送到存储器系统的进程。
根据本公开的实施例,存储器系统可以接收来自主机的数据与数据的属性,并且基于数据的属性将数据存储在非易失性存储块中而无需确定每个数据的属性,从而可以提高存储器系统中的编程操作的性能,并且可以延长非易失性存储块的寿命。
在本公开的实施例中,存储器系统可以基于物理位置确定存储在非易失性存储块中的数据属性,将数据的属性与数据的逻辑地址相关联,并且经由网络与其它电气装置共享与逻辑地址对应的数据的属性,以便提高提供基于网络或基于云的应用服务的电气装置的操作效率。
另外,本公开的实施例可以将数据属性应用于由应用执行的操作,而无需执行用于确定安装了该应用的电气装置中的数据的属性的附加操作。
虽然已经针对具体实施例示出并描述了本教导,但是对于本领域技术人员显而易见的是,根据本公开,在不脱离如下面权利要求所限定的本公开的精神和范围的情况下,可以进行各种改变和修改。

Claims (18)

1.一种存储器系统,包括:
存储器装置,包括多个存储块;以及
控制器,确定关于所述多个存储块之中的存储块中存储的数据的数据属性,将所述数据属性与所述数据的逻辑地址相关联,并且将与所述逻辑地址相关联的所述数据属性传送到外部装置。
2.根据权利要求1所述的存储器系统,其中所述数据属性是基于在将所述数据存储在所述存储器装置中之后的设定时段内访问所述数据的频率来确定的;并且
其中所述数据属性被确定为热属性和冷属性中的一种。
3.根据权利要求1所述的存储器系统,其中所述数据属性是基于在从所述外部装置输入外部命令之后的设定时段内访问所述数据的频率来确定的,并且
其中所述数据属性被确定为热属性和冷属性中的一种。
4.根据权利要求1所述的存储器系统,其中所述控制器对与所述逻辑地址对应的读取操作、写入操作和擦除操作的数量进行计数,并且基于计数的数量来确定所述数据属性。
5.根据权利要求4所述的存储器系统,其中当所述计数的数量等于或大于参考值时,所述控制器确定所述数据属性为热,以及当所述计数的数量小于所述参考值时,所述控制器确定所述数据属性为冷。
6.根据权利要求1所述的存储器系统,其中所述控制器从所述外部装置接收用于查询与所述逻辑地址相关联的所述数据属性的命令,并且响应于所述命令来传送所述数据属性。
7.根据权利要求1所述的存储器系统,其中所述控制器生成元数据,所述元数据包括:来自所述外部装置的逻辑地址,与所述逻辑地址相关联的物理地址,以及指示利用所述逻辑地址执行的读取操作、写入操作和擦除操作的数量的访问计数。
8.一种存储器系统,包括:
存储器装置,包括基于数据属性的类型而分配的多个存储块;以及
控制器,当来自外部装置的命令包括数据、所述数据的逻辑地址以及所述数据的数据属性时,基于所述数据的数据属性将所述数据存储在所述多个存储块之中的存储块中。
9.根据权利要求8所述的存储器系统,其中当所述命令不包括所述数据的所述数据属性时,所述控制器确定所述数据属性并且将所述数据属性传送到所述外部装置。
10.根据权利要求9所述的存储器系统,其中所述控制器基于指示利用所述逻辑地址执行的读取操作、写入操作和擦除操作的数量的访问计数来确定所述数据属性。
11.根据权利要求9所述的存储器系统,其中所述控制器从所述外部装置接收用于查询与所述逻辑地址相关联的所述数据属性的命令,并且响应于所述命令将所述数据属性传送到所述外部装置。
12.一种用于操作存储器系统的方法,包括:
从外部装置接收编程请求、数据、逻辑地址以及关于所述数据的数据属性;
确定用于将所述数据存储在所述存储器装置中的存储块中的、基于所述数据属性分配的物理位置;
将所述数据编程在所述物理位置;以及
将所述逻辑地址与所述物理位置相关联。
13.根据权利要求12所述的方法,进一步包括:
从所述外部装置接收用于查询与所述逻辑地址对应的所述数据属性的命令;以及
响应于所述命令,将所述数据属性传送到所述外部装置。
14.根据权利要求13所述的方法,其中所述数据属性是基于在将所述数据存储在所述存储器装置中之后的设定时段内访问所述数据的频率来确定的;并且
其中所述数据属性被确定为热属性和冷属性中的一种。
15.根据权利要求13所述的方法,其中所述数据属性是基于在从所述外部装置输入外部命令之后的设定时段内访问所述数据的频率来确定的,并且
其中所述数据属性被确定为热属性和冷属性中的一种。
16.根据权利要求12所述的方法,进一步包括:
对与所述逻辑地址对应的的读取操作、写入操作和擦除操作的数量进行计数;并且
基于计数的数量确定所述数据属性。
17.根据权利要求16所述的方法,其中所述当计数的数量等于或大于参考值时,所述数据属性为热,以及当所述计数的数量小于所述参考值时,所述数据属性为冷。
18.根据权利要求16所述的方法,进一步包括:
生成元数据,所述元数据包括从所述外部装置输入的所述逻辑地址、与所述逻辑地址相关联的物理地址,以及指示利用所述逻辑地址执行的读取操作、写入操作和擦除操作的数量的访问计数。
CN201911296177.XA 2019-05-15 2019-12-16 共享存储器系统、数据处理系统或网络服务器的数据属性的设备和方法 Withdrawn CN111949205A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190056863A KR20200132043A (ko) 2019-05-15 2019-05-15 네트워크 서버, 데이터 처리 시스템 또는 메모리 시스템에서 데이터의 속성을 공유하는 방법 및 장치
KR10-2019-0056863 2019-05-15

Publications (1)

Publication Number Publication Date
CN111949205A true CN111949205A (zh) 2020-11-17

Family

ID=73231614

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911296177.XA Withdrawn CN111949205A (zh) 2019-05-15 2019-12-16 共享存储器系统、数据处理系统或网络服务器的数据属性的设备和方法

Country Status (3)

Country Link
US (1) US20200363991A1 (zh)
KR (1) KR20200132043A (zh)
CN (1) CN111949205A (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11561857B2 (en) * 2021-05-11 2023-01-24 Robert Bosch Gmbh Method for the secured storing of a data element to be stored by a computer program in an external memory
CN114741336B (zh) * 2022-06-09 2022-11-25 荣耀终端有限公司 内存中Host侧缓存区调整方法、电子设备及芯片系统

Also Published As

Publication number Publication date
KR20200132043A (ko) 2020-11-25
US20200363991A1 (en) 2020-11-19

Similar Documents

Publication Publication Date Title
CN109901794B (zh) 使用主机空闲来操作垃圾收集的设备和方法
US11372564B2 (en) Apparatus and method for dynamically allocating data paths in response to resource usage in data processing system
US20210157514A1 (en) Apparatus and method for improving write throughput of memory system
US20200042225A1 (en) Apparatus and method for controlling metadata for engagement of plural memory systems
CN113900586A (zh) 存储器系统及其操作方法
CN110780810B (zh) 用于彼此接合多个存储器系统以存储数据的设备和方法
CN112148632A (zh) 用于改善存储器系统的输入/输出吞吐量的设备和方法
US20200310677A1 (en) Apparatus and method for controlling write operation of memory system
US11681633B2 (en) Apparatus and method for managing meta data in memory system
CN110780809B (zh) 针对多个存储器系统的接合管理元数据的设备和方法
US11822426B2 (en) Memory system, data processing system and operation method of the same
US11327659B2 (en) Apparatus and method for improving input/output throughput of memory system
CN111752467A (zh) 传送存储器系统中的垃圾收集状态信息的设备和方法
CN111949205A (zh) 共享存储器系统、数据处理系统或网络服务器的数据属性的设备和方法
US11354051B2 (en) Memory system for efficiently managing memory block and operating method thereof
US11200960B2 (en) Memory system, data processing system and operation method of the same
CN110781098B (zh) 用于彼此接合多个存储器系统的设备和方法
US11429282B2 (en) Apparatus and method for improving Input/Output throughput of memory system
US11379378B2 (en) Apparatus and method for improving input and output throughput of memory system
US11385998B2 (en) Memory system, data processing system and operation method of the same
US11099757B2 (en) Apparatus and method for determining characteristics of memory blocks in a memory system
CN112015670A (zh) 传送存储器系统中的映射信息的设备
CN112230841A (zh) 提高存储器系统的输入/输出吞吐量的设备和方法
CN113495689A (zh) 用于控制存储器系统的输入/输出吞吐量的设备和方法
CN113050879A (zh) 管理存储器系统中编程操作时间和写入延迟的设备和方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication

Application publication date: 20201117

WW01 Invention patent application withdrawn after publication