CN107766097B - 基于端点装置提供的启动指令执行启动操作的电子装置 - Google Patents
基于端点装置提供的启动指令执行启动操作的电子装置 Download PDFInfo
- Publication number
- CN107766097B CN107766097B CN201710701593.8A CN201710701593A CN107766097B CN 107766097 B CN107766097 B CN 107766097B CN 201710701593 A CN201710701593 A CN 201710701593A CN 107766097 B CN107766097 B CN 107766097B
- Authority
- CN
- China
- Prior art keywords
- memory
- self
- setting information
- electronic device
- endpoint
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
Abstract
本发明提供了一种电子装置。所述电子装置包括第一存储器、第二存储器和控制器。第一存储器存储启动指令的数据,并且第二存储器存储与执行与外部装置的通信的条件关联的设置信息。在第二存储器基于来自外部装置的命令存储设置信息之前,控制器将具有自设定值的设置信息存储在第二存储器中。控制器在由自设定值限定的条件下响应于从外部装置接收的存储器读请求将启动指令的数据提供至外部装置。
Description
相关申请的交叉引用
本申请要求于2016年8月16日在韩国在知识产权局提交的韩国专利申请No.10-2016-0103793的优先权,该申请的全部内容以引用方式并入本文中。
技术领域
本文所述的本公开的示例实施例涉及一种电子装置,并且更具体地说,涉及彼此通信以执行启动操作的装置的操作。
背景技术
现在,使用各种电子装置。电子装置根据包括在其中的一个或多个电路/电子电路的操作为用户提供服务。电子装置可独立地操作,或者可在与其它一个(或多个)电子装置通信的同时操作。
电子装置在包括在其中的或者分开设置的处理器的控制下执行启动操作。执行启动操作以允许电子装置和包括在其中的电路/电子电路进入可向用户提供服务的状态。例如,根据启动操作,处理器辨识与其连接的端点装置/外围装置,并且加载操作系统。此外,根据启动操作,端点装置/外围装置预备从处理器或用户接收输入。
随着系统的大小和复杂度增大,会需要较长的时间来执行启动操作。当启动操作占用较长时间时,也会需要较长的时间来向用户提供服务。快速启动操作对提高电子装置的性能和用户满意度可具有极大影响。
发明内容
一个方面是提供一种快速执行启动操作的电子装置的配置和操作计划。
根据一个或多个示例实施例的一个方面,提供了一种电子装置,该电子装置包括:第一存储器,其构造为存储启动指令的数据;第二存储器,其构造为存储与执行与外部装置的通信的条件关联的设置信息;以及控制器。所述控制器构造为,在第二存储器基于来自外部装置的命令存储设置信息之前,将具有自设定值的设置信息存储在第二存储器中,以及在由自设定值限定的条件下,响应于存储器读请求将启动指令的数据提供至外部装置,从外部装置接收所述存储器读请求。
根据一个或多个示例实施例的一方面,提供了一种电子装置,所述电子装置包括:第一存储器,其构造为存储启动指令的数据;第二存储器,其构造为存储与执行与外部装置的通信的条件关联的设置信息;逻辑电路,其构造为在第二存储器基于来自外部装置的命令存储设置信息之前,将具有自设定值的设置信息存储在第二存储器中;以及控制器,其构造为在由自设定值限定的条件下,响应于存储器读请求将启动指令的数据提供至外部装置,从外部装置接收所述存储器读请求。
根据一个或多个示例实施例的另一方面,提供了一种电子装置,所述电子装置包括:切换装置,其包括:主机端口,其构造为连接至主机,多个端点端口,其构造为分别连接至多个端点装置,以及第一存储器,各自构造为存储设置信息,第一存储器之一的设置信息与通过主机端口执行与主机的通信的条件关联,并且其它第一存储器的设置信息分别与通过对应的端点端口执行与端点装置的通信的条件关联;以及目标端点装置,其构造为连接至所述多个端点端口中的目标端点端口,并且构造为存储启动指令的数据,其中,切换装置构造为:在第一存储器基于来自主机的命令存储设置信息之前,在目标端点装置的控制下,将具有自设定值的设置信息存储在第一存储器当中的对应于主机端口和目标端点端口的目标存储器中,在由自设定值限定的条件下,将从主机接收的存储器读请求传递至目标端点装置,并且将响应于存储器读请求从目标端点装置输出的启动指令的数据传递至主机。
根据一个或多个示例实施例的另一方面,提供了一种电子装置,所述电子装置包括:处理器装置,其构造为基于启动指令执行启动操作;以及端点装置,其构造为:存储启动指令的数据,并且存储与执行与处理器装置的通信的条件关联的设置信息,其中,所述端点装置还构造为:在基于来自处理器装置的命令存储设置信息之前存储具有自设定值的设置信息,并且在由自设定值限定的条件下,响应于从处理器装置接收的存储器读请求将启动指令的数据提供至处理器装置。
根据一个或多个示例实施例的另一方面,提供了一种电子装置,所述电子装置包括:处理器装置,其构造为在通电时在读取并处理启动指令之后执行启动操作;以及端点装置,其构造为,在通电时执行自配置操作以将启动指令提供至处理器装置。
附图说明
通过以下参照下面的附图的描述,以上和其它方面将变得清楚,其中除非另有说明,否则相同的附图标记在各个图中始终指代相同的部分,并且其中:
图1是示出包括根据示例实施例的电子装置的计算装置的框图;
图2是示出图1的各电子装置之间的示例连接结构的框图;
图3是描述图2的连接结构的各电子装置之间的示例通信的流程图;
图4是描述在图2的连接结构中执行的示例自配置操作的概念图;
图5是示出可存储在图2的连接结构的配置存储器中的设置信息的示例配置的概念图;
图6是示出用于将自设定值存储在图4的连接结构的配置存储器中的示例实施方式的概念图;
图7是描述在图2的连接结构中执行的示例自复位操作的概念图;
图8是描述在图2的连接结构中执行的示例正常通信的概念图;
图9是描述图2的连接结构的各电子装置之间的示例边带通信的概念图;
图10是示出图1的各电子装置之间的示例连接结构的框图;
图11是示出基于图10的连接结构的配置逻辑电路的示例配置和操作的概念图;
图12是示出图1的各电子装置之间的示例连接结构的框图;
图13是描述在图12的连接结构中执行的示例自配置操作的概念图;
图14是示出图1的各电子装置之间的示例连接结构的框图;以及
图15是示出根据示例实施例的电子装置及其接口的示例配置的框图。
具体实施方式
下面,现在将参照附图更加完全地描述示例实施例,以使得本领域技术人员可容易地理解本发明构思。
图1是示出包括根据示例实施例的电子装置的计算装置的框图。
参照图1,计算装置1000可包括主处理器1100、工作存储器1200、用户接口1300、存储装置1400、通信块1500、图形处理器装置1600和总线1700。例如,计算装置1000可为各种电子装置之一,诸如(但不限于)台式计算机、笔记本计算机、平板计算机、电子游戏机、工作站、服务器等等。
主处理器1100可控制计算装置1000的整体操作。主处理器1100可构造为处理各种算术操作和/或逻辑操作。
这样,主处理器1100可实现为包括一个或多个处理器核的专用逻辑电路(例如,现场可编程门阵列(FPGA)、专用集成芯片(ASIC)等等)。主处理器1100可利用处理器核执行程序代码的指令集。例如,主处理器1100可包括通用处理器、专用处理器和/或应用处理器。
工作存储器1200可临时存储在计算装置1000的操作中使用的数据。例如,工作存储器1200可存储由主处理器1100处理的数据或将要由主处理器1100处理的数据。例如,工作存储器1200可包括易失性存储器,诸如静态随机存取存储器(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)等等。
用户接口1300可在主处理器1100的控制下对用户与计算装置1000之间的通信进行仲裁。例如,用户接口1300可处理来自键盘、鼠标、键区、按钮、触摸面板、触摸屏幕、触摸垫、触摸球、相机、麦克风、陀螺仪传感器和/或振动传感器等的输入。另外,用户接口1300可处理将要提供至显示装置、扬声器和/或电机等的输出。
无论电源供应怎样,存储装置1400都可存储数据。例如,存储装置1400可包括诸如相变RAM(PRAM)、磁电阻RAM(MRAM)、电阻RAM(ReRAM)、铁电RAM(FRAM)等非易失性存储器中的至少一个。例如,存储装置1400可包括诸如固态驱动器(SSD)、硬盘驱动器(HDD)等的存储介质。
通信块1500可在主处理器1100的控制下与计算装置1000的外部装置/系统通信。例如,通信块1500可依照各种有线通信协议(诸如以太网、传递控制协议/互联网协议(TCP/IP)、通用串行总线(USB)、火线等等)中的至少一个和/或各种无线通信协议(诸如长期演进(LTE)、微波接入全球互操作性(WiMax)、全球移动通信系统(GSM)、码分多址(CDMA)、蓝牙、近场通信(NFC)、无线保真(Wi-Fi)、射频识别(RFID)等等)中的至少一个与计算装置1000的外部装置/系统通信。
图形处理器装置1600可包括多个处理器核(例如,图形处理单元)。包括在图形处理器装置1600中的处理器核可快速地并行处理图形数据。例如,图形处理器装置1600可通过利用处理器核处理各种图形操作,诸如像素着色、超级采样、色空间转换等等。
主处理器1100、工作存储器1200、用户接口1300、存储装置1400、通信块1500和图形处理器装置1600中的每一个可在电路等级、芯片等级和/或封装件等级的装置中实施,以安装在计算装置1000中。可替换地,处理器装置1100、工作存储器1200、用户接口1300、通信块1400、通信块1500和图形处理器装置1600中的每一个可在独立的电子装置中实施,以在计算装置1000中装配。安装或装配的组件可通过总线1700彼此连接。
总线1700可在计算装置1000的各组件之间提供通信路径。计算装置1000的组件可基于总线1700的总线格式彼此交换数据。例如,总线格式可包括各种通信协议中的至少一种,诸如外围组件互连(PCI)、快速PCI(PCIe)、快速非易失性存储器(NVMe)、小计算机系统接口(SCSI)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、串行连接的SCSI(SAS)、通用闪速存储(UFS)等等。
主处理器1100可响应于从电源供电的开始来开始启动操作。可执行启动操作以允许计算装置1000及其组件进入计算装置1000及其组件合适地操作的状态。例如,可从包括在计算装置1000中的电池(未示出)和/或计算装置1000的外部电源(未示出)将电供应至计算装置1000的组件。
当启动操作开始时,主处理器1100可首先读取并处理启动指令(BUI)。主处理器1100可基于启动指令BUI执行启动操作。启动指令BUI可包括允许主处理器1100进入这样一种状态的基本指令,在所述状态中主处理器1100可处理各种操作和识别其它组件。例如,为了便于更好地理解,启动指令BUI可与基本输入/输出系统(BIOS)、可扩展固件接口(EFI)、统一EFI(UEFI)等等中的至少一个关联,但是示例实施例不限于此。
主处理器1100可在处理启动指令BUI的同时识别和辨识计算装置1000的其它组件。例如,主处理器1100可确定连接哪些组件、连接的组件的类型/型号是什么、如何设置用于与连接的组件的通信的条件等等。例如,为了便于更好地理解,这种确定可对应于在PCI/PCIe通信协议中定义的枚举/配置操作。然而,示例实施例不限于此。
在处理启动指令BUI之后,主处理器1100可基于引导加载器预备操作系统的核心。主处理器1100可在预备的核心上加载操作系统。另外,主处理器1100可允许其它组件预备操作,以使得其它组件可合适地提供服务。可根据上述处理完成启动操作。
主处理器1100可在处理引导加载器和操作系统之前和同时读并处理启动指令BUI。如果读并处理启动指令BUI占用较长时间,则启动操作的完成会延迟。因此,快速地读和并处理启动指令BUI可为启动操作带来好处。
在一些情况下,计算装置1000可包括启动指令存储器10。例如,启动指令存储器10可包括诸如只读存储器(ROM)、闪速存储器等等的额外存储器。这样,启动指令存储器10可存储用于主处理器1100的启动指令(例如,BIOS、EFI等等),并且可响应于主处理器1100的请求为主处理器1100提供启动指令。
然而,在多数情况下,启动指令存储器10会具有慢操作速度,并且会占用计算装置1000上的额外区域。另外,由于启动指令存储器10伴随着与管理启动指令存储器10关联的互补金属氧化物半导体(CMOS)装置(或芯片)以及设置为保持启动指令存储器10的数据的电池,因此计算装置1000的区域变得较大。此外,当需要更新启动指令时,需要更换启动指令存储器10和CMOS装置(或芯片),从而导致成本的增加和不方便。
因此,在示例实施例中,计算装置1000可省略启动指令存储器10。作为替代,存储装置1400可存储启动指令BUI的数据。在示例实施例中,存储装置1400可响应于主处理器1100的请求将启动指令BUI提供至主处理器1100。
在多数情况下,存储装置1400的操作速度可比启动指令存储器10的操作速度快得多。因此,当主处理器1100从存储装置1400读启动指令BUI时,可快速地执行启动操作。另外,由于计算装置1000可省略启动指令存储器10、CMOS装置(或芯片)和电池,因此计算装置1000的面积和用于实施计算装置1000的成本可减小。此外,可通过新安装存储在存储装置1400中的程序代码容易地更新启动指令BUI。
然而,在主处理器1100读启动指令BUI之前,主处理器1100仍可不识别或辨识存储装置1400。原因是因为主处理器1100在读取启动指令BUI之后才会识别和辨识存储装置1400。因此,在主处理器1100读取启动指令BUI之前,主处理器1100可还未准备好与存储装置1400通信,并且可不能立即从存储装置1400读取启动指令BUI。
因此,在示例实施例中,存储装置1400可执行“自配置操作”以将启动指令BUI提供至主处理器1100。在自配置操作中,存储装置1400可自己进入与主处理器1100通信的状态。主处理器1100可从执行自配置操作的存储装置1400接收启动指令BUI。将参照图2至图15描述这些操作。
首先,将参照图2至图13描述采用了PCI/PCIe通信协议的示例实施例。在这些示例实施例中,根据PCI/PCIe通信协议彼此通信的电子装置之间的连接结构可称作“PCI/PCIe构造”。然而,提供示例实施例是为了便于更好地理解,并且不旨在限制为示例实施例。可基于以下描述将示例实施例应用于除PCI/PCIe通信协议之外的任何其它通信协议。
图2是示出图1的各电子装置之间的示例连接结构的框图。例如,图1的计算装置1000可采用PCI/PCIe构造2000a来连接各个电子装置(例如,主处理器1100、工作存储器1200、存储装置1400、通信块1500和图形处理器装置1600)。
例如,PCI/PCIe构造2000a可包括主处理器2100、工作存储器2200和端点装置2400a、2500和2600。同时,在示例实施例中,如参照图1所述的,PCI/PCIe构造2000a可省略启动指令存储器10。
主处理器2100和工作存储器2200可分别对应于图1的主处理器1100和工作存储器1200。端点装置2400a、2500和2600中的每一个可在PCI/PCIe构造2000a的各个端点为主处理器2100提供服务。例如,假设端点装置2400a为对应于图1的存储装置1400的存储装置。下面,可将端点装置2400a称作“存储装置”。端点装置2500和2600中的每一个可对应于图1的存储装置1400、通信块1500或者图形处理器装置1600,或者任何其它类型的端点装置。图2示出了三个端点装置2400a、2500和2600,但是端点装置的数量可不同地改变或修改。
主处理器2100、工作存储器2200和端点装置2400a、2500和2600可通过根复合体2005互连。根复合体2005可对主处理器2100、工作存储器2200和端点装置2400a、2500和2600之间的通信进行仲裁。例如,根复合体2005可管理主处理器2100、工作存储器2200和端点装置2400a、2500和2600之间的通信时间、通信次序、通信条件等等。可在计算装置1000的主板上印刷或安装根复合体2005,或者其可通过分离的装置来实施根复合体2005。
存储装置2400a可包括至少一个非易失性存储器2410、控制器2430a和配置存储器2450a。非易失性存储器2410可存储数据或者可输出存储的数据。例如,非易失性存储器2410可包括闪速存储器、PRAM、MRAM、ReRAM、FRAM等等中的至少一个。
非易失性存储器2410可存储用于主处理器2100的启动指令BUI的数据。非易失性存储器2410可存储固件(FW)和/或软件(SW)的程序代码的数据。可通过控制器2430a执行固件(FW)和/或软件(SW)的程序代码,以操作存储装置2400a。可替换地,可通过主处理器2100执行固件或软件(例如,操作系统)的程序代码,以操作采用PCI/PCIe构造2000a的计算装置1000。
控制器2430a可控制存储装置2400a的整体操作。响应于来自外部装置(例如,主处理器2100)的请求,控制器2430a可控制非易失性存储器2410,以使得非易失性存储器2410存储或输出数据。例如,控制器2430a可响应于从主处理器2100接收的存储器读请求将启动指令BUI的数据提供至主处理器2100。例如,可将向控制器2430a请求服务的外部装置(例如,主处理器2100)称作“主机”。除此之外,控制器2430a可执行包括管理存储装置2400a的操作条件、检查存储在非易失性存储器2410中的数据的错误等等的各种操作。
控制器2430a可包括设计为执行上面描述的和/或将在下面描述的特定操作的硬件电路。控制器2430a可执行设计为执行上面描述的和/或将在下面描述的特定操作的固件(FW)和/或软件(SW)的程序代码。控制器2430a可包括可执行并处理程序代码的指令集的一个或多个处理器核。
配置存储器2450a可存储设置信息STI。设置信息STI可包括与执行与外部装置(例如,主处理器2100)的通信的条件关联的信息。例如,配置存储器2450a可与由PCI/PCIe通信协议定义的“配置空间”关联。存储装置2400a和控制器2430a可在基于设置信息STI定义的通信条件下与外部装置通信。
例如,设置信息STI可包括信号地址范围的信息。存储装置2400a和控制器2430a可接收并处理具有包括在设置信息STI的信号地址范围中的信号地址的输入(例如,来自主机的命令、请求、询问和数据)。
例如,可基于上限值和下限值限定信号地址范围。在该示例中,存储装置2400a和控制器2430a可接收并处理具有上限值与下限值之间的信号地址的输入。作为另一示例,可基于上限值限定信号地址范围。在该示例中,存储装置2400a和控制器2430a可接收并处理具有等于或小于上限值的信号地址的输入。为了与存储装置2400a通信,外部装置(例如,主处理器2100)可输出具有可被存储装置2400a处理的信号地址的信号/数据/分组。然而,提供这些示例是为了便于更好地理解,并且示例实施例不限于此。
例如,在枚举/配置操作中,主处理器2100可辨识出连接的存储装置2400a。为了与存储装置2400a通信,主处理器2100可向存储装置2400a提供枚举/配置命令。存储装置2400a可响应于枚举/配置命令将设置信息STI存储在配置存储器2450a中。在完成枚举/配置操作之后,外部装置(例如,主处理器2100)可参照设置信息STI与存储装置2400a通信。
例如,配置存储器2450a可包括存储设置信息STI的存储器,诸如寄存器。然而,示例实施例不限于此。配置存储器2450a可包括各种存储器(诸如闪速存储器、PRAM、MRAM、ReRAM、FRAM、电可擦除/可编程ROM(EEPROM)等等)中的一个或多个。
控制器2430a可包括配置管理器2431a。配置管理器2431a可执行存储装置2400a的自配置操作。在示例实施例中,在控制器2430a响应于来自主处理器2100的“存储器读请求”将启动指令BUI提供至主处理器2100之前,配置管理器2431a可控制自配置操作以能够与主处理器2100通信。根据自配置操作,存储装置2400a可在基于来自主处理器2100的枚举/配置命令存储设置信息STI之前,自己存储具有“自设定值”的设置信息STI。
自设定值可包括在没有来自主处理器2100的命令的情况下通过存储装置2400a设置的设置信息STI的值。在自配置操作中,配置管理器2431a可将具有自设定值的设置信息STI存储在配置存储器2450a中,以限定执行与主处理器2100的通信的条件。
因此,即使主处理器2100还未读取启动指令BUI并且未执行枚举/配置操作,主处理器210也可基于具有自设定值的设置信息STI与存储装置2400a通信。另外,在由自设定值限定的条件下,控制器2430a可响应于来自主处理器2100的存储器读请求将启动指令BUI的数据提供至主处理器2100。
为了执行自配置操作,可通过执行固件(FW)和/或软件(SW)的程序代码在控制器2430a上执行配置管理器2431a。可替换地,配置管理器2431a可通过硬件电路实施。在一些情况下,配置管理器2431a可按照硬件和软件的混合形式实施。
图3是描述图2的连接结构的各电子装置之间的示例通信的流程图。
在操作S110和S114中,可分别开始向主处理器2100和存储装置2400a供电,并且在操作S115中,可开始向端点装置2500和2600供电。可从PCI/PCIe构造2000a以外的电池或者任何其它电源供电。在一些示例实施例中,可基本上同时提供主处理器2100、存储装置2400a和端点装置2500和2600的电源。
在操作S120中,存储装置2400a可执行自配置操作。在主处理器2100将枚举/配置命令提供至存储装置2400a之前,存储装置2400a可执行自配置操作,以能够与主处理器2100通信。在自配置操作中,存储装置2400a可将具有自设定值的设置信息STI存储在配置存储器2450a中。将参照图4进一步描述自配置操作。
在操作S123中,主处理器2100可将存储器读请求提供至存储装置2400a。在操作S126中,存储装置2400a可将完成响应与数据一起提供至主处理器2100。提供至主处理器2100的数据可包括启动指令BUI。在操作S130中,主处理器2100可基于在操作S126中接收的启动指令BUI执行启动操作。
在示例实施例中,主处理器2100可在执行启动操作和枚举/配置操作之前与存储装置2400a通信。可在由具有自设定值的设置信息STI限定的条件下执行主处理器2100与存储装置2400a之间的通信。因此,主处理器2100可从存储装置1400接收启动指令BUI,而不需要额外的启动指令存储器10。
在操作S140中,存储装置2400a可执行自复位操作。在自复位操作中,存储装置2400a可释放具有自设定值的设置信息STI,并且可复位配置存储器2450a。自设定值可对应于临时设为将启动指令BUI提供至主处理器2100的设置信息STI。因此,在将启动指令BUI提供至主处理器2100之后,存储装置2400a可执行自复位操作以释放和重置具有自设定值的设置信息STI。然而,在一些情况下,具有自设定值的设置信息STI可适于继续与主处理器2100通信。在这种情况下,可省略操作S140。将参照图7进一步描述自复位操作。
在操作S150中,主处理器2100可将枚举/配置命令提供至存储装置2400a以及端点装置2500和2600中的每一个。当主处理器2100辨识出存储装置2400a与端点装置2500和2600连接时,主处理器2100可将枚举/配置命令提供至辨识出的存储装置2400a和辨识出的端点装置2500和2600中的每一个。
在操作S154中,存储装置2400a可基于在操作S150中接收到的命令执行配置操作。在配置操作中,存储装置2400a可将设置信息STI存储在配置存储器2450a中。在操作S155中,端点装置2500和2600中的每一个可基于在操作S150中接收的命令执行配置操作(例如,存储设置信息STI)。在一些情况下,可基本上同时执行操作S154和S155。
在操作S160中,在主处理器2100与存储装置2400a以及端点装置2500和2600中的每一个之间可执行正常通信。例如,当采用了PCI/PCIe构造2000a时,主处理器2100可依照PCI/PCIe通信协议与存储装置2400a以及端点装置2500和2600通信。这样,可在通过在操作S154至S155中存储的设置信息STI限定的条件下执行通信。将参照图8进一步描述枚举/配置操作和正常通信。
图4是描述在图2的连接结构中执行的示例自配置操作的概念图。
在开始对存储装置2400a供电之后,控制器2430a可执行固件(FW)和/或软件(SW)的程序代码。因此,控制器2430a可运行配置管理器2431a(操作①)。
可运行配置管理器2431a以执行自配置操作。在自配置操作中,配置管理器2431a可将具有自设定值SSV的设置信息STI存储在配置存储器2450a中(操作②)。
如上所述,设置信息STI可存储信号地址范围的信息。在这种情况下,自设定值SSV可包括限定了信号地址范围的上限值和/或下限值中的至少一个。
例如,固件(FW)和/或软件(SW)的程序代码可包括与信号地址范围的上限值和/或下限值中的至少一个关联的代码。配置管理器2431a可从固件(FW)和/或软件(SW)的程序代码中读取上限值和/或下限值。配置管理器2431a可将读取的值存储在配置存储器2450a中,作为自设定值SSV。
然后,控制器2430a可从主处理器2100接收输入(例如,命令、请求、询问、数据、分组等等),该输入具有包括在由自设定值SSV指定的信号地址范围中的信号地址。因此,控制器2430a可从主处理器2100接收其信号地址在信号地址范围的上限值与下限值之间的存储器读请求(操作③)。
例如,主处理器2100可响应于供电的开始而将存储器读请求提供至存储装置2400a。可替换地,由于配置管理器2431a需要一些时间来执行自配置操作(例如,将具有自设定值SSV的设置信息STI存储在配置存储器2450a中),因此主处理器2100可在从开始供电后过去参考时间之后将存储器读请求提供至存储装置2400a。
控制器2430a可响应于存储器读请求从非易失性存储器2410读取启动指令BUI。控制器2430a可将读取的启动指令BUI的数据提供至主处理器2100(操作④)。
在一些示例实施例中,控制器2430a可响应于开始为存储装置2400a供电来运行配置管理器2431a。因此,配置管理器2431a可响应于供电的开始而将具有自设定值SSV的设置信息STI存储在配置存储器2450a中。
在一些示例实施例中,存储装置2400a还可依照与主接口协议(将参照图9描述)不同的边带接口协议与主处理器2100通信。在该示例实施例中,控制器2430a可响应于从主处理器2100接收的先前请求依照边带接口协议运行配置管理器2431a。因此,配置管理器2431a可响应于先前请求将具有自设定值SSV的设置信息STI存储在配置存储器2450a中。
在一些示例实施例中,在初始化状态下,配置存储器2450a可构造为一开始存储允许接收所有输入(即,完全打开状态)的设置信息STI。例如,主处理器2100可输出其信号地址在最大值与最小值之间的信号。配置存储器2450a可存储用于接收其信号地址在最大值与最小值之间的任何输入的设置信息STI。在该示例实施例中,控制器2431a可响应于来自主处理器2100的存储器读请求运行配置管理器2431a,而不管存储器读请求的信号地址如何。配置管理器2431a可响应于存储器读请求将具有任何合适的自设定值SSV的设置信息STI存储在配置存储器2450a中(例如,在该示例实施例中,可在图3的操作S120之前执行图3的操作S123)。
图5是示出可存储在图2的连接结构的配置存储器中的设置信息的示例配置的概念图。
配置存储器2450a可存储设置信息STI。根据自配置操作(见图3),设置信息STI可具有自设定值SSV。当设置信息STI包括信号地址范围的信息时,自设定值SSV可包括限定了信号地址范围的上限值和/或下限值中的至少一个。
例如,当上限值为“0xFFFF”并且下限值为“0x0000”时,控制器2430a可接收和处理其信号地址包括在由“0xFFFF”和“0x0000”限定的信号地址范围(例如,“0xFFFF”与“0x0000”之间)中的输入。在一些情况下,自设定值SSV可仅包括上限值“0xFFFF”,以限定信号地址范围。在这种情况下,控制器2430a可接收和处理其信号地址为“0xFFFF”或“0xFFFF”以下的输入。
可将由自设定值SSV指定的上限值和/或下限值选为适合接收存储器读请求。在一些情况下,自设定值SSV可包括先前由主处理器2100的供应商同意的上限值和/或下限值。控制器2430a可接收和处理其信号地址包括在由自设定值SSV的上限值和/或下限值限定的信号地址范围中的输入。因此,可将自设定值SSV选为使得信号地址范围包括主处理器2100的存储器读请求的信号地址。
例如,设置信息STI可包括启用/禁用特定通信功能的控制信息。在这种情况下,自设定值SSV还可包括对应于特定通信功能的控制信息值。除此之外,设置信息STI(和/或自设定值SSV)可包括多种信息,诸如用于识别端点装置的标识符信息、指示端点装置的操作状态的状态信息等等。主处理器2100可输出基于设置信息STI被允许的信号/数据/分组,以与存储装置2400a通信。
图6是示出用于将自设定值存储在图4的配置存储器中的示例实施方式的概念图。
配置存储器2450a可包括多个存储器区域。存储器区域可提供不同的功能。可基于不同的存储器索引区分存储器区域。
例如,对于外部装置(例如,主处理器2100)与控制器2430a之间的正常通信,外部装置可参照存储器索引为“0”或“1”的存储器区域(下文中称作“第一区域”)。更详细地说,在图3的操作S160中,第一区域可存储用于与主处理器2100的通信所参照的设置信息STI。同时,存储器索引为“5”或“6”的存储器区域(下文中称作“第二区域”)可包括在正常通信中不参照的保留区。在一些情况下,配置存储器2450a可与结合PCI/PCIe通信协议所参照的扩展ROM区域关联。
在一些示例实施例中,具有自设定值SSV的设置信息STI可存储在第一区域(例如,存储器索引为“0”的存储器区域)中。在该示例实施例中,在图3的操作S140中可重置具有自设定值SSV的设置信息STI。因此,主处理器2100与控制器2430a之间的正常通信可不受自设定值SSV影响。
在一些示例实施例中,具有自设定值SSV的设置信息STI可存储在第二区域(例如,存储器索引为“5”的存储器区域)中。可替换地,配置存储器2450a可在控制器2430a的控制下打开扩展ROM区域,并且扩展ROM区域可存储具有自设定值SSV的设置信息STI。在该示例实施例中,即使未执行针对配置存储器2450a的自复位操作,主处理器2100与控制器2430a之间的正常通信也可不受自设定值SSV的影响。
图7是描述在图2的连接结构中执行的示例自复位操作的概念图。
控制器2430a的配置管理器2431a可确定启动指令BUI的数据是否完全提供至外部装置(例如,主处理器2100)。当确定启动指令BUI的数据被完全提供至主处理器2100时,配置管理器2431a可执行自复位操作。
在自复位操作中,配置管理器2431a可释放和重置具有自设定值SSV的设置信息STI(操作⑤)。当确定启动指令BUI的数据被完全提供至主处理器2100时,可不再参照自设定值SSV。因此,配置管理器2431a可释放具有自设定值SSV的设置信息STI,以重置配置存储器2450a。例如,“释放”可包括删除自设定值SSV本身和/或断开对于自设定值SSV的参考链接。
在一些示例实施例中,配置管理器2431a可预先(例如,在存储装置2400a操作之前)识别与启动指令BUI的数据的量关联的信息。另外,配置管理器2431a可监视从存储装置2400a、非易失性存储器2410或控制器2430a输出的启动指令BUI的数据的量。配置管理器2431a可基于监视的数据量来确定启动指令BUI的数据是否被完全提供至主处理器2100。例如,当监视的数据量大于或等于先前识别出的数据量时(即,当启动指令BUI的数据的整个部分被输出至主处理器2100时),配置管理器2431a可确定启动指令BUI的数据被完全提供至主处理器2100。
在一些示例实施例中,主处理器2100可监视从存储装置2400a接收到的启动指令BUI的数据的量。当完全接收到启动指令BUI的数据的整个部分时,主处理器2100可将完成响应或枚举/配置命令发送至存储装置2400a。配置管理器2431a可响应于来自主处理器2100的完成响应或枚举/配置命令确定启动指令BUI的数据被完全提供至主处理器2100(当使用枚举/配置命令来通知启动指令BUI被完全接收时,可在图3的操作S140之前执行图3的操作S150)。
在一些示例实施例中,存储装置2400a还可依照与主接口协议(例如,PCIe)不同的边带接口协议与主处理器2100a通信(将参照图9描述)。在这样的示例实施例中,主处理器2100可依照边带接口协议将完成响应发送至存储装置2400a,来通知启动指令BUI被完全接收。配置管理器2431a可响应于完成响应来确定启动指令BUI的数据被完全提供至主处理器2100。
图8是描述在图2的连接结构中执行的示例正常通信的概念图。
主处理器2100可基于从存储装置2400a接收的启动指令BUI在执行启动操作的同时执行枚举/配置操作。根据枚举/配置操作,主处理器2100可辨识端点装置,并且可设置合适的通信条件。例如,主处理器2100可将枚举/配置命令发送至存储装置2400a(操作⑥),以在存储装置2400a上执行枚举/配置操作。
控制器2430a可基于枚举/配置命令执行配置操作。在配置操作中,控制器2430a可将设置信息STI新存储在配置存储器2450a中(操作⑦)。新存储的设置信息STI可与其中与主处理器2100执行正常通信的条件关联。因此,控制器2430a可在由新存储的设置信息STI限定的条件下与主处理器2100执行正常通信(操作⑧)。例如,正常通信可包括诸如交换命令和响应、数据发送和接收等等的一般通信。
根据以上处理,控制器2430a可在释放具有自设定值SSV的设置信息STI和重置配置存储器2450a之后将设置信息STI新存储至配置存储器2450a中。新存储的设置信息STI可包括与自设定值SSV相同的值,或者可包括与自设定值SSV不同的值。
图9是用于描述图2的连接结构的各电子装置之间的示例边带通信的概念图。
存储装置2400b可包括非易失性存储器2410、控制器2430b和配置存储器2450a。存储装置2400b可通过根复合体2005与主处理器2100连接,以与主处理器2100通信。
已参照图2至图8描述了根复合体2005、主处理器2100、非易失性存储器2410和配置存储器2450a。存储装置2400b、控制器2430b和配置管理器2431b的配置和操作可分别包括参照图2至图8描述的存储装置2400a、控制器2430a和配置管理器2431a的配置和操作。为了简明起见,下面将省略重复描述。
主处理器2100和存储装置2400b可依照主接口协议执行第一通信R1。例如,根据上面的假设,主接口协议可与PCIe通信协议关联。然而,示例实施例不限于此。例如,主接口协议可与其它通信协议(诸如NVMe、SCSI、ATA、SATA、PATA、SAS、UFS等等)中的至少一个关联。
例如,主处理器2100与存储装置2400b之间的第一通信R1可包括正常通信(参照图3的操作S160)。例如,根据第一通信R1,主处理器2100可将存储器读请求提供至存储装置2400b(参照图3的操作S123),并且可将枚举/通信命令提供至存储装置2400b(参照图3的操作S150)。例如,根据第一通信R1,存储装置2400b可将启动指令BUI的数据提供至主处理器2100(参照图3的操作S126)。
在一些示例实施例中,主处理器2100和存储装置2400b可依照边带接口协议执行第二通信R2。可以独立于主接口协议采用边带接口协议来交换辅助信息。例如,边带接口协议可与内置集成电路(I2C)、系统管理总线(SMBus)等中的至少一个关联。然而,示例实施例不限于此。
例如,在主处理器2100根据第一通信R1将存储器读请求提供至存储装置2400b之前,主处理器2100可根据第二通信R2将先前请求提供至存储装置2400b。基于先前请求,控制器2430b可辨识出主处理器2100将很快发送存储器读请求。因此,控制器2430b可响应于先前请求运行配置管理器2431b。配置管理器2431a可响应于先前请求将具有自设定值SSV的设置信息STI存储在配置存储器2450a中。
例如,主处理器2100可根据第二通信R2将完成响应发送至存储装置2400a,以通知启动指令BUI被完全接收。配置管理器2431a可响应于完成响应确定启动指令BUI的数据被完全提供至主处理器2100。
图10是示出图1的各电子装置之间的示例连接结构的框图。例如,图1的计算装置1000可采用PCI/PCIe构造2000c来连接各电子装置(例如,主处理器1100、工作存储器1200、存储装置1400、通信块1500和图形处理器装置1600)。
例如,PCI/PCIe构造2000c可包括根复合体2005、主处理器2100、工作存储器2200和端点装置2400c、2500和2600。例如,端点装置2400c可在存储装置中实施(下文中称作“存储装置2400c”),并且可包括非易失性存储器2410、控制器2430c、配置逻辑电路2431c和配置存储器2450c。
已参照图2至图9描述了根复合体2005、主处理器2100、工作存储器2200、非易失性存储器2410以及端点装置2500和2600。控制器2430c和配置存储器2450c的配置和操作可包括参照图2至图9描述的控制器2430a或2430b和配置存储器2450a的配置和操作,不同的是控制器2430c不包括图2的配置管理器2431a或图9的配置管理器2431b。为了简明起见,下面将省略重复描述。
配置逻辑电路2431c可构造为执行参照图2至图9描述的自配置操作。在配置存储器2450c基于来自外部装置(例如,主处理器2100)的枚举/配置命令存储设置信息STI之前,配置逻辑电路2431c可根据自配置操作将具有自设定值SSV的设置信息STI存储在配置存储器2450c中。
在由自设定值SSV限定的条件下,控制器2430c可响应于来自主处理器2410的存储器读请求从非易失性存储器2410读取启动指令BUI。控制器2430c可将读取的启动指令BUI的数据提供至主处理器2100。因此,主处理器2100可在运行启动指令BUI之前基于在自配置操作中存储的自设定值SSV与存储装置2400c通信。
配置逻辑电路2431c可在包括一个或多个模拟和/或数字电路的硬件电路中实施,以执行自配置操作。将参照图11描述配置逻辑电路2431c的示例配置和操作。
图11是示出基于图10的连接结构的配置逻辑电路的示例配置和操作的概念图。在一些示例实施例中,配置逻辑电路2431c可包括地址提取器2432、分析器2433和配置设置器2434。
地址提取器2432可连接至从主处理器2100接收的存储器读请求的传输路径。地址提取器2432可监视是否从主处理器2100接收到存储器读请求。当接收到存储器读请求时,地址提取器2432可从接收到的存储器读请求中提取对应于接收到的存储器读请求的信号地址。例如,地址提取器2432可窥探按照接收到的存储器读请求的数据格式描述的信号地址的字段。
分析器2433可分析通过地址提取器2432提取的信号地址。分析器2433可限定包括提取的信号地址的信号地址范围。例如,分析器2433可选择信号地址范围的上限值和/或下限值,以限定信号地址范围。
配置设置器2434可基于由分析器2433限定的信号地址范围将具有自设定值SSV的设置信息STI存储在配置存储器2450c中。例如,配置设置器2434可将信号地址范围的上限值和/或下限值存储在配置存储器2450c中,作为自设定值SSV。
因此,存储在配置存储器2450c中的自设定值SSV可限定用于从主处理器2100接收存储器读请求和处理接收到的存储器读请求的条件。基于自设定值SSV(例如,上限值和/或下限值),控制器2430c可从主处理器2100接收具有通过地址提取器2432提取的信号地址的存储器读请求。
例如,当存储器读请求的信号地址为“0xA000”时,分析器2433可选择由下限值“0x0000”和上限值“0xF000”限定的信号地址范围。另外,配置设置器2434可将下限值“0x0000”和上限值“0xF000”(或仅将上限值“0xF000”)存储在配置存储器2450c中,作为自设定值SSV。因此,控制器2430c可接收具有包括在下限值“0x0000”与上限值“0xF000”之间的信号地址范围中的信号地址“0xA000”的存储器读请求。
然而,提供以上示例实施例是为了便于更好地理解,并且示例实施例不限于此。可不同地改变或修改配置逻辑电路2431c的配置和操作。
在一些其它示例实施例中,配置逻辑电路2431c可构造为将允许接收所有输入的自设定值SSV存储在配置存储器2450c中。例如,配置逻辑电路2431c可将从主处理器2100输出的所有信号的信号地址中的最大值存储在配置存储器2450c中,作为上限值。另外,配置逻辑电路2431c可将从主处理器2100输出的所有信号的信号地址中的最小值存储在配置存储器2450c中,作为下限值。
根据以上示例,控制器2430c可接收其信号地址在最大值与最小值之间的任何输入。因此,控制器2430c可从主处理器2100接收存储器读请求,而不管存储器读请求的信号地址如何。这样,配置逻辑电路2431c可构造为预先(例如,在存储装置2400c操作之前)知晓(例如,接收或存储)与从主处理器2100输出的信号的信号地址中的最大值与最小值关联的信息。
图12是示出图1的各电子装置之间的示例连接结构的框图。例如,图1的计算装置1000可采用PCI/PCIe构造2000d以连接各电子装置(例如,主处理器1100、工作存储器1200、存储装置1400、通信块1500和图形处理器装置1600)。
例如,PCI/PCIe构造2000d可包括根复合体2005、主处理器2100、工作存储器2200、端点装置2400d、2500和2600以及切换装置2800。例如,端点装置2400d可在存储装置中实施(下文中称作“存储装置2400d”),并且可包括非易失性存储器2410、控制器2430d和配置存储器2450d。控制器2430d可包括(例如,运行)配置管理器2431d。
已参照图2至图9描述了根复合体2005、主处理器2100、工作存储器2200、非易失性存储器2410和端点装置2500和2600。存储装置2400d、控制器2430d、配置管理器2431d和配置存储器2450d的配置和操作可分别包括参照图2至图9描述的存储装置2400a或2400b、控制器2430a或2430b、配置管理器2431a或2431b和配置管理器2450a的配置和操作。为了简明起见,下面将省略重复描述。
切换装置2800可连接在根复合体2005与端点装置2400d、2500和2600之间。端点装置2400d、2500和2600可通过切换装置2800和根复合体2005与主处理器2100通信。切换装置2800可根据PCI/PCIe构造2000d的操作策略在端点装置2400d、2500和2600与主处理器2100之间提供命令、请求、询问、数据、信号、分组等等的传输路径。例如,切换装置2800可对应于PCI/PCIe开关。将参照图13描述切换装置2800的示例配置和操作。
图13是描述在图12的连接结构中执行的示例自配置操作的概念图。
切换装置2800可包括主机端口2810和多个端点端口2820、2830和2840。主机端口2810可连接至主机(例如,主处理器2100)。端点端口2820、2830和2840可分别与端点装置2400d、2500和2600连接。图13示出了三个端点端口2820、2830和2840,但是端点端口的数量可不同地改变或修改。
切换装置2800可包括切换配置存储器2811、2821、2831和2841。切换配置存储器2811可存储设置信息STI1,其与通过主机端口2810执行与主机的通信的条件关联。主机端口2810可在由设置信息STI1限定的条件下提供命令、请求、询问、数据、信号、分组等等的传输路径。例如,主机端口2810可提供其信号地址包括在设置信息STI1的信号地址范围中的枚举/配置命令的传输路径。
切换配置存储器2821、2831和2841可分别存储设置信息STI2、STI3和STI4,它们与通过端点端口2820、2830和2840执行与主机的通信的条件关联。端点端口2820、2830和2840可在由设置信息STI2、STI3和STI4限定的条件下提供命令、请求、询问、数据、信号、分组等等的传输路径。
可将端点装置2400d、2500和2600中的存储启动指令BUI的端点装置2400d称作“目标端点装置”。另外,可将连接至目标端点装置2400d的端点端口2820称作“目标端点端口”。
配置管理器2431d可执行参照图2至图9描述的自配置操作。配置存储器2450d可存储设置信息STI,其与通过切换装置2800执行与主机的通信的条件关联。在配置存储器2450d基于主机的枚举/配置命令存储设置信息STI之前,配置管理器2431d可根据自配置操作将具有自设定值SSV的设置信息STI存储在配置存储器2450d中。
另外,还可针对切换装置2800执行配置管理器2431d的自配置操作。例如,在切换配置存储器2811、2821、2831和2841基于来自主处理器2100的枚举/配置命令存储设置信息STI1,STI2、STI3和STI4之前,切换装置2800可在目标端点装置2400d的控制下(即,根据配置管理器2431d的自配置操作)将具有自设定值SSV1的设置信息STI1存储在对应于主机端口2810的切换配置存储器2811中,并且可将具有自设定值SSV2的设置信息STI2存储在对应于目端点端口2820的切换配置存储器2821中。
主机端口2810和目标端点端口2820可在由自设定值SSV1和SSV2限定的条件下提供传输路径。例如,切换装置2800可将从主处理器2100接收的存储器读请求通过主机端口2810和目标端点端口2820传递至目标端点装置2400d。另外,切换装置2800可将响应于存储器读请求将从目标端点装置2400d输出的启动指令BUI的数据通过目标端点端口2820和主机端口2810传递至主处理器2100。因此,即使还未执行枚举/配置操作,目标端点装置2400d也可将启动指令BUI的数据通过切换装置2800提供至主处理器2100。
在一些示例实施例中,在自配置操作中,切换装置2800可仅将具有自设定值SSV1和SSV2的设置信息STI1和STI2存储在切换配置存储器2811和2821中。另一方面,在自配置操作中,切换配置存储器2831和2841可不存储具有自设定值SSV3和SSV4的设置信息STI3和STI4。在这样的示例实施例中,切换装置2800可仅将存储器读请求从主处理器2100传递至目标端点装置2400d,并且可不将存储器读请求传递至其余的端点装置2500和2600。
在一些示例实施例中,在自配置操作中,切换装置2800可将具有自设定值SSV3和SSV4的设置信息STI3和STI4存储在切换配置存储器2831和2841中。在这样的示例实施例中,切换装置2800可将存储器读请求从主处理器2100传递至目标端点装置2400d和其余的端点装置2500和2600。然而,由于端点装置2500和2600没有存储启动指令BUI,因此端点装置2500和2600可忽略存储器读请求或者可输出错误响应。可替换地,切换装置2800可忽略或者可不从端点装置2500和2600接收对应于存储器读请求的响应。因此,切换装置2800可仅从目标端点装置2400d接收对应于存储器读请求的响应。
在图12和图13中,已描述目标端点装置2400d的控制器2430d包括(例如,运行)配置管理器2431d。然而,整个或一部分配置管理器2431d可在目标端点装置2400d以外实施。例如,整个或一部分配置管理器2431d可包括在切换装置2800中。配置管理器2431d的实施可不同的改变或修改,以执行自配置操作。在一些示例实施例中,整个或一部分配置管理器2431d可在硬件电路中实施,与参照图10和图11描述的配置逻辑电路2431c相同或相似。
图14是示出图1的各电子装置之间的示例连接结构的框图。例如,图1的计算装置1000可采用连接结构3000来连接各电子装置(例如,主处理器1100、工作存储器1200、存储装置1400、通信块1500和图形处理器装置1600)。
连接结构3000可包括根复合体3005、主处理器3100、工作存储器3200、PCIe装置3400、NVMe装置3500、主机总线适配器(HBA)3600、SAS装置3610和SATA装置3620。根复合体3005、主处理器3100和工作存储器3200的配置和操作可分别包括图2至图13的根复合体2005、主处理器2100和工作存储器2200的配置和操作。为了简明起见,下面将省略重复描述。
如参照图2至图13的描述,采用PCIe通信协议的PCIe装置3400可通过根复合体3005与主处理器3100通信。另外,采用NVMe通信协议的NVMe装置3500也可通过根复合体3005与主处理器3100通信。在一些情况下,采用SAS通信协议的SAS装置3610和采用SATA通信协议的SATA装置3620可通过HBA 3600与根复合体3005连接。例如,HBA 3600可处理用于SAS装置3610和SATA装置3620的接口转换。
除PCIe装置3400之外,NVMe装置3500、SAS装置3610和SATA装置3620中的每一个也可存储启动指令BUI。PCIe装置3400、NVMe装置3500、SAS装置3610和SATA装置3620中的每一个可执行自配置操作,以在执行枚举/配置操作之前将启动指令BUI提供至主处理器3100。也就是说,可将参照图2至图13描述的示例实施例应用于除PCIe通信协议之外的各种其它通信协议。
在图2至图13中,将存储装置2400a、2400b、2400c或2400d描述为存储启动指令BUI。然而,启动指令BUI可存储在除存储装置之外的另一种端点装置中。启动指令BUI可存储在包括存储器的任何类型的端点装置中。例如,启动指令BUI可存储在图形处理器装置、通信装置等等中。
图15是示出根据示例实施例的电子装置及其接口的示例配置的框图。电子装置4000可在能够使用或支持由移动工业处理器接口(MIPI)联盟提出的接口协议的数据处理装置中实施。例如,电子装置4000可为下列各种电子装置之一,诸如便携式通信终端、个人数字助理(PDA)、便携式多媒体播放器(PMP)、智能电话、平板计算机、可佩戴装置等等。
电子装置4000可包括应用处理器4100、显示器4220和图像传感器4230。应用处理器4100可包括DigRF主装置4110、显示器串行接口(DSI)主机4120、相机串行接口(CSI)主机4130、物理层4140和UFS主机-控制器接口(HCI)4150。
DSI主机4120可依照DSI与显示器4220的DSI装置4225通信。例如,光学串行器SER可在DSI主机4120中实施,并且光学解串器DES可在DSI装置4225中实施。
CSI主机4130可依照CSI与图像传感器4230的CSI装置4235通信。例如,光学解串器DES可在CSI主机4130中实施,并且光学串行器SER可在CSI装置4235中实施。
电子装置4000还可包括与应用处理器4100通信的射频(RF)芯片4240。RF芯片4240可包括物理层4242、DigRF从装置4244和天线4246。例如,RF芯片4240的物理层4242和应用处理器4100的物理层4140可依照MIPI联盟提出的DigRF接口彼此交换数据。
电子装置4000还可包括工作存储器4250和内嵌式/卡式存储装置4255。工作存储器4250可临时存储由或将由应用处理器4100处理的数据。工作存储器4250可包括易失性存储器(诸如静态随机存取存储器(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)等等)和/或非易失性存储器(诸如闪速存储器、PRAM、MRAM和ReRAM、FRAM等等)。
内嵌式/卡式存储装置4255可存储由应用处理器4100提供的数据,或者可将存储的数据提供至应用处理器4100。不管电源如何,内嵌式/卡式存储装置4255都可存储数据。例如,内嵌式/卡式存储装置4255可存储将在应用处理器4100的启动操作中使用的启动指令BUI。
例如,内嵌式/卡式存储装置4255可依照UFS通信协议与应用处理器4100通信。在该示例中,应用处理器4100可通过UFS HCI 4150处理与内嵌式/卡式存储装置4255的通信。例如,UFS HCI 4150可根据在UFS通信协议中限定的链路启动处理辨识内嵌式/卡式存储装置4255。
在完成链路启动处理之前,UFS HCI 4150可不与内嵌式/卡式存储装置4255通信。因此,在示例实施例中,内嵌式/卡式存储装置4255可执行自配置操作,以在链路启动处理开始之前将启动指令BUI的数据提供至应用处理器4100。可与参照图2至图13描述的相似地执行自配置操作。为了简明起见,下面将省略重复描述。
电子装置4000可通过通信模块(诸如微波接入全球互操作性(WiMAX)4260、无线局域网(WLAN)4262、超宽带(UWB)4264等等)与外部装置/系统通信。除此之外,电子装置4000可基于诸如LTE、GSM、CDMA、蓝牙、NFC、Wi-Fi、RFID等等的各种无线通信协议和/或诸如TCP/IP、USB、SCSI、移动PCIe(M-PCIe)、火线等等的各种有线通信协议中的至少一个与外部装置/系统通信。
电子装置4000还可包括用于处理语音信息的扬声器4270和麦克风4275。另外,电子装置4000还可包括用于处理位置信息的全球定位系统(GPS)装置4280。电子装置4000还可包括用于管理与外围装置的连接的桥接芯片4290。
根据上述示例实施例,处理器可从高速端点装置而不是低速存储器读取启动指令。因此,可快速地执行启动操作。
根据上述示例实施例,可从电子装置去除额外存储器、用于管理额外存储器的装置和设为保持额外存储器的数据的电池。因此,可减小系统/装置的整体区域和节约实施成本。
根据上述示例实施例,当需要更新启动指令时,新安装存储在端点装置中的程序代码(例如,固件)就可以了,而不用更换额外存储器。因此,可低成本地容易地更新启动指令。
虽然已描述了详细示例实施例,但是应该理解,本领域技术人员可设计出许多其他的修改形式、改变、变型形式和替代形式。而且,应该理解,本公开覆盖可基于上述示例实施例容易修改和实现的各种技术。
Claims (25)
1.一种电子装置,包括:
第一存储器,其构造为存储启动指令的数据;
第二存储器,其构造为存储与执行与外部装置的通信的条件关联的设置信息;以及
控制器,其构造为:
在第二存储器基于来自外部装置的命令存储设置信息之前,将具有自设定值的设置信息存储在第二存储器中,以及
在由自设定值限定的条件下,响应于存储器读请求将启动指令的数据提供至外部装置,从外部装置接收所述存储器读请求。
2.根据权利要求1所述的电子装置,其中:
启动指令与基本输入/输出系统、可扩展固件接口或统一可扩展固件接口中的至少一个关联。
3.根据权利要求1所述的电子装置,其中:
第二存储器与在外围组件互连或快速外围组件互连通信协议中限定的配置空间关联。
4.根据权利要求1所述的电子装置,其中:
设置信息至少包括信号地址范围的信息,
自设定值包括限定了信号地址范围的上限值或下限值,或者限定了信号地址范围的上限值和下限值二者,并且
控制器还构造为从外部装置接收信号地址被包括在信号地址范围中的存储器读请求并对该存储器读请求作出反应。
5.根据权利要求4所述的电子装置,其中:
第一存储器还构造为存储固件的数据,并且
固件的程序代码包括所述上限值或所述下限值或者所述上限值和所述下限值二者。
6.根据权利要求1所述的电子装置,其中:
控制器还构造为响应于启动指令的数据被完全提供至外部装置而释放具有自设定值的设置信息并重置第二存储器。
7.根据权利要求6所述的电子装置,其中:
控制器还构造为响应于启动指令的全部数据被输出至外部装置来确定启动指令的数据被完全提供至外部装置。
8.根据权利要求6所述的电子装置,其中:
控制器还构造为响应于从外部装置接收到完成响应或者从外部装置接收到命令来确定启动指令的数据被完全提供至外部装置。
9.根据权利要求6所述的电子装置,其中:
控制器还构造为,在释放具有自设定值的设置信息并重置第二存储器之后,基于来自外部装置的命令将设置信息新存储在第二存储器中。
10.一种电子装置,包括:
第一存储器,其构造为存储启动指令的数据;
第二存储器,其构造为存储与执行与外部装置的通信的条件关联的设置信息;以及
逻辑电路,其构造为在第二存储器基于来自外部装置的命令存储设置信息之前,将具有自设定值的设置信息存储在第二存储器中;以及
控制器,其构造为在由自设定值限定的条件下,响应于存储器读请求将启动指令的数据提供至外部装置,从外部装置接收所述存储器读请求。
11.根据权利要求10所述的电子装置,其中:
设置信息至少包括信号地址范围的信息,并且
自设定值包括限定了信号地址范围的上限值和下限值。
12.根据权利要求11所述的电子装置,其中:
逻辑电路还构造为:
将从外部装置输出的信号的信号地址中的最大值存储在第二存储器中,作为上限值,以及
将从外部装置输出的信号的信号地址中的最小值存储在第二存储器中,作为下限值。
13.根据权利要求12所述的电子装置,其中:
控制器还构造为从外部装置接收信号地址在最大值与最小值之间的存储器读请求并对该存储器读请求作出反应。
14.根据权利要求11所述的电子装置,其中:
逻辑电路还构造为:
提取对应于接收到的存储器读请求的信号地址,以及
基于提取的信号地址将上限值或下限值存储在第二存储器中,或者将上限值和下限值二者存储在第二存储器中。
15.根据权利要求14所述的电子装置,其中:
控制器还构造为基于存储的上限值或存储的下限值或者基于存储的上限值和存储的下限值二者从外部装置接收具有提取的信号地址的存储器读请求。
16.根据权利要求10所述的电子装置,其中:
第二存储器的其中存储有具有自设定值的设置信息的存储器区域是由外部装置引用以用于外部装置与控制器之间的通信的第一区域、除第一区域之外的第二区域或者扩展只读存储器区域。
17.一种电子装置,包括:
切换装置,其包括:
主机端口,其构造为连接至主机,
多个端点端口,其构造为分别连接至多个端点装置,以及
第一存储器,各自构造为存储设置信息,第一存储器之一的设置信息与通过主机端口执行与主机的通信的条件关联,并且其它第一存储器的设置信息分别与通过对应的端点端口执行与端点装置的通信的条件关联;以及
目标端点装置,其构造为连接至所述多个端点端口中的目标端点端口,并且构造为存储启动指令的数据,
其中,切换装置构造为:
在第一存储器基于来自主机的命令存储设置信息之前,在目标端点装置的控制下,将具有自设定值的设置信息存储在第一存储器当中的对应于主机端口和目标端点端口的目标存储器中,
在由自设定值限定的条件下,将从主机接收的存储器读请求传递至目标端点装置,并且
将响应于存储器读请求从目标端点装置输出的启动指令的数据传递至主机。
18.根据权利要求17所述的电子装置,其中:
目标端点装置包括构造为存储配置信息的第二存储器,配置信息与通过切换装置执行与主机的通信的条件关联。
19.根据权利要求18所述的电子装置,其中:
目标端点装置还构造为,在第二存储器基于来自主机的命令存储配置信息之前,将具有内部自设定值的配置信息存储在第二存储器中。
20.根据权利要求17所述的电子装置,其中:
切换装置构造为:
将具有自设定值的设置信息仅存储在目标存储器中,
将存储器读请求传递至目标端点装置,以及
禁止将存储器读请求传递至除目标端点装置之外的其它端点装置。
21.根据权利要求17所述的电子装置,其中:
切换装置构造为:
将具有自设定值的设置信息存储在目标存储器和其它第一存储器中,以及
将存储器读请求传递至包括目标端点装置的所有的所述多个端点装置。
22.根据权利要求21所述的电子装置,其中:
切换装置忽略或不接收来自除目标端点装置之外的其它端点装置的对应于存储器读请求的响应。
23.一种电子装置,包括:
处理器装置,其构造为基于启动指令执行启动操作;以及
端点装置,其构造为:
存储启动指令的数据,以及
存储与执行与处理器装置的通信的条件关联的设置信息,其中,所述端点装置还构造为:
在基于来自处理器装置的命令存储设置信息之前存储具有自设定值的设置信息,以及
在由自设定值限定的条件下,响应于从处理器装置接收的存储器读请求将启动指令的数据提供至处理器装置。
24.根据权利要求23所述的电子装置,其中:
处理器装置与端点装置之间的通信包括遵循主接口协议的第一通信和遵循边带接口协议的第二通信。
25.根据权利要求24所述的电子装置,其中:
处理器装置还构造为,在根据第一通信将存储器读请求提供至端点装置之前,根据第二通信将先前请求提供至端点装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160103793A KR20180019806A (ko) | 2016-08-16 | 2016-08-16 | 종단 장치로부터 제공되는 부트 업 명령어에 기초하여 부팅 동작을 수행하도록 구성되는 전자 장치 |
KR10-2016-0103793 | 2016-08-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107766097A CN107766097A (zh) | 2018-03-06 |
CN107766097B true CN107766097B (zh) | 2021-08-13 |
Family
ID=61191693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710701593.8A Active CN107766097B (zh) | 2016-08-16 | 2017-08-16 | 基于端点装置提供的启动指令执行启动操作的电子装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10635450B2 (zh) |
KR (1) | KR20180019806A (zh) |
CN (1) | CN107766097B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102278721B1 (ko) * | 2016-07-22 | 2021-07-16 | 삼성전자주식회사 | 비휘발성 메모리 익스프레스(NVMe) 장치의 커맨드의 실행 조정을 위한 시스템 및 방법 |
KR20220026432A (ko) | 2020-08-25 | 2022-03-04 | 삼성전자주식회사 | 고속 링크 스타트업을 수행하는 스토리지 장치 및 이를 포함하는 스토리지 시스템 |
US20210294772A1 (en) * | 2021-06-07 | 2021-09-23 | Intel Corporation | Systems, Apparatus And Methods For Rapid Peripheral Component Interconnect Express (PCIE) System Boot |
CN117251118B (zh) * | 2023-11-16 | 2024-02-13 | 上海创景信息科技有限公司 | 支持虚拟NVMe仿真与集成方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101051279A (zh) * | 2007-05-15 | 2007-10-10 | 华为技术有限公司 | 外围设备运行方法、外围设备及主机 |
CN103970675A (zh) * | 2013-01-29 | 2014-08-06 | Lsi公司 | 用于使引导操作系统加速的快速引导列表 |
CN104156226A (zh) * | 2013-05-15 | 2014-11-19 | 索尼公司 | 混合内存设备的挂起或关机方法 |
CN104541280A (zh) * | 2012-09-28 | 2015-04-22 | 英特尔公司 | 用于利用非易失性存储器装置的备选引导路径支持 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100204565B1 (ko) | 1996-12-14 | 1999-06-15 | 정선종 | 바운더리 스캔 입출력 신호 연결 제어장치 |
JP5348813B2 (ja) | 2000-11-06 | 2013-11-20 | 株式会社アイ・オー・データ機器 | ブートrom搭載ボード |
US7131033B1 (en) | 2002-06-21 | 2006-10-31 | Cypress Semiconductor Corp. | Substrate configurable JTAG ID scheme |
JP4086640B2 (ja) * | 2002-12-09 | 2008-05-14 | キヤノン株式会社 | 基地局、ネットワーク識別符号の決定方法及びプログラム |
US7607000B1 (en) * | 2003-05-13 | 2009-10-20 | Apple Inc. | Method for booting an operating system |
US20060282602A1 (en) | 2005-06-09 | 2006-12-14 | Tse-Hsine Liao | Data transmission device and method thereof |
TW200801952A (en) | 2006-06-02 | 2008-01-01 | Via Tech Inc | Method for setting up a peripheral component interconnect express (PCIE) |
US8972546B2 (en) | 2006-08-14 | 2015-03-03 | International Business Machines Corporation | Apparatus system and method for booting a server from a storage system |
US8719483B2 (en) | 2008-10-15 | 2014-05-06 | Nec Corporation | Multi-root PCI express switch, boot method thereof, and multi-root PCI manager program |
KR20100076445A (ko) | 2008-12-26 | 2010-07-06 | 주식회사 동부하이텍 | 제이택을 지원하는 칩의 멀티사이트 테스트용 프로브 카드 |
GB0912745D0 (en) * | 2009-07-22 | 2009-08-26 | Wolfson Microelectronics Plc | Improvements relating to DC-DC converters |
US9185387B2 (en) * | 2012-07-03 | 2015-11-10 | Gopro, Inc. | Image blur based on 3D depth information |
JP6090017B2 (ja) | 2013-07-10 | 2017-03-08 | 富士ゼロックス株式会社 | コンピュータシステム |
US9021141B2 (en) * | 2013-08-20 | 2015-04-28 | Lsi Corporation | Data storage controller and method for exposing information stored in a data storage controller to a host system |
US9465760B2 (en) | 2013-11-18 | 2016-10-11 | Futurewei Technologies, Inc. | Method and apparatus for delivering MSI-X interrupts through non-transparent bridges to computing resources in PCI-express clusters |
US9501441B2 (en) | 2013-12-16 | 2016-11-22 | Dell Products, Lp | Mechanism to boot multiple hosts from a shared PCIe device |
US9262197B2 (en) | 2014-07-16 | 2016-02-16 | Dell Products L.P. | System and method for input/output acceleration device having storage virtual appliance (SVA) using root of PCI-E endpoint |
US9984021B1 (en) * | 2015-09-28 | 2018-05-29 | Amazon Technologies, Inc. | Location-aware self-configuration of a peripheral device |
US10558468B2 (en) * | 2015-10-22 | 2020-02-11 | American Megatrends International, Llc | Memory channel storage device initialization |
-
2016
- 2016-08-16 KR KR1020160103793A patent/KR20180019806A/ko active IP Right Grant
-
2017
- 2017-08-08 US US15/671,866 patent/US10635450B2/en active Active
- 2017-08-16 CN CN201710701593.8A patent/CN107766097B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101051279A (zh) * | 2007-05-15 | 2007-10-10 | 华为技术有限公司 | 外围设备运行方法、外围设备及主机 |
CN104541280A (zh) * | 2012-09-28 | 2015-04-22 | 英特尔公司 | 用于利用非易失性存储器装置的备选引导路径支持 |
CN103970675A (zh) * | 2013-01-29 | 2014-08-06 | Lsi公司 | 用于使引导操作系统加速的快速引导列表 |
CN104156226A (zh) * | 2013-05-15 | 2014-11-19 | 索尼公司 | 混合内存设备的挂起或关机方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107766097A (zh) | 2018-03-06 |
KR20180019806A (ko) | 2018-02-27 |
US10635450B2 (en) | 2020-04-28 |
US20180052694A1 (en) | 2018-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107766097B (zh) | 基于端点装置提供的启动指令执行启动操作的电子装置 | |
US10152443B2 (en) | System and method for providing personality switching in a solid state drive device | |
US7739487B2 (en) | Method for booting a host device from an MMC/SD device, a host device bootable from an MMC/SD device and an MMC/SD device method a host device may booted from | |
US9240924B2 (en) | Out-of band replicating bios setting data across computers | |
US9274983B2 (en) | Memory systems including nonvolatile buffering and methods of operating the same | |
US10592253B2 (en) | Technologies for pre-memory phase initialization of a computing device | |
US10606677B2 (en) | Method of retrieving debugging data in UEFI and computer system thereof | |
US10866737B2 (en) | Apparatus, method and system to store information for a solid state drive | |
US8892859B1 (en) | Hardware based detection of factory reset request | |
KR20160113693A (ko) | 하드웨어 플랫폼에 대한 펌웨어의 인-시스템 프로비저닝 | |
US10372639B2 (en) | System and method to avoid SMBus address conflicts via a baseboard management controller | |
US20150356049A1 (en) | Assigning processors to memory mapped configuration | |
US20100064036A1 (en) | Peripheral device operation method, peripheral device and host | |
WO2016074127A1 (zh) | 计算机设备及计算机设备内存启动的方法 | |
KR101698707B1 (ko) | 가상 pci 장치 및 가상 mmio 장치를 형성하기 위한 일반적인 방법 | |
TW201227516A (en) | System and method for facilitating wireless communication during a pre-boot phase of a computing device | |
US10360043B2 (en) | Installation of device drivers from virtual media | |
US20190079558A1 (en) | Docking device, electrical device, and mac address cloning method | |
US20170090949A1 (en) | System and Method for Constructive Bifurcation of I/O Unit Ports in an Information Handling System | |
US20230222471A1 (en) | System and method for subscription based solution implementation | |
CN109426527B (zh) | 在uefi固件及作业系统间分享蓝牙数据的电脑系统及其方法 | |
US10616944B2 (en) | Computer system and method thereof for sharing of wireless connection information between UEFI firmware and OS | |
US20100017588A1 (en) | System, method, and computer program product for providing an extended capability to a system | |
US9304779B2 (en) | Optimizing boot time of a storage system | |
KR102396441B1 (ko) | 통신 중단시 데이터 손실을 방지하도록 동작하는 스토리지 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |