CN110069357A - 集成电路存储器装置及其操作方法 - Google Patents

集成电路存储器装置及其操作方法 Download PDF

Info

Publication number
CN110069357A
CN110069357A CN201811190300.5A CN201811190300A CN110069357A CN 110069357 A CN110069357 A CN 110069357A CN 201811190300 A CN201811190300 A CN 201811190300A CN 110069357 A CN110069357 A CN 110069357A
Authority
CN
China
Prior art keywords
memory
buffer
controller
data
error bit
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
CN201811190300.5A
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN110069357A publication Critical patent/CN110069357A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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
    • 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
    • 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/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/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)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一种集成电路装置包括非易失性存储器、第一缓冲存储器和第二缓冲存储器以及控制器。第一缓冲存储器和第二缓冲存储器中的每一个被构造为响应于写请求缓冲将被写入非易失性存储器的写数据,并且还响应于读请求缓冲从非易失性存储器接收到的读数据。提供了控制器,其基于与数据准确性有关的至少一个标准评价第一缓冲存储器。所述控制器被构造为:当评价揭示超过标准时,响应于写请求将写数据中的至少一些从第一缓冲存储器重定向至第二缓冲存储器,并且当评价揭示超过标准时,响应于读请求将读数据中的至少一些从第一缓冲存储器重定向至第二缓冲存储器。

Description

