CN110875077A - 存储器控制器及其操作方法 - Google Patents
存储器控制器及其操作方法 Download PDFInfo
- Publication number
- CN110875077A CN110875077A CN201910609034.3A CN201910609034A CN110875077A CN 110875077 A CN110875077 A CN 110875077A CN 201910609034 A CN201910609034 A CN 201910609034A CN 110875077 A CN110875077 A CN 110875077A
- Authority
- CN
- China
- Prior art keywords
- write
- command
- level
- power
- memory device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- 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/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/329—Power saving characterised by the action undertaken by task scheduling
-
- 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
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in 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/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/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
- 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
-
- 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/24—Bit-line control circuits
-
- 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/26—Sensing or reading circuits; Data output circuits
-
- 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/1028—Power efficiency
-
- 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/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/502—Control mechanisms for virtual memory, cache or TLB using adaptive policy
-
- 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/7211—Wear leveling
-
- 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 Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
提供了一种存储器控制器及其操作方法。所述存储器控制器,被配置为控制包括多个存储体的存储器设备。存储器控制器可以确定在存储器控制器的命令队列中排队的写入命令的数量是否超过参考值;当排队的写入命令的数量超过参考值时,计算响应于排队的写入命令中的至少一些写入命令而由存储器设备消耗的写入功率的水平;以及基于所计算的写入功率的水平,从排队的写入命令中调度执行存储器设备的交错操作的交错命令。
Description
相关申请的交叉引用
本申请要求于2018年9月3日向韩国知识产权局提交的韩国专利申请第10-2018-0104780号的权益,其公开内容通过引用整体并入本文。
技术领域
本发明构思涉及一种存储器设备,更具体地,涉及一种用于控制存储器设备的存储器控制器和该存储器控制器的操作方法。
背景技术
作为非易失性存储器设备,诸如相变随机存取存储器(PRAM)、电阻随机存取存储器(RRAM)和磁随机存取存储器(MRAM)的电阻存储器设备已使用可变电阻元件作为存储器单元,所述可变电阻元件通过电阻状态的改变来存储数据。电阻存储器设备的材料的共性是电阻值根据电流或电压的大小和/或方向而变化,并且材料具有即使在电流或电压被阻挡时也保持电阻值的非易失性特性。
近年来,诸如图像处理和大数据处理的使用大量数据的领域已经增加,因此提高数据处理速度已经很重要。作为用于提高存储器设备的数据处理速度的方法,正在使用控制数据以同时使用多个存储体(bank)的存储体交错技术。因此,与使用单个存储体的情况相比,可以改进数据处理速度。
发明内容
本发明构思提供了一种能够根据写入操作的功耗水平控制可以同时使用的存储体的数量的存储器控制器及其操作方法。
根据本发明构思的一个方面,提供了一种用于控制包括多个存储体的存储器设备的存储器控制器的操作方法,所述操作方法包括:确定在存储器控制器的命令队列中排队的写入命令的数量是否超过参考值;响应于排队的写入命令的数量超过参考值,计算响应于来自排队的写入命令中的至少一些写入命令而由存储器设备消耗的写入功率的水平;以及基于所计算的写入功率的水平,从排队的写入命令中调度执行存储器设备的第一交错操作的交错命令。
根据本发明构思的另一方面,提供了一种用于控制包括多个存储体的存储器设备的交错操作的存储器控制器,所述存储器控制器包括:功率水平计算器,被配置为计算响应于要提供给存储器设备的多个写入命令中的至少一些要在存储器设备中消耗的写入功率的水平;以及命令调度器,被配置为基于所计算的写入功率的水平,从多个写入命令中调度执行存储器设备的交错操作的交错命令,其中功率水平计算器响应于所述多个写入命令的数量超过参考值计算写入功率的水平。
根据本发明构思的另一方面,提供了一种存储器系统,包括:存储器设备,包括多个存储体,并且被配置为执行数据比较写入操作;以及存储器控制器,被配置为控制存储器设备的交错操作,其中,存储器控制器包括:功率水平计算器,被配置为计算响应于要提供给存储器设备的多个写入命令中的至少一些要在存储器设备中消耗的写入功率的水平,以及命令调度器,被配置为基于所计算的写入功率的水平,从所述多个写入命令中调度执行存储器设备的交错操作的交错命令,其中功率水平计算器响应于所述多个写入命令的数量超过参考值计算写入功率的水平。
附图说明
从以下结合附图的详细描述中,将更清楚地理解本发明构思的实施例,在附图中:
图1是示出根据示例实施例的存储器系统的框图;
图2是示出根据示例实施例的图1的存储器系统中包括的存储器设备的示例的框图;
图3是图2中的存储器单元阵列的示例实施例的电路图;
图4A至图4C是示出图3中的存储器单元的变化的示例的电路图;
图5是包括在图1的存储器系统中的存储器控制器的示例实施例的框图;
图6是示出根据示例实施例的存储器控制器的操作方法的流程图;
图7是示出根据示例实施例的存储器控制器的操作方法的流程图;
图8A是示出图5中的命令队列的示例实施例的表;
图8B是示出预读取命令排队的命令队列的示例实施例的表;
图9是说明图6中的S30和图7中的S40的示例实施例的图;
图10是示出根据示例实施例的存储器控制器的操作方法并示出图6中的S50的示例实施例的流程图;
图11是用于说明图10中的S50的示例实施例的时序图;
图12A是用于说明图10中的S50的示例实施例的时序图;以及
图12B是图5中的命令队列的示例实施例的表。
具体实施方式
在下文中,现在将参考附图详细描述本发明构思的实施例。
图1是示出根据示例实施例的存储器系统10的框图。
参考图1,存储器系统10可以包括存储器设备100和存储器控制器200。
存储器控制器200可以响应于来自主机HOST的写入/读取请求,控制存储器设备100将数据写入存储器设备100或读取存储在存储器设备100中的数据。例如,存储器控制器200可以向存储器设备100提供地址ADDR、命令CMD(例如,写入命令WCMD和读取命令RCMD)以及控制信号CTRL,以控制关于存储器设备100的编程(或登记)和读取操作。此外,可以在存储器控制器200和存储器设备100之间发送和接收要写入的数据DATA和读取的数据DATA。
存储器设备100可包括存储器单元阵列110和控制电路130。存储器单元阵列110可包括分别布置在多个第一信号线和多个第二信号线相交的区域中的多个存储器单元MC。在实施例中,多个第一信号线可以是多个字线,并且多个第二信号线可以是多个位线。在另一实施例中,多个第一信号线可以是多个位线,并且多个第二信号线可以是多个字线。
在实施例中,多个存储器单元MC可以包括包括可变电阻元件的电阻存储器单元。例如,当可变电阻元件是相变材料Ge-Sb-Te(GST)并且电阻根据温度而变化时,存储器设备100可以是相变存储器(PRAM)。例如,当可变电阻元件包括上电极、下电极和上电极与下电极之间的复合金属氧化物时,存储器设备100可以是PRAM。例如,当可变电阻元件包括磁性物质的上电极、磁性物质的下电极、以及上电极和下电极之间的电介质时,存储器设备100可以是磁阻或磁随机存取存储器(MRAM)。因此,存储器设备100可以被称为电阻存储器设备,并且存储器系统10可以被称为电阻存储器系统。
在实施例中,多个存储器单元MC中的每一个可以是能够存储一位数据的单级单元(SLC)。此时,存储器单元MC可以取决于存储的数据具有两个不同的电阻分布。在实施例中,多个存储器单元MC中的每一个可以是能够存储两位数据的多级单元(MLC)。此时,存储器单元MC可以取决于存储的数据具有四个电阻分布。在实施例中,多个存储器单元MC中的每一个可以是能够存储三位数据的三级单元(TLC)。此时,存储器单元MC可以取决于存储的数据具有八个电阻分布。然而,本发明构思不限于此。在实施例中,存储器单元阵列110可以包括能够分别存储四位或更多位数据的存储器单元MC。存储器单元阵列110可以一起包括SLC、MLC或TLC。
控制电路130可以控制存储器设备100的操作。在本实施例中,控制电路130可以控制施加到连接到存储器单元阵列110的第一信号线和第二信号线的电压的时序或电压电平。这里,电压可以包括施加到所选择的第一信号线和第二信号线的操作电压、以及施加到未选择的第一信号线和第二信号线的禁止电压。
存储器控制器200可以包括交错控制器210。当数据被写入存储器设备100时,交错控制器210可以控制以执行交错操作。例如,交错控制器210可以在同时向不同的存储体写入数据时预先计算要消耗的功率水平。交错控制器210可以基于所计算的要消耗的功率水平,确定与交错操作相对应的写入命令WCMD的数量,并选择与交错操作相对应的写入命令WCMD。因此,根据根据本发明构思的存储器设备100的操作方法,可以通过有效地控制交错操作来增加可以同时使用的可访问的存储体的数量,并且可以降低执行写入操作所花费的时间。
图2是示出图1的存储器系统10中包括的存储器设备100的示例的框图。
参考图2,存储器设备100可以包括存储器单元阵列110、写入/读取电路120、控制电路130、参考信号生成电路140、电压生成电路150、行解码器(X-DEC)160和列解码器(Y-DEC)170,其中写入/读取电路120可以包括读出放大器(SA)121和写入驱动器(WD)122。
包括在存储器单元阵列110中的存储器单元MC可以连接到多个第一信号线和多个第二信号线。在实施例中,多个第一信号线可以是多个字线WL,并且多个第二信号线可以是多个位线BL。当通过多个字线WL和多个位线BL提供各种电压信号或电流信号时,关于所选择的存储器单元MC写入或读取数据,同时可以防止执行关于剩余的未选择的存储器单元MC的写入或读取。
包括在存储器单元阵列110中的存储器单元MC可以被划分为不同的存储体BANK。每个存储体BANK可以包括多个页面PAGE,其中一个页面PAGE可以指示在存储体BANK中具有相同的行地址RA的存储器单元MC。存储体BANK可以是执行交错操作的单元,并且页面PAGE可以是执行读取或写入操作的单元。
可以与命令CMD一起在存储器设备100中接收指示要访问的存储器单元MC的地址ADDR,其中地址ADDR可以包括选择存储器单元阵列110的字线WL的行地址RA和选择存储器单元阵列110的位线BL的列地址CA。行解码器160可以响应行地址RA以执行字线选择操作。列解码器170可以响应列地址CA以执行位线选择操作。
写入/读取电路120可以连接到存储器单元阵列110的第一信号线和/或第二信号线,以将数据写入存储器单元MC或者从存储器单元MC读取数据。电压生成电路150可以生成用于执行写入操作的写入电压Vwrite,并生成执行读取操作的读取电压Vread。写入电压Vwrite可以包括设置脉冲和复位脉冲,作为与写入操作相关的各种电压。写入电压Vwrite和读取电压Vread可以经由列解码器170提供给位线BL,或者可以经由行解码器160提供给字线WL。
参考信号生成电路140可以生成参考电压Vref和参考电流Iref作为与数据读取操作有关的各种参考信号。例如,读出放大器121可以连接到位线BL的一个节点(例如,感测节点)以区分数据。读出放大器121可以经由关于在感测节点处的参考电压Vref和电压的比较操作,区分数据值。替代地,当应用电流感测方法时,参考信号生成电路140可以生成参考电流Iref并将参考电流Iref提供给存储器单元阵列110。可以通过比较电压和由参考电流Iref引起的感测节点的参考电压Vref来区分数据值。
写入/读取电路120可以向控制电路130提供关于读取和写入的数据的区分结果。控制电路130可以参考区分结果来控制存储器单元阵列110的写入和读取操作。
控制电路130可以基于从存储器控制器200接收的命令CMD、地址ADDR和控制信号CTRL,输出各种控制信号CTRL_RW以将数据写入存储器单元阵列110或者从存储器单元阵列110读取数据。控制电路130通常可以控制存储器设备100中的各种操作。
控制电路130可以执行关于包括在存储器单元阵列110中的不同存储体BANK的交错操作。当控制电路130执行关于第一存储体BANK和第二存储体BANK的交错操作时,可以改变第一存储体BANK和第二存储体BANK的字线寻址。
控制电路130可以执行数据比较写入(DCW)操作。当控制电路130从存储器控制器200接收写入命令WCMD和写入数据时,控制电路130可以将存储在与写入命令WCMD相对应的地址中的现有数据与写入数据进行比较,并且仅关于具有写入数据中的与现有数据不同的数据的存储器单元MC执行覆写操作。例如,当现有数据是“00000000”并且写入数据是“00000001”时,可以仅关于与第八位对应的存储器单元MC执行覆写操作。因此,已经存储的数据与要写入的数据之间的相似性越接近,即,具有彼此不同的数据的存储器单元MC的数量越小,执行写入操作时消耗的功率越低。
图3是图2中的存储器单元阵列110的示例实施例的电路图。存储器单元阵列110可以包括多个存储体BANK,并且图3可以显示一个存储体BANK。
参考图3,存储体BANK可以包括多个存储器单元MC。这里,根据示例实施例,可以不同地改变连接到多个存储器单元MC的字线WL的数量、位线BL的数量和存储器单元MC的数量。尽管图3中字线WL的数量被示出为等于位线BL的数量,但是本实施例不限于此。字线WL的数量可以与位线BL的数量不同。存储体BANK可以包括多个页面PAGE。一个页面PAGE可以指示连接到存储体BANK中的相同字线WL的存储器单元MC。
根据实施例,多个存储器单元MC中的每一个可以包括可变电阻R和选择元件D。这里,可变电阻R可以被称为可变电阻元件或可变电阻材料。选择元件D可以称为开关元件。
在实施例中,可变电阻R可以连接在多个位线BL0至BLm中的一个与选择元件D之间。选择元件D可以连接在多个字线WL0至WLm中的一个和可变电阻R之间。然而,本实施例不限于此。选择元件D可以连接在多个位线BL0至BLm中的一个与可变电阻R之间。可变电阻R可以连接在多个字线WL0至WLm中的一个与选择元件D之间。
选择元件D可以连接在多个字线WL0至WLm中的一个与可变电阻R之间,并且可以根据施加到连接的字线WL和位线BL的电压来控制对可变电阻R的电流供应。在实施例中,选择元件D可以是PN结或PIN结二极管,其中二极管的阳极可以连接到可变电阻R,并且二极管的阴极可以连接到多个位线BL0到BLm中的一个。此时,当二极管的阳极和阴极之间的电压差大于二极管的阈值电压时,二极管可以导通并且电流可以供应给可变电阻R。
图4A至图4C是示出图3中的存储器单元MC的变化的示例的电路图。
参考图4A,存储器单元MCa可以包括可变电阻Ra,并且可变电阻Ra可以连接在位线BL和字线WL之间。存储器单元MCa可以存储分别作为施加到位线BL和字线WL的电压的数据。
参考图4B,存储器单元MCb可以包括可变电阻Rb和双向二极管Db。可变电阻Rb可以包括用于存储数据的电阻材料。双向二极管Db可以连接在可变电阻Rb和位线BL之间。可变电阻Rb可以连接在字线WL和双向二极管Db之间。双向二极管Db和可变电阻Rb的位置可以相互切换。流过未选择的存储器单元MC的漏电流可以经由双向二极管Db切断。
参考图4C,存储器单元MCc可以包括可变电阻Rc和晶体管TR。晶体管TR可以是选择元件,即,开关元件,其根据字线WL的电压向可变电阻Rc提供或切断电流。在图4C的实施例中,除了字线WL之外,还可以额外包括调节可变电阻Rc的两端的电压电平的源极线SL。晶体管TR可以连接在可变电阻Rc和位线BL之间。可变电阻Rc可以连接在源极线SL和晶体管TR之间。晶体管TR和可变电阻Rc的位置可以相互切换。可以根据晶体管TR是由字线WL驱动开启还是断开来选择或不选择存储器单元MCc。
图5是包括在图1的存储器系统10中的存储器控制器200的示例实施例的框图。
参考图5,存储器控制器200可以包括交错控制器210、处理器220、随机存取存储器(RAM)230、主机接口240和存储器接口250。
交错控制器210可以包括功率水平计算器211和命令调度器212。功率水平计算器211可以计算随着多个写入命令提供到存储器设备100响应于每个写入命令而要消耗的写入功率的水平。例如,功率水平计算器211可以计算由于关于与多个写入命令中的每一个相对应的存储体的写入操作而要消耗的功率水平。稍后将参考图7描述由功率水平计算器211计算写入操作的功耗水平的方法。
命令调度器212可以管理从主机接收的写入/读取请求以改进存储器设备100的性能。例如,可以根据从主机接收的写入请求将多个写入命令排队到命令队列231中。命令调度器212可以按顺序或无序方式向存储器设备100提供多个排队的写入命令。根据实施例,命令调度器212可以基于由功率水平计算器211计算的写入功率的水平来调度多个排队的写入命令。命令调度器212可以调整向存储器设备100提供多个排队的写入命令的时序。命令调度器212的调度方法可以在后面参考图10描述。
处理器220可以包括中央处理设备或微处理器,并且可以控制存储器控制器200的整体操作。例如,处理器220可以被配置为驱动控制存储器控制器200的软件或固件。软件或者固件可以加载到RAM 230中并被驱动。RAM230可以用作处理器220的操作存储器、高速缓冲存储器或缓冲存储器。在RAM 230中,可以临时存储要写入存储器设备100的写入数据,并且也可以临时存储从存储器设备100读出的读取数据。
在实施例中,命令队列231可以存储在RAM 230中。根据从主机接收的写入请求,可以在命令队列231中将多个命令排队。例如,写入命令和读取命令可以排队。另外,由交错控制器210生成的预读取命令可以在命令队列231中排队。命令队列231将在后面参考图8A进行描述。
主机接口240与主机接口以从主机接收存储器操作的请求。例如,主机接口240可以从主机HOST接收读取和写入数据的各种请求,并且生成关于存储器设备100执行存储器操作的各种内部信号以响应请求。
存储器接口250可以提供存储器控制器200和存储器设备100之间的接口。例如,可以经由存储器接口250向存储器设备100发送写入数据和从存储器设备100接收读取数据。此外,存储器接口250可以向存储器设备100提供命令和地址。存储器接口250还可以从存储器设备100接收各种信息并将该信息提供给存储器控制器200。
图6是示出根据示例实施例的存储器控制器200的操作方法的流程图。
参考图1和图6,在S10中,存储器控制器200可以从主机HOST接收写入请求和写入数据。基于所接收的写入请求,存储器控制器200可以将多个写入命令排队在命令队列中。
在S20中,存储器控制器200的交错控制器210可以确定排队的写入命令的数量是否超过参考值。在实施例中,交错控制器210可以确定对应于不同存储体的写入命令的数量是否超过参考值。
此时,假设当执行根据写入命令的写入操作时在一个存储体中消耗的写入功率的水平是最大的,则参考值可以指示根据交错操作同时可访问的存储体的数量的最大值。例如,当在写入操作的交错操作中存储器设备100消耗的功率的最大水平是32、并且根据写入命令写入一个存储体所消耗的写入功率的最大水平是8时,参考值是4。
在S30中,当排队的写入命令的数量不超过参考值时,交错控制器210可以控制存储器设备100根据排队的写入命令执行交错操作。
交错控制器210可以控制存储器设备100关于排队的写入命令执行交错操作,而不预先根据写入操作计算功耗。例如,当排队的写入命令的数量不超过参考值时,交错控制器210可以并行地将排队的写入命令发送到存储器设备100,存储器设备100可以不超过可以在交错操作中消耗的电力水平的上限,而不管响应于每个写入命令在写入操作中不同存储体中实际消耗的写入功率的水平。
在S40中,当排队的写入命令的数量超过参考值时,交错控制器210可以计算响应于至少一些写入命令在存储器设备100中消耗的写入功率的水平。例如,排队的写入命令的数量可以是10,并且至少一些写入命令的数量可以是6,如图9所示。稍后将参考图7详细描述S40。
在S50中,交错控制器210可以基于在S40中计算的写入功率的水平来调度执行交错操作的交错命令。交错命令可以是排队的写入命令中的至少一些写入命令。稍后将参考图10详细描述S50。在该图中,示出了S40和S50顺序执行,但是根据本发明构思的存储器控制器200的操作方法不限于此。S40和S50可以重叠并且并行执行。
在S60中,存储器控制器200可以基于执行交错操作的调度的交错命令,控制存储器设备100关于写入命令执行交错操作。例如,存储器控制器200可以将调度的交错命令接连发送到存储器设备100。
根据本发明构思的实施例的存储器控制器200的操作方法,存储器控制器200可以根据排队的写入命令的数量来确定是否执行S40和S50。因此,可以减少存储器控制器200的操作时间(通过避免S40和S50的不必要的执行)。
此外,当排队的写入命令的数量超过参考值时,存储器控制器200可以根据由于写入操作而要消耗的功率来调度写入操作,使得执行交错操作的写入命令的数量可以增加,并且可以更有效地管理由于写入操作导致的存储器设备100的功耗。
图7是示出根据示例实施例的存储器控制器200使用的方法、并且示出了图6中的S40的示例实施例的流程图。
参考图5至图7,在S410中,交错控制器210,例如,功率水平计算器211可以从排队的写入命令中选择至少一些写入命令以计算功率。在S410中,可以关于所选择的一些写入命令中的每一个执行以下操作(S420至S490)。在示例实施例中,功率水平计算器211可以仅对排队的写入命令中的所选择的写入命令计算写入功率。因此,可以改进存储器设备100的写入速度和/或功耗。
在S420中,功率水平计算器211可以检查是否存在关于目标存储体的读取命令,该读取命令在所选择的写入命令之前。例如,功率水平计算器211可以检查关于目标存储体的读取命令当前是否未决或者存储器设备100是否正根据读取命令执行读取操作。此时,目标存储体可以指示所选择的写入命令中的一个的目标存储体。在S420中,功率水平计算器211可以检查关于每个所选择的写入命令是否存在读取命令。
在S430中,当不存在关于目标存储体的读取命令时,所述读取命令在所选择的写入命令之前,功率水平计算器211可以检查是否存在关于所选择的写入命令的目标存储体的另一写入命令,其在所选择的写入命令之前。当不存在关于目标存储体的读取命令或其他写入命令时,所述读取或写入命令在所选择的写入命令之前,则可以执行S440和S450。
在S440中,功率水平计算器211可以生成预读取命令。此时,预读取命令可以是关于要写入与所选择的写入命令对应的写入数据的地址的读取命令。
在S450中,功率水平计算器211可以将通过预读取命令读取的预读取数据与对应于所选择的写入命令的写入数据进行比较,以计算要消耗的写入功率的水平。
由于存储器设备100执行数据比较写入(DCW)操作,因此,当接收到写入命令时,存储器设备100可将先前已写入和存在的数据与要写入的写入数据进行比较,并仅关于具有其他数据的存储器单元执行覆写操作。由于写入操作而消耗的功率大小可能根据现有数据和写入数据之间的差异而不同。因此,功率水平计算器211可以在生成并向存储器设备100提供预读取命令之后将预读取数据与写入数据进行比较,并基于预读取数据和写入数据之间的差异来计算要由写入操作所消耗的功率水平。
当在所选择的写入命令之前存在另一写入命令时,可以执行S460。在S460中,功率水平计算器211可以通过假设写入功率的水平是最大值而不生成预读取命令来计算由于写入操作而要消耗的写入功率的水平。当已经执行关于目标存储体的另一写入操作以执行写入操作时,可以在完成执行的写入操作之后执行所选择的写入命令的写入操作。因此,为了改进存储器设备100的写入等待时间或数据带宽,交错控制器210可以通过假设写入功率的水平具有最大值而不生成预读取命令来计算功率水平计算S40中的写入功率的水平,在这种情况下,存在存储体冲突的可能性。
当在所选择的写入命令之前存在读取命令时,可以执行S470。在S470中,功率水平计算器211可以确认对应于读取命令的行地址是否与对应于所选择的写入命令的行地址相同。例如,在S470中,功率水平计算器211可以确认对应于读取命令的页面是否与对应于所选择的写入命令的目标页面相同。当对应于读取命令的页面与对应于所选择的写入命令的目标页面相同时,可以将其称为“页面命中”。
在S480中,当对应于读取命令的行地址与对应于所选择的写入命令的行地址不同时,功率水平计算器211可以假设由于写入操作而要消耗的写入功率的水平是最大值而不生成预读取命令。当已经执行关于目标存储体的另一读取操作以执行读取操作时,可以在完成执行的读取操作之后执行关于所选择的写入命令的写入操作。因此,为了改进存储器设备100的写入等待时间或数据带宽,交错控制器210可以在功率水平计算S40中假设功耗水平具有最大值而不生成预读取命令,在这种情况下存在存储体冲突的可能性,并且可以在后面的操作中基于具有最大值的功率水平执行命令调度操作(例如,图6中的S50)。
当对应于所选择的写入命令的行地址与对应于读取命令的行地址相同时,可以执行S490。例如,当所选择的写入命令的目标页面与对应于读取命令的页面相同时,可以执行S490。在S490中,功率水平计算器211可以将响应于读取命令而读取的读取数据与写入数据进行比较,以计算由于写入操作而要消耗的写入功率的水平。由于先前已经执行了关于与所选择的写入命令相对应的目标页面的读取命令,所以功率水平计算器211可能不需要生成单独的预读取命令来计算写入功率水平。功率水平计算器211可以使用读取数据来计算由于所选择的写入命令的写入操作而要消耗的功率水平。在实施例中,当由于读取命令而读取的读取数据存储在存储器控制器200的RAM230中时,可以在执行S480之后立即执行S490。在实施例中,当关于目标页面的读取命令在命令队列231中未决时或者当读取命令被提供给存储器设备100但是读取数据尚未被存储器控制器200接收时,可以在S480完成后等待一段时间后执行S490。
在示例实施例中,命令调度器212可以在结束由功率水平计算器211计算所有所选择的写入命令的写入功率的水平之前,基于由功率水平计算器211计算的写入功率的水平来执行调度排队的写入命令。例如,命令调度器212可以执行调度一些写入命令,同时功率水平计算器211计算与一些写入命令相对应的写入功率的水平。
图8A是示出图5中的命令队列231的示例实施例的表。图8B是示出通过执行图7中的S440由图5中的交错控制器210生成的预读取命令排队的命令队列的示例实施例的表。
参考图5和8A,根据从主机接收的写入请求,可以在命令队列231中将多个命令排队。命令队列231可以包括写入命令被排队的写入命令队列231_1和读取命令被排队的读取命令队列231_2。
在实施例中,命令可以按照从主机接收写入请求和读取请求的次序在写入命令队列231_1和读取命令队列231_2中排队。例如,可以根据从主机接收写入请求的次序,在写入命令队列231_1中顺序地将第一写入命令WCMD0至第十写入命令WCMD9排队。第一读取命令RCMD0和第二读取命令RCMD1可以根据从主机接收读取请求的次序在读取命令队列231_2中顺序地排队。图8A中所示的写入命令队列231_1和读取命令队列231_2仅是用于说明包括在存储器控制器200中的交错控制器210的操作的示例。本发明构思的存储器控制器的操作方法不限于图8A。虽然图8A示出了单独地配置写入命令队列231_1和读取命令队列231_2,但其不限于此。作为示例,读取命令和写入命令可以组合成一个命令队列231。
可以关于来自第一写入命令WCMD0至第十写入命令WCMD9中的写入命令执行图6中的S30,所述第一写入命令WCMD0至第十写入命令WCMD9在写入命令队列231_1中排队并且不超过参考值。另外,可以关于超过参考值的写入命令执行图6中的S40至S60。例如,当参考值是4时,可以关于相对较早排队的第一写入命令WCMD0至第四写入命令WCMD3执行S30,并且可以关于剩余的写入命令WCMD5至WCMD9执行S40至S60。
参考图8A至图8B,交错控制器210可以结合没有先前读取命令或其他先前写入命令的写入命令(例如,第五写入命令WCMD4、第八写入命令WCMD7、第九写入命令WCMD8和第十写入命令WCMD9)执行S440和S450。分别对应于写入命令WCMD4、WCMD7、WCMD8和WCMD9的预读取命令pre_RCMD0、pre_RCMD1、pre_RCMD2和pre_RCMD3可以在执行S440时生成。预读取命令pre_RCMD0、pre_RCMD1、pre_RCMD2和pre_RCMD3可以按照对应写入命令WCMD4、WCMD7、WCMD8和WCMD9的次序排列在预读取命令队列231_2'中。因此,图5中的命令队列231还可以包括预读取命令队列231_2'。
图9是用于说明图6中的S30和图7中的S40的示例实施例、并且示出了由功率水平计算器211计算的与每个写入命令相对应的写入功率的水平的值的图。
参考图8A、图8B和图9,例如,由写入操作引起的写入功率的水平可以分为8个水平(水平1到水平8),并且水平越高,功耗越高。然而,这仅是示例,并且写入功率的水平可以被不同地细分。
交错控制器210的功率水平计算器(例如,图5中的211)可以将分别对应于命令队列中排队的第一写入命令WCMD0至第十写入命令WCMD 9中的、不超过参考值(例如,假定参考值为4)的写入命令WCMD0至WCMD3的写入功率的水平计算为最大值(水平8)。例如,功率水平计算器211可以通过将写入功率的水平假设为最大值(水平8)来计算分别对应于写入命令WCMD0至WCMD3的写入功率的水平,而不关于第一写入命令WCMD0至第四写入命令WCMD3执行图6中的S40至S60。
功率水平计算器211可以计算关于超过参考值的至少一些写入命令WCMD4至WCMD9的写入功率的水平。例如,可以计算关于超过参考值的所有写入命令WCMD4至WCMD9的写入功率的水平。
功率水平计算器211可以生成对应于第五写入命令WCMD4、第八写入命令WCMD7、第九写入命令WCMD8和第十写入命令WCMD9的预读取命令pre_RCMD0、pre_RCMD1、pre_RCMD2和pre_RCMD3,第五写入命令WCMD4、第八写入命令WCMD7、第九写入命令WCMD8和第十写入命令WCMD9不具有先前的读取命令或其他先前的写入命令(图7中的S440)。预读取命令pre_RCMD0、pre_RCMD1、pre_RCMD2和pre_RCMD3在第五写入命令WCMD4、第八写入命令WCMD7、第九写入命令WCMD8和第十写入命令WCMD9之前被提供给存储器设备100,并且功率水平计算器211可以比较写入数据与由预读取命令pre_RCMD0、pre_RCMD1、pre_RCMD2和pre_RCMD3接收的预读取数据,以计算写入功率的水平。例如,分别对应于第五写入命令WCMD4、第八写入命令WCMD7、第九写入命令WCMD8和第十写入命令WCMD9的写入功率的水平可以分别计算在3、4、4和3水平中。
功率水平计算器211可以假设关于(其中存在关于目标存储体的另一先前写入命令的)第六写入命令WCMD5的写入功率的水平为最大值(水平8),以计算写入功率的水平(图7中的S460)。
另外,当存在先前读取命令RCMD1、并且对应于读取命令RCMD1的存储体BANK 6与对应于第七写入命令WCMD6的目标存储体BANK 6相同时,特别是当对应于读取命令RCMD1的页面与对应于第七写入命令WCMD6的目标页面相同时,功率水平计算器211可以将由读取命令RCMD1读取的读取数据与对应于第七写入命令WCMD6的写入数据进行比较,以计算写入功率的水平(图7中的S490)。例如,对应于第七写入命令WCMD6的写入功率的水平可以被计算为水平6。
然而,与图7的S490中所示的不同,当对应于先前读取命令的存储体与对应于第七写入命令WCMD6的目标存储体相同、但是对应于先前读取命令RCMD1的页面与对应于第七写入命令WCMD6的目标页面不同时,功率水平计算器211可以将写入功率的水平假设为最大值(水平8)以计算写入功率的水平(图7中的S480)。
图10是示出根据示例实施例的存储器控制器200的操作方法、并且示出图6中的S50的示例实施例的流程图。
参考图5和图10,在S510中,交错控制器210(例如,图5中的命令调度器212)可以在命令队列231中排队的写入命令中选择交错命令以执行交错操作。例如,交错命令可以是排队的写入命令的至少一部分。
在S520中,命令调度器212可以计算由于根据交错命令的交错操作而要消耗的交错功率水平。例如,命令调度器212可以将由于根据每个交错命令的写入操作而在存储器设备100中要消耗的写入功率的水平求和,以计算交错功率水平。
在S530中,命令调度器212可以确定所计算的交错功率水平是否超过参考功率水平。可以将参考功率水平设置为当存储器设备100根据交错操作对多个存储体执行写入操作时可用的最大功率水平。
当交错功率水平不超过参考功率水平时,在S540中,命令调度器212可以调度交错命令。例如,命令调度器212可以调度交错命令以使交错命令能够顺序地发送到存储器设备100。
同时,当交错功率水平超过参考功率水平时,命令调度器212可以在返回到S510时在命令队列231中排队的写入命令中重新选择执行交错操作的交错命令以满足参考功率水平。例如,命令调度器212可以排除先前选择的交错命令中的至少一个以选择其他交错命令。替代地,例如,命令调度器212可以排除先前选择的交错命令中的至少一个,并选择未被选择的另一写入命令作为交错命令。
在S550中,命令调度器212可以检查是否存在未调度的排队的写入命令。当存在未调度的排队的写入命令时,命令调度器212可以再次执行S510至S540。
根据本发明构思的存储器控制器200的操作方法可以在根据每个写入命令初步计算写入功率的水平之后,考虑由于多个写入命令的交错操作引起的交错功率水平来控制交错操作。因此,可以增加用于执行交错操作的写入命令的数量以减少写入操作所需的时间,并且可以有效地管理由于写入操作导致的存储器设备100的功耗。
图11是用于说明图10中的S50的示例实施例的时序图。图11是示出目标存储体根据要发送到存储器设备100的命令执行写入操作或读取操作的时间的图。
参考图9、图10和图11,命令调度器(例如,图5中的212)可以调度在命令队列中排队的第一写入命令WCMD0至第十写入命令WCMD9中的、不超过参考值(例如,4)的第一写入命令WCMD0至第四写入命令WCMD3以执行交错操作。例如,命令调度器212可以调度第一写入命令WCMD0至第四写入命令WCMD3,使得存储器控制器200可以将第一写入命令WCMD0至第四写入命令WCMD3顺序地发送至存储器设备100,并且存储器设备100可以在一段时间期间同时执行根据第一写入命令WCMD0至第四写入命令WCMD3的写入操作。
在S510中,命令调度器212可以与第一写入命令WCMD0至第四写入命令WCMD3一起选择第五写入命令WCMD4。在S520中,计算的交错功率水平是水平35(8+8+8+8+3)并且超过参考功率水平(例如,水平32)。因此,命令调度器212可以将第五写入命令WCMD4调度为在根据第一写入命令WCMD0的写入操作结束的时间点t1之后提供给存储器设备。例如,命令调度器212可以调度第二写入命令WCMD1至第五写入命令WCMD4,使得存储器控制器200可以顺序地将第二写入命令WCMD1至第五写入命令WCMD4发送到存储器设备100,并且在时间点t1之后,存储器设备100可以在一段时间期间根据第二写入命令WCMD1至第五写入命令WCMD4同时执行写入操作。
再次在S510中,命令调度器212可以与第二写入命令WCMD1至第五写入命令WCMD4一起选择第六写入命令WCMD5。在S520中,计算的交错功率水平是水平35(8+8+8+3+8)并且超过参考功率水平32。在根据第二写入命令WCMD1的写入操作结束的时间点t2之后,存储器设备100可以根据第三写入命令WCMD2至第五写入命令WCMD4与第六写入命令WCMD5一起执行交错操作。因此,命令调度器212可以将第六写入命令WCMD5调度为在根据第二写入命令WCMD1的写入操作结束的时间点t2之后提供给存储器设备。例如,命令调度器212可以调度第三写入命令WCMD2至第六写入命令WCMD5,使得存储器控制器200可以顺序地将第三写入命令WCMD2至第六写入命令WCMD5发送到存储器设备100,并且在时间点t2之后,存储器设备100可以在一段时间期间根据第三写入命令WCMD2至第六写入命令WCMD5同时执行写入操作。
再次在S510中,命令调度器212可以与第三写入命令WCMD2至第六写入命令WCMD5一起选择第七写入命令WCMD6。在S520中,计算的交错功率水平是水平33(8+8+3+8+6)并且超过参考功率水平32。在根据第三写入命令WCMD2的写入操作结束的时间点t3之后,存储器设备100可以根据第四写入命令WCMD3至第六写入命令WCMD5与第七写入命令WCMD6一起执行交错操作。因此,命令调度器212可以将第七写入命令WCMD6调度为在根据第三写入命令WCMD2的写入操作结束的时间点t3之后提供给存储器设备100。
再次在S510中,命令调度器212可以与第四写入命令WCMD3至第七写入命令WCMD6一起选择第八写入命令WCMD7。在S520中,计算的交错功率水平是水平29(8+3+8+6+4)并且具有等于或小于参考功率水平32的功率水平。因此,在根据第三写入命令WCMD2的写入操作结束的时间点t3之后,命令调度器212可以调度要提供给存储器设备的第七写入命令WCMD6和第八写入命令WCMD7。例如,命令调度器212可以调度第四写入命令WCMD3至第八写入命令WCMD7,使得存储器控制器200可以顺序地将第四写入命令WCMD3至第八写入命令WCMD7发送到存储器设备100,并且在时间点t3之后,存储器设备100可以在一段时间期间根据第四写入命令WCMD3至第八写入命令WCMD7同时执行写入操作。
再次在S510中,命令调度器212可以与第四写入命令WCMD3至第八写入命令WCMD7一起选择第九写入命令WCMD8。在S520中,计算的交错功率水平是水平33(8+3+8+6+4+4)并且超过参考功率水平32。在根据第四写入命令WCMD3的写入操作结束的时间点t4之后,存储器设备100可以根据第五写入命令WCMD4至第八写入命令WCMD7与第九写入命令WCMD8一起执行交错操作。因此,命令调度器212可以将第九写入命令WCMD8调度为在根据第四写入命令WCMD3的写入操作结束的时间点t4之后提供给存储器设备。
再次在S510中,命令调度器212可以与第五写入命令WCMD4至第九写入命令WCMD8一起选择第十写入命令WCMD9。在S520中,计算的交错功率水平是水平28(3+8+6+4+4+3)并且具有等于或小于参考功率水平32的功率水平。因此,在根据第四写入命令WCMD3的写入操作结束的时间点t4之后,命令调度器212可以调度要提供给存储器设备100的第九写入命令WCMD8和第十写入命令WCMD9。例如,命令调度器212可以调度第五写入命令WCMD4至第十写入命令WCMD9,使得存储器控制器200可以顺序地将第五写入命令WCMD4至第十写入命令WCMD9发送到存储器设备100,并且在时间点t4之后,存储器设备100可以在一段时间期间根据第五写入命令WCMD4至第十写入命令WCMD9同时执行写入操作。
图12A是用于说明图10中的S50的示例实施例的时序图。图12A是示出目标存储体根据要发送到存储器设备100的命令执行写入操作或读取操作的时间的图。
参考图9、图10和图12A,命令调度器(例如,图5中的212)可以调度在命令队列中排队的第一写入命令WCMD0至第十写入命令WCMD9中的、不超过参考值(例如,4)的第一写入命令WCMD0至第四写入命令WCMD3以执行交错操作。例如,命令调度器212可以调度第一写入命令WCMD0至第四写入命令WCMD3,使得存储器控制器200可以将第一写入命令WCMD0至第四写入命令WCMD3顺序地发送到存储器设备100,并且存储器设备100可以在一段时间期间根据第一写入命令WCMD0至第四写入命令WCMD3同时执行写入操作。
在S510中,命令调度器212可以与第一写入命令WCMD0至第四写入命令WCMD3一起选择第五写入命令WCMD4。在S520中,计算的交错功率水平是水平35(8+8+8+8+3)并且超过参考功率水平32。因此,命令调度器212可以将第五写入命令WCMD4调度为在根据第一写入命令WCMD0的写入操作结束的时间点t1之后提供给存储器设备100。
再次在S510中,命令调度器212可以与第二写入命令WCMD1至第五写入命令WCMD4一起选择第八写入命令WCMD7。在S520中,计算的交错功率水平是水平31(8+8+8+3+4)并且具有等于或小于参考功率水平32的功率水平。因此,在根据第一写入命令WCMD0的写入操作结束的时间点t1之后,命令调度器212可以调度要提供给存储器设备的第五写入命令WCMD4和第八写入命令WCMD7。例如,命令调度器212可以调度第二写入命令WCMD1至第五写入命令WCMD4和第八写入命令WCMD7,使得存储器控制器200可以顺序地将第二写入命令WCMD1至第五写入命令WCMD4和第八写入命令WCMD7发送到存储器设备100,并且在时间点t1之后,存储器设备100可以在一段时间期间根据第二写入命令WCMD1至第五写入命令WCMD4和第八写入命令WCMD7同时执行写入操作。
再次在S510中,当第二写入命令WCMD1的写入操作在时间点t2结束时,命令调度器212还可以与第三写入命令WCMD2、第四写入命令WCMD3、第五写入命令WCMD4和第八写入命令WCMD7一起选择第九写入命令WCMD8和第十写入命令WCMD9。在S520中,计算的交错功率水平是水平30(8+8+3+4+4+3)并且具有等于或小于参考功率水平32的功率水平。因此,命令调度器212可以将第九写入命令WCMD8和第十写入命令WCMD9调度为在根据第二写入命令WCMD1的写入操作结束的时间点t2之后提供给存储器设备100。例如,命令调度器212可以调度第三写入命令WCMD2至第五写入命令WCMD4以及第八写入命令WCMD7至第十写入命令WCMD9,使得存储器控制器200可以向存储器设备100顺序地发送第三写入命令WCMD2至第五写入命令WCMD4和第八写入命令WCMD7至第十写入命令WCMD9,并且在时间点t2之后,存储器设备100可以在一段时间期间根据第三写入命令WCMD2至第五写入命令WCMD4以及第八入命令WCMD7至第十写入命令WCMD9同时执行写入操作。
再次在S510中,当在时间点t3结束根据第三写入命令WCMD2的写入操作时,命令调度器212可以进一步与第四写入命令WCMD3、第五写入命令WCMD4、第八写入命令WCMD7、第九写入命令WCMD8和第十写入命令WCMD9一起选择第七写入命令WCMD6。在S520中,计算的交错功率水平是水平28(8+3+4+4+3+6)并且具有等于或小于参考功率水平32的功率水平。因此,命令调度器212可以将第七写入命令WCMD6调度为在根据第三写入命令WCMD2的写入操作结束的时间点t3之后提供给存储器设备。例如,命令调度器212可以调度第四写入命令WCMD3和第五写入命令WCMD4、第八写入命令WCMD7至第十写入命令WCMD9、以及第七写入命令WCMD6,使得存储器控制器200可以向存储器设备100顺序地发送第四写入命令WCMD3和第五写入命令WCMD4、第八写入命令WCMD7至第十写入命令WCMD9、以及第七写入命令WCMD6,并且在时间点t3之后,存储器设备100可以在一段时间期间根据第四写入命令WCMD3和第五写入命令WCMD4、第八写入命令WCMD7至第十写入命令WCMD9、以及第七写入命令WCMD6同时执行写入操作。
再次在S510中,当在时间点t4结束根据第四写入命令WCMD3的写入操作时,命令调度器212可以进一步与第五写入命令WCMD4、第八写入命令WCMD7至第十写入命令WCMD9、以及第七写入命令WCMD6一起选择第六写入命令WCMD5。在S520中,计算的交错功率水平是水平28(3+4+4+3+6+8)并且具有等于或小于参考功率水平32的功率水平。因此,命令调度器212可以将第六写入命令WCMD5调度为在根据第四写入命令WCMD3的写入操作结束的时间点t4之后提供给存储器设备。例如,命令调度器212可以调度第五写入命令WCMD4、第八写入命令WCMD7至第十写入命令WCMD9、第七写入命令WCMD6、以及第六写入命令WCMD5,使得存储器控制器200可以向存储器控制器100顺序地发送第五写入命令WCMD4、第八写入命令WCMD7至第十写入命令WCMD9、第七写入命令WCMD6、以及第六写入命令WCMD5,并且在时间点t4之后,存储器设备100可以在一段时间期间根据第五写入命令WCMD4、第八写入命令WCMD7至第十写入命令WCMD9、第七写入命令WCMD6、以及第六写入命令WCMD5同时执行写入操作。
参考图11和图12A,根据本发明构思的存储器控制器200的操作方法可以在根据每个写入命令初步计算写入功率的水平之后,考虑由于多个写入命令的交错操作引起的交错功率水平来控制交错操作。因此,可以增加通过交错操作同时使用的可访问的存储体的数量,而不限于特定值。另外,可以有效地管理由于写入操作引起的存储器设备100的功耗。
图12B是图5中的命令队列231的示例实施例的表,并且是说明根据图12A中描述的命令调度器的操作而改变的命令队列的图。
参考图8A、图12A和图12B,命令调度器212可以预先计算要消耗的交错功率水平并调度交错命令。命令调度器212可以控制图12B中的写入命令队列231_1',其中图8A中的写入命令队列231_1中包括的至少一些写入命令的次序被改变。图8A中的写入命令队列231_1可以是根据从主机接收写入请求的次序顺序存储第一写入命令WCMD0至第十写入命令WCMD9的写入命令队列。替代地,图12B中的写入命令队列231_1'可以是新存储的以在将第十写入命令WCMD9发送到存储器设备100之后发送第七写入命令WCMD6,并且在将第七写入命令WCMD6发送到存储器设备100之后发送第六写入命令WCMD5。存储器控制器200可以基于在图12B中的写入命令队列231_1'中排队的写入命令的次序,将写入命令发送到存储器设备100。
尽管已经参考其实施例具体示出和描述了本发明构思,但是应当理解,在不脱离所附权利要求的精神和范围的情况下,本文可以在形式和细节上进行各种改变。
Claims (20)
1.一种用于控制包括多个存储体的存储器设备的存储器控制器的操作方法,所述操作方法包括:
确定在存储器控制器的命令队列中排队的写入命令的数量是否超过参考值;
响应于排队的写入命令的数量超过参考值,计算响应于排队的写入命令中的至少一些写入命令而由存储器设备消耗的写入功率的水平;以及
基于所计算的写入功率的水平,从排队的写入命令中调度执行存储器设备的第一交错操作的交错命令。
2.如权利要求1所述的操作方法,还包括:
当排队的写入命令的数量不超过参考值时,通过向存储器设备顺序地发送排队的写入命令来控制存储器设备的第二交错操作。
3.如权利要求1所述的操作方法,其中,所述参考值是当根据写入操作在一个存储体中消耗的写入功率的水平具有最大值时可同时访问的存储体的数量的最大值。
4.如权利要求1所述的操作方法,其中,确定排队的写入命令的数量是否超过参考值包括:确定排队的写入命令中的、分别与作为写入数据的目标存储体的不同的存储体对应的写入命令的数量是否超过参考值。
5.如权利要求1所述的操作方法,其中,计算写入功率的水平包括:
从排队的写入命令中选择至少一些写入命令,以计算与每个所选择的写入命令相对应的功率水平;以及
检查是否存在与第一选择的写入命令的目标存储体相对应并且在第一选择的写入命令之前的读取命令。
6.如权利要求5所述的操作方法,其中,计算写入功率的水平还包括:
当在第一选择的写入命令之前不存在读取命令和写入命令两者时,在第一选择的写入命令之前生成预读取命令;以及
将响应于预读取命令从存储器设备的目标存储体读取的预读取数据与对应于第一选择的写入命令的写入数据进行比较,以计算第一选择的写入命令的写入功率的水平。
7.如权利要求5所述的操作方法,其中,计算写入功率的水平还包括:
响应于确定不存在读取命令,检查是否存在与第一选择的写入命令的目标存储体相对应并且在第一选择的写入命令之前的第二写入命令;以及
当在第一选择的写入命令之前存在第二写入命令时,将对应于第一选择的写入命令的写入功率的水平计算为具有最大值。
8.如权利要求5所述的操作方法,其中,计算写入功率的水平还包括:
当在第一选择的写入命令之前存在读取命令时,检查对应于第一选择的写入命令的行地址和对应于读取命令的行地址是否彼此相同。
9.如权利要求8所述的操作方法,其中,计算写入功率的水平还包括:
当对应于第一选择的写入命令的行地址不同于对应于读取命令的行地址时,将对应于第一选择的写入命令的写入功率的水平计算为具有最大值。
10.如权利要求8所述的操作方法,其中,计算写入功率的水平还包括:
当对应于第一选择的写入命令的行地址与对应于读取命令的行地址相同时,将响应于读取命令从存储器设备的目标存储体读取的读取数据与对应于第一选择的写入命令的写入数据进行比较,以计算第一选择的写入命令的写入功率的水平。
11.如权利要求1所述的操作方法,其中,调度交错命令包括:
从排队的写入命令中选择执行第一交错操作的交错命令;
根据所选择的交错命令,计算由于第一交错操作而要在存储器设备中消耗的交错功率的水平;
确定交错功率的水平是否超过参考功率水平;以及
当交错功率的水平等于或小于参考功率水平时,调度交错命令。
12.如权利要求11所述的操作方法,其中,调度交错命令还包括:
当第一交错操作中的交错功率的水平超过参考功率水平时,选择执行第三交错操作的交错命令。
13.如权利要求11所述的操作方法,其中,参考功率水平是当存储器设备根据第一交错操作对存储体执行写入操作时可用的功率水平的最大值。
14.一种用于控制包括多个存储体的存储器设备的交错操作的存储器控制器,所述存储器控制器包括:
功率水平计算器,被配置为计算响应于要提供给存储器设备的多个写入命令中的至少一些要在存储器设备中消耗的写入功率的水平;以及
命令调度器,被配置为基于所计算的写入功率的水平,从多个写入命令中调度执行存储器设备的交错操作的交错命令,
其中功率水平计算器响应于所述多个写入命令的数量超过参考值计算写入功率的水平。
15.如权利要求14所述的存储器控制器,其中,所述参考值是当根据写入操作在一个存储体中消耗的写入功率的水平具有最大值时可同时访问的存储体的数量的最大值。
16.如权利要求14所述的存储器控制器,其中,当不存在与第一选择的写入命令的目标存储体相对应并且在第一选择的写入命令之前的读取或写入命令时,功率水平计算器生成对应于第一选择的写入命令的预读取命令。
17.如权利要求14所述的存储器控制器,其中,当存在与第一选择的写入命令的目标存储体相对应并且在第一选择的写入命令之前的另一写入命令时,功率水平计算器将与第一选择的写入命令相对应的写入功率的水平计算为具有最大值。
18.如权利要求14所述的存储器控制器,其中,当存在与第一选择的写入命令的目标页面相对应并且在所述第一选择的写入命令之前的读取命令时,所述功率水平计算器将从所述存储器设备的目标页面读取的读取数据与对应于第一选择的写入命令的写入数据进行比较,以计算写入功率的水平。
19.一种存储器系统,包括:
存储器设备,包括多个存储体,并且被配置为执行数据比较写入操作;以及
存储器控制器,被配置为控制存储器设备的交错操作,
其中,存储器控制器包括:
功率水平计算器,被配置为计算响应于要提供给存储器设备的多个写入命令中的至少一些要在存储器设备中消耗的写入功率的水平,以及
命令调度器,被配置为基于所计算的写入功率的水平,从所述多个写入命令中调度执行存储器设备的交错操作的交错命令,
其中功率水平计算器响应于所述多个写入命令的数量超过参考值计算写入功率的水平。
20.如权利要求19所述的存储器系统,其中所述存储器设备包括多个电阻存储器单元。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180104780A KR102553264B1 (ko) | 2018-09-03 | 2018-09-03 | 메모리 컨트롤러 및 이의 동작 방법 |
KR10-2018-0104780 | 2018-09-03 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110875077A true CN110875077A (zh) | 2020-03-10 |
Family
ID=69639979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910609034.3A Pending CN110875077A (zh) | 2018-09-03 | 2019-07-08 | 存储器控制器及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10990523B2 (zh) |
KR (1) | KR102553264B1 (zh) |
CN (1) | CN110875077A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114063900A (zh) * | 2020-07-29 | 2022-02-18 | 美光科技公司 | 时序参数调整机制 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10922242B2 (en) * | 2018-10-09 | 2021-02-16 | Western Digital Technologies, Inc. | Adaptable logical to physical tables for multiple sector pattern support |
KR20210081093A (ko) * | 2019-12-23 | 2021-07-01 | 주식회사 실리콘웍스 | 메모리 컨트롤러, 및 이의 동작 방법 |
US11971772B2 (en) | 2021-08-31 | 2024-04-30 | Micron Technology, Inc. | Unified sequencer concurrency controller for a memory sub-system |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7471556B2 (en) | 2007-05-15 | 2008-12-30 | Super Talent Electronics, Inc. | Local bank write buffers for accelerating a phase-change memory |
US7889544B2 (en) | 2004-04-05 | 2011-02-15 | Super Talent Electronics, Inc. | High-speed controller for phase-change memory peripheral device |
TW515949B (en) * | 2000-06-08 | 2003-01-01 | Via Tech Inc | Method for scheduling run sequence of read and write requests |
CN101548335B (zh) | 2007-08-01 | 2012-07-11 | 松下电器产业株式会社 | 非易失性存储装置 |
JP2010176646A (ja) | 2009-02-02 | 2010-08-12 | Toshiba Information Systems (Japan) Corp | メモリシステムおよびメモリシステムのインターリーブ制御方法 |
US8570828B2 (en) | 2010-04-12 | 2013-10-29 | Mosaid Technologies Incorporated | Memory programming using variable data width |
US8848465B2 (en) | 2011-07-06 | 2014-09-30 | Samsung Electronics Co., Ltd. | Memory devices including selective RWW and RMW decoding |
KR20140008702A (ko) | 2012-07-11 | 2014-01-22 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 쓰기 방법 |
KR102031661B1 (ko) | 2012-10-23 | 2019-10-14 | 삼성전자주식회사 | 데이터 저장 장치 및 컨트롤러, 그리고 데이터 저장 장치의 동작 방법 |
KR20150121537A (ko) * | 2014-04-21 | 2015-10-29 | 에스케이하이닉스 주식회사 | 멀티 레벨 셀 저항 메모리 장치 및 그의 데이터 기입 방법 |
KR102298607B1 (ko) | 2015-02-17 | 2021-09-06 | 삼성전자주식회사 | 저항성 메모리 시스템 및 저항성 메모리 시스템의 동작 방법 |
KR102608731B1 (ko) * | 2016-05-13 | 2023-12-04 | 에스케이하이닉스 주식회사 | 뱅크 인터리빙 제어 장치 및 이를 포함하는 반도체 장치 |
US9727267B1 (en) * | 2016-09-27 | 2017-08-08 | Intel Corporation | Power management and monitoring for storage devices |
KR102636091B1 (ko) * | 2016-10-14 | 2024-02-14 | 에스케이하이닉스 주식회사 | 저항성 메모리 장치, 이를 위한 선택적 쓰기 장치 및 동작 방법 |
KR102549620B1 (ko) * | 2017-01-10 | 2023-06-28 | 삼성전자주식회사 | 비휘발성 메모리 장치 및 이의 동작 방법 |
US11029859B2 (en) * | 2017-08-23 | 2021-06-08 | Toshiba Memory Corporation | Credit based command scheduling |
-
2018
- 2018-09-03 KR KR1020180104780A patent/KR102553264B1/ko active IP Right Grant
-
2019
- 2019-06-18 US US16/445,005 patent/US10990523B2/en active Active
- 2019-07-08 CN CN201910609034.3A patent/CN110875077A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114063900A (zh) * | 2020-07-29 | 2022-02-18 | 美光科技公司 | 时序参数调整机制 |
CN114063900B (zh) * | 2020-07-29 | 2023-02-24 | 美光科技公司 | 时序参数调整机制 |
US11721395B2 (en) | 2020-07-29 | 2023-08-08 | Micron Technology, Inc. | Timing parameter adjustment mechanisms |
Also Published As
Publication number | Publication date |
---|---|
KR20200026609A (ko) | 2020-03-11 |
US20200073799A1 (en) | 2020-03-05 |
KR102553264B1 (ko) | 2023-07-07 |
US10990523B2 (en) | 2021-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10990523B2 (en) | Memory controller and operating method thereof | |
US10529421B2 (en) | Memory system having resistive memory device for scheduling write command and operating method thereof | |
US9558821B2 (en) | Resistive memory device and method of operating the same | |
US8189422B2 (en) | Semiconductor device and semiconductor system having the same | |
US10546637B2 (en) | Method of operating resistive memory device reducing read disturbance | |
US8339833B2 (en) | Electrically rewritable nonvolatile semiconductor storage device including a variable resistive element | |
KR102386198B1 (ko) | 저항성 메모리 장치를 구비한 메모리 시스템 및 그의 동작 방법 | |
US20100191900A1 (en) | Nonvolatile memory device and method of operating the same | |
KR20160049872A (ko) | 저항성 메모리 장치, 저항성 메모리 시스템 및 저항성 메모리 장치의 동작방법 | |
US20100290278A1 (en) | Semiconductor memory device rewriting data after execution of multiple read operations | |
US10020052B2 (en) | Resistive memory device and memory system including the same | |
KR20160097049A (ko) | 메모리 장치, 그것의 동작 및 제어 방법 | |
CN111316360A (zh) | 存储器装置上的可选修整设置 | |
KR20140021321A (ko) | 라이트 드라이버 회로, 이를 이용하는 반도체 장치 및 메모리 시스템 | |
JP2022544948A (ja) | コンピューティングメモリシステム | |
US20150234741A1 (en) | Command Execution Using Existing Address Information | |
KR20210047606A (ko) | 메모리 장치 | |
US11307918B2 (en) | Memory controller performing recovery operation, operating method of the same, and memory system including the same | |
KR20200074872A (ko) | 에너지 효율적인 pram 어레이 기입 동작을 수행하는 메모리 장치 및 이를 포함하는 메모리 시스템 | |
CN111312304A (zh) | 执行数据比较写入的存储器设备和包括存储器设备的存储器系统 | |
KR20160049873A (ko) | 저항성 메모리 장치, 저항성 메모리 시스템 및 저항성 메모리 장치의 동작방법 | |
KR20140013384A (ko) | 비휘발성 메모리 장치의 동작 방법 | |
US11183239B2 (en) | Resistive memory device and operating method thereof | |
US11200000B2 (en) | Memory controller and storage device including the same |
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 |