CN110489056A - 控制器以及包括该控制器的存储器*** - Google Patents

控制器以及包括该控制器的存储器*** Download PDF

Info

Publication number
CN110489056A
CN110489056A CN201811475812.6A CN201811475812A CN110489056A CN 110489056 A CN110489056 A CN 110489056A CN 201811475812 A CN201811475812 A CN 201811475812A CN 110489056 A CN110489056 A CN 110489056A
Authority
CN
China
Prior art keywords
credit
request
host apparatus
buffer
controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201811475812.6A
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
Hynix Semiconductor 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 Hynix Semiconductor Inc filed Critical Hynix Semiconductor Inc
Publication of CN110489056A publication Critical patent/CN110489056A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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
    • 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/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/0656Data buffering 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/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/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种控制器,该控制器针对从多个主机装置接收的请求给定优先级,并根据优先级处理请求。该控制器包括:信用发生单元,其被配置为基于从各个主机装置接收的请求的数量来生成待提供至各个主机装置的信用;缓冲器管理器,其被配置为基于信用来将优先级给定至各个主机装置;以及缓冲存储器,其被配置为根据给定至主机装置的优先级来存储请求。

Description

控制器以及包括该控制器的存储器***
相关申请的交叉引用
本申请要求于2018年5月15日提交的申请号为10-2018-0055465的韩国申请的权益,其通过引用整体并入本文。
技术领域
各种实施例总体涉及一种电子装置,更具体地涉及一种包括控制器和非暂时性机器可读存储介质的电子装置。
背景技术
存储器***可以被配置成响应于来自外部装置的写入请求来存储从外部装置提供的数据。而且,存储器***可以被配置成响应于来自外部装置的读取请求来将所存储的数据提供至外部装置。作为能够处理数据的电子装置的外部装置可以包括计算机、数码相机或移动电话。存储器***可以在外部装置内操作,或者可以作为联接至外部装置的单独部件而操作。
由于不存在机械驱动部件,因此使用存储器装置的存储器***提供优良的稳定性和耐用性、高信息访问速度以及低功耗的优点。具有这些优点的存储器***包括通用串行总线(USB)存储器装置、具有各种接口的存储卡、通用闪存(USF)装置以及固态驱动器(SSD)。
发明内容
各种实施例涉及一种存储器***,其基于与请求相对应的操作的工作负载特性来可变地应用提取主机装置的请求的顺序。
在实施例中,提供一种控制器,其针对从多个主机装置接收的请求给定(give)优先级,并根据优先级处理请求。控制器可以包括:信用(credit)发生单元,其被配置成基于从各个主机装置接收的请求的数量来生成待提供至各个主机装置的信用;缓冲器管理器,其被配置成基于信用来将优先级给定至各个主机装置;以及缓冲存储器,其被配置成根据给定至主机装置的优先级来存储请求。
在实施例中,缓冲器管理器基于信用和请求的属性来确定各个主机装置的优先级。
在实施例中,根据与请求相对应的操作是读取操作还是写入操作来判定属性。
在实施例中,一种存储器***可以包括:控制器,其被配置成从多个主机装置接收请求;以及非易失性存储器装置,其被配置成从控制器接收与请求相对应的命令,并且根据控制器的控制来执行与命令相对应的操作。控制器可以包括:信用发生单元,其被配置成基于从各个主机装置接收的请求的数量来生成待提供至各个主机装置的信用;控制单元,其被配置成基于信用来确定待传递至非易失性存储器装置的命令的优先级;和存储器控制单元,其被配置成基于设置的优先级将命令传递至非易失性存储器装置。
在实施例中,控制部件基于信用和请求的属性来确定各个主机装置的优先级。
在实施例中,根据与请求相对应的操作是读取操作还是写入操作来判定属性。
在实施例中,提供一种数据处理***,其包括:多个主机装置;以及存储器***,包括存储器装置和控制器,该控制器被配置成从多个主机装置接收请求并且控制存储器装置执行与请求相对应的操作,控制器包括具有多个槽的缓冲存储器,并且进一步被配置成:基于缓冲存储器的访问模式来确定各个主机装置的信用;和根据基于信用确定的顺序以及多个缓冲存储器槽之中的可用缓冲存储器槽,从主机装置提取请求以将所提取的请求存储在缓冲存储器中。
附图说明
图1是示出根据实施例的包括控制器和存储器***的数据处理***的框图。
图2A示出根据实施例的在每个设置周期中将信用重新分配至队列的操作。
图2B示出根据实施例的在将缓冲存储器中存储的数据清除(flush)至非易失性存储器装置之后,将信用重新分配至队列的操作。
图3示出根据实施例的当重新分配信用时可变地生成总信用的操作。
图4示出根据实施例的将多个请求存储在多个队列中的操作。
图5是示出根据实施例的当以循环方式提取请求以访问缓冲存储器时,根据时间的可用缓冲存储器槽的曲线图。
图6是示出根据实施例的当提取请求以访问缓冲存储器时的各个队列的信用和可用缓冲存储器槽的曲线图。
图7是示出根据实施例的包括固态驱动器(SSD)的数据处理***的图。
图8是示出根据实施例的包括存储器***的数据处理***的示图。
图9是示出根据实施例的包括存储器***的数据处理***的示图。
图10是示出根据实施例的包括存储器***的网络***的示图。
图11是示出根据实施例的存储器***中包括的非易失性存储器装置的框图。
具体实施方式
以下将通过各种实施例参照附图来描述根据本公开的实施例的控制器和包括该控制器的存储器***。
图1是示出根据实施例的数据处理***的框图。参照图1,数据处理***可以包括存储器***10和主机装置20。
主机装置20可以包括多个提交队列SQ0至SQn和完成队列(未示出)。提交队列SQ0至SQn可以将输入和输出(I/O)命令(例如,读取和写入请求)传递至存储器***10。完成队列可以从存储器***10接收I/O请求的完成状态。如稍后所述,从多个提交队列SQ0至SQn(队列)提取的请求可以由存储器***10高效地共享。在本说明书中,多个队列SQ0至SQn可以指示多个主机装置20。也就是说,多个队列SQ0至SQn可以指示分别安装在多个主机装置20中的多个队列,并且从多个队列SQ0至SQn接收的请求可以指示从多个主机装置20接收的请求。
主机装置20和存储器***10可以使用多个队列SQ0至SQn来提供高的输入和输出(I/O)带宽。也就是说,主机装置20可以将针对存储器***10的I/O请求存储在多个队列SQ0至SQn中,并将在多个队列SQ0至SQn中存储的I/O请求传递至存储器***10。存储器***10可以并行地处理从多个队列SQ0至SQn接收的I/O请求,并且响应于I/O请求来执行数据读取操作和数据写入操作。
存储器***10可以存储由主机装置20访问的数据,主机装置中的每一个可以是移动电话、MP3播放器、膝上型计算机、台式计算机、游戏机,电视(TV)和车载信息娱乐***中的任意一个。
根据指示与主机装置20的传输协议的主机接口,存储器***10可以被制造为各种存储装置中的任意一个。例如,存储器***10可以利用诸如下列的各种存储装置中的任意一个来实施:SSD,多媒体卡(例如,MMC、eMMC、RS-MMC或微型-MMC),安全数字卡(例如SD、迷你-SD或微型-SD),通用存储总线(USB)存储装置,通用闪存(UFS)装置,个人计算机存储卡国际协会(PCMCIA)存储装置,***组件互连(PCI)存储装置,高速PCI(PCI-e或PCIe)存储装置,紧凑型闪存(CF)卡,智能媒体卡和记忆棒。
存储器***10可以被制造为各种类型的封装中的任意一种。例如,存储器***10可以利用诸如下列的各种类型的封装中的任意一种来实施:堆叠式封装(POP)、片上***(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)和晶圆级堆叠封装(WSP)。
存储器***10可以包括控制器100和非易失性存储器装置200。在实施例中,控制器100可以包括主机接口110、信用发生器120、控制部件130、临时队列存储装置140、随机存取存储器(RAM)150和存储器控制部件160。RAM 150可以包括缓冲存储器151。
主机接口110可以接口连接主机装置20和存储器***10。例如,主机接口110可以使用多个标准传输协议(即,主机接口)中的任意一个与主机装置20通信。标准传输协议可以是安全数字、USB、MMC、eMMC、PCMCIA、并行高级技术附件(PATA)、串行高级技术附件(SATA)、小型计算机***接口(SCSI)、串列SCSI(SAS)、PCI、PCI-e和UFS中的任意一个。
在实施例中,控制器100可以从主机装置20接收特定请求RQ,并且响应于接收到的请求RQ从包括在主机装置20中的队列中提取请求RQ。请求RQ可以包括指示生成了待传递至非易失性存储器装置200的命令CMD的消息。响应于该特定请求RQ,控制器100可以通过主机接口110提取存储在主机装置20的特定队列中的请求RQ。在实施例中,所提取的请求RQ可以包括执行与所提取的请求RQ相对应的操作所需的数据。在实施例中,多个队列SQ0至SQn可以指示多个主机装置20。
控制器100可以控制非易失性存储器装置200执行与所提取的请求RQ相对应的操作。例如,控制器100可以控制非易失性存储器装置200以根据所提取的请求RQ的属性来执行写入操作、读取操作或擦除操作。
信用发生器120可以生成与分配至多个队列SQ0至SQn的信用的总和相对应的总信用TC,并且基于与从各个队列中提取的请求RQ相对应的操作的缓冲器访问模式INF_BAP来将信用分配至各个队列。
在实施例中,可以基于从各个主机装置20或各个队列SQ0至SQn接收的请求RQ的数量来生成缓冲器访问模式INF_BAP。此外,可以基于在各个队列SQ0至SQn中存储的请求RQ的数量来生成缓冲器访问模式INF_BAP。也就是说,当分配信用时,信用发生器120可以参考当时在各个队列中存储的请求RQ的数量。信用发生器120可以将相对多数量的信用分配至当前存储相对多数量的请求RQ的队列。在实施例中,信用可以指示从相应队列提取的请求RQ相对于整个队列的比率。在另一实施例中,信用可以指示分配至相应队列的缓冲存储器151的数量或者包括在缓冲存储器151中的槽的数量。在另一实施例中,信用可以指示在相应队列中连续提取的请求RQ的数量。
控制器100可以基于分配至各个队列的信用来判定从主机装置20提取请求RQ的顺序。也就是说,控制器100可以判定提取在各个队列中存储的请求RQ以及执行与该请求RQ相对应的操作的顺序。
控制部件130可以包括微控制单元(MCU)或中央处理单元(CPU)。控制部件130可以处理从主机装置20接收的请求。为了处理请求,控制部件130可以驱动加载到RAM 150的基于代码的指令或算法,即固件(FW),并且控制内部功能块和非易失性存储器装置200。
控制部件130可以包括缓冲器管理器131。缓冲器管理器131可以基于请求信息INF_RQ来判定给定至各个主机装置20的优先级信息INF_PRT。目标数据DT可以指示与根据请求RQ执行的目标操作相对应的数据。例如,当与请求RQ相对应的操作是写入操作时,控制器100可以通过主机接口110从主机装置20接收目标数据DT。然后,控制器100可以将接收到的目标数据DT缓冲在缓冲存储器151的特定位置,然后控制存储器控制部件160以将目标数据DT存储在非易失性存储器装置200的特定位置。再例如,当与请求RQ相对应的操作是读取操作时,控制器100可以通过存储器控制部件160从非易失性存储器装置200接收目标数据DT。然后,控制器100可以将接收到的目标数据DT缓冲在缓冲存储器151的特定位置,并且通过主机接口110将目标数据DT传递至主机装置20。在实施例中,可以根据与从主机装置20(或主机装置中的每一个)中的每一个队列提取的请求RQ相对应的操作使用缓冲存储器151的次数来判定缓冲器访问模式INF_BAP。在实施例中,可以根据与从相应队列提取的请求RQ相对应的操作使用缓冲存储器151的次数的比率来判定缓冲器访问模式INF_BAP。也就是说,可以将相对多数量的信用分配至具有高比率的使用缓冲存储器151的次数的队列(或主机装置),并且可以将相对少数量的信用分配至具有低比率的使用缓冲存储器151的次数的队列(或主机装置)。
缓冲器管理器131可以基于目标数据DT或请求RQ的属性来判定优先级信息INF_PRT。例如,可以根据与请求RQ相对应的操作是读取操作还是写入操作来判定目标数据DT的属性。在实施例中,可以将相对多数量的信用分配至存储了相对多数量的、与读取操作相对应的请求RQ的队列。
缓冲器管理器131可以基于从主机装置20接收的请求RQ来分配执行操作所需的缓冲器。例如,当从主机装置20接收到写入请求时,缓冲器管理器131可以分配缓冲存储器151以临时存储从主机装置20接收的并且将被存储在非易失性存储器装置200中的目标数据DA。再例如,当从主机装置20接收到读取请求时,缓冲器管理器131可以分配缓冲存储器151以临时存储从非易失性存储器装置200接收的并且将被传递至主机装置20的目标数据DA。
当执行基于从主机装置20接收的请求RQ的操作时,缓冲器管理器131可以获取访问信息以访问缓冲存储器151,并且基于访问信息的监控结果来生成并输出优先级信息INF_PRT。换言之,作为优先级信息INF_PRT的基础的请求信息INF_RQ可以包括访问信息。具体地,缓冲器管理器131可以获取基于从队列(或主机装置)中的每一个提取的请求RQ的操作访问缓冲存储器151的模式,并且基于所获取的模式来生成优先级信息INF_PRT。例如,缓冲器管理器131可以监控与从队列(或主机装置)提取的请求RQ相对应的操作访问缓冲存储器151的次数。再例如,缓冲器管理器131可以监控与从队列(或主机装置)提取的请求RQ相对应的操作的类型。操作的类型可以包括写入操作、读取操作和擦除操作。然而,本实施例不限于那些示例性操作。
在实施例中,控制器100可以包括临时队列存储装置140。临时队列存储装置140可以对应于队列(或主机装置)中的每一个,并且接收从队列(或主机装置)接收的请求之中的相应请求。
在实施例中,信用发生器120可以基于在临时队列存储装置140中存储的请求RQ的数量,来生成信用以提供至各个队列(或各个主机装置)。
RAM 150可以包括动态RAM(DRAM)或静态RAM(SRAM)。RAM 150可以存储由控制部件130驱动的固件FW。RAM 150可以存储驱动固件FW所需的数据,例如元数据。也就是说,RAM150可以作为控制部件130的工作存储器来操作。
在实施例中,RAM 150可以包括缓冲存储器151。缓冲存储器151可以临时存储目标数据DT,该目标数据DT待从主机装置20传输至非易失性存储器装置200或者从非易失性存储器装置200传输至主机装置20。缓冲存储器151可以包括诸如DRAM或SRAM的RAM。在实施例中,缓冲器管理器131可以基于信用来确定主机装置20的优先级,并且根据针对主机装置20确定的优先级将请求RQ存储在缓冲存储器151中。
存储器控制部件160可以根据控制部件130的控制来控制非易失性存储器装置200。存储器控制部件160可以被称为存储器接口。存储器控制部件160可以将控制信号提供至非易失性存储器装置200。控制信号可以包括用于控制非易失性存储器装置200的命令、地址和控制信号。存储器控制部件160可以将数据提供至非易失性存储器装置200,或者从非易失性存储器装置200接收数据。
在实施例中,控制部件130可以基于由信用发生器120生成的信用来设置将命令CMD传递至非易失性存储器装置200的优先级,并且存储器控制部件160可以基于设置的优先级来将命令CMD传递至非易失性存储器装置200。
非易失性存储器装置200可以利用诸如下列的各种非易失性存储器装置中的任意一种来实施:NAND闪速存储器装置、NOR闪速存储器装置、使用铁电电容器的铁电RAM(FRAM)、使用隧道磁阻(TMR)薄膜的磁性RAM(MRAM)、使用硫族化物合金的相变RAM(PRAM)和使用过渡金属氧化物的电阻式RAM(ReRAM)。
非易失性存储器装置200可以包括存储器单元阵列(例如,图11的存储器单元阵列210)。存储器单元阵列可以包括基于分层存储器单元组或基于操作角度(viewpoint)或者物理(或结构)角度的存储器单元来配置的存储器单元。例如,联接至相同字线并且被同时读取/写入(或编程)的存储器单元可以构成页面。为方便起见,构成页面的存储器单元可以称为“页面”。此外,被同时擦除的存储器单元可以构成存储块。存储器单元阵列可以包括多个存储块,且存储块中的每一个可以包括多个页面。
控制器100确定从各个队列SQ0至SQ(n)(或主机装置20)接收的请求的优先级,并且根据优先级来处理请求。控制器100可以包括信用发生器120、缓冲器管理器131和缓冲存储器151。信用发生器120可以基于从各个队列SQ0到SQ(n)(或主机装置20)接收的请求的数量来生成信用以提供至各个队列SQ0至SQ(n)(或主机装置20)。缓冲器管理器131可以基于信用来确定各个队列SQ0至SQ(n)(或主机装置20)的优先级。缓冲存储器151可以根据针对队列SQ0至SQ(n)(或主机装置20)确定的优先级来存储请求。
在实施例中,控制器100可以包括多个临时队列存储装置140,多个临时队列存储装置140被配置成对应于各个主机装置20并且接收在主机装置20的请求之中的相应请求。信用生成器120可以基于存储在各个临时队列存储装置140中的请求的数量来生成信用以提供至各个主机装置20。在另一实施例中,缓冲器管理器131可以基于信用和请求的属性来确定各个主机装置20的优先级。
在实施例中,控制器100可以进一步包括处理区域计算器,该处理区域计算器基于请求来计算分配至与从主机装置20接收的请求相对应的操作的存储器区域。缓冲器管理器131可以基于信用和存储器区域来确定各个主机装置20的优先级。在另一实施例中,缓冲器管理器131可以基于信用、存储器区域和请求的属性来确定各个主机装置20的优先级。可以根据与请求相对应的操作是读取操作还是写入操作来判定请求的属性。例如,缓冲器管理器131可以基于与从各个主机装置20接收的请求相对应的操作是读取操作的次数与操作是写入操作的次数的比率来确定请求的属性。
在实施例中,信用发生器120可以在每个设置周期中将信用重新分配至各个主机装置20。当重新分配信用时,可以保持主机装置20的总信用。稍后将更详细地描述这种配置。
存储器***10可以包括控制器100和非易失性存储器装置200,该控制器100被配置成从多个主机装置20接收请求。非易失性存储器装置200可以根据控制器100的控制来接收与来自控制器100的请求相对应的命令并且执行与命令相对应的操作。控制器100可以包括信用发生器120、控制部件130和存储器控制部件160。信用发生器120可以基于从各个主机装置20接收的请求的数量来生成信用以提供至各个主机装置20。控制部件130可以基于信用来设置将命令传递至非易失性存储器装置200的优先级。存储器控制部件160可以基于设置的优先级将命令传递至非易失性存储器装置200。
在实施例中,控制部件130可以进一步包括缓冲存储器151,该缓冲存储器151被配置成存储从主机装置20接收的请求。控制部件130可以基于信用来确定各个主机装置20的优先级,并且根据确定的优先级将请求RQ存储在缓冲存储器151中。
在实施例中,存储器控制部件160可以将与存储在缓冲存储器151中的请求相对应的命令清除至非易失性存储器装置200中。在将命令清除到非易失性存储器装置200中之后,信用发生器120可以将信用重新分配至各个主机装置20。稍后将详细描述这种配置。
图2A示出在每个设置周期中将信用重新分配至各个队列的操作。如上面参照图1所述,信用发生器120可以基于缓冲器访问模式INF_BAP将信用分配至各个队列(或各个主机装置10)。图2A、图2B和图3基于以下假设:一个主机装置20包括三个队列SQ0、SQ1和SQ2,并且信用C0n、信用C1n和信用C2n被分配至各个队列SQ0,SQ1和SQ2,其中n=0、1、2。
参照图2A,信用发生器120可以在每个设置周期T中将信用重新分配至各个队列。在时间t10,信用发生器120可以将初始信用分配至各个队列。例如,信用发生器120可以将信用C00、C10和C20分配至各个队列SQ0,SQ1和SQ2。在这种情况下,分配相同数量的信用;也就是说,信用C00、C10和C20中的每一个代表相同的数量。
如图2A所示,在时间t10分配初始信用之后,可以在时间t20和t30将信用重新分配至各个队列,时间t20和t30顺序地隔开周期T。可以基于在先前周期从各个队列提取的请求,根据缓冲器访问模式INF_BAP来判定信用。在每个周期T中,信用可增加、减少或被平均分配。
在实施例中,可以在最近先前周期T期间的与从多个队列SQ0、SQ1和SQ2提取的请求相对应的操作已访问缓冲存储器151的次数成比例地判定缓冲器访问模式INF_BAP。可以与缓冲器访问模式INF_BAP成比例地判定分配至各个队列SQ0、SQ1和SQ2的信用。也就是说,如图2A所示,在时间t20分配的信用C01、C11和C21以及在时间t30分配的信用C02、C12和C22可以分别满足下面的等式1和等式2。
[等式1]
BAP_SQ0(t10~t20):BAP_SQ1(t10~t20):BAP_SQ2(t10~t20)=C01:C11:C21
[等式2]
BAP_SQ0(t20~t30):BAP_SQ1(t20~t30):BAP_SQ2(t20~t30)=C02:C12:C22
在时间t20,当总信用TC0为100并且BAP_SQ0(t10~t20)、BAP_SQ1(t10~t20)和BAP_SQ2(t10~t20)分别为200、200和100时,可以将信用C01、C11和C21分别设置为40、40和20。在时间t30,当BAP_SQ0(t20~t30)、BAP_SQ1(t20~t30)和BAP_SQ2(t20~t30)是1000、400和600时,可以将信用C02、C12和C22分别设置为50、20和30。
如图2A所示,信用发生器120可以保持对应于信用总和的总信用TC0,并且基于在最近先前周期期间的缓冲器访问模式INF_BAP,在总信用TC0内将信用重新分配至各个队列。
图2B示出在将图1的缓冲存储器151中存储的数据清除至非易失性存储器装置200之后,将信用重新分配至各个队列的操作。
参照图2B,图1的控制器100可以清除在缓冲存储器151中缓冲的目标数据DT,使得目标数据DT被存储在非易失性存储器装置200(或主机装置20)的特定位置。在清除存储在缓冲存储器151中的目标数据DT之后,信用发生器120可以重新分配信用。当缓冲存储器151已满时,可以清除存储在缓冲存储器151中的目标数据DT。可选地,可以根据主机装置20的请求来清除目标数据DT。
在时间t10,信用发生器120可以将初始信用分配至各个队列。例如,信用发生器120可以将信用C00、C10和C20分别分配至队列SQ0、SQ1和SQ2。在这种情况下,分配相同数量的信用作为信用C00、C10和C20。此外,在时间t21和t31,可以与图2A相同的方式分配信用C01、C11、C21、C02、C12和C22,并且可以以相同的方式应用等式1和等式2。
在实施例中,时间t21和t31可以对应于将存储在缓冲存储器151中的目标数据DT清除之后的时间。也就是说,重新分配信用的时间可能不对应于设置周期T的间隔。在时间t21和t31,可以在将存储在缓冲存储器151中的目标数据DT清除之后重新分配信用。可以在任意时间设置和改变在清除目标数据DT之后、直到重新分配信用所需的时间。
图3示出当重新分配信用时可变地生成总信用的操作。参照图3,在时间t30,信用C03、C13和C23分别被分配至队列SQ0、SQ1和SQ2。时间t30处的信用总和对应于总信用TC1。
当重新分配信用时,图1的信用发生器120可以基于缓冲器访问模式INF_BAP来调整总信用。在时间t40,可以基于在从t30到t40的时段,即一个时段T期间确定的缓冲器访问模式INF_BAP来将信用C04、C14和C24重新分配至队列。可以基于缓冲器访问模式INF_BAP可变地设置总信用。例如,当在一个周期期间所有队列中的访问计数的总和增加,并且根据访问缓冲存储器151的次数来判定缓冲器访问模式INF_BAP时,可以根据访问计数的总和的增加来改变缓冲器访问模式INF_BAP。因此,总信用可能会增加。在时间t40,可以将总信用改变成总信用TC2,总信用TC2已从时间t30的总信用TC1增加。换言之,在时间t40,分配至队列SQ0、SQ1和SQ2的信用C04、C14和C24的总和,即总信用TC2可以大于总信用TC1。在时间t50,分配至队列SQ0、SQ1和SQ2的信用C05、C15和C25的总和,即总信用TC3可以小于总信用TC2和总信用TC1。
如上面参照图2A所述,可以与在先前周期T期间的与从多个队列SQ0、SQ1和SQ2提取的请求相对应的操作访问缓冲存储器151的次数成比例地判定缓冲器访问模式INF_BAP,并且可以与缓冲器访问模式INF_BAP成比例地判定分配至各个队列的信用。也就是说,如图3所示,在时间t40分配的信用C04、C14和C24以及在时间t50分配的信用C05、C15和C25可以分别满足等式3和等式4。
[等式3]
BAP_SQ0(t30~t40):BAP_SQ1(t30~t40):BAP_SQ2(t30~t40)=C04:C14:C24
[等式4]
BAP_SQ0(t40~t50):BAP_SQ1(t40~t50):BAP_SQ2(t40~t50)=C05:C15:C25
图4示出将多个请求存储在多个队列中的操作。图4至图6基于以下假设:图1的主机装置20包括两个队列SQA和SQB;按请求RQ_QA0、请求RQ_QB0、请求RQ_QA1、请求RQ_QB1、请求RQ_QA2、......和请求RQ_QA9的顺序将存储在队列SQA和SQB中的请求进行排队;存储在队列SQA中的请求RQ_QA0至RQ_QA9中的每一个具有4KB的大小;存储在队列SQB中的请求RQ_B0和RQ_B1中的每一个具有32KB的大小;并且图1中的控制器100的缓冲存储器151包括16个槽,其中该16个槽可以存储请求RQ并且16个槽中的每一个具有4KB的存储容量。
图5是示出当以循环方式(round robin manner)提取图4的请求以访问图1的缓冲存储器151时,基于时间的可用缓冲存储器槽的曲线图。将参照图1、图4和图5描述以循环方式提取多个请求并将该多个请求存储在控制器100的缓冲存储器151中的进程。
循环方法或循环调度可以指示未针对队列确定优先级,并且根据请求被排队的顺序来提取存储在各个队列中的请求。根据循环方法,可以按请求RQ_QA0、请求RQ_QB0、请求RQ_QA1、请求RQ_QB1、请求RQ_QA2、......和请求RQ_QA9的顺序提取存储在队列SQA和SQB中的请求并且将请求提供至控制器100。
在从t0到t1的时段期间,可以提取存储在队列SQA中的请求RQ_QA0,并且可能需要缓冲存储器151的一个槽(具有4KB容量)以用于请求RQ_QA0。因此,在时间t1,15个槽可以被剩余在缓冲存储器151中。在从t1到t2的时段期间,可以提取存储在队列SQB中的请求RQ_QB0,并且可以使用缓冲存储器151的八个槽(具有32KB的总容量)。因此,七个槽可以被剩余在缓冲存储器151中。在从t2到t3的时段期间,可以提取存储在队列SQA中的请求RQ_QA1,并且可以使用缓冲存储器151的一个槽(4KB容量)。因此,六个槽可以被剩余在缓冲存储器151中。根据循环方法,需要随后提取存储在队列SQB中的请求RQ_QB1。然而,缓冲存储器151可能没有用于存储请求RQ_QB1的可用槽。因此,为了提取请求RQ_QB1,可以在从t3到t4的时段期间执行清除操作。换言之,由于请求RQ_QB1的大小是32KB并且缓冲存储器151的剩余容量是24KB,因此可以清除存储在缓冲存储器151中的请求和数据并将请求和数据存储在非易失性存储器装置200的特定位置。然后,可以执行针对剩余请求的提取操作。
在将存储在缓冲存储器151中的请求清除之后,可以全部清空与缓冲存储器151的最大存储容量相对应的16个槽。然后,在从t4到t5的时段期间,可以顺序地提取存储在队列SQB中的请求RQ_QB1(例如,32KB的数据)和存储在队列SQA中的请求RQ_QA2至RQ_QA9(例如,每个4KB),并且可以执行与各个请求相对应的操作。32KB的请求RQ_QB1对应于8个槽,并且总共32KB的请求RQ_QA2至RQ_QA9对应于8个槽。
当根据请求被排队至队列的顺序或固定顺序来提取存储在多个队列中的多个请求时,可能如图5中从t3至t4的时段中那样,针对请求的提取操作和与请求相对应的操作被延迟。具体地,具有不同工作负载特性的请求(例如,写入请求和读取请求)可以具有不同的大小,并且当下一请求具有大于缓冲存储器151的剩余存储容量的大小时,即使缓冲存储器151未满,也可以清除缓冲存储器151。因此,在清除缓冲存储器151的时段期间可能发生操作延迟。
图6是示出根据实施例的当提取多个请求(例如,图4的请求)以访问缓冲存储器(例如,图1的缓冲存储器151)时的各个队列的信用和可用缓冲存储器槽的曲线图。图6基于以下假设:八个信用被分配至队列SQA和SQB中的每一个。可以针对一个信用提取4KB的请求,并且可以在清除存储在缓冲存储器151中的数据之后重新分配信用。也就是说,虽然全部耗用了分配至任意一个队列的信用,但是可以提取存储在具有剩余信用的另一队列中的请求,直到缓冲存储器151的槽已满,并且可以执行与所提取请求相对应的操作。将参照图1、图4和图6描述这样的进程。
参照图6,在从t0到t1的时段期间,可以提取请求RQ_QA0。由于请求RQ_QA0的大小是4KB,因此可以耗用队列SQA的一个信用,同时填充缓冲存储器151的一个槽。队列SQB的信用可能不增加或减少,而是可以在队列SQB中保留八个信用。
在从t1到t2的时段期间,可以提取请求RQ_QB0。由于请求RQ_QB0的大小是32KB,因此可能耗用队列SQB中的八个信用。也就是说,可以在从t1到t2的时段期间全部耗用队列SQB的信用。在相应的时段期间,可以填充缓冲存储器151的槽之中的八个槽,并且可以剩余七个槽。队列SQA的信用可不增加或减少,而是可以在队列SQA中剩余七个信用。
在从t2到t7的时段期间,可以提取请求RQ_QA1到RQ_QA7。也就是说,在提取请求RQ_QA1之后,存储在缓冲存储器151中的数据可能不会由于缺少用于请求RQ_QB1的操作的槽而被清除。相反,可以提取与队列SQA的剩余信用相对应的请求。如图6所示,在时间t7可全部耗用分配至队列SQA和SQB的信用。然后可以由信用生成器120重新分配信用。当重新分配信用时,可以参考在从t0到t7的时段中的各个队列SQA和SQB的缓冲器访问模式INF_BAP。图6示出在时间t7全部耗用了分配至队列SQA和SQB的信用的同时,全部清空缓冲存储器151的槽。然而,当在缓冲存储器151中剩余可用槽时,即使分配至队列SQA和SQB的信用全部被耗用,也可以不清除存储在缓冲存储器151中的数据,而是可以重新分配信用。然后,可以连续地提取与剩余信用相对应的请求。
根据实施例,控制器和存储器***可以基于与请求相对应的操作的工作负载特性来调整提取主机装置的请求的顺序,并且高效地分配***资源。
此外,控制器和存储器***可以高效地使用缓冲存储器的存储容量,从而最小化在提取主机请求的操作和与主机请求相对应的操作期间的延迟时间。
图7是示出根据实施例的包括固态驱动器(SSD)的数据处理***1000的示图。参照图7,数据处理***1000可以包括主机装置1100和固态驱动器(SSD)1200。
SSD 1200可以包括控制器1210、缓冲存储器装置1220、非易失性存储器装置1231至123n、电源1240、信号连接器1250和电源连接器1260。
控制器1210可以控制SSD 1200的一般操作。控制器1210可以包括主机接口1211、控制部件1212、随机存取存储器1213、错误校正码(ECC)部件1214和存储器接口1215。
主机接口1211可以通过信号连接器1250与主机装置1100交换信号SGL。信号SGL可以包括命令、地址、数据等。主机接口1211可以根据主机装置1100的协议接口连接主机装置1100和SSD 1200。例如,主机接口1211可以通过诸如下列的标准接口协议中的任意一个与主机装置1100通信:安全数字、通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、个人计算机存储卡国际协会(PCMCIA)、并行高级技术附件(PATA)、串行高级技术附件(SATA)、小型计算机***接口(SCSI)、串列SCSI(SAS)、***组件互连(PCI)、高速PCI(PCI-e或PCIe)和通用闪存(UFS)。
控制部件1212可以分析并处理从主机装置1100输入的信号SGL。控制部件1212可以根据用于驱动SSD 1200的固件或软件来控制内部功能块的操作。随机存取存储器1213可以用作用于驱动这种固件或软件的工作存储器。
ECC部件1214可以生成待传输至非易失性存储器装置1231至123n的数据的奇偶校验数据。生成的奇偶校验数据可以与数据一起被存储在非易失性存储器装置1231至123n中。ECC部件1214可以基于奇偶校验数据来检测从非易失性存储器装置1231至123n读出的数据的错误。如果检测到的错误在可校正范围内,则ECC部件1214可以校正检测到的错误。
存储器接口1215可以根据控制部件1212的控制将诸如命令和地址的控制信号提供至非易失性存储器装置1231至123n。而且,存储器接口1215可以根据控制部件1212的控制与非易失性存储器装置1231至123n交换数据。例如,存储器接口1215可以将存储在缓冲存储器装置1220中的数据提供至非易失性存储器装置1231至123n,或者将从非易失性存储器装置1231至123n中读出的数据提供至缓冲存储器装置1220。
缓冲存储器装置1220可以临时存储待存储在非易失性存储器装置1231至123n中的数据。此外,缓冲存储器装置1220可以临时存储从非易失性存储器装置1231至123n读出的数据。根据控制器1210的控制,临时存储在缓冲存储器装置1220中的数据可以被传输至主机装置1100或非易失性存储器装置1231到123n。
非易失性存储器装置1231至123n可以用作SSD 1200的存储介质。非易失性存储器装置1231至123n可以分别通过多个通道CH1至CHn与控制器1210联接。一个或多个非易失性存储器装置可以联接至一个通道。联接至每个通道的非易失性存储器装置可以联接至相同的信号总线和数据总线。
电源1240可以将通过电源连接器1260输入的电力PWR提供至SSD 1200的内部。电源1240可以包括辅助电源1241。辅助电源1241可以供应电力以当发生突然断电时使SSD1200能够正确地终止。辅助电源1241可以包括大容量电容器。
根据主机装置1100和SSD 1200之间的接口方案,信号连接器1250可以由各种类型的连接器中的任意一种实施。
根据主机装置1100的电力供应方案,电源连接器1260可以由各种类型的连接器中的任意一种实施。
图8是示出根据本发明的实施例的包括数据存储装置的数据处理***2000的示图。参照图8,数据处理***2000可以包括主机装置2100和数据存储装置2200。
主机装置2100可以诸如印刷电路板的板的形式实施。虽然未示出,但是主机装置2100可以包括用于执行主机装置的功能的内部功能块。
主机装置2100可以包括连接端子2110,诸如插座、插槽或连接器。数据存储装置2200可以安装到连接端子2110。
数据存储装置2200可以诸如印刷电路板的板的形式实施。数据存储装置2200可以被称为存储器模块或存储卡。数据存储装置2200可以包括控制器2210、缓冲存储器装置2220、非易失性存储器装置2231和2232、电源管理集成电路(PMIC)2240和连接端子2250。
控制器2210可以控制数据存储装置2200的一般操作。控制器2210可以与图7中所示的控制器1210相同的方式配置。
缓冲存储器装置2220可以临时存储待存储在非易失性存储器装置2231和2232中的数据。此外,缓冲存储器装置2220可以临时存储从非易失性存储器装置2231和2232读出的数据。根据控制器2210的控制,临时存储在缓冲存储器装置2220中的数据可以被传输至主机装置2100或非易失性存储器装置2231和2232。
非易失性存储器装置2231和2232可以用作数据存储装置2200的存储介质。
PMIC 2240可以将通过连接端子2250输入的电力提供至数据存储装置2200的内部。PMIC 2240可以根据控制器2210的控制来管理数据存储装置2200的电力。
连接端子2250可以联接至主机装置2100的连接端子2110。通过连接端子2250,可以在主机装置2100和数据存储装置2200之间传递诸如命令、地址、数据等的信号和电力。根据主机装置2100和数据存储装置2200之间的接口方案,连接端子2250可以被实施为各种类型的连接端子中的任意一种。连接端子2250可以被布置在数据存储装置2200的任意一侧上。
图9是示出根据实施例的包括数据存储装置的数据处理***3000的示图。参照图9,数据处理***3000可以包括主机装置3100和数据存储装置3200。
主机装置3100可以以诸如印刷电路板的板的形式实施。虽然未示出,但是主机装置3100可以包括用于执行主机装置的功能的内部功能块。
数据存储装置3200可以被实施为表面安装型封装。数据存储装置3200可以通过焊球3250安装到主机装置3100。数据存储装置3200可以包括控制器3210、缓冲存储器装置3220和非易失性存储器装置3230。
控制器3210可以控制数据存储装置3200的一般操作。控制器3210可以与图7中所示的控制器1210相同的方式配置。
缓冲存储器装置3220可以临时存储待存储在非易失性存储器装置3230中的数据。此外,缓冲存储器装置3220可以临时存储从非易失性存储器装置3230读出的数据。根据控制器3210的控制,临时存储在缓冲存储器装置3220中的数据可以被传输至主机装置3100或非易失性存储器装置3230。
非易失性存储器装置3230可以用作数据存储装置3200的存储介质。
图10是示出根据实施例的包括数据存储装置的网络***4000的示图。参照图10,网络***4000可以包括通过网络4500联接的服务器***4300和多个客户端***4410至4430。
服务器***4300可以响应于来自多个客户端***4410至4430的请求来服务数据。例如,服务器***4300可以存储从多个客户端***4410至4430提供的数据。再例如,服务器***4300可以将数据提供至多个客户端***4410至4430。
服务器***4300可以包括主机装置4100和数据存储装置4200。数据存储装置4200可以由图1所示的数据存储装置10、图7所示的SSD 1200、图8所示的数据存储装置2200或图9所示的数据存储装置3200来实施。
图11是示出根据实施例的包括在数据存储装置中的非易失性存储器装置200的框图。参照图11,非易失性存储器装置200可以包括存储器单元阵列210、行解码器220、数据读取和写入(读取/写入)块230、列解码器240、电压发生器250和控制逻辑260。
存储器单元阵列210可以包括布置在字线WL1至WLm和位线BL1至BLn彼此交叉的区域处的存储器单元MC。
行解码器220可以通过字线WL1至WLm与存储器单元阵列210联接。行解码器220可以根据控制逻辑260的控制而操作。行解码器220可以解码从外部装置(未示出)(例如图1的控制器100)提供的地址。行解码器220可以基于解码结果来选择并驱动字线WL1至WLm。例如,行解码器220可以将从电压发生器250提供的字线电压提供至字线WL1至WLm。
数据读取/写入块230可以通过位线BL1至BLn与存储器单元阵列210联接。数据读取/写入块230可以包括分别对应于位线BL1至BLn的读取/写入电路RW1至RWn。数据读取/写入块230可以根据控制逻辑260的控制而操作。数据读取/写入块230可以根据操作模式作为写入驱动器或读出放大器操作。例如,在写入操作中,数据读取/写入块230可以作为写入驱动器操作,该写入驱动器将从外部装置提供的数据存储在存储器单元阵列210中。再例如,在读取操作中,数据读取/写入块230可以作为读出放大器操作,该读出放大器从存储器单元阵列210读出数据。
列解码器240可以根据控制逻辑260的控制而操作。列解码器240可以解码从外部装置提供的地址。列解码器240可以基于解码结果将数据读取/写入块230的、分别与位线BL1至BLn相对应的读取/写入电路RW1至RWn与数据输入/输出线(或数据输入/输出缓冲器)联接。
电压发生器250可以生成待在非易失性存储器装置200的内部操作中使用的电压。由电压发生器250生成的电压可以被施加到存储器单元阵列210的存储器单元。例如,在编程操作中生成的编程电压可以被施加到待执行编程操作的存储器单元的字线。又例如,在擦除操作中生成的擦除电压可以被施加到待执行擦除操作的存储器单元的阱区域。又例如,在读取操作中生成的读取电压可以被施加到待执行读取操作的存储器单元的字线。
控制逻辑260可以基于从外部装置提供的控制信号来控制非易失性存储器装置200的一般操作。例如,控制逻辑260可以控制非易失性存储器装置200的读取操作、写入操作和擦除操作。
虽然已经示出和描述了各种实施例,但是本领域技术人员鉴于本公开将理解的是,描述的实施例仅为示例。因此,本文描述的数据存储装置的操作方法不基于所描述的实施例而受限。相反,本发明涵盖落入权利要求的范围内的所有修改和变化。

Claims (25)

1.一种控制器,从多个主机装置接收请求,并根据优先级处理所述请求,所述控制器包括:
信用生成器,基于从各个主机装置接收的请求的数量来生成所述各个主机装置的信用;
缓冲器管理器,基于所述信用确定所述各个主机装置的优先级;以及
缓冲存储器,根据所述主机装置的优先级来存储所述请求。
2.根据权利要求1所述的控制器,进一步包括与所述各个主机装置相对应的多个临时队列存储装置,所述多个临时队列存储装置的每个接收并存储来自相应主机装置的请求,
其中所述信用生成器基于存储在所述临时队列存储装置中的请求的数量来生成所述各个主机装置的信用。
3.根据权利要求1所述的控制器,进一步包括处理区域计算器,所述处理区域计算器基于从所述主机装置接收的请求来计算针对与所述请求相对应的操作分配的存储器区域,
其中所述缓冲器管理器基于所述信用和所述存储器区域来确定所述各个主机装置的优先级。
4.根据权利要求3所述的控制器,其中所述缓冲器管理器基于所述信用、所述存储器区域和所述请求的属性来确定所述各个主机装置的优先级。
5.根据权利要求4所述的控制器,其中根据与所述请求相对应的操作是读取操作还是写入操作来判定所述属性。
6.根据权利要求5所述的控制器,其中所述缓冲器管理器基于与从所述各个主机装置接收的请求相对应的操作是读取操作的次数与所述操作是写入操作的次数的比率来确定所述属性。
7.根据权利要求1所述的控制器,其中所述信用发生器基于从所述各个主机装置接收到所述请求的次数来生成所述各个主机装置的信用。
8.根据权利要求1所述的控制器,其中所述缓冲器管理器基于所述信用和所述请求的属性来确定所述各个主机装置的优先级。
9.根据权利要求8所述的控制器,其中根据与所述请求相对应的操作是读取操作还是写入操作来判定所述属性。
10.根据权利要求1所述的控制器,其中在每个设置周期中,所述信用发生器针对所述各个主机装置重新分配信用。
11.根据权利要求10所述的控制器,其中当重新分配所述信用时,所述信用发生器保持所述主机装置的总信用。
12.一种存储器***,包括:
控制器,从多个主机装置接收请求;以及
非易失性存储器装置,从所述控制器接收与所述请求相对应的命令,并且根据所述控制器的控制来执行与所述命令相对应的操作,
其中所述控制器包括:
信用发生器,基于从各个所述主机装置接收的请求的数量来生成各个所述主机装置的信用;
控制部件,基于所述信用来确定待传递至所述非易失性存储器装置的命令的优先级;以及
存储器控制部件,基于所确定的优先级将所述命令传递至所述非易失性存储器装置。
13.根据权利要求12所述的存储器***,其中所述控制部件进一步包括缓冲存储器,所述缓冲存储器存储从所述主机装置接收的请求,以及
其中所述控制部件基于所述信用来确定各个所述主机装置的优先级,并且根据所述优先级将所述请求存储在所述缓冲存储器中。
14.根据权利要求13所述的存储器***,其中所述控制器进一步包括多个临时队列存储装置,所述多个临时队列存储装置与各个所述主机装置相对应,所述多个临时队列存储装置中的每个接收并存储来自相应主机装置的请求,以及
其中所述信用生成器基于存储在所述临时队列存储装置中的请求的数量来生成各个所述主机装置的信用。
15.根据权利要求13所述的存储器***,其中所述控制器进一步包括处理区域计算器,所述处理区域计算器基于从所述主机装置接收的请求来计算针对与所述请求相对应的操作分配的存储器区域,以及
其中所述控制部件基于所述信用和所述存储器区域来确定各个所述主机装置的优先级。
16.根据权利要求15所述的存储器***,其中所述控制部件基于所述信用、所述存储器区域和所述请求的属性来确定各个所述主机装置的优先级。
17.根据权利要求16所述的存储器***,其中根据与所述请求相对应的操作是读取操作还是写入操作来判定所述属性。
18.根据权利要求17所述的存储器***,其中所述控制部件基于与从各个所述主机装置接收的请求相对应的操作是读取操作的次数与所述操作是写入操作的次数的比率来确定所述属性。
19.根据权利要求13所述的存储器***,其中所述信用发生器基于从各个所述主机装置接收所述请求的次数来生成各个所述主机装置的信用。
20.根据权利要求13所述的存储器***,其中所述控制部件基于所述信用和所述请求的属性来确定各个所述主机装置的优先级。
21.根据权利要求20所述的存储器***,其中根据与所述请求相对应的操作是读取操作还是写入操作来判定所述属性。
22.根据权利要求13所述的存储器***,其中在每个设置周期中,所述信用发生器针对各个所述主机装置重新分配信用。
23.根据权利要求13所述的存储器***,其中当重新分配所述信用时,所述信用发生器保持所述主机装置的总信用。
24.根据权利要求13所述的存储器***,其中所述存储器控制部件将与存储在所述缓冲存储器中的请求相对应的命令清除至所述非易失性存储器装置,以及
其中在将所述命令清除至所述非易失性存储器装置之后,所述信用发生器针对各个所述主机装置重新分配信用。
25.一种数据处理***,包括:
多个主机装置;以及
存储器***,包括存储器装置以及控制器,所述控制器从所述多个主机装置接收请求并且控制所述存储器装置执行与所述请求相对应的操作,所述控制器包括具有多个槽的缓冲存储器,并且进一步:
基于所述缓冲存储器的访问模式来确定各个所述主机装置的信用;以及
根据基于所述信用确定的顺序以及多个缓冲存储器槽之中的可用缓冲存储器槽,从所述主机装置提取所述请求以将所提取的请求存储在所述缓冲存储器中。
CN201811475812.6A 2018-05-15 2018-12-04 控制器以及包括该控制器的存储器*** Pending CN110489056A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180055465A KR20190130831A (ko) 2018-05-15 2018-05-15 컨트롤러 및 이를 포함하는 메모리 시스템
KR10-2018-0055465 2018-05-15