集成电路存储器装置及其操作方法
相关申请的交叉引用
本申请要求于2018年1月22日提交的韩国专利申请No.10-2018-0007894的优先权,该申请的公开以引用方式全文并入本文中。
技术领域
本发明构思涉及集成电路装置,并且更具体地说,涉及集成电路存储器装置及其操作方法。
背景技术
近来,广泛使用诸如固态盘(SSD)的储存装置。例如,储存装置可包括诸如闪速存储器的非易失性存储器和控制非易失性存储器的控制器。例如,控制器可包括诸如静态随机存取存储器(SRAM)的内部存储器。随着储存装置的输入/输出速度增大并且储存容量增大,包括在控制器中的内部存储器的容量和功能增大。作为响应,在内部存储器中可能发生软错误,因此,储存装置的可靠性可能变差。
发明内容
根据本发明构思的一方面,提供了一种储存装置,该储存装置包括非易失性存储器和控制器,所述控制器包括第一存储器,其缓冲将写在非易失性存储器上的写数据或者缓冲从非易失性存储器读取的读数据。控制器被构造为基于在第一存储器中产生的错误位的数量或错误位的产生频率动态地确定用于缓冲写数据或读数据的缓冲存储器。还提供了第二存储器,其被构造为当错误位的数量或错误位的产生频率等于或高于阈值时缓冲写数据或读数据。
根据本发明构思的另一方面,提供了一种储存装置,该储存装置包括:非易失性存储器;和控制器,其包括存储器,所述存储器包括用于缓冲将写在非易失性存储器上的写数据或者从非易失性存储器读出的读数据的缓冲区,其中控制器被构造为基于在缓冲区中产生的错误位的数量或错误位的产生频率动态地确定关于存储器的只读区的再写周期,并且根据确定的再写周期动态地控制关于只读区的再写操作。
根据本发明构思的另一方面,提供了一种操作包括非易失性存储器和控制器的储存装置的方法,所述控制器被构造为控制非易失性存储器。所述方法可包括:通过控制器监测在包括在控制器中的第一存储器中产生的错误位的数量或错误位的产生频率;通过控制器将错误位的数量或错误位的产生频率与阈值进行比较;当错误位的数量或错误位的产生频率等于或高于阈值时,在设置在控制器外的第二存储器上缓冲将写在非易失性存储器上的写数据或从非易失性存储器读出的读数据;以及当错误位的数量或错误位的产生频率低于阈值时,在第一存储器上缓冲写数据或读数据。
根据本发明构思的另一方面,提供了一种操作包括非易失性存储器和控制器的储存装置的方法,所述控制器被构造为控制非易失性存储器。所述方法可包括:通过控制器监测在包括在控制器中的存储器的缓冲区中产生的错误位的数量或者错误位的产生频率;通过控制器基于错误位的数量或者错误位的产生频率动态地确定关于存储器的只读区的再写周期;以及通过控制器根据再写周期动态地控制关于只读区的再写操作。
根据本发明的另一实施例,一种集成电路装置可包括非易失性存储器、第一缓冲存储器、第二缓冲存储器和控制器。第一缓冲存储器可被构造为(作为主要缓冲存储器)分别响应于写请求缓冲将被写入非易失性存储器的写数据并且还响应于读请求缓冲从非易失性存储器接收到的读数据。第二缓冲存储器也可被构造为(作为备用缓冲存储器)分别响应于写请求缓冲将被写入非易失性存储器的写数据并且还响应于读请求缓冲从非易失性存储器接收到的读数据。还提供了一种耦接至第一缓冲存储器和第二缓冲存储器的控制器。控制器被构造为基于与存储在第一缓冲存储器中的数据的准确性有关的至少一个标准评价第一缓冲存储器。控制器还被构造为:(i)当评价揭示超过标准时,响应于写请求将写数据中的至少一些从第一缓冲存储器重定向至第二缓冲存储器,并且(ii)当评价揭示超过标准时,响应于读请求将读数据中的至少一些从第一缓冲存储器重定向至第二缓冲存储器。在本发明的这些实施例中的一些中,所述至少一个标准是存储在第一缓冲存储器中的错误数据位的数量的函数或者第一缓冲存储器中的错误位产生频率的函数。所述控制器还可包括错误检查与校正(ECC)模块,其被构造为基于所述至少一个标准评价第一缓冲存储器的缓冲管理器并且被构造为检查和校正存储在第一缓冲存储器中的数据的错误。
附图说明
通过下面结合附图的详细描述将更清楚地理解本发明构思的实施例,其中:
图1是作为根据本发明的实施例的储存系统操作的集成电路存储器装置的框图;
图2A示出了根据本发明的实施例的储存系统的正常读路径;
图2B示出了根据本发明的实施例的储存系统的校正后的读路径;
图3A示出了根据本发明的实施例的储存系统的正常写路径;
图3B示出了根据本发明的实施例的储存系统的校正后的写路径;
图4是根据本发明的实施例的储存装置的框图;
图5是详细示出根据本发明的实施例的图4的控制器的示例的框图;
图6是详细示出根据本发明的另一实施例的图4的控制器的示例的框图;
图7是根据本发明的另一实施例的储存装置的框图;
图8是详细示出根据本发明的实施例的图7的控制器的示例的框图;
图9是示出根据本发明的实施例的操作储存装置的方法的各操作的流程图;
图10是根据图9的方法的实施例的主机、控制器与非易失性存储器之间的操作的流程图;
图11是根据图9的方法的另一实施例的主机、控制器与非易失性存储器之间的操作的流程图;
图12是根据本发明的另一实施例的储存装置的框图;
图13是根据本发明的另一实施例的储存装置的框图;
图14是详细示出根据本发明的实施例的图13的控制器的示例的框图;
图15是详细示出根据本发明的另一实施例的图13的控制器的示例的框图;
图16是示出根据本发明的另一实施例的操作储存装置的方法的各操作的流程图;
图17是示出根据本发明的另一实施例的操作储存装置的方法的各操作的流程图;
图18是根据图16的方法的实施例的控制器与非易失性存储器之间的操作的流程图;
图19是根据本发明的实施例的网络系统的示图;
图20是根据本发明的另一实施例的网络系统的示图;以及
图21是根据本发明的实施例的电子装置的示图。
具体实施方式
现在参照图1,根据本发明的实施例的储存系统SS可包括储存装置10和主机20,并且储存装置10可包括:包含第一存储器110的控制器100、非易失性存储器(NVM)200和第二存储器300。第一存储器110位于控制器100中,并且第二存储器300可设置在控制器100以外。在一些实施例中,储存装置10可以被称作“集成电路装置”。
主机20可通过各种接口与储存装置10通信,并且将写请求或读请求发送至储存装置10。例如,主机20可实现为应用处理器(AP)或系统芯片(SoC)。主机20可将写请求发送至储存装置10,并且储存装置10可响应于写请求将数据写在NVM 200上。主机20可将读请求发送至储存装置10,并且储存装置10可响应于读请求从NVM 200中读数据。
控制器100可控制NVM 200,以响应于从主机20接收到的写请求将数据写在NVM200上,或者响应于从主机20接收到的读请求从NVM 200读数据。第一存储器110可缓冲将被写入NVM 200的写数据或者从NVM 200接收到的读数据。例如,第一存储器110可为静态随机存取存储器(SRAM)或者任何其它类型的易失性或非易失性存储器。
随着输入/输出(I/O)速度和储存装置10的储存容量增大,包括在控制器100中的第一存储器110的容量和功能提高。例如,第一存储器110可为SRAM,并且SRAM可相对于动态随机存取存储器(DRAM)具有更高的软错误率(SER)。具体地说,当数据I/O速度增大或者使用环境的海拔(altitude)增大时,SRAM的SER可增大。因此,存储在SRAM中的数据可产生位翻转,结果,储存装置10的可靠性可降低。根据一个或多个实施例,为了防止储存装置10的可靠性降低,控制器100可监测在第一存储器110中产生的位翻转(即,错误位),并且根据监测的错误位动态地控制与第一存储器110有关的操作。
根据实施例,控制器100可基于在第一存储器110中产生的错误位的数量或错误位的产生频率动态地确定用于缓冲写数据或读数据的缓冲存储器。详细地说,控制器100可将在第一存储器110中产生的错误位的数量或错误位的产生频率与阈值进行比较,当错误位的数量或产生频率低于阈值时,将第一存储器110确定为缓冲存储器,并且当错误位的数量或产生频率等于或高于阈值时,将第二存储器300确定为缓冲存储器。
根据实施例,控制器100可监测写数据或读数据的I/O速度,并且基于I/O速度动态地确定用于缓冲写数据或读数据的缓冲存储器。例如,控制器100可基于在第一存储器110中缓冲的数据的I/O速度监测写数据或读数据的I/O速度。详细地说,控制器100可将I/O速度与阈速度进行比较,当I/O速度低于阈速度时,将第一存储器110确定为缓冲存储器,并且当I/O速度等于或高于阈速度时,将第二存储器300确定为缓冲存储器。
根据实施例,控制器100可基于在第一存储器110中产生的错误位的数量或产生频率动态地确定关于包括在第一存储器110中的只读区的再写周期,并且根据确定的再写周期控制关于只读区的再写操作。详细地说,当错误位的数量或产生频率等于或高于阈值时,控制器100可减小再写周期,因此,增加关于只读区执行再写操作的次数。
根据实施例,控制器100可基于写数据或读数据的I/O速度动态地确定关于包括在第一存储器110中的只读区的再写周期,并且根据确定的再写周期控制关于只读区的再写操作。详细地说,当I/O速度等于或高于阈速度时,控制器100可减小再写周期,因此,增加关于只读区执行再写操作的次数。
根据实施例,控制器100可以基于与存储在第一存储器110中的数据的准确性有关的至少一个标准评价第一存储器110。控制器100可以(i)当评价揭示超过标准时,响应于写请求将写数据中的至少一些从第一存储器110重定向至第二存储器300,并且(ii)当评价揭示超过标准时,响应于读请求将读数据中的至少一些从第一存储器110重定向至第二存储器300。
根据实施例,当在第一存储器110中产生的错误位的数量或产生频率等于或高于阈值时,第二存储器300可缓冲写数据或读数据。根据实施例,当写数据或读数据的I/O速度等于或高于阈速度时,第二存储器300可缓冲写数据或读数据。例如,第二存储器300可为DRAM,但不限于此,而是可为任何类型的易失性或非易失性存储器。根据一些实施例,第二存储器300甚至可在控制器100的硬件中实施,并且不实施为图1所示的分离的存储器。
NVM 200可包括包含多个存储器单元的存储器单元阵列MCA,并且所述存储器单元阵列MCA可包括用于存储元数据的元区域210和用于存储用户数据的储存区域220。根据实施例,NVM 200可包括闪速存储器装置,诸如NAND闪速存储器装置。可替换地,在本发明的其它实施例中,例如,NVM 200可包括低电阻存储器装置,诸如电阻式RAM(ReRAM)、相变RAM(PRAM)或磁性RAM(MRAM)。
在本发明的一些实施例中,例如,储存系统SS可实施为个人计算机(PC)、数据服务器、网络附加存储、物联网(IoT)设备或便携式电子装置。便携式电子装置的示例包括笔记本计算机、移动电话、智能电话、平板PC、个人数字助理(PDA)、企业数字助理(EDA)、数码相机、数字摄像机、音频装置、便携式多媒体播放器(PMP)、个人导航装置(PND)、MP3播放器、手持式游戏机、电子书和可穿戴装置。
根据一些实施例,储存装置10可为在电子装置中实施的内部存储器。例如,储存装置10可为固态盘(SSD)、嵌入式通用闪存(UFS)存储器装置或嵌入式多媒体卡(eMMC)。根据一些实施例,储存装置10可为可拆卸地连接到电子装置的外部存储器。例如,储存装置10可为UFS存储卡、紧凑闪存(CF)卡、安全数字(SD)卡、微型SD卡、迷你SD卡、极限数字(xD)卡或记忆棒。
图2A示出了根据本发明的实施例的储存系统SSa的正常读路径NRP,而图2B示出了根据本发明的另一实施例的储存系统SSa的校正后的读路径CRP。参照图2A和图2B,储存系统SSa可包括储存装置10'和主机20,并且储存装置10'可包括控制器100'、NVM 200和第二存储器300。控制器100'可包括读缓冲器111a和缓冲管理器112。读缓冲器111a可对应于图1的第一存储器110的示例,详细地说,可对应于第一存储器110的局部区。
缓冲管理器112可将在读缓冲器111a中产生的错误位的数量或错误位的产生频率与阈值进行比较,并且基于比较结果确定应该将读缓冲器111a还是第二存储器300用作缓冲存储器。根据实施例,缓冲管理器112可在软件和/或固件中实施,并且可加载至第一存储器110。可替换地,在本发明的一些实施例中,缓冲管理器112可专门在硬件中实施。
根据实施例,当在读缓冲器111a中产生的错误位的数量小于阈数量时,缓冲管理器112可将读缓冲器111a确定为缓冲存储器,并且在这种情况下,读路径可对应于图2A的正常读路径NRP。然后,当在读缓冲器111a中产生的错误位的数量增大为等于或高于阈数量时,缓冲管理器112可将缓冲存储器改变为第二存储器300,并且在这种情况下,读路径可改变为图2B的校正后的读路径CRP。
根据实施例,当在读缓冲器111a中产生的错误位的数量等于或高于阈数量时,缓冲管理器112可将第二存储器300确定为缓冲存储器,并且在这种情况下,读路径可对应于图2B的校正后的读路径CRP。然后,当在读缓冲器111a中产生的错误位的数量减小为低于阈数量时,缓冲管理器112可将缓冲存储器变回读缓冲器111a,此时,读路径可改变为图2A的正常读路径NRP。
图3A示出了根据本发明的实施例的储存系统SSb的正常写路径NWP,图3B示出了根据本发明的另一实施例的储存系统SSb的校正后的写路径CWP。参照图3A和图3B,储存系统SSb可包括储存装置10"和主机20,储存装置10"可包括控制器100"、NVM 200和第二存储器300。控制器100"可包括写缓冲器111b和缓冲管理器112。写缓冲器111b可对应于图1的第一存储器110的示例,详细地说,可对应于第一存储器110的局部区。
缓冲管理器112可比较在写缓冲器111b中产生的错误位的数量,并且基于比较结果将写缓冲器111b或第二存储器300确定为缓冲存储器。根据实施例,缓冲管理器112可在软件和/或固件中实施,并且可加载至图1的第一存储器110。然而,根据本发明的替代实施例,缓冲管理器112可在硬件中实施。
在本发明的一些实施例中,当在写缓冲器111b中产生的错误位的数量低于阈数量时,缓冲管理器112可将写缓冲器111b确定为缓冲存储器。当作出这种确定时,写路径可对应于图3A的正常写路径NWP。然而,当在写缓冲器111b中产生的错误位的数量增大为等于或高于阈数量时,缓冲管理器112可将缓冲存储器改变为第二存储器300。当作出这另一种确定时,写路径可改变为图3B的校正后的写路径CWP。但是,当在写缓冲器111b中产生的错误位的数量减小为低于阈数量时,缓冲管理器112可将缓冲存储器变回写缓冲器111b。当发生这种情况时,写路径可变回图3A的正常写路径NWP。
图4是根据本发明的另一实施例的储存装置10a的框图。参照图4,储存装置10a可包括控制器100a、NVM 200和第二存储器300。控制器100a可包括缓冲器111、缓冲管理器112和监测模块113。缓冲器111可缓冲将写在NVM 200上的写数据或者从NVM 200读取的读数据。根据图4的实施例的储存装置10a可对应于图1的储存装置10的示例。因此,本文将不再提供与上面参照图1至图3B描述的那些重复的细节。
根据图4的实施例,监测模块113可监测在缓冲器111中产生的错误位。例如,监测模块113可通过将输入至缓冲器111的数据与从缓冲器111输出的数据进行比较来监测错误位的数量。例如,监测模块113可实施为包括记录所监测的错误位的数量的错误状态寄存器。
这里,缓冲管理器112可从监测模块113接收错误位的数量,将接收到的错误位的数量与阈数量进行比较,并且基于比较结果将缓冲器111或第二存储器300确定为缓冲存储器。然后,当在错误状态寄存器中记录的值达到阈数量时,缓冲管理器112可改变缓冲存储器。
根据本发明的实施例,监测模块113可基于输入至缓冲器111的数据以及从缓冲器111输出的数据监测数据I/O速度。例如,监测模块113可实施为包括记录所监测的数据I/O速度的I/O速度寄存器。例如,监测模块113可监测最大数据使用率,并且可实施为包括记录所监测的最大数据使用率的最大数据使用率寄存器。
这里,缓冲管理器112可从监测模块113接收数据I/O速度,将接收到的数据I/O速度与阈速度进行比较,并且基于比较结果将缓冲器111或第二存储器300确定为缓冲存储器。基于该构造,当在I/O速度寄存器或最大数据使用率寄存器中记录的值达到阈速度时,缓冲管理器112可改变缓冲存储器。
图5是详细示出根据本发明的实施例的控制器100a'的框图,所述控制器100a'可为图4的控制器100a的示例。参照图5,控制器100a'可包括通过总线160彼此通信的第一存储器110a、处理器120、主机接口130、DRAM控制器140和NVM接口150。例如,当图4的第二存储器300被构造为DRAM时,控制器100a'可包括用于控制DRAM的DRAM控制器140。
处理器120可包括中央处理单元(CPU)或微处理器,并且控制控制器100a'的整体操作。根据实施例,处理器120可实施为单核处理器或多核处理器(诸如双核处理器或四核处理器)。第一存储器110a根据处理器120的控制进行操作,并且可用作操作存储器、缓冲存储器或高速缓冲存储器。例如,第一存储器110a可实施为诸如DRAM或SRAM的易失性存储器,或诸如PRAM或闪速存储器的NVM。
可将缓冲管理器112a和监测模块113a加载至第一存储器110a上。缓冲管理器112a和监测模块113a可实施为固件或软件,并且加载至第一存储器110a上。缓冲管理器112a可对应于图4的缓冲管理器112的示例,并且监测模块113a可对应于图4的监测模块113的示例。第一存储器110a可包括缓冲器111,并且缓冲器111可用作写缓冲器或读缓冲器。
主机接口130可在主机(例如,图10的主机20)与控制器100a'之间提供接口。该接口可根据接口技术提供,所述接口技术诸如通用串行总线(USB)、MMC、外围组件高速互连(PCI-E)、AT附件(ATA)、串行AT附件(SATA)、并行AT附件(PATA)、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、增强的小磁盘接口(ESDI)或集成驱动电子器件(IDE)。
如图所示,NVM接口150可在控制器100a'与NVM 200之间提供接口。例如,可在控制器100a'与NVM 200之间通过NVM接口150交换诸如映射表的元数据、写数据和读数据。根据实施例,NVM接口150的数量可对应于包括在储存装置10a中的NVM芯片的数量或者控制器100a'与NVM 200之间的通道数量。
图6是详细示出根据本发明的另一实施例的控制器100a"的框图,控制器100a"是图4的控制器100a的实施例。参照图6,控制器100a"可包括通过总线160彼此通信的第一存储器110a'、处理器120、缓冲管理器112b、监测模块113b、主机接口130、DRAM控制器140和NVM接口150。根据当前实施例的控制器100a"可对应于图5的控制器100a'的修改示例,因此本文不再提供重复的细节。
第一存储器110a'可包括缓冲器111,并且缓冲器111可用作写缓冲器或读缓冲器。缓冲管理器112b和监测模块113b可实施为硬件,因此,可设置在第一存储器110a'外部。缓冲管理器112b可对应于图4的缓冲管理器112的示例,并且监测模块113b可对应于图4的监测模块113的示例。
现在参照图7,根据本发明的另一实施例的储存装置10b可包括控制器100b、NVM200和第二存储器300。如图所示,控制器100b可包括缓冲器111、缓冲管理器112、监测模块113'和错误检查与校正(ECC)模块114。根据当前实施例的储存装置10b可对应于图4的储存装置10a的修改示例,因此本文将不再提供重复的细节。
ECC模块114可对在缓冲器111中缓冲的数据执行ECC操作。监测模块113'可基于由ECC模块114校正的错误监测在缓冲器111中产生的错误位的数量。缓冲管理器112可从监测模块113'接收错误位的数量,将接收到的错误位的数量与阈数量进行比较,并且基于比较结果将缓冲器111或第二存储器300确定为缓冲存储器。
图8是详细示出根据本发明的实施例的控制器100b'的框图,所述控制器100b'可用作图7的控制器100b。参照图8,控制器100b'可包括可通过总线160彼此通信的第一存储器110b、处理器120、主机接口130、DRAM控制器140和NVM接口150。例如,图7的第二存储器300可为DRAM,因此,控制器100b'可包括用于控制DRAM的DRAM控制器140。根据当前实施例的控制器100b'可对应于图5的控制器100a'的修改示例,因此本文不再提供重复的细节。
可将缓冲管理器112a、监测模块113a'和ECC模块114a加载至第一存储器110b上。缓冲管理器112a、监测模块113a'和ECC模块114a可实施为固件和/或软件,并且可加载至第一存储器110b上。缓冲管理器112a可对应于图7的缓冲管理器112的示例,监测模块113a'可对应于图7的监测模块113'的示例,并且ECC模块114a可对应于图7的ECC模块114的示例。第一存储器110b可包括缓冲器111,并且缓冲器111可用作写缓冲器或读缓冲器。然而,实施例不限于此,并且图7的缓冲管理器112、监测模块113a'和ECC模块114中的至少一个可实施为硬件,因此,设置在第一存储器110b外部。
图9是根据本发明的实施例的操作储存装置的方法的流程图。参照图9,根据当前实施例的方法可为动态地确定缓冲存储器的方法。该方法可包括由图1的储存装置10、图4的储存装置10a或图7的储存装置10b按照时间次序执行的各个操作。下文中,将参照图1至图9描述根据当前实施例的方法。
在操作S110中,监测在第一存储器中产生的错误位的数量。例如,控制器100可周期性地或间断地监测在第一存储器110中产生的错误位的数量。例如,当从主机20接收到读请求时,控制器100可监测在第一存储器110中产生的错误位的数量。并且,根据本发明的一些实施例,可监测在第一存储器中产生的错误位的产生频率。
在操作S120中,将错误位的数量与阈数量进行比较。例如,控制器100可确定在错误状态寄存器中记录的错误位的数量是否等于或高于阈数量。根据本发明的一些实施例,可预先确定阈数量。但是,根据本发明的其它实施例,在储存装置的操作中,阈数量可动态地改变。另外,根据本发明的一些实施例,可将错误位的产生频率与阈值进行比较。在操作S130中,确定错误位的数量是否等于或高于阈数量。当确定错误位的数量等于或高于阈数量时,执行操作S140。当确定错误位的数量低于阈数量时,执行操作S150。
在操作S140中,在第二存储器中缓冲数据。例如,控制器100可将第二存储器300确定为缓冲存储器,并且使用第二存储器300作为写缓冲器或读缓冲器。因此,可防止储存装置10的可靠性由于第一存储器110中产生位翻转而降低。在操作S150中,在第一存储器中缓冲数据。例如,控制器100可将第一存储器110确定为缓冲存储器,并且使用第一存储器110作为写缓冲器或读缓冲器。因此,储存装置10的性能可通过使用第一存储器110的高速度而提高。
另外,根据一些实施例,根据当前实施例的方法还可包括监测写数据或读数据的I/O速度,并且基于I/O速度将第一存储器或第二存储器动态地确定为用于缓冲写数据或读数据的缓冲存储器。详细地说,控制器100可基于输入至第一存储器110的数据和从第一存储器110输出的数据监测数据I/O速度。当监测的数据I/O速度等于或高于阈速度时,控制器100可将第二存储器300确定为缓冲存储器。另外,当监测的数据I/O速度低于阈速度时,控制器100可将第一存储器110确定为缓冲存储器。
图10是根据图9的方法的主机20、控制器100与NVM 200之间的操作的流程图。图10的主机20、控制器100和NVM 200可分别对应于图1的主机20、控制器100和NVM 200。参照图10,在操作S210中,主机20可将读请求发送至控制器100。根据实施例,主机20可将逻辑地址和读请求一起发送至控制器100。主机20可将密钥与读请求一起发送至控制器100,在这种情况下,控制器100和NVM 200可构成密钥值储存装置。
在操作S220中,控制器100可监测在第一存储器110中产生的错误位。控制器100可通过将输入至第一存储器110的数据与从第一存储器110输出的数据进行比较来监测错误位的数量。控制器100可基于关于第一存储器110执行ECC操作的结果来监测错误位的数量。
在操作S230中,控制器100可将错误位的数量与阈数量进行比较。在操作S240中,控制器100可基于比较结果确定读缓冲器。例如,控制器100可在错误位的数量等于或高于阈数量时将第二存储器300确定为读缓冲器,而在错误位的数量低于阈数量时将第一存储器110确定为读缓冲器。
在操作S250中,控制器100可发出读命令。根据本发明的实施例,控制器100可通过参照映射表(例如,逻辑-物理(L2P)地址映射表)将从主机20接收到的逻辑地址改变为物理地址。根据实施例,控制器100可通过参照诸如密钥-物理(K2P)地址映射表的映射表将从主机20接收到的密钥改变为物理地址。
在操作S260中,控制器100可将读命令发送至NVM 200。这里,控制器100可将读命令与物理地址一起发送。在操作S270中,NVM 200可执行读操作。详细地说,NVM 200可读取存储在物理地址中的数据。在操作S275中,NVM 200可将数据发送至控制器100。
在操作S280中,控制器100可在指定的读缓冲器中缓冲数据。例如,当在操作S240中将第一存储器110确定为读缓冲器时,控制器100可在第一存储器110中缓冲数据。但是,当在操作S240中将第二存储器300指定为读缓冲器时,控制器100可在第二存储器300中缓冲数据。在操作S290中,控制器100可将数据发送至主机20。
图11是根据图9的方法的另一实施例的主机20、控制器100与NVM 200之间的操作的流程图。图10的主机20、控制器100和NVM200可分别对应于图1的主机20、控制器100和NVM200。参照图11,在操作S310中,主机20可将写请求发送至控制器100。根据实施例,主机20可将数据和写请求一起发送至控制器100。根据实施例,主机20可将密钥值对与写请求一起发送至控制器100,从而控制器100和NVM 200可作为密钥值储存装置进行操作。
在操作S320中,控制器100可监测在第一存储器110中产生的错误位。具体地说,控制器100可通过将输入至第一存储器110的数据与从第一存储器110输出的数据进行比较来监测错误位的数量。并且,控制器100甚至可基于关于第一存储器110执行ECC操作的结果来监测错误位的数量。
在操作S330中,控制器100可将错误位的数量与阈数量进行比较。在操作S340中,控制器100可基于比较结果确定写缓冲器。例如,当错误位的数量等于或高于阈数量时,控制器100可将第二存储器300确定为写缓冲器。但是,可替换地,当错误位的数量低于阈数量时,控制器100可将第一存储器110确定为写缓冲器。然而,实施例不限于此,并且可在操作S310之前执行操作S320至S340。因此,控制器100可通过监测在第一存储器110中产生的错误位而预先确定写缓冲器,并且当接收到写请求时,在预先确定的写缓冲器中缓冲数据。
在操作S350中,控制器100可在确定的写缓冲器中缓冲数据。例如,当在操作S340中将第一存储器110确定为写缓冲器时,控制器100可在第一存储器110中缓冲数据。例如,当在操作S340中将第二存储器300确定为写缓冲器时,控制器100可在第二存储器300中缓冲数据。
在操作S360中,控制器100可发出写命令。这里,控制器100可产生用于将数据存储在NVM 200中的物理地址。在操作S370中,控制器100可将写命令发送至NVM 200。此时,控制器100可将数据与写命令一起发送。在操作S380中,NVM 200可执行写操作。详细地说,NVM200可将数据写在物理地址上。在操作S385中,NVM 200可将指示完成写操作的响应消息发送至控制器100。在操作S390中,控制器100可将指示完成写操作的响应消息发送至主机20。
图12是根据本发明的另一实施例的储存装置30的框图。参照图12,储存装置30可包括控制器400和NVM 200。另外,储存装置30还可包括如图1中的第二存储器300(例如,DRAM)。控制器400可包括缓冲存储器411、只读存储器412和再写管理器413。根据本发明的实施例,缓冲存储器411和只读存储器412可在单个存储器芯片中实施。例如,缓冲存储器411和只读存储器412可在SRAM中实现,但是也可利用多个存储器芯片实施缓冲存储器411和只读存储器412。
缓冲存储器411可缓冲将写在NVM 200上的写数据或者从NVM200读取的读数据。另外,缓冲存储器411可存储用于将从主机接收到的逻辑地址或密钥转换为NVM 200的物理地址的映射表。只读存储器412可存储用于执行控制器400的控制操作的元数据。例如,只读存储器412可存储元数据,诸如固件代码、ECC编码器、ECC解码器或异步响应模式(ARM)代码。
例如,缓冲存储器411和只读存储器412可实施为SRAM。如上所述,当数据I/O速度增大或使用环境的海拔增大时,SRAM的SER可增大。在这种情况下,可产生存储在SRAM中的数据的位翻转,并且由于只读存储器412存储在储存装置30的操作中重要的元数据,因此可在只读存储器412上周期性地执行再写操作或恢复操作,以不损坏元数据。
再写管理器413可将在缓冲存储器411中产生的错误位的数量或产生频率与阈值进行比较,并且基于比较结果确定只读存储器412的再写周期。根据实施例,再写管理器413可实施为软件和/或固件,并且装载至图1的第一存储器110。然而,实施例不限于此,并且根据一些实施例,可专门将再写管理器413实施为硬件。
根据另一实施例,当在缓冲存储器411中产生的错误位的数量等于或高于阈数量时,再写管理器413可减小再写周期,因此,增加了关于只读存储器412执行再写操作的次数。然后,当在缓冲存储器411中产生的错误位的数量减小至低于阈数量时,再写管理器413可再次增大再写周期,因此,关于只读存储器412执行再写操作的次数可再次减小。
根据本发明的实施例,当在缓冲存储器411中产生的错误位的数量低于阈数量时,再写管理器513可保持再写周期。然而,实施例不限于此,并且当在缓冲存储器411中产生的错误位的数量低于阈数量时,再写管理器413可增大再写周期,因此,关于只读存储器412执行再写操作的次数可减小。然后,当在缓冲存储器411中产生的错误位的数量增大至等于或高于阈数量时,再写管理器413可减小再写周期,因此,关于只读存储器412执行再写操作的次数可增大。
图13是根据本发明的另一实施例的储存装置30a的框图。参照图13,储存装置30a可包括控制器400a和NVM 200。控制器400a可包括缓冲存储器411、只读存储器412、再写管理器413和监测模块414。根据当前实施例的储存装置30a可对应于图12的储存装置30的示例。
根据实施例,监测模块414可监测在缓冲存储器411中产生的错误位。例如,监测模块414可通过将输入至缓冲存储器411的数据与从缓冲存储器411输出的数据进行比较来监测错误位的数量。例如,监测模块414可实施为包括记录错误位的监测数量的错误状态寄存器。
在这种情况下,再写管理器413可从监测模块414接收错误位的数量,将接收到的错误位的数量与阈数量进行比较,并且基于比较结果确定关于只读存储器412的再写周期。根据实施例,当在错误状态寄存器中记录的值达到阈数量时,再写管理器413可改变关于只读存储器412的再写周期。
根据实施例,监测模块414可基于输入至缓冲存储器411的数据和从缓冲存储器411输出的数据监测数据I/O速度。例如,监测模块414可实施为包括记录所监测的数据I/O速度的I/O速度寄存器。根据本发明的实施例,监测模块414可监测最大数据使用率。例如,监测模块414可实施为包括记录所监测的最大数据使用率的最大数据使用率寄存器。
在这种情况下,再写管理器413可从监测模块414接收数据I/O速度,将接收到的数据I/O速度与阈速度进行比较,并且基于比较结果确定关于只读存储器412的再写周期。根据实施例,当在I/O速度寄存器或最大数据使用率寄存器中记录的值达到阈速度时,再写管理器413可改变关于只读存储器412的再写周期。
图14是详细示出根据本发明的实施例的控制器400a'的框图,所述控制器400a'可为图13的控制器400a的示例。参照图14,控制器400a'可包括存储器410、处理器420、主机接口430和NVM接口440,并且控制器400a'的组件可通过总线450彼此通信。根据一些实施例,图13的储存装置30a还可包括DRAM,在这种情况下,控制器400a'还可包括用于控制DRAM的DRAM控制器。
处理器420可包括CPU或微处理器,并且控制控制器400a'的整体操作。处理器420可与图5的处理器120相似地实施。存储器410根据处理器420的控制进行操作,并且可用作操作存储器、缓冲存储器或高速缓冲存储器。例如,存储器410可实施为易失性存储器(诸如DRAM或SRAM)或NVM(诸如PRAM或闪速存储器)。
可将再写管理器413a和监测模块414a装载至存储器410上。再写管理器413a和监测模块414a可实施为固件或软件,并且被装载至存储器410上。再写管理器413a可对应于图13的再写管理器413的示例,并且监测模块414a可对应于图13的监测模块414的示例。存储器410可包括缓冲区411a和只读区412a,并且缓冲区411a可用作写缓冲器或读缓冲器。缓冲区411a可对应于图13的缓冲存储器411的示例,并且只读区412a可对应于图13的只读存储器412的示例。
主机接口430可在主机(例如,图1的主机20)与控制器400a'之间提供接口,并且可与图5的主机接口130相似地实施。NVM接口440可在控制器400a'与NVM 200之间提供接口,并且可与图5的NVM接口150相似地实施。
图15是详细示出根据本发明的另一实施例的控制器400a"的框图,所述控制器400a"是图13的控制器400a的示例。参照图15,控制器400a"可包括存储器410'、处理器420、再写管理器413b、监测模块414b、主机接口430和NVM接口440,并且控制器400a"的组件可通过总线450彼此通信。根据当前实施例的控制器400a"可对应于图14的控制器400a'的修改的示例,因此本文将不再提供重复的细节。
存储器410'可包括缓冲区411a和只读区412a,并且缓冲区411a可用作写缓冲器或读缓冲器。再写管理器413b和监测模块414b可实施为硬件,并且相应地设置在存储器410'外部。再写管理器413b可对应于图13的再写管理器413的示例,并且监测模块414b可对应于图13的监测模块414的示例。
图16是根据另一实施例的操作储存装置的方法的流程图。参照图16,根据当前实施例的方法可为动态地控制控制器中的只读存储器的再写操作的方法,例如,可包括由图12的储存装置30或图13的储存装置30a按照时间次序执行的各个操作。下文中,将参照图12至图16描述根据当前实施例的方法。
在操作S410中,监测在缓冲区中产生的错误位的数量。例如,控制器400可周期性地或间断地监测在缓冲存储器411中产生的错误位的数量。例如,当从主机接收到读请求或写请求时,控制器400可监测在缓冲存储器411中产生的错误位的数量。另外,根据一些实施例,可监测在缓冲区中产生的错误位的产生频率。
在操作S420中,基于错误位的数量动态地确定关于只读区的再写周期。例如,控制器400可基于记录在错误状态寄存器中的错误位的数量动态地确定关于只读存储器412的再写周期。根据实施例,控制器400可将错误位的数量与阈数量进行比较,并且在错误位的数量等于或高于阈数量时减小再写周期并在错误位的数量低于阈数量时增大再写周期。另外,根据一些实施例,可基于错误位的产生频率动态地确定关于只读区的再写周期。另外,根据一些实施例,所述方法还可包括监测写数据或读数据的I/O速度,并且基于I/O速度动态地确定再写周期。
在操作S430中,根据确定的再写周期动态地控制关于只读区的再写操作。详细地说,控制器400可读取存储在NVM 200的元区域210中的元数据,并且将读取的元数据再写在只读存储器412上。因此,防止只读存储器412中的位翻转的产生,结果,可增大储存装置30的可靠性。
图17是根据另一实施例的操作储存装置的方法的流程图。参照图17,根据当前实施例的方法可对应于图16的方法的示例。在操作S510中,监测在缓冲区中产生的错误位的数量。在操作S520中,将错误位的数量与阈数量进行比较。在操作S530中,确定错误位的数量是否等于或高于阈数量。当确定错误位的数量等于或高于阈数量时,执行操作S540。在操作S540中,减小再写周期。可替换地,当确定错误位的数量低于阈数量时,执行操作S550。在操作S550中,保持再写周期。
在操作S560中,确定错误位的数量是否低于阈数量。当确定错误位的数量低于阈数量时,执行操作S570。否则,当确定错误位的数量等于或高于阈数量时,执行操作S550。在操作S570中,增大再写周期。这样,根据当前实施例,即使基于将错误位的数量与阈数量进行比较的结果确定再写周期之后,可将错误位的数量连续地与阈数量进行比较,并且基于比较结果改变再写周期。
图18是根据图16的方法的实施例的控制器400与NVM 200之间的操作的流程图。控制器400和NVM 200可分别对应于图12的控制器400和NVM 200。在操作S610中,控制器400监测在缓冲区中产生的错误位。并且,在操作S620中,控制器400将错误位的数量与阈数量进行比较。然后,在操作S630中,控制器400基于比较结果确定再写周期。在操作S640中,控制器400根据确定的再写周期发出读命令。
在操作S650中,控制器400将读命令发送至NVM 200。在操作S660中,NVM 200从元区域210中读取元数据。在操作S670中,NVM200将元数据发送至控制器400。在操作S680中,控制器400在只读存储器上再写元数据。
根据实施例,每当执行再写操作时,控制器400可对NVM 200执行读操作,并且将从NVM 200读取的元数据直接写在只读存储器或只读区上。在这种情况下,可根据再写周期重复操作S640至S670。
根据实施例,当电力供应至储存装置时,控制器400可对NVM 200执行读操作,并且将从NVM 200读取的元数据加载至DRAM上。然后,每当执行再写操作时,控制器400可将加载至DRAM上的元数据再写至只读存储器或只读区中。在这种情况下,即使重复再写操作,也可不重复操作S640至S670。
图19是根据实施例的网络系统1000的示图。参照图19,网络系统1000可包括服务器系统1100和通过网络NET与服务器系统1100通信的多个终端,例如,第一终端1210至第三终端1230。服务器系统1100可包括服务器1110和SSD 1120。服务器1110可对应于上述主机,并且SSD 1120可对应于上述储存装置。
根据实施例,可利用以上参照图1至图18描述的实施例实施SSD1120。例如,SSD1120可包括NVM和控制器,并且控制器可包括存储器,诸如SRAM。SSD 1120可周期性地或间断地监测在包括在控制器中的存储器中产生的错误位,并且基于监测结果动态地确定缓冲存储器或关于只读存储器的再写周期。
图20是根据另一实施例的网络系统2000的示图。参照图20,网络系统2000可包括客户组2100和数据中心2200。客户组2100可包括通过例如互联网的第一网络NET1与数据中心2200通信的客户装置C。数据中心2200是存储各种类型的数据和提供服务的设施,并且可包括应用服务器组2210、数据库服务器组2220和对象高速缓冲服务器组2230,它们通过例如局域网(LAN)或互联网的第二网络彼此通信。
应用服务器组2210可包括应用服务器装置AS,其中,应用服务器装置AS处理从客户组2100接收到的请求,并且基于客户组2100的请求访问数据库服务器组2220或对象高速缓冲服务器组2230。数据库服务器组2220可包括存储通过应用服务器装置AS处理的数据的数据库服务器装置DS。对象高速缓冲服务器组2230可包括对象高速缓冲服务器装置OCS,其对存储在数据库服务器装置DS中或从数据库服务器装置DS中读出的数据进行临时存储,因此,对象高速缓冲服务器组2230可执行作为应用服务器装置AS与数据库服务器装置DS之间的高速缓存的各个功能。
根据本发明的另一实施例,可利用以上参照图1至图18描述的实施例实施对象高速缓冲服务器装置OCS。详细地说,对象高速缓冲服务器装置OCS各自可包括NVM和控制器,并且控制器可包括例如SRAM的存储器。对象高速缓冲服务器装置OCS中的每一个可周期性地或间断地监测在包括在控制器中的存储器中产生的错误位,并且基于监测结果动态地确定缓冲存储器或关于只读存储器的再写周期。
图21是根据实施例的电子装置3000的示图。参照图21,电子装置3000可包括通过总线3700彼此连接的处理器3100、存储器装置3200、储存装置3300、调制解调器3400、I/O装置3500和电源3600。根据实施例,可利用以上参照图1至图18描述的实施例实施储存装置3300。详细地说,储存装置3300可包括NVM和控制器,并且控制器可包括诸如SRAM的存储器。储存装置3300可周期性地或间断地监测在包括在控制器中的存储器中产生的错误位,并且基于监测结果动态地确定缓冲存储器或关于只读存储器的再写周期。
虽然已经参照本发明构思的实施例具体示出并描述了本发明构思,但是应该理解,在不脱离权利要求的精神和范围的情况下,可在其中作出各种形式和细节上的改变。

Claims (20)

1.一种集成电路装置,包括:
非易失性存储器;
第一缓冲存储器,其被构造为分别响应于写请求缓冲将被写入所述非易失性存储器的写数据以及响应于读请求缓冲从所述非易失性存储器接收到的读数据;
第二缓冲存储器,其被构造为分别响应于写请求缓冲将被写入所述非易失性存储器的写数据以及响应于读请求缓冲从所述非易失性存储器接收到的读数据;以及
控制器,其耦接至所述第一缓冲存储器和所述第二缓冲存储器,所述控制器被构造为基于与存储在所述第一缓冲存储器中的数据的准确性有关的至少一个标准评价所述第一缓冲存储器,并且还被构造为:(i)当所述评价揭示超过所述标准时,响应于写请求将写数据中的至少一些从所述第一缓冲存储器重定向至所述第二缓冲存储器,以及(i i)当所述评价揭示超过所述标准时,响应于读请求将读数据中的至少一些从所述第一缓冲存储器重定向至所述第二缓冲存储器。
2.根据权利要求1所述的集成电路装置,其中,所述至少一个标准是存储在所述第一缓冲存储器中的错误数据位的数量的函数或者是所述第一缓冲存储器中的错误位产生频率的函数。
3.根据权利要求2所述的集成电路装置,其中,所述控制器包括缓冲管理器,其被构造为基于所述至少一个标准评价所述第一缓冲存储器。
4.根据权利要求2所述的集成电路装置,其中,所述控制器包括错误检查与校正模块,其被构造为检查和校正存储在所述第一缓冲存储器中的数据的错误。
5.根据权利要求1所述的集成电路装置,其中,所述第一缓冲存储器是静态随机存取存储器,所述第二缓冲存储器是动态随机存取存储器。
6.一种储存装置,包括:
非易失性存储器;
控制器,其包括第一存储器,所述第一存储器被构造为缓冲将写在所述非易失性存储器上的写数据或者缓冲从所述非易失性存储器读取的读数据,所述控制器被构造为基于在所述第一存储器中产生的错误位的数量或者所述错误位的产生频率动态地确定用于缓冲所述写数据或所述读数据的缓冲存储器;以及
第二存储器,其被构造为当所述错误位的数量或所述错误位的产生频率等于或高于阈值时缓冲所述写数据或所述读数据。
7.根据权利要求6所述的储存装置,其中,所述控制器还包括缓冲管理器,其被构造为将所述错误位的数量或所述错误位的产生频率与所述阈值进行比较,当所述数量或所述产生频率低于所述阈值时,将所述第一存储器确定为所述缓冲存储器,并且当所述数量或所述产生频率等于或高于所述阈值时,将所述第二存储器确定为所述缓冲存储器。
8.根据权利要求6所述的储存装置,其中,所述控制器还包括监测模块,其被构造为通过将输入至所述第一存储器的数据与从所述第一存储器输出的数据进行比较来监测所述错误位的数量或所述错误位的产生频率。
9.根据权利要求6所述的储存装置,其中,所述控制器还包括错误检查与校正模块,其被构造为对在所述第一存储器中缓冲的数据执行错误检查与校正操作。
10.根据权利要求9所述的储存装置,其中,所述控制器还包括监测模块,其被构造为基于通过所述错误检查与校正模块校正的错误来监测所述错误位的数量或所述错误位的产生频率。
11.根据权利要求6所述的储存装置,其中,所述控制器还被构造为监测写数据或读数据的输入/输出速度,并且基于所述输入/输出速度动态地确定所述缓冲存储器。
12.根据权利要求11所述的储存装置,其中,所述控制器还包括缓冲管理器,其被构造为将所述输入/输出速度与阈速度进行比较,当所述输入/输出速度低于所述阈速度时,将所述第一存储器确定为所述缓冲存储器,并且当所述输入/输出速度等于或高于所述阈速度时,将所述第二存储器确定为所述缓冲存储器。
13.根据权利要求6所述的储存装置,其中,所述第一存储器是静态随机存取存储器。
14.根据权利要求6所述的储存装置,其中,所述第二存储器是动态随机存取存储器。
15.一种储存装置,包括:
非易失性存储器;以及
控制器,其包括存储器,所述存储器包括用于缓冲将写在所述非易失性存储器上的写数据或者从所述非易失性存储器读取的读数据的缓冲区,
其中,所述控制器被构造为基于在所述缓冲区中产生的错误位的数量或者所述错误位的产生频率动态地确定关于所述存储器的只读区的再写周期,并且根据所确定的再写周期动态地控制关于所述只读区的再写操作。
16.根据权利要求15所述的储存装置,其中,所述控制器还包括再写管理器,其被构造为将所述错误位的数量或所述错误位的产生频率与阈值进行比较,当所述错误位的数量或所述错误位的产生频率等于或高于所述阈值时减小所述再写周期,并且当所述错误位的数量或所述错误位的产生频率低于所述阈值时增大所述再写周期。
17.根据权利要求15所述的储存装置,其中,所述非易失性存储器包括其中存储有写在所述只读区上的元数据的元区域,并且
所述控制器还被构造为根据所确定的再写周期将存储在所述元区域中的元数据再写在所述只读区上。
18.根据权利要求15所述的储存装置,其中,所述控制器还包括监测模块,其被构造为通过将输入至所述缓冲区的数据与从所述缓冲区输出的数据进行比较来监测所述错误位的数量或者所述错误位的产生频率。
19.根据权利要求15所述的储存装置,其中,所述控制器还包括错误检查与校正模块,其被构造为针对在所述缓冲区中缓冲的数据执行错误检查与校正操作。
20.根据权利要求15所述的储存装置,其中,所述控制器还被构造为监测写数据或读数据的输入/输出速度,并且基于所述输入/输出速度动态地确定所述再写周期。
CN201811190300.5A 2018-01-22 2018-10-12 集成电路存储器装置及其操作方法 Pending CN110069357A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180007894A KR102507302B1 (ko) 2018-01-22 2018-01-22 스토리지 장치 및 상기 스토리지 장치의 동작 방법
KR10-2018-0007894 2018-01-22

Publications (1)

Publication Number Publication Date
CN110069357A true CN110069357A (zh) 2019-07-30

Family

ID=67145196

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811190300.5A Pending CN110069357A (zh) 2018-01-22 2018-10-12 集成电路存储器装置及其操作方法

Country Status (5)

Country Link
US (2) US11086561B2 (zh)
JP (1) JP7308025B2 (zh)
KR (1) KR102507302B1 (zh)
CN (1) CN110069357A (zh)
DE (1) DE102018120964A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7219397B2 (ja) * 2019-01-18 2023-02-08 富士通株式会社 情報処理装置、記憶制御装置および記憶制御プログラム
US11908504B2 (en) * 2021-04-13 2024-02-20 Seagate Technology Llc Front end buffer having ferroelectric field effect transistor (FeFET) based memory
KR20230060817A (ko) * 2021-10-28 2023-05-08 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
KR20240015986A (ko) * 2022-07-28 2024-02-06 에스케이하이닉스 주식회사 메모리 컨트롤러, 메모리 컨트롤러를 포함하는 메모리 시스템 및 그것의 동작 방법

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090094320A1 (en) * 2007-10-09 2009-04-09 Srinivas Palthepu File system adapted for use with a dispersed data storage network
CN101856912A (zh) * 2009-04-01 2010-10-13 精工爱普生株式会社 存储装置和包括能够与主机电路电连接的存储装置的系统
US20110022801A1 (en) * 2007-12-06 2011-01-27 David Flynn Apparatus, system, and method for redundant write caching
CN102541983A (zh) * 2011-10-25 2012-07-04 无锡城市云计算中心有限公司 一种分布式文件系统中多客户端缓存同步的方法
CN103092764A (zh) * 2011-10-31 2013-05-08 苹果公司 用于获得和使用非易失性存储器健康信息的系统和方法
CN103137199A (zh) * 2011-11-30 2013-06-05 三星电子株式会社 存储器系统、数据存储设备、存储卡和固态驱动器
US20130227347A1 (en) * 2012-02-28 2013-08-29 Samsung Electronics Co., Ltd. Storage device
US20130246847A1 (en) * 2012-03-19 2013-09-19 Samsung Electronics Co., Ltd. Method of detecting error in write data and data processing system to perform the method
CN104254986A (zh) * 2012-02-10 2014-12-31 日本电信电话株式会社 波长选择开关系统和波长选择开关的控制方法
US20160034327A1 (en) * 2014-08-01 2016-02-04 Samsung Electronics Co., Ltd. Method of operating non-volatile memory device
CN105518800A (zh) * 2013-06-14 2016-04-20 三星电子株式会社 半导体存储器装置及其ecc方法
CN105786403A (zh) * 2015-01-13 2016-07-20 三星电子株式会社 包括缓冲器和主存储器的存储装置及用户装置

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3746319B2 (ja) 1995-11-08 2006-02-15 株式会社ルネサステクノロジ 半導体記憶装置
JP3789998B2 (ja) 1997-01-17 2006-06-28 株式会社ルネサステクノロジ メモリ内蔵プロセサ
JP3250032B2 (ja) * 1997-04-09 2002-01-28 日本アイ・ビー・エム株式会社 動的バンド幅変更データ転送方法及びシステム
US6832340B2 (en) 2000-01-26 2004-12-14 Hewlett-Packard Development Company, L.P. Real-time hardware memory scrubbing
US7398302B2 (en) * 2001-03-30 2008-07-08 Hitachi, Ltd. Remote copy with path selection and prioritization
JP2005100259A (ja) 2003-09-26 2005-04-14 Hitachi Ltd ドライブの2重障害を防止するアレイ型ディスク装置、プログラム、及び方法
JP4237109B2 (ja) 2004-06-18 2009-03-11 エルピーダメモリ株式会社 半導体記憶装置及びリフレッシュ周期制御方法
JP4617847B2 (ja) * 2004-11-04 2011-01-26 株式会社日立製作所 情報処理システム及びアクセス方法
JP4846383B2 (ja) * 2006-02-10 2011-12-28 株式会社日立製作所 情報処理装置
US7631228B2 (en) 2006-09-12 2009-12-08 International Business Machines Corporation Using bit errors from memory to alter memory command stream
JP4939234B2 (ja) * 2007-01-11 2012-05-23 株式会社日立製作所 フラッシュメモリモジュール、そのフラッシュメモリモジュールを記録媒体として用いたストレージ装置及びそのフラッシュメモリモジュールのアドレス変換テーブル検証方法
US7966447B2 (en) * 2007-07-06 2011-06-21 Hewlett-Packard Development Company, L.P. Systems and methods for determining refresh rate of memory based on RF activities
US7793150B1 (en) * 2007-10-16 2010-09-07 Nvidia Corporation System, method, and computer program product for saving an unprocessed portion of a push buffer in response to an error
US8015438B2 (en) 2007-11-29 2011-09-06 Qimonda Ag Memory circuit
US8938655B2 (en) * 2007-12-20 2015-01-20 Spansion Llc Extending flash memory data retension via rewrite refresh
US20090217281A1 (en) * 2008-02-22 2009-08-27 John M Borkenhagen Adaptable Redundant Bit Steering for DRAM Memory Failures
JP4489127B2 (ja) 2008-02-29 2010-06-23 株式会社東芝 半導体記憶装置
JP2010250511A (ja) 2009-04-14 2010-11-04 Kyushu Univ キャッシュメモリ装置
US8122166B2 (en) * 2009-04-20 2012-02-21 International Business Machines Corporation Management of redundant physical data paths in a computing system
US8638602B1 (en) 2010-09-10 2014-01-28 Western Digital Technologies, Inc. Background selection of voltage reference values for performing memory read operations
KR101736384B1 (ko) * 2010-09-29 2017-05-16 삼성전자주식회사 비휘발성 메모리 시스템
US8619555B2 (en) * 2010-11-17 2013-12-31 Netapp, Inc. Method and system for path selection in a network
JP5722754B2 (ja) * 2011-12-06 2015-05-27 株式会社日立製作所 ソフトエラー耐性調整機能を備えた電子システム装置及びソフトエラー耐性調整方法
KR101351550B1 (ko) 2012-04-18 2014-01-22 연세대학교 산학협력단 비휘발성 메인 메모리 기반을 위한 이중 버퍼 구조 및 데이터 운영 방식
US8848471B2 (en) 2012-08-08 2014-09-30 International Business Machines Corporation Method for optimizing refresh rate for DRAM
WO2014102886A1 (en) * 2012-12-28 2014-07-03 Hitachi, Ltd. Information processing apparatus and cache control method
EP2951832A4 (en) 2013-01-31 2017-03-01 Hewlett-Packard Enterprise Development LP Ram refresh rate
US9361221B1 (en) 2013-08-26 2016-06-07 Sandisk Technologies Inc. Write amplification reduction through reliable writes during garbage collection
JP2015161999A (ja) * 2014-02-26 2015-09-07 富士通株式会社 ストレージ装置,制御装置及び制御プログラム
US9323607B2 (en) 2014-04-29 2016-04-26 Seagate Technology Llc Data recovery once ECC fails to correct the data
KR102210327B1 (ko) 2014-08-21 2021-02-01 삼성전자주식회사 에러 알림 기능이 있는 메모리 장치
KR102372888B1 (ko) 2015-06-15 2022-03-10 삼성전자주식회사 저장 장치의 온도별 데이터 관리 방법
JP2017157257A (ja) * 2016-03-01 2017-09-07 東芝メモリ株式会社 半導体記憶装置及びメモリシステム
US10373656B2 (en) * 2016-09-26 2019-08-06 Toshiba Memory Corporation Memory system that carries out temperature-based access to a memory chip
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US10248330B2 (en) * 2017-05-30 2019-04-02 Seagate Technology Llc Data storage device with buffer tenure management
US10176886B1 (en) * 2017-07-07 2019-01-08 Seagate Technology Llc Multi-level data block error detection code

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090094320A1 (en) * 2007-10-09 2009-04-09 Srinivas Palthepu File system adapted for use with a dispersed data storage network
US20110022801A1 (en) * 2007-12-06 2011-01-27 David Flynn Apparatus, system, and method for redundant write caching
CN101856912A (zh) * 2009-04-01 2010-10-13 精工爱普生株式会社 存储装置和包括能够与主机电路电连接的存储装置的系统
CN102541983A (zh) * 2011-10-25 2012-07-04 无锡城市云计算中心有限公司 一种分布式文件系统中多客户端缓存同步的方法
CN103092764A (zh) * 2011-10-31 2013-05-08 苹果公司 用于获得和使用非易失性存储器健康信息的系统和方法
CN103137199A (zh) * 2011-11-30 2013-06-05 三星电子株式会社 存储器系统、数据存储设备、存储卡和固态驱动器
CN104254986A (zh) * 2012-02-10 2014-12-31 日本电信电话株式会社 波长选择开关系统和波长选择开关的控制方法
US20130227347A1 (en) * 2012-02-28 2013-08-29 Samsung Electronics Co., Ltd. Storage device
US20130246847A1 (en) * 2012-03-19 2013-09-19 Samsung Electronics Co., Ltd. Method of detecting error in write data and data processing system to perform the method
CN105518800A (zh) * 2013-06-14 2016-04-20 三星电子株式会社 半导体存储器装置及其ecc方法
US20160034327A1 (en) * 2014-08-01 2016-02-04 Samsung Electronics Co., Ltd. Method of operating non-volatile memory device
CN105786403A (zh) * 2015-01-13 2016-07-20 三星电子株式会社 包括缓冲器和主存储器的存储装置及用户装置

Also Published As

Publication number Publication date
DE102018120964A1 (de) 2019-07-25
KR20190089429A (ko) 2019-07-31
US11086561B2 (en) 2021-08-10
KR102507302B1 (ko) 2023-03-07
JP2019128948A (ja) 2019-08-01
US20210334037A1 (en) 2021-10-28
JP7308025B2 (ja) 2023-07-13
US20190227738A1 (en) 2019-07-25

Similar Documents

Publication Publication Date Title
US11216362B2 (en) Data storage device and operating method thereof
US9129672B2 (en) Semiconductor device and operating method thereof
US10777271B2 (en) Method and apparatus for adjusting demarcation voltages based on cycle count metrics
CN110069357A (zh) 集成电路存储器装置及其操作方法
TW201732597A (zh) 資料儲存裝置和其操作方法
CN109933280A (zh) 数据存储装置及其操作方法
TW201923573A (zh) 記憶體控制器、系統及包括記憶體控制器的應用處理器
US10445252B2 (en) Storage device and operating method performed by the same
US10990287B2 (en) Data storage device capable of reducing latency for an unmap command, and operating method thereof
KR102592796B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US11520694B2 (en) Data storage device and operating method thereof
CN110221770A (zh) 在存储装置当中改进数据分布的方法
JP2021125248A (ja) コントローラ、コントローラの動作方法及びそれを含む保存装置
KR20210147696A (ko) 데이터 저장 장치 및 그것의 동작 방법
US11042326B2 (en) Data storage device and operating method thereof
US20140095962A1 (en) Semiconductor device and operating method thereof
US20230084601A1 (en) Memory controller, memory system and operating method of the memory system
US11688453B2 (en) Memory device, memory system and operating method
US11194512B2 (en) Data storage device which selectively performs a cache read or a normal read operation depending on work load and operating method thereof
CN107526694A (zh) 数据存储装置及其操作方法
KR20220076803A (ko) 데이터 저장 장치 및 그것의 동작 방법
US20230144659A1 (en) Memory device, method of operating the same, and method of operating storage device including the same
US20230147773A1 (en) Storage device and operating method
US11450394B2 (en) Controller and operating method thereof
US20240160511A1 (en) Failure prediction apparatus and method for storage devices

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