CN110399321A - 存储系统及其操作方法 - Google Patents
存储系统及其操作方法 Download PDFInfo
- Publication number
- CN110399321A CN110399321A CN201811599633.3A CN201811599633A CN110399321A CN 110399321 A CN110399321 A CN 110399321A CN 201811599633 A CN201811599633 A CN 201811599633A CN 110399321 A CN110399321 A CN 110399321A
- Authority
- CN
- China
- Prior art keywords
- data
- storage
- subsets
- buffer
- host
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003860 storage Methods 0.000 title claims abstract description 228
- 238000011017 operating method Methods 0.000 title claims abstract description 8
- 238000013500 data storage Methods 0.000 claims abstract description 23
- 238000012546 transfer Methods 0.000 claims abstract description 18
- 230000015654 memory Effects 0.000 claims description 65
- 230000004044 response Effects 0.000 claims description 30
- 230000003139 buffering effect Effects 0.000 claims description 8
- 238000000034 method Methods 0.000 claims description 6
- 230000009471 action Effects 0.000 claims description 2
- 239000004065 semiconductor Substances 0.000 description 23
- 238000010586 diagram Methods 0.000 description 21
- 230000005540 biological transmission Effects 0.000 description 8
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 5
- 101000741396 Chlamydia muridarum (strain MoPn / Nigg) Probable oxidoreductase TC_0900 Proteins 0.000 description 5
- 101000741399 Chlamydia pneumoniae Probable oxidoreductase CPn_0761/CP_1111/CPj0761/CpB0789 Proteins 0.000 description 5
- 101000741400 Chlamydia trachomatis (strain D/UW-3/Cx) Probable oxidoreductase CT_610 Proteins 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000000712 assembly Effects 0.000 description 3
- 238000000429 assembly Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 229920003023 plastic Polymers 0.000 description 3
- 239000004033 plastic Substances 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 101000934888 Homo sapiens Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Proteins 0.000 description 1
- 102100025393 Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Human genes 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000000919 ceramic Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000003205 muscle Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 235000012773 waffles Nutrition 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0835—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
-
- 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
-
- 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
- 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/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- 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/0604—Improving or facilitating administration, e.g. storage 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/28—DMA
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System (AREA)
- Read Only Memory (AREA)
Abstract
提供了一种存储系统及其操作方法。该存储系统包括:存储器件,其用于在编程操作中储存数据,并且在读取操作中读取储存的数据并且暂时储存读取的数据;以及控制器,其用于将数据传输到存储器件,其中,控制器包括:快闪DMA,其用于在读取操作中读取并输出暂时储存在存储器件中的数据;缓冲存储器,其用于储存从快闪DMA输出的数据;以及主机DMA,其用于读取储存在缓冲存储器中的数据并且将读取的数据输出到主机,其中,将暂时储存在存储器件中的数据储存在缓冲存储器中的第一操作和将储存在缓冲存储器中的数据输出到主机的第二操作被并行执行。
Description
相关申请的交叉引用
本专利申请要求于2018年4月25日提交的申请号为10-2018-0047974的韩国专利申请的优先权,其全部内容通过引用合并于此。
技术领域
本公开总体而言涉及存储系统及其操作方法,更具体地涉及能够提高读取操作的速度的存储系统及该存储系统的操作方法。
背景技术
最近的计算环境范例已经转向无所不在的计算,其中计算系统可以被随时随地使用。这促进了增加诸如移动电话、数码相机、笔记本电脑等的便携式电子设备的使用。这种便携式电子设备通常包括使用存储器件(即,数据储存器件)的存储系统。数据储存器件用作便携式电子设备的主存储器件或辅助存储器件。
由于没有机械驱动部件,因此这种数据储存器件具有优异的稳定性与耐久性、高信息访问速度和低功耗。在具有这些优点的存储系统中,数据储存器件包括通用串行总线(USB)存储器件、具有各种接口的存储卡、固态驱动器(SSD)等。
发明内容
实施例提供存储系统以及该存储系统的操作方法,该存储系统能够提高将从存储器件读取的数据输出到主机的读取操作的操作速度。
根据本公开的一方面,提供了一种存储系统,该存储系统包括:存储器件,其被配置为在编程操作中储存数据,并且在读取操作中读取储存的数据并且暂时储存读取的数据;以及控制器,其被配置为将数据传输到所述存储器件,其中,所述控制器包括:快闪直接存储器访问(DMA),其被配置为在所述读取操作中读取并输出暂时储存在所述存储器件中的所述数据;缓冲存储器,其被配置为储存从所述快闪DMA输出的所述数据;以及主机DMA,其被配置为读取储存在所述缓冲存储器中的所述数据并且将读取的数据输出到主机,其中,将暂时储存在所述存储器件中的所述数据储存在所述缓冲存储器中的第一操作和将储存在所述缓冲存储器中的所述数据输出到所述主机的第二操作被并行执行,其中,在第一操作期间,当来自所述快闪DMA的所述数据的一部分被输出时,所述缓冲存储器确保用于储存从所述快闪DMA输出的所述数据的空间。
根据本公开的另一方面,提供了一种存储系统,该存储系统包括:存储器件,其被配置为储存数据;主机接口,其耦接到主机;缓冲存储器,其耦接在所述存储器件与所述主机接口之间;第一控制器,其被配置为读取储存在所述存储器件中的数据并且将读取的数据传输到所述缓冲存储器;以及第二控制器,其被配置为通过所述主机接口将储存在所述缓冲存储器中的数据输出到所述主机,其中,所述第一控制器将读取的数据传输到所述缓冲存储器的第一操作和所述第二控制器将储存在所述缓冲存储器中的所述数据输出到所述主机的第二操作被并行执行。
根据本公开的又一方面,一种存储系统的操作方法,所述方法包括:将从存储器件读取的数据划分成多个数据子组;执行将所述多个数据子组依次传输到缓冲存储器并且将所述多个数据子组储存在所述缓冲存储器中的第一操作;以及当所述多个数据子组之中的第一数据子组被完全储存在所述缓冲存储器中时,执行读取储存在所述缓冲存储器中的数据并将读取的数据输出到主机的第二操作,其中,所述第一操作和所述第二操作被并行执行。
附图说明
现在将参考附图来更全面地描述各种实施例,然而,可以与本文所公开的内容不同地来配置或者布置本发明的元件和特征。因此,本发明不限于本文中所阐述的实施例。相反,提供这些实施例是为了使本公开全面且完整,并且将实施例的范围充分地传达给本领域技术人员。此外,贯穿此说明书,提及“一个实施例”等不一定指仅一个实施例,且不同地提及任何这样的短语不一定指相同的实施例。
在附图中,为了使图示清楚,图的尺寸可能被夸大。应当理解的是,当一个元件被称为在两个元件“之间”时,其可以是这两个元件之间唯一的元件,或者也可以存在一个或更多个中间元件。相同的附图标记始终表示相同的元件。
图1是示出根据本公开的一个实施例的存储系统的框图。
图2是示出根据本公开的一个实施例的控制器的框图。
图3是示出根据本公开的一个实施例的半导体存储器的框图。
图4是示出根据本公开的一个实施例的存储单元阵列的框图。
图5是示出根据本公开的一个实施例的存储块的电路图。
图6是示出根据本公开的一个实施例的存储系统的操作的流程图。
图7是示出根据本公开的一个实施例的控制器的的数据传输的示图。
图8是示出根据本公开的一个实施例的控制器中的数据传输的示图。
图9是示出可以在其中实现本公开的多个方面的示例性存储系统的示图。
图10是示出可以在其中实现本公开的多个方面的存储系统的另一示例的示图。
图11是示出可以在其中实现本公开的多个方面的存储系统的另一示例的示图。
图12是示出可以在其中实现本公开的多个方面的存储系统的另一示例的示图。
具体实施方式
本文中的特定的结构性和功能性描述是为了描述本公开的实施例。本发明可以以各种不同的方式来实现,因此本发明不限于本文中所阐述的实施例。
可以对实施例进行各种修改,以提供不同的布置。虽然详细示出和描述了各种实施例,但是本发明不限于具体公开内容。相反,本发明包括落入本公开的精神和范围之内的所有改变、等同方案和替代方案。
虽然诸如“第一”和“第二”的术语可以用于识别各种组件,但这样的组件不被那些术语限制。相反,这些术语仅用于将一个组件与另一个组件区分开,否则它们会具有相同或相似的名称。例如,在不偏离本公开的权利范围的情况下,一个示例中的第一组件在另一示例中也能被称为第二组件,反之亦然。
要理解的是,当一个元件被称为“连接到”或者“耦接到”另一个元件时,其可以直接连接到或者耦接到该另一个元件,或者也可以存在一个或更多个中间元件。相反,当一个元件被称为“直接连接到”或者“直接耦接到”另一个元件时,不存在任何中间元件。类似地,两个元件之间的通信可以是直接的或间接的,以及是有线或无线中的任意一种情况,除非上下文另外指出。可以类似地理解描述组件之间的关系的其他表述,例如“在…之间”、“直接在…之间”或“与…相邻”和“直接与…相邻”。
本申请中使用的术语仅仅用于描述特定的实施例,不用来限制本公开。本公开中的单数形式意在包括复数形式,反之亦然,除非上下文另有明确说明。还要理解的是,诸如“包括”或“具有”等的术语旨在表明特征、数目、操作、动作、组件、部件或其组合的存在,但并非旨在排除可以存在或添加一个或更多个其他特征、数目、操作、动作、组件、部件或其组合的可能性。
只要没有被不同地定义,本文中使用的所有术语(包括技术术语或科学术语)具有本公开所属领域中的技术人员通常理解的含义。具有如词典中所解释的定义的术语应当以具有与相关技术的上下文一致的含义来被理解。只要在本申请中没有被明确地定义,术语就不应以理想化或过于形式化的方式来理解。
在描述实施例时,省略对本公开所属领域中公知并且与本公开不直接相关的技术的描述。这样做是为了避免不必要地模糊本公开。
为了使本领域技术人员能够容易地实施本发明,将参考附图来详细地描述本公开的各种实施例。
图1是示出根据本公开的一个实施例的存储系统1000的框图。
参考图1,存储系统1000包括存储器件1100和控制器1200。存储器件1100包括多个半导体存储器100。多个半导体存储器100可以被划分成多个组。
图1示出了多个组(例如,n个组)分别通过第一通道CH1至第n通道CHn来与控制器1200通信。稍后将参考图3来描述每个半导体存储器100。
特定组中的每个半导体存储器被配置为通过一个公共的通道来与控制器1200通信。控制器1200被配置为通过多个通道CH1至CHn来控制存储器件1100的多个半导体存储器100。
控制器1200耦接在主机1400与存储器件1100之间。控制器1200被配置为响应于从主机1400接收的命令而访问存储器件1100。例如,控制器1200被配置为响应于从主机1400接收的命令而控制存储器件1100的读取、编程、擦除和后台操作。控制器1200被配置为提供存储器件1100与主机1400之间的交互。控制器1200被配置为驱动用于控制存储器件1100的固件。
当从主机1400接收到读取命令时,控制器1200可以通过产生与读取命令相对应的内部命令并且将内部命令输出到存储器件1100来控制存储器件1100执行读取操作。另外,控制器1200可以将从存储器件1100读取的数据暂时储存在控制器1200的缓冲存储器(例如,图2的缓冲存储器1270)中,并且将储存在缓冲存储器中的数据输出到主机1400。将数据从存储器件1100传输到缓冲存储器的操作和将数据从缓冲存储器传输到主机1400的操作可以被并行执行。即,将数据从存储器件1100传输到缓冲存储器的操作和将数据从缓冲存储器传输到主机1400的操作可以彼此重叠一个时间段。
主机1400控制存储系统1000。主机1400包括便携式电子设备,例如计算机、PDA、PMP、MP3播放器、相机、便携式摄像机和移动电话。主机1400可以通过命令来请求存储系统1000的编程操作、读取操作或擦除操作。
控制器1200和存储器件1100可以被集成到一个半导体器件中。在一个示例性实施例中,控制器1200和存储器件1100可以被如此集成以构成存储卡,如个人计算机(PC)存储卡(例如,个人计算机存储卡国际协会(PCMCIA))、紧凑式闪存(CF)卡、智能媒体卡(例如,SM或SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC或MMCmicro)、安全数字(SD)卡(例如,SD、miniSD、microSD或SDHC)或通用快闪储存器(UFS)。
控制器1200和存储器件1100可以被集成到一个半导体器件中以构成一个半导体驱动器(固态驱动器(SSD))。半导体驱动器SSD包括被配置为将数据储存在半导体存储器中的储存器件。如果存储系统1000用作半导体驱动器SSD,则耦接到存储系统1000的主机1400的操作速度可以显著提高。
在另一示例中,存储系统1000可以被设置为诸如以下的电子设备的各种组件中的一种:计算机、超级移动个人计算机(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏控制台、导航系统、黑匣子、数码相机、三维电视、数字录音机、数字音频播放器、数字图像记录器、数字图像播放器、数字视频记录器、数字视频播放器、能够在无线环境中传输/接收信息的设备、构成家庭网络的各种电子设备中的一种、构成计算机网络的各种电子设备中的一种、构成远程信息处理网络的各种电子设备中的一种、RFID设备或者构成计算系统的各种组件中的一种。
在一个示例性实施例中,存储器件1100或存储系统1000可以以各种形式被封装。例如,存储器件1100或者存储系统可以以以下形式中的任意形式被封装:层叠封装(PoP)、球栅阵列(BGA)、芯片级封装(CSP)、塑料有引线芯片载体(PLCC)、塑料双列直插式封装(PDIP)、窝伏尔组件中裸片(Die in Waffle Pack)、晶片形式裸片(Die in Wafer Form)、板上芯片(COB)、陶瓷双列直插式封装(CERDIP)、塑料公制四方扁平封装(PMQFP)、薄型四方扁平封装(TQFP)、小外形集成电路(SOIC)、收缩型小外形封装(SSOP)、薄型小外形封装(TSOP)、薄型四方扁平封装(TQFP)、系统级封装(SIP)、多芯片封装(MCP)、晶片级制造封装(WFP)或晶片级处理层叠封装(WSP)。
图2是示出根据本公开的一个实施例的控制器(例如,图1的控制器1200)的框图。
参考图2,控制器1200可以包括主机控制电路1210、处理器1220、缓冲控制电路1230、快闪控制电路1240、主机接口1250、主机直接存储器访问(Direct Memory Access,DMA)1260、缓冲存储器1270、快闪DMA 1280、快闪接口1290以及总线1300。
总线1300可以被配置为提供控制器1200的组件之间的通道。
主机控制电路1210可以控制图1的主机1400与缓冲存储器1270之间的数据传输。在一个示例中,主机控制电路1210可以通过驱动主机DMA1260来控制将经由主机接口1250从主机1400接收的数据储存在缓冲存储器1270中的操作。在另一个示例中,主机控制电路1210可以通过驱动主机DMA1260来控制经由主机接口1250将储存在缓冲存储器1270中的数据输出到主机1400的操作。
处理器1220可以控制控制器1200的整体操作,并且执行逻辑运算。处理器1220可以通过主机接口1250来与图1的主机1400进行通信,并且通过快闪接口1290来与图1的存储器件进行通信。处理器1220可以通过缓冲控制电路1230来控制缓冲存储器1270。处理器1220可以通过将缓冲存储器1270用作工作存储器、高速缓存或缓冲存储器来控制存储系统1000的操作。另外,当从主机1400接收到命令时,处理器1220可以通过使命令排队来控制快闪控制电路1240。另外,处理器1220可以通过驱动被称作快闪转换层(FTL)的固件来将从主机1400接收的逻辑地址转换成表示存储器件100中的区域的物理地址,数据要被实际储存在该区域中。另外,处理器1220可以将建立逻辑地址与物理地址之间的映射关系的逻辑-物理地址映射表储存在缓冲存储器1270中。
在处理器1220的控制之下,缓冲控制电路1230可以控制缓冲存储器1270。关于读取操作,缓冲控制电路1230可以从快闪DMA1280接收表示读取流已经开始的信息。根据接收到的信息,缓冲控制电路1230可以在读取操作中控制缓冲存储器1270,以确保要从快闪DMA1280接收的数据的储存空间。在一个示例中,缓冲控制电路1230可以包括调度引擎(未示出)。调度引擎可以响应于表示读取流已经开始的信息(该信息从快闪DMA1280接收)而控制缓冲存储器1270,以确保用于要从快闪DMA1280接收的数据的储存空间。可以用Tomasulo算法或Scoreboard算法来实现调度引擎。在一个示例中,缓冲控制电路1230可以作为缓冲存储器1270的组件而被设置在缓冲存储器1270中。
快闪控制电路1240响应于由处理器1220排队的命令而产生并输出用于控制图1的存储器件1100的内部命令。在一个示例中,快闪控制电路1240响应于由处理器1220排队的读取命令而产生并输出用于控制存储器件1100的读取操作的内部命令。在读取操作中,快闪控制电路1240可以通过驱动快闪DMA 1280来控制将经由快闪接口1290从存储器件1100接收的数据储存在缓冲存储器1270中。在一个示例中,快闪控制电路1240响应于由处理器1220排队的编程命令而产生并输出用于控制存储器件1100的编程操作的内部命令。在编程操作中,快闪控制电路1240可以通过驱动快闪DMA 1280来控制经由快闪接口1290将储存在缓冲存储器1270中的数据传输到存储器件1100的操作。
主机接口1250被配置为在处理器1220的控制之下与图1的主机1400进行通信。主机接口1250可以被配置为使用诸如以下的各种通信协议中的至少一种来与主机1400进行通信:通用串行总线(USB)、串行AT附件(SATA)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、火线(Firewire)、外围组件互连(PCI)、PCI快速(PCIe)、非易失性存储器主机控制器接口规范(NVMe)、通用快闪储存器(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式多媒体卡(eMMC)、双列直插式存储模块(DIMM)、带寄存器的DIMM(RDIMM)和低负载DIMM(LRDIMM)。
在编程操作中,主机DMA 1260可以在主机控制电路1210的控制之下执行将经由主机接口1250从主机1400接收的数据储存在缓冲存储器1270中的操作。在读取操作中,主机DMA 1260可以在主机控制电路1210的控制之下执行经由主机接口1250将储存在缓冲存储器1270中的数据输出到主机1400的操作。在一个示例中,主机DMA 1260可以作为主机控制电路1210的组件而被设置在主机控制电路1210中。
缓冲存储器1270可以用作处理器1220的工作存储器、高速缓存或数据缓冲存储器。在读取操作中,缓冲存储器1270可以在缓冲控制电路1230的控制之下暂时储存从存储器件1100读取的数据,然后将该数据输出到主机1400。在编程操作中,缓冲存储器1270可以暂时储存从主机1400接收的数据,然后将该数据输出到存储器件1100。缓冲存储器1270可以包括静态随机存取存储器(RAM)(SRAM)或动态RAM(DRAM)。在本公开的实施例中,缓冲存储器1270被示出并被描述为包括在控制器1200中的组件。然而,缓冲存储器1270可以被配置为与控制器1200分开的组件。即,缓冲存储器1270可以被配置为在控制器1200的外部设置并与控制器1200通信的组件。
在编程操作中,快闪DMA 1280可以在快闪控制电路1240的控制之下执行经由快闪接口1290将储存在缓冲存储器1270中的数据输出到存储器件1100的操作。在读取操作中,快闪DMA 1280可以在快闪控制电路1240控制之下执行经由快闪接口1290读取暂时储存在存储器件1100中的数据并将读取的数据储存在缓冲存储器中的操作。在读取操作中,快闪DMA 1280可以从存储器件1100接收至少一个数据组(data group),将每个数据组划分成多个较小的数据子组(data sub-group)并且依次将数据子组传输到缓冲存储器1270,其中,所述至少一个数据组中的每个数据组构成读取传输单位(例如,4千字节(KB)),每个数据子组具有例如128字节(B)的数据尺寸(data size)单位。当数据子组被传输到缓冲存储器1270时,快闪DMA1280可以将表示读取流已经开始的信息输出到缓冲控制电路1230。在一个示例中,快闪DMA 1280可以被包括在快闪控制电路1240中作为快闪控制电路1240的组件。
快闪接口1290被配置为在处理器1220的控制之下与图1的存储器件1100进行通信。快闪接口1290可以经由通道来与存储器件1100传递内部命令、地址和数据。在一个示例中,快闪接口1290可以包括错误校正码(ECC)电路(未示出)。在编程操作中,ECC电路可以对经由快闪接口1290输出到图1的存储器件1100的数据执行ECC编码。经ECC编码的数据可以经由快闪接口1290被传送到存储器件1100。在读取操作中,ECC电路可以对经由快闪接口1290从存储器件1100接收的数据执行ECC解码。
图3是示出根据本公开的一个实施例的半导体存储器(例如,图1的半导体存储器100)的框图。
参考图3,半导体存储器100包括:存储单元阵列110,其包括多个存储块BLK1至BLKz;以及外围电路PERI,其被配置为执行被包括在多个存储块BLK1至BLKz的选中的页中的存储单元的编程操作、读取操作或擦除操作。外围电路PERI包括控制电路120、电压供应电路130、页缓冲器组140、列解码器150和输入/输出电路160。
存储单元阵列110包括多个存储块BLK1至BLKz。存储块BLK1至BLKz中的每个存储块包括多个页,每个页包括多个存储单元。在一个实施例中,多个存储单元可以是非易失性存储单元。将参考图4和图5来更详细地对此进行描述。
控制电路120响应于通过输入/输出电路160接收的内部命令CMD而输出电压控制信号VCON,该电压控制信号VCON用于产生执行读取操作、编程操作或擦除操作所需的电压。控制电路120输出用于根据操作的种类来控制页缓冲器组140中的页缓冲器PB1至PBk的页缓冲器控制信号PBCON。控制电路120响应于通过输入/输出电路160从外部接收的地址信号ADD而输出行地址信号RADD和列地址信号CADD。可以从图2的快闪控制电路1240产生内部命令CMD和地址信号ADD,并且可以通过图2的快闪接口1290来接收内部命令CMD和地址信号ADD。
电压供应电路130响应于控制电路120的电压控制信号VCON而将执行存储单元的编程操作、读取操作和擦除操作所需的操作电压供应给包括选中存储块的漏极选择线、字线WL和源极选择线的局部线。电压供应电路130包括电压发生电路和行解码器。
电压发生电路响应于控制电路120的电压控制信号VCON而将执行存储单元的编程操作、读取操作和擦除操作所需的操作电压输出到全局线。
行解码器响应于控制电路120的行地址信号RADD而耦接全局线与局部线,使得通过电压发生电路输出到全局线的操作电压可以被传送到存储单元阵列110中的选中存储块的局部线。
页缓冲器组140包括分别通过位线BL1至BLk耦接到存储单元阵列110的多个页缓冲器PB1至PBk。响应于控制电路120的页缓冲器控制信号PBCON,页缓冲器PB1至PBk根据输入数据DATA来选择性地对位线BL1至BLk进行预充电以将数据DATA储存在存储单元中。页缓冲器PB1至PBk感测位线BL1至BLk的电压以从存储单元读取数据DATA。在一个示例中,在读取操作中,页缓冲器组140可以通过感测位线BL1至BLk的电压电平或电流量而暂时储存读取的数据。
列解码器150响应于从控制电路120接收的列地址信号CADD而选择包括在页缓冲器组140中的页缓冲器PB1至PBk。在编程操作中,列解码器150响应于列地址信号CADD而将要被储存在存储单元中的数据DATA依次传送到页缓冲器PB1至PBk。在读取操作中,列解码器150响应于列地址信号CADD而依次选择页缓冲器PB1至PBk,使得存储单元的被锁存到页缓冲器PB1至PBk的数据DATA可以被输出到外部设备。
在编程操作中,输入/输出电路160在控制电路120的控制之下通过列解码器150将要被储存在存储单元中的数据DATA传送到页缓冲器组140。当列解码器150将从输入/输出电路160接收的数据DATA传送到页缓冲器组140的页缓冲器PB1至PBk时,页缓冲器PB1至PBk将输入数据DATA储存到其中的锁存电路。在读取操作中,输入/输出电路160将通过列解码器150从页缓冲器组140的页缓冲器PB1至PBk接收的数据DATA输出到外部。
图4是示出根据本公开的一个实施例的存储单元阵列(例如,图3的存储单元阵列110)的框图。
参考图4,存储单元阵列110包括多个存储块BLK1至BLKz。每个存储块具有三维结构。每个存储块包括层叠在衬底之上的多个存储单元。多个存储单元沿着+X、+Y和+Z方向布置。将参考图5来更详细地描述每个存储块的结构。
图5是示出根据本公开的一个实施例的存储块(例如,图4中示出的存储块)的电路图。
参考图5,每个存储块包括耦接在位线BL1至BLk与公共源极线CSL之间的多个串ST1至STk。即,串ST1至STk分别耦接到对应的位线BL1至BLk,并且共同耦接到公共源极线CSL。每个串ST1包括具有耦接到公共源极线CSL的源极的源极选择晶体管SST、多个存储单元C01至Cn1以及具有耦接到位线BL1的漏极的漏极选择晶体管DST。存储单元C01至Cn1串联耦接在选择晶体管SST与DST之间。源极选择晶体管SST的栅极耦接到源极选择线SSL。存储单元C01至Cn1的栅极分别耦接到字线WL0至WLn。漏极选择晶体管DST的栅极耦接到漏极选择线DSL。
存储块中的存储单元可以以物理页或逻辑页为单位来被划分。例如,耦接到一个字线(例如,WL0)的存储单元C01至C0k可以构成一个物理页PAGE0。这样的页成为编程操作或读取操作的基本单位。
图6是示出根据本公开的一个实施例的存储系统的操作的流程图。
图7是示出根据本公开的一个实施例的控制器中的数据传输的示图。
如下所述,将参考图1至图7来描述根据本公开的一个实施例的存储系统的读取操作。
参考图6,控制器1200从主机1400接收读取命令和与读取命令相对应的逻辑地址(S610)。
处理器1220使读取命令排队,并且通过转换逻辑地址来产生物理地址(例如,物理页地址PPA)。物理地址表示在存储器件1100中数据实际要被储存到其中的区域。快闪控制电路1240根据排队的读取命令和物理页地址PPA来产生地址ADD和用于控制存储器件1100的读取操作的内部命令CMD。快闪控制电路1240通过快闪接口1290来将内部命令CMD和地址ADD输出到存储器件1100(S620)。
存储器件1100中的多个半导体存储器100之中被选中的至少一个半导体存储器响应于从快闪控制电路1240接收的内部命令CMD和地址ADD而执行读取操作(S630)。
半导体存储器100的控制电路120响应于通过输入/输出电路160接收的内部命令CMD而输出电压控制信号VCON,该电压控制信号VCON用于产生执行读取操作的电压。在读取操作中,控制电路120输出用于控制页缓冲器PB1至PBk的页缓冲器控制信号PBCON。此外,控制电路120响应于通过输入/输出电路160从外部接收的地址信号ADD而输出行地址信号RADD和列地址信号CADD。电压供应电路130响应于控制电路的电压控制信号VCON而将执行存储单元的操作所需的操作电压供应给包括选中的存储块的漏极选择线、字线WL和源极选择线的局部线。在读取操作中,页缓冲器组140的页缓冲器PB1至PBk通过响应于控制电路120的页缓冲器控制信号PBCON而感测位线BL1至BLk的电压电平或电流量来暂时储存读取的数据。
快闪控制电路1240控制快闪DMA 1280通过快闪接口1290来读取暂时储存在已被执行读取操作的半导体存储器100的页缓冲器组140中的数据,并且将读取的数据储存在缓冲存储器1270中(S640)。
参考图7,快闪控制电路1240通过输出驱动信号FD_drive来驱动快闪DMA 1280。快闪DMA 1280通过快闪接口1290来读取并接收暂时储存在已被执行读取操作的半导体存储器100的页缓冲器组140中的数据DATA。快闪DMA 1280从半导体存储器100接收至少一个数据组,其中每个数据组构成读取传输单位(例如,4KB)。快闪控制电路1240将构成读取传输单位的每个数据组划分成多个数据子组DATA sub_g<0:n>,并且将数据子组DATA sub_g<0:n>依次传输到缓冲存储器1270。即,快闪控制电路1240可以将具有读取传输单位(例如,4KB)尺寸的一个数据组划分成n+1个数据子组DATA sub_g<0:n>(每个数据子组的尺寸小于读取传输单位的尺寸),并且将数据子组DATA sub_g<0:n>传输到缓冲存储器1270。在一个示例中,当读取传输单位为4KB且划分数据尺寸为128字节时,一个数据组可以被划分成要传输到缓冲存储器1270的32个数据子组DATA sub_g<0:31>。当数据子组DATA sub_g<0:n>之中的第一数据子组DATA sub_g<0>被传输到缓冲存储器1270时,快闪控制电路1240产生表示读取流已被开始的读取流开始信号RSS_signal,并且将读取流开始信号RSS_signal输出到缓冲控制电路1230的调度引擎。调度引擎响应于读取流开始信号RSS_signal而将数据储存预留信号reservation_signal输出到缓冲存储器1270,以确保用于要从快闪DMA 1280接收的数据组的储存空间。缓冲存储器1270响应于数据储存预留信号reservation_signal而通过确保尺寸等于数据组的总数据尺寸的储存空间来为写入操作作准备。当数据子组DATA_sub_g<0:n>之中的第一数据子组DATA sub_g<0>被传输到缓冲存储器1270时,快闪控制电路1240将表示到缓冲存储器1270的数据传输操作已经完成的传输完成信号trans_complete输出到快闪控制电路1240。快闪控制电路1240响应于传输完成信号trans_complete而将包括缓冲存储器1270的数据储存位置信息的槽索引(slot index)输出到主机控制电路1210。
再次参考图6,在数据子组DATA sub_g<0:n>之中的至少第一数据子组DATA sub_g<0>被完全储存在缓冲存储器1270中(S650)之后,主机控制电路1210控制主机DMA 1260读取储存在缓冲存储器1270中的数据,并且通过主机接口1250将读取的数据输出到主机1400。
再次参考图7,主机控制电路1210响应于槽索引而输出用于驱动主机DMA 1260的驱动信号HD_drive。主机DMA 1260响应于驱动信号HD_drive而读取并输出储存在缓冲存储器1270中的数据。由于数据子组DATA sub_g<0:n>之中只有第一数据子组DATA sub_g<0>被完全储存在缓冲存储器1270中,因此其他数据子组DATA sub_g<1:n>的数据储存操作可以被执行。因此,可以控制缓冲存储器1270,使得只有已经被完全储存的数据子组被读取并输出。主机DMA 1260可以依次读取已经被完全储存在缓冲存储器1270中的数据子组,并且通过主机接口1250来将数据子组输出到主机1400。
如上所述,根据本公开的一个实施例,操作①和操作②可以基本同时(可以是同时)被并行执行。操作①包括由快闪DMA 1280执行的以下操作:将从半导体存储器100读取的数据DATA传输到缓冲存储器1270,并且将所述数据DATA储存在缓冲存储器1270中。操作②包括由主机DMA 1260执行的以下操作:读取储存在缓冲存储器1270中的数据,并且将读取的数据输出到主机1400。即,从半导体存储器100读取的数据由快闪DMA 1280划分成要被依次传输到缓冲存储器1270的数据子组DATA sub_g<0:n>,其中数据子组DATA sub_g<0:n>中的每个数据子组的数据尺寸小于读取传输单位的数据尺寸。当数据子组DATA sub_g<0:n>之中的第一数据子组DATA sub_g<0>被完全传输时,主机DMA 1260被驱动以从缓冲存储器1270读取已经被完全传输的数据子组,并且将读取的数据子组输出到主机1400。因此,数据子组DATA sub_g<1:n>被储存在缓冲存储器1270中的操作和数据子组DATA sub_g<0:n-1>从缓冲存储器1270中被读取以被输出到主机1400的操作被并行执行。简而言之,在第一至第(n-1)数据子组被从缓冲存储器1270读取的同时,第二至第n数据子组被储存在缓冲存储器1270中。因此,可以提高存储系统1000的读取操作速度。
图8是示出根据本公开的一个实施例的控制器中的数据传输的示图。
在图8中,控制器从主机接收数据DATA,暂时储存数据DATA,并且将数据DATA输出到存储器件。
参考图8,主机控制电路1210通过输出驱动信号HD_drive来驱动主机DMA 1260。主机DMA 1260通过图2的主机接口1250来接收从图1的主机1400接收的数据DATA。主机DMA1260从主机1400依次接收至少一个具有传输单位(例如,4KB)的尺寸的数据组。主机控制电路1210将数据组划分成多个数据子组DATA sub_g<0:n>,并且将数据子组DATA sub_g<0:n>依次传输到缓冲存储器1270。即,主机控制电路1210可以将具有传输单位(例如,4KB)的尺寸的一个数据组划分成n+1个数据子组DATA sub_g<0:n>(每个数据子组的尺寸小于传输单位的尺寸),并且将数据子组DATA sub_g<0:n>传输到缓冲存储器1270。在一个实施例中,当传输单位为4KB且划分数据尺寸为128字节时,一个数据组可以被划分成32个数据子组DATAsub_g<0:31>以被传输到缓冲存储器1270。当至少两个数据子组DATA_sub_g<0:n>之中的第一数据子组DATA sub_g<0>被传输到缓冲存储器1270时,主机控制电路1210产生表示编程流已经开始的编程流开始信号PSS_signal,并且将编程流开始信号PSS_signal输出到缓冲控制电路1230的调度引擎。调度引擎响应于编程流开始信号PSS_signal而将数据储存预留信号reservation_signal输出到缓冲存储器1270,以确保要从主机DMA 1260接收的至少一个数据组的储存空间。缓冲存储器1270响应于数据储存预留信号reservation_signal而通过确保尺寸等于数据组的总数据尺寸的储存空间来为写入操作作准备。当数据子组DATA_sub_g<0:n>之中的第一数据子组DATA sub_g<0>被传输到缓冲存储器1270时,主机DMA1260将表示到缓冲存储器1270的数据传输操作已经完成的传输完成信号trans_complete输出到主机控制电路1210。主机控制电路1210响应于传输完成信号trans_complete而将包括缓冲存储器1270的数据储存位置信息的槽索引输出到快闪控制电路1240。
在数据子组DATA sub_g<0:n>之中的至少第一数据子组DATA sub_g<0>被完全储存在缓冲存储器1270中之后,快闪控制电路1240控制快闪DMA 1280读取储存在缓冲存储器1270中的数据,并且通过图2的快闪接口1290来将读取的数据输出到存储器件。
快闪控制电路1240响应于槽索引而输出用于驱动快闪DMA 1280的驱动信号FD_drive。快闪DMA 1280响应于驱动信号FD_drive而读取并输出储存在缓冲存储器1270中的数据。由于至少两个数据子组DATA sub_g<0:n>之中只有第一数据子组DATA sub_g<0>被完全储存在缓冲存储器1270中,因此其他数据子组DATA sub_g<1:n>的数据储存操作可以被执行。因此,缓冲存储器1270可以被控制,使得只有已经被完全储存的数据子组被读取并输出。快闪DMA 1280可以依次读取已经被完全储存在缓冲存储器1270中的数据子组,并且通过快闪接口1290来将数据子组输出到存储器件1100。
如上所述,根据本公开的一个实施例,操作①和操作②可以基本同时(可以是同时)被并行执行。操作①包括由主机DMA 1260执行的以下操作:将从主机接收的数据DATA传输到缓冲存储器1270,并且将所述数据DATA储存在缓冲存储器1270中。操作②包括由快闪DMA 1280执行的以下操作:读取储存在缓冲存储器1270中的数据,并且将读取的数据输出到存储器件1100。即,从主机1400接收的数据由主机DMA 1260划分成要被依次传输到缓冲存储器1270的数据子组DATA sub_g<0:n>(每个数据子组的尺寸小于传输单位的数据尺寸)。当数据子组DATA sub_g<0:n>之中的第一数据子组DATA sub_g<0>被完全传输时,快闪DMA 1280被驱动以从缓冲存储器1270读取已经被完全传输的数据子组,并且将读取的数据子组输出到存储器件1100。因此,数据子组DATA sub_g<1:n>被储存在缓冲存储器1270中的操作和数据子组DATA sub_g<0:n-1>从缓冲存储器1270中被读取以被输出到存储器件的操作被并行执行。简而言之,在第一至第(n-1)数据子组被从缓冲存储器1270读取的同时,第二至第n数据子组被储存在缓冲存储器1270中。因此,可以提高存储系统1000的读取操作速度。
在上述实施例中,将从主机接收的数据输出到存储器件的操作或者将从存储器件接收的数据输出到主机的操作已作为示例被描述。然而,本公开不限于此,并且可以被应用于使用缓冲器来传输数据的其他操作。另外,当使用错误校正块来对从存储器件读取的数据执行解码操作时,或者当使用错误校正码来对从主机接收的数据执行编码操作时,可以如上文中所解释的那样来传输数据,使得用于解码操作和编码操作的数据传输的操作速度可以被提高。
图9是示出根据本公开的一个实施例的存储系统30000的示图。
参考图9,存储系统30000可以被实现为蜂窝电话、智能电话、平板个人电脑(PC)、个人数字助理(PDA)或无线通信设备。存储系统30000可以包括存储器件1100和能够控制存储器件1100的操作的控制器1200。控制器1200可以在处理器3100的控制之下控制存储器件1100的数据访问操作,例如,编程操作、擦除操作、读取操作等。
在控制器1200的控制之下,被编程在存储器件1100中的数据可以通过显示器3200输出。
无线电收发器3300可以通过天线ANT传输和接收无线电信号。例如,无线电收发器3300可以将通过天线ANT接收的无线电信号转换成可以由处理器3100处理的信号。因此,处理器3100可以处理从无线电收发器3300输出的信号,并将处理后的信号传输给控制器1200或显示器3200。控制器1200可以将由处理器3100处理的信号传输到存储器件1100。此外,无线电收发器3300可以将从处理器3100输出的信号转换成无线电信号,并且通过天线ANT将转换后的无线电信号输出到外部设备。输入设备3400是能够输入用于控制处理器3100的操作的控制信号或要由处理器3100处理的数据的设备,并且可以被实现为诸如触摸板或电脑鼠标、小键盘或键盘的定点设备。处理器3100可以控制显示器3200的操作,使得从控制器1200输出的数据、从无线电收发器3300输出的数据或从输入设备3400输出的数据可以通过显示器3200来输出。
在一些实施例中,能够控制存储器件1100的操作的控制器1200可以被实现为处理器3100的部件,或者可以被实现为与处理器3100分开的芯片。另外,可以用图2中示出的控制器来实现控制器1200。
图10是示出根据本公开的一个实施例的存储系统40000的示图。
参考图10,存储系统40000可以被实现为个人计算机(PC)、平板PC、上网本、电子阅读器、个人数字助理(PDA)、便携式多媒体播放器(PMP)、MP3播放器或MP4播放器。
存储系统40000可以包括存储器件1100和能够控制存储器件1100的数据处理操作的控制器1200。
根据通过输入设备4200输入的数据,处理器4100可以通过显示器4300输出储存在存储器件1100中的数据。例如,输入设备4200可以被实现为诸如触摸板或者电脑鼠标、小键盘或键盘的定点设备。
处理器4100可以控制存储系统40000的整体操作,并且控制控制器1200的操作。在一些实施例中,能够控制存储器件1100的操作的控制器1200可以被实现为处理器4100的部件,或者被实现为与处理器4100分开的芯片。另外,可以用图2中示出的控制器来实现控制器1200。
图11是示出根据本公开的一个实施例的存储系统50000的示图。
参考图11,存储系统50000可以被实现为图像处理设备,例如数字照相机、具有附接到其上的数字照相机的移动终端、具有附接到其上的数字照相机的智能电话或具有附接到其上的数字照相机的平板个人电脑(PC)。
存储系统50000可以包括存储器件1100及能够控制存储器件1100的数据处理操作(例如,编程操作、擦除操作或读取操作)的控制器1200。
存储系统50000的图像传感器5200可以将光学图像转换成数字信号,转换后的数字信号可以被传输到处理器5100或控制器1200。在处理器5100的控制之下,转换后的数字信号可以通过显示器5300输出,或者可以经由控制器1200储存在存储器件1100中。另外,储存在存储器件1100中的数据可以在处理器5100或者控制器1200的控制之下通过显示器5300输出。
在一些实施例中,能够控制存储器件1100的操作的控制器1200可以被实现为处理器5100的部件,或者被实现为与处理器5100分开的芯片。另外,可以用图2中示出的控制器来实现控制器1200。
图12是示出根据本公开的一个实施例的存储系统70000的示图。
参考图12,存储系统70000可以被实现为存储卡或智能卡。存储系统70000可以包括存储器件1100、控制器1200和卡接口7100。
控制器1200可以控制存储器件1100与卡接口7100之间的数据交换。在一些实施例中,卡接口7100可以是安全数字(SD)卡接口或多媒体卡(MMC)接口,但是本公开不限于此。另外,可以用图2中示出的控制器来实现控制器1200。
卡接口7100可以根据主机60000的协议对主机60000与控制器1200之间的数据交换进行交互。在一些实施例中,卡接口7100可以支持通用串行总线(USB)协议和芯片间(IC)-USB协议。卡接口7100可以包括能够支持由主机60000使用的协议的硬件、嵌入在硬件中的软件或者信号传输方案。
当存储系统70000耦接到诸如个人计算机(PC)、平板PC、数字照相机、数字音频播放器、蜂窝电话、控制台视频游戏硬件或数字机顶盒的主机60000的主机接口6200时,主机接口6200可以在微处理器6100的控制之下通过卡接口7100和控制器1200来执行与存储器件1100的数据通信。
根据本公开的实施例,通过并行处理将数据从存储器件储存到缓冲存储器的操作和将数据从缓冲存储器输出到主机的操作,可以提高读取操作的速度。
本文中已经公开了各种实施例,尽管使用了特定术语,但特定术语在一般和描述性的意义上被使用和解释,而不是出于限制的目的。在一些情况下,根据本公开,对本领域技术人员明显的是,结合特定实施例描述的特征、特性和/或元件可以单独使用或者与结合其他实施例描述的特征、特性和/或元件结合使用,除非另外明确表示。因此,本领域技术人员将理解的是,在不偏离如所附权利要求所阐述的本公开的精神和范围的情况下可以在形式和细节上进行各种改变。
Claims (20)
1.一种存储系统,包括:
存储器件,其被配置为在编程操作中储存数据,并且在读取操作中读取储存的数据并且暂时储存读取的数据;以及
控制器,其被配置为将数据传输到所述存储器件,
其中,所述控制器包括:
快闪直接存储器访问DMA,其被配置为在所述读取操作中读取并输出暂时储存在所述存储器件中的数据;
缓冲存储器,其被配置为储存从所述快闪DMA输出的所述数据;以及
主机DMA,其被配置为读取储存在所述缓冲存储器中的所述数据并且将读取的数据输出到主机,
其中,将暂时储存在所述存储器件中的所述数据储存在所述缓冲存储器中的第一操作和将储存在所述缓冲存储器中的所述数据输出到所述主机的第二操作被并行执行,
其中,在第一操作期间,当来自所述快闪DMA的所述数据的一部分被输出时,所述缓冲存储器确保用于储存从所述快闪DMA输出的所述数据的空间。
2.根据权利要求1所述的存储系统,其中,所述控制器还包括:
快闪控制电路,其被配置为控制所述快闪DMA;
主机控制电路,其被配置为控制所述主机DMA;以及
缓冲控制电路,其被配置为控制所述缓冲存储器。
3.根据权利要求2所述的存储系统,其中,在所述第一操作中,所述快闪DMA接收暂时储存在所述存储器件中的所述数据作为至少一个数据组,将所述至少一个数据组划分成多个数据子组,并且将所述多个数据子组传输到所述缓冲存储器,其中,每个数据组具有读取传输单位的尺寸,每个数据子组的数据尺寸小于所述读取传输单位的尺寸。
4.根据权利要求3所述的存储系统,其中,所述快闪DMA执行以下操作:
将所述多个数据子组依次传输到所述缓冲存储器;以及
当所述多个数据子组之中的第一数据子组被传输到所述缓冲存储器时,将表示读取流已经开始的读取开始信息输出到所述缓冲控制电路。
5.根据权利要求4所述的存储系统,其中,所述缓冲控制电路包括调度引擎,所述调度引擎响应于所述读取开始信息而控制所述缓冲存储器确保要从所述快闪DMA接收的所述多个数据子组的储存空间。
6.根据权利要求5所述的存储系统,其中,所述调度引擎用Tomasulo算法或Scoreboard算法来实现。
7.根据权利要求4所述的存储系统,其中,当所述第一数据子组被传输到所述缓冲存储器时,所述快闪DMA将用于所述第一操作的完成信号输出到所述快闪控制电路。
8.根据权利要求7所述的存储系统,其中,所述快闪控制电路响应于所述完成信号而将数据储存空间位置信息输出到所述主机控制电路。
9.根据权利要求8所述的存储系统,其中,所述主机控制电路控制所述主机DMA响应于所述数据储存空间位置信息而读取储存在所述缓冲存储器中的所述多个数据子组并且将所述多个数据子组输出到所述主机。
10.根据权利要求9所述的存储系统,其中,所述缓冲存储器在所述第二操作中被控制,使得所述多个数据子组之中只有已经被完全储存在所述缓冲存储器中的数据子组被读取并输出。
11.根据权利要求3所述的存储系统,其中,对所述多个数据子组之中除第一数据子组之外的所有数据子组的所述第一操作和对所述多个数据子组之中除最后数据子组之外的所有数据子组的所述第二操作被并行执行。
12.一种存储系统,包括:
存储器件,其被配置为储存数据;
主机接口,其耦接到主机;
缓冲存储器,其耦接在所述存储器件与所述主机接口之间;
第一控制器,其被配置为读取储存在所述存储器件中的数据并且将读取的数据传输到所述缓冲存储器;以及
第二控制器,其被配置为通过所述主机接口将储存在所述缓冲存储器中的数据输出到所述主机,
其中,所述第一控制器将所述读取的数据传输到所述缓冲存储器的第一操作和所述第二控制器将储存在所述缓冲存储器中的所述数据输出到所述主机的第二操作被并行执行。
13.根据权利要求12所述的存储系统,其中,所述第一控制器包括:
快闪DMA,其被配置为在所述第一操作中接收暂时储存在所述存储器件中的数据作为至少一个数据组,将所述至少一个数据组划分成多个数据子组,并且将所述多个数据子组传输到所述缓冲存储器,其中,每个数据组具有读取传输单位的尺寸,每个数据子组的数据尺寸小于所述读取传输单位的尺寸;以及
快闪控制电路,其被配置为控制所述快闪DMA。
14.根据权利要求13所述的存储系统,其中,所述第二控制器包括:
主机DMA,其被配置为读取储存在所述缓冲存储器中的所述多个数据子组并且将所述多个数据子组输出到所述主机;以及
主机控制电路,其被配置为控制所述主机DMA。
15.根据权利要求14所述的存储系统,其中,所述快闪DMA将所述多个数据子组依次传输到所述缓冲存储器,以及
在所述多个数据子组之中的第一数据子组被传输到所述缓冲存储器以被储存在所述缓冲存储器中之后,所述主机DMA依次读取储存在所述缓冲存储器中的所述多个数据子组并且将所述多个数据子组输出到所述主机。
16.根据权利要求15所述的存储系统,其中,所述缓冲存储器包括缓冲控制电路,所述缓冲控制电路被配置为在所述第一数据子组被传输到所述缓冲存储器以被储存在所述缓冲存储器中时确保用于要从所述快闪DMA接收的所述多个数据子组的储存空间。
17.一种存储系统的操作方法,所述方法包括:
将从存储器件读取的数据划分成多个数据子组;
执行将所述多个数据子组依次传输到缓冲存储器并且将所述多个数据子组储存在所述缓冲存储器中的第一操作;以及
当所述多个数据子组之中的第一数据子组被完全储存在所述缓冲存储器中时,执行读取储存在所述缓冲存储器中的数据并将读取的数据输出到主机的第二操作,
其中,所述第一操作和所述第二操作被并行执行。
18.根据权利要求17所述的方法,其中,将读取的数据划分成所述多个数据子组的步骤包括:
从所述存储器件接收至少一个数据组,所述数据组作为读取传输单位;以及
将所述至少一个数据组划分成所述多个数据子组,每个数据子组的数据尺寸小于所述读取传输单位的数据尺寸。
19.根据权利要求17所述的方法,其中,对所述多个数据子组之中除第一数据子组之外的所有数据子组的所述第一操作和对所述多个数据子组之中除最后数据子组之外的所有数据子组的所述第二操作被并行执行。
20.根据权利要求17所述的方法,其中,当所述第一数据子组被传输到所述缓冲存储器时,确保所述缓冲存储器中的用于储存所述多个数据子组的空间。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180047974A KR20190123984A (ko) | 2018-04-25 | 2018-04-25 | 메모리 시스템 및 그것의 동작 방법 |
KR10-2018-0047974 | 2018-04-25 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110399321A true CN110399321A (zh) | 2019-11-01 |
Family
ID=68292546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811599633.3A Pending CN110399321A (zh) | 2018-04-25 | 2018-12-26 | 存储系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US20190332324A1 (zh) |
KR (1) | KR20190123984A (zh) |
CN (1) | CN110399321A (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102701385B1 (ko) * | 2021-09-03 | 2024-08-30 | 성균관대학교산학협력단 | 플래시 메모리 저장장치의 동작방법 |
KR20230043408A (ko) * | 2021-09-24 | 2023-03-31 | 삼성전자주식회사 | 메모리 컨트롤러 및 스토리지 장치 |
US11841767B2 (en) * | 2021-11-24 | 2023-12-12 | Samsung Electronics Co., Ltd. | Controller controlling non-volatile memory device, storage device including the same, and operating method thereof |
KR102547251B1 (ko) * | 2021-11-24 | 2023-06-26 | 삼성전자주식회사 | 비휘발성 메모리 장치를 제어하는 제어기, 그것을 포함하는 저장 장치 및 그것의 동작 방법 |
Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5797033A (en) * | 1995-03-31 | 1998-08-18 | Cirrus Logic, Inc. | Direct memory access for storing and retrieving data based on packet size |
CN1352773A (zh) * | 1999-02-22 | 2002-06-05 | 因芬尼昂技术股份公司 | 帮助直接存储器访问的方法和装置 |
CN1552028A (zh) * | 2001-09-07 | 2004-12-01 | ض� | 用于片上系统的分布式直接存储器访问的方法和装置 |
CN1952917A (zh) * | 2005-09-21 | 2007-04-25 | 三星电子株式会社 | 存储器控制器及具有存储器控制器的数据处理系统 |
CN1965285A (zh) * | 2003-07-22 | 2007-05-16 | 米克伦技术公司 | 用于基于集线器的存储系统中直接存储器访问的设备和方法 |
KR20070068809A (ko) * | 2005-12-27 | 2007-07-02 | 삼성전자주식회사 | 시스템 온 칩 시스템에서 데이터 전송을 위한 시스템 및방법 |
CN101373449A (zh) * | 2007-08-21 | 2009-02-25 | 三星电子株式会社 | Ecc控制电路、多通道存储器系统以及相关操作方法 |
US7620748B1 (en) * | 2006-04-06 | 2009-11-17 | Bitmicro Networks, Inc. | Hardware assisted non-volatile memory-to-input/output direct memory access (DMA) transfer |
US20100229032A1 (en) * | 2009-03-06 | 2010-09-09 | Samsung Electronics Co., Ltd. | Solid state disk device and related data storing and reading methods |
CN103136136A (zh) * | 2012-11-23 | 2013-06-05 | 香港应用科技研究院有限公司 | 用于闪存存储介质执行数据传输的方法和系统 |
US20140149625A1 (en) * | 2012-11-29 | 2014-05-29 | Tal Sharifie | Method and apparatus for dma transfer with synchronization optimization |
CN104011696A (zh) * | 2012-12-11 | 2014-08-27 | 英特尔公司 | 用于隐式存储器注册的显式流控制 |
CN105389274A (zh) * | 2014-08-29 | 2016-03-09 | 三星电子株式会社 | 半导体装置、半导体系统和片上系统 |
CN105608015A (zh) * | 2014-11-17 | 2016-05-25 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
CN105845177A (zh) * | 2015-02-04 | 2016-08-10 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
CN106098089A (zh) * | 2015-04-27 | 2016-11-09 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
CN106128510A (zh) * | 2015-05-07 | 2016-11-16 | 爱思开海力士有限公司 | 控制器、半导体存储系统及其操作方法 |
CN106373602A (zh) * | 2015-07-21 | 2017-02-01 | 爱思开海力士有限公司 | 存储系统和存储系统的操作方法 |
CN107066201A (zh) * | 2016-02-11 | 2017-08-18 | 爱思开海力士有限公司 | 数据存储装置及其方法 |
CN107643985A (zh) * | 2016-07-21 | 2018-01-30 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9971524B1 (en) * | 2013-03-15 | 2018-05-15 | Bitmicro Networks, Inc. | Scatter-gather approach for parallel data transfer in a mass storage system |
US10552050B1 (en) * | 2017-04-07 | 2020-02-04 | Bitmicro Llc | Multi-dimensional computer storage system |
-
2018
- 2018-04-25 KR KR1020180047974A patent/KR20190123984A/ko unknown
- 2018-11-30 US US16/205,950 patent/US20190332324A1/en not_active Abandoned
- 2018-12-26 CN CN201811599633.3A patent/CN110399321A/zh active Pending
-
2021
- 2021-06-30 US US17/363,549 patent/US11645010B2/en active Active
Patent Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5797033A (en) * | 1995-03-31 | 1998-08-18 | Cirrus Logic, Inc. | Direct memory access for storing and retrieving data based on packet size |
CN1352773A (zh) * | 1999-02-22 | 2002-06-05 | 因芬尼昂技术股份公司 | 帮助直接存储器访问的方法和装置 |
CN1552028A (zh) * | 2001-09-07 | 2004-12-01 | ض� | 用于片上系统的分布式直接存储器访问的方法和装置 |
CN1965285A (zh) * | 2003-07-22 | 2007-05-16 | 米克伦技术公司 | 用于基于集线器的存储系统中直接存储器访问的设备和方法 |
CN1952917A (zh) * | 2005-09-21 | 2007-04-25 | 三星电子株式会社 | 存储器控制器及具有存储器控制器的数据处理系统 |
KR20070068809A (ko) * | 2005-12-27 | 2007-07-02 | 삼성전자주식회사 | 시스템 온 칩 시스템에서 데이터 전송을 위한 시스템 및방법 |
US7620748B1 (en) * | 2006-04-06 | 2009-11-17 | Bitmicro Networks, Inc. | Hardware assisted non-volatile memory-to-input/output direct memory access (DMA) transfer |
CN101373449A (zh) * | 2007-08-21 | 2009-02-25 | 三星电子株式会社 | Ecc控制电路、多通道存储器系统以及相关操作方法 |
US20100229032A1 (en) * | 2009-03-06 | 2010-09-09 | Samsung Electronics Co., Ltd. | Solid state disk device and related data storing and reading methods |
CN103136136A (zh) * | 2012-11-23 | 2013-06-05 | 香港应用科技研究院有限公司 | 用于闪存存储介质执行数据传输的方法和系统 |
US20140149625A1 (en) * | 2012-11-29 | 2014-05-29 | Tal Sharifie | Method and apparatus for dma transfer with synchronization optimization |
CN104011696A (zh) * | 2012-12-11 | 2014-08-27 | 英特尔公司 | 用于隐式存储器注册的显式流控制 |
CN105389274A (zh) * | 2014-08-29 | 2016-03-09 | 三星电子株式会社 | 半导体装置、半导体系统和片上系统 |
CN105608015A (zh) * | 2014-11-17 | 2016-05-25 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
CN105845177A (zh) * | 2015-02-04 | 2016-08-10 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
CN106098089A (zh) * | 2015-04-27 | 2016-11-09 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
CN106128510A (zh) * | 2015-05-07 | 2016-11-16 | 爱思开海力士有限公司 | 控制器、半导体存储系统及其操作方法 |
CN106373602A (zh) * | 2015-07-21 | 2017-02-01 | 爱思开海力士有限公司 | 存储系统和存储系统的操作方法 |
CN107066201A (zh) * | 2016-02-11 | 2017-08-18 | 爱思开海力士有限公司 | 数据存储装置及其方法 |
CN107643985A (zh) * | 2016-07-21 | 2018-01-30 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US20210326075A1 (en) | 2021-10-21 |
US20190332324A1 (en) | 2019-10-31 |
US11645010B2 (en) | 2023-05-09 |
KR20190123984A (ko) | 2019-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110232035B (zh) | 存储器系统以及存储器系统的操作方法 | |
CN110399321A (zh) | 存储系统及其操作方法 | |
US10930350B2 (en) | Memory device for updating micro-code, memory system including the memory device, and method for operating the memory device | |
KR102485411B1 (ko) | 메모리 시스템 및 그것의 동작 방법 | |
CN111338976A (zh) | 存储器系统以及存储器系统的操作方法 | |
US10970230B2 (en) | Memory system and operating method thereof | |
US20210210148A1 (en) | Memory system and operating method thereof | |
CN111240585B (zh) | 控制器、包括控制器的存储器系统及其操作方法 | |
US11029886B2 (en) | Memory system and method of operating memory system | |
CN111209224A (zh) | 存储器系统及其操作方法 | |
KR20210012329A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
CN111209223B (zh) | 存储器系统及其操作方法 | |
US9311257B2 (en) | Semiconductor memory device, memory system and method of operating the same | |
US11295830B2 (en) | Memory system and operating method of the memory system | |
US20210134383A1 (en) | Memory system and operating method of the memory system | |
US11495305B2 (en) | Semiconductor memory device and operating method thereof | |
KR20240085237A (ko) | 메모리 장치, 이를 포함하는 메모리 시스템 및 그것의 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20191101 |