Publications (1)

Publication Number Publication Date
CN110489056A true CN110489056A (zh) 2019-11-22

Family

ID=68533679

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811475812.6A Pending CN110489056A (zh) 2018-05-15 2018-12-04 控制器以及包括该控制器的存储器***

Country Status (3)

Country Link
US (1) US20190354483A1 (zh)
KR (1) KR20190130831A (zh)
CN (1) CN110489056A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113032304A (zh) * 2019-12-24 2021-06-25 爱思开海力士有限公司 优先级确定电路

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI715283B (zh) * 2019-11-08 2021-01-01 瑞昱半導體股份有限公司 具備擴充外部裝置功能的橋接晶片以及擴充方法
KR20220127067A (ko) * 2021-03-10 2022-09-19 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US11379388B1 (en) * 2021-03-31 2022-07-05 Advanced Micro Devices, Inc. Credit scheme for multi-queue memory controllers

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090216965A1 (en) * 2008-02-22 2009-08-27 Hitachi, Ltd Storage device and access instruction sending method
US20120278530A1 (en) * 2011-04-28 2012-11-01 Seagate Technology Llc Enforcing system intentions during memory scheduling
US8856459B1 (en) * 2011-12-07 2014-10-07 Apple Inc. Matrix for numerical comparison
US20150046642A1 (en) * 2013-08-07 2015-02-12 Samsung Electronics Co., Ltd. Memory command scheduler and memory command scheduling method
CN107562369A (zh) * 2016-06-30 2018-01-09 爱思开海力士有限公司 存储器控制器、存储缓冲器芯片和存储***

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9838269B2 (en) * 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US9514170B1 (en) * 2013-05-15 2016-12-06 Amazon Technologies, Inc. Priority queue using two differently-indexed single-index tables
CN109725829B (zh) * 2017-10-27 2021-11-05 伊姆西Ip控股有限责任公司 用于数据存储***的端到端QoS解决方案的***和方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090216965A1 (en) * 2008-02-22 2009-08-27 Hitachi, Ltd Storage device and access instruction sending method
US20120278530A1 (en) * 2011-04-28 2012-11-01 Seagate Technology Llc Enforcing system intentions during memory scheduling
US8856459B1 (en) * 2011-12-07 2014-10-07 Apple Inc. Matrix for numerical comparison
US20150046642A1 (en) * 2013-08-07 2015-02-12 Samsung Electronics Co., Ltd. Memory command scheduler and memory command scheduling method
CN107562369A (zh) * 2016-06-30 2018-01-09 爱思开海力士有限公司 存储器控制器、存储缓冲器芯片和存储***

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113032304A (zh) * 2019-12-24 2021-06-25 爱思开海力士有限公司 优先级确定电路

