本申请要求于2019年7月26日提交的美国非临时专利申请16/523,429的权益,其全部内容通过引用并入本文。
技术领域
本公开总体上涉及串行存储器设备,并且更具体地涉及用于在串行存储器设备中启用或选择多位串行输入/输出(I/O)模式而不是单位串行I/O模式的方法和装置。
背景技术
计算设备(例如,膝上型计算机、移动电话等)可以包括一个或多个处理器以执行各种功能,诸如电话、无线数据访问、相机/视频功能等。处理器可以耦合到其中可以存储有处理器指令和数据的存储器。存储器可以与半导体管芯上的处理器一起嵌入,或者是不同半导体管芯的一部分。存储器可以执行各种功能。例如,存储器可以用作高速缓存、寄存器文件或存储装置。存储器可以是各种类型中的任何一种。例如,存储器可以是静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、磁性随机存取存储器(MRAM)、NAND闪存或NOR闪存等。一些类型的闪存设备仅提供串行数据访问,而不是并行数据访问。这种闪存设备通常称为串行闪存设备。
一些类型的串行闪存设备能够被配置为以多个串行I/O模式中所选择的模式操作,诸如单位串行I/O模式和四位串行I/O模式。在单位I/O模式下,数据位在单个输入线上以串行格式被输入到闪存设备,并且在单个输出线上以串行格式从闪存设备中读取。在四位I/O模式下,数据在四个串行I/O线上被输入和输出。I/O模式可以使用闪存设备中的配置寄存器来选择。已知用于选择I/O模式的若干方法,并且所采用的方法可以取决于闪存设备的特性,诸如配置寄存器是易失性的还是非易失性的。选择I/O模式的一种方法涉及:一经启动并入了闪存设备的系统,使用单位I/O模式从闪存设备本身中的文件中读取配置信息、并且将在配置信息中所指示的I/O模式使能位(例如,四(quad)使能位或“QE”位)的值写入配置寄存器。响应于以这种方式设置QE位值,闪存设备将自身配置为以四位串行I/O模式而不是单位串行I/O模式操作。
使用配置寄存器来选择I/O模式,可能会给并入了串行闪存设备的设备的制造商带来很多挑战。例如,在诸如由不同存储器设备制造商生产的所有串行闪存设备中,配置寄存器用于选择I/O模式的方式可能不相同。期望提供与串行闪存I/O模式选择相关的改进的方法和装置。
技术实现要素:
该概述标识了一些示例性方面的特征并且不是所公开的主题的排他性或详尽描述。附加特征和方面被描述,并且本领域技术人员在阅读以下详细描述并且查看形成其一部分的附图之后将清楚。
根据至少一个实施例的一种用于存储器设备模式选择的方法包括:响应于存储器设备初始化条件而检索存储器设备配置信息,并且将存储器设备配置信息中包括的配置寄存器位掩码写入存储器设备的配置寄存器。写入命令可以被用于将配置位掩码写入配置寄存器,写入命令也可以被包括在存储器设备配置信息中。存储器设备可以是串行闪存。配置寄存器位掩码可以包括I/O模式位设置,该I/O模式位设置指示使得存储器能够以诸如四位I/O模式等多位I/O模式操作。
根据至少一个实施例的一种用于存储器设备模式选择的装置,包括经由链路耦合到存储器设备的主机。主机可以包括处理器系统,该处理器系统被配置为响应于存储器设备初始化条件而检索存储器设备配置信息,并且将存储器设备配置信息中包括的配置寄存器位掩码写入存储器设备的配置寄存器。写入命令可以被用于将配置位掩码写入配置寄存器,该写入命令也可以被包括在存储器设备配置信息中。存储器设备可以是串行闪存。配置寄存器位掩码可以包括I/O模式位设置,该I/O模式位设置指示使得存储器能够以诸如四位I/O模式等多位I/O模式操作。
根据至少一个实施例的另一用于存储器设备模式选择的装置,包括存储器设备和处理器系统,该处理器系统被配置为响应于存储器设备初始化条件而检索存储器设备配置信息,并且将存储器设备配置信息中包括的配置寄存器位掩码写入存储器设备的配置寄存器。写入命令可以被用于将配置位掩码写入配置寄存器,该写入命令也可以被包括在存储器设备配置信息中。存储器设备可以是串行闪存。配置寄存器位掩码可以包括I/O模式位设置,该I/O模式位设置指示使得存储器能够以诸如四位I/O模式等多位I/O模式操作。
附图说明
现在将参考附图通过示例而非限制的方式在详细描述中呈现装置和方法的各个方面,在附图中:
图1示出了根据本公开的某些方面的用于存储器设备模式选择的装置。
图2A示出了串行闪存在单位I/O模式下的常规操作的示例。
图2B示出了串行闪存在四位I/O模式下的常规操作的示例。
图3示出了可配置为以单位I/O模式和四位I/O模式中的一种来操作的常规串行闪存设备的配置寄存器的示例。
图4示出了根据本公开的某些方面的配置信息的示例。
图5是示出根据本公开的某些方面的用于存储器设备模式选择的方法的流程图。
图6是示出根据本公开的某些方面的用于存储器设备模式选择的另一方法的流程图。
图7是示出根据本公开的某些方面的用于存储器设备模式选择的又一方法的流程图。
图8示出了根据本公开的某些方面的用于存储器设备模式选择的系统。
具体实施方式
下面结合附图阐述的详细描述旨在作为对各种配置的描述,并且不旨在表示可以实践本文中描述的概念的唯一配置。详细描述包括用于提供对各种概念的透彻理解的具体细节。然而,对于本领域技术人员很清楚的是,可以在没有这些具体细节的情况下实践这些概念。在某些情况下,众所周知的结构和组件以框图形式示出以避免混淆这种概念。
如本文中使用的,动词“耦合”的各种时态的术语“耦合到”可以表示元件A直接连接到元件B或者其他元件可以连接在元件A和B之间(即,元件A与元件B间接连接),以操作某些预期功能。在电气组件的情况下,术语“耦合到”在本文中也可以用于表示使用电线、迹线或其他导电材料来电连接元件A和B(以及电连接在它们之间的任何组件)。在一些示例中,术语“耦合到”可以表示元件A和B之间的电能传输,以操作某些预期功能。
在一些示例中,术语“电连接”可以表示具有电流或可配置为具有电流在元件A和B之间流动。例如,元件A和B可以经由电阻器、晶体管、或电感器、以及导线、迹线或其他导电材料和组件被连接。此外,对于射频功能,元件A和B可以经由电容器“电连接”。
术语“第一”、“第二”、“第三”等可以被采用以便于引用,并且可能不具有实质性含义。同样,组件/模块的名称可以被采用以便于引用,并且可能不限制组件/模块。本公开中呈现的模块和组件可以以硬件、软件或者硬件和软件的组合来实现。
术语“总线系统”可以规定,耦合到“总线系统”的元件可以直接或间接地在它们之间交换信息。以这种方式,“总线系统”可以包含多个物理连接、以及诸如缓冲器、锁存器、寄存器等中间级。模块可以以硬件、软件或硬件和软件的组合来实现。术语“软件”和“固件”在本公开中同义使用。
提出了用于在串行闪存设备中进行输入/输出(I/O)模式选择的方法和装置。串行闪存通常是一种紧凑的低功耗设备,该设备仅提供对数据的串行访问(即,无并行访问)。串行闪存设备不是被配置为寻址单个字节,而是被配置为通过以下方式读取或写入地址空间中的连续字节组:接收要写入的串行格式位作为输入并且提供已被读取的串行格式位作为输出。常规闪存设备通常可以以单位I/O模式操作,在这种模式下,要写入的所有位都在单个输入数据线上被接收,并且已被读取的所有位都在单个输出数据线上被提供。由于以单位I/O模式操作,所以串行外设接口(SPI)协议通常用于访问闪存设备。然而,除了单位I/O模式之外,一些闪存设备还可以以一种或多种多位I/O模式操作。常见的多位I/O模式是四位I/O模式,在这种模式下,数据在四个I/O线上被输入和输出(即,每个时钟周期四个位)。双位I/O模式是另一种常见的多位I/O模式,在这种模式下,数据在两个I/O线上被输入和输出(即,每个时钟周期两个位)。
如下所述,可以通过设置设备中的配置寄存器中的位值来选择其中串行闪存设备将要以其操作的I/O模式。例如,配置寄存器位中的一个可以是四使能位或“QE”位。当闪存设备初始上电时,配置寄存器的QE位可以被设置为默认值,例如“0”,以指示闪存设备可以以单位I/O模式操作。如果随后“1”被写入QE位,则闪存设备可以通过变得可以以四位I/O模式操作来做出响应。QE位可以被设置以指示四位I/O模式操作,作为包括或包含闪存的装置(例如,计算系统、移动计算设备等)的启动过程的一部分。
虽然单位I/O模式的方面是有些标准化的(例如,按照SPI协议),但提供这种模式的串行闪存设备中的多位I/O模式的方面没有标准化。例如,多位I/O模式使能位(例如,QE)在配置寄存器中的位置、配置寄存器是易失性的还是非易失性的、以及多位I/O模式下数据的读取和写入方式(例如,读取和写入命令、等待时间规范等)可能在由不同制造商生产的闪存设备之间不同,或者甚至可能在来自同一制造商的不同闪存设备产品之间不同。为简洁起见,以下描述的这些或其他相关方面中的、在功能上彼此不同的闪存设备,在本公开中称为“不同存储器”,或者在特定或示例性存储器设备的上下文中称为“另一存储器”或“其他存储器”。
图1示出了根据本公开的某些方面的装置100,装置100包括处理器系统或主机102、存储器104、以及耦合主机102和存储器104的链路106。存储器104可以是例如具有以下特征的串行闪存:通过该特征,存储器104可选择性地以单位I/O模式和多位(例如,四位)I/O模式中的一种模式操作。如下所述,存储器104位以由配置寄存器108(通常也称为状态寄存器)中的位设置指示的I/O模式操作。
装置100可以是例如以下中的一种:计算系统(例如,服务器、数据中心、台式计算机)、移动计算设备(例如,膝上型电脑、手机、车辆等)、互联网物(IoT)设备、虚拟现实(VR)系统、增强现实(AR)系统等。主机102可以包括至少一个处理器110(例如,中央处理单元(CPU)、数字信号处理器(DSP)、图形处理单元(GPU)等),该至少一个处理器110经由链路106耦合到存储器104以执行一个或多个计算功能,诸如数据处理、数据通信、图形显示、相机操作、AR或VR渲染、图像处理等。例如,存储器104可以存储针对至少一个处理器110用以执行一个或多个上述计算功能的指令或数据(例如,应用112)。主机102可以被实现为片上系统(SoC),该SoC包括通过数据总线或其他互连(为清楚起见而未示出)互连的多个处理器和其他设备。在一些示例中,链路106可以是主机102与存储器104之间的芯片到芯片或管芯到管芯链路,主机102和闪存104在单独的管芯上。在其他示例中,链路106可以是管芯内链路,主机102和存储器104在同一管芯上。
主机102可以经由链路106与存储器104传送数据和命令,要么直接地在处理器110的控制下,要么间接地由处理器110经由存储器控制器114或其他中间设备。处理器110可以在固件的控制下操作,固件可以包括与下面描述的多位I/O模式配置方法相关的加载器116。虽然在图1中,为了清楚起见,加载器116被概念性地示出为驻留在处理器110中,但是本领域普通技术人员理解,加载器(固件)116可以存储在或驻留在处理器110可访问的任何存储位置,诸如例如,在主机102中的或连接到主机102的只读存储器(未示出)中。加载器116可以以常规方式在处理器110上执行,这可以包括处理器110根据需要从这种固件存储器中取回指令。处理器110可以执行加载器116以执行下面关于图5-图7描述的方法(或其部分)。
图2A示出了表示当存储器104以单位I/O模式操作时,可以经由主机102与存储器104之间的链路106的对应信号线来传送的信号的波形的示例。信号(和对应信号线)可以包括例如时钟(SCLK)、串行数据输出(MOSI)、串行数据输入(MISO)和芯片使能(SS2)。由于这种信号及其操作是本领域普通技术人员公知的,因此在本文中不描述该方面。注意,在该示例中,在单位I/O模式下使用链路106的四个信号线。
图2B示出了表示当存储器104以四位I/O模式操作时,可以经由主机102与存储器104之间的链路106的对应信号线来传送的信号的波形的示例。信号可以包括例如芯片使能信号(SS)、时钟信号(SCLK)、第一位串行数据信号(DQ0)、第二位串行数据信号(DQ1)、第三位串行数据信号(DQ2)和第四位串行数据信号(DQ3)。由于这种信号及其操作是本领域普通技术人员公知的,因此在本文中不描述该方面。注意,在该示例中,在四位I/O模式下使用链路106的6个信号线。还注意,在四位I/O模式下用于传送DQ0和DQ1信号的两个信号线也被用于在单位I/O模式下传送MOSI和MISO信号(图2A)。链路106的一些信号线可以在不同I/O模式被选择时重新用于备选功能。
图3示出了存储器104的配置寄存器108(图1)的示例性结构。配置寄存器108可以由例如16位(在图3中标记为S0-S15)组成。存储器104将其自身配置为基于可以写入配置寄存器108的16位字来在各个方面进行操作。本领域普通技术人员理解由存储器104的制造商出版文档中所述的配置寄存器108的各个位的功能(通常称为数据表)。由于存储器104可以是商业上可获取的类型,因此本领域普通技术人员容易获取这种文档。在配置寄存器108的位中,只有QE位(在本示例中在S9位位置,并且为了清楚起见,在图3中用虚线圈出)与本公开相关。因此,为简洁起见,配置寄存器108的除QE位以外的位的功能在本公开中不描述。
应当理解,图3所示的配置寄存器108的结构(即,位函数和对应的位位置)仅作为示例,并且不同存储器(诸如由其他制造商提供的存储器、或者甚至同一制造商的不同产品)可以具有不同结构。不管这种结构上的可能差异如何,至少一位是I/O模式位,该位涉及启用多位串行I/O模式,或者更一般地,涉及选择多个串行I/O中的一种。一个或多个I/O模式位的I/O模式位设置可以指示第一I/O模式和第二I/O模式中的一种。例如,I/O模式位设置可以指示单位串行I/O模式和多位(例如,双位、四位等)串行I/O模式中的一种。在图3所示的示例中,QE位(S9)可以通过对配置寄存器108执行写入操作而设置为“0”或“1”。例如,响应于QE位被设置为“0”,存储器104可以将自身配置为以上述单位I/O模式操作,并且响应于QE位被设置为“1”,存储器104可以将自身配置为以上述四位I/O模式操作。存储器104可以具有默认I/O模式,在这种模式下,它在上电时(即,在对配置寄存器108的任何写入操作之前)开始操作。例如,在上电时,存储器104可以默认为单位I/O模式。
图4示出了存储器设备配置信息400的示例性结构。存储器设备配置信息400可以包括配置寄存器位掩码,该配置寄存器位掩码指示上述I/O模式位的位位置、和将I/O模式位设置为用以指示多位I/O模式的值。例如,根据图4所示的示例性结构,存储器设备配置信息400的配置寄存器位掩码(QE位掩码)可以指示QE位在配置寄存器108的S9位位置并且被设置为“1”以启用四位I/O模式。QE位掩码的长度可以是例如一个字节。应当理解,配置寄存器位掩码在不同存储器之间可以不同,因为如上所述,I/O模式位的配置寄存器位位置在不同存储器之间可以不同。例如,在不同存储器中(不同于具有图3所示的示例性配置寄存器结构的示例性存储器104),QE位可以位于除S9以外的其他位位置。
存储器设备配置信息400可以包括写入命令,该写入命令是存储器104通过执行写入操作来响应于的指令或命令。类似地,存储器设备配置信息400可以包括读取命令,该读取命令是存储器104通过执行读取操作而响应于的指令或命令。应当理解,写入命令和读取命令在不同存储器之间可以不同。
存储器设备配置信息400还可以包括等待时间。等待时间是以下之间的最小时间量:在写入操作被执行之后、新被写入的数据被指定为可读之前。应当理解,等待时间在不同存储器之间可以不同。
存储器设备配置信息400还可以包括唯一地标识来自各种不同存储器(例如,由不同制造商生产)的存储器104的设备识别(ID)信息。设备ID信息可以包括例如共同标识特定制造商的特定产品的制造商ID和存储器ID。
存储器设备配置信息400可以具有图4所示的示例性结构或任何其他结构。不管该结构是什么,都可以采用相同的结构来存储多个不同存储器中的任何存储器的存储器设备配置信息400。例如,图4所示的示例性结构指示存储器设备配置信息400可以由八个连续字节组成:制造商ID(一个字节)、存储器ID(两个字节)、QE位掩码(一个字节)、写入命令(一个字节)、读取命令(一个字节))和等待时间(两个字节)。不仅可以采用这种结构来存储具有图3所示的示例性配置信息108的存储器104的存储器设备配置信息400,也可以用于存储具有其他配置寄存器结构的其他(即,不同)存储器的存储器设备配置信息400。然而,应当理解,图4所示的结构只是示例性的。在其他示例(未示出)中,存储器设备配置信息400可以包括比所示示例中更多或更少的信息,并且每个字段或信息项可以由比所示示例中更多或更少的位/字节表示。此外,在其他示例中,存储器设备配置信息400的各个字段或项目可以以与所示示例中不同的顺序组织,或者非连续地存储。
图5示出了用于选择存储器I/O模式的方法500。下面关于图5描述的操作可以由例如装置100(图1)或在其控制下实现。更具体地,该操作可以由例如执行加载器116的处理器110或在其控制下实现。
如框502所示,方法500可以包括响应于存储器设备初始化条件而检索存储器设备配置信息。存储器设备配置信息可以包括配置寄存器位掩码。配置寄存器位掩码可以包括I/O模式位设置,该I/O模式位设置指示四位I/O模式或其他多位I/O模式的启用。存储器设备初始化条件可以是例如其中装置100(图1)被启动、上电或以其他方式初始化以准备操作的条件。
如框504所示,方法500还可以包括将配置寄存器位掩码写入存储器设备的配置寄存器,诸如存储器104的配置寄存器108(图1)。在检索到的存储器设备配置信息中所指示的写入命令,可以被用于将配置寄存器位掩码写入配置寄存器。例如,该写入操作可以包括向配置寄存器108的QE位写入值,该值指示启用四位I/O模式的操作。根据上面关于图3描述的示例,“1”可以被写入配置寄存器108的S9位(即,QE位)以启用四位I/O模式的操作。注意,在向配置寄存器108的QE位写入指示启用四位I/O模式的操作的值之前,存储器104可以以单位I/O模式操作而不能够以四位I/O模式操作。然而,响应于将该值写入QE位,存储器104可以将其自身配置为随后以四位I/O模式操作。即,存储器104可以从以单位I/O模式操作切换或改变为以四位I/O模式操作。虽然未在图5中示出,但是在在以这种方式启用四位I/O模式之后,可以使用四位I/O模式执行另外的写入和读取操作。
图6示出了用于选择存储器I/O模式的方法600。方法600可以是上述方法500(图5)的示例。下面关于方法600描述的操作可以由例如处理器110或在其控制下实现。处理器110可以在加载器116(例如,处理器的固件的一部分)的控制下执行方法600。在该示例性方法600中,上述存储器设备配置信息400(图4)被预先存储在存储器104的引导扇区118(图1)中。在执行方法600之前,诸如装置100的制造商(即,原始设备制造商或“OEM”)等实体可以将存储器设备配置信息400存储在引导扇区118中。该实体可以使用任何方式将存储器设备配置信息400存储在引导扇区118中,诸如例如,基于计算机的工具(未示出),存储器104可以连接到该工具,以在将存储器104并入装置100之前对存储器104进行配置。
如框602所示,方法600可以包括响应于包含存储器104的装置100的启动,而从存储器104的引导扇区118(图1)中读取存储器设备配置信息400(图4)。因为读取存储器设备配置信息400可以由处理器110或在其的控制下实现,所以箭头120(图1)概念性地指示由处理器110从引导扇区118中检索存储器设备配置信息400。应当注意,存储器104可以以单位I/O模式操作,作为存储器104在其中上电的默认模式。因此,处理器110可以使用单位I/O模式来读取存储器设备配置信息400。处理器110不必使用读取命令从引导扇区118中读取存储器设备配置信息400,因为使用单位I/O模式的读取和写入操作在各种不同存储器之间被标准化。如本领域普通技术人员所理解的,用于在单位I/O模式下执行读取操作的命令是“标准”,因为相同命令可以以相同方式用于不同存储器。在四位I/O模式下读取和写入数据时,标准读取和写入命令可以替代在存储器设备配置信息400中指示的读取和写入命令来使用。
如框604所示,方法600还可以包括从存储器104中读取设备ID信息122(图1)。由于读取设备ID信息122可以由处理器110或在其控制下实现,所以箭头124(图1)概念性地指示由处理器110从存储器104中的位置中检索设备ID信息122。处理器110可以使用标准命令(例如,根据JEDEC标准)来读取设备ID信息。如本领域普通技术人员所理解的,用于读取设备ID的(例如,JEDEC)命令是“标准”,因为相同命令可以以相同方式用于不同存储器。从存储器104中读取设备ID信息122的位置对于处理器110可以是清楚的。即,JEDEC命令不要求处理器110提供地址或以其他方式指定从其中读取所请求的设备ID信息的源。在预期使用标准JEDEC命令进行检索时,存储有设备ID信息的位置可以在不同存储器之间而不同。存储器制造商可以选择存储器中存储有设备ID信息的位置,并且将设备ID信息存储在其中以便以对请求者(例如,处理器)清楚的方式进行检索。因此,在设备100的制造商将存储器104并入设备100时,设备ID信息可能已经存储在存储器104中(即,它可以被预先存储)。
如框606所示,方法600然后可以包括:将使用标准(例如,JEDEC)命令从存储器104中读取的设备ID信息122、与设备ID信息进行比较以确定它们是否匹配,设备ID信息包括使用单位I/O模式从存储器104的引导扇区118中读取的存储器设备配置信息400的制造商ID部分和存储器ID部分。如果它们不匹配,则可以执行错误处理步骤(未示出)。
如框608所示,如果比较(框606)没有指示错误,则方法600可以继续将存储器设备配置信息400的配置寄存器位掩码部分写入存储器104的配置寄存器108。可以使用在检索到的存储器设备配置信息400中所指示的写入命令。备选地,可以使用标准命令。该写入操作可以包括向配置寄存器108的QE位写入值,该值指示启用四位I/O模式的操作。根据上面关于图3描述的示例,“1”可以被写入配置寄存器108的S9位(即,QE位)以启用四位I/O模式的操作。箭头126(图1)概念性地指示由处理器110将包括QE位的配置寄存器位掩码写入存储器104的配置寄存器108。响应于写入该QE位值,存储器104可以将自身配置为以四位I/O模式而不是单位I/O模式操作。
处理器110然后可以确认QE位被正确写入。然而,在如框612所示的读取配置寄存器108的内容之前,处理器110可以确保至少在存储器设备配置信息400中指示的等待时间的延迟时间已经过去,如框610所示。处理器110可以使用单位I/O模式读取配置寄存器108。
如框614所示,方法600然后可以包括将从配置寄存器108中读取的QE位的值(每个框612)、与写入(每个框608)配置寄存器108的QE位的值进行比较。如果它们不匹配,则可以执行错误处理步骤(未示出)。如果比较(框614)没有指示错误,则方法600完成,并且可以使用四位I/O模式执行另外的存储器访问操作。这种另外的存储器访问操作可以包括在例如一个或多个应用112的控制下读取或写入数据。
图7示出了用于选择存储器I/O模式的方法700。方法700可以是上述方法500(图5)的示例。下面关于方法700描述的操作可以由例如处理器110或在其控制下实现,处理器110不仅在图1中示出,而且在图8中的系统800中,还包括(除了图1所示的元件,诸如上述主机102和存储器104)远程的网络可访问的数据存储源或“云”802。如本领域普通技术人员理解的,云802可以包括例如具有相关联的数据存储设备的一个或多个服务器计算机系统,该数据存储设备通常用于响应于经由网络来自远程客户端的查询而存储和检索数据。在该示例性方法700中,上述存储器设备配置信息400(图4)可以预先存储在云802中。处理器110可以在加载器116的控制下执行方法700。
如框702所示,方法700可以包括响应于存储器104上电或以其他方式被初始化而从存储器104中读取设备ID信息122(图1)。设备ID信息122可以在处理器110的控制下以上面关于方法600(图6)描述的方式被读取。
如框704所示,方法700还可以包括获取网络数据存储地址,诸如使得主机102能够经由数据网络访问云802(图8)的地址。网络数据存储地址可以存储在例如主机102中的一次性可编程(OTP)存储器(未示出)或处理器110可访问的其他存储器中。
如框706所示,方法700可以包括基于设备ID信息122从云802(图8)中检索存储器设备配置信息400(图4)。由于读取存储器设备配置信息400可以由处理器110或在其控制下实现,所以箭头804(图8)概念性地指示由处理器110从云802中检索存储器设备配置信息400。存储在云802中的表或其他数据结构或数据库(未示出)可以包含多个条目,每个条目将设备配置信息与对应的多个不同存储器的唯一设备ID信息(例如,制造商ID和存储器ID的唯一组合)相关联。因此,存储在云802中的每个设备配置信息对应于不同存储器,其中的存储器104可以是示例。因此,例如,云802可以响应于从主机102接收的通过其唯一设备ID信息122来标识存储器104的查询而提供示例性存储器设备配置信息400。
如框708所示,方法700还可以包括将存储器设备配置信息400(图4)存储在存储器104的引导扇区118(图8)中。处理器110可以使用单位I/O模式将存储器设备配置信息400写入引导扇区118。可以使用在检索到的存储器设备配置信息400中指示的写入命令。备选地,可以使用标准命令。由于将存储器设备配置信息400存储在引导扇区118中可以由处理器110或在其控制下实现,所以箭头806概念性地指示由处理器110将存储器设备配置信息400存储在引导扇区118中。尽管为了清楚起见而未示出,但是由框702-708指示的前述操作可以在处理器110确定在装置100启动时引导扇区118中还未存储存储器设备配置信息400时来被调节。此外,虽然为了清楚起见而未示出,但是框708指示的操作可以以与上面关于框604-606(图6)描述的类似的错误检查为条件。
如框710所示,方法600可以包括响应于装置100的后续启动而从引导扇区118中读取存储器设备配置信息400。后续启动跟随初始启动或者在初始启动之后,响应于该初始启动,存储器设备配置信息400从云802中被检索并且被存储在引导扇区118中,如上文关于框702-708所述。在初始启动与后续启动之间,可以发生其他操作,并且任何时间量可以过去。这种可能的其他操作、时间过去等由框708和710之间的省略号(“……”)指示。因此,如果处理器110在装置100启动时确定存储器设备配置信息400已经存储在引导扇区118中,则该方法继续进行框710。
如框712所示,方法600可以继续将存储器设备配置信息400的配置寄存器位掩码部分写入存储器104的配置寄存器108。处理器110可以使用单位I/O模式向配置寄存器108写入。可以使用在检索到的存储器设备配置信息400中指示的写入命令。该写入操作可以包括向配置寄存器108的QE位写入值,该值指示启用四位I/O模式的操作。根据上面关于图3描述的示例,“1”可以被写入配置寄存器108的S9位(即,QE位)以启用四位I/O模式的操作。箭头808(图8)概念性地指示由处理器110将包括QE位的配置寄存器位掩码写入存储器104。响应于向QE位写入指示四位I/O模式的操作的值,存储器104可以将其自身配置为以四位I/O模式而不是单位I/O模式操作。
在如上所述启用或选择四位I/O模式之后,可以使用四位I/O模式执行另外的存储器访问操作。这种另外的存储器访问操作可以包括在例如一个或多个应用112的控制下读取或写入数据。虽然为了清楚起见而未示出,但是使用四位I/O模式的另外的读取和写入操作可以以类似于上面关于框612-614(图6)描述的错误检查为条件。
如框714所示,网络数据存储地址还可以用于从云802中检索软件,诸如一个或多个应用112或对这种应用112的更新。虽然为了清楚起见而没有单独示出,但是应用112不仅可以包括最终用户应用,还可以包括装置100的操作中可以涉及的较低级别的配置软件。
在其中两个或多个商业实体(诸如为原始设计制造商(ODM)构建装置100的原始设备制造商(OEM))参与装置100(图1)的生产的制造环境中,ODM可以使用云802将ODM认为机密的软件与OEM的直接访问隔离。显然,系统800和方法700可以使得这种制造商能够包含多个不同存储器中的任何一个而不需要不同主机(例如,SoC)固件,诸如加载器116。通过将与新设备ID信息和对应设备配置信息相关的新条目上传到云802,可以容纳包含不同存储器的另外的生产运行。
提供先前描述以使得本领域技术人员能够实践本文中描述的各个方面。对这些方面的各种修改对于本领域技术人员来说将是很清楚的,并且本文中定义的一般原理可以应用于其他方面。因此,权利要求不旨在限于本文所示的方面,而是符合与权利要求的语言一致的全部范围,其中除非如此特别说明,否则对单数形式的要素的引用不旨在表示“一个且仅一个”,而表示是“一个或多个”。“示例性”一词在本文中用于表示“用作示例、实例或说明”。本文中描述为“示例性”的任何方面不一定被解释为优选于或优于其他方面。除非另有特别说明,否则术语“一些”是指一个或多个。诸如“A、B或C中的至少一个”、“A、B或C中的一个或多个”、“A、B和C中的至少一个”、“A、B和C中的一个或多个”和“A、B、C或其任何组合”等组合包括A、B和/或C的任何组合,并且可以包括多个A、多个B或多个C。具体地,诸如“A、B或C中的至少一个”、“A、B或C中的一个或多个”、“A、B和C中的至少一个”、“A、B和C中的一个或多个”和“A、B、C或其任何组合”等组合可以是仅A、仅B、仅C、A和B、A和C、B和C、或A和B和C,其中任何这种组合可以包含A、B或C的一个或多个成员。本领域普通技术人员已知的或以后会知道的在本公开中描述的各个方面的元素的所有结构和功能等效物通过引用明确地并入本文并且旨在被权利要求所涵盖。此外,本文中公开的任何内容均不旨在专供公众使用,无论权利要求中是否明确引用了这种公开。“模块”、“机制”、“元件”、“设备”等词语可能不能代替“手段”一词。因此,除非使用短语“用于……的手段”明确叙述该要素,否则任何权利要求要素均不得解释为手段加功能。