CN110895447B - 控制器及其操作方法 - Google Patents
控制器及其操作方法 Download PDFInfo
- Publication number
- CN110895447B CN110895447B CN201910717632.2A CN201910717632A CN110895447B CN 110895447 B CN110895447 B CN 110895447B CN 201910717632 A CN201910717632 A CN 201910717632A CN 110895447 B CN110895447 B CN 110895447B
- Authority
- CN
- China
- Prior art keywords
- segment
- buffer
- segments
- memory
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 16
- 239000000872 buffer Substances 0.000 claims abstract description 242
- 230000015654 memory Effects 0.000 claims description 189
- 230000003139 buffering effect Effects 0.000 claims 2
- 230000004044 response Effects 0.000 description 33
- 238000012545 processing Methods 0.000 description 21
- 230000006870 function Effects 0.000 description 12
- 238000012937 correction Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 6
- 230000003068 static effect Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 5
- 239000007787 solid Substances 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 230000003936 working memory Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 101000934888 Homo sapiens Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Proteins 0.000 description 2
- 102100025393 Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Human genes 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 235000000332 black box Nutrition 0.000 description 1
- 244000085682 black box Species 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- 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/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- 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/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及一种控制存储器装置的控制器。该控制器包括:缓冲器,包括多个段;以及缓冲器管理器,适于判定每个段的段属性,该段属性表示分配相应段的一种类型或多种类型的缓冲器分配请求,基于相应段的段属性判定每个段的分配优先级,并且当接收到缓冲器分配请求时,基于段属性以及未分配段中的每一个的与段属性相关的分配优先级,分配多个段之中的一个或多个段。
Description
相关申请的交叉引用
本申请要求于2018年9月13日提交的申请号为10-2018-0109656的韩国专利申请的优先权,其全部内容通过引用并入本文。
技术领域
本发明的各个实施例涉及一种控制器,且更特别地,涉及一种用于控制存储器装置的控制器及操作该控制器的方法。
背景技术
计算机环境范例已经转变成能够随时随地使用计算机系统的普适计算。因此,诸如移动电话、数码相机和膝上型计算机的便携式电子装置的使用已经迅速增加。这些便携式电子装置通常使用具有存储器装置即数据存储装置的存储器系统。数据存储装置用作便携式电子装置的主存储器装置或辅助存储器装置。
因为用作存储器装置的数据存储装置不具有机械驱动部件,所以其提供优异的稳定性和耐用性、高信息存取速度以及低功耗。包括具有这种优点的数据存储装置的存储器系统的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡以及固态驱动器(SSD)。
发明内容
本发明的实施例涉及一种控制器及用于操作该控制器的方法,该控制器具有可提高存储器系统性能的数据缓冲器。
根据本发明的实施例,一种用于控制存储器装置的控制器包括:缓冲器,包括多个段;以及缓冲器管理器,适于判定每个段的段属性,该段属性表示分配相应段的一种类型或多种类型的缓冲器分配请求,基于相应段的段属性判定每个段的分配优先级,并且当接收到缓冲器分配请求时,基于段属性和未分配段中的每一个的与段属性相关的分配优先级,分配多个段之中的一个或多个段。
根据本发明的另一实施例,一种用于操作控制存储器装置的控制器的方法包括:判定控制器的缓冲器中的多个段中的每一个的段属性,每个段属性表示分配相应段的一种类型或多种类型的缓冲器分配请求,基于相应段的段属性判定每个段的分配优先级,并且当存在缓冲器分配请求时,基于段属性和未分配段中的每一个的与段属性相关的分配优先级,分配多个段之中的一个或多个段。
根据本发明的另一实施例,一种存储器系统包括:存储器装置;控制器,适于控制该存储器装置执行多个操作,其中该控制器包括:缓冲器,包括多个段,多个段适于缓冲与多个操作相对应的数据;以及缓冲器管理器,适于:针对多个操作中的每一个确定多个段之中的一个或多个可分配段;基于多个操作的确定的可分配段确定多个段中的每一个的分配优先级;并且基于所确定的分配优先级分配多个段之中的至少一个段。
附图说明
图1是示出包括根据本发明的实施例的存储器系统的数据处理系统的框图。
图2示出根据本发明的实施例的存储器系统的存储器装置。
图3示出根据本发明的实施例的缓冲器。
图4示出根据本发明的实施例的缓冲器属性表。
图5示出根据本发明的实施例的缓冲器优先级表。
图6是示出根据本发明的实施例的存储器系统的操作的流程图。
图7至图15示出包括根据本发明的实施例的存储器系统的数据处理系统的示例。
具体实施方式
以下参照附图更详细地描述本发明的各个实施例。然而,本发明可以不同形式实施,因此不应被解释为限于本文阐述的实施例。相反,提供这些实施例以使本公开是彻底的且完整的,并且将本发明的范围全面地传达给本领域的技术人员。在整个本公开中,相同的附图标记在本发明的各个附图和实施例中表示相同的部件。
应注意的是,对“实施例”的参考不一定表示仅针对一个实施例,并且对“实施例”的不同参考不一定针对相同的实施例。
将理解的是,虽然可在本文中使用术语“第一”和/或“第二”来识别各个元件,但是这些元件不应受这些术语的限制。这些术语仅用于将一个元件与另一个元件区分开,否则一个元件与另一个元件具有相同或相似的名称。例如,在不脱离本公开的教导的情况下,在一个实例中的第一元件在另一实例中可被称为第二元件,反之亦然。
将理解的是,当元件被称为“联接”或“连接”到另一元件时,其可以直接联接或连接到另一元件,或者在其间可存在一个或多个中间元件。相反地,应理解的是,当元件被称为“直接联接”或“直接连接”到另一元件时,不存在中间元件。诸如“在……之间”、“直接在……之间”、“相邻于”或“直接相邻于”的解释元件之间的关系的其它表述应以相同的方式解释。除非上下文另有说明,否则无论两个元件是直接还是间接连接/联接,两个元件之间的通信可以是有线的或无线的。
本文使用的术语仅是为了描述特定实施例的目的,并不旨在限制。在本公开中,除非上下文另有明确说明,否则单数形式也旨在包括复数形式,反之亦然。将进一步理解的是,在本说明书中使用的术语“包括”、“包含”、“具有”及其它开放式过渡术语指定存在所陈述的特征、数字、步骤、操作、元件、组件和/或其组合,但并不排除存在或添加一个或多个其它特征、数字、步骤、操作、元件、组件和/或其组合。
本文公开的实施例仅用于理解本公开的技术实质的目的,并且本发明的范围不限于所公开的实施例。本公开所属领域的技术人员将根据本公开内容理解,可在本发明的范围内进行各种修改。
除非另有定义,否则本文使用的包括技术术语和科学术语的所有术语具有与本公开所属领域的普通技术人员通常理解的含义相同的含义。除非在本公开中另有定义,否则这些术语不应被以理想的或过于形式化的方式解释。
现在将参照附图详细描述本发明的各个实施例。
图1是示出根据本发明的实施例的数据处理系统100的框图。
参照图1,数据处理系统100可包括可操作地联接到存储器系统110的主机102。
主机102可包括诸如移动电话、MP3播放器和膝上型计算机的各种便携式电子装置中的任意一种或诸如台式计算机、游戏机、电视(TV)和投影仪的各种非便携式电子装置中的任意一种。
主机102可包括至少一个操作系统(OS),OS可管理和控制主机102的全部功能和操作,并且使用数据处理系统100或存储器系统110提供主机102和用户之间的操作。OS可支持对应于用户的使用目的和用途的功能和操作。例如,根据主机102的移动性,OS可被划分为通用OS和移动OS。根据用户的环境,通用OS可被划分为个人OS和企业OS。例如,配置成支持向普通用户提供服务的功能的个人OS可包括Windows和Chrome,并且配置成保护和支持高性能的企业OS可包括Windows服务器、Linux和Unix。此外,被配置成支持向用户提供移动服务的功能和系统的省电功能的移动OS可包括Android、iOS和Windows Mobile。主机102可包括多个OS,并且执行OS以对存储器系统110执行对应于用户的请求的操作。
存储器系统110可响应于主机102的请求操作以为主机102存储数据。存储器系统110的非限制性示例包括固态驱动器(SSD)、多媒体卡(MMC)、安全数字(SD)卡、通用存储总线(USB)装置、通用闪存(UFS)装置、标准闪存(CF)卡、智能媒体卡(SMC)、个人计算机存储卡国际协会(PCMCIA)卡和记忆棒。MMC可包括嵌入式MMC(eMMC)、尺寸减小的MMC(RS-MMC)和微型-MMC等中的任意一种。SD卡可包括迷你-SD卡和/或微型-SD卡。
存储器系统110可由各种类型的存储装置中的任意一种来实施。这种存储装置的示例包括但不限于诸如DRAM动态随机存取存储器(DRAM)和静态RAM(SRAM)的易失性存储器装置和诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻式RAM(RRAM或ReRAM)和闪速存储器的非易失性存储器装置。闪速存储器可具有三维(3D)堆叠结构。
存储器系统110可包括控制器130和存储器装置150。存储器装置150可为主机102存储数据,并且控制器130可控制将数据存储到存储器装置150中。
控制器130和存储器装置150可集成到单个半导体装置中,该单个半导体装置可被包括在如上所例示的各种类型的存储器系统中的任意一种中。例如,控制器130和存储器装置150可集成为一个半导体装置来构成固态驱动器(SSD)。当存储器系统110用作SSD时,可提高连接到存储器系统110的主机102的操作速度。在另一实施例中,控制器130和存储器装置150可集成为一个半导体装置以构成诸如以下的存储卡:个人计算机存储卡国际协会(PCMCIA)卡,紧凑式闪存(CF)卡,智能媒体(SM)卡,记忆棒,包括尺寸减小的MMC(RS-MMC)和微型-MMC的多媒体卡(MMC),包括迷你-SD、微型-SD和SDHC的安全数字(SD)卡,或通用闪存(UFS)装置。
存储器系统110的非限制性应用示例包括计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航系统、黑盒、数码相机、数字多媒体广播(DMB)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、构成数据中心的存储装置、能够在无线环境下发送/接收信息的装置、构成家庭网络的各种电子装置之一、构成计算机网络的各种电子装置之一、构成远程信息处理网络的各种电子装置之一、射频识别(RFID)装置或构成计算系统的各种组件之一。
存储器装置150可以是即使不供应电力,也保存其中存储的数据的非易失性存储器装置。存储器装置150可通过写入操作来存储从主机102提供的数据,并且通过读取操作将所存储的数据提供到主机102。存储器装置150可包括多个存储块,每个存储块可包括多个页面,每个页面可包括联接到字线的多个存储器单元。在实施例中,存储器装置150可以是闪速存储器。闪速存储器可具有三维(3D)堆叠结构。
图2示出根据本发明的实施例的例如存储器系统110的存储器系统中的例如存储器装置150的存储器装置。
参照图2,如上所述,存储器装置150可包括多个存储块,例如BLOCK0(210)、BLOCK1(220)、BLOCK2(230)、……至BLOCKN-1(240)。存储块210、220、230和240中的每一个可包括多个页面,例如2M个页面,页面的数量可根据电路设计而变化。例如,在一些应用中,存储块中的每一个可包括M个页面。页面中的每一个可包括联接到多个字线WL的多个存储器单元。
根据可存储在一个存储器单元中的位的数量,存储器装置150中包括的存储块中的每一个可以是单层单元(SLC)存储块、多层单元(MLC)存储块、三层单元(TLC)存储块、四层单元(QLC)存储块或更高的多层单元存储块。
根据本发明的实施例,存储器装置150是非易失性存储器,诸如闪速存储器,例如NAND闪速存储器。然而,在其它实施例中,存储器装置150可被实现为以下中的任意一种:相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM或ReRAM)、铁电随机存取存储器(FRAM)、自旋转移力矩磁性随机存取存储器(STT-RAM或STT-MRAM)。
块210、220、230和240中的每一个可通过编程操作存储从主机102提供的数据,并且通过读取操作将存储的数据提供到主机102。
重新参照图1,存储器系统110的控制器130可响应于来自主机102的请求来控制存储器装置150。例如,控制器130可将从存储器装置150读取的数据提供到主机102,并将从主机102提供的数据存储至存储器装置150中。对于该操作,控制器130可控制存储器装置150的读取操作、写入操作、编程操作和擦除操作。
控制器130可包括主机接口(I/F)132、处理器134、错误校正码(ECC)组件、电源管理单元(PMU)、诸如NAND闪速控制器(NFC)的存储器I/F 142以及存储器144,其全部通过内部总线可操作地联接。
主机接口132可被配置成处理主机102的命令和数据,并可通过诸如以下的各种接口协议中的一种或多种与主机102通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)以及电子集成驱动器(IDE)。
存储器I/F 142可用作用于将控制器130和存储器装置150接口连接的存储器/存储接口,使得控制器130响应于来自主机102的请求来控制存储器装置150。当存储器装置150是闪速存储器,具体地是NAND闪速存储器时,存储器I/F 142可在处理器134的控制下生成用于存储器装置150的控制信号,并且处理待提供到存储器装置150的数据。存储器I/F142可用作用于处理控制器130和存储器装置150之间的命令和数据的接口(例如,NAND闪存接口)。具体地,存储器I/F 142可支持控制器130和存储器装置150之间的数据传输。
存储器144可用作存储器系统110和控制器130的工作存储器,并且存储用于驱动存储器系统110和控制器130的数据。控制器130可响应于来自主机102的请求控制存储器装置150执行读取操作、写入操作、编程操作和擦除操作。控制器130可将从存储器装置150读取的数据提供到主机102并可将从主机102提供的数据存储到存储器装置150中。存储器144可存储控制器130和存储器装置150执行这些操作所需的数据。
存储器144可通过易失性存储器来实施。例如,存储器144可通过静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)来实施。存储器144可设置在控制器130的内部或外部。图1例示了设置在控制器130的内部的存储器144。在另一实施例中,存储器144可通过具有在存储器144和控制器130之间传输数据的存储器接口的外部易失性存储器实施。
存储器144可存储用于执行诸如主机102与存储器装置150之间的数据写入操作和读取操作的操作的数据,以及存储诸如数据写入操作和读取操作的操作所产生的数据,如上所述,存储器144可包括程序存储器、数据存储器以及用于存储数据的缓冲器300。根据本发明的实施例,存储器144可存储缓冲器属性表400和缓冲器优先级表500。将参照图3至图5描述根据本发明的实施例的缓冲器300、缓冲器属性表400和缓冲器优先级表500。
处理器134可控制存储器系统110的全部操作。特别地,处理器134可响应于来自主机102的写入请求或读取请求控制对存储器装置150的写入操作或读取操作。在本文中,处理器134可驱动被称为闪速转换层(FTL)的固件来控制存储器系统110的所有操作。而且,处理器134还可被实现为微处理器或中央处理单元(CPU)。
根据本发明的实施例的存储器系统110的处理器134可包括用于执行缓冲器分配的缓冲器管理器136。
图3示出根据本发明的实施例的例如图1的缓冲器300的缓冲器和段。
当根据操作的类型分配固定缓冲器区域时,即使根据存储器系统110的工作负载存在剩余的缓冲器区域,也不分配所需的缓冲器区域。因此,可能劣化存储器系统110的性能。
当不考虑操作的类型而使用公共缓冲器区域时,并且当存储器系统110的工作负载集中于执行特定类型的操作时,因为可能不会分配用于执行不同类型的操作的缓冲器,所以存储器系统110的性能劣化。
根据本发明的实施例,控制器130可将整个缓冲器区域划分为多个段,并且确定段属性,该段属性表示可分配每个段的一种或多种缓冲器分配请求。基于段属性,控制器130可将高优先级分配到可仅针对一种类型的缓冲器分配请求分配的专用段,并且将低优先级分配到可针对两种以上类型的缓冲器分配请求分配的公共段。当存在缓冲器分配请求时,控制器130可基于段属性和优先级分配段之中的一个或多个段。在该框架内,将参照图3至图6描述本发明的实施例。
参照图3,缓冲器300可由多个段形成。以虚线示出的部分302可表示一个段。当主机接口132或存储器接口142请求缓冲器分配时,缓冲器管理器136可基于段来分配缓冲器300。
每个段可具有段属性,该段属性表示分配该段的缓冲器分配请求的类型。
缓冲器分配请求的类型可包括写入缓冲器分配请求、读取缓冲器分配请求、映射高速缓存缓冲器分配请求或垃圾收集缓冲器分配请求。可响应于缓冲器分配请求来分配段,并且段可临时存储用于执行写入操作、读取操作、映射高速缓存操作和垃圾收集操作之中的一个操作的数据。
虽然本发明不限于缓冲器分配请求的类型,但作为示例,本文描述缓冲器管理器136和缓冲器300可响应于三种类型的缓冲器分配请求来进行操作:读取缓冲器分配请求、写入缓冲器分配请求和映射高速缓存缓冲器分配请求。
图4示出根据本发明的实施例的例如图1的缓冲器属性表400的缓冲器属性表。
参照图4,缓冲器属性表400可存储缓冲器300中包括的每个段的段属性信息。缓冲器属性表400通过针对每个段将读取缓冲器分配请求、写入缓冲器分配请求和映射高速缓存缓冲器分配请求之中、可分配相应段的缓冲器分配请求的类型存储为位图来表示每个段的段属性。
缓冲器属性表400可包括用于缓冲器300的段(例如,12个段)的标识符作为索引。在图4的示例中,缓冲器属性表400可包括12个段中的每一个的标识符作为索引。在每个索引的条目中,可设置或重置具有读取、写入和映射的位值作为域。
读取、写入和映射域的位值可表示是否可分别响应于读取缓冲器分配请求、写入缓冲器分配请求和映射高速缓存缓冲器分配请求来分配单独的段。例如,因为缓冲器属性表400的第三段的读取域和写入域的位值为“1”,因此可响应于读取缓冲器分配请求和写入缓冲器分配请求来分配第三段。另一方面,因为第三段的映射域的位值为“0”,因此不可响应于映射高速缓存缓冲器分配请求来分配第三段。换言之,可响应于读取缓冲器请求和写入缓冲器请求而非响应于映射高速缓存缓冲器分配请求来分配第三段。
根据本发明的实施例,可基于存储器系统110的工作负载来静态地或动态地设置段属性。下面,可将动态地设置段属性的段定义为动态段,并且可将静态地设置段属性的段定义为静态段。
参照图4描述缓冲器管理器136判定每个段的段属性的方法的示例。
在图4的示例中,缓冲器管理器136可针对每个段来判定该段是动态段还是静态段。例如,缓冲器管理器136可判定第一至第六段是动态段,第七至第十二段是静态段。
主机接口132可从主机102接收命令并使该命令在内部命令队列(未示出)中排队。缓冲器管理器136可基于排队命令的类型和属性以及待响应于该命令缓冲的数据的大小来判定每个段的段属性。
从主机102接收的命令的类型可包括读取命令和写入命令。命令的属性可包括顺序命令和随机命令。
当许多读取命令被排队时,缓冲器管理器136可接收许多读取缓冲器分配请求。当许多写入命令被排队时,缓冲器管理器136可接收许多写入缓冲器分配请求。
当接收到许多不同类型的随机命令时,缓冲器管理器136可接收许多映射高速缓存缓冲器分配请求。这是因为与每个随机命令相对应的地址的映射数据未缓冲在缓冲器300中的可能性较高。
缓冲器管理器136可基于在命令队列中排队的命令的类型和属性以及待响应于命令缓冲的数据的大小来计算待缓冲在缓冲器300中的读取数据的大小、写入数据的大小和映射数据的大小。缓冲器管理器136能够基于计算结果来判定可针对读取缓冲器分配请求、写入缓冲器分配请求和映射高速缓存缓冲器分配请求中的每一个分配的段的数量。
缓冲器管理器136可基于根据缓冲器分配请求的类型所判定的数量,将从第一段开始的设置数量的连续段判定为可响应于相应类型的缓冲器分配请求而分配的段。
例如,可判定待缓冲的读取数据的大小、写入数据的大小和映射数据的大小的比例为约3:2:1。在图4的示例中,动态段的数量可以为六。缓冲器管理器136可将响应于读取缓冲器分配请求、写入缓冲器分配请求和映射高速缓存缓冲器分配请求而分配的动态段的数量与待缓冲的读取数据的大小、写入数据的大小和映射数据的大小成比例地设置为6、4和2。
参照图4,可以下列方式判定动态段的属性:针对读取缓冲器分配请求分配第一段至第六段,针对写入缓冲器分配请求分配第一段至第四段,并且针对映射高速缓存缓冲器分配请求分配第一段和第二段。
换言之,可响应于所有类型的缓冲器分配请求来设置第一段和第二段。可响应于读取缓冲器分配请求和写入缓冲器分配请求来分配第三段和第四段。第五段和第六段可专用于读取缓冲器分配请求。
缓冲器管理器136可将作为静态段的第七至第十二段中的每一个设置为专用段。参照图4,可将第七段和第八段设置为映射专用段,将第九段和第十段设置为写入专用段,并且将第十一段和第十二段设置为读取专用段。例如,当存在映射缓冲器分配请求时,即使针对读取操作分配所有的第一段和第二段,也可通过针对映射缓冲器分配请求分配第七段和第八段来执行最小映射高速缓存操作。
可基于存储器系统110的工作负载的变化来周期性地判定动态段的段属性。
图5示出根据本发明的实施例的例如图1的缓冲器优先级表500的缓冲器优先级表。
参照图5,缓冲器优先级表500可表示段分配的优先级信息以及当前是否分配了段。当缓冲器管理器136响应于缓冲器分配请求分配段时,参考缓冲器优先级表500,缓冲器管理器136可分配当前未分配的段之中具有最高优先级的段。
缓冲器优先级表500可包括缓冲器300的段的标识符作为索引。在每个索引的条目中,存在分配(已分配)的域,表示是否分配了相应段。在每个索引的条目中,存在第1域、第2域、第3域,表示分配的相应段的优先级。可设置或重置每个域中的位,因此可基于域的位值来确定诸如第一等级、第二等级和第三等级的优先级或顺序。
可基于当前是否响应于缓冲器分配请求分配了每个段来设置或重置分配域的位值。
在图5的示例中,将缓冲器300中的一些段(例如,段3至5、7和9至11)阴影化,而其它段(例如,段1至2、6、8和12)未进行阴影化。阴影段可表示当前分配的段,而未阴影化的段可表示当前未分配的段。例如,当将缓冲器优先级表500的第一条目中的分配域的位值设置为“1”时,第一段可处于当前“未分配”的状态。
第一至第三顺序域中的每一个可具有表示分配段的优先级的位值。可基于缓冲器属性表400的位值来判定每个位值。
特别地,根据本发明的实施例,当存在缓冲器分配请求时,缓冲器管理器136可判定位值,使得优先分配专用段。当已分配专用段时,可判定位值,使得以下列顺序分配公共段。缓冲器管理器136可判定位值,使得稍后分配公共段之中响应于许多类型的缓冲器分配请求的段。
例如,可将缓冲器属性表400的第五段的位值分别设置为“1”、“0”和“0”。位值可表示第五段是读取缓冲器分配请求的专用段。缓冲器管理器136可将缓冲器优先级表500的第五条目的第一至第三等级域的位值分别设置为“1”、“0”和“0”,使得在存在读取缓冲器分配请求时,优先分配第五段。
作为另一示例,可将缓冲器属性表400的第一段的位值分别设置为“1”、“1”和“1”。位值可表示可针对所有类型的缓冲器分配请求分配第一段。缓冲器管理器136可将缓冲器优先级表500的第一条目的第一至第三等级域的位值分别设置为“0”、“0”和“1”,使得在存在缓冲器分配请求时,最后分配第一段。
图6是示出根据本发明的实施例的例如图1的存储器系统110的存储器系统的操作的流程图。
参照图6,在步骤S620中,图1的缓冲器管理器136可从主机接口132或存储器接口142接收缓冲器分配请求。
例如,当响应于来自主机102的写入命令而执行写入操作时,主机接口132可请求缓冲器管理器136分配写入缓冲器。
当执行读取操作时,存储器接口142可请求缓冲器管理器136分配读取缓冲器,以便将从存储器装置150读取的数据临时存储在缓冲器300中。
当执行映射高速缓存操作时,存储器接口142可请求缓冲器管理器136分配映射缓冲器,以便将从存储器装置150读取的映射数据存储在缓冲器300中。
在步骤S640中,缓冲器管理器136可响应于步骤S620中的缓冲器分配请求来分配段。具体而言,缓冲器管理器136可参考缓冲器属性表400和缓冲器优先级表500。然后,缓冲器管理器136可根据缓冲器分配请求的类型来分配可分配段之中当前未分配的段。也就是说,缓冲器管理器136可以第一等级段、第二等级段和第三等级段的顺序分配当前可分配的段。
根据本发明的实施例,可根据下面描述的详细步骤S642至S648来执行步骤S640中的操作。
在步骤S642中,缓冲器管理器136可通过基于缓冲器分配请求对相应段的读取、写入和映射域之中的一个位值,分配域的位值和第一等级域的位值执行AND操作来判定是否存在AND操作的值为“1”的段。AND操作的值为“1”的段是当前可分配的第一等级段。
当存在当前可分配的第一等级段时(步骤S642中为“是”),在步骤S648中,缓冲器管理器136可响应于缓冲器分配请求分配当前可分配的第一等级段。可以存在当前可分配的多个第一等级段,并且缓冲器管理器136可根据缓冲器分配请求所需的缓冲器的大小来分配第一等级段之中的至少一个。
在图5的示例中,当缓冲器管理器136在步骤S620中接收到写入缓冲器分配请求时,在12个段中,不存在写入域的位值、分配域的位值和第一等级域的位值都为“1”的段。因此,由于不存在AND操作的值为“1”的段,所以不存在当前可响应于写入缓冲器分配请求而分配的第一等级段。
如果不存在当前可分配的第一等级段(步骤S642中为“否”),则在步骤S644中,缓冲器管理器136可通过根据缓冲器分配请求的类型对每个段的读取域、写入域和映射域中的一个域的位值,分配域的位值和第二等级域的位值执行AND操作来判定是否存在AND操作的值为“1”的段。AND操作的值为“1”的段可以是可响应于当前缓冲器分配请求而分配的第二等级段。
当存在当前可分配的第二等级段时(步骤S644中为“是”),在步骤S648中,缓冲器管理器136可基于缓冲器分配请求所需的缓冲器的大小,响应于缓冲器分配请求而分配当前可分配的第二等级段之中的至少一个。
在图5的示例中,在12个段之中,不存在写入域的位值、分配域的位值和第二等级域的位值都为“1”的段。因此,由于不存在AND操作的值为“1”的段,所以不存在可响应于当前写入缓冲器分配请求而分配的第二等级段。
当不存在当前可分配的第二等级段时(步骤S644中为“否”),在步骤S646中,缓冲器管理器136可通过根据缓冲器分配请求的类型对每个段的读取域、写入域和映射域中的一个域的位值,表示是否被分配的分配域的位值和第三等级域的位值执行AND操作来判定是否存在AND操作的值为“1”的段。AND操作的值为“1”的段可以是可响应于当前缓冲器分配请求而分配的第三等级段。
当存在当前可分配的第三等级段时(步骤S646中为“是”),在步骤S648中,缓冲器管理器136可根据缓冲器分配请求所需的缓冲器的大小,响应于缓冲器分配请求而分配当前可分配的第三等级段中的至少一个。
在图5所示的示例中,在12个段之中,写入域的位值、分配域的位值和第三等级域的位值都为“1”的段是第一段和第二段。因此,在步骤S648中,缓冲器管理器136可响应于写入缓冲器分配请求分配第一段和第二段之间的至少一个。
如果不存在当前可分配的第三等级段(步骤S646中为“否”),则因为不存在当前可分配以执行相应操作的段,所以缓冲器管理器136可重复执行步骤S642至S646的操作,直到存在可分配的段。
当完成步骤S640中的缓冲器分配时,在步骤S660中,主机接口132或存储器接口142可将数据缓冲在所分配的段中。
根据本发明的实施例,当存储器系统110的工作负载集中于某些操作时,例如,集中于执行写入操作时,可通过另外地针对写入操作分配公共段来保持写入操作的性能。进一步地,对于其它类型的操作,例如读取操作,可通过为读取缓冲器分配请求分配专用段来执行最小读取操作。
参照图7至图15,下面更详细地描述应用包括参照图1至图6描述的存储器装置150和控制器130的存储器系统110的数据处理系统和电子装置。
图7是示意性地示出包括根据实施例的存储器系统的数据处理系统的示图。图7示意性示出应用根据实施例的存储器系统的存储卡系统6100。
参照图7,存储卡系统6100可包括存储器控制器6120、存储器装置6130和连接器6110。
更具体地,存储器控制器6120可被连接到通过非易失性存储器(NVM)实施的存储器装置6130,并被配置成访问存储器装置6130。例如,存储器控制器6120可被配置成控制存储器装置6130的读取操作、写入操作、擦除操作和后台操作。存储器控制器6120可被配置成提供存储器装置6130和主机(未示出)之间的接口连接,并且驱动用于控制存储器装置6130的固件。也就是说,存储器控制器6120可对应于参照图1描述的存储器系统110的控制器130,并且存储器装置6130可对应于参照图1描述的存储器系统110的存储器装置150。
因此,如图1所示,存储器控制器6120可包括随机存取存储器(RAM)、处理器、主机接口、存储器接口和错误校正组件。
存储器控制器6120可通过连接器6110与例如图1的主机102的外部装置通信。例如,如参照图1描述,存储器控制器6120可被配置成通过诸如以下的各种通信协议中的一种或多种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCIe)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小型磁盘接口(EDSI)、电子集成电路(IDE)、火线、通用闪存(UFS)、无线保真(Wi-Fi或WiFi)和蓝牙。因此,存储器系统和数据处理系统可应用于有线和/或无线电子装置,特别是移动电子装置。
存储器装置6130可通过非易失性存储器来实施。例如,存储器装置6130可通过诸如以下的各种非易失性存储器装置中的任意一种来实施:可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)以及自旋转移力矩磁性RAM(STT-RAM)。
存储器控制器6120和存储器装置6130可集成到单个半导体装置中。例如,存储器控制器6120和存储器装置6130可被集成以形成固态驱动器(SSD)。而且,存储器控制器6120和存储器装置6130可形成诸如以下的存储卡:PC卡(例如,个人计算机存储卡国际协会(PCMCIA))、紧凑式闪存(CF)卡、智能媒体卡(例如,SM和SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC、微型-MMC和eMMC)、安全数字(SD)卡(例如,SD、迷你-SD、微型-SD和SDHC)和/或通用闪存(UFS)。
图8是示意性地示出包括根据实施例的存储器系统的数据处理系统6200的另一示例的示图。
参照图8,数据处理系统6200可包括具有一个或多个非易失性存储器(NVM)的存储器装置6230和用于控制该存储器装置6230的存储器控制器6220。数据处理系统6200可用作参照图1所述的诸如存储卡(例如,CF、SD、微型SD等)或USB装置的存储介质。存储器装置6230可对应于图1所示的存储器系统110中的存储器装置150,并且存储器控制器6220可对应于图1所示的存储器系统110中的控制器130。
存储器控制器6220可响应于主机6210的请求控制对存储器装置6230的读取操作、写入操作或擦除操作,并且存储器控制器6220可包括一个或多个中央处理单元(CPU)6221、诸如随机存取存储器(RAM)6222的缓冲存储器、错误校正码(ECC)电路6223、主机接口6224以及诸如NVM接口6225的存储器接口。
CPU 6221可控制对存储器装置6230的全部操作,例如读取操作、写入操作、文件系统管理操作和坏页面管理操作。RAM 6222可根据CPU 6221的控制进行操作并且用作工作存储器、缓冲存储器或高速缓存存储器。当RAM 6222用作工作存储器时,通过CPU 6221处理的数据可被临时存储在RAM 6222中。当RAM 6222用作缓冲存储器时,RAM 6222可用于缓冲从主机6210传输到存储器装置6230的数据或从存储器装置6230传输到主机6210的数据。当RAM 6222用作高速缓存存储器时,RAM 6222可以辅助存储器装置6230以高速运行。
ECC电路6223可对应于图1所示的控制器130的ECC组件。如参照图1所述,ECC电路6223可生成用于校正从存储器装置6230提供的数据的失效位或错误位的错误校正码(ECC)。ECC电路6223可对被提供到存储器装置6230的数据执行错误校正编码,由此形成具有奇偶校验位的数据。奇偶校验位可被存储在存储器装置6230中。ECC电路6223可对从存储器装置6230输出的数据执行错误校正解码。ECC电路6223可使用奇偶校验位来校正错误。例如,如参照图1所述,ECC电路6223可使用低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(BCH)码、turbo码、里德-所罗门码、卷积码、递归系统码(RSC)或诸如网格编码调制(TCM)或分组编码调制(BCM)的编码调制来校正错误。
存储器控制器6220可通过主机接口6224与主机6210交换数据,并且通过NVM接口6225与存储器装置6230交换数据。主机接口6224可通过并行高级技术附件(PATA)总线、串行高级技术附件(SATA)总线、小型计算机系统接口(SCSI)、通用串行总线(USB)、高速外围组件互连(PCIe)或NAND接口而连接到主机6210。存储器控制器6220可利用诸如无线保真(WiFi)或长期演进(LTE)的移动通信协议而具有无线通信功能。存储器控制器6220可连接到例如主机6210的外部装置或另一外部装置,并且然后与外部装置交换数据。特别地,由于存储器控制器6220被配置成通过各种通信协议中的一种或多种与外部装置通信,因此存储器系统和数据处理系统可被应用于有线和/或无线电子装置,特别是移动电子装置。
图9是示意性地示出包括根据实施例的存储器系统的数据处理系统的另一示例的示图。图9示意性示出可应用存储器系统的固态驱动器(SSD)6300。
参照图9,SSD 6300可包括控制器6320和包括多个非易失性存储器(NVM)的存储器装置6340。控制器6320可对应于图1的存储器系统110中的控制器130,并且存储器装置6340可对应于图1的存储器系统中的存储器装置150。
更具体地,控制器6320可通过多个通道CH1至CHi连接到存储器装置6340。控制器6320可包括一个或多个处理器6321、错误校正码(ECC)电路6322、主机接口6324、缓冲存储器6325和例如非易失性存储器接口6326的存储器接口。
缓冲存储器6325可临时存储从主机6310提供的数据或从存储器装置6340中包括的多个闪速存储器NVM提供的数据,或者临时存储多个闪速存储器NVM的元数据,例如,包括映射表的映射数据。缓冲存储器6325可通过诸如动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、双倍数据速率(DDR)SDRAM、低功率DDR(LPDDR)SDRAM和图形RAM(GRAM)的各种易失性存储器中的任意一个实施,或者通过诸如铁电RAM(FRAM)、电阻式RAM(RRAM或ReRAM)、自旋转移力矩磁性RAM(STT-MRAM)和相变RAM(PRAM)的非易失性存储器实施。通过示例,图10示出缓冲存储器6325被设置在控制器6320中。然而,缓冲存储器6325可位于控制器6320的外部。
ECC电路6322可在编程操作期间计算待编程到存储器装置6340中的数据的错误校正码(ECC)值,在读取操作期间基于ECC值对从存储器装置6340读取的数据执行错误校正操作,并且在失效数据恢复操作期间对从存储器装置6340恢复的数据执行错误校正操作。
主机接口6324可提供与例如主机6310的外部装置的接口连接功能,并且非易失性存储器接口6326可提供与通过多个通道连接的存储器装置6340的接口连接功能。
此外,可提供应用图1的存储器系统110的多个SSD 6300以实施例如独立磁盘冗余阵列(RAID)系统的数据处理系统。RAID系统可包括多个SSD 6300和用于控制多个SSD 6300的RAID控制器。当RAID控制器响应于从主机6310提供的写入命令执行编程操作时,RAID控制器可根据多个RAID级别,即,从主机6310提供的写入命令的RAID级别信息,在SSD 6300中选择一个或多个存储器系统或SSD 6300,并将对应于写入命令的数据输出到选择的SSD6300。此外,当RAID控制器响应于从主机6310提供的读取命令执行读取操作时,RAID控制器可根据多个RAID级别,即从主机6310提供的读取命令的RAID级别信息,在SSD 6300中选择一个或多个存储器系统或SSD 6300,并将从所选择的SSD 6300读取的数据提供到主机6310。
图10是示意性地示出包括根据实施例的存储器系统的数据处理系统的另一示例的示图。图10示意性地示出可应用存储器系统的嵌入式多媒体卡(eMMC)6400。
参照图10,eMMC 6400可包括控制器6430和通过一个或多个NAND闪速存储器实施的存储器装置6440。控制器6430可对应于图1的存储器系统110中的控制器130,并且存储器装置6440可对应于图1的存储器系统110中的存储器装置150。
更具体地,控制器6430可通过多个通道连接到存储器装置6440。控制器6430可包括一个或多个内核6432、主机接口(I/F)6431和例如NAND接口(I/F)6433的存储器接口。
内核6432可控制eMMC 6400的全部操作,主机接口6431可提供控制器6430和主机6410之间的接口连接功能,并且NAND接口6433可提供存储器装置6440和控制器6430之间的接口连接功能。例如,主机接口6431可作为并行接口,例如参照图1所描述的MMC接口。此外,主机接口6431可用作串行接口,例如超高速(UHS)-I和UHS-II接口。
参照图7至图10描述的存储器控制器6120、存储器控制器6220、控制器6320和控制器6430中的每一个可包括:包括多个段的缓冲器;以及缓冲器管理器,该缓冲器管理器判定每个段的段属性,基于该段属性判定每个段的段分配的优先级,并且当接收到缓冲器分配请求时,基于段属性和段分配的优先级来分配段之中的一个或多个段。
图11至图14是示意性地示出包括根据一个或多个实施例的存储器系统的数据处理系统的其它示例的示图。图11至图14示意性地示出可应用存储器系统的通用闪存(UFS)系统。
参照图11至图14,UFS系统6500、6600、6700和6800可分别包括主机6510、6610、6710和6810,UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830。主机6510、6610、6710和6810可用作有线和/或无线电子装置或特别是移动电子装置的应用处理器,UFS装置6520、6620、6720和6820可用作嵌入式UFS装置。UFS卡6530、6630、6730和6830可用作外部嵌入式UFS装置或可移动UFS卡。
各个UFS系统6500、6600、6700和6800中的主机6510、6610、6710和6810,UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830可通过UFS协议与例如有线和/或无线电子装置或者特别是移动电子装置的外部装置通信。UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830可通过图1所示的存储器系统110实施。例如,在UFS系统6500、6600、6700和6800中,UFS装置6520、6620、6720和6820可以参照图8至图10描述的数据处理系统6200、SSD 6300或eMMC 6400的形式来实施,并且UFS卡6530、6630、6730和6830可以参照图9描述的存储卡系统6100的形式来实施。
此外,在UFS系统6500、6600、6700和6800中,主机6510、6610、6710和6810,UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830可通过UFS接口,例如,MIPI(移动行业处理器接口)中的MIPI M-PHY和MIPI UniPro(统一协议)彼此通信。此外,UFS装置6520、6620、6720和6820与UFS卡6530、6630、6730和6830可通过除UFS协议以外的例如以下的各种协议彼此通信:通用串行总线(USB)闪存驱动器(UFD)、多媒体卡(MMC)、安全数字(SD)、迷你-SD和微型-SD。
在图11所示的UFS系统6500中,主机6510、UFS装置6520和UFS卡6530中的每一个可包括UniPro。主机6510可执行交换操作,以便与UFS装置6520和UFS卡6530通信。特别地,主机6510可通过UniPro处的例如L3交换的链路层交换与UFS装置6520或UFS卡6530通信。UFS装置6520和UFS卡6530可通过主机6510的UniPro处的链路层交换来彼此通信。在图11的实施例中,通过示例的方式示出一个UFS装置6520和一个UFS卡6530连接到主机6510的配置。然而,在另一实施例中,多个UFS装置和UFS卡可并联或以星型形式连接到主机6510,并且多个UFS卡可并联或以星型形式连接到UFS装置6520,或者串联或以链型形式连接到UFS装置6520。
在图12所示的UFS系统6600中,主机6610、UFS装置6620和UFS卡6630中的每一个可包括UniPro,并且主机6610可通过执行交换操作的交换模块6640,例如,通过在UniPro处执行例如L3交换的链路层交换的交换模块6640与UFS装置6620或UFS卡6630通信。UFS装置6620和UFS卡6630可通过UniPro处的交换模块6640的链路层交换来彼此通信。在图12的实施例中,通过示例的方式示出一个UFS装置6620和一个UFS卡6630连接到交换模块6640的配置。然而,在另一实施例中,多个UFS装置和UFS卡可并联或以星型形式连接到交换模块6640,并且多个UFS卡可串联或以链型形式连接到UFS装置6620。
在图13所示的UFS系统6700中,主机6710、UFS装置6720和UFS卡6730中的每一个可包括UniPro。主机6710可通过执行交换操作的交换模块6740,例如通过在UniPro处执行例如L3交换的链路层交换的交换模块6740,与UFS装置6720或UFS卡6730通信。UFS装置6720和UFS卡6730可通过UniPro处的交换模块6740的链路层交换来彼此通信,并且交换模块6740可在UFS装置6720的内部或外部与UFS装置6720集成为一个模块。在图13的实施例中,通过示例的方式示出一个UFS装置6720和一个UFS卡6730连接到交换模块6740的配置。然而,在另一实施例中,每一个都包括交换模块6740和UFS装置6720的多个模块可并联或以星型形式连接到主机6710,或者串联或以链型形式彼此连接。此外,多个UFS卡可以并联或以星型形式连接到UFS装置6720。
在图14所示的UFS系统6800中,主机6810、UFS装置6820和UFS卡6830中的每一个可包括M-PHY和UniPro。UFS装置6820可执行交换操作,以便与主机6810和UFS卡6830通信。特别地,UFS装置6820可通过用于与主机6810通信的M-PHY和UniPro模块和用于与UFS卡6830通信的M-PHY和UniPro模块之间的交换操作,例如通过目标标识符(ID)交换操作,来与主机6810或UFS卡6830通信。主机6810和UFS卡6830可通过UFS装置6820的M-PHY和UniPro模块之间的目标ID交换来彼此通信。在图14的实施例中,通过示例的方式示出一个UFS装置6820连接到主机6810并且一个UFS卡6830连接到UFS装置6820的配置。然而,在另一实施例中,多个UFS装置可并联或以星型形式连接到主机6810,或串联或以链型形式连接到主机6810,并且多个UFS卡可并联或以星型形式连接到UFS装置6820,或串联或以链型形式连接到UFS装置6820。
图15是示意性地示出包括根据实施例的存储器系统的数据处理系统的另一示例的示图。图15示意性地示出可应用存储器系统的用户系统6900。
参照图15,用户系统6900可包括用户接口6910、存储器模块6920、应用处理器6930、网络模块6940和存储模块6950。
更具体地,应用处理器6930可驱动用户系统6900中包括的组件,例如操作系统(OS),并且包括控制用户系统6900中包括的组件的控制器、接口和图形引擎。应用处理器6930可被设置为片上系统(SoC)。
存储器模块6920可用作用户系统6900的主存储器、工作存储器、缓冲存储器或高速缓存存储器。存储器模块6920可包括诸如动态RAM(DRAM)、同步DRAM(SDRAM)、双倍数据速率(DDR)SDRAM、DDR2SDRAM、DDR3SDRAM、LPDDR SDRAM、LPDDR2SDRAM或LPDDR3SDRAM的易失性随机存取存储器(RAM)或诸如相变RAM(PRAM)、电阻式RAM(ReRAM)、磁阻RAM(MRAM)或铁电RAM(FRAM)的非易失性RAM。例如,可基于堆叠封装(PoP)来封装并安装应用处理器6930和存储器模块6920。
网络模块6940可与外部装置通信。例如,网络模块6940不仅可支持有线通信,还可支持诸如以下的各种无线通信协议:码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、全球微波接入互操作性(WiMAX)、无线局域网(WLAN)、超宽带(UWB)、蓝牙、无线显示(WI-DI),从而与有线/无线电子装置或特别是移动电子装置通信。因此,根据本发明的实施例的存储器系统和数据处理系统可应用于有线/无线电子装置。网络模块6940可被包括在应用处理器6930中。
存储模块6950可存储数据,例如从应用处理器6930接收的数据,然后可将所存储的数据传输到应用处理器6930。存储模块6950可由诸如相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(ReRAM)、NAND闪存、NOR闪存和3D NAND闪存的非易失性半导体存储器装置实施,并且被提供为用户系统6900的诸如存储卡或者外部驱动器的可移动存储介质。存储模块6950可对应于参照图1描述的存储器系统110。此外,存储模块6950可被实施为如上参照图9至图14所述的SSD、eMMC和UFS。
根据实施例,存储模块6950可包括:包括多个段的缓冲器;以及缓冲器管理器,该缓冲器管理器判定每个段的段属性,基于该段属性判定每个段的段分配的优先级,并且当接收到缓冲器分配请求时,基于段属性和段分配的优先级来分配段之中的一个或多个段。
用户接口6910可包括用于向应用处理器6930输入数据或命令或者用于将数据输出到外部装置的接口。例如,用户接口6910可包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件的用户输入接口,以及诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监视器的用户输出接口。
此外,当图1的存储器系统110应用于用户系统6900的移动电子装置时,应用处理器6930可控制移动电子装置的全部操作,并且网络模块6940可用作用于控制与外部装置的有线和/或无线通信的通信模块。用户接口6910可在移动电子装置的显示/触摸模块上显示通过处理器6930处理的数据,或支持从触摸面板接收数据的功能。
根据本发明的实施例,提供一种控制器及其操作方法,该控制器具有可提高存储器系统性能的数据缓冲器。
虽然已经针对具体实施例说明和描述了本发明,但是根据本公开,对于本领域技术人员将显而易见的是,在不脱离如权利要求中限定的本发明的精神和范围的情况下,可进行各种改变和修改。
Claims (14)
1.一种控制器,所述控制器控制存储器装置,包括:
缓冲器,包括多个段,所述多个段包括专用段和公共段,所述专用段缓冲与多个操作之中的一种类型的操作相对应的数据,所述公共段缓冲与所述多个操作之中的两种或者两种以上类型的操作相对应的数据;以及
缓冲器管理器,判定每个段的段属性,所述段属性表示分配相应段的一种类型或多种类型的缓冲器分配请求;将较高的分配优先级分配到所述专用段并且将较低的分配优先级分配到所述公共段;并且当接收到缓冲器分配请求时,基于所接收到的缓冲器分配请求的类型,通过对表示所述段属性、分配优先级和关于是否分配了所述相应段的信息的位执行逻辑操作来分配所述多个段之中的一个或多个段。
2.根据权利要求1所述的控制器,其中所述缓冲器管理器根据从主机接收的命令的类型和属性来判定待由每种类型的缓冲器分配请求缓冲的数据的大小,基于待缓冲的数据的大小,根据所述每个缓冲器分配请求的类型,判定可分配的段的数量,并且基于所判定的段的数量来判定所述段属性。
3.根据权利要求1所述的控制器,进一步包括:
存储器,
其中,所述存储器包括:
缓冲器属性表,存储所述多个段的段属性;以及
缓冲器优先级表,存储所述分配优先级和关于当前是否分配了段的信息。
4.根据权利要求3所述的控制器,其中所述缓冲器优先级表存储每个段的分配优先级和关于当前是否在位图中分配了所述相应段的信息。
5.根据权利要求1所述的控制器,其中所述缓冲器分配请求的类型是读取缓冲器分配请求、写入缓冲器分配请求和映射缓冲器分配请求之中的一种。
6.根据权利要求1所述的控制器,进一步包括:
主机接口;以及
存储器接口,
其中所述主机接口和所述存储器接口中的至少一个请求所述缓冲器管理器进行缓冲器分配。
7.根据权利要求6所述的控制器,其中所述主机接口和所述存储器接口中的至少一个对每个分配的段执行缓冲操作。
8.一种操作控制器的方法,所述控制器控制存储器装置,所述方法包括:
判定所述控制器的缓冲器中的多个段中的每一个的段属性,每个段属性表示分配相应段的一种类型或多种类型的缓冲器分配请求,所述多个段包括专用段和公共段,所述专用段缓冲与多个操作之中的一种类型的操作相对应的数据,所述公共段缓冲与所述多个操作之中的两种或者两种以上类型的操作相对应的数据;
将较高的分配优先级分配到所述专用段并且将较低的分配优先级分配到所述公共段;并且
当存在缓冲器分配请求时,基于所接收到的缓冲器分配请求的类型,通过对表示所述段属性、所述分配优先级和关于是否分配了所述相应段的信息的位执行逻辑操作来分配所述多个段之中的一个或多个段。
9.根据权利要求8所述的方法,其中判定所述段属性包括:
根据从主机接收的命令的类型和属性,判定待由每种类型的缓冲器分配请求缓冲的数据的大小;
基于待缓冲的数据的大小,根据所述每个缓冲器分配请求的类型,判定可分配的段的数量;并且
基于所判定的段的数量判定每个段的所述段属性。
10.根据权利要求9所述的方法,进一步包括:
存储每个段的所述分配优先级和关于当前是否在位图中分配了所述相应段的信息。
11.根据权利要求8所述的方法,其中所述缓冲器分配请求的类型是读取缓冲器分配请求、写入缓冲器分配请求和映射缓冲器分配请求之中的一种。
12.根据权利要求8所述的方法,进一步包括:
对一个或多个分配的段执行缓冲操作。
13.一种存储器系统,包括:
存储器装置;
控制器,控制所述存储器装置执行多个操作,
其中所述控制器包括:
缓冲器,包括多个段,所述多个段包括专用段和公共段,所述专用段缓冲与所述多个操作之中的一种类型的操作相对应的数据,所述公共段缓冲与所述多个段之中的两种或者两种以上类型的操作相对应的数据;以及
缓冲器管理器:
针对所述多个操作中的每一个确定所述多个段之中的一个或多个可分配段;
基于所述多个操作的确定的可分配段确定所述多个段中的每一个的分配优先级,将较高的分配优先级分配到所述专用段并且将较低的分配优先级分配到所述公共段;并且
基于所接收到的缓冲器分配请求的类型,通过对表示所述段属性、所述分配优先级和关于是否分配了所述相应段的信息的位执行逻辑操作来分配所述多个段之中的一个或多个段。
14.根据权利要求13所述的存储器系统,
其中根据确定的一个或多个可分配段,通过所述缓冲器管理器,针对读取操作、写入操作和映射高速缓存操作中的至少一个分配所述多个段中的每一个。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180109656A KR102653373B1 (ko) | 2018-09-13 | 2018-09-13 | 컨트롤러 및 컨트롤러의 동작방법 |
KR10-2018-0109656 | 2018-09-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110895447A CN110895447A (zh) | 2020-03-20 |
CN110895447B true CN110895447B (zh) | 2023-11-10 |
Family
ID=69774394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910717632.2A Active CN110895447B (zh) | 2018-09-13 | 2019-08-05 | 控制器及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11194507B2 (zh) |
KR (1) | KR102653373B1 (zh) |
CN (1) | CN110895447B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220067872A (ko) * | 2020-11-18 | 2022-05-25 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작방법 |
KR20220079212A (ko) * | 2020-12-04 | 2022-06-13 | 삼성전자주식회사 | 가비지 컬렉션을 수행하기 위한 전자 장치 및 방법 |
US12056390B2 (en) * | 2021-09-17 | 2024-08-06 | SK Hynix Inc. | Memory controller, storage device, and host device |
US20240231689A1 (en) * | 2023-01-05 | 2024-07-11 | Western Digital Technologies, Inc. | Data Storage Device and Method for Dynamic Controller Memory Buffer Allocation |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63254544A (ja) * | 1987-04-10 | 1988-10-21 | Nippon Telegr & Teleph Corp <Ntt> | アドレス変換制御方法 |
US5592671A (en) * | 1993-03-02 | 1997-01-07 | Kabushiki Kaisha Toshiba | Resource management system and method |
CN1809817A (zh) * | 2003-06-20 | 2006-07-26 | 飞思卡尔半导体公司 | 用于动态预取缓冲器配置和替换的方法及设备 |
CN106257591A (zh) * | 2015-06-17 | 2016-12-28 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
CN107957958A (zh) * | 2016-10-17 | 2018-04-24 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW580619B (en) * | 2002-04-03 | 2004-03-21 | Via Tech Inc | Buffer control device and the management method |
EP1644821B1 (en) * | 2003-07-10 | 2009-07-01 | Computer Associates Think, Inc. | System and method for buffering variable-length data |
US7103735B2 (en) * | 2003-11-26 | 2006-09-05 | Intel Corporation | Methods and apparatus to process cache allocation requests based on priority |
US7484065B2 (en) * | 2004-04-20 | 2009-01-27 | Hewlett-Packard Development Company, L.P. | Selective memory allocation |
US7584465B1 (en) * | 2004-09-20 | 2009-09-01 | The Mathworks, Inc. | Memory mapping for single and multi-processing implementations of code generated from a block diagram model |
US7571295B2 (en) * | 2005-08-04 | 2009-08-04 | Intel Corporation | Memory manager for heterogeneous memory control |
US7900010B2 (en) * | 2007-07-09 | 2011-03-01 | Ittiam Systems (P) Ltd. | System and method for memory allocation management |
KR101355193B1 (ko) * | 2007-12-11 | 2014-01-27 | 삼성전자주식회사 | 실시간 임베디드 시스템의 메모리 관리 장치 및 메모리할당/해제/관리 방법 |
KR20120097136A (ko) * | 2011-02-24 | 2012-09-03 | 삼성전자주식회사 | 가상화 환경에서의 메모리 풀 관리 |
US20140215177A1 (en) * | 2012-08-02 | 2014-07-31 | Boo Jin Kim | Methods and Systems for Managing Heterogeneous Memories |
KR20140142793A (ko) | 2013-06-04 | 2014-12-15 | 삼성전자주식회사 | 불휘발성 메모리 장치를 제어하는 메모리 컨트롤러의 동작 방법 및 불휘발성 메모리 시스템 |
US10078471B2 (en) * | 2015-05-19 | 2018-09-18 | Toshiba Memory Corporation | Memory device that sorts access commands to a nonvolatile semiconductor memory unit thereof |
KR20170008339A (ko) | 2015-07-13 | 2017-01-24 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10394475B2 (en) * | 2017-03-01 | 2019-08-27 | International Business Machines Corporation | Method and system for memory allocation in a disaggregated memory architecture |
KR102384759B1 (ko) * | 2017-11-13 | 2022-04-11 | 삼성전자주식회사 | 호스트 메모리 버퍼를 사용하기 위해 호스트 장치와 속성 정보를 공유하는 스토리지 장치 및 그것을 포함하는 전자 장치 |
-
2018
- 2018-09-13 KR KR1020180109656A patent/KR102653373B1/ko active IP Right Grant
-
2019
- 2019-05-31 US US16/427,449 patent/US11194507B2/en active Active
- 2019-08-05 CN CN201910717632.2A patent/CN110895447B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63254544A (ja) * | 1987-04-10 | 1988-10-21 | Nippon Telegr & Teleph Corp <Ntt> | アドレス変換制御方法 |
US5592671A (en) * | 1993-03-02 | 1997-01-07 | Kabushiki Kaisha Toshiba | Resource management system and method |
CN1809817A (zh) * | 2003-06-20 | 2006-07-26 | 飞思卡尔半导体公司 | 用于动态预取缓冲器配置和替换的方法及设备 |
CN106257591A (zh) * | 2015-06-17 | 2016-12-28 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
CN107957958A (zh) * | 2016-10-17 | 2018-04-24 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Non-Patent Citations (1)
Title |
---|
异步传输方式信元分段与重组的功能实现方法;周其刚等;《同济大学学报(自然科学版)》(第07期);58-62 * |
Also Published As
Publication number | Publication date |
---|---|
CN110895447A (zh) | 2020-03-20 |
KR102653373B1 (ko) | 2024-04-02 |
US20200089427A1 (en) | 2020-03-19 |
KR20200030866A (ko) | 2020-03-23 |
US11194507B2 (en) | 2021-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11086537B2 (en) | Method and system to perform urgency level garbage collection based on write history of memory blocks | |
US20190278518A1 (en) | Memory system and operating method thereof | |
US10534705B2 (en) | Memory system for scheduling foreground and background operations, and operating method thereof | |
CN110825318B (zh) | 控制器及其操作方法 | |
CN110895447B (zh) | 控制器及其操作方法 | |
CN110806837B (zh) | 数据处理系统及其操作方法 | |
US10747469B2 (en) | Memory system and operating method of the same | |
US11144449B2 (en) | Memory system and operation method thereof | |
CN108427536B (zh) | 存储器系统及其操作方法 | |
US20180293006A1 (en) | Controller including multi processor and operation method thereof | |
US11042317B2 (en) | Memory system for reducing fragmentation based on sequential index and operating method thereof | |
US10521340B2 (en) | Memory system and operating method thereof | |
CN111435334A (zh) | 在存储器系统中检查有效数据的设备和方法 | |
CN110874329A (zh) | 控制器及其操作方法 | |
US11455240B2 (en) | Memory system and operating method of memory system | |
CN111309518B (zh) | 存储器系统和存储器系统的操作方法 | |
US10908836B2 (en) | Memory system and operation method thereof | |
CN110032329B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |