CN109213438B - 预先管理待分配给写入数据的物理地址的存储装置 - Google Patents
预先管理待分配给写入数据的物理地址的存储装置 Download PDFInfo
- Publication number
- CN109213438B CN109213438B CN201810620067.3A CN201810620067A CN109213438B CN 109213438 B CN109213438 B CN 109213438B CN 201810620067 A CN201810620067 A CN 201810620067A CN 109213438 B CN109213438 B CN 109213438B
- Authority
- CN
- China
- Prior art keywords
- memory
- write data
- data
- controller
- write
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003860 storage Methods 0.000 title claims abstract description 222
- 230000015654 memory Effects 0.000 claims abstract description 303
- 239000000872 buffer Substances 0.000 claims description 122
- 238000004891 communication Methods 0.000 claims description 15
- 238000012546 transfer Methods 0.000 claims description 14
- 238000010586 diagram Methods 0.000 description 26
- 238000012545 processing Methods 0.000 description 14
- 238000000034 method Methods 0.000 description 10
- 101150102573 PCR1 gene Proteins 0.000 description 8
- 230000004044 response Effects 0.000 description 6
- 238000009826 distribution Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 230000003936 working memory Effects 0.000 description 5
- 230000003139 buffering effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 101100519158 Arabidopsis thaliana PCR2 gene Proteins 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 239000000047 product Substances 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 101100519159 Arabidopsis thaliana PCR3 gene Proteins 0.000 description 1
- 101100519160 Arabidopsis thaliana PCR4 gene Proteins 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000000739 chaotic effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000007257 malfunction Effects 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
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/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
- 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/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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
一种存储装置包括非易失性存储器和控制器。在控制器接收到第一写入数据之前,控制器预先管理指示存储区域的物理地址与流标识符之间的对应关系。控制器控制非易失性存储器,使得第一写入数据被存储在第一存储区域中,对应于对应关系中的第一写入数据的第一流标识符地管理所述第一存储区域的物理地址。无论控制器是否接收到具有第二流标识符的第二写入数据,基于对应关系将第一写入数据传输到非易失性存储器。
Description
相关申请的交叉引用
本申请要求在2017年7月3日提交给韩国知识产权局的韩国专利申请No.10-2017-0084233的优先权,其公开内容通过引用其全部合并于此。
技术领域
本公开涉及一种电子装置,并且更具体地,涉及存储和输出数据的存储装置的操作和配置。
背景技术
近年来,正在使用各种类型的电子装置。电子装置根据包括在其中的电子电路的操作来执行其自己的功能。存储装置是电子装置的一个示例。存储装置包括用于存储数据的存储器装置。存储器装置存储或输出数据,因此存储装置向用户提供存储服务。
同时,随着许多人广泛使用存储装置,并且数据量逐渐增加,对高性能和高可靠性的存储装置的需求增加。另外,对在使用存储装置中的少量资源的同时提供丰富服务的高效存储装置的需求也增加了。
例如,存储装置可以包括用于管理数据流的各种电子电路。存储装置的电子电路可以通过使用存储装置的资源来处理数据,或者可以存储数据处理所需的信息。当要处理的数据量增加时,存储装置所需的资源量(例如,计算能力和/或缓冲器容量等)也增加。然而,大量资源会降低存储装置的效率,并且会增加制造存储装置的成本。
发明内容
本公开的各示例实施例可以提供即使使用少量资源也能够管理数据流的存储装置的配置和操作。在本公开的示例实施例中,存储装置可以在从主机接收写入数据之前,管理要为写入数据分配的物理地址。在一些示例实施例中,存储装置可以用集中式架构来实现,或者可以用硬件自动化架构来实现。
在一些示例实施例中,存储装置可以包括各个非易失性存储器和控制器。非易失性存储器可以包括各存储区域。控制器可以通过多个通道与非易失性存储器通信。在控制器接收到第一写入数据之前,控制器可以预先管理指示存储区域的物理地址与流标识符之间的对应关系。控制器可以控制非易失性存储器,使得第一写入数据被存储在第一存储区域中,与对应关系中的第一写入数据的第一流标识符相对应地管理所述第一存储区域的物理地址。无论控制器是否接收到具有第二流标识符的第二写入数据,可以基于对应关系将第一写入数据传输到非易失性存储器。
在一些示例实施例中,存储装置可以包括各个非易失性存储器、缓冲存储器和控制器。非易失性存储器可以包括存储区域。缓冲存储器可以缓冲要存储在非易失性存储器中的第一写入数据和第二写入数据。控制器可以与非易失性存储器和缓冲存储器通信,使得第一写入数据和第二写入数据被存储在非易失性存储器中。具有第一特性的第一写入数据可以被存储在非易失性存储器的第一存储区域中,并且具有第二特性的第二写入数据可以被存储在非易失性存储器的第二存储区域中。无论第二写入数据是否被缓冲在缓冲存储器中,可以将缓冲在缓冲存储器中的第一写入数据传输到非易失性存储器。
在一些示例实施例中,存储装置可以包括非易失性存储器和控制器。非易失性存储器可以包括存储区域。控制器可控制非易失性存储器,使得第一写入数据被存储在在接收到第一写入数据之前就被预先被确定用来存储第一写入数据的存储区域中。不管是否接收到第二写入数据,可以将第一写入数据传输到非易失性存储器。
在一些示例实施例中,存储装置可以包括非易失性存储器和控制器。非易失性存储器可以包括存储区域。控制器可以包括作业管理电路和处理器。作业管理电路可以管理写入操作,使得具有第一流标识符的第一写入数据被存储在非易失性存储器的第一存储区域中,并且具有第二流标识符的第二写入数据被存储在非易失性存储器的第二存储区域中。处理器可以进行管理操作,从而解决与写入操作相关联的错误或异常。作业管理电路可以在无处理器介入的情况下管理写入操作。无论控制器是否接收到第二写入数据,可以将由控制器接收到的第一写入数据传输到非易失性存储器。
根据本公开的示例实施例,写入数据可以被存储于在从主机接收写入数据之前预先分配了物理地址的存储区域中。因此,存储装置可以在小容量的缓冲器中管理写入数据。可以实现包括小容量缓冲器的存储装置,因此可以提高管理存储装置的效率,并且可以降低制造存储装置的成本。
在示例实施例中,存储装置包括非易失性存储器和存储器控制器。存储器控制器进行以下操作:(1)生成非易失性存储器的物理地址与流标识符之间的互斥关联,(2)从主机装置接收第一命令以用于写入与各流标识符之中的第一流标识符相关联的数据,以及(3)将从主机装置接收到的第二命令传输至各非易失性存储器之中的第一非易失性存储器,所述第二命令包括各物理地址之中的与第一流标识符相关联的第一物理地址和待存储在所述第一物理地址处的数据。
附图说明
参照以下附图,上述和其他目的和特征将变得显而易见,其中,除非另有说明,否则相同的附图标记在各个附图中指代相同的部分,图中:
图1是示出根据一些示例实施例的包括存储装置的电子***的框图;
图2是示出图1的存储装置的示例配置的框图;
图3是用于描述根据一些示例实施例的图2的存储器装置的示例配置的框图;
图4和图5是用于描述根据一些示例实施例的图2的存储器装置的示例配置的概念图;
图6是用于描述图2的存储装置中的示例写入操作的框图;
图7是用于描述根据一些示例实施例的图2的存储装置中执行的示例写入操作的框图;
图8是描述根据一些示例实施例的图2的存储装置中执行的示例写入操作的流程图;
图9是描述关于图7和图8的示例写入操作的通过多个通道的交叉存取(interleving)的流程图;
图10是用于描述关于图7和图8的示例写入操作的时分多路传输的概念图;
图11是示出图1的存储装置的示例配置的框图;
图12和图13是用于描述根据一些示例实施例的图11的存储装置的示例操作的框图;
图14是示出根据一些示例实施例的图11的控制器的示例配置和示例操作的框图;
图15是示出根据一些示例实施例的图14的数据包的示例配置的概念图;
图16至图18是用于描述根据一些示例实施例的图11的存储装置中执行的示例写入操作的框图;
图19是描述根据一些示例实施例的图11的存储装置中执行的示例写入操作的流程图;以及
图20是示出图1的存储装置的示例配置的框图。
具体实施方式
以下,将参照附图详细并清楚地描述一些示例实施例,使得本领域技术人员可以容易地实现本公开。
I.与本公开相关联的示例电子***
图1是示出根据一些示例实施例的包括存储装置1300的电子***1000的示例配置的框图。
电子***1000可以包括主处理器1101、工作存储器1200、存储装置1300、通信模块1400、用户接口1500和总线1600。例如,电子***1000可以是诸如台式计算机、膝上型计算机、平板电脑、智能电话、可穿戴设备、视频游戏控制台、工作站、服务器、电动车辆、家用电器和/或医疗器械等的电子设备中的一种。
主处理器1101可以控制电子***1000的整体操作。主处理器1101可以处理各种算术运算和/或逻辑运算。为此,主处理器1101可以包括专用电路(例如,现场可编程门阵列(FPGA)和/或专用集成芯片(ASIC)等)。例如,主处理器1101可以包括一个或多个处理器核,并且可以用通用处理器、专用处理器或应用处理器来实现。
工作存储器1200可以存储要在电子***1000的操作中使用的数据。例如,工作存储器1200可以暂时存储由主处理器1101处理或待由主处理器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)、蓝牙、近场通信(NFC)、无线保真(Wi-Fi)和/或射频识别(RFID))等)中的至少一种、和/或各种有线通信协议(诸如传输控制协议/因特网协议(TCP/IP)、通用串行总线(USB)和/或Firewire等)中的至少一种。
用户接口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可以管理小容量缓冲器中的写入数据。因此,可以提高管理存储装置1300的效率,并且可以降低制造存储装置1300的成本。将参照图2至图20来描述存储装置1300的示例配置和示例操作。
可以在以下描述中作为示例提供存储装置1300。然而,本公开不限于此。示例实施例可以应用于包括存储器装置的任何类型的装置。例如,示例实施例甚至可以应用于包括在工作存储器1200中的易失性存储器和/或非易失性存储器。提供以下描述以有助于更好的理解,并且不旨在限制本公开。
II-A.集中式架构
图2是示出图1的存储装置1300的示例配置的框图。图1的电子***1000可以包括图2的电子***1000a。图1的存储装置1300可以包括图2的存储装置1300a。
如参照图1所述,主处理器1101可以通过总线1600与存储装置1300a通信。在本公开中,能够访问存储装置1300的对象可以被称为“主机”1100a。主处理器1101可以是能够作为主机1100a操作的对象的示例。然而,本公开不限于此。
主机1100a可以与存储装置1300a交换数据DAT。存储装置1300a可以响应于从主机1100a接收到的命令CMD,向主机1100a提供存储服务。
例如,主机1100a可以向存储装置1300a提供写入命令和写入数据。存储装置1300a可以响应于写入命令而存储所请求的写入数据。例如,主机1100a可以向存储装置1300a提供读取命令。存储装置1300a可以响应于读取命令向主机1100a输出所请求的读取数据。
存储装置1300a可以包括一个或多个存储器装置1310和控制器1330a。虽然图2示出了两个存储器装置1311和1319,但是包括在存储装置1300a中的存储器装置的数量可以不同地改变或修改。
存储器装置1311和1319中的每一个可以存储或输出由主机1100a请求的数据。为此,每个存储器装置1311和1319可以包括用于存储数据的存储区。例如,当存储器装置1311和1319中的每一个包括NAND型闪存时,存储器装置1311和1319中的每一个可以包括沿着多个字线和多个位线形成的存储单元的阵列,以及针对存储器装置1311和1319的操作可以在页单元或块单元的存储区上执行。然而,如参照图1所描述,存储器装置1311和1319中的每一个的类型和配置可以被不同地改变或修改。
可以基于被称为“地址”的值来识别和指示存储区。写入数据可以被存储在由地址指示的存储区中,并且可以从由地址指示的存储区中输出读取数据。
主机1100a可以向存储装置1300a提供地址ADDR,以交换关于存储器装置1311和1319的特定存储区的数据。存储装置1300a可以基于从主机1100a接收的地址ADDR和请求(例如,命令CMD),来控制存储器装置1311和1319。
同时,由主机1100a处理的地址ADDR可以不同于指示存储器装置1311和1319中的存储区的地址。例如,由主机1100a处理的地址ADDR可以被称为“逻辑地址”,而存储器装置1311和1319的地址可以被称为“物理地址”。存储装置1300a可以执行由主机1100a处理的逻辑地址与存储器装置1311和1319的物理地址之间的地址转换,以适当地控制存储器装置1311和1319。
控制器1330a可以控制存储装置1300a的整体操作。例如,控制器1330a可以调度存储器装置1311和1319的操作,或者可以对存储装置1300a中处理的信号/数据进行编码和解码。例如,控制器1330a可以控制存储器装置1311和1319,使得存储器装置1311和1319存储或输出数据。
控制器1330a可以包括被配置为执行上面描述以及将在下面描述的一些操作的一个或多个硬件组件(例如,模拟电路和/或逻辑电路等等)。另外,控制器1330a可以包括一个或多个处理核。上面描述的以及将在下面描述的控制器1330a的一些操作可以用软件和/或固件的程序代码来实现,并且控制器1330a的(一个或多个)处理核可以执行程序代码的指令集。控制器1330a的(一个或多个)处理核可以处理各种算术运算和/或逻辑运算以执行指令集。
缓冲存储器1350a可以缓冲在存储装置1300a的操作中使用的数据。例如,缓冲存储器1350a可以暂时存储由控制器1330a引用的数据。例如,缓冲存储器1350a可以包括易失性存储器(诸如,静态RAM(SRAM)、DRAM和/或SDRAM等)和/或非易失性存储器(诸如闪存、PRAM、MRAM、ReRAM和/或FRAM等)。
在图2的示例配置中,控制器1330a的处理核可以介入在存储装置1300a中执行的各种操作,包括传输写入数据和读取数据。另外,缓冲存储器1350a可以存储针对控制器1330a的操作所引用的各种元数据以及要存储在存储器装置1311和1319中的写入数据以及从存储器装置1311和1319输出的读取数据。因此,可以理解的是,利用“集中式架构”(例如,其根据控制器1330a的控制被中心化)来实现图2的示例存储装置1300a。
II-B.多流和存储区域的管理
图3是用于描述根据一些示例实施例是图2的存储器装置1310的示例配置的框图。图4和图5是用于描述根据一些示例实施例的图2的存储器装置1310的示例配置的概念图。例如,将描述存储装置1300a包括四个存储器装置1311、1312、1313和1319。然而,提供这个示例是为了便于理解,并且存储器装置的数量可以被不同地改变或修改。
在一些示例实施例中,存储装置1300a可以根据多流方案来管理数据流。例如,流可以与数据特性相关联。主机1100a可以通过一个流将具有相同或相似特性的若干条数据传输到存储装置1300a。另一方面,主机1100a可以通过不同的流将具有不同特性的若干条数据传输到存储装置1300a。
例如,***数据可以通过一个流与用户数据分开来传输。例如,在同一时间段内生成的若干条数据可以通过一个流与在不同时间段内生成的数据分开来传输。例如,由同一用户生成的若干条数据可以通过一个流与由不同用户生成的数据分开来传输。这些只是与数据特性相关的一些示例,并且可以基于诸如主机1100a和存储装置1300a的操作策略和/或用户意图等各种因素来改变或修改数据特性。
可以基于分配给数据的流标识符来处理流。可以基于数据特性来不同地分配流标识符。例如,参照图3,由数字标记的阴影正方形可以表示具有所标记数字的流标识符的写入数据。例如,具有流标识符“1”的若干条数据可以具有相同或相似的特性,并且流标识符为“1”的数据的特性可以不同于流标识符为“2”的数据的特性。
例如,将给出处理四个流标识符的描述。在这个例子中,控制器1330a可以考虑四个不同的数据特性来管理数据流。但是,提供这个例子是为了便于理解,并且特性和流标识符的数量可以被不同地改变或修改。
存储器装置1311、1312、1313和1319中的每一个可以包括存储区。例如,存储器装置1311可以包括存储区MA11至MA14。类似地,存储器装置1312、1313和1319可分别包括存储区MA21到MA24、存储区MA31到MA34以及存储区MA41到MA44。
例如,存储区MA11至MA14、MA21至MA24、MA31至MA34和MA41至MA44中的每一个可以对应于块大小区,并且本公开不限于该示例。存储区MA11到MA14、MA21到MA24、MA31到MA34和MA41到MA44可以被不同地改变或修改,从而彼此不重叠。存储区MA11到MA14、MA21到MA24、MA31到MA34和MA41到MA44可以具有相同的大小或不同的大小。
虽然图3示出了每个存储器装置全都包括四个存储区,但是本公开不限于图3所示。每个存储器装置中包括的存储区的大小和数量可以被不同地改变或修改。每个存储器装置中包括的存储区的大小和数量可以相同或不同。
存储器装置1311、1312、1313和1319中的每一个可以连接到多个通道CH1到CH4中的一个通道。因此,存储区MA11到MA14、MA21到MA24、MA31到MA34和MA41到MA44中的每一个可以连接到通道CH1到CH4中的一个。控制器1330a可以通过通道CH1至CH4与存储器装置1311、1312、1313和1319通信。通道CH1至CH4可以包括物理电路,诸如导线和缓冲电路,从而在控制器1330a与存储器装置1311、1312、1313和1319之间传输数据。
存储器装置1311、1312、1313和1319可以包括存储区域MR1至MR4。存储区域MR1至MR4中的每一个可以包括至少一个存储区。存储区域MR1至MR4可以彼此不重叠。因此,分别包括在存储区域MR1至MR4中的存储区可以不同。例如,存储区域MR1中包括的各存储区可以与包括在存储区域MR2中的各存储区不同。
存储装置1300a可以在不同的存储区域中分别存储通过不同流传输的若干条写入数据。另一方面,存储装置1300a可以将通过一个流传输来的若干条写入数据一起存储在相同的存储区域中。例如,具有流标识符“1”的若干条写入数据可以一起存储在存储区域MR1中。另一方面,具有流标识符“2”的写入数据可以被存储在与存储区域MR1分开的存储区域MR2中,并且可以不存储在存储区域MR1中。
因此,一个存储区域可以存储具有相同或相似特性的若干条写入数据。例如,具有第一特性的写入数据(例如,具有流标识符“1”的写入数据)可以仅存储在存储区域MR1中,并且具有第二特性的写入数据(例如,具有流标识符为“2”的写入数据)可以仅存储在存储区域MR2中。
根据这样的多流方案,可以在同一存储区域中一起管理具有相同或相似特性的若干条写入数据。因此,可以改善为写入数据分配新的存储区域的效率,并且因此可以改善写入操作的性能。另外,可以减少用于恢复无效数据的页和保护空闲页的垃圾收集操作的次数,所述垃圾收集操作,并且因此可以防止存储装置1300a的寿命迅速缩短。
存储区域MR1至MR4的配置可以被不同地改变或修改。存储区域MR1至MR4中的每一个可以包括从连接至同一通道的各存储区中选中的至少一个存储区。同时,存储区域MR1至MR4可以分别包括从连接到同一通道的各存储区中选中的不同的存储区。
例如,存储区域MR1可以包括连接到通道CH1的存储区MA11。当存储区MA11被包括在存储区域MR1中时,存储区MA11可以不被包括在存储区域MR2中。相反,存储区域MR2可以包括连接到通道CH1的存储区MA12。以这种方式,存储区域MR1至MR4可以彼此不重叠。
可以与全部或部分通道CH1至CH4相关联地选择包括在存储区域MR1至MR4中的每一个中的存储区。因此,存储区域MR1至MR4中的每一个可以包括分别连接至全部或部分通道CH1至CH4的各存储区。
例如,参照图4,存储区域MR1至MR4中的每一个可以包括与所有通道CH1至CH4相关联地选择的各存储区。例如,存储区域MR1可以包括分别连接到通道CH1、CH2、CH3和CH4的存储区MA11、MA21、MA31和MA41。
例如,参照图5,每个存储区域MR1a、MR3a和MR4a可以包括与通道CH1至CH4中的一些相关联地选择的各存储区。例如,存储区域MR1a可以包括分别连接到通道CH1和CH2的存储区MA11和MA21,并且可以不包括与通道CH3和CH4相关联地选择的任何存储区。同时,存储区域MR2a可以包括与所有通道CH1至CH4相关联地选择的各存储区。
存储区域MR1a至MR4a中的每一个可以包括连接至同一通道的至少一个存储区。例如,存储区域MR1a可以包括连接到通道的一个存储区。另一方面,存储区域MR2a、MR3a和MR4a中的每一个可以包括连接到同一通道的多个存储区。例如,存储区域MR1a可以包括连接到通道CH1的一个存储区MA11,并且存储区域MR3a可以包括连接到通道CH1的两个存储区MA13和MA14。
图4和图5示出了存储区域MR1至MR4的一些可能的配置,并且存储区域MR1至MR4的配置可以被改变或修改为与图4和图5所示的不同。包括在每个存储区域MR1至MR4中的存储区可以彼此相邻,或者可以是不连续的。
存储区域MR1至MR4的配置可以静态地固定或者可以动态地改变。回到图3,控制器1330a可以选择或改变存储区域MR1至MR4的配置,并且可以设置或参照存储区域MR1至MR4的选中的配置或已改变的配置。
例如,控制器1330a可以监视具有特定流标识符的写入数据的量。例如,控制器1330a可以监视诸如存储无效数据的无效区域、可用空闲区或备用区、存储写入数据的使用区等的各存储区的分布。控制器1330a可以基于所监视的量和/或分布来改变存储区域MR1至MR4的属性,诸如大小和位置。例如,当通过垃圾收集改变各存储区的分布时,也可以改变存储区域MR1至MR4的属性。然而,提供这些示例是为了便于更好的理解,并不意图限制本公开。
控制器1330a可以接收写入数据流WD_S(例如,来自主机1100a)。写入数据流WD_S可以被理解为包括具有一个或多个流标识符的一系列写入数据的数据流。基于流标识符,包括在写入数据流WD_S中的写入数据可以被存储在存储区域MR1至MR4中的一个中。
缓冲存储器1350a可缓冲要存储在存储器装置1311、1312、1313和1319中的写入数据。控制器1330a可与缓冲存储器1350a和存储器装置1311、1312、1313和1319进行通信,使得写入数据被存储在存储器装置1311、1312、1313和1319中。控制器1330a可以控制存储器装置1311、1312、1313和1319,使得写入数据被存储在存储器装置1311、1312、1313和1313和1319中。将参照图7和图8来描述用于将写入数据存储在存储器装置1311、1312、1313和1319中的示例写入操作。
在一些示例实施例中,缓冲存储器1350a将被描述和示出为缓冲写入数据。然而,提供这些示例实施例是为了便于更好的理解,而不是为了限制本公开。在一些示例实施例中,写入数据可以被缓存在控制器1330a的内部存储器中或另一个辅助存储器中。
II-C.示例写入操作
图6是用于描述图2的存储装置1300a的示例写入操作的框图。
由控制器1330a接收的写入数据流WD_S可以包括一系列写入数据。包括在写入数据流WD_S中的写入数据可以被缓冲在缓冲存储器1350a中。例如,写入数据可以伴随逻辑地址。
此外,控制器1330a可以将逻辑地址转换成物理地址。物理地址可以指示存储器装置1311、1312、1313和1319上的特定存储区或特定存储区域的位置。控制器1330a可以为写入数据分配翻译后的物理地址。
在一些情况下,缓冲存储器1350a可以缓冲写入数据,直到所有流标识符的写入数据被完全缓冲或充分缓冲为止。例如,当处理四个流标识符时,如图6所示,缓冲存储器1350a可以缓冲写入数据,直到全部四个流标识符的写入数据被完全缓冲为止。
在所有流标识符的写入数据被充分缓冲之后,控制器1330a可以为写入数据分配物理地址。之后,在控制器1330a的控制下,写入数据可以被存储在由分配的物理地址指示的各个存储区中。所有流标识符的写入数据可以被并行地(例如同步地或同时地)或顺序地存储在由所分配的物理地址指示的各个存储区中。
可以基于存储在各个存储区中的写入数据的流标识符来管理存储区域MR1至MR4。例如,当流标识符为“1”的写入数据被存储在存储器装置1311的特定存储区中时,控制器1330a可以将该特定存储区作为存储区域MR1来管理。例如,可以在接收并存储具有流标识符“1”的写入数据之后确定存储区域MR1。以这种方式,可以在与流标识符对应的存储区域中包括的存储区中管理写入数据。
可以采用多流方案来有效地管理具有相同或相似特性的若干条写入数据。但是,在对全部流标识符的写入数据进行缓冲之前为某些流标识符的写入数据分配物理地址时,使用区的分布可能变得混乱,并且可能难以有效管理其他被忽视的流标识符的写入数据。因此,在缓冲所有流标识符的写入数据之后,分配各个存储区的物理地址以存储写入数据可以是有利的。
然而,当缓冲所有流标识符的写入数据时,缓冲存储器1350a中可能需要大量的资源。例如,可能需要对应于流标识符的数量地增加缓冲存储器1350a的容量,或者缓存器的数量可能需要与流标识符的数量一样多。这会降低管理存储装置1300a的效率,并且会增加制造存储装置1300a的成本。
图7是用于描述根据一些示例实施例的图2的存储装置1300a中执行的示例写入操作的框图。图8是描述根据一些示例实施例的图2的存储装置1300a中执行的示例写入操作的流程图。为了便于更好地理解,将一起描述图7和图8。
在一些示例实施例中,控制器1330a可以管理物理地址和流标识符之间的对应关系CR(图8的操作S110)。可以在控制器1330a接收到写入数据(或包括一系列写入数据的写入数据流WD_S)之前,预先管理对应关系CR。因此,可以在写入数据被缓冲在缓冲存储器1350a之前,预先管理对应关系CR。
例如,如图7所示,对应关系CR的信息可以被存储在缓冲存储器1350a中。然而,本公开不限于此,并且与图7所示不同,对应关系CR的信息可以被存储在控制器1330a的内部存储器或者存储器装置1311、1312、1313和1319中。控制器1330a可以访问对应关系CR的信息以进行后续操作。
在对应关系CR中,一个流标识符可以对应于指示一个存储区域的一个或多个物理地址。例如,可以管理一个流标识符以对应于指示包括在一个存储区域中的各存储区的各物理地址。例如,可以在对应关系CR中管理与第一特性相关联的流标识符“1”,以使其对应于与存储区域MR1相关联的物理地址,并且可以在对应关系CR中管理与第二特性相关联的流标识符“2”,以使其对应于与存储区域MR2相关联的物理地址。
然而,在一些示例实施例中,一个流标识符可以对应于指示多个存储区域的各物理地址,或者多个流标识符可以对应于指示一个存储区域的各物理地址。对应关系CR可以被不同地改变或修改,以有效地管理在一个或多个选定存储区域中具有相同或相似特性的多条数据。
考虑到可用区、无效区和使用区的分布和位置,控制器1330a可以适当地选择或设置对应关系CR。然而,控制器1330a可以在接收写入数据之前预先管理对应关系CR。在一些示例实施例中,如上所述,控制器1330a可以监视存储器装置1311、1312、1313和1319的状态以动态地改变存储区域MR1至MR4的属性(例如,大小和/或位置等)。因此,对应关系CR可以根据存储器装置1311、1312、1313和1319的操作而改变。
在准备对应关系CR之后,控制器1330a可以接收具有特定流标识符的写入数据(图8的操作S120)。在一些示例实施例中,控制器1330a可以基于对应关系CR为接收到的写入数据分配对应于特定流标识符的物理地址。控制器1330a可以控制存储器装置1311、1312、1313和1319,使得接收到的写入数据被存储在所分配的物理地址的存储区域中。因此,可以在与流标识符相对应的存储区域中管理写入数据。
例如,当控制器1330a接收到具有流标识符“1”的写入数据时,控制器1330a可参照对应关系CR,获得与流标识符“1”相对应的物理地址。所获得的物理地址可以指示存储区域MR1。控制器1330a可以将获得的物理地址分配给写入数据。在控制器1330a的控制下,接收到的写入数据可以被存储在所分配的物理地址的各存储区中,即,存储区域MR1中。
在一些情况下,由控制器1330a接收的写入数据的大小可以不同于由单次写入操作所存储的程序单元数据的程序单元大小。例如,可以执行一次写入操作,以将32千字节(KB)的程序单元数据存储在存储器装置1311、1312、1313和1319中,而主机1100a可以向存储装置1300a提供比程序单元大小小的4KB的写入数据。
在这种情况下,在控制器1330a的控制下,缓冲存储器1350a可以缓冲与特定流标识符相关联的多条写入数据,直到程序单元数据关于该特定流标识符被累积为止。例如,当接收到具有流标识符“1”的写入数据时,缓冲存储器1350a可以将接收到的写入数据与具有流标识符“1”的一条或多条其他写入数据一起缓冲。具有流标识符“1”的多条写入数据可以被缓冲,直到程序单元数据(即,程序单元的数据)关于流标识符“1”被累积为止。
控制器1330a可以判断是否关于特定流标识符累积了程序单元数据(图8的操作S130)。当未累积程序单元数据时(图8的操作S130的“否”),可以接收下一写入数据(图8的操作S120)。
当累积了程序单元数据时(图8的操作S130的“是”),控制器1330a可以为程序单元数据分配物理地址(图8的操作S140)。控制器1330a可以基于对应关系CR,来分配与程序单元数据的流标识符相对应的物理地址。例如,当关于流标识符“1”累积了程序单元数据时,控制器1330a可以基于对应关系CR,为程序单元数据分配指示存储区域MR1的物理地址。
之后,控制器1330a可以将程序单元数据传输到由基于对应关系CR分配的物理地址所指示的存储区域(图8的操作S150)。可以将程序单元数据传输到包括由分配的物理地址所指示的存储区的存储区域。例如,可以将关于流标识符“1”累积的程序单元数据传输到由存储区域MR1的所分配的物理地址指示的存储区。
因此,程序单元数据可以被存储在对应于流标识符的存储区域中。这里,一个程序单元数据可以包括具有特定流标识符的写入数据和具有相同流标识符的一条或多条其他写入数据。
在控制器1330a的控制下,具有相同流标识符的多条写入数据可一起被存储在同一存储区域中。控制器1330a可以与存储器装置1311、1312、1313和1319以及缓冲存储器1350a通信,使得包括多条写入数据的程序单元数据被存储在期望的存储区域中。
当使用对应关系CR时,可以在接收写入数据之前,预先确定将要存储具有特定流标识符的写入数据的存储区域。例如,在控制器1330a接收到具有流标识符“1”的写入数据和具有流标识符“2”的写入数据、然后被缓冲在缓冲存储器1350a中之前,可以预先确定存储区域MR1用来存储具有流标识符“1”的写入数据,以及可以预先确定存储区域MR2用来存储具有流标识符“2”的写入数据。
存储区域MR1至MR4以及对应关系CR可以被不同地改变或修改为适用于一起管理具有相同或相似特性的若干条写入数据。如上所述,可以静态地固定或者可以动态地改变存储区域MR1至MR4和对应关系CR。
与图6的示例不同,图7的示例写入操作不需要缓存所有流标识符的写入数据。因此,一旦接收(或缓冲)了具有特定流标识符(或包括写入数据的程序单元数据)的写入数据,就可以基于对应关系CR将该写入数据(或程序单元数据)传输到与特定流标识符相对应的存储区域。另外,无论流标识符的顺序或配置如何,一旦接收(或缓冲)了写入数据(或程序单元数据),就可以将其传输到存储区域MR1至MR4。
可以将具有特定流标识符的写入数据传输到存储器装置1311、1312、1313和1319,而不考虑具有其他流标识符的写入数据。例如,无论具有流标识符“2”的写入数据被控制器1330a接收到还是被缓存在缓冲存储器1350a中,可以基于对应关系CR将具有流标识符“1”的写入数据传输到存储区域MR1。
例如,控制器1330a可以控制缓冲存储器1350a和存储器装置1311、1312、1313和1319,使得具有流标识符“2”的写入数据基于对应关系CR而被存储在存储区域MR2中。类似地,可以将具有流标识符“2”的写入数据传输到存储器装置1311、1312、1313和1319的存储区域MR2,而不考虑具有流标识符“1”、“3”或“4”的写入数据。
根据图7的示例写入操作,所有流标识符的写入数据可能不会同时被完全缓冲,因此存储装置1300可以在小容量缓冲器中管理写入数据。例如,缓冲存储器1350a可以被实现为具有小容量,或者可以提供少量的缓冲存储器。可替换地,可以通过仅使用控制器1330a中的小容量的内部存储器来管理写入数据。因此,可以提高管理存储装置1300的效率,并且可以降低制造存储装置1300的成本。
II-D.补充
图9是描述关于图7和图8的示例写入操作的通过多个通道CH1到CH4的交叉存取的流程图。例如,在准备写入数据(图8的操作S120)或准备程序单元数据(图8的操作S130)之后,可以执行图9的交叉存取。
可以为写入数据或程序单元数据分配物理地址(操作S140)。为此,在一些示例实施例中,控制器1330a可以选择各通道CH1至CH4中的空闲通道(操作S141)。如果特定通道不是空闲的,则控制器1330a可以选择另一个空闲通道。控制器1330a可以为写入数据或程序单元数据分配与选中通道连接的存储区的物理地址(操作S143)。
之后,控制器1330a可以将写入数据或程序单元数据传输到所分配的物理地址的存储区(操作S150)。这里,可以通过选中的空闲通道传输写入数据或程序单元数据(操作S151)。因此,写入数据或程序单元数据可被存储在存储器装置1311、1312、1313和1319中。
例如,参照图7和图9,具有流标识符“1”的写入数据可以被存储在存储区域MR1中包括的各存储区之中的与通道CH1连接的存储区中。当通道CH1被占用时,通道CH1不会是空闲的。例如,通道CH2可以空闲而通道CH1不空闲。在这种情况下,控制器1330a可以选择通道CH2来传输具有流标识符“2”的写入数据。
控制器1330a可以为具有流标识符“2”的写入数据分配从包括在存储区域MR2中的各存储区之中的连接到通道CH2的存储区的物理地址。因此,具有流标识符“2”的写入数据可以通过空闲通道CH2来传输,并且可以被存储在所分配的物理地址的存储区中。
以这种方式,将来自控制器1330a的多条写入数据传输到存储器装置1311、1312、1313和1319可以通过通道CH1到CH4进行交叉存取。由于写入数据通过空闲通道传输,所以整个写入操作的性能可以得到改善。
图10是用于描述关于图7和图8的示例写入操作的时分多路传输的概念图。
例如,可利用具有频率f1的时钟同步控制器1330a对写入数据(例如,写入数据流WD_S)的接收。控制器1330a与存储器装置1311、1312、1313和1319之间的通信可以利用具有频率f2的时钟同步。
同时,控制器1330a与存储器装置1311、1312、1313和1319之间的通信可以通过通道CH1至CH4以交叉存取的方式执行。因此,为了改善交叉存取的性能,可以选择频率f1高于频率f2。
例如,频率f1可以对应于频率f2与通道CH1至CH4的数量的乘积。例如,当频率f2为0.8千兆赫兹(GHz)时,频率f1可以选择为约3.2(=0.8×4)GHz。在这种情况下,包括在写入数据流WD_S中的一系列写入数据可以并行分布至通道CH1至CH4(在相应的时分域(dividedtime domains)中传输一系列写入数据),从而提高交叉存取的性能。
可以由分离的时钟发生器电路提供具有频率f1和f2的时钟。在一些示例实施例中,时钟发生器电路可以基于控制器1330a和存储器装置1311、1312、1313和1319的操作来改变频率f1和f2。例如,当通道CH1至CH4中的一些空闲时,时钟发生器电路可以适当地降低频率f1。例如,当通过通道CH1至CH4传输的数据量增加时,时钟发生器电路可以增加频率f1。
同时,在一些示例实施例中,频率f1可以被选择为与频率f2相同。在这样的示例实施例中,写入数据流WD_S的数据宽度(例如,数据位数)可以大于通过通道CH1至CH4中的每一个传输的数据的数据宽度。例如,写入数据流WD_S的数据宽度可以对应于通道CH1至CH4的数量与通过通道CH1至CH4中的每一个传输的数据的数据宽度的乘积。
例如,当通过通道CH1至CH4中的每一个传输的数据包括8位时,写入数据流WD_S的数据宽度可以是32(=8×4)位。在这样的示例实施例中,当通过相应通道传输数据时,可以在与通道数量成反比的时间段内启用针对通道CH1至CH4中的每一个的时钟。
已经参照图3至图10描述了基于与不同数据特性相关联的流标识符的多流方案。然而,本公开不限于以上描述,并且类似的实施方式可以用于单个流。
例如,控制器1330a可以管理第一写入数据与预先确定的指示用来存储所述第一写入数据的存储区域的物理地址之间的对应关系。可以在接收到第一写入数据之前,预先管理该对应关系。
不管是否接收到第二写入数据,可以基于对应关系将第一写入数据传输到预先确定的存储区域。控制器1330a可以控制存储器装置,使得第一写入数据被存储在预先确定的存储区域中。基于诸如主机1100a和存储装置1300a的操作策略和/或用户意图等的各种因素,可以预先确定要存储第一写入数据的存储区域。
III-A.硬件自动化架构
图11是示出图1的存储装置1300的示例配置的框图。图1的电子***1000可以包括图11的电子***1000b。图1的存储装置1300可以包括图11的存储装置1300b。
将图11与图2进行比较,在一些示例实施例中,存储装置1300b可以包括控制器1330b和缓冲存储器1350b。控制器1330b可以通过多个通道CHs与一个或多个存储器装置1310通信。控制器1330b可以包括将参照图12和图19描述的主机接口层1331a、存储器接口层1332、写入管理电路1333、读取管理电路1335、数据域管理电路1337和处理器1339。
存储装置1300b可以用“硬件自动化架构”来实现。存储装置1300b可以通过专用硬件电路来管理简单作业,而不是完全依赖于处理器1339的控制。专用硬件电路管理相对频繁地执行的简单作业,而不需要处理器1339的介入,因此可以提高存储装置1300b的效率和性能。
缓冲存储器1350b可以缓冲在存储装置1300b的操作中使用的数据。例如,缓冲存储器1350b可以暂时存储由控制器1330b引用的数据。然而,缓冲存储器1350b可以不存储待存储在存储器装置1311和1319中的写入数据或不读取从存储器装置1311和1319输出的数据,这将在下面描述。相反,可以提供缓冲存储器1350b作为辅助存储器,用于存储要由控制器1330b引用的元数据。例如,缓冲存储器1350b可以包括诸如SRAM、DRAM和/或SDRAM等的易失性存储器和/或诸如闪存、PRAM、MRAM、ReRAM和/或FRAM等的非易失性存储器。
关于图11没有描述的其他部件可以配置为与参照图2至图10所述的那些基本相同并且与参照图2至图10所述的那些基本相同地操作。为了简洁起见,下面将省略多余的描述。
图12和图13是用于描述根据一些示例实施例的图11的存储装置1300b的示例操作的框图。参照图12和图13,控制器1330b可以包括第一类型作业管理电路HW和处理器1339。
例如,第一类型作业管理电路HW可以包括图11的写入管理电路1333、读取管理电路1335和数据域管理电路1337。第一类型作业管理电路HW可以管理与存储器装置1311和1319相关联的第一类型作业。处理器1339可以处理与存储器装置1311和1319相关联的第二类型作业。例如,第一类型作业可以包括比第二类型作业更频繁执行的简单作业。
例如,第一类型作业可以包括对存储器装置1311和1319中的第一单元大小的存储区执行的操作。例如,第一单元大小可以包括页单元大小。例如,第一类型作业可以包括一般操作,诸如用于在存储器装置1311和1319中存储写入数据的写入操作和/或用于从存储器装置1311和1319输出读取数据的读取操作等。
例如,第二类型作业可以包括对存储器装置1311和1319中的第二单元大小的存储区执行的操作。第二单元大小可以与第一单元大小不同,例如,第二单元大小可以包括块/子块/超级块单元大小。例如,第二类型作业可以包括管理操作,诸如垃圾收集、损耗均衡、断电保护等。
将在以下描述中描述基于上述示例的示例实施例。然而,提供这样的示例实施例是为了便于更好的理解,而不是为了限制本公开。第一类型作业可以被不同地改变或修改以管理频繁执行的简单作业,而无需处理器1339的介入。另外,第二类型作业可以被不同地改变或修改以在处理器1339的控制下管理复杂作业。第一单元大小和第二单元大小也可以被不同地改变或修改,并且可以彼此相同。
图12示出了与第一类型作业相关联的操作。例如,第一类型作业可以包括由主机1100a请求的操作。可以根据包括在第一类型作业管理电路HW中的硬件电路的操作来管理第一类型作业,而不需要处理器1339的介入。
例如,当管理第一类型作业时,可以从所有操作(包括为数据分配缓冲区、缓冲数据、触发数据输入/输出、和/或控制数据输入/输出的路径等)中排除处理器1339的介入。虽然通常由第一类型作业管理电路HW管理第一类型作业,但是处理器1339可以不介入第一类型作业并且可以不与缓冲存储器1350b通信。
当第一类型作业包括写入操作时,第一类型作业管理电路HW可以将从主机1100a接收的写入数据传输到一个或多个存储器装置1310。当第一类型作业包括读取操作时,第一类型作业管理电路HW可将从一个或多个存储器装置1310输出的读取数据传输到主机1100a。可以以流PC_S的数据包单元来传输写入数据和读取数据。
同时,缓冲存储器1350b可以不存储待存储在一个或多个存储器装置1310中的写入数据或不读取从一个或多个存储器装置1310输出的数据。相反,可以在第一类型作业管理电路HW的内部缓冲器中管理写入数据和读取数据。
图13示出了与第二类型作业相关联的操作。例如,第二类型作业可以包括与主机1100a的请求无关地执行的操作。可以在处理器1339的控制下(例如,基于在处理器1339上执行的软件和/或固件的程序代码)处理第二类型作业。
例如,第一类型作业管理电路HW可以监视与一个或多个存储器装置1310和控制器1330b的操作相关联的状态。第一类型作业管理电路HW可基于监视的状态来管理用于触发处理器1339的介入的介入条件。例如,监视状态可以与是否关于第一类型作业(例如,写入操作和/或读取操作等)发生错误或异常相关联。例如,当发生与第一类型作业相关的错误或异常时,可以满足介入条件。
当满足介入条件同时处理器1339未介入第一类型作业时,第一类型作业管理电路HW可以向处理器1339提供包括监视状态的信息的通知。因此,第一类型作业管理电路HW可以向处理器1339通知介入条件得到满足。
响应于从第一类型作业管理电路HW接收到的通知,处理器1339可输出用于处理第二类型作业的管理命令。第一类型作业管理电路HW可以从处理器1339接收管理命令。第一类型作业管理电路HW可以执行由管理命令引导的第二类型作业。第二类型作业可以包括用于解决监视状态(例如,与第一类型作业相关联的错误或异常)的管理操作。
例如,第二类型作业可以包括针对一个或多个存储器装置1310的管理操作。第一类型作业管理电路HW可以与一个或多个存储器装置1310通信,以在处理器1339的控制下执行第二类型作业。
III-B.控制器和数据包的示例配置
图14是示出根据一些示例实施例的图11的控制器1330b的示例配置和示例操作的框图。
控制器1330b可以包括主机接口层1331a、存储器接口层1332、写入管理电路1333、读取管理电路1335、数据域管理电路1337和处理器1339。例如,写入管理电路1333、读取管理电路1335和数据域管理电路1337可以包括在图12和图13的第一类型作业管理电路HW中。
主机接口层1331a可以与主机1100a交互。例如,主机接口层1331a可以将从主机1100a接收的命令和数据转换为在控制器1330b中处理的格式。例如,主机接口层1331a可以将在控制器1330b中处理的数据转换成在主机1100a中处理的格式,并且可以将转换后格式的数据输出到主机1100a。
存储器接口层1332可以与一个或多个存储器装置1310交互。例如,存储器接口层1332可以将写入数据和相关命令转换为在一个或多个存储器装置1310中处理的格式。例如,存储器接口层1332可以将从一个或多个存储器装置1310接收到的读取数据转换为在控制器1330b中处理的格式。
写入管理电路1333可以管理第一类型作业。例如,写入管理电路1333可管理用于将写入数据存储在一个或多个存储器装置1310中的写入操作。在此示例中,写入管理电路1333可位于用于将从主机1100a接收的写入数据传输到一个或多个存储器装置1310的写入路径上。
读取管理电路1335可以管理第一类型作业。例如,读取管理电路1335可以管理用于将读取数据输出到控制器1330b的外部(例如,输出至主机1100a)的读取操作。在该示例中,读取管理电路1335可以在用于将从一个或多个存储器装置1310输出的读取数据传输到控制器1330b的外部的读取路径上。
针对执行第一类型作业,数据域管理电路1337可以获得一个或多个存储器装置1310中的至少一个的状态的信息、写入数据和/或读取数据。写入管理电路1333和读取管理电路1335可以执行第一类型作业,然后可以向数据域管理电路1337提供各种状态的信息。数据域管理电路1337可以基于所获得的信息,来监视与一个或多个存储器装置1310和控制器1330b的操作相关联的状态。
处理器1339可以包括一个或多个处理核。处理器1339可以根据处理核的操作来执行软件SW和/或固件FW的程序代码。处理器1330可以执行软件SW和/或固件FW的程序代码来处理第二类型作业。
可以以流的数据包单元来传输命令和数据。为此,在一些示例实施例中,主机接口层1331a可以包括打包器PCZ。打包器PCZ可以将从主机1100a接收的命令和数据与附加信息(例如,数据包的目的地、地址、流标识符和/或错误校验位等)组合以生成数据包PCW1或数据包PCR1。
当从主机1100a接收到写入命令和写入数据时,打包器PCZ可以生成包括头部(H)、数据部(D)和尾部(T)的数据包PCW1。例如,头部可以包括写入命令的信息,数据部可以包括写入数据。尾部可以包括适用于指示数据部结束的信息。
当从主机1100a接收到读取命令时,打包器PCZ可以生成包括头部(H)的数据包PCR1。头部可以包括读取命令的信息。关于读取操作可能没有接收到数据,因此在某些情况下,数据包PCR1可以不包括数据部和尾部。
打包器PCZ可以包括硬件电路,该硬件电路被配置为根据从主机1100a接收的命令和数据来生成数据包PCW1或数据包PCR1。将参照图15更全面地描述在控制器1330b中处理的数据包的示例配置。
写入管理电路1333可以包括第一内部缓冲器1333a和缓冲管理器1333b。写入管理电路1333可以接收数据包PCW1或数据包PCR1。当数据包PCW1或数据包PCR1的头部包括关于命令的信息时,写入管理电路1333可以参考头部来判断所接收的数据包是与写入操作有关还是与读取操作相关联。
当写入管理电路1333接收到与写入操作相关联的数据包PCW1时,第一内部缓冲器1333a可缓冲包含在数据包PCW1中的各种信息和写入数据。例如,第一内部缓冲器1333a可以包括诸如SRAM的存储器装置。缓冲器管理器1333b可管理第一内部缓冲器1333a的缓冲区的分配,使得当第一内部缓冲器1333a存储信息时不发生危险或冲突。
写入管理电路1333可以基于在第一内部缓冲器1333a中缓冲的写入数据,将数据包PCW2传输到存储器接口层1332。存储器接口层1332可以参考数据包PCW2的头部(H)来确定存储写入数据的存储区的物理地址。存储器接口层1332可以将写入数据传输到目标存储器装置,所述目标存储器装置包括所确定的物理地址的存储区。因此,写入数据可以被存储在一个或多个存储器装置1310中。
当执行写入操作时,写入管理电路1333可将从主机1100a接收的逻辑地址映射到物理地址。待映射的物理地址可以从由写入管理电路1333、数据域管理电路1337和/或处理器1339管理的可用物理地址的列表中选择。在一些示例实施例中,写入管理电路1333可考虑写入数据的特性或流标识符来获得待映射的物理地址。写入数据可以被存储在一个或多个存储器装置1310中的映射的物理地址的存储区中。
写入管理电路1333可以向数据域管理电路1337提供接收到的逻辑地址和映射的物理地址的信息。数据域管理电路1337可以管理缓冲存储器1350中的逻辑地址与物理地址之间的对应关系的信息。缓冲存储器1350可以存储对应关系的信息,作为第一元数据。将参照图16至图19进一步描述示例写入操作。
另一方面,当写入管理电路1333接收到与读取操作相关联的数据包PCR1时,写入管理电路1333可将数据包PCR1传输到数据域管理电路1337。例如,写入管理电路1333可以被配置为基于接收到的数据包的附加信息来将接收到的数据包进行路由。写入管理电路1333可以用作传输命令和数据的开关。
数据域管理电路1337可以参考存储在缓冲存储器1350中的第一元数据的对应关系,来获得与数据包PCR1对应的物理地址。即,当管理第一类型作业时,可以产生或引用第一元数据。数据域管理电路1337可以生成包括所获得的物理地址的信息的数据包PCR2。数据域管理电路1337可以将数据包PCR2传输到存储器接口层1332。
参照数据包PCR2的头部(H),存储器接口层1332可以将读取命令传输到目标存储器装置,所述目标存储器装置包括所获得的物理地址的存储区。因此,可以从目标存储器装置输出读取数据。存储器接口层1332可以将包括输出的读取数据(D)的数据包PCR3提供给读取管理电路1335。
读取管理电路1335可以包括第二内部缓冲器1335a。第二内部缓冲器1335a可以缓冲包括在数据包PCR3中的各种信息。例如,第二内部缓冲器1335a可以包括诸如SRAM的存储器装置。读取管理电路1335可以基于缓冲在第二内部缓冲器1335a中的读取数据,将数据包PCR4传输到主机接口层1331a。
主机接口层1331a可以将包括在数据包PCR4中的读取数据(D)传输到主机1100a。相应地,读取数据可以从一个或多个存储器装置1310输出到控制器1330b的外部。
写入管理电路1333、读取管理电路1335和数据域管理电路1337中的每一个可以包括被配置为执行上面描述并将在下面描述的操作的硬件电路。写入管理电路1333、读取管理电路1335和数据域管理电路1337可以在没有处理器1339介入的情况下自动处理第一类型作业。命令和数据可以以常规格式打包,因此写入管理电路1333、读取管理电路1335和数据域管理电路1337中的每一个的硬件电路可以在没有处理器1339介入的情况下,基于数据包的附加信息来管理流的数据包单元。
当正常管理第一类型作业时,处理器1339可以不介入第一类型作业。另外,处理器1339可以不介入以下操作:由打包器PCZ生成数据包并且沿着写入路径和读取路径传输流的数据包单元。另外,处理器1339可以不介入通过数据域管理电路1337将第一元数据存储在缓冲存储器1350中和通过数据域管理电路1337从缓冲存储器1350读取第一元数据。
当管理第一类型作业时,数据域管理电路1337可从写入管理电路1333和读取管理电路1335获得各种信息。所获得的信息可指示与一个或多个存储器装置1310和控制器1330b的操作相关联的各种状态,包括错误或异常。数据域管理电路1337可以基于所获得的信息来管理用于触发处理器1339的介入的介入条件。
当关于第一类型作业发生错误或异常时,在控制器1330b和/或存储装置1300b的操作中可能发生故障。但是,第一类型作业可能包括简单作业并且可能不适合解决错误或异常。可能需要第二类型作业来解决错误或异常,并且处理器1339可以介入对第二类型作业的处理。
例如,当针对于第一类型作业发生错误或异常时,可以满足介入条件。数据域管理电路1337可以向处理器1339提供通知以通知处理器1339介入条件得到满足。当没有接收到通知时,处理器1339可以不介入以下操作:对第一类型作业的管理、生成和传输数据包以及管理第一元数据。
另一方面,当接收到通知时,处理器1339可以向数据域管理电路1337提供管理命令以处理第二类型作业。管理命令可以指示在写入路径和/或读取路径中的至少一个上执行的管理操作。通知和管理命令可以包括在数据包PCC的头部(H)中。
处理器1339可以与缓冲存储器1350通信以处理第二类型作业。缓冲存储器1350可以存储第二元数据。当管理第二类型作业时,可以生成或引用第二元数据。也就是说,处理器1339可以将第二元数据存储在缓冲存储器1350中,或者可以读取存储在缓冲存储器1350中的第二元数据,以处理第二类型作业。
数据域管理电路1337可以响应于管理命令来执行第二类型作业。也就是说,当发生错误或异常(例如,关于第一类型作业)时,处理器1339可以介入,并且可以在处理器1339的控制下执行第二类型作业。当第二类型作业伴随有写入操作和/或读取操作时,数据域管理电路1337可以向写入管理电路1333和/或读取管理电路1335提供合适的命令。
根据硬件自动化架构,控制器1330b可以包括与第一类型作业相关联的数据域。另外,控制器1330b可以包括与第二类型作业相关联的控制域。写入管理电路1333和读取管理电路1335可以管理数据域中的第一类型作业,并且处理器1339可以处理控制域中的第二类型作业。数据域管理电路1337可以管理数据域中的第一类型作业,并且可以触发处理器1339在控制域中的介入。
在集中式架构中,包括写入数据和读取数据的所有的数据流可以集中到缓冲存储器1350a,并且处理器1339可以介入第一类型作业和第二类型作业两者。在这种情况下,存储装置(例如,存储装置1300a)的性能可取决于处理器1339的性能和缓冲存储器1350a的吞吐量。另一方面,在硬件自动化架构中,在处理器1339不介入的情况下通过单独的专用硬件电路管理简单作业可以减少处理器1339和缓冲存储器1350b的负载。
如图14所示,写入路径可以与读取路径物理分开。因此,可以并行地或同步地或同时地执行写入操作和读取操作。这可以进一步提高处理简单作业的性能。
在一些情况下,可在处理器1339处理第二类型作业的同时由专用硬件电路管理第一类型作业。也就是说,可以与处理第二类型作业同步或同时地管理第一类型作业,而不会因第二类型作业而受到干扰。第一类型作业可以由专用硬件电路管理,而不需要处理器1339的介入,因此第一类型作业可以与第二类型作业并行处理。
如上所述,缓冲存储器1350可以存储第一元数据和第二元数据。在一些示例实施例中,第一元数据可以与第二元数据分开存储(例如,用于存储第一元数据的存储区以不同于用于存储第二元数据的存储区)。在一些示例实施例中,只有数据域管理电路1337可以访问第一元数据和第二元数据两者,并且处理器1339可以仅通过数据域管理电路1337访问第二元数据。根据这样的示例实施例,即使第一元数据和第二元数据分别由数据域管理电路1337和处理器1339独立地管理,也可以保证第一元数据和第二元数据的一致性和完整性。
图15是示出根据一些示例实施例的图14的数据包的示例配置的概念图。
如参照图14所述,一个数据包可以包括头部、数据部和尾部。数据部可以包括写入数据或读取数据。
例如,头部可以包括路由信息、逻辑地址LPN的信息、物理地址PPN的信息、命令CMD的信息、流标识符信息和/或状态信息等。路由信息可以指示数据包的目的地,并且可以包括例如组件标识符或标记。
逻辑地址LPN可以包括从主机1100a接收的地址,并且物理地址PPN可以包括与逻辑地址LPN映射的物理地址。命令CMD可以指示由数据包请求的操作的类型。流标识符信息可以指示包括在数据部中的写入数据的流标识符。状态信息可以指示与一个或多个存储器装置1310和控制器1330b的操作相关联的状态(例如,与错误或异常相关联的状态)。
然而,一个数据包的头部可不包括在图15所示的至少一个信息项。例如,物理地址PPN的信息可以不包括在从主机接口层1331a提供给写入管理电路1333的数据包(例如,PCW1)中。例如,状态信息可以不包括在为了将写入数据从主机1100a传输到一个或多个存储器装置1310而生成的数据包中或者为了将读取数据从一个或多个存储器装置1310传输到主机1100a而生成的数据包中。根据数据包的目的,头部的配置可以被不同地改变或修改。
尾部可以包括适合于指示数据部结束的信息。例如,尾部可以包括完整性/错误检查信息,诸如数据完整性特征(DIF)、数据完整性扩展(DIX)和/或循环冗余校验(CRC)等。然而,本公开不限于此,尾部可以被配置为包括其他信息。
一个数据包可以包括头部、数据部和尾部的全部。可替换地,一个数据包可以不包括头部、数据部和/或尾部中的至少一个。
例如,为了将写入数据从主机1100a传输到一个或多个存储器装置1310而产生的数据包或者为了将读取数据从一个或多个存储器装置1310传输到主机1100a而产生的数据包可以包括头部、数据部和尾部的全部。例如,为了将读取命令从主机1100a传输到一个或多个存储器装置1310而产生的数据包、从数据域管理电路1337提供至处理器1339的通知数据包以及从处理器1339提供至数据域管理电路1337的管理命令数据包可以仅包括头部。
然而,提供上述实施例是为了便于更好的理解,并非旨在限制本公开。数据包配置可以被不同地改变或修改,以由单独的硬件电路来自动管理第一类型作业,而无需处理器1339的介入。
III-C.示例写入操作
图16至图18是用于描述根据一些示例实施例的在图11的存储装置1300b中执行的示例写入操作的框图。图19是描述根据一些示例实施例的在图11的存储装置1300b中执行的示例写入操作的流程图。为了便于理解,将一起参照图16至图19。
参照图18,写入管理电路1333可以管理物理地址和流标识符之间的对应关系(图19的操作S305)。可以与参照图7和图8描述的对应关系CR基本相同地来管理上述对应关系。存储区域MR1至MR4可以被配置为与参照图3至图5所述的基本相同。
例如,在对应关系中,流标识符“1”可以对应于指示存储区域MR1的物理地址,并且流标识符“2”可以对应于指示存储区域MR2的物理地址。可以在控制器1330b接收写入数据之前,预先管理上述对应关系。
参照图16,主机接口层1331a可以接收来自主机1100a的写入命令和写入数据(图19的操作S310)。写入数据可以具有特定的流标识符。
打包器PCZ可以打包写入命令和写入数据(图19的操作S320)。例如,打包器PCZ可以将写入命令和写入数据与附加信息组合以生成数据包PCW1。例如,数据包PCW1的头部(H)可以包括写入命令逻辑地址和流标识符的信息,并且数据包PCW1的数据部(D)可以包括写入数据。数据包PCW1可以被提供给写入管理电路1333。
在一些情况下,数据包PCW1的头部可以包括诸如数据类型、数据配置和/或异常等的信息。写入管理电路1333可以基于包PCW1中包括的信息来判断是否管理各个信息以及如何管理各个信息。
参照图17,例如,缓冲管理器1333b可以管理缓冲索引和逻辑地址。缓冲索引可以指示第一内部缓冲器1333a的每个缓冲区的位置。例如,当与逻辑地址“0xA8”相关联的写入数据D1被缓冲在缓冲索引“1”的缓冲区中时,缓冲管理器1333b可以管理缓冲索引和逻辑地址,使得缓冲索引“1”对应于逻辑地址“0xA8”。
例如,缓冲器管理器1333b可以包括用于存储缓冲索引和逻辑地址的存储器装置。可替换地,缓冲管理器1333b可以使用第一内部缓冲器1333a的部分存储区来管理缓冲索引和逻辑地址。
第一内部缓冲器1333a可以将写入数据缓冲在每个缓冲索引的缓冲区中。图17示出了仅在每个缓冲索引的缓冲区中管理写入数据。然而,在一些示例实施例中,第一内部缓冲器1333a可以进一步管理与相应写入数据相关联的其他信息(例如,逻辑地址、命令和/或流标识符等)。
当写入管理电路1333接收到数据包PCW1时,缓冲管理器1333b可响应于数据包PCW1来检查第一内部缓冲器1333a的状态。例如,缓冲管理器1333b可以检查在接收到的数据包PCW1中包括的逻辑地址是否已经被管理。因此,缓冲管理器1333b可以管理关于接收相同地址的风险或冲突(图19的操作S330)。
同时,在一些情况下,从主机1100a接收到的写入数据的大小可能与通过一次写入操作存储的程序单元数据的程序单元大小不同。在这种情况下,第一内部缓冲器1333a可以缓冲多条写入数据,直到关于特定流标识符累积了程序单元数据为止(图19的操作S340)。
当累积程序单元数据时,写入管理电路1333可以将可用物理地址分配给程序单元数据(图19的操作S350)。因此,与程序单元数据的每条写入数据相关联的逻辑地址可以被映射到物理地址。可以从可用物理地址的列表中选择要分配的物理地址,所述可用物理地址由写入管理电路1333、数据域管理电路1337和/或处理器1339管理。
然而,可以基于写入数据的流标识符和对应关系来选择要分配的物理地址。回到图18,缓冲管理器1333b可以管理流标识符和物理地址之间的对应关系。对应关系可以被存储在缓冲管理器1333b和/或第一内部缓冲器1333a的存储器装置中。
例如,当与数据包PCW1相关联的程序单元数据具有流标识符“1”时,可以基于对应关系为程序单元数据分配存储区域MR1的可用物理地址。相应地,数据包PCW2的头部(H)可以包括物理地址的信息,其指示包括在存储区域MR1中的存储区。
返回到图16,写入管理电路1333可以将数据包PCW3提供给数据域管理电路1337。数据包PCW3的头部(H)可以包括与写入地址相关联的逻辑地址和分配的物理地址的信息。因此,数据域管理电路1337可以基于接收到的数据包PCW3来管理逻辑地址和物理地址之间的对应关系。数据域管理电路1337可以管理第一元数据MD1中的对应关系(图19的操作S360)。缓冲存储器1350b可以存储第一元数据MD1。
写入管理电路1333可以为程序单元数据准备数据包PCW2(图19的操作S360)。数据包PCW2可以包括程序单元数据和指示所分配的物理地址的附加信息。写入管理电路1333可以将数据包PCW2传输到存储器接口层1332。因此,写入数据和写入命令可以沿着写入路径通过写入管理电路1333以流的数据包单元来传输。
可以将程序单元数据和分配的物理地址传输到一个或多个存储器装置1310(图19的操作S370)。可以将包括在程序单元数据中的写入数据传输到由分配的物理地址指示的存储区域。因此,写入管理电路1333可以管理写入操作,使得写入数据基于对应关系而被存储在与流标识符对应的存储区域中。
例如,返回到图18,可以基于该对应关系通过写入管理电路1333将具有流标识符“1”的写入数据(或程序单元数据)传输到存储区域MR1。这里,可以将具有流标识符“1”的写入数据(或程序单元数据)传输到存储区域MR1,而不管控制器1330b是否接收到具有流标识符“2”、“3”或“4”的写入数据。因此,可以不在同时完全缓冲所有流标识符的写入数据,并且因此第一内部缓冲器1333a可以被实现为具有小容量。
在一些示例实施例中,控制器1330b与一个或多个存储器装置1310之间通过多个通道CH的通信可采用图9的交叉存取和/或图10的时分多路传输。在一些示例实施例中,可以对单个流采用类似于图16至图19的示例写入操作的实施方式。在这些示例实施例中,可以进一步改善写入操作的性能。
III-D.补充
图20是示出图1的存储装置1300的示例配置的框图。图1的电子***1000可以包括图20的电子***1000c。图1的存储装置1300可以包括图20的存储装置1300c。
将图20与图11和图14相比较,在一些示例实施例中,打包器PCZ可以被包括在主机1100b中,而不包括在控制器1330c的主机接口层1331b中。打包器PCZ可以基于在主机1100b中生成的命令CMD、数据DAT和地址ADDR来生成数据包。因此,控制器1330c可以与主机1100b交换数据包PCW或PCR,并且可以基于数据包PCW或PCR管理第一类型作业。
关于图20没有描述的其他部件可以被配置与参照图11至图19所述的那些基本相同并且与与参照图11至图19所述的那些基本相同地操作。为了简洁起见,将省略多余的描述。
如在本领域中传统的那样,可以根据执行所描述的一个或多个功能的模块来描述和示出各实施例。这些模块(可在本文中被称为单元或模块等)通过诸如逻辑门、集成电路、微处理器、微控制器、存储电路、无源电子部件、有源电子部件、光学部件、硬布线电路等的模拟电路和/或数字电路来物理上实现,并且可以可选地由固件和/或软件驱动。这些电路可以例如实施在一个或多个半导体芯片中或诸如印刷电路板等的基板支撑件上。构成模块的电路可以由专用硬件或由处理器(例如,一个或多个已编程的微处理器和相关联的电路)来实现,或者通过执行模块的一些功能的专用硬件和执行模块的其他功能的处理器的组合来实现。在不脱离本公开的范围的情况下,各实施例的每个模块可以物理地分成两个或更多个相互作用和分离的模块。类似地,在不脱离本公开的范围的情况下,各实施例的模块可以物理地组合成更复杂的模块。
以上描述旨在提供用于实现本公开的示例配置和操作。除了上述示例实施例之外,本公开的范围和精神可以包括通过简单地改变或修改上述示例实施例而获得的各实施方式。此外,本公开的范围和精神包括通过随后容易地改变或修改上述示例实施例来实现的各实施方式。
Claims (22)
1. 一种存储装置,包括:
包括存储区域的非易失性存储器;以及
控制器,其配置为:
通过多个通道与所述非易失性存储器通信;
管理物理地址与流标识符之间的对应关系,所述物理地址指示所述存储区域,在所述控制器接收到第一写入数据之前所述对应关系被预先管理;以及
控制所述非易失性存储器,使得所述第一写入数据被存储在所述存储区域之中的第一存储区域中,与所述对应关系中的所述第一写入数据的第一流标识符相对应地管理所述第一存储区域的物理地址,其中
无论所述控制器是否接收到具有第二流标识符的第二写入数据,基于所述对应关系将所述第一写入数据传输到所述非易失性存储器,
其中,所述非易失性存储器中的每一个包括各自对应于所述非易失性存储器上的块大小区的存储区,并且连接到所述多个通道中的一个通道,每个通道包括物理电路以在所述控制器与所述非易失性存储器中的与该通道连接的一个非易失性存储器之间传输数据,并且
所述存储区域中的每一个包括分别连接到所述多个通道中的全部通道或一些通道的存储区,
其中,所述控制器监视具有特定的流标识符的写入数据的量,并且基于所监视的量来动态地改变存储区域的大小,并且
所述控制器包括用于管理第一类型作业的专用硬件电路和用于管理第二类型作业的处理器,所述第一类型作业包括对所述非易失性存储器中的第一单元大小的存储区执行的操作,所述第二类型作业包括对所述非易失性存储器中的第二单元大小的存储区执行的操作。
2.根据权利要求1所述的存储装置,其中,所述存储区域分别包括从与相同通道连接的存储区中选择的不同的存储区。
3.根据权利要求1所述的存储装置,其中,所述对应关系根据所述非易失性存储器的操作而变化。
4.根据权利要求1所述的存储装置,其中,当所述第一写入数据的大小小于程序单元大小时,所述第一写入数据与具有所述第一流标识符的一条或多条其他写入数据一起存储在所述第一存储区域中。
5. 根据权利要求1所述的存储装置,其中:
所述控制器还配置为控制所述非易失性存储器,使得所述第二写入数据被存储在所述存储区域之中的第二存储区域中,与所述对应关系中的所述第二流标识符相对应地管理所述第二存储区域的物理地址,并且
包括在所述第二存储区域中的存储区与包括在所述第一存储区域中的存储区不同。
6.根据权利要求5所述的存储装置,其中,无论所述控制器是否接收到具有第三流标识符的第三写入数据,基于所述对应关系将所述第二写入数据传输到所述非易失性存储器。
7.一种存储装置,包括:
包括存储区域的非易失性存储器;
缓冲存储器,其配置为缓冲数据;以及
控制器,其配置为与所述非易失性存储器和所述缓冲存储器进行通信,使得第一写入数据和第二写入数据被存储在所述非易失性存储器中,其中:
具有第一特性的第一写入数据被存储在所述非易失性存储器的存储区域之中的第一存储区域中,并且具有第二特性的第二写入数据被存储在所述非易失性存储器的存储区域中的第二存储区域中,并且
不管所述第二写入数据是否被缓冲在所述缓冲存储器中,将所述第一写入数据传输到所述非易失性存储器,
其中,所述控制器还配置为通过多个通道与所述非易失性存储器通信,每个通道包括物理电路以在所述控制器与所述非易失性存储器中的与该通道连接的所述非易失性存储器通信中的一个之间传输数据,
所述非易失性存储器中的每一个包括各自对应于所述非易失性存储器上的块大小区的存储区,并且
所述第一存储区域和第二存储区域中的每一个包括分别连接到所述多个通道中的全部通道或一些通道的存储区,
其中,所述控制器监视具有特定特性的写入数据的量,并且基于所监视的量来动态地改变存储区域的大小,并且
所述控制器包括用于管理第一类型作业的专用硬件电路和用于管理第二类型作业的处理器,所述第一类型作业包括对所述非易失性存储器中的第一单元大小的存储区执行的操作,所述第二类型作业包括对所述非易失性存储器中的第二单元大小的存储区执行的操作。
8.根据权利要求7所述的存储装置,其中,在所述第一写入数据和所述第二写入数据被缓存在所述缓冲存储器之前,所述第一存储区域被预先确定用来存储具有所述第一特性的写入数据,并且所述第二存储区域被预先确定用来存储具有所述第二特性的写入数据。
9.根据权利要求7所述的存储装置,其中,所述控制器还配置为:在所述第一写入数据和所述第二写入数据被缓冲在所述缓冲存储器之前,预先管理对应关系,使得与所述第一特性相关联的第一流标识符对应于指示所述第一存储区域的物理地址,以及与所述第二特性相关联的第二流标识符对应于指示所述第二存储区域的物理地址。
10.根据权利要求7所述的存储装置,其中,当所述第一写入数据的大小小于程序单元大小时,所述缓冲存储器还配置为将所述第一写入数据与具有所述第一特性的一条或多条其他写入数据一起缓冲,直到与所述第一特性相关联地累积所述程序单元大小的程序单元数据。
11.根据权利要求10所述的存储装置,其中,所述控制器还配置为与所述非易失性存储器和所述缓冲存储器进行通信,使得包括所述第一写入数据和所述一条或多条其他写入数据的所述程序单元数据被存储在所述第一存储区域中。
12.根据权利要求7所述的存储装置,其中,所述第一存储区域中包括的存储区与所述第二存储区域中包括的存储区不同。
13. 根据权利要求7所述的存储装置,其中:
所述第一写入数据被存储在所述第一存储区域中包括的存储区之中的与第一通道连接的存储区中,并且
当所述第一通道不空闲时,所述第二写入数据被存储在所述第二存储区域中包括的存储区之中的与第二通道连接的存储区中。
14.根据权利要求7所述的存储装置,其中,通过经由所述多个通道交叉存取来将多条写入数据从所述控制器传输至所述非易失性存储器。
15. 根据权利要求7所述的存储装置,其中:
所述控制器接收写入数据的时钟的第一频率高于用于所述控制器与所述非易失性存储器之间的通信的时钟的第二频率,并且
所述第一频率对应于所述第二频率与所述多个通道的数量的乘积。
16. 根据权利要求7所述的存储装置,其中:
由所述控制器接收到的写入数据的第一数据宽度大于经由所述多个通道中的每一个传输的数据的第二数据宽度,并且
所述第一数据宽度对应于所述第二数据宽度与所述多个通道的数量的乘积。
17. 一种存储装置,包括:
非易失性存储器,其包括存储区域;以及
控制器,其配置为控制所述非易失性存储器,使得第一写入数据被存储在所述存储区域之中的在接收到所述第一写入数据之前就预先确定用来存储所述第一写入数据的存储区域中,其中
无论是否接收到第二写入数据,将所述第一写入数据传输到所述非易失性存储器,
其中,所述非易失性存储器中的每一个包括各自对应于所述非易失性存储器上的块大小区的存储区,并且连接至多个通道中的一个,每个通道包括物理电路以在所述控制器与所述非易失性存储器中的与该通道连接的一个非易失性存储器之间传输数据,并且
所述存储区域中的每一个包括分别连接到所述多个通道中的全部通道或一些通道的存储区,
其中,所述控制器监视具有特定特性的写入数据的量,并且基于所监视的量来动态地改变存储区域的大小,并且
所述控制器包括用于管理第一类型作业的专用硬件电路和用于管理第二类型作业的处理器,所述第一类型作业包括对所述非易失性存储器中的第一单元大小的存储区执行的操作,所述第二类型作业包括对所述非易失性存储器中的第二单元大小的存储区执行的操作。
18. 根据权利要求17所述的存储装置,其中:
所述控制器还配置为:在所述控制器接收到所述第一写入数据之前,预先管理对应关系,使得所述第一写入数据的特性对应于指示所述存储区域的物理地址,并且
基于所述对应关系将所述第一写入数据传输到所述存储区域。
19.根据权利要求18所述的存储装置,其中,基于所述对应关系,将具有与所述第一写入数据的特性相同的特性的另一写入数据存储在所述存储区域中。
20.根据权利要求17所述的存储装置,其中,当所述第二写入数据的特性不同于所述第一写入数据的特性时,所述第二写入数据不存储在所述存储区域中。
21. 一种存储装置,包括:
包括存储区域的非易失性存储器;以及
控制器,其包括:
作业管理电路,其配置为管理写入操作,使得具有第一流标识符的第一写入数据被存储在所述非易失性存储器的存储区域之中的第一存储区域中,并且具有第二流标识符的第二写入数据被存储在所述非易失性存储器的存储区域之中的第二存储区域中,以及
处理器,其配置为进行管理操作,从而解决与所述写入操作相关联的错误或异常,其中:
所述作业管理电路还配置为在没有处理器介入的情况下管理写入操作,并且
无论所述控制器是否接收到所述第二写入数据,将所述控制器接收到的第一写入数据传输至所述非易失性存储器,
其中,所述非易失性存储器中的每一个包括各自对应于所述非易失性存储器上的块大小区的存储区,并且连接至多个通道中的一个,每个通道包括物理电路以在所述控制器与所述非易失性存储器中的与该通道连接的一个非易失性存储器之间传输数据,并且
所述存储区域中的每一个包括分别连接到所述多个通道中的全部通道或一些通道的存储区,
其中,所述控制器监视具有特定流标识符的写入数据的量,并且基于所监视的量来动态地改变存储区域的大小。
22.根据权利要求21所述的存储装置,其中,所述作业管理电路包括写入管理电路,所述写入管理电路配置为:在所述控制器接收到所述第一写入数据和所述第二写入数据之前,预先管理对应关系,使得所述第一流标识符对应于指示所述第一存储区域的物理地址,并且所述第二流标识符对应于指示所述第二存储区域的物理地址。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2017-0084233 | 2017-07-03 | ||
KR1020170084233A KR102398181B1 (ko) | 2017-07-03 | 2017-07-03 | 쓰기 데이터를 위해 할당될 물리 어드레스를 미리 관리하는 스토리지 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109213438A CN109213438A (zh) | 2019-01-15 |
CN109213438B true CN109213438B (zh) | 2024-06-04 |
Family
ID=64662250
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810620067.3A Active CN109213438B (zh) | 2017-07-03 | 2018-06-15 | 预先管理待分配给写入数据的物理地址的存储装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10635349B2 (zh) |
KR (1) | KR102398181B1 (zh) |
CN (1) | CN109213438B (zh) |
DE (1) | DE102018110704A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10838805B2 (en) * | 2018-02-23 | 2020-11-17 | Micron Technology, Inc. | Generating parity data based on a characteristic of a stream of data |
US20210019069A1 (en) * | 2019-10-21 | 2021-01-21 | Intel Corporation | Memory and storage pool interfaces |
CN111078602B (zh) * | 2019-12-27 | 2021-03-19 | 深圳大普微电子科技有限公司 | 一种闪存主控芯片及其控制方法、测试方法及存储设备 |
CN111930663B (zh) * | 2020-10-16 | 2021-01-05 | 南京初芯集成电路有限公司 | 一种带有超高速接口手机oled屏幕缓存芯片 |
CN112965669B (zh) * | 2021-04-02 | 2022-11-22 | 杭州华澜微电子股份有限公司 | 一种数据存储***及方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4873684A (en) * | 1985-05-29 | 1989-10-10 | Trio Kabushiki Kaisha | Method and apparatus for multiplexing of input signals having differing frequencies and demultiplexing same |
CN102103561A (zh) * | 2009-12-01 | 2011-06-22 | 三星电子株式会社 | 数据处理***中的异步扩展电路 |
CN102201262A (zh) * | 2010-03-26 | 2011-09-28 | 巴比禄股份有限公司 | 存储装置 |
CN102591589A (zh) * | 2010-11-15 | 2012-07-18 | 三星电子株式会社 | 数据存储设备、用户设备以及数据写方法 |
CN102667736A (zh) * | 2010-01-27 | 2012-09-12 | 株式会社东芝 | 存储器管理装置及存储器管理方法 |
CN105930094A (zh) * | 2015-02-27 | 2016-09-07 | 爱思开海力士有限公司 | 数据处理***及其操作方法 |
CN106131473A (zh) * | 2016-06-23 | 2016-11-16 | 深圳英飞拓科技股份有限公司 | 视频监控***的数据存储方法及装置 |
CN106354745A (zh) * | 2015-07-13 | 2017-01-25 | 三星电子株式会社 | 用于提供计算机装置的接口的方法和计算机装置 |
CN106575271A (zh) * | 2014-06-23 | 2017-04-19 | 谷歌公司 | 管理存储设备 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080235438A1 (en) * | 2007-03-20 | 2008-09-25 | Sony Corporation And Sony Electronics Inc. | System and method for effectively implementing a multiple-channel memory architecture |
EP2418584A1 (en) | 2010-08-13 | 2012-02-15 | Thomson Licensing | Method and apparatus for storing at least two data streams into an array of memories, or for reading at least two data streams from an array of memories |
US20130013889A1 (en) * | 2011-07-06 | 2013-01-10 | Jaikumar Devaraj | Memory management unit using stream identifiers |
DE202014105464U1 (de) | 2014-11-13 | 2016-02-16 | Kuka Systems Gmbh | Halteeinrichtung |
US20160283125A1 (en) | 2015-03-25 | 2016-09-29 | Kabushiki Kaisha Toshiba | Multi-streamed solid state drive |
US9760281B2 (en) | 2015-03-27 | 2017-09-12 | Intel Corporation | Sequential write stream management |
US9996302B2 (en) * | 2015-04-03 | 2018-06-12 | Toshiba Memory Corporation | Storage device writing data on the basis of stream |
US10013177B2 (en) | 2015-04-20 | 2018-07-03 | Hewlett Packard Enterprise Development Lp | Low write amplification in solid state drive |
US9799402B2 (en) | 2015-06-08 | 2017-10-24 | Samsung Electronics Co., Ltd. | Nonvolatile memory device and program method thereof |
KR20160144574A (ko) | 2015-06-08 | 2016-12-19 | 삼성전자주식회사 | 불휘발성 메모리 모듈 및 그것의 데이터 쓰기 방법 |
KR102527961B1 (ko) | 2015-07-02 | 2023-05-04 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 그것의 프로그램 방법 |
US20160357462A1 (en) | 2015-06-08 | 2016-12-08 | Samsung Electronics Co., Ltd. | Nonvolatile Memory Modules and Data Management Methods Thereof |
KR102397582B1 (ko) | 2015-06-22 | 2022-05-13 | 삼성전자주식회사 | 데이터 저장 장치, 이를 포함하는 데이터 처리 시스템, 및 이의 작동 방법 |
US11461010B2 (en) | 2015-07-13 | 2022-10-04 | Samsung Electronics Co., Ltd. | Data property-based data placement in a nonvolatile memory device |
KR102401600B1 (ko) * | 2015-08-31 | 2022-05-25 | 삼성전자주식회사 | 데이터 양에 기초하여 복수의 데이터 스트림을 관리하도록 구성되는 스토리지 장치 |
KR20170094815A (ko) | 2016-02-11 | 2017-08-22 | 삼성전자주식회사 | 비휘발성 메모리, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 읽기 방법 |
-
2017
- 2017-07-03 KR KR1020170084233A patent/KR102398181B1/ko active IP Right Grant
-
2018
- 2018-01-02 US US15/860,498 patent/US10635349B2/en active Active
- 2018-05-04 DE DE102018110704.8A patent/DE102018110704A1/de active Pending
- 2018-06-15 CN CN201810620067.3A patent/CN109213438B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4873684A (en) * | 1985-05-29 | 1989-10-10 | Trio Kabushiki Kaisha | Method and apparatus for multiplexing of input signals having differing frequencies and demultiplexing same |
CN102103561A (zh) * | 2009-12-01 | 2011-06-22 | 三星电子株式会社 | 数据处理***中的异步扩展电路 |
CN102667736A (zh) * | 2010-01-27 | 2012-09-12 | 株式会社东芝 | 存储器管理装置及存储器管理方法 |
CN102201262A (zh) * | 2010-03-26 | 2011-09-28 | 巴比禄股份有限公司 | 存储装置 |
CN102591589A (zh) * | 2010-11-15 | 2012-07-18 | 三星电子株式会社 | 数据存储设备、用户设备以及数据写方法 |
CN106575271A (zh) * | 2014-06-23 | 2017-04-19 | 谷歌公司 | 管理存储设备 |
CN105930094A (zh) * | 2015-02-27 | 2016-09-07 | 爱思开海力士有限公司 | 数据处理***及其操作方法 |
CN106354745A (zh) * | 2015-07-13 | 2017-01-25 | 三星电子株式会社 | 用于提供计算机装置的接口的方法和计算机装置 |
CN106131473A (zh) * | 2016-06-23 | 2016-11-16 | 深圳英飞拓科技股份有限公司 | 视频监控***的数据存储方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109213438A (zh) | 2019-01-15 |
US10635349B2 (en) | 2020-04-28 |
US20190004736A1 (en) | 2019-01-03 |
KR20190004402A (ko) | 2019-01-14 |
DE102018110704A1 (de) | 2019-01-03 |
KR102398181B1 (ko) | 2022-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109213438B (zh) | 预先管理待分配给写入数据的物理地址的存储装置 | |
CN110088723B (zh) | 用于对提交队列和完成队列进行处理并且做出仲裁的***和方法 | |
CN110088725B (zh) | 用于对提交队列和完成队列进行处理并做出仲裁的***和方法 | |
CN109213441B (zh) | 能够管理工作而无需处理器干预的存储装置 | |
KR102519904B1 (ko) | 영구 메모리 할당 및 구성 | |
CN110825319B (zh) | 基于块状态确定可用性的存储器***及操作方法 | |
CN110032332B (zh) | 存储设备和包括存储设备的电子设备 | |
JP6496626B2 (ja) | 異種統合メモリ部及びその拡張統合メモリスペース管理方法 | |
US20170075629A1 (en) | Preserving read look ahead data in auxiliary latches | |
US20190278518A1 (en) | Memory system and operating method thereof | |
US11372564B2 (en) | Apparatus and method for dynamically allocating data paths in response to resource usage in data processing system | |
US11645213B2 (en) | Data processing system allocating memory area in host as extension of memory and operating method thereof | |
CN111580747A (zh) | 用于ssd任务的主机定义的带宽分配 | |
US20190146926A1 (en) | Storage device and operating method of storage device | |
US20150193159A1 (en) | Storage device including nonvolatile semiconductor memory and managing method thereof | |
CN109753457B (zh) | 数据处理***及其操作方法 | |
CN110895447B (zh) | 控制器及其操作方法 | |
KR20150041873A (ko) | 데이터 처리 시스템 | |
US11995327B2 (en) | Data storage device and method for adaptive host memory buffer allocation based on virtual function prioritization | |
US11768628B2 (en) | Information processing apparatus | |
US10977198B2 (en) | Hybrid memory system interface |
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 |