CN111666106A - Data offload acceleration from multiple remote chips - Google Patents
Data offload acceleration from multiple remote chips Download PDFInfo
- Publication number
- CN111666106A CN111666106A CN202010137127.3A CN202010137127A CN111666106A CN 111666106 A CN111666106 A CN 111666106A CN 202010137127 A CN202010137127 A CN 202010137127A CN 111666106 A CN111666106 A CN 111666106A
- Authority
- CN
- China
- Prior art keywords
- data
- processor
- accelerator
- offload
- buffer
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/4403—Processor initialisation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System 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
- G06F15/781—On-chip cache; Off-chip memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/445—Program loading or initiating
- G06F9/44594—Unloading
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/83—Indexing scheme relating to error detection, to error correction, and to monitoring the solution involving signatures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Advance Control (AREA)
Abstract
Description
背景技术Background technique
专用集成电路(ASIC)芯片通常包括边带接口从端口,用于设备配置、管理以及运行时状态和监视功能。该接口可以通过专有的物理/逻辑协议或诸如外围组件互连快速(PCIe)的行业准则定义。诸如微处理器或基板管理控制器(BMC)的处理器可以通过该边带ASIC接口发起事务,以访问和操纵可寻址设备,诸如ASIC中的控制和状态寄存器(CSR)和存储器映射数据结构。Application-specific integrated circuit (ASIC) chips typically include sideband interface slave ports for device configuration, management, and runtime status and monitoring functions. The interface may be defined by a proprietary physical/logical protocol or an industry guideline such as Peripheral Component Interconnect Express (PCIe). A processor such as a microprocessor or baseboard management controller (BMC) can initiate transactions through this sideband ASIC interface to access and manipulate addressable devices such as control and status registers (CSRs) and memory-mapped data structures in the ASIC .
附图说明Description of drawings
本公开的特征通过示例的方式示出,并且在以下附图中不受限制,在附图中,类似的标号指示类似的元件,在附图中:Features of the present disclosure are shown by way of example, and not limitation, in the following drawings, in which like numerals refer to like elements, and in the drawings:
图1描绘了根据本公开的一个或多个示例的系统架构,在该系统架构内可以实现用于将数据从多个远程芯片卸载到处理器的数据卸载加速器;1 depicts a system architecture within which a data offload accelerator for offloading data from multiple remote chips to a processor may be implemented in accordance with one or more examples of the present disclosure;
图2描绘了根据本公开的一个或多个示例的系统架构,在该系统架构内可以实现用于将数据从多个远程芯片卸载到处理器的数据卸载加速器;2 depicts a system architecture within which a data offload accelerator for offloading data from a plurality of remote chips to a processor may be implemented in accordance with one or more examples of the present disclosure;
图3描绘了根据本公开的一个或多个示例的系统架构,在该系统架构内可以实现用于将数据从多个远程芯片卸载到处理器的数据卸载加速器;3 depicts a system architecture within which a data offload accelerator for offloading data from a plurality of remote chips to a processor may be implemented in accordance with one or more examples of the present disclosure;
图4描绘了根据本公开的一个或多个示例的系统架构,在该系统架构内可以实现用于将数据从多个远程芯片卸载到处理器的数据卸载加速器;4 depicts a system architecture within which a data offload accelerator for offloading data from a plurality of remote chips to a processor may be implemented in accordance with one or more examples of the present disclosure;
图5描绘了根据本公开的一个或多个示例的系统架构,在该系统架构内可以实现用于将数据从多个远程芯片卸载到处理器的数据卸载加速器;5 depicts a system architecture within which a data offload accelerator for offloading data from a plurality of remote chips to a processor may be implemented in accordance with one or more examples of the present disclosure;
图6描绘了根据本公开的一个或多个示例的系统架构,在该系统架构内可以实现用于发起多个远程芯片的初始化加速器;6 depicts a system architecture within which an initialization accelerator for launching a plurality of remote chips may be implemented, according to one or more examples of the present disclosure;
图7描绘了根据本公开的一个或多个示例的系统架构,在该系统架构内可以实现用于将数据从多个远程芯片卸载到处理器的数据卸载加速器;7 depicts a system architecture within which a data offload accelerator for offloading data from a plurality of remote chips to a processor may be implemented in accordance with one or more examples of the present disclosure;
图8描绘了根据本公开的一个或多个示例的用于将数据从多个远程芯片卸载到处理器的方法的流程图;以及8 depicts a flowchart of a method for offloading data from a plurality of remote chips to a processor in accordance with one or more examples of the present disclosure; and
图9描绘了根据本公开的一个或多个示例的用于将数据从多个远程芯片卸载到处理器的另一种方法的流程图。9 depicts a flow diagram of another method for offloading data from multiple remote chips to a processor in accordance with one or more examples of the present disclosure.
具体实施方式Detailed ways
一种数据收集解决方案,诸如用于收集遥测的解决方案,在BMC固件中实现了循环,该循环一次跨一个到几个BMC-到-ASIC管理通信接口读取一个CSR或存储器映射的数据元素。为了使BMC执行单个CSR的取回,将固件设计为设置请求,开始事务并在被通知时从硬件取回数据。在设置过程中,固件格式化事务并对硬件执行多次单独的写入,以准备其用于执行。然后,固件通过另一个硬件写入来发起请求。一旦硬件完成事务后,将通过异步硬件中断通知固件完成状态并且任意响应数据可用。最后,固件对硬件执行多次单独读取,以取回返回数据。为了收集整个数据集合,此过程在循环中执行,该循环单独请求每个CSR或存储器映射的数据元素。由于顺序发起请求和服务每个响应所涉及的开销(软件、操作系统、固件、驱动程序、存储资源等),该序列化过程被认为很慢速。A data collection solution, such as that used to collect telemetry, implements a loop in the BMC firmware that reads one CSR or memory-mapped data element across one to several BMC-to-ASIC management communication interfaces at a time . In order for the BMC to perform the retrieval of a single CSR, the firmware is designed to set the request, start the transaction and retrieve the data from the hardware when notified. During setup, the firmware formats the transaction and performs multiple separate writes to the hardware to prepare it for execution. The firmware then initiates the request with another hardware write. Once the hardware completes the transaction, the firmware is notified of the completion status via an asynchronous hardware interrupt and any response data is available. Finally, the firmware performs multiple individual reads of the hardware to retrieve the return data. To collect the entire data set, this process is performed in a loop that individually requests each CSR or memory-mapped data element. This serialization process is considered slow due to the overhead (software, operating system, firmware, drivers, storage resources, etc.) involved in initiating requests sequentially and servicing each response.
如果BMC可以本地访问ASIC并可以维持系统的高级要求所指示的预期性能(带宽、延迟、持续与突发等),则此配置就足够了。但是,此配置未解决针对某些系统拓扑的性能预期。This configuration is sufficient if the BMC has local access to the ASIC and can maintain the expected performance (bandwidth, latency, sustained vs burst, etc.) as dictated by the high level requirements of the system. However, this configuration does not address performance expectations for some system topologies.
公开了一种与数据卸载加速有关的系统和方法,例如用于一对多BMC-ASIC接口拓扑。例如在诸如现场可编程门阵列(FPGA)或ASIC的集成电路(IC)内的硬件数据卸载加速器从多个芯片读取、存储和传递数据,诸如遥测数据,例如多个ASIC,每个ASIC都具有具有相似的可寻址存储器和CSR结构的多个小芯片。数据卸载加速器将该数据卸载到远离多个芯片的处理器,诸如BMC。如本文所用,“卸载”数据意味着在一个或多个处理器与一个或多个芯片之间发送或传递数据。数据卸载加速器包括寄存器集合、一个或多个地址缓冲器以及一个或多个数据缓冲器以实现数据卸载,该寄存器集合允许处理器控制数据卸载。处理器可以指定远程存储器地址,例如CSR地址或其他映射的存储器地址位置,用于卸载。处理器可在一个或多个地址缓冲器内指定这些地址。处理器可以在附有加速器的ASIC的预定义地址空间内的任意独立位置处指定不连续的地址。A system and method related to data offload acceleration, such as for a one-to-many BMC-ASIC interface topology, is disclosed. A hardware data offload accelerator, eg, within an integrated circuit (IC) such as a Field Programmable Gate Array (FPGA) or ASIC, reads, stores and transfers data, such as telemetry data, from multiple chips, eg multiple ASICs, each ASIC There are multiple chiplets with similar addressable memory and CSR structures. The data offload accelerator offloads the data to processors remote from multiple chips, such as the BMC. As used herein, "offloading" data means sending or transferring data between one or more processors and one or more chips. The data offload accelerator includes a set of registers that allows the processor to control the data offload, one or more address buffers, and one or more data buffers to implement data offload. The processor may specify a remote memory address, such as a CSR address or other mapped memory address location, for offloading. The processor may specify these addresses in one or more address buffers. The processor may specify non-contiguous addresses at any independent location within the predefined address space of the accelerator-attached ASIC.
在一个示例中,数据卸载加速器包括“快速”和“慢速”地址缓冲器(以及对应的“快速”和“慢速”数据缓冲器)。例如“快速”是指数据以某个相对较快速的刷新率(例如100Hz)被卸载到处理器。而“慢速”是指可能是比前者更大的数据集合的数据以相对较慢速的刷新率(例如1Hz)被卸载到处理器。已经初始化一个或多个地址缓冲器后,处理器可以通过单次写入数据卸载加速器内的寄存器来发起数据捕获。当数据卸载加速器观察到其“开始”位有效时,它将为指定地址中的每一个发出芯片读取。这些读取可以跨多个芯片接口并行执行。当每个芯片做出响应时,数据卸载加速器会使用相关的响应数据并行填充适当的数据缓冲器。在存储了部分或全部响应数据之后,数据卸载加速器将中断处理器。然后,处理器从数据卸载加速器中取回存储的数据。In one example, the data offload accelerator includes "fast" and "slow" address buffers (and corresponding "fast" and "slow" data buffers). For example "fast" means that data is offloaded to the processor at some relatively fast refresh rate (eg 100Hz). And "slow" means that data, which may be a larger set of data than the former, is offloaded to the processor at a relatively slow refresh rate (eg, 1 Hz). After one or more address buffers have been initialized, the processor can initiate data capture by writing a single write to the registers within the data offload accelerator. When the data offload accelerator observes that its "start" bit is valid, it will issue a chip read for each of the specified addresses. These reads can be performed in parallel across multiple chip interfaces. As each chip responds, the data offload accelerator fills the appropriate data buffers in parallel with the associated response data. After storing some or all of the response data, the data offload accelerator will interrupt the processor. The processor then retrieves the stored data from the data offload accelerator.
示例益处包括改进了从多个芯片收集数据的速度,因为可以并行执行对来自芯片,并且特别是例如数十或数百个芯片内的多个CSR的数据的读取和写入。此外,通过显著减少事务开销来提高速度。即,处理器向数据卸载加速器的单个写入可以代替处理器向每个CSR发起请求并为每个响应提供服务所涉及的开销(软件、OS、固件、驱动程序、存储资源等)。这触发了数据卸载加速器以并行方式在硬件中发出多个读取请求,并将响应并行保存到适当的响应数据缓冲器中。Example benefits include improved speed of data collection from multiple chips, as reading and writing of data from chips, and particularly multiple CSRs within, for example, tens or hundreds of chips, can be performed in parallel. Additionally, speed is improved by significantly reducing transaction overhead. That is, a single write by the processor to the data offload accelerator can replace the overhead (software, OS, firmware, drivers, storage resources, etc.) involved in the processor initiating a request to each CSR and servicing each response. This triggers the data offload accelerator to issue multiple read requests in hardware in parallel and save the responses into the appropriate response data buffers in parallel.
在特定示例中,数据卸载加速器从多个远程IC内的多个芯片卸载大量遥测数据。例如每个远程IC内的芯片中的每一个都可以包含成百上千个CSR(或其他存储器映射位置),可以从CSR卸载遥测数据。在该示例中,当处理器发出单个写入命令时,数据卸载加速器可以并行地向多个芯片发出多个读取请求,以从第一多个指定地址并行取回第一多个数据响应,并将第一多个数据响应并行地存储在一个或多个数据缓冲器中。数据卸载加速器可以优化这些读取请求的排序请求大小,以增加IC接口上的数据传递效率。例如如果数据卸载加速器在处理器定义的地址缓冲器中标识了连续存储器的块,则它可以将离散地址分组为单个读取请求,其中事务读取响应的大小适合于覆盖连续范围中包含的多个离散地址。此外,数据卸载加速器可以对地址缓冲器内容进行排序,以促进此类空间局部性优化。在不从处理器接收额外命令或不产生额外开销的情况下,数据卸载加速器可以重复数据的并行捕获(包括向芯片并行发出另一个多个读取请求,从另一多个指定地址并行地接收另一多个数据响应,并将多个数据响应并行存储到一个或多个数据缓冲器),直到捕获了来自所有指定地址的数据为止。因此,在数据卸载加速器卸载大量远程数据的情况下(例如遥测),可以节省大量开销。In a particular example, a data offload accelerator offloads large amounts of telemetry data from multiple chips within multiple remote ICs. For example, each of the chips within each remote IC may contain hundreds or thousands of CSRs (or other memory-mapped locations) from which telemetry data can be offloaded. In this example, when the processor issues a single write command, the data offload accelerator may issue multiple read requests to multiple chips in parallel to retrieve the first multiple data responses in parallel from the first multiple specified addresses, and storing the first plurality of data responses in one or more data buffers in parallel. The data offload accelerator can optimize the ordering request size of these read requests to increase the efficiency of data transfer over the IC interface. For example, if the data offload accelerator identifies blocks of contiguous memory in a processor-defined address buffer, it can group discrete addresses into a single read request, where the transactional read response is sized to cover multiple blocks contained in the contiguous range. discrete addresses. Additionally, the data offload accelerator can sort the address buffer contents to facilitate such spatial locality optimizations. Without receiving additional commands from the processor or incurring additional overhead, the data offload accelerator can repeat the parallel capture of data (including issuing another multiple read requests to the chip in parallel, receiving from another multiple specified addresses in parallel another multiple data responses, and store multiple data responses in parallel to one or more data buffers) until data from all specified addresses has been captured. Thus, in the case of data offload accelerators offloading large amounts of remote data (such as telemetry), significant overhead savings can be achieved.
现在转向附图,图1描绘了根据本公开的一个或多个示例的系统架构100,在其中可以实现数据卸载加速器112,用于将数据从系统架构100的多个IC 106-1到106-N中的多个远程芯片1到M卸载到处理器102。在这种情况下,M和N是整数,其值取决于系统架构100的设计。整数M或N可以相同或不同。Turning now to the drawings, FIG. 1 depicts a
系统架构100还包括数据卸载加速器设备104,该数据卸载加速器设备104包括数据卸载加速器112,并且耦合到处理器102以及多个IC 106-1至106-N中的多个芯片1至M。芯片1至M“远离”处理器102和数据卸载加速器设备104,这意味着芯片1至M至少被包括在与处理器102和数据卸载加速器设备104不同的芯片组或管芯(die)上。在特定示例中,每个均包含“远程”芯片1至M的IC 106-1至106-N形成在与其上形成有处理器102和数据卸载加速器设备104的一个或多个半导体基板不同的半导体基板上。The
在一个示例中,处理器102是基板管理控制器(BMC)。在另一个示例中,处理器102是一种微处理器。在另一个示例中,系统架构100可以包括多个处理器。例如系统架构100可以包括处理器130,数据卸载加速器112还可以向处理器130卸载来自多个IC 106-1至106-N内的多个芯片1至M的数据。在又一示例中,系统架构100可以包括安装在一个或多个印刷电路组件上的多个数据卸载加速器设备104,其耦合到一个或多个处理器。In one example, the
如图所示,IC 106-1至106-N中的每一个都是ASIC;因此,IC 106-1至106-N也被标记在图1(和图2-6)中,并在本文中称为ASIC 1至N。ASIC 1至N可以具有超大规模集成(VLSI)设计。例如ASIC 1至N可以各自具有多个小芯片1至M(如图所示),并且可以使用硅堆叠互连(SSI)或其他三维IC设计技术来制造,其中多个ASIC管芯被嵌入到单个基板或IC封装中。如进一步示出的,小芯片1至M各自包括一个或多个可寻址的CSR,在一个示例中,每个CSR都是64位寄存器。尽管仅示出了两个,但是N个ASIC可以包括两个以上的ASIC。尽管仅示出了两个,但是M个小芯片可以包括多于两个的小芯片。在另一示例中,系统架构100可以包括具有小芯片1至M的单个ASIC。在另一示例中,系统架构100可以包括各自具有单个小芯片的ASIC 1至N。As shown, each of ICs 106-1 through 106-N is an ASIC; therefore, ICs 106-1 through 106-N are also labeled in Figure 1 (and Figures 2-6), and are used herein Called
在示例中,数据卸载加速器112用于将遥测数据从CSR卸载到处理器102。在特定示例中,ASIC 1至N至少部分地形成交换结构网络,并且处理器102可以针对某些条件监视来自CSR的遥测数据。例如处理器102可以监视遥测数据,从而可以采取响应或纠正动作以防止在交换结构网络内发生不想要的问题。In an example, the
数据卸载加速器设备104是具有各种硬件组件的硬件设备,如下所述。在一示例中,数据卸载加速器设备104是IC。例如数据卸载加速器设备104是FPGA。替代地,数据卸载加速器设备104是ASIC。将数据卸载加速器设备104实现为FPGA的示例益处是设计中的改进的灵活性,因为它可以例如在现场或在工厂中被适当地编程。将数据卸载加速器设备104实现为FPGA的另一示例益处是:可以基于用户需求或系统架构100内的硬件改变来优化和/或改变其中使用的数据卸载加速器算法。The data
数据卸载加速器设备104还包括将处理器102耦合到数据卸载加速器112的接口桥110。数据卸载加速器设备104还包括接口122、124-1到124-N和126-1到126-N,其将数据卸载加速器112耦合到ASIC 1至N内的小芯片1至M。在系统架构100内有多个处理器的情况下,例如处理器102和130,接口桥110可以将所有处理器连接到数据卸载加速器112。The data
接口桥110可以包括任意合适的接口,例如能够实现在数据卸载加速器112和处理器102之间数据的串行传递的接口。接口桥110内的接口可以进一步允许处理器102和数据卸载加速器112之间的命令(或请求)和中断或任意其他合适的消息传送或信息的传递。一个示例性接口桥110包括PCIe工业接口。在系统架构100内有多个处理器(例如处理器102和130)的情况下,接口桥110可以包括多个PCIe接口,其中每个PCIe接口耦合到处理器之一和数据卸载加速器112。替代地,接口桥110可以包括PCIe开关,该PCIe开关耦合到每个处理器和数据卸载加速器112。
在一个示例中,接口122、124-1至124-N和126-1至126-N允许数据卸载加速器112与ASIC 1至N的小芯片1至M之间的基于事务的通信。基于事务的通信或“事务”可以包括例如配置的请求(例如在初始化期间或在某个后续时间)和存储器读取和写入,以及对请求的响应,例如数据,诸如遥测数据。如图所示,接口124-1至124-N分别连接在接口122与ASIC 1的小芯片1至M之间。类似地,接口126-1至126-N分别在接口122与ASIC N的小芯片1至M之间连接以访问小芯片内的一个或多个CSR。In one example, interfaces 122, 124-1 through 124-N, and 126-1 through 126-N allow transaction-based communication between
如进一步示出的,接口124-1至124-N和126-1至126-N各自包括物理、链路和协议(较高)层。此外,如图所示,接口122用作数据卸载加速器112与接口124-1至124-N和126-1至126-N之间的协议层接口。在一示例中,接口122包括事务缓冲器和路由器。在特定示例中,接口124-1至124-N和126-1至126-N各自都是专有接口,并且接口122包括多个事务先进先出(FIFO)路由器。在该示例中,例如如果接口桥110包括PCIe,则数据卸载加速器设备104可以用作处理器102与小芯片1至M之间的协议桥。替代地,接口124-1至124-N和126-1至126-N是PCIe接口,并且接口122包括多个PCIe事务FIFO路由器。As further shown, interfaces 124-1 to 124-N and 126-1 to 126-N each include physical, link, and protocol (higher) layers. Additionally, as shown,
接口122、124-1至124-N和126-1至126-N的该示例布置能够实现事务(例如请求)从数据卸载加速器112到ASIC 1到N的小芯片1至M的并行传输。同样,接口122、124-1至124-N和126-1至126-N的该示例布置能够实现事务(例如,对请求的响应)从ASIC 1到N的小芯片1到M到数据卸载加速器112的并行传输。例如在处理器102接收到单个写入命令后,数据卸载加速器112可以并行地向ASIC 1-N中的小芯片1到M发送读取请求,其中一个读取请求在接口124-1至124-N和接口126-1至126-N中的每个上被发送。另外,响应于读取请求,ASIC 1至N内的小芯片1至M可以并行地向数据卸载加速器发送数据响应,其中一个数据响应在接口124-1至124-N和接口126-1至126-N中的每个上被发送。This example arrangement of
数据卸载加速器112包括卸载控制设备114、具有单个地址缓冲器116的地址缓冲器库、具有单个响应数据缓冲器120的响应数据缓冲器库、以及FSM事务(TXN)处理逻辑118(本文中称为作为事务处理逻辑)。在所示的示例中,地址缓冲器116被实现为块随机存取存储器(BRAM),但是可以使用任意适当的存储器技术来实现以存储多个地址。地址缓冲器116例如经由BRAM接口(I/F)耦合至处理器102。地址缓冲器116还例如使用硬件连接来耦合到事务处理逻辑118。更具体地,处理器102可以在地址缓冲器116中指定地址,例如CSR的地址,以访问芯片106-1至106-N中的一个或多个并且从芯片106-1至106-N中的一个或多个取回数据。在一个示例中,地址是线性或顺序的。在该示例中,处理器102可以在地址缓冲器116中指示起始地址和地址范围。可替代地,这些地址可以是非线性的或异构的、非离散的地址,与使用线性地址相比,其可以提供更大的灵活性。在该替代示例中,地址缓冲器116可以实现列表特征,该列表特征允许处理器102将非线性地址的列表写入地址缓冲器116。The
在所示的示例中,响应数据缓冲器120被实现为BRAM,但是可以使用任意适当的存储器技术来实现以存储多个地址。响应数据缓冲器120例如经由BRAM I/F耦合到处理器102。响应数据缓冲器120还耦合到事务处理逻辑118。事务处理逻辑118可以并行地将其从芯片106-1至106-N取回的数据转发到响应数据缓冲器120。事务处理逻辑(例如118)和一个或多个数据缓冲器(例如120)之间的平行线表示多个硬件连接,以能够实现来自小芯片1到M的信息(包括数据响应)的并行转发,在一些示例中,事务被发送到小芯片1至M以初始化CSR。如图所示,数据响应缓冲器120是单片缓冲器。替代地,并且如关于本文公开的一个或多个示例数据卸载加速器所描述的,响应数据缓冲器库可以包括多个数据缓冲器,例如多个数据缓冲器集合,其中每个集合具有多个数据缓冲器。In the example shown, the
卸载控制设备114被耦合到处理器102和事务处理逻辑118两者。卸载控制设备114可以包括任意合适的电路,其能够实现:处理器102提供状态指示(例如命令或其他输入)以控制数据卸载加速器112的功能以从小芯片1到M取回数据;事务处理逻辑118提供作为请求、接收、存储和/或处理来自小芯片1到M的数据的结果的一个或多个状态指示;并且处理器102从数据卸载加速器112读取一个或多个状态指示,例如由事务处理逻辑118提供的一个或多个状态指示。
卸载控制设备114包括多个状态指示器电路,例如一个或多个位寄存器,其能够实现不同的状态指示。如图所示,卸载控制设备114包括加速器(Accel)就绪、开始、进行中(InProg)、数据可用(DataAvail)、错误、地址(Addr)控制(Cnt)、缓冲器偏移/大小、和性能计数器(Cntrs)状态指示器电路。例如取决于由处理器102和数据卸载加速器112指示的信息,卸载控制设备114可以具有更多或更少的状态指示器电路。The
加速器就绪状态指示器电路使数据卸载加速器112能够向处理器102指示其准备工作。例如加速器就绪状态指示器电路使数据卸载加速器112能够指示其已经退出复位并且到小芯片1至M的所有链接已经被初始化。开始状态指示器电路使处理器102能够向数据卸载加速器112指示开始处理在地址缓冲器116中指定的地址。例如使用开始状态指示器电路,处理器102可以发出单个写入命令来发起从ASIC 1至N中的一个或多个的小芯片1至M的数据捕获。数据捕获或捕获数据包括从远程芯片接收数据并存储该数据。在一示例中,数据捕获包括发送数据请求,接收包括数据的数据响应,以及将数据转发到一个或多个响应数据缓冲器。进行中状态指示器电路使事务处理逻辑118能够向处理器102指示从地址缓冲器116中指示的地址的数据取回正在进行。数据可用状态指示器电路使传输处理逻辑118能够向处理器102指示数据可用于卸载。例如数据可用状态指示器电路使数据卸载加速器112能够中断处理器102,以将取回的数据中的至少一部分卸载到处理器102。错误状态指示器电路使事务处理逻辑118能够向处理器102指示可能发生的各种错误。示例错误包括例如读取超时或与ASIC的连接在事务中中断。地址控制状态指示器电路使处理器102能够向事务处理逻辑118指示在地址缓冲器116中指示了多少个地址。缓冲器偏移量/大小状态指示器电路使事务处理逻辑118能够向处理器102指示所取回的数据位于响应数据缓冲器120内的哪里。缓冲器偏移/大小状态指示器电路还使数据卸载加速器112能够向处理器102指示地址缓冲器116和/或响应数据缓冲器120的大小。性能计数器状态指示器电路使事务处理逻辑118能够向处理器102指示表示性能的各种参数数据,诸如取回和存储数据花费了多长时间。The accelerator ready status indicator circuit enables
事务处理逻辑118可以耦合至接口122以处理数据卸载加速器112与ASIC 1至N的小芯片1至M之间的事务。在特定示例中,事务处理逻辑118以硬件被实现为有限状态机(FSM),以执行各种功能。例如事务处理逻辑118:从地址缓冲器116读取地址;以适合于接口122、124-1至124-N和126-1至126-N以及小芯片1至M的格式构造读取请求并将读取请求发送到那些地址;响应于读取请求来接收数据;将数据存储在适当的响应数据缓冲器中,在该示例中为响应数据缓冲器120。事务处理逻辑118还可以处理错误并提供状态指示,例如如上所述。在其他示例中,事务处理逻辑118可以执行其他功能,诸如将取回的数据与一个或多个准则进行比较,并基于该比较来执行动作。在另一示例中,事务处理逻辑118可以将读取的请求并行发送到在地址缓冲器116中指定的多个地址中的至少一些。事务处理逻辑118还可以并行地从多个地址接收数据。
图2描绘了根据本公开的一个或多个示例的系统架构200,在系统架构200中,可以实现数据卸载加速器212,用于将数据从系统架构200的ASIC 1到N的多个远程小芯片1到M卸载到处理器102。系统架构200还包括数据卸载加速器设备204,该数据卸载加速器设备204包括数据卸载加速器212,并且该数据卸载加速器设备204耦合到处理器102和ASIC 1至N的多个小芯片1至M两者。处理器102和ASIC 1至N可以与上面参考图1描述的类似地实现。此外,系统架构200可以包括多个处理器。2 depicts a
数据卸载加速器设备204包括接口桥110,该接口桥110可以如上文参考图1所述类似地实现并且类似地耦合到处理器102。如上参考图1所描述,数据卸载加速器设备204还包括接口122、124-1至124-N和126-1至126-N,接口122、124-1至124-N和126-1至126-N可以类似地被实现并且类似地耦合到ASIC 1至N的小芯片1至M。The data
数据卸载加速器212被示为耦合到接口桥110和接口122两者。如图所示,数据卸载加速器212包括:多个加速器寄存器214;以及地址缓冲器库,其包括慢速地址缓冲器208和快速地址缓冲器202;数据缓冲器库,其包括多个慢速响应数据缓冲器210、多个快速响应数据缓冲器216和多个快速响应数据缓冲器206;以及事务处理逻辑218。事务处理逻辑218可以以硬件被实现为有限状态机,并且被耦合到接口122、加速器寄存器214、慢速地址缓冲器208和快速地址缓冲器202以及多个慢速响应数据缓冲器210、多个快速响应数据缓冲器206和多个快速响应数据缓冲器216。
慢速地址缓冲器208和快速地址缓冲器202以及多个慢速响应数据缓冲器210、多个快速响应数据缓冲器206和多个快速响应数据缓冲器216内的每个数据缓冲器被示为具有BRAM I/F的BRAM,用于将数据缓冲器耦合到处理器102,但是可以被实现为任意合适的存储设备。事务处理逻辑218可以类似于参考图1描述的事务处理逻辑118来起作用。但是,事务处理逻辑218可以从多个例如“慢速”和“快速”地址缓冲器208和202分别读取地址,而不是从单个地址缓冲器。另外,事务处理逻辑218可以分别并行地写入多个(例如“慢速”和“快速”)响应数据缓冲器210和206、216,而不是写入单个响应数据缓冲器。
如图所示,加速器寄存器214包括加速器就绪、慢速/快速开始、慢速/快速进行中、慢速/快速数据可用、慢速/快速错误、慢速/快速地址控制、缓冲器偏移/大小和性能计数器状态寄存器,其可以类似于以上参考图1描述的卸载控制设备114的加速准备、开始、进行中、数据可用、错误、地址控制、缓冲器偏移/大小和性能计数器状态指示器电路进行工作。然而,加速器寄存器214分别能够实现针对多个例如“慢速”和“快速”地址缓冲器208和202的指示,而不是针对单个地址缓冲器的指示。此外,加速器寄存器214分别能够实现针对多个例如“慢速”和“快速”响应数据缓冲器210和206、216的指示,而不是针对单个响应数据缓冲器的指示。As shown, the accelerator registers 214 include accelerator ready, slow/fast start, slow/fast in progress, slow/fast data available, slow/fast error, slow/fast address control, buffer offset/ Size and performance counter status registers, which may be similar to the acceleration ready, start, in progress, data available, error, address control, buffer offset/size, and performance counter status indicators of the
使用数据卸载加速器212,处理器102可以在慢速地址缓冲器208和快速地址缓冲器202两者中指示地址,例如CSR的地址,以访问ASIC 1至N中的一个或多个的小芯片1至M并且从ASIC 1至N中的一个或多个的小芯片1至M取回数据。事务处理逻辑218从地址缓冲器202和208中读取地址;构造读取请求并向这些地址发送读取请求;响应于读取请求来接收数据;以及向响应数据缓冲器206、210和216并行转发其从ASIC 1至N的小芯片1至M取回的数据。Using the
如图所示,数据卸载加速器212包括不同性能类别或优先级的缓冲器,在这种情况下,“快速”缓冲器(例如202、206和216)和“慢速”缓冲器(例如208和210)使数据能够以不同的速率被卸载到处理器102。在一个示例中,“快速”缓冲器使某些数据能够以比“慢速”缓冲器更快速的速率(例如100倍)被取回和卸载。在此示例中,存在两个性能类别或优先级的缓冲器。但是,根据数据收集规范可能存在缓冲器的附加性能类别或优先级,例如基于预期的结果质量或特定的CSR分段。例如多个性能类别或优先级可以指示不同的数据刷新速率、由数据卸载加速器212捕获和/或传递到处理器102的数据的不同带宽、数据由数据卸载加速器212捕获和/或被传递到处理器102的不同速率等。在特定的示例中,每个性能等级或优先级都与其一起的单独的地址缓冲器和响应数据缓冲器相关联。As shown,
另外,根据数据收集规范,慢速地址缓冲器208,快速地址缓冲器202,多个慢速响应数据缓冲器210,多个快速响应数据缓冲器206和多个快速响应数据缓冲器216可以具有不同的大小。在一示例中,以较快速率捕获的数据量小于以较慢速率捕获的数据量。因此,快速地址缓冲器202可以小于慢速地址缓冲器208,以存储更少的地址。同样地,多个快速响应数据缓冲器206和多个快速响应数据缓冲器216可以小于多个慢速响应数据缓冲器210,以存储更少数据。在特定示例中,事务处理逻辑218可以执行仲裁方案以确定多频繁地相对于多个慢速响应数据缓冲器210填充多个快速响应数据缓冲器206和216。Additionally,
数据卸载加速器212的另一个特征是快速响应数据缓冲器的多个集合(例如206和216)的使用。例如数据卸载加速器212可以并行地向芯片106-1至106-N发送请求以取回数据,并且可以并行地将数据填充至给定的响应数据缓冲器。然而,处理器102可以从填充的响应数据缓冲器中串行读取数据。因此,将数据卸载到处理器102可能比捕获和写入数据花费更长的数倍的时间。在这种情况下,多个快速响应数据缓冲器的使用可以支持更高的速度。例如当处理器102从FastA响应数据缓冲器216读取数据时,事务处理逻辑218可以收集数据并填充FastB响应数据缓冲器206。类似地,当处理器102从FastB响应数据缓冲器206读取数据时,事务处理逻辑218可以收集数据并填充FastA响应数据缓冲器216。在另一个示例中,数据卸载加速器212包括附加的快速响应数据缓冲器,其数量可以至少部分地取决于事务处理逻辑218捕获数据和将数据填充到读取数据的处理器102的相对速度。Another feature of
图3描绘了根据本公开的一个或多个示例的系统架构300,在该系统架构300内,可以实现数据卸载加速器312,用于将数据从系统架构300的ASIC 1至N的多个远程小芯片1至M卸载到处理器102。系统架构300还包括数据卸载加速器设备304,该数据卸载加速器设备304包括数据卸载加速器312,并且该数据卸载加速器设备304被耦合到处理器102和ASIC 1至N的多个小芯片1至M两者。处理器102和ASIC 1至N可以与上面参考图1描述类似地被实现。此外,系统架构300可以包括多个处理器。3 depicts a
如以上参考图1所述,数据卸载加速器设备304包括接口桥110,该接口桥110可以类似地被实现并且类似地被耦合到处理器102。如上参考图1所述,数据卸载加速器设备304还包括接口122、124-1至124-N和126-1至126-N,接口122、124-1至124-N和126-1至126-N可以类似地被实现并且类似地被耦合至ASIC 1至N的小芯片1至M。As described above with reference to FIG. 1 , data
数据卸载加速器312被示为耦合到接口桥110和接口122两者。如图所示,数据卸载加速器312包括:多个加速器寄存器314;地址缓冲器库,其包括地址缓冲器302;数据缓冲器库,其包括多个响应数据缓冲器310;事务处理逻辑318;比较器电路306;以及标记电路308。事务处理逻辑318可以以硬件被实现为有限状态机,并且被耦合到接口122、加速器寄存器314、地址缓冲器302、多个响应数据缓冲器310、比较器电路306、和动作电路308。
地址缓冲器302和多个响应数据缓冲器310中的每个数据缓冲器被示为具有用于将数据缓冲器耦合到处理器102的BRAM I/F的BRAM,但是可以使用任意适当的存储技术来实现。事务处理逻辑318可以类似于参考图1描述的事务处理逻辑118来起作用。然而,事务处理逻辑318可以并行地写入多个响应数据缓冲器310,而不是写入单个响应数据缓冲器。此外,在示出的示例中,事务处理逻辑318还向比较器电路306提供输入,并基于动作电路308的结果提供指示。
如图所示,加速器寄存器314包括加速器就绪、开始、进行中、数据可用、错误、地址控制、缓冲器偏移/大小和性能计数器状态寄存器,其类似于如以上参考图1所描述的卸载控制设备114的加速器就绪、开始、进行中、数据可用、错误、地址控制、缓冲器偏移/大小、和性能计数器状态指示器电路起作用。加速器寄存器314还包括地址/数据(A/D)先进先出(FIFO)控制(Cnt)/状态寄存器,其使事务处理逻辑318能够基于动作电路308的结果向处理器102提供一个或多个状态指示。此外,加速器寄存器314能够实现针对多个响应数据缓冲器310而不是单个响应数据缓冲器的的指示。As shown, accelerator registers 314 include accelerator ready, start, in progress, data available, error, address control, buffer offset/size, and performance counter status registers, which are similar to offload control as described above with reference to FIG. 1 The accelerator ready, starting, in progress, data available, error, address control, buffer offset/size, and performance counter status indicator circuits of
在示例情况下,来自ASIC 1至N的小芯片1至M的数据可能不会频繁改变。因此,为了进一步提高效率,一旦事务处理逻辑318第一次将数据写入响应数据缓冲器310(例如数据集合n-1),则当存在改变时,事务处理逻辑318更新响应数据缓冲器310中的数据,并且改变的数据可以被标记并被传递到处理器102,而不是传递完整的数据集合。比较器电路306和标记电路308能够实现该特征。在示例中,标记电路308被实现为“标记地址/数据FIFO”寄存器集合。In an example case, the data from chiplets 1-M of ASICs 1-N may not change frequently. Therefore, to further improve efficiency, once transaction logic 318 writes data to
如图所示,比较器电路306例如使用组合逻辑电路来实现比较功能。在一个示例中,当事务处理逻辑318取回数据集合-n时,它可以将数据集合-n中的每个数据点(值)提供给比较器电路306。然后,比较功能可以针对响应数据缓冲区310的给定地址位置,将数据集合n中每个数据点与数据集合n-1中对应数据点进行比较。当比较功能向标记电路308输出差时,标记电路308可以将该差和/或实际数据值存储为“标记值”,并且还将响应数据缓冲器310的对应地址位置作为“标记地址”存储在标记地址/数据FIFO寄存器中。在示例中,标记电路308的标记地址/数据FIFO寄存器的内容可被处理器102访问。在特定示例中,数据卸载加速器312使用A/D FIFO控制/状态寄存器向处理器102提供该内容可用于从标记地址/数据FIFO寄存器进行传递的指示。As shown, the
因此,仅将数据的一部分,例如给定地址位置的标记数据值和/或数据集合n值和数据集合n-1值之间的标记差,卸载到处理器102,而不是整个数据集合-n和数据集合n-1。这加速了由处理器102读取的数据,这可能是重要的,例如在存在要从中读取数据的成千上万个CSR的情况下。此外,数据卸载加速器312可以在其硬件中监视数据的显著改变。与将数据首先传递到处理器102以执行比较功能相比,可以更高效地执行这种监视。Thus, only a portion of the data, such as the tag data value at a given address location and/or the tag difference between the data set n value and the data set n-1 value, is offloaded to the
图4描绘了根据本公开的一个或多个示例的系统架构400,在该系统架构400中,可以实现数据卸载加速器412以将数据从系统架构400的ASIC 1至N的多个远程小芯片1至M卸载到处理器102。系统架构400还包括数据卸载加速器设备404,该数据卸载加速器设备404包括数据卸载加速器412,并且该数据卸载加速器设备404被耦合至处理器102和ASIC 1至N的多个小芯片1至M。处理器102和ASIC 1至N可以与上面参考图1描述的类似地实现。此外,系统架构400可以包括多个处理器。4 depicts a
数据卸载加速器设备404包括接口桥110,该接口桥接器110可以如以上参考图1所述的被类似地实现并且被类似地耦合到处理器102。如上参考图1所述的,数据卸载加速器设备404还包括接口122、124-1至124-N和126-1至126-N,其可以类似地被实现并类似地被耦合到ASIC 1至N的小芯片1至M。The data
数据卸载加速器412被示出为耦合到接口桥110和接口122两者。如图所示,数据卸载加速器412包括:多个加速器寄存器414;多个地址缓冲器库,其包括地址缓冲器402;数据缓冲器库,其包括多个响应数据缓冲器410;事务处理逻辑418;比较器电路406;以及标记电路408。事务处理逻辑418可以以硬件被实现为有限状态机,并且被耦合到接口122、加速器寄存器414、地址缓冲器402、多个响应数据缓冲器410、比较器电路406和标记电路408。
地址缓冲器402和多个响应数据缓冲器410内的每个数据缓冲器被示出为具有用于将数据缓冲器耦合到处理器102的BRAM I/F的BRAM,但是可以被实现为任意适当的存储器技术。标记电路408可以类似于参考图3描述的标记电路308起作用。事务处理逻辑418可以类似于参考图1描述的事务处理逻辑118起作用。但是,事务处理逻辑418可以并行写入多个响应数据缓冲器410而不是单个响应数据缓冲器。此外,在所示的示例中,事务处理逻辑418还基于动作电路408的结果来提供指示。Each data buffer within
如图所示,加速器寄存器414包括加速器就绪、开始、进行中、数据可用、错误、地址控制、缓冲器偏移/大小和性能计数器状态寄存器,其类似于如以上参考图1描述的卸载控制设备114的加速器就绪、开始、进行中、数据可用、错误、地址控制、缓冲器偏移/大小和性能计数器状态指示器电路起作用。加速器寄存器414还包括A/D FIFO控制/状态寄存器,这使得事务处理逻辑418能够基于标记电路408的结果向处理器102提供一个或多个状态指示。此外,加速器寄存器414能够实现针对多个响应数据缓冲器410而不是单个响应数据缓冲器的指示。As shown, accelerator registers 414 include accelerator ready, start, in progress, data available, error, address control, buffer offset/size, and performance counter status registers, which are similar to the offload control device as described above with reference to FIG. 1 The accelerator ready, starting, in progress, data available, error, address control, buffer offset/size and performance counter status indicator circuits of 114 function. Accelerator registers 414 also include A/D FIFO control/status registers, which enable transaction logic 418 to provide one or more status indications to
在另一个示例场景中,图4的示例的比较和监视功能可能比参考图3所描述的功能更复杂。例如比较器电路406可以包括多个数据集合准则和模式匹配寄存器,这允许将从ASIC 1至N中的一个或多个的小芯片1至M取回的数据与一个或多个准则进行比较。在一个示例中,处理器102将一个或多个准则编程到比较器电路406的数据集合准则和模式匹配寄存器中,所取回的数据与其进行比较。如图所示,处理器102可以对准则进行编程,包括但不限于位范围字段、模式匹配类型和模式匹配值。位范围字段可以指示例如来自CSR的感兴趣的位范围,以进行比较。模式匹配类型可以指示要执行的比较的类型,例如等于、大于、小于。模式匹配值可以指示使用模式匹配类型将取回的数据与其比较的一个或多个值。在一个示例中,比较器电路406可以基于定义的遥测反应目标来监视某些兴趣条件。In another example scenario, the comparison and monitoring functions of the example of FIG. 4 may be more complex than those described with reference to FIG. 3 . For example,
如果满足一个或多个(模式匹配)准则,则标记电路408可以存储“标记值”,例如数据的值或与数据有关的某个其他值,并且还将响应数据缓冲器410的对应地址位置作为“标记地址”存储在标记地址/数据FIFO寄存器中。在示例中,标记电路408的标记地址/数据FIFO寄存器的内容可被处理器102访问。在特定示例中,数据卸载加速器412使用A/D FIFO控制/状态寄存器向处理器102提供内容可用于从标记的地址/数据FIFO寄存器中卸载的指示。因此,仅将一部分数据,例如标记的数据值和/或与给定地址位置的数据值有关的其他值,而不是整个数据集合-n和数据集合n-1,卸载到处理器102。If one or more (pattern matching) criteria are met, the
图5描绘了根据本公开的一个或多个示例的系统架构500,在该系统架构500中可以实现数据卸载加速器512,用于将数据从系统架构500的ASIC 1至N的多个远程小芯片1至M卸载到处理器102。系统架构500还包括数据卸载加速器设备504,该数据卸载加速器设备504包括数据卸载加速器512,并且该数据卸载加速器设备504被耦合至处理器102和ASIC 1至N的多个小芯片1至M。处理器102和ASIC 1至N可以与上面参考图1描述的被类似地实现。此外,系统架构500可以包括多个处理器。5 depicts a
数据卸载加速器设备504包括接口桥110,该接口桥110可以如以上参考图1所述的类似地被实现并且类似地被耦合到处理器102。数据卸载加速器设备404还包括接口122、124-1至124-N和126-1至126-N,其可以如上参考图1所述的类似地被实现并类似地被耦合到ASIC 1至N的小芯片1至M。The data
数据卸载加速器512被示出为耦合到接口桥110和接口122两者。如图所示,数据卸载加速器512包括:多个加速器寄存器514;以及地址缓冲器库,其包括地址缓冲器502;数据缓冲器库,其包括多个响应数据缓冲器510;事务处理逻辑518;比较器电路506;以及动作电路508。事务处理逻辑518可以以硬件被实现为有限状态机,并且被耦合到接口122、加速器寄存器514、地址缓冲器502、多个响应数据缓冲器510、比较器电路506和动作电路508。
地址缓冲器402和多个响应数据缓冲器410内的每个数据缓冲器被示为具有用于将数据缓冲器耦合到处理器102的BRAM I/F的BRAM,但是可以被实现为任意适当的存储器技术。事务处理逻辑518可以类似于参考图1描述的事务处理逻辑118起作用。但是,事务处理逻辑518可以并行写入多个响应数据缓冲器510而不是单个响应数据缓冲器。此外,在所示的示例中,事务处理逻辑518还基于动作电路508的结果来提供指示。Each data buffer within
如图所示,加速器寄存器514包括加速器就绪、开始、进行中、数据可用、错误、地址控制、缓冲器偏移/大小和性能计数器状态寄存器,其类似于如以上参考图1描述的卸载控制设备114的加速器就绪、开始、进行中、数据可用、错误、地址控制、缓冲器偏移/大小和性能计数器状态指示器电路起作用。加速器寄存器514还包括准则/动作CSR状态寄存器,其使得事务处理逻辑518能够基于标记电路508的结果向处理器102提供一个或多个状态指示。此外,加速器寄存器514能够实现针对多个响应数据缓冲器510而不是单个响应数据缓冲器的指示。As shown, the accelerator registers 514 include accelerator ready, start, in progress, data available, error, address control, buffer offset/size, and performance counter status registers, which are similar to the offload control device as described above with reference to FIG. 1 The accelerator ready, starting, in progress, data available, error, address control, buffer offset/size and performance counter status indicator circuits of 114 function. Accelerator registers 514 also include a criterion/action CSR status register, which enables transaction logic 518 to provide one or more status indications to
在另一个示例场景中,图5的示例的比较和监视功能可能比参考图3所描述的功能更复杂。例如比较器电路406可以包括多个数据集合准则和模式匹配寄存器,其允许将从ASIC 1至N中的一个或多个的小芯片1至M取回的数据与一个或多个准则进行比较。在一个示例中,处理器102将一个或多个准则编程到比较器电路506的数据集合准则和模式匹配寄存器中,所取回的数据与其进行比较。如图所示,处理器102可以对准则进行编程,包括但不限于位范围字段、模式匹配类型、模式匹配值、和准则类别。位范围字段、模式匹配类型和模式匹配值寄存器可以类似于参考图4所描述的那些寄存器起作用。但是,准则类别寄存器包括附加准则,将取回的数据与其进行比较。在一个示例中,标准类别用于确定所取回的数据值是否来自指定的CSR类别内的CSR。In another example scenario, the comparison and monitoring functions of the example of FIG. 5 may be more complex than those described with reference to FIG. 3 . For example,
例如在ASIC 1至N形成或被包括在交换网络中的情况下,可以处理收集的遥测数据以寻找或监视特定的性能签名。当发现异常签名时,数据卸载加速器512可以采取动作从该条件恢复,同时交换网络继续操作。在此上下文中,作为非限制性示例,数据卸载加速器512可以:寻找指示结构路径不再可操作的条件;表征新的硅片和新的交换范例;搜索“黑洞”,即正在接收数据但从未将其传递到目的地的端口;标识“砖墙”,即从不接受数据的端口;等等For example where
如果满足一个或多个准则或找到签名,则在该示例场景中,动作电路508可以采取某种动作,例如某种纠正动作。例如动作电路508可在响应数据缓冲器510内针对小芯片,特别是针对小芯片内的CSR等采取一个或多个动作。如图所示,动作电路508包括:多个加速动作响应寄存器,包括动作类别,动作类型,动作范围,动作状态和动作性能(Perf.)计数器寄存器,其提供了响应于满足一个或多个准则而动作电路可以采取的动作的灵活性。这些动作可以通过对应寄存器中的类别、类型和范围来描绘。所采取的动作的指示以及与所采取的动作有关的结果或其他状态可以被记录在动作状态寄存器中。而且,与动作有关的任意性能度量可以被存储在动作性能计数器寄存器中。这样的动作可以包括但不限于将特定值写入CSR或响应数据缓冲器510中的地址,改变用于CSR的路由表以避开黑洞或砖墙网络路由条件等。If one or more criteria are met or a signature is found, in this example scenario, the
在示例中,处理器120可访问动作电路508的加速动作响应寄存器的内容。在特定示例中,数据卸载加速器512使用准则/动作CRS寄存器向处理器102提供内容可从动作电路508的一个或多个动作响应寄存器中进行查看和传递的指示。在又一示例中,响应数据缓冲器510中的数据也被传送到处理器102。如果来自ASIC 1到N的小芯片1到M的所有数据必须先被串行卸载到处理器102进行分析,则与所采取的动作相比,动作电路508能够更快地实现要采取的动作以解决或缓解网络中的状况。In an example, the
图6描绘了根据本公开的一个或多个示例的系统架构600,在该系统架构600中可以实现初始化加速器612,用于初始化系统架构600的ASIC 1至N的多个远程小芯片1至M。系统架构600还包括初始化加速器设备604,该初始化加速器设备604包括初始化加速器612,并且该初始化加速器设备604耦合到处理器102和ASIC 1到N的多个小芯片1到M。处理器102和ASIC 1到N可以如上参考图1所描述的类似地被实现。此外,系统架构600可以包括多个处理器。6 depicts a
初始化加速器设备604包括接口桥110,如上面参考图1所述,该接口桥接器110可以类似地被实现并且类似地耦合到处理器102。初始化加速器设备604还包括接口122、124-1至124-N和126-1至126-N,其可以如上文参考图1所描述的类似地被实现并类似地耦合到ASIC 1至N的小芯片1至M。
初始化加速器612被图示为耦合到接口桥110和接口122两者。如图所示,初始化加速器612包括:多个加速器寄存器614;地址缓冲器库,其包括地址缓冲器602;数据缓冲器库,其包括多个输出数据缓冲器606;以及事务处理逻辑618。事务处理逻辑618可以以硬件被实现为有限状态机,并且被耦合到接口122、加速器寄存器614、地址缓冲器602和多个输出数据缓冲器606。
如图所示,加速器寄存器614包括加速器就绪、开始、进行中、数据可用、错误、地址控制、缓冲器偏移/大小和性能计数器状态寄存器,其类似于如以上参考图1描述的卸载控制设备114的加速器就绪、开始、进行中、数据可用、错误、地址控制、缓冲器偏移/大小和性能计数器状态指示器电路起作用。此外,加速器寄存器614能够实现关于多个输出数据缓冲器606的指示。在另一示例中,加速器寄存器614能够实现关于单个输出数据缓冲器的指示。As shown, the accelerator registers 614 include accelerator ready, start, in progress, data available, error, address control, buffer offset/size, and performance counter status registers, which are similar to the offload control device as described above with reference to FIG. 1 The accelerator ready, starting, in progress, data available, error, address control, buffer offset/size and performance counter status indicator circuits of 114 function. In addition, accelerator registers 614 can enable indications regarding multiple output data buffers 606 . In another example, the
地址缓冲器602和多个输出数据缓冲器606内的每个数据缓冲器被图示为具有用于将数据缓冲器耦合至处理器102的BRAM I/F的BRAM,但是可以被实现为任意适当的存储器技术。事务处理逻辑618可以类似于参考图1描述的事务处理逻辑118起作用,以从芯片106-1至106-N取回和存储数据。在这种情况下,出站数据缓冲器606将用作响应数据缓冲器以存储所取回的数据。Each data buffer within
然而,在一些示例中,事务处理逻辑618将来自输出数据缓冲器606的初始化数据写入ASIC 1至N中的一个或多个的小芯片1至M,例如写入小芯片1至M内的CSR。初始化数据可以在接口122、124-1至124-N和126-1至126-N上并行写入。在示例中,作为初始化小芯片的一部分,处理器102可以在地址缓冲器602中指定多个地址。处理器102可以将初始化数据对应地填充到出站数据缓冲器106中,以在那些地址处初始化小芯片。然后,在例如使用加速器寄存器614内的开始寄存器从处理器102接收到指示时,传输处理逻辑618将来自出站数据缓冲器606的初始化数据写入在存储的地址处的小芯片。因此,事务处理逻辑618可以通过使用硬件来向小芯片并行地发送写请求来执行对小芯片的同时初始化。与处理器102一次一个地初始化每个小芯片相比,可以大大减少初始化时间。However, in some examples, transaction logic 618 writes initialization data from output data buffer 606 into
在另一示例中,事务处理逻辑618可以将其他类型的数据写入ASIC 1至N中的一个或多个的小芯片1至M。例如事务处理逻辑可以在除初始化之外的后续时间将配置数据写入小芯片,以改变CSR内的值。In another example, transaction logic 618 may write other types of data to chiplets 1-M of one or more of ASICs 1-N. For example, transaction logic may write configuration data to the chiplet at a later time than initialization to change the value within the CSR.
图7描绘了根据本公开的一个或多个示例的系统架构700,在系统架构700内可以实现数据卸载加速器712,以用于将数据从系统架构700的多个IC 730-1至730-N的多个远程芯片1至M卸载到处理器102。IC 730-1至730-N在本文中也称为IC 1至N。系统架构700还包括数据卸载加速器设备704,其包括数据卸载加速器712,并且耦合至处理器102和多个芯片106-1至106-N两者。处理器102和芯片1至M可以是包括存储器映射的地址位置的任意类型的芯片,该存储器映射的地址位置包含用于卸载到处理器102的数据。此外,系统架构700可以包括多个处理器。7 depicts a
数据卸载加速器设备704包括接口桥110,该接口桥110可以如上文参考图1所述的类似地被实现并且类似地耦合到处理器102。数据卸载加速器设备704还包括接口122、124-1至124-N和126-1至126-N,其可以如上面参考图1所述的类似地被实现并类似地耦合到IC1至N的芯片1至M。The data
数据卸载加速器712被图示为耦合到接口桥110和接口122两者。如图所示,数据卸载加速器712包括事务处理逻辑718,其耦合到数据卸载加速器712的其余组件。事务处理逻辑718可以包括以上参考图1、2、3、4和6所述的至少一些功能。数据卸载加速器712还包括可以与参照图1描述的加速器寄存器114类似地起作用的多个加速器寄存器714。数据卸载加速器712还包括具有慢速地址缓冲器708和快速地址缓冲器702的地址缓冲器库,其可以类似于由参考图2描述的慢速地址缓冲器208和快速地址缓冲器202起作用。数据卸载加速器712还包括具有多个慢速响应数据缓冲器710、多个快速响应数据缓冲器722和多个快速响应数据缓冲器706的数据缓冲器库,其类似于参考图2描述的慢速响应数据缓冲器210、快速响应数据缓冲器216和快速响应数据缓冲器206起作用。数据卸载加速器712进一步包括比较器电路716和动作电路720,其可以类似于参考图4描述的比较器电路406和动作电路408起作用。在特定示例中,处理器102可以对数据卸载加速器进行编程,以以不同的模式起作用,以触发其中的各种功能。
图8描绘了根据本公开的一个或多个示例的用于将数据从多个远程芯片卸载到处理器的方法800的流程图。示例方法800或其部分可由分别在图1至图7中示出的示例数据卸载加速器112、212、312、412、512、612和712执行。然而,示例性地,方法800参考图1的数据卸载加速器112描述。根据示例方法800,用于从ASIC 1至N中的一个或多个的多个远程小芯片1至M取回数据的多个地址的指示被接收(802)到地址缓冲器库中,该地址缓冲器库在这种情况下是地址缓冲器116。发起数据的卸载的命令被接收(804)到卸载控制设备114中。事务处理逻辑118将数据并行捕获(806)到数据缓冲器库120,在这种情况下是响应数据缓冲器120。一旦响应数据缓冲器120至少部分地或完全被数据填充,事务处理逻辑118就中断(808)处理器102以进行传递数据的至少一部分。8 depicts a flowchart of a
在一个示例中,事务处理逻辑118基于在事务处理逻辑118内编程的一个或多个策略来取回数据。在一个示例中,事务处理逻辑118从一些但不是全部ACIS 1至ACIS N取回数据。在另一示例中,事务处理逻辑118从ASIC 1至N中的一个或多个ASIC中的一些但并非全部芯片1至M中取回数据。在另一示例中,事务处理逻辑118从ASIC 1至N中的一个或多个中的芯片1至M中的一个或多个内的一些但并非全部CSR中取回数据。在另一示例中,事务处理逻辑118取回不同大小的数据,例如不同大小的数据位或字节。在另一个示例中,每个事务可以取回不同大小的数据。In one example,
图9描绘了根据本公开的一个或多个示例的用于将数据从多个远程芯片卸载到处理器的方法900的流程图。示例方法900或其部分可由示例数据卸载加速器112、212、312、412、512、612和712以及示例ASIC初始化加速器612执行,如图1至图7所示。然而,示意性地,方法900通过参照图7的数据卸载加速器712描述。9 depicts a flowchart of a
根据示例性方法900,用于从IC 1到N中的一个或多个中的多个远程芯片1到M提供或取回数据的多个地址的指示被接收到地址缓冲器库的多个地址缓冲器702、708中。特别地,存储器地址的第一部分在第一地址缓冲器中被接收(902),例如快速地址缓冲器702,并且存储器地址的第二部分在第二地址缓冲器中被接收(904),例如慢速地址缓冲器710。取决于数据卸载加速器的配置(例如在类似于图6的数据卸载加速器612被配置的情况下),事务处理逻辑712可以在指示的地址并行地初始化(906)IC 1到N中的一个或多个IC中的多个远程芯片1到M。在一个示例中,响应数据缓冲器库包含初始化数据,事务处理逻辑718可以将这些初始化数据写入IC 1至N中的一个或多个的远程芯片1至M以初始化或配置芯片,例如IC 1至N中的一个或多个的芯片1至M内的CSR。在另一个示例中,处理器使用加速器寄存器来触发事务处理逻辑718以初始化CSR。According to the
用于发起数据的卸载的命令被接收(908)到卸载控制设备中,在这种情况下为加速器寄存器714。事务处理逻辑718将数据的第一部分捕获(910)到数据缓冲器库的数据缓冲器的第一集合中,并将数据的第二部分捕获(912)到数据缓冲器库的第二部分中。例如事务处理逻辑718并行地从远程芯片106-1至106-N请求并接收数据。事务处理逻辑718然后将数据的第一部分并行转发或写入到数据缓冲器库的快速响应数据缓冲器706和722中,并且将数据的第二部分并行写入数据缓冲器库的慢速响应数据缓冲器710中。在一个示例中,一旦响应数据缓冲器706、722或710中的一个或多个至少部分或全部被数据填充,事务处理逻辑718就中断(918)处理器102以卸载数据的至少一部分。例如一旦快速响应数据缓冲器之一例如722被填满,事务处理逻辑718就在事务处理逻辑718填充另一响应数据缓冲器706时中断处理器102以从一个快速响应数据缓冲器722卸载数据。A command to initiate offloading of data is received (908) into the offload control device, in this case the
其中如图7所示,数据卸载加速器包括比较器电路(例如716)和电路(例如720),比较器电路716可以将捕获的数据与随后取回到的数据或一个或多个模式匹配准则进行比较(914)。在框916,取决于其如何被配置,电路720可以标记与所捕获的数据不同的后续数据,或者可以基于数据是否满足一个或多个准则来采取动作。在另一示例中,满足一个或多个准则或被标记的数据中的一部分而不是数据的全部被传递918到处理器102。在另一示例中,当数据中的至少一些满足一个或多个准则时,电路720(例如如果例如与动作电路508类似地被配置)采取校正动作916。7, the data offload accelerator includes a comparator circuit (eg, 716) and a circuit (eg, 720), and the
为了简单和说明性目的,主要通过参考本公开的示例来描述本公开。在以上描述中,阐述了许多具体细节以便提供对本公开的透彻理解。然而,将显而易见的是,可以实践本公开而不限于这些具体细节。例如示例示出了使用数据卸载加速器的不同硬件配置和硬件组合来实践本公开。然而,可以使用数据卸载加速器的其他组合和配置或本文未描述的ASIC初始化加速器的不同配置来实践本公开。另外,在不脱离所描述的示例的范围的情况下,可以移除和/或修改所描绘的一些元件。在其他情况下,未详细描述一些方法和结构,以免不必要地混淆本公开。如本文所使用的,术语“包括”是指包括但不限于,并且术语“包含”是指包含但不限于。另外,术语“具有”是指具有但不限于,并且术语“含有”是指含有但不限于。在本文中,术语“约”在应用于某个值时通常表示在用于生成该值的设备的公差范围内,或者在某些示例中,表示正负10%、或正负5%、或正负1%,除非另有明确说明。For simplicity and illustrative purposes, the present disclosure is primarily described by reference to examples of the present disclosure. In the above description, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. It will be apparent, however, that the present disclosure may be practiced without being limited to these specific details. For example, examples illustrate the practice of the present disclosure using different hardware configurations and hardware combinations of data offload accelerators. However, the present disclosure may be practiced using other combinations and configurations of data offload accelerators or different configurations of ASIC initialization accelerators not described herein. Additionally, some of the depicted elements may be removed and/or modified without departing from the scope of the described examples. In other instances, some methods and structures have not been described in detail so as not to unnecessarily obscure the present disclosure. As used herein, the term "including" means including but not limited to, and the term "comprising" means including but not limited to. Additionally, the term "having" means having, but not limited to, and the term "containing" means including, but not limited to. As used herein, the term "about" when applied to a value generally means within the tolerance of the equipment used to generate the value, or in some examples, plus or minus 10%, or plus or minus 5%, or Plus or minus 1% unless explicitly stated otherwise.
Claims (20)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201916295823A | 2019-03-07 | 2019-03-07 | |
| US16/295,823 | 2019-03-07 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN111666106A true CN111666106A (en) | 2020-09-15 |
Family
ID=72146714
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202010137127.3A Pending CN111666106A (en) | 2019-03-07 | 2020-03-02 | Data offload acceleration from multiple remote chips |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN111666106A (en) |
| DE (1) | DE102020105896A1 (en) |
Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20080222383A1 (en) * | 2007-03-09 | 2008-09-11 | Spracklen Lawrence A | Efficient On-Chip Accelerator Interfaces to Reduce Software Overhead |
| CN101373449A (en) * | 2007-08-21 | 2009-02-25 | 三星电子株式会社 | ECC control circuit, multi-channel memory system, and related method of operation |
| CN102934102A (en) * | 2010-05-26 | 2013-02-13 | 日本电气株式会社 | Multiprocessor system, execution control method and execution control program |
| CN103970027A (en) * | 2014-04-02 | 2014-08-06 | 北京控制工程研究所 | Telemetry processing unit simulation method in integrated electronic simulation software environment |
| CN104866452A (en) * | 2015-05-19 | 2015-08-26 | 哈尔滨工业大学(鞍山)工业技术研究院 | Multi-serial port extension method based on FPGA and TL16C554A |
| CN105045763A (en) * | 2015-07-14 | 2015-11-11 | 北京航空航天大学 | FPGA (Field Programmable Gata Array) and multi-core DSP (Digital Signal Processor) based PD (Pulse Doppler) radar signal processing system and parallel realization method therefor |
| CN105229481A (en) * | 2013-02-21 | 2016-01-06 | 爱德万测试公司 | There is the acceleration on storer and the tester for the acceleration of automatic mode generation in FPGA block |
| CN107430628A (en) * | 2015-04-03 | 2017-12-01 | 华为技术有限公司 | Acceleration framework with immediate data transmission mechanism |
| US20180095750A1 (en) * | 2016-09-30 | 2018-04-05 | Intel Corporation | Hardware accelerators and methods for offload operations |
-
2020
- 2020-03-02 CN CN202010137127.3A patent/CN111666106A/en active Pending
- 2020-03-05 DE DE102020105896.9A patent/DE102020105896A1/en not_active Withdrawn
Patent Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20080222383A1 (en) * | 2007-03-09 | 2008-09-11 | Spracklen Lawrence A | Efficient On-Chip Accelerator Interfaces to Reduce Software Overhead |
| CN101373449A (en) * | 2007-08-21 | 2009-02-25 | 三星电子株式会社 | ECC control circuit, multi-channel memory system, and related method of operation |
| CN102934102A (en) * | 2010-05-26 | 2013-02-13 | 日本电气株式会社 | Multiprocessor system, execution control method and execution control program |
| CN105229481A (en) * | 2013-02-21 | 2016-01-06 | 爱德万测试公司 | There is the acceleration on storer and the tester for the acceleration of automatic mode generation in FPGA block |
| CN103970027A (en) * | 2014-04-02 | 2014-08-06 | 北京控制工程研究所 | Telemetry processing unit simulation method in integrated electronic simulation software environment |
| CN107430628A (en) * | 2015-04-03 | 2017-12-01 | 华为技术有限公司 | Acceleration framework with immediate data transmission mechanism |
| CN104866452A (en) * | 2015-05-19 | 2015-08-26 | 哈尔滨工业大学(鞍山)工业技术研究院 | Multi-serial port extension method based on FPGA and TL16C554A |
| CN105045763A (en) * | 2015-07-14 | 2015-11-11 | 北京航空航天大学 | FPGA (Field Programmable Gata Array) and multi-core DSP (Digital Signal Processor) based PD (Pulse Doppler) radar signal processing system and parallel realization method therefor |
| US20180095750A1 (en) * | 2016-09-30 | 2018-04-05 | Intel Corporation | Hardware accelerators and methods for offload operations |
Also Published As
| Publication number | Publication date |
|---|---|
| DE102020105896A1 (en) | 2020-09-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN114443529B (en) | Memory direct access architecture, system, method, electronic device and medium | |
| US7822908B2 (en) | Discovery of a bridge device in a SAS communication system | |
| US8588228B1 (en) | Nonvolatile memory controller with host controller interface for retrieving and dispatching nonvolatile memory commands in a distributed manner | |
| US9806904B2 (en) | Ring controller for PCIe message handling | |
| US20050235072A1 (en) | Data storage controller | |
| US6876561B2 (en) | Scratchpad memory | |
| JP5429572B2 (en) | How to set parameters and determine latency in a chained device system | |
| CN101669100B (en) | Method and system for managing multiple I/O interfaces using a multi-core processor resource array in a semiconductor chip | |
| US6970921B1 (en) | Network interface supporting virtual paths for quality of service | |
| US20200081850A1 (en) | Unified address space for multiple hardware accelerators using dedicated low latency links | |
| CN116569154B (en) | Data transmission method and related device | |
| US6839777B1 (en) | System and method for transferring data over a communication medium using data transfer links | |
| CN100576811C (en) | Bus device, bus system and information transmission method | |
| US20100329261A1 (en) | Data processing apparatus, data processing method and computer-readable medium | |
| US7860120B1 (en) | Network interface supporting of virtual paths for quality of service with dynamic buffer allocation | |
| US7962676B2 (en) | Debugging multi-port bridge system conforming to serial advanced technology attachment (SATA) or serial attached small computer system interface (SCSI) (SAS) standards using idle/scrambled dwords | |
| US20090059943A1 (en) | Data processing system | |
| US8214553B2 (en) | Virtualization of an input/output device for supporting multiple hosts and functions | |
| JP2006293969A (en) | Data transfer device | |
| US7805551B2 (en) | Multi-function queue to support data offload, protocol translation and pass-through FIFO | |
| US8402320B2 (en) | Input/output device including a mechanism for error handling in multiple processor and multi-function systems | |
| CN107291641B (en) | Direct memory access control device for a computing unit and method for operating the same | |
| CN116324750A (en) | High-throughput circuit architecture for hardware acceleration | |
| CN111666106A (en) | Data offload acceleration from multiple remote chips | |
| US7673076B2 (en) | Concurrent read response acknowledge enhanced direct memory access unit |
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 | ||
| WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200915 |
|
| WD01 | Invention patent application deemed withdrawn after publication |