Also Published As

Publication number Publication date
US20190354483A1 (en) 2019-11-21
KR20190130831A (ko) 2019-11-25

Similar Documents

Publication Publication Date Title
US10496281B2 (en) Data storage device, data processing system and method of operation
US12045168B2 (en) Timed data transfer between a host system and a memory sub-system
US8769318B2 (en) Asynchronous management of access requests to control power consumption
TWI703571B (zh) 數據儲存裝置及其操作方法
US10802733B2 (en) Methods and apparatus for configuring storage tiers within SSDs
US11630766B2 (en) Memory system and operating method thereof
US10782915B2 (en) Device controller that schedules memory access to a host memory, and storage device including the same
CN110083545A (zh) 数据存储装置及其操作方法
CN110489056A (zh) 控制器以及包括该控制器的存储器***
US10838653B2 (en) Electronic device and operating method thereof
KR102474035B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
WO2020251711A1 (en) Multi-pass data programming in a memory sub-system having multiple dies and planes
CN110413222A (zh) 数据存储装置及其操作方法
CN108459978A (zh) 包括非易失性存储器装置的数据存储装置及其操作方法
CN110196736A (zh) 电子设备及其操作方法
CN110286847A (zh) 数据存储装置及其操作方法
CN107066201A (zh) 数据存储装置及其方法
CN109240937A (zh) 数据存储装置及其操作方法
CN110047553A (zh) 数据处理***及其操作方法
CN109426453A (zh) 数据存储装置及其操作方法
CN110456981A (zh) 存储器***、存储器***的操作方法以及电子装置
US11042326B2 (en) Data storage device and operating method thereof
KR102634776B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
TW201946066A (zh) 資料儲存裝置及其操作方法
CN109656471A (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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20191122

WD01 Invention patent application deemed withdrawn after publication