CN106951180A - 数据存储装置以及包括数据存储装置的数据处理系统 - Google Patents
数据存储装置以及包括数据存储装置的数据处理系统 Download PDFInfo
- Publication number
- CN106951180A CN106951180A CN201611204422.6A CN201611204422A CN106951180A CN 106951180 A CN106951180 A CN 106951180A CN 201611204422 A CN201611204422 A CN 201611204422A CN 106951180 A CN106951180 A CN 106951180A
- Authority
- CN
- China
- Prior art keywords
- controller
- firmware
- volatile memory
- extending transversely
- complete
- 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
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/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
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
公开了一种数据存储装置以及包括数据存储装置的数据处理系统。数据存储装置包括第一非易失性存储器装置、第一横向扩展存储器和第一控制器。第一控制器被配置为:控制第一易失性存储器装置和第一横向扩展存储器,并执行第一固件。第一横向扩展存储器包括第二易失性存储器装置、第一非易失性存储器装置和第二控制器。第二控制器被配置为:控制器第二易失性存储器装置和第一非易失性存储器装置,并执行第二固件。第一控制器在由第二控制器完成第二固件的启动之后启动第一固件。
Description
本申请要求于2016年1月7日提交到韩国知识产权局的第10-2016-0002310号韩国专利申请以及于2016年1月22日提交到韩国知识产权局的第10-2016-0008160号韩国专利申请的优先权,所述韩国专利申请的全部内容通过引用合并于此。
技术领域
本公开的实施例涉及一种数据存储装置。更具体地讲,本公开涉及一种利用使用不同固件的控制器执行固件的启动顺序和下载顺序的数据存储装置,并且涉及一种包括该数据存储装置的数据处理系统。
背景技术
存储器装置被用于存储数据并且被划分为易失性存储器装置和非易失性存储器装置。闪存装置是多个存储器单元在单个程序操作中被擦除或编程的电可擦可编程只读存储器(EEPROM)的示例。
为了增加包括非易失性存储器装置(例如,闪存装置)的传统驱动器的容量,非易失性存储器装置的数量被增加。当在驱动器中包括的非易失性存储器装置的数量增加时,包括用于将逻辑地址转换成物理地址的信息的映射表的容量(或大小)需要增加。然而,当考虑存储映射表的存储器的容量和存储器的处理速度时,非易失性存储器装置的数量不能被无限地增加。
纵向扩展(scale-up)或横向扩展(scale-out)被用于提高数据存储装置(例如,数据服务器)的数据处理性能。纵向扩展是通过增加数据服务器自身的容量来提高数据服务器的数据处理性能的方法,并被称为垂直扩展。横向扩展是通过增加连接的数据服务器的数量来提高包括数据服务器的系统的数据处理性能的方法,并被称为水平扩展。
当在具有横向扩展架构的数据存储装置中非易失性存储器装置的数量增加时,非易失性存储器装置与控制非易失性存储器装置的控制器之间的接口的加载容量提高。结果,数据存储装置的数据处理速度会减小。
发明内容
根据本公开的一方面,本公开的示例性实施例针对数据存储装置、第一易失性存储器装置、第一横向扩展存储器以及被配置为控制第一易失性存储器装置和第一横向扩展存储器并执行第一固件的第一控制器。第一横向扩展存储器包括第二易失性存储器装置、第一非易失性存储器装置和第二控制器。第二控制器被配置为:控制第二易失性存储器装置和第一非易失性存储器装置,并执行第二固件。第一控制器在由第二控制器完成第二固件的启动之后启动第一固件。
根据本公开的另一方面,数据存储装置还包括:电源管理集成电路,被配置为:在第二供应点向第一横向扩展存储器供应第二操作电压,并在第一供应点向第一控制器供应第一操作电压。第二供应点早于第一供应点。
根据本公开的另一方面,第一非易失性存储器装置包括第一块和第二块。第一块被配置为存储包括第二启动加载程序和第二固件的第二完整固件。第二块被配置为存储包括第一固件、第二启动加载程序和第二固件的第一完整固件。
根据本公开的另一方面,第一非易失性存储器装置包括多个存储器单元。每个存储器单元是二维存储器单元或者三维存储器单元。
根据本公开的另一方面,第二控制器响应于从第一控制器输出的第一物理读命令而将第二启动加载程序从第一块加载到第二控制器。第二控制器使用第二启动加载程序将第一完整固件从第二块发送到第一控制器。第二控制器还使用第二启动加载程序将第二固件从第一块加载到第二控制器。第一完整固件的传输中涉及的命令是包括第一物理读命令的第二物理读命令。
根据本公开的另一方面,第二控制器在不使用第二易失性存储器装置的情况下,将第二启动加载程序从第一块加载到第二控制器。第二控制器使用第二启动加载程序来初始化第二易失性存储器装置。第二控制器还经由第二易失性存储器装置将第一完整固件发送到第一控制器,并经由第二易失性存储器装置将第二固件加载到第二控制器。
根据本公开的另一方面,第一控制器将从第二控制器发送的第一完整固件存储在第一易失性存储器装置中。第一控制器还将其自身的操作模式从基于物理地址操作的物理模式改变到基于逻辑地址操作的逻辑模式。第一控制器将用于执行第二固件的执行命令发送到第二控制器。
根据本公开的另一方面,第二控制器响应于执行命令来执行第二固件,并将指示第二固件的执行的指示信号发送到第一控制器。第一控制器响应于指示信号来加载在存储在第一易失性存储器装置中的第一完整固件中包括的第一固件,并执行第一固件。
根据本公开的另一方面,执行第一固件的第一控制器将版本检查命令发送到第二控制器。第二控制器响应于版本检查命令将第二固件的版本信息发送到第一控制器。
根据本公开的另一方面,第一控制器从连接到第一控制器的外部装置接收包括第一固件、第二启动加载程序和第二固件的第一完整固件。第一控制器将第一完整固件存储在第一易失性存储器装置中。第一控制器还将其自身的操作模式从基于物理地址操作的物理模式改变到基于逻辑地址操作的逻辑模式。第一控制器还使用第一逻辑命令将第二启动加载程序发送到第二控制器。第二控制器使用第二启动加载程序初始化第二易失性存储器装置。
根据本公开的另一方面,第一控制器使用第二逻辑命令将第二完整固件发送到第二控制器。第二完整固件包括第二启动加载程序和第二固件。第二控制器经由第二易失性存储器装置将第二完整固件写入到第一非易失性存储器装置的第一块。第一控制器使用第三逻辑命令将第一完整固件发送到第二控制器。第二控制器经由第二易失性存储器装置将第一完整固件写入到第一非易失性存储器装置的第二块。
根据本公开的另一方面,第一控制器将指示执行第二固件的执行命令发送到第二控制器。第二控制器响应于执行命令加载并执行在存储在第二易失性存储器装置中的第二完整固件中包括的第二固件,并且将指示第二固件被执行的指示信号发送到第一控制器。第一控制器响应于指示信号来加载在存储在第一易失性存储器装置中的第一完整固件中包括的第一固件,并执行第一固件。
根据本公开的另一方面,外部装置是主机或者第二横向扩展存储器。第二横向扩展存储器包括第三易失性存储器装置、第二非易失性存储器装置和第三控制器。第二非易失性存储器装置被配置为存储第一完整固件。第三控制器被配置为控制第三易失性存储器装置和第二非易失性存储器装置。
根据本公开的另一方面,第一控制器包括第一通用输入/输出(GPIO)引脚,第二控制器包括第二GPIO引脚。第一GPIO引脚分别与第二GPIO引脚连接。第一控制器和第二控制器中的每一个控制器检查第一GPIO引脚中的一个引脚的状态,并确定数据存储装置的操作模式是启动模式还是下载模式。
根据本公开的另一方面,第一非易失性存储器装置包括第一块和第二块。第一块被配置为存储包括第二启动加载程序和第二固件的第二完整固件。第二块被配置为存储包括第一固件、第二启动加载程序和第二固件的第一完整固件。当操作模式是启动模式时,第二控制器将在第二块中存储的第一完整固件发送到第一控制器,将在第一块中存储的第二固件加载到第二控制器,响应于指示执行第二固件的执行命令来执行第二固件,并将指示第二固件被执行的指示信号发送到第一控制器。第一控制器响应于指示信号来下载在第一完整固件中包括的第一固件,并执行第一固件。
根据本公开的另一方面,第一非易失性存储器装置包括第一块和第二块。当操作模式是下载模式时,第一控制器从连接到第一控制器的外部装置接收第一完整固件。第一完整固件包括第一固件、第二启动加载程序和第二固件。第一控制器随后将第一完整固件存储在第一易失性存储器装置中,并将第二完整固件发送到第二控制器。第二完整固件包括第二启动加载程序和第二固件。第二控制器将第二完整固件写入到第一块。第一控制器将第一完整固件发送到第二控制器。第二控制器随后将第一完整固件写入到第二块,响应于从第一控制器输出的用于指示执行第二固件的执行命令来执行第二固件,并将指示第二固件被执行的指示信号发送到第一控制器。第一控制器响应于指示信号来下载在存储在第一易失性存储器装置中的第一完整固件中包括的第一固件,并执行第一固件。
根据本公开的一方面,本公开的示例性实施例针对一种数据存储装置。所述数据存储装置包括第一易失性存储器装置、多个横向扩展存储器以及被配置为控制第一易失性存储器装置和所述多个横向扩展存储器的第一控制器。每个横向扩展存储器包括第二易失性存储器装置、非易失性存储器装置和第二控制器。第二控制器被配置为控制第二易失性存储器装置和非易失性存储器装置。第一控制器执行第一固件。在每个横向扩展存储器中包括的第二控制器执行第二固件。第一控制器在由在各个横向扩展存储器中包括的每个第二控制器执行第二固件之后,执行第一固件。
根据本公开的一方面,本公开的示例性实施例针对一种数据处理系统。所述数据处理系统包括主机和连接到主机的数据存储装置。数据存储装置包括第一易失性存储器装置、横向扩展存储器和第一控制器。第一控制器被配置为:控制第一易失性存储器装置和横向扩展存储器,并执行第一固件。横向扩展存储器包括第二易失性存储器装置、非易失性存储器装置和第二控制器。第二控制器被配置为:控制第二易失性存储器装置和非易失性存储器装置,并执行第二固件。第一控制器在由第二控制器完成第二固件的启动之后,启动第一固件。
根据本公开的一方面,本公开的示例性实施例针对一种集成的数据存储系统。所述集成的数据存储系统包括:第一易失性存储器;横向扩展存储器,包括第二易失性存储器和第一非易失性存储器;主第一控制器,执行第一固件,并且被配置为控制第一易失性存储器和横向扩展存储器,其中,横向扩展存储器使用第二控制器来执行第二固件,并且第二控制器被配置为控制第二易失性存储器和第一非易失性存储器,其中,主第一控制器在第二控制器完成启动第二固件之后,被协调用于启动第一固件。
附图说明
通过参照附图详细描述示例性实施例,上面和其他的特征和优点将变得更加清楚,其中:
图1是根据本公开的一些实施例的数据处理系统的框图;
图2是图1中示出的数据存储装置的详细框图;
图3是根据本公开的一些实施例的图2中示出的第一集群的框图;
图4是图3中示出的第一横向扩展装置的示意性示图;
图5是图4中示出的第一横向扩展控制器的框图;
图6是图1中示出的数据存储装置的上电时序(power sequence)的示图;
图7是图1中示出的数据存储装置中的通用输入/输出(GPIO)连接的示图;
图8是根据本公开的一些实施例的在图1中示出的第一只读存储器(ROM)中存储的第一ROM代码的示图;
图9是根据本公开的一些实施例的在图5中示出的第二ROM中存储的第二ROM代码的示图;
图10是在图1中示出的存储器集群的第一块和第二块中存储的数据的示图;
图11是第一主固件的影射的概念图;
图12和图13是用于解释图1中示出的数据处理系统的启动顺序的概念图;
图14和图15是用于解释图1中示出的数据处理系统的固件下载顺序的概念图;
图16A至图16C是用于解释消除多个横向扩展存储器之间的固件差异的方法是概念图。
具体实施方式
现在将在下文中参照示出实施例的附图,更充分地描述本公开的构思。然而,本公开的构思可以以很多不同的形式来实现,并不应该被理解为受限于在此阐述的实施例。相反,提供了这些实施例使得本公开将是彻底的和完整的,并将向本领域的技术人员充分地传达本公开的范围。在附图中,为了清晰起见,层和区域的大小和相对大小可被夸大。相同的标号始终表示相同的元件。
将理解,当元件被称为“连接”或“结合”到另一个元件时,该元件可直接连接或结合到另一个元件或者可存在中间元件。相反,当元件被称为“直接连接”或“直接结合”到另一元件时,不存在中间元件。如在此使用的术语“和/或”包括一个或更多个相关所列项的任意和全部组合,并且可缩写为“/”。
将理解,虽然在此可使用术语第一、第二等来描述各种元件,但是这些元件不应被这些术语限制。这些术语仅用于将一个元件与另一个元件进行区分。例如,在不脱离本公开的教导的情况下,第一信号可被称为第二信号,相似地,第二信号可被称为第一信号。
在此使用的术语仅为了描述特定实施例的目的,并不意在限制权利要求的范围。除非上下文另外明确指出,否则如在此使用的单数形式也意在包括复数形式。还将理解,当在本说明书中使用术语“包含”和/或“包括”时,说明存在叙述的特征、区域、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、区域、整体、步骤、操作、元件、组件和/或它们的组。
除非另有定义,否则在此使用的所有术语(包括技术术语和科学术语)具有与本公开所属领域的普通技术人员通常理解的含义相同的含义。还将理解,除非在此明确地这样定义,否则术语(诸如,在通用字典中定义的术语)应被解释为具有与相关领域的上下文和/或本申请中它们的含义一致的含义,而将不被理想地或过于正式地解释。
图1是根据本公开的一些实施例的数据处理系统100的框图。参照图1,数据处理系统100可包括主机200和经由接口110与主机200传送(发送和接收)信号的数据存储装置300。当在数据存储装置300中包括的第一集群410具有图3中所示的结构时,数据存储装置300可具有横向扩展构架。例如,数据处理系统100可以是存储器系统。
在一些实施例中,包括存储器集群400的数据处理系统100可被实现为个人计算机(PC)、工作站、数据中心、互联网数据中心(IDC)、直接连接存储(DAS)、存储区域网(SAN)、网络连接存储(NAS)或移动计算装置;但是在此描述的数据处理系统不限于这些示例。包括存储器集群400的数据处理系统100可以是智能汽车或汽车系统。
移动计算装置可以是膝上型计算机、蜂窝电话、智能电话、平板PC、个人数字助理(PDA)、企业数字助理(EDA)、数码相机、数码摄像机、便携式多媒体播放器(PMP)、多媒体装置、个人导航装置或便携式导航装置(PND)、移动互联网装置(MID)、可穿戴式计算机、物联网(IoT)装置、万联网(IoE)装置或者无人机。
接口110可以是串行高级技术附件(SATA)接口、SATA快速(SATAe)接口、SAS(串行连接小型计算机系统接口(SCSI))、外围组件互连快速(PCIe)接口、非易失性存储器快速(NVMe)接口、高级主机控制器接口(AHCI)或者多媒体卡(MMC)接口,但是接口110不限于这些示例。接口110可发送电信号或光信号。
主机200可经由接口110控制数据存储装置300的数据处理操作(例如,写操作或读操作)。主机200可以是主机控制器。主机200可将固件发送到数据存储装置300。
中央处理单元(CPU)220和第一接口230可经由传输介质(例如,传输线或总线)210互相传送信号。虽然在图1中示出的实施例中,主机200包括传输介质210、CPU 220和第一接口230,但是在此描述的主机不限于当前实施例。主机200可被实现为集成电路(IC)、主板、片上系统(SoC)、应用处理器(AP)、移动AP、网络服务器、数据服务器、数据库服务器或者引擎控制单元(ECU);但是在此描述的主机不限于这些示例。
例如,传输介质210可被实现为高级微控制器总线架构(AMBA)、高级高性能总线(AHB)、高级外围总线(APB)、高级可扩展接口(AXI)、高级系统总线(ASB)、AXI一致性扩展(ACE)或者它们的组合,但是在此描述的传输介质不限于这些示例。
CPU 220可生成用于控制数据存储装置300的写操作的写请求或者用于控制数据存储装置300的读操作的读请求。写请求可包括写地址,读请求可包括读地址。CPU 220可包括至少一个核。请求可以是命令。当需要更新数据存储装置300的固件时,CPU 220可将固件发送到数据存储装置300。
第一接口230可改变将被发送到数据存储装置300的信号的格式,并可通过接口110将具有改变的格式的信号发送到数据存储装置300。第一接口230还可改变从数据存储装置300接收的信号的格式,并可通过传输介质210将具有改变的格式的信号发送到CPU220。第一接口230可包括发送和接收信号的收发器。第一接口230的结构和操作可被配置为与接口110的结构和操作兼容。
数据存储装置300可包括主控制器310、(易失性)动态随机存取存储器(DRAM)装置360、电源管理IC(PMIC)370和存储器集群400。存储器集群400可以是一组横向扩展存储器或存储器装置。存储器集群400可包括横向扩展装置和存储器装置。
数据存储装置300可以是基于闪存的存储器装置,但不限于此。例如,数据存储装置300可被实现为固态驱动器或固态盘(SSD)、嵌入式SSD(eSSD)、通用闪存(UFS)、MMC、嵌入式MMC(eMMC)或管理型NAND,但是在此描述的数据存储装置不限于这些示例。基于闪存的存储器装置可以是NAND型闪存装置或NOR型闪存装置。可选地,数据存储装置300可被实现为硬盘驱动器(HDD)、相变随机存取存储器(PRAM)装置、磁阻RAM(MRAM)装置、自旋转移扭矩MRAM(STT-MRAM)装置、铁电RAM(FRAM)装置或电阻RAM(RRAM)装置,但是在此描述的数据存储装置不限于这些示例。
主控制器310可控制主机200、DRAM装置360和存储器集群400之间的信号的传递(或处理)。主控制器310可以以IC或SoC来实现,并可被称为第一控制器或SSD控制器。
主控制器310可包括传输介质311、第一只读存储器(ROM)315、第二接口320、CPU330、第一内部存储器装置331、缓冲器控制器340和第三接口350。传输介质(例如,传输线或总线)311可被实现为AMBA、AHB、APB、AXI、ASB、ACE或它们的组合,但是在此描述的传输介质不限于这些示例。
第一ROM 315可存储主控制器310的操作所需的数据。第一ROM 315可存储第一ROM代码。第一ROM 315可被实现为掩膜ROM或串行NOR闪存装置。
第一内部存储器装置331可存储能够被CPU 330执行的第一ROM代码或第一闪存转换层(FTL)代码。例如,当数据存储装置300启动时,可将第一ROM代码从第一ROM 315加载到第一内部存储器装置331,并且可将第一FTL代码从存储器集群400加载到第一内部存储器装置331。
第一内部存储器装置331可被实现为RAM、DRAM、静态RAM(SRAM)、缓冲器、缓冲器存储器、高速缓存或紧耦合存储器(TCM),但是在此描述的存储器装置不限于这些示例。假设第一内部存储器装置331是第一TCM,并且第一TCM 331被实现为SRAM。
第二接口320可改变将被发送到主机200的信号的格式,并且可通过接口110将具有改变的格式的信号发送到主机200。第二接口320还可从主机200接收信号,改变信号的格式,并将具有改变的格式的信号发送到CPU 330和/或缓冲器控制器340。第二接口320可包括发送和接收信号的收发器。第二接口320可被用作主机接口。
第二接口320的结构和操作可被配置为与接口110的结构和操作兼容。第二接口320可以是SATA接口、SATAe接口、SAS、PCIe接口、NVMe接口、AHCI、MMC接口、NAND型闪存接口或NOR型闪存接口,但是不限于此。
CPU 330可通过传输介质311来控制第一ROM 315、第一TCM 331、第二接口320、缓冲器控制器340和第三接口350。CPU 330可包括至少一个核。CPU 330还可控制PMIC 370。
例如,当CPU 330被定义为包括第一CPU和第二CPU的集合性概念时,第一CPU可经由第二接口320将信号发送到主机200并且从主机200接收信号,第二CPU可经由第三接口350将信号发送到存储器集群400并且从存储器集群400接收信号。例如,第一CPU和第二CPU可形成多CPU(multi-CPU)。第一CPU可控制第二CPU,但是本公开中描述的CPU不限于当前实施例。
缓冲器控制器340可根据CPU 330的控制或者CPU 330中执行的固件(例如,第一固件)的控制,将数据写入到DRAM装置360或从DRAM装置360读取数据。缓冲器控制器340可被称为控制DRAM装置360的写操作和读操作的控制器或缓冲器管理器。
第三接口350可根据CPU 330的控制或CPU 330中执行的固件(例如,第一ROM代码或第一固件)的控制,通过主通道CHA、CHB和CHC中的一个来控制存储器群集400的数据处理操作(例如,写操作或读操作)。第三接口350可以是SATA接口、SATAe接口、SAS、PCIe接口、NVMe接口、AHCI、MMC接口、NAND型闪存接口或NOR型闪存接口,但是不限于此。
第三接口350可包括纠错码(ECC)引擎(未示出)。ECC引擎可校正将在存储器集群400中存储的数据中的错误或从存储器集群400输出的数据中的错误。在其他实施例中,ECC引擎可被实现在主控制器310的内部的任意位置。
DRAM装置360可根据缓冲器控制器340的控制,写入数据或读取数据。DRAM装置360可以是易失性存储器装置的实施例。DRAM装置360可包括第一区域和第二区域,其中,第一区域存储用于针对集群410、集群430和集群450的逻辑地址-物理地址转换的映射表,第二区域用作为高速缓存,但是在此描述的DRAM装置不限于当前实施例。由CPU 330执行的第一FTL代码可使用在第一区域中存储的映射表,来执行逻辑地址-物理地址转换。
当主控制器310和DRAM装置360分别以不同的半导体芯片形成时,主控制器310和DRAM装置360可被实现在单个封装件(诸如,堆叠封装(PoP)结构、多芯片封装(MCP)结构或系统级封装(SiP)结构)中,但是在此描述的主控制器和DRAM装置不限于这些示例。包括DRAM装置360的第一半导体芯片(或封装件)可使用堆叠球以堆叠在包括主控制器310的第二半导体芯片(或封装件)上面。
PMIC 370可控制分别供应给主控制器310、DRAM装置360和存储器集群400的操作电压。供应给主控制器310的第一操作电压PW1、供应给存储器集群400的第二操作电压PW2和供应给DRAM装置360的第三操作电压PW3可以彼此相同或不同。
如图6所示,第一操作电压PW1的第一供应点T1落后于第二操作电压PW2的第二供应点T2。换句话讲,在两个供应点T2与T1之间存在时间差TD。第二操作电压PW2的上电时序领先于第一操作电压PW1的上电时序。虽然在图6中示出的实施例中,操作电压PW1和操作电压PW2具有相同的电平VL,但是在其他实施例中,它们可具有不同的电平。
存储器集群400可包括多个集群410、430和450。第一集群410可连接到第一主通道CHA,第二集群430可连接到第二主通道CHB,第三集群450可连接到第三主通道CHC。将参照图2至图5详细描述集群410、集群430和集群450中的每一个集群的结构。集群410、集群430和集群450中的每一个集群可包括多个横向扩展存储器。集群410、集群430和集群450中的每一个集群可包括至少一个横向扩展装置和多个非易失性存储器装置。
主通道或通道可表示在主控制器310的第三接口350与集群410、集群430和集群450中的每一个集群之间存在的独立的数据路径。数据路径可包括发送数据和/或控制信号的传输线。术语“路(way)”可表示非易失性存储器装置或者共享一个主通道或一个通道的非易失性存储器装置的组。因此,多个路可连接到一个主通道或一个通道。非易失性存储器装置可表示裸片、存储器装置或存储器封装件。主控制器310可控制A个通道×B个路,其中,A和B是至少为1的自然数。
每一个非易失性存储器装置可包括存储器单元阵列。存储器单元阵列可包括多个存储器单元。存储器单元阵列可包括二维(2D)存储器单元阵列或三维(3D)存储器单元阵列。每一个存储器单元可以是2D存储器单元或3D存储器单元。
3D存储器单元阵列被单片地形成在具有设置在硅基底之上的有源区域和与这些存储单元的操作相关联的电路的存储器单元的阵列的一个或多个物理级中,不论这样的相关联的电路是在这样的基底之上还是在这样的基底之内。术语“单片(monolithic)”表示阵列的每级的层被直接沉积在阵列的每个下面的级的层上。在实施例中,3D存储器单元阵列包括垂直取向使得至少一个存储器单元位于另一存储器单元的上方的垂直NAND串。至少一个存储器单元可包括电荷俘获层。通过引用合并于此的下面的专利文件描述用于三维存储器阵列的合适的配置,其中,三维存储器阵列被配置为具有在级之间共享的字线和/或位线的多个级:第7,679,133号、第8,553,466号、第8,654,587号、第8,559,235号美国专利以及公开号为2011/0233648的美国专利。
图2是图1中示出的数据存储装置300的详细框图;图3是根据本公开的一些实施例的图2中示出的第一集群410的框图。
图2中示出的数据存储装置300可具有横向扩展架构,但是本公开中描述的数据存储装置不限于当前实施例。第一集群410可包括多个横向扩展存储器或横向扩展存储器装置。第一横向扩展存储器可包括第一横向扩展装置416-1和第一非易失性存储器装置组GP1。第k横向扩展存储器可包括第k横向扩展装置416-k和第k非易失性存储器装置组GPk。其他的集群430和集群450中的每一个集群的结构实质上与第一集群410的结构相同或相似;将省略其他的集群430和集群450的详细的描述。
由于结构和操作在集群410、集群430和集群450中实质上相同或相似,因此将代表性地描述图3中示出的第一集群410的结构和操作。
第一集群410可包括横向扩展装置416-1至416-k(其中,“k”是至少为3的自然数)和非易失性存储器装置组GP1至GPk。横向扩展装置416-1至416-k可分别包括横向扩展控制器415-1至415-k,并且分别包括易失性存储器装置417-1至417-k。虽然在图3中示出多个横向扩展存储器,但是在其他实施例中,第一集群410可包括一个横向扩展存储器或更多个横向扩展存储器。另外,在主控制器310被认为是第一控制器的实施例中,横向扩展控制器415-1可被认为是第二控制器。
第一横向扩展控制器415-1可连接到第一主通道CHA、通道CH11至CH1m(其中,“m”是至少为2的自然数)和第一易失性存储器装置417-1。多个非易失性存储器装置NAND可连接到通道CH11至CH1m中的每一个通道。例如,非易失性存储器装置NAND可以是NAND型闪存装置或管理型NAND闪存装置,但不限于此。
第一横向扩展控制器415-1可通过通道CH11至CH1m来控制非易失性存储器装置NAND的操作。主控制器310可控制第一横向扩展控制器415-1的操作。
第一易失性存储器装置417-1可包括第一区域,用于存储与连接到通道CH11至CH1m中的每一个通道的非易失性存储器装置NAND相关的逻辑地址-物理地址映射信息(或映射表)。第一易失性存储器装置417-1还可包括第二区域(或高速缓存区域),用于临时存储以下数据:将被写入到连接到通道CH11至CH1m中的每一个通道的非易失性存储器装置NAND中的至少一个非易失性存储器装置NAND的数据,或者从连接到通道CH11至CH1m中的每一个通道的非易失性存储器装置NAND中的至少一个非易失性存储器装置NAND输出的数据。
第二横向扩展控制器415-2可连接到第一主通道CHA、通道CH21至CH2m以及第二易失性存储器装置417-2。多个非易失性存储器装置NAND可连接到通道CH21至CH2m中的每一个通道。第一横向扩展控制器415-2可通过通道CH21至CH2m,来控制非易失性存储器装置NAND的操作。主控制器310可控制第二横向扩展控制器415-2的操作。
第二易失性存储器装置417-2可包括第一区域,用于存储与连接到通道CH21至CH2m中的每一个通道的非易失性存储器装置NAND相关的逻辑地址-物理地址映射信息(或映射表)。第二易失性存储器装置417-2还可包括第二区域(或高速缓存区域),用于临时存储以下数据:将被写入到连接到通道CH21至CH2m中的每一个通道的非易失性存储器装置NAND中的至少一个非易失性存储器装置NAND的数据,或者从连接到通道CH21至CH2m中的每一个通道的非易失性存储器装置NAND中的至少一个非易失性存储器装置NAND输出的数据。
第k横向扩展控制器415-k可连接到第一主通道CHA、通道CHk1至CHkm以及第k易失性存储器装置417-k。多个非易失性存储器装置NAND可连接到通道CHk1至CHkm中的每一个通道。第k横向扩展控制器415-k可通过通道CHk1至CHkm,来控制非易失性存储器装置NAND的操作。主控制器310可控制第k横向扩展控制器415-k的操作。
第k易失性存储器装置417-k可包括第一区域,用于存储与连接到通道CHk1至CHkm中的每一个通道的非易失性存储器装置NAND相关的逻辑地址-物理地址映射信息(或映射表)。第k易失性存储器装置417-k还可包括第二区域(或高速缓存区域),用于临时存储以下数据:将被写入到连接到通道CHk1至CHkm中的每一个通道的非易失性存储器装置NAND中的至少一个非易失性存储器装置NAND的数据,或者从连接到通道CHk1至CHkm中的每一个通道的非易失性存储器装置NAND中的至少一个非易失性存储器装置NAND输出的数据。
易失性存储器装置417-1至417-k中的每一个易失性存储器装置可以是缓冲器或者缓冲器存储器,并且可使用RAM、SRAM或DRAM来实现。然而,在此描述的易失性存储器装置不限于当前实施例。虽然在图3中示出的实施例中非易失性存储器装置组GP1至GPk包括彼此相同的通道,但是在非易失性存储器装置组GP1至GPk中,通道的数量可以是不同的。
图4是图3中示出的第一横向扩展装置416-1的示意性示图。图5是图4中示出的第一横向扩展控制器415-1的框图。参照图1至图5,结构和操作在横向扩展控制器415-1至415-k中实质上相同或相似,因此,将代表性地描述第一横向扩展控制器415-1的结构和操作。
第一横向扩展控制器415-1可控制在主控制器310、第一易失性存储器装置417-1以及第一非易失性存储器装置组GP1中的非易失性存储器装置NAND之间传递的数据的传输。第一横向扩展控制器415-1可被实现为IC或SOC。
第一横向扩展控制器415-1可包括传输介质420、第四接口421、CPU423-1、第二内部存储器装置423-2、第二ROM 425、缓冲器控制器427以及第五接口429。传输介质(例如,传输线或总线)420可被实现为AMBA、AHB、APB、AXI、ASB、ACE或它们的组合,但是在此描述的传输介质不限于这些示例。
第四接口421可改变将被发送到主控制器310的信号的格式,并可通过第一主通道CHA将具有改变的格式的信号发送到主控制器310。第四接口421还可从主控制器310接收信号,改变信号的格式,并且将具有改变的格式的信号发送到CPU 423-1和/或缓冲控制器427。第四接口421可包括发送和接收信号的收发器。
第四接口421的结构和操作可被配置为与第三接口350的结构和操作兼容。第四接口421可以是SATA接口、SATAe接口、SAS、PCIe接口、NVMe接口、AHCI、MMC接口、NAND型闪存接口或NOR型闪存接口,但不限于此。第四接口421可连接到通道(或主通道)或路。
CPU 423-1可控制第四接口421、第二内部存储器装置423-2、第二ROM425、缓冲器控制器427以及第五接口429。CPU 423-1可包括至少一个核。当CPU 423-1包括第三CPU和第四CPU时,第三CPU可经由第四接口421与第三接口350传送数据,第四CPU可经由第五接口429与连接到通道CH11至CH1m中的每一个通道的非易失性存储器装置NAND中的至少一个非易失性存储器装置NAND传送数据。
第二内部存储器装置423-2可存储第一横向扩展控制器415-1的操作所需的数据或者从通过第一横向扩展控制器415-1执行的数据处理操作(例如,写操作或读操作)生成的数据。第二内部存储器装置423-2可存储能够由CPU423-1执行的第二FTL代码或第二ROM代码。例如,当数据存储装置300启动时,第二FTL代码可从存储器集群400加载到第二内部存储器装置423-2,第二ROM代码可从第二ROM 425加载到第二内部存储器装置423-2。第二内部存储器装置423-2可被实现为RAM、DRAM、SRAM、缓冲器、缓冲器存储器、高速缓存或TCM,但是在本公开中描述的内部存储器装置不限于这些示例。假设第二内部存储器装置423-2是第二TCM,并且第二TCM被实现为SRAM。
第二ROM 425可存储第二ROM代码。第二ROM 425可被实现为掩模ROM或串行NOR闪存装置。
缓冲器控制器427可根据CPU 423-1的控制或在CPU 423-1中执行的固件(例如,第二固件)的控制,将数据写入到第一DRAM装置417-1或者从第一DRAM装置417-1读取数据。缓冲器控制器427可被称为控制第一DRAM装置417-1的写操作和读操作的控制器或缓冲器管理器。
第五接口429可根据CPU 423-1的控制或者在CPU 423-1中执行的固件(例如,第二固件)的控制,通过通道CH11至CH1m中的一个通道来控制非易失性存储器装置NAND的数据处理操作。
参照图4和图5,多个通道CH11至CH1m可被连接到第五接口429。第五接口429可以是SATA接口、SATAe接口、SAS、PCIe接口、NVMe接口、AHCI、MMC接口、NAND型闪存接口或NOR型闪存接口,但不限于此。
第一DRAM装置417-1可包括第一区域和第二区域,其中,第一区域存储用于针对在第一非易失性存储器装置组GP1中包括的非易失性存储器装置NAND的逻辑地址-物理地址转换的映射表,第二区域用作为高速缓存,但是在本公开中描述的DRAM装置不限于当前实施例。由CPU 423-1执行的第二FTL代码可使用在第一区域中存储的映射表,来执行逻辑地址-物理地址转换。
图6是图1中示出的数据存储装置300的上电时序的示图。参照图1至图6,供应给存储器集群400的第二操作电压PW2的上电时序比供应给主控制器310的操作电压PW1的上电时序早。因此,根据本公开的一些实施例的数据存储装置300及其操作方法控制主控制器310的第一固件的启动开始时间(或执行时间)比存储器集群400的第二固件的启动开始时间(或执行时间)晚。即,例如,PMIC 370能够控制并协调分别供应给主控制器310、DRAM装置360和存储器集群400的操作电压,使得在第一固件被(第一)主控制器310启动之前,第二固件被横向扩展装置所特有的(第二)横向扩展控制器415-1启动。
图7是图1中示出的数据存储装置300中的通用输入/输出(GPIO)连接的示图。参照图1和图7,主控制器310包括第一GPIO引脚301;在存储器集群400中包括的横向扩展存储器510、横向扩展存储器520、横向扩展存储器530和横向扩展存储器540中的每一个横向扩展存储器包括第二GPIO引脚401。第一GPIO引脚301分别与第二GPIO引脚401连接。
数据存储装置300可根据第一GPIO引脚301之中的一个引脚302如何设置,来执行正常启动模式或下载模式。例如,当高电平的信号输入到引脚302时,数据存储装置300可执行下载模式。当没有信号输入到引脚302时,即,当引脚302是开路或浮置时,数据存储装置300可执行正常启动模式。可对确定正常启动模式或下载模式的方法进行各种改变。
每一个控制器310或控制器415-1可检查第一GPIO引脚301之中的一个引脚302的状态,并确定数据存储装置300的操作模式是正常启动模式还是下载模式。
图8是根据本公开的一些实施例的图1示出的在第一ROM 315中存储的第一ROM代码ROM_CODE1的示图。参照图1和图8,第一ROM 315可存储第一ROM代码ROM_CODE1。第一ROM代码ROM_CODE1可包括针对物理命令的第一代码PCODE和针对逻辑命令的第二代码LCODE。第一ROM代码ROM_CODE1可在启动时被复制到或加载到第一TCM 331。代码PCODE和代码LCODE中的每一代码可以是微码。
图9是根据本公开的一些实施例的在图5中示出的第二ROM 425中存储的第二ROM代码ROM_CODE2的示图。参照图5和图9,第二ROM 425可存储第二ROM代码ROM_CODE2。第二ROM代码ROM_CODE2可包括代码CODE。代码CODE可以是针对物理命令和/或逻辑命令的微码。
图10是在图1中示出的存储器集群的第一块和第二块中存储的数据的示图。参照图10,第一非易失性存储器装置组GP1可包括第一块BLOCK#0和第二块BLOCK#1。可通过在第一非易失性存储器装置组GP1中包括的非易失性存储器装置NAND中的至少一个非易失性存储器装置NAND,来定义第一块BLOCK#0和第二块BLOCK#1中的每一个。第一块BLOCK#0和第二块BLOCK#1可包括在一个非易失性存储器装置中,或分别被包括在不同的非易失性存储器装置中。
第一块BLOCK#0可包括或存储在第一横向扩展存储器中执行的第二完整固件(full-firmware)SEF,其中,第一横向扩展存储器包括第一横向扩展装置416-1和第一非易失性存储器装置组GP1。第二完整固件SEF可包括第二头HEADER2、第二启动加载程序(bootloader)BL2和第二固件MF2。第二头HEADER2可包括关于第二启动加载程序BL2和第二固件MF2的信息。
第二块BLOCK#1可包括或存储在数据存储装置300中执行的第一完整固件EF。第一完整固件EF可包括第一头HEADER1、第一启动加载程序BL1、第一固件MF1、第二头HEADER2、第二启动加载程序BL2和第二固件MF2。在其他实施例中,第一完整固件EF可不包括第一启动加载程序BL1。第一头HEADER1可包括关于第一启动加载程序BL1和第一固件MF1的信息。第一固件MF1可以是第一主固件,第二固件MF2可以是第二主固件。
图11是第一主固件MF1的影射(shadowing)的概念图。参照图1和图11,影射可表示复制或加载。当CPU 330包括四个核330-1至330-4时,需要四个TCM 331-1至331-4。换句话讲,需要与在CPU 330或CPU 423-1中包括的核一样多的TCM。
例如,在DRAM装置360中存储的第一固件MF1可被划分成四个部分MF1-1至MF1-4,其中,四个部分MF1-1至MF1-4可从DRAM装置360分别影射、复制或者加载到四个TCM 331-1至331-4。可分别通过四个核330-1至330-4同时或并行地执行已被分别影射到四个TCM331-1至331-4的四个部分MF1-1至MF1-4。
图12和图13是用于解释图1中示出的数据处理系统100的启动顺序的概念图。参照图1至图13,将供应给在第一集群410中包括的第一横向扩展存储器的第二操作电压(或第二电力)PW2协调并控制为早于供应给第一主控制器(以下,称为“SSD控制器”)310的第一操作电压(或第一电力)PW1进行上电。
当第二操作电压PW2被完全供应给第一横向扩展存储器时,在操作S110中,在第一横向扩展存储器的第一横向扩展控制器415-1的第二ROM 425中存储的第二ROM代码ROM_CODE2被复制到可被CPU 423-1访问的第二TCM 423-2。此后,当第一操作电压PW1被完全供应给SSD控制器310时,在操作S112中,在SSD控制器310的第一ROM 315中存储的第一ROM代码ROM_CODE1被复制到可被CPU 330访问的第一TCM 331。
在操作S114中,复制到第一TCM 331的第一ROM代码ROM_CODE1检查SSD控制器310的第一GPIO引脚301的状态,在操作S116中,复制到第二TCM 423-2的第二ROM代码ROM_CODE2检查第一横向扩展存储器的第二GPIO引脚401的状态。假设第一横向扩展存储器是图7中示出的第一横向扩展存储器510。当假设第一GPIO引脚301之中的引脚302是开路时,数据存储装置300在正常启动模式下进行操作。
如图8所示,在SSD控制器310的第一ROM315中存储的第一ROM代码ROM_CODE1可包括针对物理命令的第一代码PCODE和针对逻辑命令的第二代码LCODE。如图9所示,在第一横向扩展控制器415-1的第二ROM425中存储的第二ROM代码ROM_CODE2可包括代码CODE。
在操作S118中,在SSD控制器310中执行的第一ROM代码ROM_CODE1初始化第二接口320(即,主机接口)和DRAM装置360。在操作S120中,为了配置第三接口350的元件,在SSD控制器310中执行的第一ROM代码ROM_CODE1的第一代码PCODE被下载到第三接口350。第三接口350使用第一代码PCODE配置元件(或组件)以处理物理命令。第三接口350的元件可被配置为处理物理命令。
在操作S122中,在第一横向扩展控制器415-1中执行的第二ROM代码ROM_CODE2初始化至少一个接口421和/或接口429。在操作S124中,在第二ROM代码ROM_CODE2中包括的代码CODE被下载到至少一个接口421和/或接口429,使得至少一个接口421和/或接口429能够处理物理命令。至少一个接口421和/或接口429使用代码CODE配置其自身的元件以处理物理命令。
在操作S126中,第一ROM代码ROM_CODE1将第一物理读命令PRCMD1和状态命令SCMD发送到第一横向扩展控制器415-1,其中,第一物理读命令PRCMD1用于将SSD控制器310所需的第一完整固件EF从在第一非易失性存储器装置组GP1中包括的非易失性存储器装置NAND下载到DRAM装置360,状态命令SCMD用于检查“就绪(ready)”和“忙(busy)”。在操作S128中,第二ROM代码ROM_CODE2响应于第一物理读命令PRCMD1,将第一横向扩展控制器415-1的操作状态设置为“忙”。
在操作S130中,第二ROM代码ROM_CODE2响应于第一物理读命令PRCMD1来读取在由包括在第一非易失性存储器装置组GP1中的非易失性存储器装置NAND定义的第一块BLOCK#0中存储的第二启动加载程序BL2,并将第二启动加载程序BL2复制或加载到第二TCM 423-2。在第二启动加载程序BL2被复制到第二TCM 423-2之后,在操作S132中,第二ROM代码ROM_CODE2跳转到第二启动加载程序BL2,使得第二启动加载程序BL2被执行。
第二启动加载程序BL2在操作S134中初始化第一DRAM装置417-1,并且在操作S136中在全局状态寄存器GSR的状态字段中设置当前状态为第二启动加载程序BL2被执行的状态。换句话讲,在操作S136中,全局状态寄存器GSR的状态字段的状态信息被设置为第二启动加载程序BL2被执行的第二启动加载程序状态。在操作S138中,第二启动加载程序BL2初始化第一横向扩展存储器。
以预定的大小(例如,16Kb)将第一完整固件EF发送到SSD控制器310,直到第一完整固件EF被完全发送,其中,第一完整固件EF包括存储在由包括在第一非易失性存储器装置组GP1中的非易失性存储器装置NAND定义的第二块BLOCK#1中的第一头HEADER1、第一启动加载程序BL1(在其他实施例中可不存在)、第一固件MF1、第二头HEADER2、第二启动加载程序BL2和第二固件MF2。
例如,第一完整固件EF在被复制到第一DRAM装置417-1之后根据第二启动加载程序BL2的控制以预定的大小(例如,16Kb)被发送到SSD控制器310。例如,当在操作S140中第二启动加载程序BL2响应于第一物理读命令PRCMD1将在第一DRAM装置417-1中存储的第一完整固件EF的第一部分EF1-1发送到SSD控制器310时,第一ROM代码ROM_CODE1将第一部分EF1-1存储在DRAM装置360中。
在操作S142中,第一ROM代码ROM_CODE1将第二物理读命令PRCMD2和状态命令SCMD发送到第一横向扩展控制器415-1。当在操作S144中第二启动加载程序BL2响应于第二物理读命令PRCMD2将在第一DRAM装置417-1中存储的第一完整固件EF的第二部分EF1-2发送到SSD控制器310时,第一ROM代码ROM_CODE1将第二部分EF1-2存储在DRAM装置360中。
当第一完整固件EF被划分成“m”个单元时,在操作S146中第一ROM代码ROM_CODE1将第m物理读命令PRCMDm和状态命令SCMD发送到第一横向扩展控制器415-1。当在操作S148中第二启动加载程序BL2响应于第m物理读命令PRCMDm将在第一DRAM装置417-1中存储的第一完整固件EF的第m部分EF1-m发送到SSD控制器310时,第一ROM代码ROM_CODE1将第m部分EF1-m存储在DRAM装置360中。通过上述操作S126至S148,将第一完整固件EF加载到DRAM装置360。
在以预定的大小(例如,16Kb)将第一完整固件EF从第一横向扩展存储器的第一DRAM装置417-1发送到DRAM装置360的同时,在操作S150中,通过第一DRAM装置417-1将在由包括在第一非易失性存储器装置组GP1中的非易失性存储器装置NAND定义的第一块BLOCK#0中存储的第二固件MF2加载到第二TCM423-2。
在其他实施例中,在通过操作S126至S148将第一完整固件EF加载到DRAM装置360之后,可在操作S150中通过第一DRAM装置417-1将在第一块BLOCK#0中存储的第二固件MF2加载到第二TCM423-2。
当下载到DRAM装置360的第一完整固件EF包括第一启动加载程序BL1时,在操作S152中,将第一启动加载程序BL1从DRAM装置360复制到第一TCM 331。然而,当下载到DRAM装置360的第一完整固件EF不包括第一启动加载程序BL1时,不执行操作S152。
当下载到DRAM装置360的第一完整固件EF包括第一启动加载程序BL1时,第一启动加载程序BL1执行操作S154、操作S156、操作S158和操作S166。当下载到DRAM装置360的第一完整固件EF不包括第一引导加载程序BL1时,加载到SSD控制器310的第一TCM 331的第一ROM代码ROM_CODE1执行操作S154、操作S156、操作S158和操作S166。
在操作S154中,第一启动加载程序BL1或第一ROM代码ROM_CODE1将模式从物理模式改变到逻辑模式。物理模式基于物理地址来操作;逻辑模式基于逻辑地址来操作。因此,物理命令是包括物理地址的命令(例如,写命令或读命令);逻辑命令是包括逻辑地址的命令(例如,写命令或读命令)。
在操作S156中,第一启动加载程序BL1或第一ROM代码ROM_CODE1将第二代码LCODE下载到第三接口350。在操作S156中,第三接口350被设置为使用第二代码LCODE来处理逻辑命令。
在操作S158中,第一启动加载程序BL1或第一ROM代码ROM_CODE1将启动命令(即,用于执行第二固件MF2的执行命令)发送到第一横向扩展控制器415-1。在操作S160中,第二启动加载程序BL2响应于用于执行第二固件MF2的执行命令而跳转到第二固件MF2。因此,第二固件MF2被启动或被执行。
在操作S162中,第二固件MF2可在全局状态寄存器GSR的状态字段中设置当前状态为第二启动加载程序MF2被执行的状态。换句话讲,在操作S162中,全局状态寄存器GSR的状态字段的状态信息被设置为第二固件MF2被执行的第二固件状态。
为了检查第一横向扩展控制器415-1的状态是否已经从第二启动加载程序状态改变到第二固件状态,第一启动加载程序BL1或第一ROM代码ROM_CODE1在操作S164中读取全局状态寄存器GSR。在操作S164中,第二固件MF2可响应于从第一启动加载程序BL1或第一ROM代码ROM_CODE1发送的命令,将全局状态寄存器GSR发送到SSD控制器310。在操作S166中,第一启动加载程序BL1或第一ROM代码ROM_CODE1检查在全局状态寄存器GSR的状态字段中包括的信息,并将第一固件MF1从DRAM装置360复制到第一TCM 331。
在第一固件MF1被复制到第一TCM 331之后,在操作S168中,第一启动加载程序BL1或第一ROM代码ROM_CODE1跳转到第一固件MF1。例如,当如图11所示,CPU 330包括多个核330-1至330-4并且与核330-1至核330-4分别对应的TCM 331-1至TCM 331-4存在于SSD控制器310中时,在操作S166中,第一固件MF1的部分MF1-1至MF1-4可被分别加载到TCM331-1至TCM 331-4。
因此,通过分别加载到TCM 331-1至TCM 331-4的部分MF1-1至部分MF1-4同时激活核330-1至核330-4,即,在操作S170中,通过CPU 330执行第一固件MF1。例如,第一核330-1可执行加载到TCM 331-1的第一部分MF1-1;第二核330-2可执行加载到TCM 331-2的第二部分MF1-2;第三核330-3可执行加载到TCM 331-3的第三部分MF1-3;第四核330-4可执行加载到TCM 331-4的第四部分MF1-4。部分MF1-1至部分MF1-4可具有彼此相同的大小或不同的大小。
在操作S172中,由核330-1至核330-4中的一个核(例如,330-1)执行的第一固件MF1的第一部分MF1-1可检查第一固件MF1的版本和/或第二固件MF2的版本。在操作S174中,第一固件MF1的第一部分MF1-1将从第一横向扩展控制器415-1接收的全局状态寄存器GSR发送到第一横向扩展控制器415-1。在操作S176中,在第一横向扩展控制器415-1中执行的第二固件MF2将其自身的版本信息写入到全局状态寄存器GSR的状态字段中。在操作S178中,第二固件MF2将包括版本信息的全局状态寄存器GSR,发送到SSD控制器310。换句话讲,在操作S178中,第一固件MF1的第一部分MF1-1接收已被第二固件MF2修改的全局状态寄存器GSR,。全局状态寄存器GSR或GSR,可表示数据。
SSD控制器310比第一横向扩展存储器更晚启动。虽然已经参照图1至图13描述了包括SSD控制器310和单个横向扩展存储器的数据存储装置的启动顺序,但是本公开的教导也可被应用于包括SSD控制器310和多个横向扩展存储器的数据存储装置300的启动顺序。换句话讲,在全部横向扩展存储器被启动之后,SSD控制器310可被启动。
数据存储装置300包括第一易失性存储器装置360、第一横向扩展存储器和第一控制器310。第一控制器310控制第一易失性存储器装置360和第一横向扩展存储器并且执行第一固件MF1。第一横向扩展存储器可包括第二易失性存储器装置、第一非易失性存储器装置GP1和第二控制器415-1。第二控制器415-1控制第二易失性存储器装置和第一非易失性存储器装置GP1并且执行第二固件MF2。第一非易失性存储器装置GP1可被定义为包括至少一个非易失性存储器装置NAND的集合性概念。在通过第二控制器415-1完成第二固件MF2的启动(或执行)之后,第一控制器310执行第一固件MF1的启动(或执行)。
如图6所示,数据存储装置300还包括PMIC 370,其中,PMIC 370在第二供应点T2向第一横向扩展存储器供应第二操作电压PW2,并且在第一供应点T1向第一控制器310供应第一操作电压PW1。第二供应点T2早于第一供应点T1。
如图10所示,第一非易失性存储器装置GP1包括第一块BLOCK#0和第二块BLOCK#1,其中,第一块BLOCK#0存储包括第二启动加载程序BL2和第二固件MF2的第二完整固件SEF,第二块BLOCK#1存储包括第一固件MF1、第二启动加载程序BL2和第二固件MF2的第一完整固件EF。
在操作S130中,第二控制器415-1响应于从第一控制器310输出的第一物理读命令PRCMD1,将第二启动加载程序BL2从第一块BLOCK#0加载到第二控制器415-1;在操作S140、操作S144和操作S148中,第二控制器415-1使用第二启动加载程序BL2将第一完整固件EF从第二块BLOCK#1发送到第一控制器310;并且在操作S150中,第二控制器415-1使用第二启动加载程序BL2将第二固件MF2从第一块BLOCK#0加载到第二控制器415-1。第一固件EF的传输中涉及的命令是包括第一物理读命令PRCMD1的第二物理读命令PRCMD1至PRCMDm。
在操作S130中,第二控制器415-1在没有使用或经由第二易失性存储器装置的情况下,将第二启动加载程序BL2从第一块BLOCK#0下载到第二控制器415-1;在操作S134中,第二控制器415-1使用第二启动加载程序BL2来初始化第二易失性存储器装置;在操作S140、操作S144和操作S148中,第二控制器415-1经由第二易失性存储器装置将第一完整固件EF发送到第一控制器310;并且在操作S150中,第二控制器415-1经由第二易失性存储器装置将第二固件MF2下载到第二控制器415-1。
第一控制器310将从第二控制器415-1发送的第一完整固件EF存储在第一易失性存储器装置360中,在操作S154中将其自身的操作模式从基于物理地址操作的物理模式改变到基于逻辑地址操作的逻辑模式,并且在操作S158中将用于执行第二固件MF2的执行命令发送到第二控制器415-1。
在操作S160中,第二控制器415-1响应于执行命令来执行第二固件MF2,在操作S164中,第二控制器415-1将指示第二固件MF2的执行的指示信号发送到第一控制器310,并且在操作S166中,第一控制器310响应于指示信号将在存储在第一易失性存储器装置360中的第一完整固件EF中包括的第一固件MF1加载到第一控制器310。
第一控制器310在操作S170中执行第一固件MF1并在操作S174中将版本检查命令发送到第二控制器415-1。在操作S178中,第二控制器415-1响应于版本检查命令将第二固件MF2的版本信息发送到第一控制器310。
图14和图15是用于解释图1中示出的数据处理系统100的固件下载顺序的概念图。参照图1至图11、图14和图15,如图6所示,在第一操作电压(或第一电力)PW1被供应给SSD控制器310之前,第二操作电压(或第二电力)PW2被供应给给在第一集群410中包括的第一横向扩展存储器。
当第二操作电压PW2被完全供应给第一横向扩展存储器时,在操作S210中,在第一横向扩展存储器的第一横向扩展控制器415-1的第二ROM 425中存储的第二ROM代码ROM_CODE2可被复制到能够被CPU 423-1访问的第二TCM 423-2。此后,当第一操作电压PW1被完全供应给SSD控制器310时,在操作S212中,在SSD控制器310的第一ROM 315中存储的第一ROM代码ROM_CODE1被复制到能够被CPU 330访问的第一TCM 331。
在操作S214中,复制到第一TCM 331的第一ROM代码ROM_CODE1检查SSD控制器310的第一GPIO引脚301,在操作S216中,复制到第二TCM 423-2的第二ROM代码ROM_CODE2检查第一横向扩展存储器的第二GPIO引脚401。假设第一横向扩展存储器是图7中示出的第一横向扩展存储器510。当假设高电平的信号被施加到第一GPIO引脚301之中的一个引脚302时,数据存储装置300在下载模式下进行操作。
在操作S218中,在SSD控制器310中执行的第一ROM代码ROM_CODE1初始化第二接口320(即,主机接口)和DRAM装置360。在操作S220中,第一ROM代码ROM_CODE1的第一代码PCODE被下载到第三接口350。第三接口350被配置为使用第一代码PCODE来处理物理命令。
在操作S222中,主机200可通过接口110将参照图10描述的第一完整固件EF发送到SSD控制器310。在操作S224中,第一ROM代码ROM_CODE1可将第一完整固件EF存储在DRAM装置360中。
当下载到DRAM装置360的第一完整固件EF包括第一启动加载程序BL1时,第一ROM代码ROM_CODE1可在操作S226中将第一启动加载程序BL1从DRAM装置360复制(或加载)或者影射到第一TCM 331。当下载到DRAM装置360的第一完整固件EF包括第一启动加载程序BL1时,第一启动加载程序BL1可执行操作S228、操作S230、操作S232、操作S246、操作S250、操作S254和操作S266。然而,当下载到DRAM装置360的第一完整固件EF不包括第一启动加载程序BL1时,第一ROM代码ROM_CODE1可执行操作S228、操作S230、操作S232、操作S246、操作S250、操作S254和操作S266。
在操作S228中,第一启动加载程序BL1或第一ROM代码ROM_CODE1将SSD控制器310的操作模式从物理模式改变到逻辑模式。在操作S230中,第一ROM代码ROM_CODE1的第二代码LCODE被下载到第三接口350。第三接口350被配置为使用第二代码LCODE来处理逻辑命令。
如上所述,物理模式允许物理命令被执行或被处理;逻辑模式允许逻辑命令被执行或被处理。物理命令基于物理地址,逻辑命令基于逻辑地址。
第一启动加载程序BL1或第一ROM代码ROM_CODE1将逻辑命令发送到第一横向扩展存储器。例如,在操作S232中,第一启动加载程序BL1或第一ROM代码ROM_CODE1将第二头HEADER2和第二启动加载程序BL2发送到第一横向扩展控制器415-1。
在操作S234中,在第一横向扩展控制器415-1中执行的第二ROM代码ROM_CODE2将第二启动加载程序BL2直接或立即存储在第二TCM 423-2中。换句话讲,由于第一DRAM装置417-1未被初始化,因此第二ROM代码ROM_CODE2在没有使用或经由第一DRAM装置417-1的情况下将第二启动加载程序BL2直接或立即存储在第二TCM 423-2中。在操作S236中,第二ROM代码ROM_CODE2跳转到第二启动加载程序BL2。因此,在操作S238中,第二启动加载程序BL2被执行。
第二启动加载程序BL2在操作S240中初始化第一DRAM装置417-1,并在全局装置寄存器GSR的状态字段中设置当前状态为第二启动加载程序BL2被执行的状态。换句话讲,在操作S242中,全局状态寄存器GSR的状态字段的状态信息被设置为第二启动加载程序BL2被执行的第二启动加载程序状态。在操作S244中,第二启动加载程序BL2初始化将在第一横向扩展存储器中被初始化的元件。
在操作S246中,第一启动加载程序BL1或第一ROM代码ROM_CODE1将第二完整固件SEF和第二完整固件SEF的存储中涉及的逻辑命令发送到第一横向扩展存储器。如图10所示,第二完整固件SEF包括第二头HEADER2、第二启动加载程序BL2和第二固件MF2。在操作S248中,第二启动加载程序BL2将第二完整固件SEF存储在第一DRAM装置417-1中,并且将在第一DRAM装置417-1中存储的第二完整固件SEF写入(或编程)到由在第一非易失性存储器装置组GP1中包括的非易失性存储器装置NAND定义的第一块BLOCK#0。
在操作S250中,第一启动加载程序BL1或第一ROM代码ROM_CODE1将第一完整固件EF和在第一完整固件EF的存储中涉及的逻辑命令发送到第一横向扩展存储器。如图10所示,第一完整固件EF包括第一头HEADER1、第一启动加载程序BL1(在其他实施例中可不存在)、第一固件MF1、第二头HEADER2、第二启动加载程序BL2和第二固件MF2。在操作S252中,第二启动加载程序BL2将第一完整固件EF存储在第一DRAM装置417-1中,并且将在第一DRAM装置417-1中存储的第一完整固件EF写入(或编程)到由在第一非易失性存储器装置组GP1中包括的非易失性存储器装置NAND定义的第二块BLOCK#1。
在操作S254中,第一启动加载程序BL1或第一ROM代码ROM_CODE1将用于执行第二固件MF2的命令发送到第一横向扩展控制器415-1。在操作S256中,第二启动加载程序BL2响应于用于执行第二固件MF2的命令,将第二固件MF2从第一DRAM装置417-1复制到第二TCM423-2。术语“复制”可具有与术语“影射”的含义相同的含义。
当第二固件MF2被复制到第二TCM 423-2时,第二启动加载程序BL2在操作S258中跳转到第二固件MF2。因此,在操作S260中,第二固件MF2被执行。第二固件MF2在全局状态寄存器GSR的状态字段中设置当前状态为第二固件MF2被执行的状态。换句话讲,在操作S262中,全局状态寄存器GSR的状态字段的状态信息被设置为第二固件MF2被执行的第二固件状态。
在操作S264中,第一启动加载程序BL1或第一ROM代码ROM_CODE1从第一横向扩展控制器415-1读取全局状态寄存器GSR。全局状态寄存器GSR可包括存储状态信息的状态信息区域和存储版本信息的版本信息区域。
在读取全局状态寄存器GSR之后,在操作S266中,第一启动加载程序BL1或第一ROM代码ROM_CODE1将第一固件MF1从DRAM装置360复制到能够被CPU 330访问的第一TCM 331。当如图11所示,CPU 330包括多个核330-1至330-4并且与核330-1至核330-4分别对应的TCM331-3至TCM 331-4存在于SSD控制器310中时,在操作S266中,第一固件MF1的部分MF1-1至部分MF1-4被分别加载到TCM 331-1至TCM 331-4。
在第一固件MF1从DRAM装置360复制到第一TCM 331之后,第一启动加载程序BL1或第一ROM代码ROM_CODE1在操作S268中跳转到第一固件MF1。因此,通过分别加载到TCM 331-1至TCM 331-4的部分MF1-1至部分MF1-4同时激活核330-1至核330-4。换句话讲,在操作S270中,通过CPU 330执行第一固件MF1。
SSD控制器310的第一固件MF1比第一横向扩展存储器的第二固件MF2更晚执行。SSD控制器330的第一固件MF1可晚于第一横向扩展存储器的第二固件MF2被写入到非易失性存储器装置NAND。
虽然已经参照图14和图15描述了包括SSD控制器310和单个横向扩展存储器的数据存储装置的下载顺序,但是本公开的教导也可被应用于包括SSD控制器310和多个横向扩展存储器的数据存储装置的下载顺序。换句话讲,仅在每个横向扩展存储器中执行针对每个横向扩展存储器的固件之后,针对SSD控制器310的固件可被执行。
第一控制器310在操作S222中从连接到第一控制器310的外部装置接收包括第一固件MF1、第二启动加载程序BL2和第二固件MF2的第一完整固件EF,并且在操作S224中将第一完整固件存储在第一易失性存储器装置360中。
第一控制器310在操作S228中将第一控制器310的操作模式从基于物理地址操作的物理模式改变到基于逻辑地址操作的逻辑模式,并且在操作S232中使用第一逻辑命令将第二头HEADER2和第二启动加载程序BL2发送到第二控制器415-1。在操作S240中,第二控制器415-1使用第二启动加载程序BL2来初始化第二易失性存储器装置。
在操作S246中,第一控制器310使用第二逻辑命令将包括第二启动加载程序BL2和第二固件MF2的第二完整固件SEF发送到第二控制器415-1。在操作S248中,第二控制器415-1经由第二易失性存储器装置将第二完整固件SEF写入到第一非易失性存储器装置GP1的第一块BLOCK#0。
第一控制器310在操作S250中使用第三逻辑命令将第一完整固件EF发送到第二控制器415-1。第二控制器415-1在操作S252中经由第二易失性存储器装置将第一完整固件EF写入到第一非易失性存储器装置GP1的第二块BLOCK#1。
第一控制器310在操作S254中将指示第二固件MF2的执行的执行命令发送到第二控制器415-1。第二控制器415-1在操作S256至操作S260中响应于执行命令,下载并执行在存储在第二易失性存储器装置417-1中的第二完整固件SEF中包括的第二固件MF2,并且在操作S264中将指示第二固件MF2被执行的指示信号发送到第一控制器310。第一控制器310在操作S266中响应于指示信号将在第一完整固件EF中包括的第一固件MF1从第一易失性存储器装置360下载到第一控制器310,并且在操作S270中执行第一固件MF1。
外部装置是主机200或者第二横向扩展存储器。第二横向扩展存储器包括第三易失性存储器装置、存储第一完整固件EF的第二非易失性存储器装置GP2以及控制第三易失性存储器装置和第二非易失性存储器装置GP2的第三控制器。换句话讲,当外部装置是主机200时,主机200在操作S222中将第一完整固件EF发送到第一控制器310。
图16A至图16C是用于解释消除多个横向扩展存储器之间的固件差异的方法的概念图。将参照图1至图16C来描述消除多个横向扩展存储器之间的固件差异的方法。
横向扩展存储器510至横向扩展存储器540中的每一个横向扩展存储器可包括横向扩展装置和多个非易失性存储装置。横向扩展装置的结构与参照图3至图5描述的横向扩展装置416-1的结构相同;非易失性存储器装置与在第一非易失性存储器装置组GP1中包括的非易失性存储器装置NAND相同。
在通过SSD控制器310更新或下载针对横向扩展存储器510至横向扩展存储器540中的每一个横向扩展存储器的固件的同时,在数据存储装置300中可能发生突然停电(SPO)。例如,如图16A所示,在针对四个横向扩展存储器510至540中的两个横向扩展存储器510和520中的每一个横向扩展存储器的固件从第一版本VER1改变到第二版本VER2的同时,针对其他两个横向扩展存储器530和540中的每一个横向扩展存储器的固件保持在第一版本VER1。换句话讲,横向扩展存储器510至横向扩展存储器540的固件版本彼此不一致。
当横向扩展存储器510至横向扩展存储器540的固件版本彼此不同时,根据本公开的一些实施例的数据存储装置300可使用针对横向扩展存储器510至横向扩展存储器540中的一个横向扩展存储器的固件,允许横向扩展存储器510至横向扩展存储器540具有相同版本的固件。
详细地,如上面参照图12至图15所述,在SSD控制器310中执行的第一ROM代码ROM_CODE1可在数据存储装置300被恢复到正常状态之后,从横向扩展存储器510、520、530和540中的一个接收或读取针对SSD控制器310的固件和针对横向扩展存储器510至540中的一个横向扩展存储器的固件。例如,在SSD控制器310中执行的第一ROM代码ROM_CODE1可接收或读取在由包括在第一非易失性存储器装置组GP1中的非易失性存储器装置NAND定义的第二块BLOCK#1中存储的第一完整固件。
在SSD控制器310中执行的第一ROM代码ROM_CODE1可将第一完整固件存储在DRAM装置360中。当下载到DRAM装置360的第一完整固件包括第一启动加载程序时,第一启动加载程序执行上面参照图14和图15描述的操作S228、操作S230、操作S232、操作S246、操作S250、操作S254和操作S266。当下载到DRAM装置360的第一完整固件不包括第一启动加载程序时,在SSD控制器310中执行的第一ROM代码ROM_CODE1执行操作S228、操作S230、操作S232、操作S246、操作S250、操作S254和操作S266。
操作S228、操作S230、操作S232、操作S246、操作S250、操作S254和操作S266可被用于图16B和图16C中示出的消除固件差异的方法。其结果是,SSD控制器310和横向扩展存储器510至横向扩展存储器540具有相同的固件的最优版本。
参照图16B,SSD控制器310可使用横向扩展存储器510的固件的版本VERA(=VER2),而允许SSD控制器310和横向扩展存储器510至横向扩展存储器540具有相同版本的固件。参照图16C,SSD控制器310可使用横向扩展存储器540的固件的版本VERA(=VER1),允许SSD控制器310和横向扩展存储器510至横向扩展存储器540具有相同版本的固件。
如上所述,根据本公开的一些实施例,包括使用不同版本的固件的控制器的数据处理系统协调并控制固件的启动顺序和下载顺序,从而同步控制器之中的固件并且允许控制器具有相同版本的固件。
在此描述的存储器是能够存储数据和可执行指令的有形的存储介质,并且在时间指令被存储在存储器中的期间,存储器是非暂时性的。如在此使用的术语“非暂时性的”不被解释为状态的永恒特性,而应被解释为将持续一段时间的状态的特性。术语“非暂时性的”明确否定转瞬即逝的特性,诸如,特定的载波或信号或仅在任意位置任意时间短暂存在的其他形式的特性。在此描述的存储器是制造的物品和/或机器组件。在此描述的存储器是计算机可读介质,计算机能够从计算机可读介质读取数据和可执行指令。
虽然参照本构思的示例性实施例具体示出并描述了在此描述的本构思,但是本领域的普通技术人员将理解,在不脱离由权利要求限定的本构思的精神和范围的情况下,可在形式和细节上进行各种改变。
Claims (25)
1.一种数据存储装置,包括:
第一易失性存储器装置;
第一横向扩展存储器;
第一控制器,被配置为:控制第一易失性存储器装置和第一横向扩展存储器,并执行第一固件,
其中,第一横向扩展存储器包括:
第二易失性存储器装置;
第一非易失性存储器装置;
第二控制器,被配置为:控制第二易失性存储器装置和第一非易失性存储器装置,并执行第二固件,
其中,第一控制器在由第二控制器完成第二固件的启动之后,被协调用于启动第一固件。
2.根据权利要求1所述的数据存储装置,还包括:
电源管理集成电路,被配置为:在第二供应点向第一横向扩展存储器供应第二操作电压,并在第一供应点向第一控制器供应第一操作电压,
其中,第二供应点早于第一供应点。
3.根据权利要求1所述的数据存储装置,其中,第一非易失性存储器装置包括:
第一块,被配置为:存储包括第二启动加载程序和第二固件的第二完整固件;
第二块,被配置为:存储包括第一固件、第二启动加载程序和第二固件的第一完整固件。
4.根据权利要求3所述的数据存储装置,
其中,第一非易失性存储器装置包括多个存储器单元,并且每个存储器单元是二维存储器单元或者三维存储器单元。
5.根据权利要求3所述的数据存储装置,
其中,第二控制器响应于从第一控制器输出的第一物理读命令将第二启动加载程序从第一块加载到第二控制器,使用第二启动加载程序将第一完整固件从第二块发送到第一控制器,并使用第二启动加载程序将第二固件从第一块加载到第二控制器,
其中,第一完整固件的传输中涉及的命令是包括第一物理读命令的第二物理读命令。
6.根据权利要求5所述的数据存储装置,
其中,第二控制器在不使用第二易失性存储器装置的情况下将第二启动加载程序从第一块加载到第二控制器,使用第二启动加载程序初始化第二易失性存储器装置,经由第二易失性存储器装置将第一完整固件发送到第一控制器,并经由第二易失性存储器装置将第二固件加载到第二控制器。
7.根据权利要求3所述的数据存储装置,
其中,第一控制器将从第二控制器发送的第一完整固件存储在第一易失性存储器装置中,将第一控制器自身的操作模式从基于物理地址操作的物理模式改变到基于逻辑地址操作的逻辑模式,并将用于执行第二固件的执行命令发送到第二控制器。
8.根据权利要求7所述的数据存储装置,
其中,第二控制器响应于执行命令来执行第二固件,并将指示第二固件的执行的指示信号发送到第一控制器,
其中,第一控制器响应于指示信号来加载在存储在第一易失性存储器装置中的第一完整固件中包括的第一固件,并执行第一固件。
9.根据权利要求8所述的数据存储装置,
其中,执行第一固件的第一控制器将版本检查命令发送到第二控制器,第二控制器响应于版本检查命令将第二固件的版本信息发送到第一控制器。
10.根据权利要求2所述的数据存储装置,其中,第一控制器被配置为执行以下操作:
从连接到第一控制器的外部装置接收包括第一固件、第二启动加载程序和第二固件的第一完整固件;
将第一完整固件存储在第一易失性存储器装置中;
将第一控制器自身的操作模式从基于物理地址操作的物理模式改变到基于逻辑地址操作的逻辑模式;
使用第一逻辑命令将第二启动加载程序发送到第二控制器,
其中,第二控制器使用第二启动加载程序来初始化第二易失性存储器装置。
11.根据权利要求10所述的数据存储装置,
其中,第一控制器使用第二逻辑命令将包括第二启动加载程序和第二固件的第二完整固件发送到第二控制器,
其中,第二控制器经由第二易失性存储器装置将第二完整固件写入到第一非易失性存储器装置的第一块,
其中,第一控制器使用第三逻辑命令将第一完整固件发送到第二控制器,
其中,第二控制器经由第二易失性存储器装置将第一完整固件写入到第一非易失性存储器装置的第二块。
12.根据权利要求11所述的数据存储装置,
其中,第一控制器将指示执行第二固件的执行命令发送到第二控制器,
其中,第二控制器响应于执行命令加载并执行在存储在第二易失性存储器装置中的第二完整固件中包括的第二固件,并将指示第二固件被执行的指示信号发送到第一控制器;
其中,第一控制器响应于指示信号来加载在存储在第一易失性存储器装置中的第一完整固件中包括的第一固件,并执行第一固件。
13.根据权利要求10所述的数据存储装置,
其中,外部装置是主机或者第二横向扩展存储器,
其中,第二横向扩展存储器包括:
第三易失性存储器装置;
第二非易失性存储器装置,被配置为:存储第一完整固件;
第三控制器,被配置为:控制第三易失性存储器装置和第二非易失性存储器装置。
14.根据权利要求2所述的数据存储装置,
其中,第一控制器包括第一通用输入/输出引脚;
其中,第二控制器包括第二通用输入/输出引脚;
其中,第一通用输入/输出引脚分别与第二通用输入/输出引脚连接;
其中,第一控制器和第二控制器中的每一个控制器检查第一通用输入/输出引脚中的一个引脚的状态,并确定所述数据存储装置的操作模式是启动模式还是下载模式。
15.根据权利要求14所述的数据存储装置,
其中,第一非易失性存储器装置包括:
第一块,被配置为:存储包括第二启动加载程序和第二固件的第二完整固件;
第二块,被配置为:存储包括第一固件、第二启动加载程序和第二固件的第一完整固件,
其中,当操作模式是启动模式时,第二控制器将在第二块中存储的第一完整固件发送到第一控制器,将在第一块中存储的第二固件加载到第二控制器,响应于指示执行第二固件的执行命令来执行第二固件,将指示第二固件被执行的指示信号发送到第一控制器;第一控制器响应于指示信号来下载在第一完整固件中包括的第一固件,并执行第一固件。
16.根据权利要求14所述的数据存储装置,
其中,第一非易失性存储器装置包括第一块和第二块,
其中,当操作模式是下载模式时,
第一控制器从连接到第一控制器的外部装置接收包括第一固件、第二启动加载程序和第二固件的第一完整固件,将第一完整固件存储在第一易失性存储器装置中,并将包括第二启动加载程序和第二固件的第二完整固件发送到第二控制器;
第二控制器将第二完整固件写入到第一块;
第一控制器将第一完整固件发送到第二控制器;
第二控制器将第一完整固件写入到第二块,响应于从第一控制器输出的用于指示执行第二固件的执行命令来执行第二固件,并将指示第二固件被执行的指示信号发送到第一控制器;
第一控制器响应于指示信号来下载在存储在第一易失性存储器装置中的第一完整固件中包括的第一固件,并执行第一固件。
17.一种数据存储装置,包括:
第一易失性存储器装置;
多个横向扩展存储器;
第一控制器,被配置为:控制第一易失性存储器装置和所述多个横向扩展存储器,
其中,每个横向扩展存储器包括:
第二易失性存储器装置;
非易失性存储器装置;
第二控制器,被配置为:控制第二易失性存储器装置和非易失性存储器装置,
其中,第一控制器执行第一固件,在每个横向扩展存储器中包括的第二控制器执行第二固件,第一控制器在由各个横向扩展存储器中包括的每个第二控制器执行第二固件之后,被协调用于执行第一固件。
18.根据权利要求17所述的数据存储装置,
其中,第一控制器响应于多个指示信号之中的最后指示信号来执行第一固件,其中,所述多个指示信号中的每个指示信号指示第二固件被对应的一个第二控制器执行,并且所述多个指示信号被各个第二控制器发送到第一控制器。
19.根据权利要求17所述的数据存储装置,
其中,第一控制器将版本检查命令发送到第二控制器,并且每个第二控制器响应于版本检查命令将第二固件的版本信息发送到第一控制器。
20.一种数据处理系统,包括:
主机;
连接到主机的数据存储装置,
其中,数据存储装置包括:
第一易失性存储器装置;
横向扩展存储器;
第一控制器,被配置为:控制第一易失性存储器装置和横向扩展存储器,并执行第一固件,
其中,横向扩展存储器包括:
第二易失性存储器装置;
非易失性存储器装置;
第二控制器,被配置为:控制第二易失性存储器装置和非易失性存储器装置,并执行第二固件,
其中,第一控制器在由第二控制器完成第二固件的启动之后,被协调用于启动第一固件。
21.一种集成的数据存储系统,包括:
第一易失性存储器;
横向扩展存储器,包括第二易失性存储器和第一非易失性存储器;
主第一控制器,执行第一固件,并且被配置为控制第一易失性存储器和横向扩展存储器器,
其中,横向扩展存储器使用第二控制器来执行第二固件,并且第二控制器被配置为控制第二易失性存储器和第一非易失性存储器,
其中,主第一控制器在第二控制器完成启动第二固件之后,被协调用于启动第一固件。
22.根据权利要求21所述的数据存储系统,
其中,横向扩展存储器还包括第二控制器。
23.根据权利要求21所述的数据存储系统,
其中,通过电源管理电路供应的操作电压来协调主第一控制器和第二控制器。
24.根据权利要求21所述的数据存储系统,
其中,横向扩展存储器将第二启动加载程序和第二固件存储在第一块中;
其中,横向扩展存储器将第二启动加载程序、第二固件和第一固件存储在第二块中,
其中,第二控制器响应于从主第一控制器输出的第一物理读命令将第二启动加载程序从第一块加载到第二控制器,并使用第二启动加载程序将第二启动加载程序、第二固件和第一固件从第二块发送到主第一控制器,并使用第二启动加载程序将第二固件从第一块加载到第二控制器。
25.根据权利要求24所述的数据存储系统,
其中,第二控制器使用第二启动加载程序来初始化第二易失性存储器,经由第二易失性存储器将第一完整固件发送到主第一控制器,并经由第二易失性存储器将第二固件加载到第二控制器,其中,第一完整固件包括第一固件、第二启动加载程序和第二固件。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20160002310 | 2016-01-07 | ||
KR10-2016-0002310 | 2016-01-07 | ||
KR10-2016-0008160 | 2016-01-22 | ||
KR1020160008160A KR102395195B1 (ko) | 2016-01-07 | 2016-01-22 | 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106951180A true CN106951180A (zh) | 2017-07-14 |
CN106951180B CN106951180B (zh) | 2021-04-20 |
Family
ID=59442979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611204422.6A Active CN106951180B (zh) | 2016-01-07 | 2016-12-23 | 数据存储装置以及包括数据存储装置的数据处理系统 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR102395195B1 (zh) |
CN (1) | CN106951180B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109814813A (zh) * | 2017-11-20 | 2019-05-28 | 佳能株式会社 | 具有多个存储器的装置、控制方法和存储介质 |
CN110347359A (zh) * | 2018-04-04 | 2019-10-18 | 爱思开海力士有限公司 | 包括扩展存储卡的数据处理系统 |
CN111399495A (zh) * | 2018-12-31 | 2020-07-10 | 百度(美国)有限责任公司 | 具有灵活主机和客户端配置的自动驾驶计算与存储扩展装置 |
CN113647091A (zh) * | 2019-03-27 | 2021-11-12 | 雪力光纤有限公司 | 用于调试相机控制单元(ccu)的方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220229650A1 (en) * | 2021-01-21 | 2022-07-21 | Nvidia Corporation | Semiconductor component update device |
CN114253619A (zh) * | 2021-12-21 | 2022-03-29 | 苏州忆联信息系统有限公司 | SSD多级Boot的方法、装置、计算机设备及存储介质 |
KR20230139262A (ko) * | 2022-03-25 | 2023-10-05 | 삼성전자주식회사 | 시스템 부팅을 위한 컨트롤러를 포함하는 전자 장치 및 그의 동작 방법 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6513114B1 (en) * | 1999-12-08 | 2003-01-28 | Dell Products L.P. | System and methods for providing selectable initialization sequences |
CN101937349A (zh) * | 2010-08-28 | 2011-01-05 | 中兴通讯股份有限公司 | 一种无线通信终端及其软件升级方法 |
CN102272745A (zh) * | 2009-01-08 | 2011-12-07 | 美光科技公司 | 存储器系统控制器 |
CN103064692A (zh) * | 2011-10-19 | 2013-04-24 | 北京市三希电子科技开发公司 | 一种固件的更新方法及装置 |
US20140108703A1 (en) * | 2010-03-22 | 2014-04-17 | Lsi Corporation | Scalable Data Structures for Control and Management of Non-Volatile Storage |
CN104115136A (zh) * | 2011-09-30 | 2014-10-22 | 英特尔公司 | 非易失性随机访问存储器中存储bios的装置、方法和系统 |
CN104424140A (zh) * | 2013-08-29 | 2015-03-18 | 三星电子株式会社 | 统一可扩展固件接口驱动器 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8706955B2 (en) * | 2011-07-01 | 2014-04-22 | Apple Inc. | Booting a memory device from a host |
US20150347151A1 (en) | 2014-05-28 | 2015-12-03 | Diablo Technologies Inc. | System and method for booting from a non-volatile memory |
WO2016032817A1 (en) | 2014-08-26 | 2016-03-03 | Marvell World Trade Ltd. | Storage device controller architecture |
-
2016
- 2016-01-22 KR KR1020160008160A patent/KR102395195B1/ko active IP Right Grant
- 2016-12-23 CN CN201611204422.6A patent/CN106951180B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6513114B1 (en) * | 1999-12-08 | 2003-01-28 | Dell Products L.P. | System and methods for providing selectable initialization sequences |
CN102272745A (zh) * | 2009-01-08 | 2011-12-07 | 美光科技公司 | 存储器系统控制器 |
US20140108703A1 (en) * | 2010-03-22 | 2014-04-17 | Lsi Corporation | Scalable Data Structures for Control and Management of Non-Volatile Storage |
CN101937349A (zh) * | 2010-08-28 | 2011-01-05 | 中兴通讯股份有限公司 | 一种无线通信终端及其软件升级方法 |
CN104115136A (zh) * | 2011-09-30 | 2014-10-22 | 英特尔公司 | 非易失性随机访问存储器中存储bios的装置、方法和系统 |
CN103064692A (zh) * | 2011-10-19 | 2013-04-24 | 北京市三希电子科技开发公司 | 一种固件的更新方法及装置 |
CN104424140A (zh) * | 2013-08-29 | 2015-03-18 | 三星电子株式会社 | 统一可扩展固件接口驱动器 |
Non-Patent Citations (2)
Title |
---|
NITIN AGRAWAL 等: "Emulating goliath storage systems with David", 《ACM TRANSACTIONS ON STORAGE》 * |
仇德成 等: "存储器扩展中片选的连接", 《河西学院学报》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109814813A (zh) * | 2017-11-20 | 2019-05-28 | 佳能株式会社 | 具有多个存储器的装置、控制方法和存储介质 |
CN110347359A (zh) * | 2018-04-04 | 2019-10-18 | 爱思开海力士有限公司 | 包括扩展存储卡的数据处理系统 |
CN111399495A (zh) * | 2018-12-31 | 2020-07-10 | 百度(美国)有限责任公司 | 具有灵活主机和客户端配置的自动驾驶计算与存储扩展装置 |
CN111399495B (zh) * | 2018-12-31 | 2023-10-10 | 百度(美国)有限责任公司 | 具有灵活主机和客户端配置的自动驾驶计算与存储扩展装置 |
CN113647091A (zh) * | 2019-03-27 | 2021-11-12 | 雪力光纤有限公司 | 用于调试相机控制单元(ccu)的方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20170082954A (ko) | 2017-07-17 |
CN106951180B (zh) | 2021-04-20 |
KR102395195B1 (ko) | 2022-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106951180A (zh) | 数据存储装置以及包括数据存储装置的数据处理系统 | |
US10114550B2 (en) | Data storage device and data processing system including the data storage device | |
US10579279B2 (en) | Data storage device and data processing system having the same | |
KR102387968B1 (ko) | 데이터 저장 장치와 그 동작 방법 | |
KR102527992B1 (ko) | 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템 | |
US9996282B2 (en) | Method of operating data storage device and method of operating system including the same | |
US7937523B2 (en) | Memory system with nonvolatile semiconductor memory | |
US11287978B2 (en) | Data storage devices, having scale-out devices to map and control groups on non-volatile memory devices | |
CN108572933A (zh) | 用于直接存储器存取的数据缓冲器指针找取 | |
US20170344430A1 (en) | Method and apparatus for data checkpointing and restoration in a storage device | |
CN108459974A (zh) | 集成闪存的高带宽存储器设备 | |
CN108351752A (zh) | 存储虚拟化卸载 | |
US10338826B2 (en) | Managed-NAND with embedded random-access non-volatile memory | |
US20170357462A1 (en) | Method and apparatus for improving performance of sequential logging in a storage device | |
US10114555B2 (en) | Semiconductor device having register sets and data processing device including the same | |
CN105718385A (zh) | 数据存储装置及其操作方法与数据处理系统 | |
CN109643574B (zh) | 用于在完成数据加载操作之前启动预读取操作的方法和设备 | |
EP3989052B1 (en) | Method of operating storage device and method of operating storage system using the same | |
US20240078112A1 (en) | Techniques for decoupled access-execute near-memory processing | |
JP2022151611A (ja) | 統合された3次元(3d)dramキャッシュ | |
US20160291873A1 (en) | Data storage device and data processing system having the same | |
CN106257401A (zh) | 数据存储装置 | |
US20230259747A1 (en) | Accelerator system for training deep neural network model using nand flash memory and operating method thereof | |
KR102450556B1 (ko) | 불휘발성 메모리 장치들을 제어할 수 있는 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템 | |
US10489077B2 (en) | Systems and methods for controlling metapage storage on data storage devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |