CN113778328B - 在半导体封装之间引导控制数据 - Google Patents

在半导体封装之间引导控制数据 Download PDF

Info

Publication number
CN113778328B
CN113778328B CN202110406410.6A CN202110406410A CN113778328B CN 113778328 B CN113778328 B CN 113778328B CN 202110406410 A CN202110406410 A CN 202110406410A CN 113778328 B CN113778328 B CN 113778328B
Authority
CN
China
Prior art keywords
semiconductor package
bus
data
interface
protocol engine
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
Application number
CN202110406410.6A
Other languages
English (en)
Other versions
CN113778328A (zh
Inventor
N·J·罗伯森
R·L·努南
D·F·海因里奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of CN113778328A publication Critical patent/CN113778328A/zh
Application granted granted Critical
Publication of CN113778328B publication Critical patent/CN113778328B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4498Finite state machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)

Abstract

本公开涉及在半导体封装之间引导控制数据。处理器执行固件以将描述用于总线协议引擎的传递描述符的控制数据写入到与用于总线协议引擎的传递描述符缓冲器相关联的地址。总线协议引擎根据传递描述符与从属设备执行操作;处理器是第一半导体封装的一部分;总线协议引擎是不同于第一半导体封装的第二半导体封装的一部分;并且该地址对应于第二半导体封装的存储器。第一半导体封装的第一物理接口与第二半导体封装的第二物理接口通信以将控制数据引导到存储器。

Description

在半导体封装之间引导控制数据
技术领域
本公开总体上涉及集成电路,并且尤其涉及在半导体封装之间引导控制数据。
背景技术
专用集成电路(ASIC)是针对特定用途设计的集成电路(IC)。为了减少电路板面积,嵌入式处理子系统(例如包括片上系统(SoC)、基板管理控制器(BMC)或多功能微处理器的子系统)可以包括一个或多个ASIC。一般来说,ASIC通常可能是“硬化的”并且一旦制造出来就很难改变。使新的或修改的ASIC成型(spin)(即,重建,包括重新设计和重新制造)的金钱和人力资源成本可能是很高的。
发明内容
根据本公开的一方面,提供了一种用于引导控制数据的方法,包括:处理器执行固件以将描述用于总线协议引擎的传递描述符的所述控制数据写入到与用于所述总线协议引擎的传递描述符缓冲器相关联的地址,其中所述总线协议引擎根据所述传递描述符与从属设备执行操作,所述处理器是第一半导体封装的一部分,所述总线协议引擎是不同于所述第一半导体封装的第二半导体封装的一部分,并且所述地址对应于所述第二半导体封装的存储器;以及所述第一半导体封装的第一物理接口与所述第二半导体封装的第二物理接口通信以将所述控制数据引导到所述存储器。
根据本公开的另一方面,提供了一种计算机系统,包括:从属设备;第一半导体封装,所述第一半导体封装包括:处理核,所述处理核用于执行固件指令以使所述处理核将事务数据写入到对应于事务缓冲器的地址;以及第一消息封装接口,所述第一消息封装接口用于响应于所述事务数据的写入而与第二消息封装接口通信以将所述事务数据引导到所述事务缓冲器;以及第二半导体封装,所述第二半导体封装包括:所述第二消息封装接口;协议引擎;以及包括所述事务缓冲器的存储器,其中所述协议引擎用于访问所述事务缓冲器并且基于存储在所述事务缓冲器中的事务数据来与所述从属设备执行总线传递操作。
根据本公开的又一方面,提供了一种用于引导控制数据的装置,包括:第一半导体封装;处理核,所述处理核设置在所述第一半导体封装中用于将事务数据写入到与传递描述符缓冲器相关联的地址,其中所述事务数据描述将由总线协议引擎执行的总线传递;以及桥接器,所述桥接器设置在所述第一半导体封装中用于响应于将所述事务数据写入到所述传递描述符缓冲器而向所述第一半导体封装的外部端子提供信令,以将所述事务数据引导到包含所述传递描述符缓冲器和所述总线协议引擎的第二半导体封装。
附图说明
图1是根据示例实施方式的计算机系统的示意图。
图2是根据示例实施方式的由图1的专用集成电路(ASIC)的处理核执行的固件过程的示意图,该ASIC使用消息隧穿接口(message tunneling interface)来控制片外总线协议引擎访问从属设备。
图3是根据示例实施方式的传递描述符的图示。
图4是根据示例实施方式的总线协议引擎的控制和状态寄存器(CSR)的图示。
图5是根据示例实施方式的作为由总线协议引擎执行的总线传递的结果所返回的数据的图示。
图6是根据示例实施方式的图1的ASIC的消息隧穿接口的示意图。
图7是描绘根据示例实施方式的用于将处理器在一个半导体封装上写入的用于总线协议引擎的控制数据引导到位于另一个半导体封装上的存储器的过程的流程图。
图8是根据示例实施方式的用于将处理核在一个半导体封装上写入的事务控制数据引导到另一个半导体封装上的缓冲器的系统的示意图。
图9是根据示例实施方式的其中用于总线协议引擎的控制数据从一个半导体封装引导到另一个半导体封装的装置的示意图。
具体实施方式
计算机系统可以包括基板管理控制器(BMC),该基板管理控制器监视计算机系统的物理状态并且可以通过管理网络与管理系统通信。作为其作用的示例,BMC可以监视传感器(例如,温度传感器、冷却风扇速度传感器);监视操作系统状态;监视电源状态;记录计算机系统事件;以及为计算机系统提供可以远程控制的管理功能。此外,BMC可以允许在计算机系统掉电时以及在操作系统已经启动之前执行操作;并且BMC可以用于在操作系统或计算机系统出现故障之后执行恢复操作。
在预启动环境中,BMC可以与计算机系统的从属设备通信。例如,BMC可以与计算机系统的存储器模块(例如,双列直插式存储器模块(DIMM))的串行存在检测(SPD)设备(例如,电可擦除可编程只读存储器(EEPROM)设备)通信以用于获取代表关于存储器模块的信息的数据。作为示例,该信息有关于存储器模块的特性和能力,例如存储器设备类型、模块类型、行和列寻址方案、最小周期时间、最大周期时间、列地址选择(CAS)延时、最小行预充电延迟时间等等。BMC可以将该信息传送给主机CPU,使得主机CPU可以建立计算机系统接口(例如,物理存储器接口和存储器控制器)。
为了提供上述作用以及其他作用,BMC的ASIC可以包括一个或多个通用处理器(例如,嵌入式处理核)。出于这些目的,BMC可以使用一个或多个通信接口(例如,总线接口,诸如I2C总线接口、系统管理总线(SMB)接口、高速外围组件互连(PCIe)接口、以太网总线接口等)与计算机系统的组件通信。
计算机技术正在不断发展,并且硬件平台供应商可以修改硬件平台设计以应对技术进步。例如,可以修改硬件平台设计以实现新的总线标准。适配BMC以适用于新的总线标准可以涉及更新BMC的ASIC以使用新的总线标准进行通信。例如,ASIC可以具有I2C总线接口,并且适配BMC以支持I3C通信可以涉及将I3C支持添加到I2C总线接口或者添加I3C总线接口。一种用于升级BMC具备此类能力的方法是使ASIC重新成型。在此上下文中,ASIC的“重新成型”指的是ASIC的重建,包括重新设计和重新制造。以这种方式,ASIC可以被重新设计和重新制造以具有新的硬件组件,例如支持I2C总线和I3C总线协议两者的新的I3C总线接口或升级的总线接口。然而,ASIC的重新成型可能有相对较大的金钱和人力资源成本。
另一种用于升级BMC的能力的解决方案是与BMC一起使用外部第三方组件(例如,第三方I3C总线协议引擎)以允许未修改的BMC支持一个或多个新特征。使用后一种方法的挑战是第三方组件可能是不可信的。对于BMC统筹计算机系统的安全的实施方式,使用第三方组件可能会损害系统安全。例如,对于第三方I3C总线协议引擎,关于计算机系统的存储器模块的信息的检索可能在不可信的实体的控制下,而不是在BMC的控制下。此外,与BMC一起使用第三方组件可能涉及读取和签署合并第三方组件的相应基础架构的软件/固件模型;并且使用第三方组件可能增加计算机系统的成本。
根据本文描述的示例实施方式,ASIC的桥接器或物理通信接口(例如消息封装隧穿接口)用于将控制数据(例如,传递描述符和总线协议引擎控制接口数据)传送到“片外”总线协议引擎,该“片外”总线协议引擎是除了包含ASIC的半导体封装之外的半导体封装的一部分。作为示例,这个另外的半导体封装可以包含可编程逻辑设备,该可编程逻辑设备可以是可信的并且可以被编程以实现用于ASIC的特定接口(例如,I3C总线引擎接口)。因此,代替实施可能涉及使ASIC重新成型的硬件改变或使用不可信的第三方组件,可以修改ASIC的固件来改变由ASIC的一个或多个通用处理核写入的地址(例如,传递描述符缓冲器的地址和对应于总线协议引擎的控制和状态寄存器(CSR)的地址)。这样,可以通过固件和可信的可编程逻辑设备来更新ASIC(和BMC)以实现用于BMC的新的通信接口。
参考图1,作为更具体的示例,根据一些实施方式,计算机系统100包括可以执行计算机系统的一个或多个功能的ASIC 160。ASIC 160包括执行机器可执行指令以为了执行这些功能中的一个或多个功能的一个或多个通用处理核154,诸如固件。如图1所描绘的,ASIC160可以是半导体封装159的一部分。在此上下文中,“半导体封装”是指包含一个或多个集成电路(诸如ASIC 160)的外壳或封装。半导体封装的一个或多个集成电路可以设置在一个或多个片(die)上;并且半导体封装可以包含引线(还称为“触点”、“外部触点”、“端子”、“外部端子”等),该引线允许信号、电压、电流等在半导体封装的一个或多个集成电路与半导体封装外部的一个或多个组件之间传送。半导体封装可以采用多种形式中的一者,例如通孔封装、表面安装封装、芯片载体封装、引脚栅格阵列封装、扁平封装、小外形封装(smalloutline package)、芯片级封装、球形栅格阵列封装等。
对于图1描绘的具体实施方式,ASIC 160是BMC 130的一部分。根据示例实施方式,BMC 130是嵌入式子系统,其可以包含除了半导体封装159之外的一个或多个半导体封装。如在本文使用的,“BMC”或“基板管理控制器”是专用的服务处理器,其使用传感器监视服务器或其他硬件的物理状态并且通过管理网络与管理系统通信。基板管理控制器还可以通过输入/输出控制器(IOCTL)接口驱动程序、代表性状态传递(REST)应用程序接口(API)或有助于基板管理控制器与应用程序之间的通信的某种其他系统软件代理与在操作系统级处执行的应用程序通信。基板管理控制器可以对位于包括系统存储器的服务器机箱中的硬件设备进行硬件级访问。基板管理控制器可以能够直接修改硬件设备。基板管理控制器可以独立于其中设置有基板管理控制器的系统的操作系统而运行。基板管理控制器可以位于服务器或其他待监视设备的主板或主电路板上。基板管理控制器安装在受管理服务器/硬件的主板上或以其他方式连接或附接到受管理服务器/硬件的事实并不阻止基板管理控制器被视为与服务器/硬件“分开”。如在本文使用的,基板管理控制器具有对计算设备的子系统的管理能力,并且与执行计算设备的操作系统的处理资源分开。基板管理控制器与在系统上执行高级操作系统或管理程序的处理器(例如中央处理单元)分开。
根据示例实施方式,已经使用固件改变和外部可编程逻辑设备180(例如,复杂可编程逻辑设备(cPLD))来适配或升级ASIC 160,以执行计算机系统100的一个或多个功能,未特别构造ASIC 160的硬件来执行该一个或多个功能。根据另外的实施方式,除了可编程逻辑设备之外的集成电路可以用于执行设备180的功能并且代替其使用,例如ASIC、现场可编程门阵列(FPGA)等。
根据示例实施方式,ASIC 160包括桥接器或物理通信接口158(例如,消息封装隧穿通信接口),其与逻辑设备180的相应桥接器或物理通信接口182(例如,消息封装隧穿通信接口)通信。根据示例实施方式,通信接口158和182在ASIC 160与逻辑设备180之间建立双工通信链路174。根据示例实施方式,为了升级ASIC 160(和BMC 130)的特征,通信接口158和182使得能够将数据访问(例如,读取操作和写入操作)和信号断言(assertion)(例如,中断信号断言)重新引导到逻辑设备180的硬件(例如,存储器和总线协议引擎)。根据示例实施方式,逻辑设备180可以是半导体封装179的一部分,并且对于这些示例实施方式,通信接口158和182在半导体封装159与179之间建立通信。
根据示例实施方式,可以对逻辑设备180编程以实现由ASIC 160(和BMC 130)使用的硬件。具体而言,对于图1的示例实施方式,对逻辑设备180编程以实现总线协议引擎186。根据示例实施方式,ASIC 160的固件可以使用总线协议引擎186来执行去往/来自计算机系统100的一个或多个从属设备的总线传递。
更具体地说,根据示例实施方式,计算机系统100的系统存储器104可以包括一个或多个从属设备114,该一个或多个从属设备能够使用I3C总线105上的总线传递(例如,读取传递)进行访问。对于这些示例实施方式,从属设备114可以是作为系统存储器104的存储器模块的一部分并且存储关于存储器模块的信息的SPD装置。根据另外的示例实施方式,ASIC 160可以使用总线协议引擎186(或者另一个此类片外引擎,无论是设置在半导体封装179上还是另一个半导体封装上)来与除了SPD装置之外的从属设备114通信。存储表示关于存储器模块的信息的数据的SPD装置是具有存储系统数据的主要功能的从属设备114的示例。在此上下文中,“系统数据”是指有关于计算机系统100的除了从属设备114之外的一个或多个组件的内容,例如,表示关于存储器模块的信息的内容。虽然根据一些实施方式,特定的从属设备114可以具有存储系统数据的主要功能,但是根据另外的示例实施方式,给定的从属设备114可以具有除了存储系统数据的功能之外的主要功能。作为示例,根据一些实施方式,给定的从属设备114可以是主要功能不是存储系统数据的传感器(例如,温度传感器或电压传感器)、电源管理集成电路(PMIC)控制器、剩余电流设备(RCD)、SPD设备等等。应注意,根据另外的实施方式,总线105可以是除了I3C总线之外的总线,并且总线协议引擎186可以根据该另外的总线所使用的协议在这条另外的总线上传送信号。
如图1所描绘的,根据示例实施方式,除了总线协议引擎186之外,逻辑设备180还包括本地存储器184(例如,块随机存取存储器(BRAM))。如图1所描绘的,根据示例实施方式,逻辑设备180可以包括通信接口182与存储器184之间的通信路径185;通信接口182与总线协议引擎186之间的通信路径187;以及总线协议引擎186与存储器184之间的通信路径188。
一般来说,ASIC 160的通用处理核154可以通过固件执行编程或建立待由总线协议引擎186使用I3C总线105执行的总线传递。更具体地说,根据示例实施方式,处理器核154可以通过固件执行来写入存储在存储器184的传递描述符缓冲器183中的传递描述符(即,描述待由总线协议引擎执行的总线传递的数据),并且一个或多个处理器核154可以通过固件执行来将与写入总线传递相关联的数据存储在存储器184中并读取由读取总线传递产生的数据。通过向/从存储器184读取和写入数据以及从传递描述符缓冲器183读取传递描述符,总线协议引擎186在I3C总线105上执行相对应的总线传递而无需处理核154的直接参与。
如本文所描述的,根据示例实施方式,固件而不是硬件改变可以用于升级ASIC160(和BMC 130)以使用逻辑设备180的特征。根据示例实施方式,ASIC 160利用通信链路174来分开或分解事务数据和控制数据以允许以对ASIC 160的固件透明的方式访问逻辑设备180的硬件。
更具体地说,根据示例实施方式,可以通过改变固件所使用的地址来升级ASIC160的旧版本固件以访问ASIC 160的存储器。在此上下文中,“存储器”通常指存储数据的可寻址位置,并且作为示例,可以是非易失性或易失性存储器设备的存储器(例如存储器184)或者寄存器或寄存器接口(例如总线协议引擎186的寄存器存储空间)。
根据示例实施方式,为了通过总线传递来访问从属设备(例如从属设备114),ASIC160的固件将传递描述符写入到传递描述符缓冲器。固件的旧版本可以将传递描述符写入到对应于ASIC 160的传递描述符缓冲器(例如,用于控制存在于ASIC 160内部的I2C总线协议引擎的传递描述符缓冲器)的地址。通过地址改变,可以更新固件,使得对传递描述符缓冲器的写入发生在对应于逻辑设备180的传递描述符缓冲器183的地址。此外,通过地址改变,可以更新固件,使得最初引导到ASIC 160的总线协议引擎的从属控制接口的写入或读取现在被引导到对应于总线协议引擎186的从属接口189(例如,控制和状态寄存器(CSR))的地址。
根据示例实施方式,传递描述符缓冲器183和从属接口189的地址各自具有两个组成部分:基地址和偏移地址。根据示例实施方式,从ASIC 160的更新固件的角度来看,逻辑设备180的所有可寻址组件的基地址是ASIC 160的通信接口158的地址,并且偏移地址对应于逻辑设备180内的偏移地址。换句话说,根据示例实施方式,逻辑设备180的每个可寻址组件具有相同的基地址和不同的偏移地址。通过用对应于逻辑设备180中的其硬件组件的地址来替换旧版本固件所使用的硬件组件的地址(例如,传递描述符缓冲器地址、存储器地址和从属控制接口地址),可以升级ASIC 160以支持较新的技术(例如,升级以支持I3C技术或其他通信协议)而无需涉及对ASIC 160的重新成型、不可信的第三方组件的使用或使用第三方组件的额外费用。此外,根据示例实施方式,通信接口158和182提供相对较低引脚数的通信链路174,该通信链路有效地用作输入/输出(I/O)扩展器以扩展可以由ASIC 160执行的可能功能,同时最小化ASIC的引脚数。
传递描述符描述相对应的总线传递,并且由总线协议引擎186读取和执行。根据示例实施方式,为了执行总线传递(或“总线操作”),ASIC 160的固件首先将描述总线传递(例如,读取或写入命令、写入数据等)的一个或多个传递描述符写入到传递描述符缓冲器183,并且接着,固件将“开始”命令写入到从属接口189的命令寄存器字段以发起总线传递。固件还可以通过读取从属接口189的一个或多个状态寄存器字段来监视总线传递的状态;并且固件可以通过从存储器184读取数据来读取由读取总线传递产生的数据。
此外,如本文进一步描述的,通信接口158和182可以传送与总线传递相关联的带内虚拟信号断言。在此上下文中,“虚拟信号断言”是指表示特定信号状态(例如,中断断言)的数据。作为示例,“信号状态”可以表示特定物理信号是具有逻辑1水平还是逻辑0水平,或者作为另一示例,可以表示位是逻辑1位还是逻辑0位。“带内”虚拟信号断言是指虚拟信号断言正在与其他数据(例如,读取数据、待写入的数据、CSR数据等等)相同的信道中传送。根据示例实施方式,响应于逻辑设备180上的对特定信号的断言,虚拟信号断言在逻辑设备180上生成,并被传输到ASIC 160;并且响应于接收到虚拟信号断言,ASIC 160断言信号以模拟逻辑设备180上的对信号的断言。作为更具体的示例,总线协议引擎186可以断言指示完成特定读取或写入操作的中断。响应于该中断,逻辑设备180的通信接口182将表示虚拟中断信号断言的数据传送到通信接口158。通信接口158响应于接收到的虚拟信号断言而断言ASIC 160上的相对应的中断(例如,硬件中断或软件中断),以向处理核154通知总线传递的完成。
作为更具体的示例,根据示例实施方式,总线协议引擎186可以经由I3C总线105执行总线操作或总线传递以从从属设备114读取系统存储器模块的存储器参数。为了建立总线传递,ASIC 160的固件可以将相对应的传递描述符写入到描述通过I3C总线105到从属设备114的读取传递的传递描述符缓冲器183,传递描述符并且接着,固件可以将“开始”命令写入到从属接口189的命令寄存器字段以发起由总线协议引擎186进行总线读取传递的开始。接着,总线协议引擎186执行读取总线传递以从从属设备114读取存储器参数并将读取的数据存储在逻辑设备180的本地存储器184中。根据示例实施方式,在总线传递结束时,总线协议引擎186生成用于指示操作完成的中断。接着,相对应的虚拟中断通过通信接口158和182传送,使得通过通信接口158接收到虚拟中断使得接口158生成中断以向处理核154通知总线传递的完成和存储器184中的数据的可用性。接着,处理核154可以通过从存储器184读取数据来服务该中断。
计算机系统100可以具有多种不同架构和形式中的任何一者。作为示例,计算机系统100可以是服务器、客户端、台式计算机、膝上型计算机、平板计算机、智能手机、可穿戴计算机、机架式模块、联网设备等。
根据示例实施方式,计算机系统100包括一个或多个中央处理单元(CPU)102(例如,CPU处理核、包含CPU处理器核的半导体等等),以及耦接到一个或多个CPU 102以形成系统存储器104的存储器设备(例如,存储器模块)。一个或多个CPU 102可以耦接到输入/输出(I/O)桥接器106,该I/O桥接器106允许一个或多个CPU与BMC 130之间的通信以及与各种I/O设备(例如存储驱动器122、一个或多个网络接口卡124、通用串行总线(USB)设备126等)的通信。此外,如图1还描绘的,计算机系统100可以包括通过单独的高速外围组件互连(PCIe)总线108耦接到I/O桥接器106的一个或多个PCIe设备110(例如,PCIe扩展卡)。
根据示例实施方式,BMC 130的一个或多个通用处理核154可以执行存储在非易失性存储器168中的固件指令170。根据示例实施方式,固件指令170包括由计算机系统100的除了通用处理核154之外的组件执行的指令。根据示例实施方式,固件指令170包括:由BMC130的安全处理器(作为BMC的安全平面的一部分)执行的指令;由BMC130的一个或多个通用处理核154(即,对应于与BMC 130的管理平面对应的管理固件堆栈的固件)执行的指令;以及由一个或多个CPU 102执行以启动计算机系统100并提供运行时服务的指令。计算机系统100还可以包括可以由BMC 130访问和使用的易失性存储器164。
一般来说,形成系统存储器104、固件存储器168、易失性存储器164和从属设备114的存储器设备以及本文描述的其他存储器设备可以由非暂时性存储器设备(例如半导体存储设备、闪存设备、忆阻器、相变存储器设备、前述存储技术中的一种或多种的组合等)形成。此外,除非本文另有说明,否则存储器设备可以是易失性存储器设备(例如,动态随机存取存储器(DRAM)设备、静态随机存取(SRAM)设备等等)或非易失性存储器设备(例如,闪存设备、只读存储器(ROM)装置、EEPROM设备等等)。
一般来说,在通电或复位之后,BMC 130将一个或多个通用处理核154保持复位。在执行初始信任根安全检查以及其他检查(例如,硬件故障检查)之后,基板管理控制器130将一个或多个通用处理核154从复位释放。根据示例实施方式,BMC 130包括硬件硅信任根(SRoT)引擎143。根据示例实施方式,BMC 130存储不可变指纹,该不可变指纹被SRoT引擎143用来验证机器可执行指令。
更具体地说,根据示例实施方式,响应于BMC 130通电或复位,SRoT引擎143验证固件指令170的初始部分并接着将该初始部分加载到BMC 130的存储器155中,使得该固件部分现在是可信的。接着,允许安全处理器142启动并执行所加载的固件指令。通过执行固件指令,安全处理器142接着可以验证固件指令170的与BMC的管理固件堆栈的一部分对应的另一部分,并且在验证之后,将固件堆栈的该部分加载到BMC 130的存储器155中。接着,管理固件堆栈的该部分可以由一个或多个通用处理核154执行,这使得一个或多个处理核154加载固件指令170的额外部分并将所加载的部分放入存储器164中。可以从存储器155中的BMC的固件堆栈的验证部分执行那些指令。根据示例实施方式,BMC 130可以锁定存储器155以防止对存储在存储器155中的一个或多个验证部分的修改或篡改。
根据示例实施方式,加载到存储器155中并由一个或多个处理核154执行的固件指令可以包括对应于固件驱动程序(即,本文描述的“固件”的示例)的指令,该固件驱动程序(作为示例)可以使用逻辑设备180来经由I3C总线105执行数据传递。更具体地说,根据示例实施方式,一个或多个通用处理核154可以执行固件驱动程序来访问从属设备114。例如,通用处理核154可以响应于执行固件驱动程序而使用总线协议引擎186来读取用于系统存储器104的存储器模块的存储器参数;并且接着,BMC 130可以将这些参数提供给CPU 102,使得CPU 102可以使用该存储器参数来设置计算机系统100(例如,对物理存储器接口编程)以使用存储器设备。
根据示例实施方式,BMC 130的通用处理核154可以执行对应于固件驱动程序(例如,加载到存储器155中的固件的一部分)的固件指令以执行图2所示的为了访问从属设备114(例如,为了从从属设备114读取数据或向从属设备114写入数据)的过程200。结合图1参考图2,通过执行固件驱动程序,处理核154根据框204执行对传递描述符缓冲器183的写入以利用描述总线传递的一个或多个传递描述符填充缓冲器183。图3是示例传递描述符304和308的图示300。还参考图3,可以将传递描述符304和308写入到传递描述符缓冲器183内的特定偏移302。作为示例,如图3所描绘的,特定的传递描述符304可以包括命令和数据。命令可以是例如读取命令或写入命令;并且,作为示例,数据可以是用于写入总线传递的数据。如图3还描绘的,传递描述符308可以存储在包含索引和数据的缓冲器183中。例如,索引可以表示传递描述符之间的链接,并且作为示例,数据可以是待写入的数据。处理核154将传递描述符数据写入到与缓冲器183的地址对应的地址。更具体地说,根据示例实施方式,对于该写入,地址表示指向通信接口158的基地址和与逻辑设备180中的缓冲器183的偏移地址对应的偏移地址的总和。
继续图2的示例过程200,接着,固件驱动程序可以使得处理核154将控制数据写入(框208)到从属接口189。图4描绘了根据示例实施方式的总线协议引擎186的从属接口189的CSR 400。还参考图4,如图4所描绘的,CSR 400可以能够经由偏移地址402寻址,并且包括表示特定总线传递的状态的寄存器组410,例如分别表示写入计数、状态和读取计数的寄存器412、414和416。作为示例,CSR 400还可以包括DMA写入地址寄存器420、DMA读取地址寄存器422和地址/命令寄存器418。根据示例实施方式,根据框208,执行固件可以使得处理核154将开始命令写入到寄存器418以开始由缓冲器183中的传递描述符表示的总线传递。根据示例性实施方式,该写入被引导到与对应于通信接口158的基地址和对应于逻辑设备180中的寄存器418的偏移地址的偏移对应的地址。
总线协议引擎186执行所请求的总线传递,这可以包括在I3C总线105上执行数据传递。因此,如框212所描绘的,总线协议引擎186从缓冲器183检索命令和/或数据,并且接着在I3C总线105上执行(框216)传递。根据示例实施方式,在完成总线传递操作(成功或不成功)时,总线协议引擎186生成中断以表示完成,并且逻辑设备180的通信接口182相应地将虚拟带内中断断言传送给ASIC 160的通信接口158。根据示例实施方式,通信接口158响应于虚拟带内中断断言而断言ASIC 160中的中断信号以向处理核154通知关于总线传递操作的完成。接着,处理核154的中断服务例程可以由处理核154执行以为了读取总线传递的结果而读取状态寄存器410(图4)总线传递。处理核154对状态寄存器410的读取可以被引导到由对应于通信接口158的基地址和对应于逻辑160中的寄存器410的偏移的偏移地址形成的地址。
根据过程200的框220,固件驱动程序可以接着使得处理核154读取总线传递的状态(即,使用对应于通信接口158的基地址和对应于CSR的偏移地址来访问从属接口189的CSR)。如果操作是读取操作并且CSR中的数据显示读取操作成功,则处理核154可以接着从存储器184检索或获取读取数据。对于该读取,读取地址由通信接口158的基地址和对应于逻辑设备180内的数据在存储器184中的位置的偏移地址的组合形成。图5描绘了根据另外实施方式的图示500,其中尽管可以在读取操作中检索其他数据大小,但是可以检索八个字节。
参考图6,根据示例实施方式,通信接口158的组件被构造成三层层次结构,该三层层次结构包括物理层680(最低层)、链路层650(中间层)和协议层620(最高层)。一般来说,物理层680负责低级链路训练、串行化/去串行化和字节组帧。链路层650负责从协议层620针对出站(outbound)事务发源的或者物理层680针对入站(inbound)事务接收的一系列传入位/半字节/字节正确地累积通信链路路径174上的特定事务。协议层620处理更高阶事务元数据,例如源/目的地路由信息、端到端事务定时器以及消息命令和数据队列。如图6还描绘的,根据一些实施方式,通信接口158包括时钟生成和交换电路616,该时钟生成和交换电路可以为隧穿桥接器158的不同层生成时钟信号。
物理层680包括传输串行化器682,用于与时钟信号同步地将多个数据位传输到通信接口182。物理层680还包括与时钟信号同步地接收多个数据位的接收去串行化器686。物理层680还可以包括控制和状态寄存器683以及训练有限状态机684。此外,物理层680可以包括用于缓冲在物理层680与链路层650之间传送的数据的先进先出(FIFO)缓冲器659和663。
根据一些实施方式,传输串行化器682和接收串行化器686跨与发射器的源同步的通信路径174(参见图1)传送双向数据。换句话说,根据示例实施方式,通信路径174是源同步总线。根据一些实施方式,在每个总线时钟周期,可以由接收去串行化器686接收四个数据位,并且可以由传输串行化器682传输四个数据位。然而,根据另外的实施方式,可以传送更少或更多的数据位。例如,根据一些实施方式,可以在每个方向上传输一个数据位,从而将接口减少到四个信号(即,在每个方向上一个时钟和一个数据信号)。根据一些实施方式,可以缩放数据位的数量以允许可变的物理层宽度、I/O标准和收发器技术,这意味着可以将通信接口158缩放到更快的总线频率、新的总线标准以及用于便于实现增加的带宽、较低的周期延时和改进的性能的尺寸。
根据示例实施方式,链路层650询问可以利用奇偶校验信息保护的事务报头,以确定事务类型和其他显著信息。基于该报头,链路层650构造原始数据有效载荷,该原始数据有效载荷从物理层680(经由传输串行化器682)发出或者由物理层680(经由接收去串行化器686)接收。根据示例实施方式,跨通信链路174传送的每个事务将利用响应来确认;并且链路层650视情况生成出站响应并且检查/期望对出站请求的入站响应。
根据示例实施方式,链路层650可以包括循环冗余校验(CRC)校验引擎664,该CRC校验引擎允许链路层650执行CRC校验,并且如果恰当的话,响应于检测到的错误而发起端到端重试。CRC错误是链路层650检查以确保消息完整性的多个可能的错误事件的示例。其他错误可以对应于例如奇偶校验错误和命令一致性错误。响应于错误,根据示例实施方式,链路层650可以(通过物理层680)发起链路再训练;并且链路层650重新生成链路层650没有观察到成功响应完成的任何未完成事务。
根据示例实施方式,链路层650包括链路状态和训练有限状态机660、传输处理器和数据多路复用器652以及接收报头处理器和分组检查器662。链路状态和训练有限状态机660可以例如为未导致成功响应完成的未完成事务发起链路再训练。传输处理器和数据多路复用器652可以插入由CRC生成引擎逻辑658生成的CRC代码。MRST生成逻辑654在复位和链路训练期间参与以生成用于向艺术接收器(art receiver)指示将重新训练链路的链路消息(MRST消息)。MIDLE生成逻辑656生成每当链路空闲并且不在传输其他消息时发送的链路消息(MDLE消息)。接收报头处理和分组检查器662可以询问事务报头以确定事务类型和其他显著信息。链路状态和训练有限状态机660可以被耦接以控制链路层650与协议层620之间的状态寄存器638;并且控制和状态寄存器638可以耦接到协议层620的控制状态寄存器636。此外,FIFO缓冲器627可以缓冲到链路层650的传入位(来自协议层620),并且FIFO缓冲器645可以缓冲从链路层到协议层620的传出位。
根据示例实施方式,事务排序和原子性由协议层620执行。根据一些实施方式,协议层620可以在传输侧包括入站响应电路624(从FIFO缓冲器622接收数据)和出站请求电路632。电路624和632可以经由仲裁器/多路复用器626访问FIFO缓冲器624。在接收侧,协议层620包括出站和入站请求电路648、出站响应电路642和路由器644,该路由器644控制数据到电路642和644的路由。如图6所描绘的,FIFO电路624和628可以分别缓冲传入到电路624和632中的数据;并且FIFO缓冲器640和648可以分别缓冲来自电路642和648的传出数据。
仲裁器和交换结构614将协议层620耦接到一个或多个主机接口610。作为示例,根据一些实施方式,特定微处理器(μP)接口610-1可以耦接到总线,该总线转而耦接到通用处理核154。根据示例实施方式,μP接口610使用循环仲裁方案来仲裁经由多端口消息传递交换机对协议层620的访问以确保公平性。根据示例实施方式,例如,可以改变仲裁算法以增加给定μP接口610的优先级,从而相应地增加给定的发起者类别的优先级。
如图6还描绘的,根据示例实施方式,通信接口158包括虚拟线编码器/解码器618,该虚拟线编码器/解码器在通信链路174的每个端部提供信号/线的低延时、无缝重放。具体而言,根据示例实施方式,在传输侧,虚拟线编码器/解码器618接收(经由其各自的断言)表示虚拟断言信号的信号(在图6中被称为“vwout[57:0]”),该虚拟断言信号经由通信链路174带内传送。在接收侧,虚拟线编码器/解码器618提供表示接收到的带内虚拟断言信号的信号(在图6中被称为“vwin[57:0]”)。该虚拟线特征通过绕过协议层620使得能够在通信链路174上进行较低延时信号重放。
根据示例实施方式,逻辑设备180的通信接口182可以具有与通信接口158的设计类似的设计。
参考图7,根据示例实施方式,过程800包括处理器执行(框704)固件以将描述用于总线协议引擎的传递描述符的控制数据写入到与用于总线协议引擎的传递描述符缓冲器相关联的地址。总线协议引擎根据传递描述符与从属设备执行操作;处理器是第一半导体封装的一部分;总线协议引擎是不同于第一半导体封装的第二半导体封装的一部分;并且该地址对应于第二半导体封装的存储器。根据框708,过程700包括第一半导体封装的第一物理接口与第二半导体封装的第二物理接口通信以将控制数据引导到存储器。
参考图8,根据示例实施方式,系统800包括从属设备804;第一半导体封装830;以及第二半导体封装808。第一半导体封装830包括处理核834和第一消息封装接口838。处理核834执行固件指令以使得处理核心834将事务数据写入到对应于事务缓冲器824的地址。第一消息封装接口838响应于事务数据的写入而与第二消息封装接口812通信以将事务数据引导到事务缓冲器。第二半导体封装808包括第二消息封装接口812;协议引擎816;以及包括事务缓冲器824的存储器820。协议引擎816用于访问事务缓冲器824并且基于存储在事务缓冲器824中的事务数据来与从属设备804执行总线传递操作。
参考图9,根据示例实施方式,装置900包括第一半导体封装910;处理核914;以及桥接器918。处理核914设置在第一半导体封装910中以将事务数据写入到与传递描述符缓冲器相关联的地址。事务数据描述了待由总线协议引擎执行的总线传递。桥接器918设置在第一半导体封装910中用于响应于将事务数据写入到事务缓冲器而向第一半导体封装910的外部端子922提供信令,以将事务数据引导到包含传递描述符缓冲器和总线协议引擎的第二半导体封装。
根据示例实施方式,从属设备包括用于存储用于系统存储器模块的存储器参数的存储器设备。从属设备耦接到总线。总线和存储器设备位于第二半导体封装的外部,并且总线协议引擎根据传递描述符在总线上发起事务以从存储器设备读取表示存储器参数的数据。特别的优点是可以更新第一半导体封装以使用总线通信而无需使第一半导体封装重新成型。
根据示例实施方式,从属设备具有除了存储系统数据之外的主要功能。特别的优点是可以更新第一半导体封装以与从属设备通信而无需使第一半导体封装重新成型。
根据示例实施方式,地址包括对应于第一物理接口的基地址和对应于传递描述符缓冲器的偏移地址。特别的优点是可以经由固件中的地址改变来修改第一半导体封装以使用第二半导体封装中的总线协议引擎。
根据示例实施方式,处理器可以执行固件以将控制数据写入到与总线协议引擎的控制接口相关联的地址;并且第一物理接口可以与第二物理接口通信以将控制数据引导到控制接口。特别的优点是代替基于硬件的改变,基于固件的改变可以用于适配第一半导体封装以使用总线协议引擎。
根据示例实施方式,写入到第二地址的控制数据表示用于发起由传递描述符描述的总线传递的开始命令。特别的优点是代替基于硬件的改变,基于固件的改变可以用于适配第一半导体封装以使用总线协议引擎。
根据示例实施方式,与控制接口相关联的地址包括对应于第一物理接口的基地址和对应于控制接口的偏移地址。特别的优点是可以经由固件中的地址改变修改第一半导体封装以使用第二半导体封装的总线协议引擎。
根据示例实施方式,第一物理接口可以与第二物理接口通信以接收由总线协议引擎提供的带内虚拟信号断言;并且响应于接收到虚拟信号断言,第一物理接口断言对应于虚拟信号断言的信号。特别的优点是代替基于硬件的改变,基于固件的改变可以用于适配第一半导体封装以使用总线协议引擎。
根据示例实施方式,虚拟信号断言可以是表示操作的完成的虚拟中断;并且第一物理接口断言信号可以包括第一物理接口生成中断以通知处理器操作完成。特别的优点是代替基于硬件的改变,基于固件的改变可以用于适配第一半导体封装以使用总线协议引擎。
根据示例实施方式,处理器可以执行固件来服务中断,包括:处理器发起读取事务以读取结果和地址,其中地址包括对应于第一物理接口的基地址和对应于总线协议引擎的从属接口的偏移地址。响应于处理器发起读取事务,第一物理接口可以与第二物理接口通信以从第二物理接口接收表示结果的数据,并且将数据提供给处理器。特别的优点是代替基于硬件的改变,基于固件的改变可以用于适配第一半导体封装以使用总线协议引擎。
根据示例实施方式,第一物理接口与第二物理接口通信用于协议引擎的结构化数据。特别的优点是代替基于硬件的改变,基于固件的改变可以用于适配第一半导体封装以使用总线协议引擎。
根据示例实施方式,第一物理接口通过消息封装接口与第二物理接口通信。特别的优点是代替基于硬件的改变,基于固件的改变可以用于适配第一半导体封装以使用总线协议引擎。
根据示例实施方式,第一半导体封装可以是基板管理控制器的一部分,并且第二半导体封装可以是可编程逻辑设备的一部分。特别的优点是,代替改变第一半导体封装的硬件,第一半导体封装的固件可以被重新编程并且可编程逻辑设备可以被重新编程以适应用于基板管理控制器的新接口。
尽管已经关于有限数量的实施方式描述了本公开,但是受益于本公开的本领域的技术人员将从中了解许多修改和变型。所附权利要求旨在涵盖所有此类修改和变型。

