用于在计算平台的多个主设备之间共享Flash设备的系统、装置和方法
阅读说明:本技术 用于在计算平台的多个主设备之间共享Flash设备的系统、装置和方法 (System, apparatus and method for sharing Flash device among multiple host devices of computing platform ) 是由 Z·朱 M·亨塞克 K·R·瓦迪维鲁 R·巴特 K·P·福斯特 R·巴斯卡尔 A·K·斯 于 2020-02-24 设计创作,主要内容包括:在一个实施例中,Flash共享控制器用于使得平台的多个组件能够共享Flash存储器。Flash共享控制器可以包括:Flash共享类层,包括配置控制器,用于:将多个组件配置为Flash主设备,并为Flash存储器配置Flash共享从设备;和物理层,耦合到Flash共享类层,用于经由总线与多个组件进行通信。描述并要求保护其他实施例。(In one embodiment, a Flash shared controller is used to enable multiple components of a platform to share Flash memory. The Flash sharing controller may include: the Flash sharing class layer comprises a configuration controller, and is used for: configuring a plurality of components as Flash master equipment and configuring Flash sharing slave equipment for a Flash memory; and a physical layer coupled to the Flash shared class layer for communicating with the plurality of components via the bus. Other embodiments are described and claimed.)
技术领域
实施例涉及Flash(快闪)存储器的互连以用于多个主设备访问。
背景技术
许多计算机平台、移动平台和服务器平台都支持高级平台特征,例如通用串行总线(USB)Type-C和显示端口,这些特征需要外部组件,包括总线重定时器和端口控制器。每个组件使用Flash存储器,以用于它们的固件、参数和配置等。例如,在典型的计算机平台上,可能有超过六个的USB Type-C端口,每个端口都需要重定时器和端口控制器,从而导致需要总数超过12个的Flash设备来支持这些组件。这样会给此类系统增加大量的物料清单(BOM)成本和电路板面积。
具体实施方式
在各种实施例中,计算平台可以被配置为使得能够共享非易失性存储器(例如,Flash存储器)。更具体地,实施例使得计算平台能够经由串行总线共享一个或多个Flash存储器。作为示例,串行总线可以是增强串行外设接口(eSPI)/I2C/I3C,或另一串行总线。以此方式,能够使用低引脚数串行接口进行对多个平台组件的Flash访问,这能够支持多主设备能力。与之相比,对于常规的针对平台上的每个外部组件使用专用Flash存储器的配置,成本和复杂性增加。
以此方式,通过在多个平台组件之间共享Flash设备,实现了低成本的平台存储解决方案。通过实施例,显著的BOM成本和电路板面积优化是可能的。实施例通过在多个平台组件之间共享Flash设备来提供低成本的平台存储解决方案,这可以节省显著的BOM成本和电路板面积。串行总线上的Flash共享方案支持使用低引脚数串行接口进行对所有平台组件的Flash访问,这能够支持多主设备能力。
在实施例中,在支持多主设备能力的低引脚数输入/输出(IO)接口上提供Flash存储器共享协议层,以便支持对平台组件的共享Flash服务/存储。定义一组Flash访问命令和协议格式,以支持来自多个主设备的外部Flash访问。可以使用仲裁协议方案来支持所有Flash主设备之间的并发性和公平性,并避免饥饿。还可以包括访问控制机制,以提高该Flash共享机制的安全性,从而增强平台安全性。
现在参照图1,示出了根据本发明实施例的系统环境的框图。如图1所示,系统环境100包括可以耦合在一起的多个设备。环境100可以是任何类型的计算平台,范围从诸如智能电话、平板计算机等小型便携式设备到包括台式计算机、服务器计算机等在内的较大系统。在图1的图示中,示出了环境100的一部分,其中存在执行如本文所述的Flash共享的多个设备。
具体地,图1示出了代表性的Flash共享主设备110、Flash共享控制器130和Flash共享从设备140。如将在本文中进一步描述的,Flash共享控制器130被配置为使得给定的Flash共享主设备110(其为多个这样的Flash共享主设备中的代表性的一个)能够向Flash共享从设备140(在某些情况下,其可以是多个这样的Flash共享从设备中的一个)共享访问。注意,设备110、130、140可以通过一种或多种任何类型的通信总线(例如,I3C总线、USB、eSPI总线等)耦合在一起。
在实施例中,给定的计算平台可以仅具有一个Flash共享控制器130,Flash共享控制器130发现和管理多个连接的Flash共享主设备110(例如,重定时器)和作为接口的Flash从设备140,并控制对一个或多个Flash阵列或其他非易失性存储介质的访问。然而,Flash共享控制器130和从设备140可以位于一个物理设备中。在实施例中,在平台上可能仅存在一个要共享的从设备,以节省BOM。但是,Flash共享从设备的数量不受限制,因此,附加的Flash阵列可以提供更多的配置灵活性。并且可以存在多个主设备110以共享Flash从设备140。
关于Flash共享主设备110,其包括设备应用层112、Flash共享类(FSC)层116和物理层120。通过包括Flash共享类层116,Flash共享主设备110可以经由Flash共享控制器130的配置,与Flash共享从设备140进行交互。
如图1所示,设备应用层112包括各种控制器,包括Flash读取控制器111、Flash写入控制器113和Flash擦除控制器114。在各个实施例中,控制器111、113、114可以被实现为硬件电路、固件、软件和/或其组合。经由这些控制器,Flash共享主设备110可以发出基于Flash的命令,包括Flash读取命令、Flash写入命令和Flash擦除命令。
Flash共享类层116包括各种组件,以使得这些Flash命令能够在Flash共享主设备110内以及经由Flash共享控制器130的配置直接使用Flash共享从设备140进行处理。为此,FSC层116包括加密/解密控制器115、流控制器117、主设备请求器118和完成消息接收器119。在实施例中,控制器115使得能够对要传递的数据进行加密/解密。流控制器117可以被配置为:对从设备应用层112接收的命令进行排序,并将完成消息的通信处理回设备应用层112。继而,可以经由主设备请求器118发出对Flash访问的请求,并且类似地,可以使用完成消息接收器119处理接收到的完成消息。
进一步关于Flash共享主设备110,物理层120包括eSPI Flash通道接口122和I2C/I3C接口124。借助这些接口,根据特定平台实现方式,从Flash共享类层116接收的通信可以经由物理层120传递到Flash共享控制器130和/或Flash共享从设备140。
Flash共享从设备140类似地包括具有Flash读取控制器141、Flash写入控制器143和Flash擦除控制器144的设备应用层142,这些控制器可以用于处理基于Flash的命令,包括Flash读取命令、Flash写入命令和Flash擦除命令。Flash共享从设备140还包括具有各种组件的Flash共享类层146,以使得这些Flash命令能够被处理。为此,FSC层146包括加密/解密控制器145、流控制器147、用于处理分割完成的分割完成电路148以及用于例如根据映射表处理访问许可的访问许可控制器149。Flash共享从设备140还包括具有eSPI Flash通道接口152和I2C/I3C接口154的物理层150。借助这些接口,根据特定平台实现方式,可以在Flash共享从设备140、Flash共享主设备110和Flash共享控制器130之间进行通信。
仍然参照图1,Flash共享控制器130包括FSC共享层132和物理层136。在FSC层132中,存在各种组件以使得Flash共享控制器130能够发现、配置和管理Flash共享从设备和Flash共享主设备。更具体地,如图1所示,FSC共享层132包括设备发现电路131,用于发现耦合到串行总线的设备。继而,设备配置电路134可以将这些设备配置以主设备/从设备角色,包括为设备提供配置参数。最后,访问许可管理器135可以用于管理对不同主设备的访问许可(例如,许可访问的类型、访问区域等)。应理解,虽然在图1的实施例中以这种高层次示出,但是许多变化和替代是可能的。
现在参照图2,示出了根据本发明实施例的系统的框图。如图2所示,系统200可以是任何类型的计算平台。在相关部分中,示出了耦合在一起以执行如本文所述的Flash共享的设备。如所见,中央处理单元(CPU)210例如经由直接媒体接口(DMI)互连耦合到外设控制器中枢(PCH)220。在不同的实施例中,CPU 210和PCH 220可以是分离的组件。在其他情况下,这些设备可以实现在诸如片上系统的单个集成电路内,并且可以潜在地实现在这种集成电路的单个管芯上。无论如何,在图2所示的实施例中,PCH 220包括Flash共享控制器。在一些情况下,PCH 220还可以包括至少一个Flash主设备(Flash主设备0)。PCH 220经由给定的互连(在图2所示的实施例中,其为SPI互连)耦合到Flash存储器230。应理解,PCH 220还可以包括Flash共享控制器从设备(例如,图1的FSC从设备140),以控制对Flash存储器230的存储介质的访问。
为了通过避免针对不同的系统组件使用单独的Flash设备来减少组件数量,PCH220内的Flash共享控制器允许多个组件共享Flash存储器230内的存储。在示例中,平台200上可以有超过10个的Flash主设备,包括USB Type-C、Thunderbolt或显示端口重定时器、嵌入式控制器(EC)和电力传输(PD)控制器,它们全部共享Flash存储器230。
在图2所示的实施例中,可以存在多种组件或设备(包括设备2500-250n),它们经由HDMI或显示端口互连耦合到CPU 210。在实施例中,设备250可以是每端口设备,其包括充当Flash主设备的重定时器255,使得每个设备2500-n是给定的端口重定时器并且可以充当Flash主设备。
另一Flash主设备260可以耦合到CPU 210和PCH 220(例如,经由DF和PCIe互连),并且还可以充当多个设备2700-270n的接口(其可以包括附加的Flash主设备,包括重定时器272(其充当Flash主设备y)和PD控制器274(其充当Flash主设备Z))。当然,在设备270内可以存在其他组件。如进一步示出的,设备270还可以包括USB-C控制器275,其经由USB Type-C协议的各种互连耦合到重定时器272和PD控制器274。
借助如图2中的布置,PCH 220中的Flash共享控制器可以读取耦合到Flash共享总线240的各种组件的能力信息。以此方式,Flash共享控制器可以发现所有这样的Flash主设备/从设备。在设备发现之后,Flash共享控制器可以对各种Flash共享设备执行配置过程。这种配置可以包括:为各种Flash主设备分配在对应Flash从设备内的Flash设备地址。可以为每个Flash主设备/从设备提供附加的配置信息,包括最大数据包大小(MPS)、擦除大小、等待状态等。当给定的Flash从设备就绪时,Flash共享控制器可以为每个Flash主设备启用Flash服务。
在各种实施例中,Flash共享控制器管理物理总线上的Flash主设备/从设备;发现总线上所有Flash共享设备的能力;读取Flash主设备/从设备的能力寄存器;配置每个主设备/从设备,包括MPS/擦除大小/等待状态、从设备地址;以及在Flash从设备就绪时启动Flash共享服务。通常,当任何Flash主设备需要Flash服务时,Flash从设备是可用的。Flash共享控制器还基于平台安全性要求来分配访问控制许可,为每个Flash主设备分配区域,并为每个区域分配访问许可。
继而,Flash主设备可以包括Flash能力寄存器,用于指示它们的将命令传递和发出到Flash设备的能力。Flash主设备还可以包括各种配置寄存器,包括读取寄存器、写入(RW)寄存器。另外,Flash主设备可以实现Flash服务启用指示符和就绪指示符,以及其他这类配置信息。Flash I3C主设备由总主设备在Flash发现/初始化期间配置;并包含Flash从设备地址(RW)(其用于发送Flash主设备周期)。
继而,Flash从设备表示针对各种Flash主设备的一个或多个共享从设备存储设备。这些Flash从设备可以包含类似的能力或配置存储,包括Flash能力寄存器(包括MPS寄存器、擦除大小寄存器等)。这些Flash从设备可以用基于区域/地址的访问控制来实现。可以用能力寄存器位来识别Flash共享从设备,能力寄存器位指示该设备是否是能够接受Flash访问周期并提供非易失性存储的Flash从设备。从设备还包含用于发现和路由Flash周期的寻址方案;从设备还包含可发现的Flash参数;最大数据包大小;擦除大小;从设备实现基于区域的访问控制,该访问控制检查接收到的Flash主设备周期的地址和区域,以决定是否允许访问。应理解,虽然在图2的实施例中以这种高层次示出,但是许多变化和替代是可能的。即,图2只是平台的一个示例;根据平台要求,可以存在许多支持此灵活方案的不同配置。例如,Flash共享控制器可以实现在Flash设备或EC等上。Flash共享总线也可以是任何多主设备总线,例如eSPI或I3C。共享Flash设备也可以是串行SPI Flash或NVMe块存储设备。
现在参照图3,示出了根据本发明实施例的方法的流程图。如图3所示,方法300是根据实施例的用于配置设备以便进行Flash共享的方法。因此,方法300可以由Flash共享控制器来执行,并且因此可以由硬件电路、固件、软件和/或其组合来执行。
如图3所示,方法300开始于:发现Flash主设备和Flash从设备(方框310)。在实施例中,该发现过程可以基于用于执行耦合到总线的多个设备的设备发现的总线通信协议。接下来,控制进行到方框320,在这里,可以读取Flash主设备和Flash从设备的能力。在实施例中,Flash主设备控制器可以通过读取这些设备的能力寄存器来发现所有Flash共享设备的能力。
基于这些能力,Flash共享控制器可以合适地配置设备。在图3中更具体地示出的是一种用于配置这些设备的方法。首先,识别给定的设备(方框330)。然后在方框340,可以为该设备分配Flash设备地址(假设该设备是Flash主设备)。因此,该Flash设备地址是Flash共享总线内的被分配给给定主设备的设备地址。接下来,控制进行到方框350,在这里,可以为Flash主设备配置参数,并将其存储在Flash主设备和Flash从设备中。在实施例中,这些配置参数可以包括MPS/擦除大小信息、等待状态信息等。接下来,在方框360,可以为Flash主设备分配访问控制许可,并将其存储到Flash主设备和Flash从设备中。更具体地说,Flash共享控制器可以向每个Flash主设备分配区域,并且分配对该区域的访问许可,例如读取许可和写入许可。接下来,在菱形框370处确定,是否存在要配置的附加设备。如果是,则识别下一个设备(方框380),并且控制回到上面讨论的方框340。应理解,虽然在图3的实施例中以这种高层次示出,但是许多变化和替代是可能的。
在实施例中,对于Flash读取流,Flash主设备请求成为当前总线主设备。在它被授权成为当前总线主设备之后,它用所分配的Flash从设备地址发出Flash读取(FSC_FLASH_READ)命令;并且Flash主设备按照所报告的周期发出Flash读取周期。在第一选项中(已连接),从设备可以立即提供数据(所需的等待状态);如果Flash从设备检测到访问错误,例如,请求主设备没有对所请求数据的读取许可,则从设备将返回未成功完成消息。接收到完成消息之后,Flash主设备将主设备角色返还给总主设备;以及结束。在另一选项中(推迟),从设备可以推迟读取访问。当数据就绪时,它用带内中断请求中断Flash主设备成为当前总线主设备。从设备提供带有数据完成周期FSC-FLASH-CMP-D。如果Flash从设备检测到访问错误,例如,请求主设备没有对所请求的数据的读取许可,则从设备将返回未成功完成消息FSC-FLASH-CMP-UR。
在实施例中,对于Flash写入/擦除流,Flash主设备请求成为当前总线主设备;在它被授权当前主设备状态之后,它发出Flash写入(FSC-FLASH-WRITE)命令。使用分配的Flash从设备地址,它按照所报告的周期发出Flash写入周期。从设备通常会推迟写入访问。
当写入完成就绪时,它用带内中断请求中断Flash主设备成为当前总线主设备。从设备提供不带数据的完成周期FSC-FLASH-CMP-ND。如果Flash从设备检测到访问错误,例如,请求主设备没有对所请求的数据的写入/擦除许可,则从设备将返回未成功完成消息FSC-FLASH-CMP-UR。Flash从设备将主设备角色返还给总主设备,并且写入/擦除流结束。
现在参照图4,示出了根据本发明另一实施例的方法的流程图。如图4所示,用于执行对共享Flash存储器进行Flash访问的方法400可以由具有硬件电路、固件、软件和/或其组合的Flash主设备执行。
如图所示,方法400开始于:给定的Flash主设备请求总线的总线主设备状态(方框410)。为此,Flash主设备可以向总线主设备(例如,总主设备)发出请求,以寻求总线主设备角色,使得它可以发出请求。假设在菱形框420确定,Flash主设备已经被授权当前总线主设备角色,则控制进行到方框430,在这里,Flash主设备可以用所分配的Flash设备地址发出Flash命令。这种命令可以是读取命令、写入命令、擦除命令等。注意,无论是读取命令还是写入命令,Flash主设备可以按所报告的周期发出此命令。
此后,总线主设备从Flash设备接收完成消息(方框440)。例如,对于读取访问,该完成消息可以包括数据,而对于写入访问,该完成消息可以指示写入操作的状态。在任何情况下,控制都进行到方框450,在这里,Flash主设备可以将总线主设备角色返还给例如总主设备或者将总线主设备角色授权给该Flash主设备的另一总线主设备。接下来,控制进行到方框460,在这里,Flash主设备可以处理完成消息。例如,在通过此完成消息返回数据的情况下,Flash主设备可以消费数据,或者将数据提供到给定的目的地。在完成消息指示成功写入状态的情况下,可以更新关于写入请求的信息,例如以指示成功。在另一示例中,在完成消息指示失败的情况下,Flash主设备可以寻求重新开始给定的访问请求。应理解,虽然在图4的实施例中以这种高层次示出,但是许多变化和替代是可能的。实施例可以以多种互连结构来实现。
参照图5,示出了由互连一组组件的点对点链路组成的构造的实施例。系统500包括耦合到控制器中枢515的处理器505和系统存储器510。处理器505包括任何处理元件,例如微处理器、主处理器、嵌入式处理器、协处理器或其他处理器。处理器505通过前端总线(FSB)506耦合到控制器中枢515。在一个实施例中,FSB 506是串行点对点互连。在处理器505和控制器中枢515被实现在公共半导体管芯上的实施例中,总线506可以被实现为管芯上互连。在处理器505和控制器中枢515被实现为多芯片封装内的分离的管芯的又一实现方式中,总线506可以被实现为管芯内互连。
系统存储器510包括任何存储器器件,例如随机存取存储器(RAM)、非易失性(NV)存储器或系统500中的设备可访问的其他存储器。系统存储器510通过存储器接口516耦合到控制器中枢515。存储器接口的示例包括双数据率(DDR)存储器接口、双通道DDR存储器接口和动态RAM(DRAM)存储器接口。
在一个实施例中,控制器中枢515是PCIe互连层级结构中的根中枢、根复合体或根控制器。控制器中枢515的示例包括芯片组、外设控制器中枢(PCH)、存储器控制器中枢(MCH)、北桥、互连控制器中枢(ICH)、南桥和根控制器/中枢。术语芯片组常常是指代两个物理上分离的控制器中枢,即存储器控制器中枢(MCH)耦合到互连控制器中枢(ICH)。注意,当前系统常常包括与处理器505集成的MCH,而控制器515将按与下文所述类似的方式与I/O设备通信。在一些实施例中,可选地通过根复合体515来支持对等路由。
这里,控制器中枢515通过串行链路519耦合到交换机/网桥520。输入/输出模块517和521(也可以称为接口/端口517和521)包括/实现分层协议栈,以提供在控制器中枢515与交换机520之间的通信。在一个实施例中,多个设备能够耦合到交换机520。
交换机/网桥520将数据包/消息从设备525向上游(即,层次结构向上朝着根复合体)路由到控制器中枢515,以及向下游(即,层次结构向下远离根控制器)从处理器505或系统存储器510路由到设备525。在一个实施例中,交换机520被称为多个虚拟PCI到PCI桥接设备的逻辑组合件。设备525包括要耦合到电子系统的任何内部或外部设备或组件,例如I/O设备、网络接口控制器(NIC)、add-in卡、音频处理器、网络处理器、硬盘驱动器、存储设备、CD/DVD ROM、监视器、打印机、鼠标、键盘、路由器、便携式存储设备、Firewire设备、通用串行总线(USB)设备、扫描仪和其他可以经由例如I3C总线耦合的输入/输出设备。通常在PCIe背景下,这种设备称为端点。虽然未具体示出,但是设备525可以包括PCIe到PCI/PCI-X的桥,用于支持遗留设备或其他版本PCI设备。PCIe中的端点设备通常被分类为遗留端点、PCIe端点或根复合体集成端点。
如图5进一步所示,可以耦合到交换机/网桥520的另一设备是嵌入式控制器528,如本文所述,嵌入式控制器528可以是共享对Flash设备546的访问的多个设备中的一个,Flash设备546经由互连544耦合到控制器中枢515,在一个实施例中,互连544可以是SPI互连。
图形加速器530通过串行链路532也耦合到控制器中枢515。在一个实施例中,图形加速器530耦合到MCH,MCH耦合到ICH。然后交换机520并且因此I/O设备525耦合到ICH。I/O模块531和518还用于实现分层协议栈,以在图形加速器530与控制器中枢515之间进行通信。图形控制器或图形加速器530本身可以集成在处理器505中。
接下来转到图6,描绘了根据实施例的SoC设计的实施例。作为特定的说明性示例,SoC 600可以被配置用于***任何类型的计算设备中,范围从便携式设备到服务器系统。这里,SoC 600包括2个核606和607。核606和607可以符合指令集架构,例如基于
Architecture CoreTM的处理器、Advanced Micro Devices,Inc.(AMD)处理器、基于MIPS的处理器、基于ARM的处理器设计或其客户,以及其被许可方或采用方。核606和607耦合到与总线接口单元609和L2缓存610关联的缓存控件608,以经由互连612与系统600的其他部分通信。互连612提供至其他组件的通信通道,例如与SIM卡接口的订户身份模块(SIM)630、用于保存引导代码以便由核606和607执行以初始化和引导SoC 600的引导ROM 635、与外部存储器(例如,DRAM 660)接口的SDRAM控制器640、与非易失性存储器(例如,可以由耦合到串行总线的多个设备共享的Flash存储器665)接口的Flash控制器645、与外设(例如,嵌入式控制器690)接口的外设控制器650(例如,经由eSPI接口)。如本文所述,在实现方式中,嵌入式控制器690可以是共享对Flash存储器665的访问的多个集成电路中的一个。
仍然参照图6,系统600还包括用于显示和接收输入(例如,触摸启用的输入)的视频编解码器620和视频接口625,用于执行图形有关的计算的GPU 615,等。此外,系统示出了用于通信的外设,例如蓝牙模块670、3G调制解调器675、GPS 680和WiFi 685。在系统中还包括功率控制器655。图6中还示出,系统600可以附加地包括以下接口,包括例如至显示器的MIPI接口692,和/或也可以耦合到相同或不同显示器的HDMI接口695,以及一个或多个USBType-C接口。注意,如本文所述,这些接口可以包括或关联于端口重定时器和/或PD控制器,并且它们可以共享Flash存储器665,以用于存储固件、配置信息等。
现在参照图7,示出了根据本发明实施例的系统的框图。如图7所示,多处理器系统700包括经由点对点互连750耦合的第一处理器770和第二处理器780。如图7所示,处理器770和780中的每一个可以是多核处理器,包括代表性的第一处理器核和第二处理器核(即,处理器核774a和774b以及处理器核784a和784b)。
仍然参照图7,第一处理器770还包括存储器控制器中枢(MCH)772以及点对点(P-P)接口776和778。类似地,第二处理器780包括MCH 782以及P-P接口786和788。如图7所示,MCH 772和782将处理器耦合到相应的存储器,即存储器732和存储器734,存储器可以是本地附连到相应处理器的系统存储器(例如,DRAM)的部分。第一处理器770和第二处理器780可以分别经由P-P互连762和764耦合到芯片组790。如图7所示,芯片组790包括P-P接口794和798。
此外,芯片组790包括接口792,用于通过P-P互连739将芯片组790与高性能图形引擎738耦合。如图7所示,各种输入/输出(I/O)设备714可以连同总线桥718一起耦合到第一总线716,总线桥718将第一总线716耦合到第二总线720。各种设备可以耦合到第二总线720,包括例如键盘/鼠标722、通信设备726和非易失性存储器728(例如,给定的非易失性存储器,例如本文所述的共享Flash存储器)。为此,嵌入式控制器712可以是寻求总线主设备状态以实现如本文所述的共享Flash访问的多个设备中的一个。此外,音频I/O 724可以耦合到第二总线720。
以下示例属于其他实施例。
在一个示例中,一种装置包括Flash共享控制器,用于使得平台的多个组件能够共享Flash存储器。Flash共享控制器进而包括:Flash共享类层,包括配置控制器,用于:将多个组件配置为Flash主设备,并为Flash存储器配置Flash共享从设备;和物理层,耦合到Flash共享类层,该物理层经由总线与多个组件进行通信。
在示例中,物理层用于经由第二总线与Flash存储器进行通信。
在示例中,Flash共享控制器还包括发现控制器,用于:发现多个组件,并确定多个组件的能力信息。
在示例中,配置控制器用于:以最大净荷大小和Flash存储器的区域来配置多个组件中的每个组件。
在示例中,多个组件中的第一子集包括端口重定时器。
在示例中,该装置包括外设控制器中枢,其包括Flash共享控制器和多个组件中的至少一个组件。
在示例中,多个组件中的第一组件用于:从总线的总线主设备请求总线主设备角色;响应于总线主设备角色的授权,向Flash存储器发出Flash命令;以及从Flash存储器接收到完成消息之后,将总线主设备角色返还给总线主设备。
在示例中,第一组件用于:在完成消息中从Flash存储器接收固件和配置信息中的一个或多个。
在示例中,第一组件包括Flash共享类层,其包括主设备请求器,用于从总线主设备请求总线主设备角色。
在示例中,第一组件的Flash共享类层耦合在第一组件的应用层与第一组件的物理层之间。
在示例中,Flash共享控制器还包括访问许可管理器,用于管理多个组件对Flash存储器的访问许可。
在示例中,Flash存储器包括平台的单个Flash存储器,并且多个组件中的至少一些组件包括经由总线耦合到Flash共享控制器的集成电路。
在另一示例中,一种方法包括:由平台的第一设备从总线的总线主设备请求总线的总线主设备角色,该总线具有耦合到它的多个设备;响应于在第一设备中接收到总线主设备角色,向Flash存储器发出Flash命令,该Flash存储器由多个设备共享;以及在第一设备中,从Flash存储器接收完成消息,并且在接收到完成消息之后,将总线主设备角色返还给总线主设备。
在示例中,该方法还包括:用Flash存储器的地址发出Flash命令,该地址是响应于Flash共享控制器对第一设备的配置而存储在第一设备的地址存储中的。
在示例中,该方法还包括:经由Flash共享控制器发现多个组件,并确定多个组件的能力信息;以及经由Flash共享控制器以最大净荷大小和Flash存储器的区域来配置多个组件中的每个组件。
在示例中,该方法还包括:在完成消息中接收用于第一设备的固件和配置信息中的至少一个。
在示例中,该方法还包括:由平台的第二设备从总线主设备请求总线的总线主设备角色;响应于在第二设备中接收到总线主设备角色,向Flash存储器发出第二Flash命令;在第二设备中,从Flash存储器接收完成消息,该完成消息包括用于第二设备的固件;以及在第二设备中执行固件。
在另一示例中,包括指令的计算机可读介质用于执行以上示例中任一项所述的方法。
在另一示例中,包括数据的计算机可读介质用于被至少一个机器用来制造至少一个集成电路以执行以上示例中任一项所述的方法。
在又一示例中,一种装置包括用于执行以上示例中任一项所述的方法的模块。
在另一示例中,一种系统包括:多个集成电路,多个集成电路中的每个集成电路执行存储在Flash存储器中的对应固件;Flash存储器,经由串行总线耦合到多个集成电路,该Flash存储器存储用于多个集成电路的对应固件;和Flash共享控制器,耦合到串行总线。Flash共享控制器包括:Flash共享类层,包括配置控制器,用于:将多个集成电路配置为Flash主设备,并为Flash存储器配置Flash共享从设备;和物理层,耦合到Flash共享类层,该物理层经由串行总线与多个集成电路进行通信。
在示例中,Flash共享控制器包括发现控制器,用于:发现多个集成电路,并确定多个集成电路的能力信息。
在示例中,多个集成电路中的第一集成电路包括Flash共享类层,该Flash共享类层包括用于请求总线的总线主设备状态的请求器,并且响应于接收到总线主设备状态,第一集成电路用于:向Flash存储器发出Flash读取命令,以读取用于集成电路的第一固件;将第一固件存储在第一集成电路中;释放总线主设备状态;以及执行第一固件。
应理解,以上示例的各种组合是可能的。
注意,术语“电路”和“电路系统”在本文可互换使用。如本文所使用的,这些术语和术语“逻辑”用于单独地或以任何组合方式指代模拟电路、数字电路、硬接线电路、可编程电路、处理器电路、微控制器电路、硬件逻辑电路、状态机电路和/或任何其他类型的物理硬件组件。实施例可以在许多不同类型的系统中使用。例如,在一个实施例中,可以将通信设备布置成执行本文描述的各种方法和技术。当然,本发明的范围不限于通信设备,而是其他实施例可以涉及其他类型的用于处理指令的装置,或者包括指令的一种或多种机器可读介质,所述指令响应于在计算设备上执行,使该设备执行本文所述的一种或多种方法和技术。
实施例可以用代码来实现,并且可以存储在非瞬时性存储介质上,存储介质上存储有指令,该指令可以用于对系统进行编程以执行指令。实施例还可以用数据来实现,并且可以存储在非瞬时性存储介质上,存储介质如果被至少一个机器使用,则使该至少一个机器制造至少一个集成电路以执行一个或多个操作。其他实施例可以在如下计算机可读存储介质中实现,存储介质包括信息,信息在被制造进SoC或其他处理器中时配置SoC或其他处理器以执行一个或多个操作。存储介质可以包括但不限于任何类型的磁盘,包括软盘、光盘、固态驱动器(SSD)、压缩盘只读存储器(CD-ROM)、可重写压缩盘(CD-RW)以及磁性光盘、半导体器件(例如,只读存储器(ROM)、|随机存取存储器(RAM)(例如,动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM))、可擦除可编程只读存储器(EPROM)、Flash存储器、电可擦除可编程只读存储器(EEPROM))、磁卡或光卡,或者适合于存储电子指令的任何其他类型的介质。
尽管已经针对有限数量的实施例描述了本发明,但是本领域技术人员将理解由此做出的许多修改和变型。所附权利要求旨在覆盖所有此类修改和变型,如同落入本发明的真实精神和范围内。