CN109213441A - 能够管理工作而无需处理器干预的存储装置 - Google Patents
能够管理工作而无需处理器干预的存储装置 Download PDFInfo
- Publication number
- CN109213441A CN109213441A CN201810722287.7A CN201810722287A CN109213441A CN 109213441 A CN109213441 A CN 109213441A CN 201810722287 A CN201810722287 A CN 201810722287A CN 109213441 A CN109213441 A CN 109213441A
- Authority
- CN
- China
- Prior art keywords
- work
- data
- manager circuit
- storage device
- processor
- 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.)
- Granted
Links
- 238000003860 storage Methods 0.000 title claims abstract description 161
- 230000015654 memory Effects 0.000 claims abstract description 125
- 230000004044 response Effects 0.000 claims abstract description 17
- 239000000872 buffer Substances 0.000 claims description 93
- 238000012856 packing Methods 0.000 claims description 12
- 230000002159 abnormal effect Effects 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 10
- 238000009826 distribution Methods 0.000 claims description 8
- 230000003139 buffering effect Effects 0.000 claims description 6
- 238000012937 correction Methods 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 claims description 3
- 238000001514 detection method Methods 0.000 claims description 2
- 101150102573 PCR1 gene Proteins 0.000 description 21
- 238000010586 diagram Methods 0.000 description 20
- 238000010276 construction Methods 0.000 description 19
- 238000004891 communication Methods 0.000 description 11
- 238000012546 transfer Methods 0.000 description 7
- 101100519158 Arabidopsis thaliana PCR2 gene Proteins 0.000 description 6
- 101100519159 Arabidopsis thaliana PCR3 gene Proteins 0.000 description 6
- 101100519160 Arabidopsis thaliana PCR4 gene Proteins 0.000 description 6
- 238000000034 method Methods 0.000 description 6
- 101100122529 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) GON7 gene Proteins 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 102100020865 EKC/KEOPS complex subunit LAGE3 Human genes 0.000 description 4
- 101001137983 Homo sapiens EKC/KEOPS complex subunit LAGE3 Proteins 0.000 description 4
- 238000000151 deposition Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- MOJZMWJRUKIQGL-XILRTYJMSA-N procyanidin C1 Chemical compound C1([C@@H]2[C@H](O)[C@H](C3=C(O)C=C(O)C=C3O2)C2=C3O[C@@H]([C@H](O)[C@H](C3=C(O)C=C2O)C=2C(O)=CC(O)=C3C[C@H]([C@H](OC3=2)C=2C=C(O)C(O)=CC=2)O)C=2C=C(O)C(O)=CC=2)=CC=C(O)C(O)=C1 MOJZMWJRUKIQGL-XILRTYJMSA-N 0.000 description 4
- 101100519161 Arabidopsis thaliana PCR5 gene Proteins 0.000 description 3
- 230000005611 electricity Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 101100519162 Arabidopsis thaliana PCR6 gene Proteins 0.000 description 2
- 206010037660 Pyrexia Diseases 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013016 damping Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000012536 storage buffer Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- 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/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- 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
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/30—Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
-
- 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
- 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/0253—Garbage collection, i.e. reclamation of unreferenced 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- 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/0608—Saving storage space on 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/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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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/0653—Monitoring storage devices or 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/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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- 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/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- 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/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
-
- 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/7201—Logical to physical mapping or translation of blocks or pages
-
- 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
-
- 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/7205—Cleaning, compaction, garbage collection, erase control
-
- 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/7209—Validity control, e.g. using flags, time stamps or sequence numbers
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
一种存储装置包括非易失性存储器和控制器。控制器包括工作管理器电路和处理器。工作管理器电路管理与非易失性存储器相关联的第一类型的工作,并且处理器处理与非易失性存储器相关联的第二类型的工作。工作管理器电路管理第一类型的工作而无需处理器干预。处理器响应于从工作管理器电路接收到的通知将管理命令提供至工作管理器电路,从而处理第二类型的工作。
Description
相关申请的交叉引用
本申请要求于2017年6月30日在韩国知识产权局提交的韩国专利申请No.10-2017-0083817的优先权,该申请的全部内容以引用方式并入本文中。
技术领域
本发明构思涉及一种电子装置。更具体地说,本发明构思涉及存储并输出数据的存储装置的操作和构造。
背景技术
电子装置通常根据其中包含的电子电路的操作来执行功能。在存储装置作为包括用于存储数据的存储器装置的电子装置的示例的情况下,存储器装置存储和/或输出数据,因此存储装置为用户提供存储服务。
随着各种电子装置的使用以及用户可访问的数据量的增加,对大容量存储装置的需求在增加。此外,对能够快速处理大量数据的高性能和高效率存储装置的需求也在增加。
大多数电子装置都是以集中式架构实现的,其被构造为使得特定的电路或组件控制整体操作。在集中式架构中,电子装置的性能受限于特定电路或组件的性能和吞吐量。因此,集中式架构已不适合满足对高性能和高效率电子装置的需求。
发明内容
本发明构思的实施例提供了通过硬件自动架构实现的存储装置的构造和操作。在示例实施例中,存储装置可通过专用硬件电路管理简单工作,而不完全依赖于处理器的控制。
本发明构思的实施例提供了一种存储装置,其包括非易失性存储器和控制器。控制器包括工作管理器电路和处理器。工作管理器电路管理与非易失性存储器相关联的第一类型的工作,并且处理器处理与非易失性存储器相关联的第二类型的工作。工作管理器电路管理第一类型的工作,而无需处理器的干预。处理器响应于从工作管理器接收到的通知将管理命令提供至工作管理器电路。管理命令指示对第二类型的工作的处理。
本发明构思的实施例提供了一种存储装置,其包括非易失性存储器和控制器。控制器包括工作管理器电路和处理器。工作管理器电路管理与非易失性存储器相关联的第一类型的工作,并且处理器处理与非易失性存储器相关联的第二类型的工作。处理器在通过工作管理器电路正常管理第一类型的工作的同时不干预第一类型的工作。在在处理器不干预第一类型的工作的同时,当满足干预条件时,处理器输出指示对第二类型的工作进行处理的管理命令。
本发明构思的实施例提供了一种存储装置,其包括非易失性存储器和控制器。控制器控制非易失性存储器的操作,并且包括写管理器电路、读管理器电路、数据域管理器电路和处理器。写管理器电路管理第一类型的第一工作,第一工作包括将写数据存储在非易失性存储器中。读管理器电路管理第一类型的第二工作,第二工作包括将读数据输出至控制器之外。数据域管理器电路关于第一工作和第二工作的性能获得非易失性存储器、写数据和读数据中的至少一个的状态的信息。处理器处理与非易失性存储器相关联的第二类型的第三工作。数据域管理器电路基于获得的信息将通知提供至处理器。当未从数据域管理器电路接收到通知时,处理器不干预第一工作和第二工作。
本发明构思的实施例提供了一种存储装置,其包括非易失性存储器和控制器。非易失性存储器存储写数据和输出读数据。控制器包括用于将写数据转移至非易失性存储器的第一路径、用于将输出的读数据转移至控制器之外的第二路径以及处理器。当关于沿着第一路径将写数据转移至非易失性存储器或者沿着第二路径将输出的读数据输出至外部发生错误或异常时,处理器输出管理命令,所述管理命令指导在第一路径和第二路径中的至少一个上执行的管理操作。当未发生错误或异常时,处理器不干预在第一路径和第二路径上执行的正常操作。
本发明构思的实施例提供了一种存储装置,其包括非易失性存储器、控制器和缓冲器存储器。控制器包括工作管理器电路和处理器。工作管理器电路管理与非易失性存储器相关联的第一类型的工作,并且处理器处理与非易失性存储器相关联的第二类型的工作。缓冲器存储器存储第一元数据和第二元数据。当通过工作管理器电路管理第一类型的工作时产生或参照第一元数据,并且当通过处理器处理第二类型的工作时产生或参照第二元数据。处理器在通过工作管理器电路正常管理第一类型的工作的同时不干预第一类型的工作。处理器不干预以下操作:通过工作管理器电路将第一元数据存储在缓冲器存储器中以及通过工作管理器电路从缓冲器存储器读取第一元数据。
根据本发明构思的示例实施例,可通过专用硬件电路管理相对频繁地执行的简单工作,而无需处理器干预。因此,存储装置的性能可不依赖处理器的性能和缓冲器存储器的吞吐量,并且处理器和缓冲器存储器的功耗和发热可减小。结果,可提供高性能的高效率存储装置。
附图说明
从下面参照以下附图的描述中,以上和其它目的和特征将变得清楚,其中除非另有说明,否则在不同的附图中,相同的标号始终指代相同的部分,其中:
图1示出根据本发明构思的示例实施例的包括存储装置的电子系统的示例构造的框图;
图2示出与图1的存储装置相关联的示例构造的框图;
图3示出描述根据本发明构思的示例实施例的图2的存储装置的示例操作的框图;
图4示出描述根据本发明构思的另一示例实施例的图2的存储装置的示例操作的框图;
图5示出根据本发明构思的示例实施例的图2的控制器的示例构造的框图;
图6示出根据本发明构思的示例实施例的图5的数据包的示例构造的概念图;
图7示出描述根据本发明构思的示例实施例的在图2的存储装置中执行的示例写操作的框图;
图8示出描述根据本发明构思的示例实施例的在图2的存储装置中执行的示例写操作的框图;
图9示出描述根据本发明构思的示例实施例的在图2的存储装置中执行的示例写操作的流程图;
图10示出描述根据本发明构思的示例实施例的在图2的存储装置中执行的示例读操作的框图;
图11示出描述根据本发明构思的示例实施例的在图2的存储装置中执行的示例读操作的框图;
图12示出描述根据本发明构思的示例实施例的在图2的存储装置中执行的示例读操作的框图;
图13示出描述根据本发明构思的示例实施例的在图2的存储装置中执行的示例读操作的流程图;
图14示出描述根据本发明构思的示例实施例的在图2的存储装置中执行的示例管理操作的框图;
图15示出描述根据本发明构思的示例实施例的在图2的存储装置中执行的示例管理操作的流程图;
图16示出描述根据本发明构思的示例实施例的图2的存储装置的整体操作的流程图;以及
图17示出与图1的存储装置相关联的示例构造的框图。
具体实施方式
下面,将参照附图详细和清楚地描述一些示例实施例,从而本领域技术人员可容易地实施本发明构思。
作为本发明构思的领域中的传统做法,可通过执行所述一个或多个功能的块来描述和示出实施例。通过诸如逻辑门、集成电路、微处理器、微控制器、存储器电路、无源电子组件、有源电子组件、光学组件、硬连线电路等的模拟和/或数字电路来在物理上实施并且可选地通过固件和/或软件来驱动本文中可被称作单元或模块等的这些块。例如,所述电路可在一个或多个半导体芯片中实现,或者在诸如印刷电路板等的衬底支承件上实现。除非另有说明,否则构成块的电路可通过专用硬件或者通过处理器(例如,一个或多个编程微处理器和关联电路)或者通过用于执行所述块的一些功能的专用硬件与用于执行所述块的其它功能的处理器的组合来实施。实施例的各个块可在物理上分为两个或更多个相互作用和分立的块,而不脱离本发明构思的范围。相似地,实施例的块可在物理上组合为更复杂的块,而不脱离本发明构思的范围。
图1示出根据本发明构思的示例实施例的包括存储装置1300的电子系统1000的示例构造的框图。
电子系统1000包括主处理器1101、工作存储器1200、存储装置1300、通信块1400、用户接口1500和总线1600。例如,电子系统1000可为诸如台式计算机、膝上型计算机、平板计算机、智能电话、可穿戴装置、视频游戏台、工作站、服务器、电动车、家用电器、医疗器械等的电子装置之一。
主处理器1101可控制电子系统1000的整体操作。主处理器1101可处理各种算术操作和/或逻辑操作。这样,主处理器1101可包括专用逻辑电路(例如,现场可编程门阵列(FPGA)、专用集成电路芯片(ASIC)等)。例如,主处理器1101可包括一个或多个处理器核,并且可通过通用处理器、专用处理器或应用处理器来实施。
工作存储器1200可存储在电子系统1000的操作中使用的数据。例如,工作存储器1200可暂时存储已通过或将通过主处理器1101处理的数据。工作存储器1200可包括易失性存储器(例如动态随机存取存储器(DRAM)、同步DRAM(SDRAM)等)和/或非易失性存储器(例如相变RAM(PRAM)、磁阻RAM(MRAM)、电阻RAM(ReRAM)、铁电RAM(FRAM)等)。
存储装置1300可包括一个或多个存储器装置和控制器。不管是否对存储装置1300的一个或多个存储器装置供应电力其都可存储数据。例如,存储装置1300可包括非易失性存储器,诸如闪速存储器、PRAM、MRAM、ReRAM、FRAM等。例如,存储装置1300可包括诸如固态驱动(SSD)、卡存储、内置存储等的存储介质。
通信块1400可与电子系统1000的外部装置/系统通信。例如,通信块1400可支持诸如长期演进(LTE)、微波接入全球互操作性(WIMAX)、全球移动通信系统(GSM)、码分多址(CDMA)、蓝牙TM、NFC(近场通信)、无线保真(Wi-Fi)、射频识别(RFID)等的各种无线通信协议中的至少一种,和/或诸如传输控制协议/互联网协议(TCP/IP)、通用串行总线(USB)、火线TM等等的各种有线通信协议中的至少一种。
用户接口1500可在用户与电子系统1000之间执行通信仲裁。例如,用户接口1500可包括输入接口,诸如键盘、鼠标、键区、按钮、触摸面板、触摸屏、触摸垫、触摸球、摄像头、麦克风、陀螺仪传感器、振动传感器等。例如,用户接口1500可包括输出接口,诸如液晶显示(LCD)装置、发光二极管(LED)显示装置、有机LED(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、扬声器、电机、LED灯等。
总线1600可在电子系统1000的组件之间提供通信路径。电子系统1000的组件可基于总线1600的总线格式彼此交换数据。例如,总线格式可包括诸如USB、小计算机系统接口(SCSI)、高速外围组件互连(PCIe)、移动PCIe(M-PCIe)、高级技术附件(ATA)、并行ATA(PATA)、串行ATA(SATA)、串联连接SCSI(SAS)、电子集成驱动器(IDE)、增强型IDE(EIDE)、高速非易失性存储器(NVMe)、通用闪存存储(UFS)等的各种接口协议中的一个或多个。
根据本发明构思的示例实施例,存储装置1300可通过硬件自动架构实施。在示例实施例中,存储装置1300可通过使用专用硬件电路来管理简单工作,而不完全依赖于内部处理器的控制。相对频繁执行的简单工作可由专用硬件电路管理,而不受内部处理器的干预,因此可提高存储装置1300的性能和效率。将参照图2至图17描述存储装置1300的示例构造和操作。
下面将如上所述参照图2至图17描述存储装置1300,但是本发明构思不限于所述实施例。可在包括存储器装置的任何类型的装置中采用示例实施例。例如,即使对于包括在工作存储器1200中的易失性存储器和/或非易失性存储器,也可采用示例实施例。提供以下描述以有利于更好地理解,而不旨在限制本发明构思。
图2示出与图1的存储装置1300相关联的示例构造的框图。图1的电子系统1000可实施为图2所示的电子系统1000a,从而图1的存储装置1300和主处理器1101在图2中分别实施为存储装置1300a和主机1100a。图2的电子系统1000a还包括图1的工作存储器1200、通信块1400、用户接口1500和总线1600,为了简单起见,图2中省略了这些特征。
如参照图1所述,主处理器1101可通过总线1600与存储装置1300通信。在参照图2描述的实施例中,能够访问存储装置1300a的对象被称作“主机”1100a。主处理器1101可为能够作为主机1100操作的各种对象的示例。然而,应该理解,本发明构思应该不限于主机1100a作为诸如图1所示的主处理器。
返回至图2,主机1100a可与存储装置1300a交换数据DAT。存储装置1300a可响应于从主机1100a接收到的命令CMD为主机1100a提供存储服务。
例如,主机1100a可将写命令(即,CMD)和写数据(即,DAT)提供至存储装置1300a。存储装置1300a可响应于写命令对请求的写数据进行存储。例如,主机1100a可将读命令(即,CMD)提供至存储装置1300a。存储装置1300a可响应于读命令将请求的读数据(即,DAT)输出至主机1100a。
存储装置1300a包括一个或多个存储器装置1310和控制器1330a。图2示出两个存储器装置1311和1319,但是包括在存储装置1300a中的存储器装置的数量可不同地改变或修改。
存储器装置1311和1319中的每一个可存储或输出主机1100a请求的数据。这样,存储器装置1311和1319中的每一个可包括用于存储数据的存储区域。存储器装置1311和1319可包括诸如闪速存储器、PRAM、MRAM、ReRAM、FRAM等的非易失性存储器。例如,当存储器装置1311和1319中的每一个包括NAND式闪速存储器时,存储器装置1311和1319中的每一个可包括沿着多条字线和多条位线形成的存储器单元阵列,并且可在存储区域的页单元或块单元上执行涉及存储器装置1311和1319的操作。然而,参照图1的描述,存储器装置1311和1319中的每一个的类型和构造可不同地改变或修改。
可基于被称作“地址”的值识别和指示存储区域。可在由地址指示的存储区域中存储写数据,并且可从由地址指示的存储区域输出读数据。
主机1100a可将地址ADDR提供至存储装置1300a,以相对于存储器装置1311和1319的特定存储区域交换数据。存储装置1300a可基于从主机1100a接收到的请求(例如,命令CMD)和地址ADDR控制存储器装置1311和1319。
同时,由主机1100a处理的地址ADDR可与指示存储器装置1311和1319中的存储区域的地址不同。例如,由主机1100a处理的地址ADDR可被称作“逻辑地址”,并且存储器装置1311和1319中(或用于存储器装置1311和1319)的地址可被称作“物理地址”。存储装置1300a可在由主机1100a处理的逻辑地址与用于存储器装置1311和1319的物理地址之间执行地址转换,以合适地控制存储器装置1311和1319。
控制器1330a可控制存储装置1300a的整体操作。例如,控制器1330a可调度存储器装置1311和1319的操作,或者可编码和解码在存储装置1300a中处理的信号/数据。例如,控制器1330a可控制存储器装置1311和1319,以使得存储器装置1311和1319存储或输出数据。
控制器1330a可包括被构造为执行一些上面已描述的和下面将描述的操作的一个或多个硬件组件(例如,模拟电路、逻辑电路等)。另外,控制器1330a可包括一个或多个处理器核。上面已描述的和下面将描述的控制器1330a的一些操作可通过软件和/或固件的程序代码实施,并且控制器1330a的处理器核可执行程序代码的指令集。控制器1330a的处理器核可处理各种算术操作和/或逻辑操作,以执行指令集。
缓冲器存储器1350可缓冲存储装置1300a的操作中所使用的数据。例如,缓冲器存储器1350可暂时存储由控制器1330a查阅的数据。然而,缓冲器存储器1350不存储将在下面描述的将被存储在存储器装置1311和1319中的写数据和从存储器装置1311和1319输出的数据。作为替代,可将缓冲器存储器1350设为用于存储将由控制器1330a查阅的元数据的辅助存储器。例如,缓冲器存储器1350可包括诸如静态RAM(SRAM)、DRAM、SDRAM等的易失性存储器和/或诸如闪速存储器、PRAM、MRAM、ReRAM、FRAM等的非易失性存储器。
图3和图4示出描述根据本发明构思的示例实施例的图2的存储装置1300a的示例操作的框图。
参照图3和图4,控制器1330a包括第一类型的工作管理器电路HW和处理器1339。第一类型的工作管理器电路HW可管理与存储器装置1311和1319相关联的第一类型的工作。处理器1339可处理与存储器装置1311和1319相关联的第二类型的工作。例如,第一类型的工作可包括比第二类型的工作更频繁地执行的简单工作。
例如,第一类型的工作可包括在存储器装置1311和1319的第一单元大小的存储区域上执行的操作。例如,第一单元大小可包括页单元大小。例如,第一类型的工作可包括一般操作,诸如用于将写数据存储在存储器装置1311和1319中的写操作、用于从存储器装置1311和1319输出读数据的读操作等。
例如,第二类型的工作可包括在存储器装置1311和1319的第二单元大小的存储区域上执行的操作。第二单元大小可与第一单元大小不同,并且例如可包括块/子块/超块单元大小。例如,第二类型的工作可包括管理操作,诸如垃圾收集、耗损均衡、读刷新、错误检测和校正、断电保护等。
以下将描述基于以上示例的示例实施例。然而,提供这些示例实施例以有利于更好地理解,并且不旨在限制本发明构思。第一类型的工作可不同地改变或修改,以管理频繁执行的简单工作,而无需处理器1339干预。另外,第二类型的工作可不同地改变或修改,以在处理器1339的控制下处理复杂工作。另外,第一单元大小和第二单元大小可不同地改变或修改,并且在一些示例实施例中可彼此一致。
图3示出与第一类型的工作相关联的操作。例如,第一类型的工作可包括由主机1100a请求的操作。可根据包括在第一类型的工作管理器电路HW中的硬件电路等的操作来管理第一类型的工作,而无需处理器1339干预。
例如,在管理第一类型的工作的同时,可从包括为数据分配缓冲区、缓冲数据、触发数据输入/输出、控制数据输入/输出的路径等的所有操作中排除处理器1339的干预。在通过第一类型的工作管理器电路HW正常管理第一类型的工作的同时,处理器1339不干预第一类型的工作并且不与缓冲器存储器1350通信。
当第一类型的工作包括写操作时,例如,第一类型的工作管理器电路HW可沿着写路径将从主机1100a接收到的写数据转移至所述一个或多个存储器装置1310。当第一类型的工作包括例如读操作时,第一类型的工作管理器电路HW可沿着读路径将从所述一个或多个存储器装置1310输出的读数据转移至主机1100a。可分别沿着写路径和读路径以流PC_S的数据包(packet)单元转移写数据和读数据。
同时,在与第一类型的工作相关联的操作中,缓冲器存储器1350不存储将被存储在所述一个或多个存储器装置1310中的写数据和/或从所述一个或多个存储器装置1310输出的读数据。作为替代,可在第一类型的工作管理器电路HW的内部缓冲器中管理写数据和读数据。
将参照图5更完全地描述包括在第一类型的工作管理器电路HW中的硬件电路的示例构造。将参照图6更完全地描述数据包的示例构造。将参照图7至图13更完全地描述示例第一类型的工作。
图4示出与第二类型的工作相关联的操作。例如,第二类型的工作可包括无论主机1100a是否请求或者在主机1100a没有请求的情况下执行的操作。可在处理器1339的控制下(例如,基于在处理器1339上执行的软件和/或固件的程序代码)处理第二类型的工作。
例如,第一类型的工作管理器电路HW可监视与所述一个或多个存储器装置1310和控制器1330a的操作相关联的状态。第一类型的工作管理器电路HW可基于监视到的状态管理用于触发处理器1339的干预的干预条件。例如,监视到的状态可与关于第一类型的工作(例如,写操作或读操作)是否发生错误或异常关联。例如,当关于第一类型的工作发生错误或异常时可满足干预条件。
当在处理器1339不干预第一类型的工作的同时满足干预条件时,第一类型的工作管理器电路HW可为处理器1339提供包括监视到的状态的信息的通知。因此,第一类型的工作管理器电路HW可通知处理器1339已满足干预条件。
处理器1339可响应于从第一类型的工作管理器电路HW接收到的通知输出用于处理第二类型的工作的管理命令。第一类型的工作管理器电路HW可从处理器1339接收管理命令。第一类型的工作管理器电路HW可执行由管理命令指导的第二类型的工作。第二类型的工作可包括用于解决监视到的状态(例如,关于第一类型的工作的错误或异常)的管理操作。
例如,第二类型的工作可包括针对所述一个或多个存储器装置1310的管理操作。第一类型的工作管理器电路HW可与一个或多个存储器装置1310通信,以在处理器1339的控制下执行第二类型的工作(例如,管理操作)。将参照图14和图15更完全地描述示例第二类型的工作。
图5示出根据本发明构思的示例实施例的图2的控制器1330a的示例构造的框图。
控制器1330a包括主机接口层1331a、存储器接口层1332、写管理器电路1333、读管理器电路1335、数据域管理器电路1337和处理器1339。例如,写管理器电路1333、读管理器电路1335和数据域管理器电路1337可被包括在图3和图4的第一类型的工作管理器电路HW中。
主机接口层1331a可与主机1100a接合。例如,主机接口层1331a可将从主机1100a接收到的命令(即,CMD)和数据(即,DAT)转换为在控制器1330a中处理的格式。例如,主机接口层1331a可将在控制器1330a中处理的数据转换为在主机1100a中处理的格式,并且将转换格式的数据(即,DAT)输出至主机1100a。
存储器接口层1332可与所述一个或多个存储器装置1310接合。例如,存储器接口层1332可将写数据和相关的命令转换为将在所述一个或多个存储器装置1310中处理的格式。例如,存储器接口层1332可将从所述一个或多个存储器装置1310接收到的读数据转换为在控制器1330a中处理的格式。
写管理器电路1333可管理第一类型的工作。例如,写管理器电路1333可管理用于将写数据存储在所述一个或多个存储器装置1310中的写操作(其也可描述为第一类型的第一工作)。在该示例中,写管理器电路1333可位于用于将从主机1100a接收到的写数据转移至所述一个或多个存储器装置1310的写路径(即,第一路径)上。
读管理器电路1335可管理第一类型的工作。例如,读管理器电路1335可管理用于将读数据输出至控制器1330a外部(例如,至主机1100a)的读操作(也可描述为第一类型的第二工作)。在该示例中,读管理器电路1335可位于用于将从所述一个或多个存储器装置1310输出的读数据转移至控制器1330a外部的读路径(即,第二路径)上。
数据域管理器电路1337可关于执行第一类型的工作获得所述一个或多个存储器装置1310中的至少一个的状态的信息、写数据和/或读数据。写管理器电路1333和读管理器电路1335可执行第一类型的工作,并且因此可将各种状态的信息提供至数据域管理器电路1337。数据域管理器电路1337可基于获得的信息监视与所述一个或多个存储器装置1310和控制器1330a的操作相关联的状态。
处理器1339可包括一个或多个处理器核。处理器1339可根据处理器核的操作执行软件(SW)和/或固件(FW)的程序代码。处理器1339可执行软件和/或固件的程序代码,以执行第二类型的工作。
可以流的数据包单元转移命令和数据。这样,在一些示例实施例中,主机接口层1331a可包括打包器(packetizer)PCZ。
打包器PCZ可将从主机1100a接收到的命令和数据与额外信息(例如,数据包的目的地、地址、错误校验位等)组合,以产生数据包PCW1或数据包PCR1。当从主机1100a接收到写命令和写数据时,打包器PCZ可产生包括头部、数据部和尾部的数据包PCW1。例如,头部可包括写命令的信息,并且数据部可包括写数据。尾部可包括适于指示数据部的完成的信息。
当从主机1100a接收到读命令时,打包器PCZ可产生包括头部的数据包PCR1。头部可包括读命令的信息。关于读操作可不接收数据,因此,在一些情况下,数据包PCR1可不包括数据部和尾部。
打包器PCZ可包括被构造为基于从主机1100a接收到的命令和数据产生数据包PCW1或数据包PCR1的硬件电路。将参照图6更完全地描述在控制器1330a中处理的数据包的示例构造。
写管理器电路1333包括第一内部缓冲器1333a和缓冲器管理器1333b。写管理器电路1333可接收数据包PCW1或数据包PCR1。当数据包PCW1或数据包PCR1的头部包括命令的信息时,写管理器电路1333可参照头部来确定接收到的数据包是与写操作相关联还是与读操作相关联。
当写管理器电路1333接收与写操作相关联的数据包PCW1时,第一内部缓冲器1333a可缓冲被包括在数据包PCW1中的各种信息和写数据。例如,第一内部缓冲器1333a可包括诸如SRAM的存储器装置。缓冲器管理器1333b可管理第一内部缓冲器1333a的缓冲区的分配,以使得在第一内部缓冲器1333a存储信息时不发生故障或冲突。
写管理器电路1333可基于在第一内部缓冲器1333a中缓冲的写数据将数据包PCW2转移至存储器接口层1332。存储器接口层1332可参照数据包PCW2的头部确定将存储写数据的存储区域的物理地址。存储器接口层1332可将写数据转移至包括所确定的物理地址的存储区域的目标存储器装置。因此,写数据可存储在所述一个或多个存储器装置1310中。
当执行写操作时,写管理器电路1333可将从主机1100a接收到的逻辑地址映射至物理地址。可从由写管理器电路1333、数据域管理器电路1337和/或处理器1339管理的可用物理地址的列表中选择将被映射的物理地址。写数据可存储在所述一个或多个存储器装置1310的映射的物理地址的存储区域中。
写管理器电路1333可为数据域管理器电路1337提供接收到的逻辑地址和映射的物理地址的信息。数据域管理器电路1337可管理缓冲器存储器1350中的逻辑地址与物理地址之间的对应关系的信息。缓冲器存储器1350可将对应关系的信息作为第一元数据进行存储。将参照图7至图9进一步描述示例写操作。
另一方面,当写管理器电路1333接收与读操作相关联的数据包PCR1时,写管理器电路1333可将数据包PCR1转移至数据域管理器电路1337。例如,写管理器电路1333可被构造为基于接收到的数据包的额外信息对接收到的数据包进行路由。写管理器电路1333可用作关于转移命令和数据的开关。
数据域管理器电路1337可参照存储在缓冲器存储器1350中的第一元数据的对应关系获得对应于数据包PCR1的物理地址。也就是说,当管理第一类型的工作时可产生或参照第一元数据。数据域管理器电路1337可产生包括获得的物理地址的信息的数据包PCR2。数据域管理器电路1337可将数据包PCR2转移至存储器接口层1332。
存储器接口层1332可参照数据包PCR2的头部将读命令转移至包括获得的物理地址的存储区域的目标存储器装置。因此,可从目标存储器装置输出读数据。存储器接口层1332可为读管理器电路1335提供包括输出读数据的数据包PCR3。
读管理器电路1335包括第二内部缓冲器1335a。第二内部缓冲器1335a可缓冲包括在数据包PCR3中的各种信息。例如,第二内部缓冲器1335a可包括诸如SRAM的存储器装置。读管理器电路1335可基于在第二内部缓冲器1335a中缓冲的读数据将数据包PCR4转移至主机接口层1331a。
主机接口层1331a可将包括在数据包PCR4中的读数据转移至主机1100a。因此,可从所述一个或多个存储器装置1310将读数据输出至控制器1330a外部。将参照图10至图13进一步描述示例读操作。
写管理器电路1333、读管理器电路1335和数据域管理器电路1337中的每一个可包括被构造为执行上面已描述的和下面将描述的操作的硬件电路。写管理器电路1333、读管理器电路1335和数据域管理器电路1337可自动处理第一类型的工作,而无需处理器1339干预。可按照常规格式对命令和数据进行打包,并且因此写管理器电路1333、读管理器电路1335和数据域管理器电路1337中的每一个的硬件电路可基于数据包的额外信息管理流的数据包单元,而无需处理器1339干预。
在正常管理第一类型的工作的同时,处理器1339不干预第一类型的工作。另外,处理器1339不干预通过打包器PCZ产生数据包以及沿着写路径和读路径转移流的数据包单元。此外,在通过数据域管理器电路1337将第一元数据存储在缓冲器存储器1350中和通过数据域管理器电路1337从缓冲器存储器1350读第一元数据时处理器1339不进行干预。
在管理第一类型的工作的同时,数据域管理器电路1337可从写管理器电路1333和读管理器电路1335获得各种信息。获得的信息可指示与所述一个或多个存储器装置1310和控制器1330a的操作相关联的各种状态,包括错误或异常。数据域管理器电路1337可基于获得的信息管理触发处理器1339的干预的干预条件。
当关于第一类型的工作发生错误或异常时,可在控制器1330a或存储装置1300a的操作中发生故障。然而,第一类型的工作可包括简单的工作,并且可能不适于解决错误或异常。可需要第二类型的工作来解决错误或异常,并且处理器1339可干预以处理第二类型的工作(也可描述为第二类型的第三工作)。
例如,当关于第一类型的工作发生错误或异常时可满足干预条件。在实施例中,当关于将写数据沿着写路径转移至所述一个或多个存储器装置1310或者从所述一个或多个存储器装置1310将读数据沿着读路径输出至控制器1330a外部的步骤中发生错误或异常时,可满足干预条件。数据域管理器电路1337可向处理器1339提供通知,以通知处理器1339已满足干预条件。当未接收到通知时,处理器1339不干预管理第一类型的工作、产生和转移和数据包以及管理第一元数据。在这种情况下,处理器1339不干预写路径和读路径的一般操作。
另一方面,当接收到通知时,处理器1339可将管理命令提供至数据域管理器电路1337以处理第二类型的工作。管理命令可指导在写路径和/或读路径中的至少一个上执行的管理操作。通知和管理命令可被包括在数据包PCC的头部中。
处理器1339可与缓冲器存储器1350通信,以处理第二类型的工作。缓冲器存储器1350可存储第二元数据。当处理第二类型的工作时可产生或查阅第二元数据。也就是说,处理器1339可将第二元数据存储在缓冲器存储器1350中,或者可读取存储在缓冲器存储器1350中的第二元数据,以处理第二类型的工作。
数据域管理器电路1337可响应于管理命令执行第二类型的工作。也就是说,当发生错误或异常时,处理器1339可干预,并且可在处理器1339的控制下执行第二类型的工作。当第二类型的工作伴随有写操作和/或读操作时,数据域管理器电路1337可将合适的命令提供至写管理器电路1333和/或读管理器电路1335。将参照图14和图15进一步描述示例管理操作。
根据本公开的示例实施例,控制器1330a可包括与第一类型的工作相关联的数据域(由图5中的虚线指示)。另外,控制器1330a可包括与第二类型的工作相关联的控制域(由图5中的分开的虚线指示)。写管理器电路1333和读管理器电路1335可管理数据域中的第一类型的工作,并且处理器1339可处理控制域中的第二类型的工作。数据域管理器电路1337可管理数据域中的第一类型的工作,并且可触发控制域中的处理器1339的干预。因此,在图5中将数据域管理器电路1337示出为控制域和数据域二者的部分。
在具有集中式架构的存储装置中,包括写数据和读数据的所有数据的流集中至(例如,路由至)诸如图5所示的缓冲器存储器1350的缓冲器存储器,并且诸如图5所示的处理器1339的处理器干预第一类型的工作和第二类型的工作二者。在这种集中式架构的情况下,存储装置的性能受限于处理器的性能和缓冲器存储器的吞吐量。通过处理器处理简单工作增加了处理器的负担,并且过多地占用了缓冲器存储器的带宽。
另一方面,在诸如参照图5描述的根据本发明构思的示例实施例的硬件自动架构中,例如,通过分离的硬件电路管理简单工作而无需处理器1339干预可提高存储装置1300a的性能和效率。另外,处理器1339和缓冲器存储器1350的功耗和发热可减小,这可有利于存储装置1300a寿命和可靠性。
如图5所示,写路径可在物理上与读路径分离。因此,写操作和读操作可并列或并行或同时执行。这可进一步提高用于处理简单工作的性能。
如上所述,缓冲器存储器1350可存储第一元数据和第二元数据。在一些示例实施例中,第一元数据可与第二元数据分开存储(例如,用于存储第一元数据的存储区域可与用于存储第二元数据的存储区域不同)。在一些示例实施例中,仅数据域管理器电路1337可访问第一元数据和第二元数据二者,并且处理器1339可通过数据域管理器电路1337读取第二元数据。根据该示例实施例,即使第一元数据和第二元数据由数据域管理器电路1337和处理器1339分别和独立地管理,也可确保第一元数据和第二元数据的一致性和完整性。
图6示出根据本发明构思的示例实施例的图5的数据包的示例构造的概念图。
参照图5的描述,一个数据包可包括头部、数据部和尾部。数据部可包括写数据或读数据。
例如,头部可包括路由信息、逻辑地址LPN的信息、物理地址PPN的信息、命令CMD的信息、状态信息等。路由信息可指示数据包的目的地,例如可包括组件标识符或标记符。
逻辑地址LPN可包括从主机1100a接收到的地址,并且物理地址PPN可包括映射至逻辑地址LPN的物理地址。命令CMD可指示数据包请求的操作的类型。状态信息可指示与所述一个或多个存储器装置1310和控制器1330a的操作相关联的状态(例如,与错误或异常相关联的状态)。
然而,一个数据包的头部中可不包括图6所示的信息中的至少一条。例如,物理地址PPN的信息可不被包括在从主机接口层1331a提供至写管理器电路1333的数据包(例如,PCW1)中。例如,状态信息可不被包括在为了将写数据从主机1100a转移至所述一个或多个存储器装置1310而产生的数据包中或者不被包括在为了将读数据从所述一个或多个存储器装置1310转移至主机1100a而产生的数据包中。头部的构造可根据数据包的目的不同地改变或修改。
尾部可包括适于指示数据部的完成的信息。例如,尾部可包括诸如数据完整性特征(DIF)、数据完整性扩展(DIX)和循环冗余校验(CRC)的完整性/错误检查信息。然而,本发明构思的尾部不限于上述信息,并且在其它实施例中,尾部可被构造为包括其它信息。
在实施例中,一个数据包可包括头部、数据部和尾部全部。可替换地,在其它实施例中,一个数据包可不包括头部、数据部和/或尾部中的至少一个。
例如,为了将写数据从主机1100a转移至所述一个或多个存储器装置1310而产生的数据包或者为了将读数据从所述一个或多个存储器装置1310转移至主机1100a而产生的数据包可包括头部、数据部和尾部全部。例如,为了将读命令从主机1100a转移至所述一个或多个存储器装置1310而产生的数据包、从数据域管理器电路1337提供至处理器1339的通知数据包以及从处理器1339提供至数据域管理器电路1337的管理命令数据包可仅包括头部。
然而,提供以上示例以有利于更好地理解,并且不旨在限制本发明构思。数据包的构造可不同地改变或修改以通过分离的硬件电路自动地管理第一类型的工作,而无需处理器1339干预。
图7和图8示出根据本发明构思的示例实施例的描述在图2的存储装置1300a中执行的示例写操作的框图。图9示出根据本发明构思的示例实施例的描述在图2的存储装置1300a中执行的示例写操作的流程图。为了有利于更好地理解,将一起参照图7至图9。具体地,图7示出参照图5示出和描述的存储装置1300a的组件,因此为了简单示出起见,图7中不包括图5中的一些组件和细节。
参照图7,主机接口层1331a可从主机1100a接收写命令和写数据(图9的操作S110)。打包器PCZ可将写命令和写数据数据包化(图9的操作S120)。例如,打包器PCZ可将写命令和写数据与额外信息组合以产生数据包PCW1。例如,数据包PCW1的头部可包括写命令和逻辑地址的信息,并且数据包PCW1的数据部可包括写数据。可将数据包PCW1提供至写管理器电路1333。
在一些情况下,数据包PCW1的头部可包括诸如数据的类型、数据的配置、异常等的信息。写管理器电路1333可基于包括在数据包PCW1中的信息确定是否管理对应的信息以及如何管理对应的信息。
参照图8,例如,缓冲器管理器1333b可管理缓冲器索引和逻辑地址。缓冲器索引可指示第一内部缓冲器1333a的各个缓冲区的位置。例如,当与逻辑地址“0xA8”相关联的写数据D1在缓冲器索引“1”的缓冲区中被缓冲时,缓冲器管理器1333b可管理缓冲器索引和逻辑地址,以使得缓冲器索引“1”对应于逻辑地址“0xA8”。
例如,缓冲器管理器1333b可包括用于存储缓冲器索引和逻辑地址的存储器装置。作为替代或除此之外,缓冲器管理器1333b可使用第一内部缓冲器1333a的部分存储区域来管理缓冲器索引和逻辑地址。
第一内部缓冲器1333a可在各个缓冲器索引的缓冲区中缓冲写数据。图8示出在各个缓冲器索引的缓冲区中仅管理写数据。然而,在一些示例实施例中,第一内部缓冲器1333a可进一步管理与对应的写数据相关联的其它信息(例如,逻辑地址、命令等)。
当写管理器电路1333接收数据包PCW1时,缓冲器管理器1333b可响应于数据包PCW1检查第一内部缓冲器1333a的状态。例如,缓冲器管理器1333b可检查包括在接收到的数据包PCW1中的逻辑地址是否已经被管理。因此,缓冲器管理器1333b可管理故障或冲突(图9的操作S130)。
例如,在一些情况下,包括在数据包PCW1中的写数据可具有与已在第一内部缓冲器1333a中缓冲的先前写数据所关联的逻辑地址相同的逻辑地址。这可意味着主机1100a意图关于相同逻辑地址将先前写数据改变为新的写数据。因此,响应于缓冲器管理器1333b的确定,第一内部缓冲器1333a可使先前写数据无效并且可关于相同逻辑地址缓冲新的写数据。这样可防止关于相同逻辑地址的数据冲突。
另一方面,在一些情况下,数据包PCW1可包括新接收到的逻辑地址。在这种情况下,缓冲器管理器1333b可针对包括在数据包PCW1中的新的写数据分配新的缓冲器索引的缓冲区。缓冲器管理器1333b可管理新的缓冲器索引和新接收的逻辑地址,并且第一内部缓冲器1333a可在分配的缓冲区中缓冲新的写数据。
同时,在一些情况下,从主机1100a接收到的写数据的大小可与通过一次写操作存储的编程单元数据的编程单元大小不同。例如,主机1100a可将4千字节(KB)的写数据提供至存储装置1300a,但是可执行一次写操作以将32KB的编程单元数据存储在所述一个或多个存储器装置1310中。也就是说,通过一次写操作存储的编程单元数据的编程单元大小可为32KB。在这种情况下,第一内部缓冲器1333a可在累积编程单元数据之前缓冲多条写数据(图9的操作S140)。相反,当写数据的大小大于编程单元大小时,写管理器电路1333可将写数据划分为多条编程单元数据。
当累积编程单元数据时,写管理器电路1333可将可用的物理地址分配至编程单元数据(图9的操作S150)。因此,可将与编程单元数据的每条写数据相关联的逻辑地址映射至物理地址。将被分配的物理地址可从由写管理器电路1333、数据域管理器电路1337和/或处理器1339管理的可用物理地址列表中选择。
返回图7,写管理器电路1333可将数据包PCW3提供至数据域管理器电路1337。数据包PCW3的头部可包括与写地址相关联的逻辑地址和分配的物理地址的信息。因此,数据域管理器电路1337可基于接收到的数据包PCW3管理逻辑地址与物理地址之间的对应关系。数据域管理器电路1337可管理第一元数据MD1中的对应关系(图9的操作S160)。缓冲器存储器1350可存储第一元数据MD1。
写管理器电路1333可针对编程单元数据准备数据包PCW2(图9的操作S160)。数据包PCW2可包括编程单元数据以及指示分配的物理地址的额外信息。写管理器电路1333可将数据包PCW2转移至存储器接口层1332。因此,可通过写管理器电路1333沿着写路径在流的数据包单元中转移写数据和写命令。
编程单元数据和分配的物理地址可通过存储器接口层1332转移至所述一个或多个存储器装置1310(图9的操作S 170)。因此,编程单元数据可存储在由分配的物理地址指示的存储区域中。
图10至图12示出根据本发明构思的示例实施例的描述在图2的存储装置1300a中执行的示例读操作的框图。图13示出根据本发明构思的示例实施例的描述在图2的存储装置1300a中执行的示例读操作的流程图。为了有利于更好地理解,将一起参照图10至图13。具体地,图10示出参照图5示出和描述的存储装置1300a的组件,因此为了简明示出起见,图10中不包括图5中的一些组件和细节。
参照图10,主机接口层1331a可从主机1100a接收读命令(图13的操作S210)。打包器PCZ可对读命令进行打包(图13的操作S220)。例如,打包器PCZ可将读命令与额外信息组合,以产生数据包PCR1。例如,数据包PCR1的头部可包括与读数据相关联的读命令和逻辑地址的信息。可将数据包PCR1提供至写管理器电路1333。
参照图11,当写管理器电路1333接收数据包PCR1时,缓冲器管理器1333b可响应于数据包PCR1检查第一内部缓冲器1333a的状态(图13的操作S230)。例如,缓冲器管理器1333b可检查包括在接收到的数据包PCR1中的逻辑地址是否已被管理(即,数据包PCR1请求的读数据是否在第一内部缓冲器1333a中被缓冲)。
在一些情况下,数据包PCR1请求的读数据可被存储在所述一个或多个存储器装置1310中,并且在第一内部缓冲器1333a中可不被缓冲(即,缓冲器未命中,对应于图13的操作S240的“否”)。在这种情况下,写管理器电路1333可为数据域管理器电路1337提供包括读命令和逻辑地址的数据包PCR1。
数据域管理器电路1337可响应于数据包PCR1和读命令获得逻辑地址。数据域管理器电路1337可基于缓冲器存储器1350的第一元数据MD1获得对应于获得的逻辑地址的物理地址(图13的操作S250)。数据域管理器电路1337可产生数据包PCR2。数据包PCR2的头部可包括读命令和获得的物理地址的信息。
可将数据包PCR2提供至存储器接口层1332。因此,可将读命令和物理地址通过存储器接口层1332提供至所述一个或多个存储器装置1310(见图2)。可响应于读命令从由物理地址指示的所述一个或多个存储器装置1310的存储区域中输出读数据。
存储器接口层1332可基于输出的读数据将数据包PCR3提供至读管理器电路1335。数据包PCR3的数据部可包括来自所述一个或多个存储器装置1310的输出读数据,因此读管理器电路1335可接收读数据(图13的操作S255)。第二内部缓冲器1335a可缓冲读数据。例如,读管理器电路1335可在第二内部缓冲器1335a中管理与对应的读数据相关联的读数据和逻辑地址。
另一方面,在一些情况下,数据包PCR1请求的读数据可不存储在所述一个或多个存储器装置1310中,而是可仍在第一内部缓冲器1333a中被缓冲(即,缓冲器命中,对应于图13的操作S240的“是”)。例如,参照图12,与逻辑地址“0x3F”相关联的读数据D3可在累积编程单元数据之前在第一内部缓冲器1333a中被缓冲。主机1100a可意图读取读数据D3。
缓冲器管理器1333b可基于数据包PCR1确定缓冲器命中。在这种情况下,写管理器电路1333可将数据包PCR5提供至读管理器电路1335。数据包PCR5的数据部可包括读数据D3。因此,读管理器电路1335可从在第一内部缓冲器1333a中缓冲的写数据中获得读数据D3(图13的操作S260)。第二内部缓冲器1335a可缓冲读数据。
返回图10,读管理器电路1335可缓冲数据包PCR3(例如,从所述一个或多个存储器装置1310输出的读数据)的数据部或者数据包PCR5(例如,在写管理器电路1333中缓冲的读数据)的数据部(图13的操作S270)。读管理器电路1335可针对读数据准备数据包PCR4(图13的操作S270)。数据包PCR4的头部可包括主机1100a请求的逻辑地址的信息,并且数据包PCR4的数据部可包括主机1100a请求的读数据。
读管理器电路1335可将数据包PCR4转移至主机接口层1331a。因此,可通过读管理器电路1335沿着读路径在流的数据包单元中转移读数据。读数据可通过主机接口层1331a被转移至控制器1330a之外(例如,至主机1100a)(图13的操作S280)。
在本发明构思的示例实施例中,存储器接口层1332可将与读操作的结果相关联的信息添加至数据包PCR3。例如,与读操作的结果相关联的信息可包括错误、异常等的信息。在一些情况下,与读操作的结果相关联的信息可与读数据一起被转移至主机1100a。
图14示出根据本发明构思的示例实施例的描述在图2的存储装置1300a中执行的示例管理操作的框图。图15示出根据本发明构思的示例实施例的描述在图2的存储装置1300a中执行的示例管理操作的流程图。为了有利于更好地理解,可一起参照图14和图15。具体地,图14示出参照图5示出和描述的存储装置1300a的组件,其中,为了简单示出起见,图14中可不包括图5中的一些组件和细节。
参照图14,数据域管理器电路1337可监视与所述一个或多个存储器装置1310和控制器1330a(图5所示)的操作相关联的状态/异常(图15的操作S310)。数据域管理器电路1337可基于监视到的状态来对触发处理器1339的干预的干预条件进行管理。在一些示例实施例中,数据域管理器电路1337可包括管理干预条件的硬件电路(例如,计数器电路、锁存电路等)。
例如,数据域管理器电路1337可从写管理器电路1333和读管理器电路1335获得多种信息。写管理器电路1333可将包括所述信息的数据包PCC1提供至数据域管理器电路1337。读管理器电路1335可将包括所述信息的数据包PCC2提供至数据域管理器电路1337。
例如,数据包PCC1的头部可包括将写数据存储在所述一个或多个存储器装置1310中时由写数据占据的存储区域的物理地址的信息。数据域管理器电路1337可基于数据包PCC1管理所述一个或多个存储器装置1310的空闲区和/或可用区的绝对/相对量。数据域管理器电路1337可基于数据包PCC1管理所述一个或多个存储器装置1310的各个存储区域的耗损级别。这样,例如,数据域管理器电路1337可利用计数器电路对所述量或级别计数。
例如,数据包PCC2的头部可包括在从所述一个或多个存储器装置1310输出读数据时访问的存储区域的物理地址的信息。例如,数据包PCC2的头部可包括读数据的错误(例如,奇偶不一致)、不可校正的错误校正码(ECC)错误、存储器故障等的信息。数据域管理器电路1337可基于数据包PCC2利用计数器电路对对特定存储区域的访问数量计数。数据域管理器电路1337可基于数据包PCC2确定读数据的错误。
除此之外,数据域管理器电路1337可通过利用传感器电路来监视供应至控制器1330a的电力状态是否不稳定,或者可感测硬件电路的温度。因此,数据域管理器电路1337可监视在存储装置1300a中执行的操作,并且可获得与存储装置1300a的操作状态相关联的各种信息。
数据域管理器电路1337可基于获得的信息确定是否满足用于触发处理器1339的干预的干预条件(图15的操作S320)。当在存储装置1300a的操作中发生错误或异常(即,异常状态)时,可满足干预条件。
例如,当计数器电路的计数值变得大于或小于参考值时(例如,当空闲区的量变得小于参考量时、当耗损级别变得高于参考级别时等),可满足干预条件。例如,当发生与第一类型的工作相关联的错误或异常时(例如,当在读数据中存在不可校正的ECC错误时),可满足干预条件。例如,当观察到反常状态时(例如,当电源不稳定时、当硬件电路的温度过高时等)(其可描述为异常(即,异常状态)),可满足干预条件。
当不满足干预条件时(图15的操作S320的“否”),数据域管理器电路1337可继续监视存储装置1300a的状态(图15的操作S310)。
另一方面,当满足干预条件时(图15的操作S320的“是”),数据域管理器电路1337可将数据包PCC3提供至处理器1339,以触发处理器1339的干预。可提供数据包PCC3,以向处理器1339通知数据域管理器电路1337监视到的状态的信息(例如,计数值、错误、异常、反常状态等)(图15的操作S330)。
当接收到数据包PCC3时,处理器1339可输出数据包PCC4,以处理第二类型的工作。例如,数据包PCC4的头部可包括指导管理操作的管理命令,所述管理操作将被执行以解决数据域管理器电路1337监视到的状态。数据域管理器电路1337可基于从处理器1339接收到的数据包PCC4接收管理命令(图15的操作S340)。
处理器1339可基于软件和/或固件的程序代码准备管理命令。处理器1339可将第二元数据MD2存储在缓冲器存储器1350中,或者可从缓冲器存储器1350读取第二元数据MD2,以处理第二类型的工作。例如,第二元数据MD2可包括所述一个或多个存储器装置1310的空闲区和/或可用区的信息、所述一个或多个存储器装置1310的存储区域的耗损级别的信息、在所述一个或多个存储器装置1310的存储区域中执行的读操作的数量的信息、在错误检测和校正中使用的ECC信息等中的至少一个。
数据域管理器电路1337可执行由管理命令指导的管理操作(图15的操作S350)。当管理操作伴随着写操作和/或读操作时,数据域管理器电路1337可将合适的命令提供至写管理器电路1333和/或读管理器电路1335。
例如,当空闲区的量变得小于参考量时,管理操作可包括用于确保空闲区的垃圾收集。数据域管理器电路1337可为存储器接口层1332提供包括无效的存储区域和牺牲的存储区域的信息的数据包PCC5,并且请求垃圾收集。因此,可伴随读操作和写操作,以确保空闲区。
在垃圾收集期间,从所述一个或多个存储器装置1310读取的数据可被包括在数据包PCR6中,并且随后可将其提供至读管理器电路1335。读管理器电路1335可将包括接收到的数据的数据包PCW4提供至写管理器电路1333。写管理器电路1333可为存储器接口层1332提供包括接收到的数据的数据包PCW5。数据可在新的存储区域中对齐,以确保空闲区。
例如,当在读数据中存在ECC错误时,管理操作可包括用于解决错误并恢复读数据的恢复操作。处理器1339可通过数据包PCC4为数据域管理器电路1337提供用于在恢复读数据时参考的元数据。数据域管理器电路1337可为存储器接口层1332提供包括接收到的元数据的数据包PCC5。因此,可将包括基于元数据被恢复的读数据的数据包PCR6提供至读管理器电路1335。
例如,当供应至控制器1330a的电力的状态不稳定时,管理操作可包括用于保存在写管理器电路1333中缓冲的数据的强行输出(flush)操作。数据域管理器电路1337可请求写管理器电路1333将在写管理器电路1333中缓冲的数据强行输出至所述一个或多个存储器装置1310。因此,即使中断电源,在写管理器电路1333中缓冲的数据也不会丢失。
另外,可根据与上述方式相似的方式执行诸如耗损均衡、读回收、读刷新、坏块管理等的各种管理操作。
应该理解,提供以上示例以有利于更好地理解,并且不旨在限制本发明构思。干预条件和管理操作可不同地改变或修改,以处理复杂操作,并且可在处理器1339的控制下合适地操作所述一个或多个存储器装置1310和控制器1330a。
图16示出根据本发明构思的示例实施例的描述图2的存储装置1300a的整体操作的流程图。
当未关于存储装置1300a请求工作时(操作S410的“否”),控制器1330a可等待。另一方面,当关于存储装置1300a请求特定工作时(操作S410的“是”),控制器1330a可执行管理或处理特定工作所需的操作。
在示例实施例中,请求的工作可为第一类型的工作和/或第二类型的工作之一(操作S420)。当请求的工作是第一类型的工作时,请求的工作可被硬件电路(例如,图3和图4的第一类型的工作管理器电路HW、以及图5和图17的写管理器电路1333、读管理器电路1335和数据域管理器电路1337)管理(操作S430)。处理器1339(例如,在处理器1339上执行的软件和/或固件的程序代码)不干预第一类型的工作。
当请求的工作是第二类型的工作时,硬件电路可触发处理器1339的干预(操作S440)。处理器1339可基于在处理器1339上执行的软件和/或固件的程序代码准备管理命令(操作S441)。硬件电路可响应于处理器1339的管理命令执行第二类型的工作(操作S442)。处理器1339仅干预第二类型的工作的处理。
同时,在一些情况下,在处理器1339处理第二类型的工作的同时,第一类型的工作可由专用硬件电路管理。也就是说,第一类型的工作可与处理第二类型的工作一起或同时被管理,而不由于第二类型的工作被中断。第一类型的工作可由专用硬件电路管理,而无需处理器1339干预,因此可与第二类型的工作并行地被处理。
图17示出与图1的存储装置1300相关联的示例构造的框图。图1的电子系统1000可实现为图17所示的电子系统1000b,因此图1的存储装置1300和主处理器1101在图17中分别实现为存储装置1300b和主机1100b。图17的电子系统1000b还包括图1的工作存储器1200、通信块1400、用户接口1500和总线1600,为了简单起见,图17省略这些特征。
图17所示的存储装置1300b包括缓冲器存储器1350、控制器1330b和包括存储器装置1311和1319的一个或多个存储器装置1310。控制器1330b包括主机接口层1331b、存储器接口层1332、写管理器电路1333、读管理器电路1335、数据域管理器电路1337和处理器1339。下面的描述将着重于图17中的电子系统1000b中的组件相对于参照例如图2和图5描述的组件之间的差异。为了简单起见,将省略对与图2和图5中的组件构造和功能相同的图17中的组件的描述。
将图2和图5与图17相比,在本发明构思的示例实施例中,打包器PCZ可被包括在主机1100b中,而不是在控制器1330b的主机接口层1331b中。打包器PCZ可基于在主机1100b中产生的命令CMD、数据DAT和地址ADDR产生数据包。因此,控制器1330b可与主机1100b交换数据包PCW或PCR,并且可基于数据包PCW或PCR管理第一类型的工作。
以上描述旨在提供用于实施本发明构思的示例构造和操作。除上述示例实施例之外,本发明构思的范围和精神可包括通过简单地改变或修改以上示例实施例获得的实施方式。另外,本发明构思的范围和精神包括通过之后容易地改变或修改上述示例实施例实现的实施方式。
Claims (25)
1.一种存储装置,包括:
非易失性存储器;以及
控制器,其包括:
工作管理器电路,其被构造为管理与所述非易失性存储器相关联的第一类型的工作,以及
处理器,其被构造为处理与所述非易失性存储器相关联的第二类型的工作,
其中,所述工作管理器电路还被构造为管理所述第一类型的工作,而无需处理器的干预,并且
其中,所述处理器还被构造为响应于从所述工作管理器电路接收到的通知将管理命令提供至所述工作管理器电路,所述管理命令指示对所述第二类型的工作的处理。
2.根据权利要求1所述的存储装置,其中,
根据包括在所述工作管理器电路中的硬件电路的操作来管理所述第一类型的工作,并且
基于在所述处理器上执行的软件或固件的程序代码来处理所述第二类型的工作。
3.根据权利要求1所述的存储装置,其中,
所述第一类型的工作包括在所述非易失性存储器的具有第一单元大小的存储区域上执行的操作,
所述第二类型的工作包括在所述非易失性存储器的具有第二单元大小的存储区域上执行的操作,并且
所述第一单元大小与所述第二单元大小不同。
4.根据权利要求1所述的存储装置,其中,所述第一类型的工作比所述第二类型的工作执行得更频繁。
5.根据权利要求1所述的存储装置,其中,
所述第一类型的工作包括用于将写数据存储在所述非易失性存储器中的写操作和用于从所述非易失性存储器输出读数据的读操作,并且
所述第二类型的工作包括垃圾收集、耗损均衡、读刷新、错误检测和校正以及断电保护中的至少一个。
6.根据权利要求1所述的存储装置,其中,所述工作管理器电路还被构造为:
监视与所述非易失性存储器和所述控制器的操作相关联的状态;以及
向所述处理器提供包括监视到的状态的信息的所述通知。
7.根据权利要求6所述的存储装置,其中,
所述第二类型的工作包括用于解决所述监视到的状态的管理操作,并且
所述工作管理器电路还被构造为执行由所述管理命令指导的所述管理操作。
8.一种存储装置,包括:
非易失性存储器;以及
控制器,其包括:
工作管理器电路,其被构造为管理与所述非易失性存储器相关联的第一类型的工作,以及
处理器,其被构造为处理与所述非易失性存储器相关联的第二类型的工作,
其中,所述处理器被构造为在所述工作管理器电路正常管理所述第一类型的工作的同时不干预所述第一类型的工作,并且
其中,所述处理器还被构造为,当在所述处理器不干预所述第一类型的工作的同时满足干预条件时,输出指示对所述第二类型的工作进行处理的管理命令。
9.根据权利要求8所述的存储装置,其中,当发生与所述第一类型的工作相关联的错误或异常时,满足所述干预条件。
10.根据权利要求8所述的存储装置,其中,所述工作管理器电路还被构造为:
监视与所述非易失性存储器和所述控制器的操作相关联的状态;以及
基于监视到的状态向所述处理器通知满足所述干预条件。
11.根据权利要求8所述的存储装置,其中,所述工作管理器电路还被构造为响应于所述管理命令来执行所述第二类型的工作,从而解决与满足的干预条件相关联的状态。
12.一种存储装置,包括:
非易失性存储器;以及
控制器,其被构造为控制所述非易失性存储器的操作,
其中,所述控制器包括:
写管理器电路,其被构造为管理第一类型的第一工作,所述第一工作包括将写数据存储在所述非易失性存储器中,
读管理器电路,其被构造为管理所述第一类型的第二工作,所述第二工作包括将读数据输出至所述控制器之外,
数据域管理器电路,其被构造为关于所述第一工作和所述第二工作的性能获得所述非易失性存储器、所述写数据和所述读数据中的至少一个的状态的信息,以及
处理器,其被构造为处理与所述非易失性存储器相关联的第二类型的第三工作,
其中,所述数据域管理器电路还被构造为基于获得的信息将通知提供至所述处理器,并且
其中,当未从所述数据域管理器电路接收到所述通知时,所述处理器被构造为不干预所述第一工作和所述第二工作。
13.根据权利要求12所述的存储装置,其中,所述写管理器电路还被构造为:
缓冲所述写数据,其中多条写数据缓冲直到所述写数据的编程单元数据累积;
针对所述编程单元数据分配可用的物理地址;以及
将所述编程单元数据以及指示分配的物理地址的额外信息转移至所述非易失性存储器。
14.根据权利要求13所述的存储装置,其中,所述数据域管理器电路还被构造为:
从所述写管理器电路接收所述分配的物理地址的信息;以及
管理与所述写数据相关联的逻辑地址与所述分配的物理地址之间的对应关系。
15.根据权利要求13所述的存储装置,其中,当伴随着与所述缓冲的写数据所关联的逻辑地址一致的逻辑地址接收到新的写数据时,所述写管理器电路还被构造为使所述缓冲的写数据无效并缓冲所述新的写数据。
16.根据权利要求12所述的存储装置,其中,当在所述写管理器电路中未缓冲所述读数据时,所述写管理器电路还被构造为向所述数据域管理器电路提供对应于所述读数据的读命令。
17.根据权利要求16所述的存储装置,其中,所述数据域管理器电路还被构造为:
响应于从所述写管理器电路接收到的读命令获得与所述读数据相关联的逻辑地址;
基于元数据获得与获得的逻辑地址相对应的物理地址;以及
将所述读命令以及所获得的物理地址一起转移至所述非易失性存储器。
18.根据权利要求17所述的存储装置,其中,所述读管理器电路还被构造为缓冲从所述非易失性存储器的所述获得的物理地址的存储区域输出的读数据。
19.根据权利要求12所述的存储装置,其中,当在所述写管理器电路中缓冲所述读数据时,所述写管理器电路还被构造为将在所述写数据管理器中缓冲的所述读数据提供至所述读管理器电路。
20.根据权利要求12所述的存储装置,其中,所述处理器还被构造为响应于从所述数据域管理器电路接收到的通知来处理所述第三工作。
21.一种存储装置,包括:
非易失性存储器,其被构造为存储写数据和输出读数据;以及
控制器,其包括:
第一路径,其用于将所述写数据转移至所述非易失性存储器,
第二路径,其用于将输出的读数据转移至所述控制器之外,以及
处理器,
其中,当关于沿着所述第一路径将所述写数据转移至所述非易失性存储器或者沿着所述第二路径将所述输出的读数据输出至外部发生错误或异常时,所述处理器被构造为输出管理命令,所述管理命令指导在所述第一路径和所述第二路径中的至少一个上执行的管理操作,并且
其中,当未发生错误或异常时,所述处理器被构造为不干预在所述第一路径和所述第二路径上执行的正常操作。
22.根据权利要求21所述的存储装置,其中,所述第一路径在物理上与所述第二路径分离。
23.根据权利要求21所述的存储装置,其中,
所述控制器还包括打包器,其被构造为将从主机接收到的数据和命令与额外信息组合以产生数据包,
所述写数据沿着所述第一路径通过数据包单元在第一流中被转移,并且
所述输出的读数据沿着所述第二路径通过所述数据包单元在第二流中被转移。
24.根据权利要求23所述的存储装置,其中,所述控制器还包括写管理器电路,其被构造为基于所述额外信息对所述第一流进行路由。
25.一种存储装置,包括:
非易失性存储器;
控制器,其包括:
工作管理器电路,其被构造为管理与所述非易失性存储器相关联的第一类型的工作,以及
处理器,其被构造为处理与所述非易失性存储器相关联的第二类型的工作;以及
缓冲器存储器,其被构造为,
存储在通过所述工作管理器电路管理所述第一类型的工作时产生或参照的第一元数据,以及
存储在通过所述处理器处理所述第二类型的工作时产生或参照的第二元数据,
其中,所述处理器被构造为在通过所述工作管理器电路正常管理所述第一类型的工作的同时不干预所述第一类型的工作,并且不干预以下操作:通过工作管理器电路将所述第一元数据存储在所述缓冲器存储器中以及通过所述工作管理器电路从所述缓冲器存储器读取所述第一元数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2017-0083817 | 2017-06-30 | ||
KR1020170083817A KR102398201B1 (ko) | 2017-06-30 | 2017-06-30 | 프로세서의 개입 없이 단순 작업을 관리하는 스토리지 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109213441A true CN109213441A (zh) | 2019-01-15 |
CN109213441B CN109213441B (zh) | 2024-01-23 |
Family
ID=64661880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810722287.7A Active CN109213441B (zh) | 2017-06-30 | 2018-06-29 | 能够管理工作而无需处理器干预的存储装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10789019B2 (zh) |
KR (1) | KR102398201B1 (zh) |
CN (1) | CN109213441B (zh) |
DE (1) | DE102018110012A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110554298A (zh) * | 2019-08-27 | 2019-12-10 | 江苏芯盛智能科技有限公司 | 芯片和芯片测试方法 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6757708B2 (ja) * | 2017-10-31 | 2020-09-23 | 株式会社日立製作所 | 情報処理装置及び構成要素の管理方法 |
WO2021111639A1 (ja) * | 2019-12-06 | 2021-06-10 | 三菱電機株式会社 | コントローラ |
KR20210081088A (ko) * | 2019-12-23 | 2021-07-01 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러를 포함하는 스토리지 장치 |
KR20210103228A (ko) * | 2020-02-13 | 2021-08-23 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
US11500581B2 (en) | 2020-09-25 | 2022-11-15 | Western Digital Technologies, Inc. | Efficient TLP fragmentations in extended LBA environment |
KR20220067797A (ko) | 2020-11-18 | 2022-05-25 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 |
US11853218B2 (en) | 2020-11-20 | 2023-12-26 | Western Digital Technologies, Inc. | Semi and cached TLP coalescing |
US11537524B2 (en) | 2020-11-20 | 2022-12-27 | Western Digital Technologies, Inc. | Effective PCIe utilization by PCIe TLP coalescing |
EP4273706A1 (en) * | 2022-05-02 | 2023-11-08 | Samsung Electronics Co., Ltd. | Storage device, memory device, and system including storage device and memory device |
US20240069771A1 (en) * | 2022-08-29 | 2024-02-29 | Micron Technology, Inc. | Read operations for mixed data |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0798941A (ja) * | 1993-09-28 | 1995-04-11 | Hitachi Ltd | ディスク型記録媒体を用いた記録再生装置 |
US5768617A (en) * | 1991-08-07 | 1998-06-16 | Adaptec, Inc. | Intelligent hardware for automatically reading and writing multiple sectors of data between a computer bus and a disk drive |
US5778422A (en) * | 1996-04-04 | 1998-07-07 | International Business Machines Corporation | Data processing system memory controller that selectively caches data associated with write requests |
US6823472B1 (en) * | 2000-05-11 | 2004-11-23 | Lsi Logic Corporation | Shared resource manager for multiprocessor computer system |
CN1828758A (zh) * | 2005-03-04 | 2006-09-06 | 松下电器产业株式会社 | 流数据记录器 |
US20090070654A1 (en) * | 2006-02-09 | 2009-03-12 | International Business Machines Corporation | Design Structure For A Processor System With Background Error Handling Feature |
CN101802798A (zh) * | 2007-06-22 | 2010-08-11 | 密普斯技术股份有限公司 | 在多核处理器中使用干预消息来避免活锁 |
US20110185259A1 (en) * | 2010-01-25 | 2011-07-28 | Samsung Electronics Co., Ltd. | Overwritable nonvolatile memory device and related data write method |
CN102436419A (zh) * | 2010-09-29 | 2012-05-02 | 三星电子株式会社 | 非易失性存储器系统及管理其电源的方法 |
CN104937577A (zh) * | 2013-03-15 | 2015-09-23 | 惠普发展公司,有限责任合伙企业 | 支持扩展写入的存储器模块控制器 |
US20170046261A1 (en) * | 2015-08-14 | 2017-02-16 | Kabushiki Kaisha Toshiba | Storage device and method for saving write cache data |
CN106569727A (zh) * | 2015-10-08 | 2017-04-19 | 福州瑞芯微电子股份有限公司 | 一种多控制器间多存储器共享并行数据读写装置及其写入、读取方法 |
US20170123722A1 (en) * | 2015-10-28 | 2017-05-04 | Sandisk Technologies Inc. | System and method for utilization of a data buffer |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7457897B1 (en) | 2004-03-17 | 2008-11-25 | Suoer Talent Electronics, Inc. | PCI express-compatible controller and interface for flash memory |
US8031623B2 (en) * | 2004-10-25 | 2011-10-04 | Ineoquest Technologies, Inc. | System and method for creating multiple transportation streams of streaming media network test traffic in packet-based networks |
JP4470455B2 (ja) | 2003-11-05 | 2010-06-02 | Tdk株式会社 | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 |
KR100801884B1 (ko) | 2006-04-25 | 2008-02-12 | (재)대구경북과학기술연구원 | 플래시 메모리, 플래시 메모리의 제어 방법 및 직렬인터페이스 장치 |
KR100869675B1 (ko) | 2007-02-05 | 2008-11-21 | 지인정보기술 주식회사 | 디스크립터 배열을 이용한 플래시 메모리 제어 시스템 및방법 |
US7688652B2 (en) | 2007-07-18 | 2010-03-30 | Mosaid Technologies Incorporated | Storage of data in memory via packet strobing |
KR20110019491A (ko) | 2009-08-20 | 2011-02-28 | 삼성전자주식회사 | 데이터 처리 방법 및 데이터 처리 시스템 |
US8588228B1 (en) | 2010-08-16 | 2013-11-19 | Pmc-Sierra Us, Inc. | Nonvolatile memory controller with host controller interface for retrieving and dispatching nonvolatile memory commands in a distributed manner |
US9606863B2 (en) | 2010-10-25 | 2017-03-28 | SMART High Reliability Solutions, LLC | Fabric-based solid state drive architecture |
US9009391B2 (en) | 2010-10-25 | 2015-04-14 | Fastor Systems, Inc. | Solid state drive architecture |
US20160321010A1 (en) * | 2015-04-28 | 2016-11-03 | Kabushiki Kaisha Toshiba | Storage system having a host directly manage physical data locations of storage device |
KR20170083817A (ko) | 2016-01-11 | 2017-07-19 | 부산대학교 산학협력단 | 복수의 gps를 이용한 이동 로봇의 위치 추정 방법 |
US10339044B2 (en) * | 2016-03-30 | 2019-07-02 | Sandisk Technologies Llc | Method and system for blending data reclamation and data integrity garbage collection |
US20170337103A1 (en) * | 2016-05-19 | 2017-11-23 | Intel Corporation | Method and apparatus to provide data redundancy in a solid-state drive |
US10684948B2 (en) * | 2016-11-21 | 2020-06-16 | Sanmina Corporation | Dual inline memory module |
US10296224B2 (en) * | 2016-12-21 | 2019-05-21 | Intel Corporation | Apparatus, system and method for increasing the capacity of a storage device available to store user data |
US10732893B2 (en) * | 2017-05-25 | 2020-08-04 | Western Digital Technologies, Inc. | Non-volatile memory over fabric controller with memory bypass |
-
2017
- 2017-06-30 KR KR1020170083817A patent/KR102398201B1/ko active IP Right Grant
- 2017-12-27 US US15/855,840 patent/US10789019B2/en active Active
-
2018
- 2018-04-26 DE DE102018110012.4A patent/DE102018110012A1/de active Pending
- 2018-06-29 CN CN201810722287.7A patent/CN109213441B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5768617A (en) * | 1991-08-07 | 1998-06-16 | Adaptec, Inc. | Intelligent hardware for automatically reading and writing multiple sectors of data between a computer bus and a disk drive |
JPH0798941A (ja) * | 1993-09-28 | 1995-04-11 | Hitachi Ltd | ディスク型記録媒体を用いた記録再生装置 |
US5778422A (en) * | 1996-04-04 | 1998-07-07 | International Business Machines Corporation | Data processing system memory controller that selectively caches data associated with write requests |
US6823472B1 (en) * | 2000-05-11 | 2004-11-23 | Lsi Logic Corporation | Shared resource manager for multiprocessor computer system |
CN1828758A (zh) * | 2005-03-04 | 2006-09-06 | 松下电器产业株式会社 | 流数据记录器 |
US20090070654A1 (en) * | 2006-02-09 | 2009-03-12 | International Business Machines Corporation | Design Structure For A Processor System With Background Error Handling Feature |
CN101802798A (zh) * | 2007-06-22 | 2010-08-11 | 密普斯技术股份有限公司 | 在多核处理器中使用干预消息来避免活锁 |
US20110185259A1 (en) * | 2010-01-25 | 2011-07-28 | Samsung Electronics Co., Ltd. | Overwritable nonvolatile memory device and related data write method |
CN102436419A (zh) * | 2010-09-29 | 2012-05-02 | 三星电子株式会社 | 非易失性存储器系统及管理其电源的方法 |
CN104937577A (zh) * | 2013-03-15 | 2015-09-23 | 惠普发展公司,有限责任合伙企业 | 支持扩展写入的存储器模块控制器 |
US20170046261A1 (en) * | 2015-08-14 | 2017-02-16 | Kabushiki Kaisha Toshiba | Storage device and method for saving write cache data |
CN106569727A (zh) * | 2015-10-08 | 2017-04-19 | 福州瑞芯微电子股份有限公司 | 一种多控制器间多存储器共享并行数据读写装置及其写入、读取方法 |
US20170123722A1 (en) * | 2015-10-28 | 2017-05-04 | Sandisk Technologies Inc. | System and method for utilization of a data buffer |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110554298A (zh) * | 2019-08-27 | 2019-12-10 | 江苏芯盛智能科技有限公司 | 芯片和芯片测试方法 |
CN110554298B (zh) * | 2019-08-27 | 2022-03-22 | 江苏芯盛智能科技有限公司 | 芯片和芯片测试方法 |
Also Published As
Publication number | Publication date |
---|---|
DE102018110012A1 (de) | 2019-01-03 |
US20190004869A1 (en) | 2019-01-03 |
CN109213441B (zh) | 2024-01-23 |
US10789019B2 (en) | 2020-09-29 |
KR102398201B1 (ko) | 2022-05-17 |
KR20190003911A (ko) | 2019-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109213441A (zh) | 能够管理工作而无需处理器干预的存储装置 | |
KR102533072B1 (ko) | 블록의 상태에 따라 사용 여부를 결정하는 메모리 시스템 및 메모리 시스템의 동작 방법 | |
TWI750243B (zh) | 非揮發性記憶體儲存裝置 | |
US9870157B2 (en) | Command balancing and interleaving for write and reads between front end and back end of solid state drive | |
CN109213438B (zh) | 预先管理待分配给写入数据的物理地址的存储装置 | |
US11645213B2 (en) | Data processing system allocating memory area in host as extension of memory and operating method thereof | |
CN103999060A (zh) | 固态存储管理 | |
CN113760185B (zh) | 内存块回收方法和装置 | |
TW201227741A (en) | Data storage device, user device and data write method | |
CN103946819A (zh) | 用于非易失性系统存储器的统计耗损均衡 | |
KR102107723B1 (ko) | 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법 | |
KR102686749B1 (ko) | 맵 스케줄링을 수행하기 위한 스토리지 장치 및 그것을 포함하는 전자 장치 | |
WO2015176664A1 (zh) | 一种数据操作的方法、设备和系统 | |
JP2018206378A (ja) | 書き換え可能なインプレースメモリを有するデータ記憶装置 | |
KR20230142795A (ko) | Zns 디바이스들에서의 상이한 기입 우선순위화 | |
KR20200132047A (ko) | 메모리 시스템에서 맵 데이터를 전송하는 방법 및 장치 | |
US10783033B2 (en) | Device and method for accessing in-band memory using data protection | |
KR101740679B1 (ko) | 양방향 통신 기법을 갖는 저장 장치 그리고 그것을 포함한 시스템 | |
JP5820078B2 (ja) | 記憶装置システム | |
JP2018206379A (ja) | 書き換え可能なインプレースメモリを有するデータ記憶装置 | |
US20210173795A1 (en) | Storage System and Method for Reducing Read-Retry Duration | |
JP2011070470A (ja) | 半導体記憶装置 | |
US10019162B2 (en) | Storage device managing nonvolatile memory differently depending on tendency of interruption of power supply | |
JP2018206377A (ja) | 書き換え可能なインプレースメモリを有するデータ記憶装置 |
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 |