Claims (20)

1.一种用于引导控制数据的方法,包括:
处理器执行固件以将描述用于总线协议引擎的传递描述符的所述控制数据写入到与用于所述总线协议引擎的传递描述符缓冲器相关联的地址,其中所述总线协议引擎根据所述传递描述符与从属设备执行操作,所述处理器是第一半导体封装的一部分,所述总线协议引擎是不同于所述第一半导体封装的第二半导体封装的一部分,并且所述地址对应于所述第二半导体封装的存储器;以及
所述第一半导体封装的第一物理接口与所述第二半导体封装的第二物理接口通信以将所述控制数据引导到所述存储器。
2.根据权利要求1所述的方法,其中:
所述从属设备包括存储器设备,所述存储器设备用于存储用于系统存储器模块的存储器参数,其中所述从属设备耦接到总线;
所述总线和所述存储器设备位于所述第二半导体封装的外部;并且
所述总线协议引擎根据各所述传递描述符中的传递描述符在所述总线上发起事务以从所述存储器设备读取表示所述存储器参数的数据。
3.根据权利要求1所述的方法,其中所述从属设备是传感器、电源管理集成电路控制器、剩余电流设备或主要功能不是存储系统数据的串行存在检测SPD设备。
4.根据权利要求1所述的方法,其中所述地址包括对应于所述第一物理接口的基地址和对应于所述传递描述符缓冲器的偏移地址。
5.根据权利要求1所述的方法,其中所述处理器还执行所述固件以将控制数据写入到对应于所述总线协议引擎的控制接口的第二地址,所述方法还包括:所述第一物理接口与所述第二物理接口通信以将所述控制数据引导到所述控制接口。
6.根据权利要求5所述的方法,其中写入到所述第二地址的所述控制数据表示开始命令,所述开始命令用于发起由各所述传递描述符中的传递描述符描述的总线传递。
7.根据权利要求5所述的方法,其中所述第二地址包括对应于所述第一物理接口的基地址和对应于所述控制接口的偏移地址。
8.根据权利要求1所述的方法,还包括:
所述第一物理接口与所述第二物理接口通信以接收由所述总线协议引擎提供的带内虚拟信号断言;以及
响应于接收到所述虚拟信号断言,所述第一物理接口断言对应于所述虚拟信号断言的信号。
9.根据权利要求8所述的方法,其中:
所述虚拟信号断言包括表示所述操作的完成的虚拟中断;并且
所述第一物理接口断言所述信号包括:所述第一物理接口生成中断以通知所述处理器所述操作完成。
10.根据权利要求9所述的方法,还包括:
所述处理器执行固件以服务所述中断,包括:所述处理器发起读取事务以从地址读取结果,其中所述地址包括对应于所述第一物理接口的基地址和对应于所述总线协议引擎的从属接口的偏移地址;以及
响应于所述处理器发起所述读取事务,所述第一物理接口与所述第二物理接口通信以从所述第二物理接口接收表示所述读取事务的所述结果的数据并且将所述数据提供给所述处理器。
11.根据权利要求1所述的方法,其中:
所述总线协议引擎与总线相关联;并且
所述传递包括用于从所述从属设备读取数据的操作。
12.根据权利要求1所述的方法,其中所述第一物理接口与所述第二物理接口通信包括:通过消息封装接口进行通信。
13.根据权利要求1所述的方法,其中:
所述第一物理接口与所述第二物理接口通信包括:通过第一组通信线路传送事务数据;并且
所述总线协议引擎具有输入控制和数据接口,所述输入控制和数据接口具有数量上大于所述第一组通信线路的相关联的第二组通信线路。
14.一种计算机系统,包括:
从属设备;
第一半导体封装,所述第一半导体封装包括:
处理核,所述处理核用于执行固件指令以使所述处理核将事务数据写入到对应于事务缓冲器的地址;以及
第一消息封装接口,所述第一消息封装接口用于响应于所述事务数据的写入而与第二消息封装接口通信以将所述事务数据引导到所述事务缓冲器;以及
第二半导体封装,所述第二半导体封装包括:
所述第二消息封装接口;
协议引擎;以及
包括所述事务缓冲器的存储器,其中所述协议引擎用于访问所述事务缓冲器并且基于存储在所述事务缓冲器中的事务数据来与所述从属设备执行总线传递操作。
15.根据权利要求14所述的计算机系统,还包括基板管理控制器,其中所述第二半导体封装是所述基板管理控制器的一部分。
16.根据权利要求14所述的计算机系统,还包括:
主机处理器;以及
基板管理控制器;
其中:
所述第二半导体封装是所述基板管理控制器的一部分;
所述系统存储器设备与存储器参数相关联;
所述总线传递操作包括用于读取表示所述存储器参数的数据的读取操作;并且
所述基板管理控制器将表示所述存储器参数的所述数据传送到所述主机处理器。
17.一种用于引导控制数据的装置,包括:
第一半导体封装;
处理核,所述处理核设置在所述第一半导体封装中用于将事务数据写入到与传递描述符缓冲器相关联的地址,其中所述事务数据描述将由总线协议引擎执行的总线传递;以及
桥接器,所述桥接器设置在所述第一半导体封装中用于响应于将所述事务数据写入到所述传递描述符缓冲器而向所述第一半导体封装的外部端子提供信令,以将所述事务数据引导到包含所述传递描述符缓冲器和所述总线协议引擎的第二半导体封装。
18.根据权利要求17所述的装置,其中所述桥接器包括全双工、消息封装和错误校正接口。
19.根据权利要求17所述的装置,其中:
所述总线协议引擎包括串行总线接口;
所述总线传递包括用于从设备读取数据的传递;并且
所述处理核将所述事务数据写入到包括基地址和偏移地址的地址,所述基地址对应于所述桥接器,并且所述偏移地址对应于所述传递描述符缓冲器。
20.根据权利要求17所述的装置,还包括基板管理控制器,其中所述第一半导体封装是所述基板管理控制器的一部分。
CN202110406410.6A 2020-06-09 2021-04-15 在半导体封装之间引导控制数据 Active CN113778328B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/896,863 US11210252B1 (en) 2020-06-09 2020-06-09 Directing control data between semiconductor packages
US16/896,863 2020-06-09

Publications (2)

Publication Number Publication Date
CN113778328A CN113778328A (zh) 2021-12-10
CN113778328B true CN113778328B (zh) 2022-11-22

Family

ID=78605382

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110406410.6A Active CN113778328B (zh) 2020-06-09 2021-04-15 在半导体封装之间引导控制数据

Country Status (3)

Country Link
US (1) US11210252B1 (zh)
CN (1) CN113778328B (zh)
DE (1) DE102021108300B4 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11733767B2 (en) * 2021-06-25 2023-08-22 Qualcomm Incorporated Power management for multiple-chiplet systems
TWI792684B (zh) * 2021-11-17 2023-02-11 瑞昱半導體股份有限公司 資料傳輸方法以及資料傳輸系統

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4694398A (en) * 1984-09-25 1987-09-15 Baird Corporation Digital image frame processor
US5269021A (en) * 1989-10-12 1993-12-07 Texas Instruments Incorporated Multiprocessor software interface for a graphics processor subsystem employing partially linked dynamic load modules which are downloaded and fully linked at run time
US6687260B1 (en) * 1999-02-12 2004-02-03 Conexant Systems, Inc. Apparatus and methods for flow control of non-isochronous data
US6505263B1 (en) * 2000-01-25 2003-01-07 Dell U.S.A. L.P. Bus controller operating code in system memory
US7260590B1 (en) * 2000-12-06 2007-08-21 Cisco Technology, Inc. Streamed database archival process with background synchronization
US6748486B2 (en) * 2001-01-04 2004-06-08 International Business Machines Corporation Method, system, and data structures for superimposing data records in a first data format to memory in a second data format
US7404074B2 (en) 2002-07-12 2008-07-22 Sca Technica, Inc. Self-booting software defined radio module
US7200692B2 (en) * 2004-03-10 2007-04-03 Cisco Technology, Inc. PVDM (packet voice data module) generic bus
US7117308B1 (en) * 2004-04-06 2006-10-03 Cisco Technology, Inc. Hypertransport data path protocol
US7143218B1 (en) 2004-08-27 2006-11-28 Xilinx, Inc. Network media access controller embedded in a programmable logic device-address filter
US7831754B1 (en) 2006-10-20 2010-11-09 Lattice Semiconductor Corporation Multiple communication channel configuration systems and methods
US7835391B2 (en) * 2007-03-07 2010-11-16 Texas Instruments Incorporated Protocol DMA engine
US8264953B2 (en) 2007-09-06 2012-09-11 Harris Stratex Networks, Inc. Resilient data communications with physical layer link aggregation, extended failure detection and load balancing
US7912997B1 (en) * 2008-03-27 2011-03-22 Xilinx, Inc. Direct memory access engine
US8417765B2 (en) 2009-06-09 2013-04-09 International Business Machines Corporation Method and apparatus to enable protocol verification
US8539131B2 (en) * 2010-09-23 2013-09-17 Intel Corporation Root hub virtual transaction translator
US8626979B2 (en) * 2010-12-22 2014-01-07 Intel Corporation Common protocol engine interface for a controller interface
CN102650976B (zh) * 2012-04-01 2014-07-09 中国科学院计算技术研究所 一种支持单根io虚拟化用户级接口控制装置及其方法
US10417171B1 (en) 2015-09-15 2019-09-17 Xilinx, Inc. Circuits for and methods of enabling the communication of serialized data in a communication link associated with a communication network
US9916269B1 (en) 2016-04-14 2018-03-13 Amazon Technologies, Inc. Packet queueing for network device
US10169273B2 (en) * 2017-01-11 2019-01-01 Qualcomm Incorporated Forced compression of single I2C writes
CN108664444B (zh) * 2017-03-31 2021-08-24 北京大学 基于fpga上微处理器的可重构无线mac层结构

Also Published As

Publication number Publication date
DE102021108300B4 (de) 2023-11-02
CN113778328A (zh) 2021-12-10
US20210382841A1 (en) 2021-12-09
DE102021108300A1 (de) 2021-12-09
US11210252B1 (en) 2021-12-28

Similar Documents

Publication Publication Date Title
US11755527B2 (en) Techniques for command validation for access to a storage device by a remote client
CN113778328B (zh) 在半导体封装之间引导控制数据
CN106663061B (zh) 用于可编程逻辑的存储器的虚拟化
US11281618B2 (en) Methods and circuits for deadlock avoidance
CN108268414B (zh) 基于spi模式的sd卡驱动器及其控制方法
US7783817B2 (en) Method and apparatus for conditional broadcast of barrier operations
KR102365312B1 (ko) 스토리지 컨트롤러, 연산 스토리지 장치, 및 연산 스토리지 장치의 동작 방법
US11741039B2 (en) Peripheral component interconnect express device and method of operating the same
EP3722963B1 (en) System, apparatus and method for bulk register accesses in a processor
US20040078716A1 (en) Extended host controller test mode support
US10860500B2 (en) System, apparatus and method for replay protection for a platform component
US6425071B1 (en) Subsystem bridge of AMBA's ASB bus to peripheral component interconnect (PCI) bus
US20140310443A1 (en) Shims for Processor Interface
TWI797022B (zh) 儲存控制器、計算儲存裝置以及計算儲存裝置的操作方法
US11775451B2 (en) Computing system for reducing latency between serially connected electronic devices
US8996772B1 (en) Host communication device and method with data transfer scheduler
US7451254B2 (en) System and method for adaptive buffer allocation in a memory device interface
CN113205838B (zh) 用于在其他处理器保持复位时配置子系统的处理器
US20230350824A1 (en) Peripheral component interconnect express device and operating method thereof
US11321254B2 (en) Computing system for transmitting completion early between serially connected electronic devices
US10180847B2 (en) Circuitry for configuring entities
JP6809006B2 (ja) 情報処理装置の試験装置及び情報処理装置の試験方法
JP5811544B2 (ja) 集積装置、情報処理システム、および、処理方法
CN112346922A (zh) 服务器装置及其通讯协议方法
TW201941071A (zh) 記憶體控制器與資料儲存裝置

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