Protocol controller, protocol control method, chiplet, system on chip, and electronic device
By designing a protocol controller that supports peripheral protocol and inter-chip interconnection protocol in the core, using the multiplexing of the bus interface, the problem of the peripheral protocol and inter-chip interconnection protocol controller occupying hardware resources is solved, and resource saving and design difficulty are reduced.
Patent Information
- Application Number
- PCT/CN2024/095960
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-11-03
- Filing Date
- 2024-05-29
- Publication Date
- 2025-05-08
AI Technical Summary
In core particles, the peripheral protocol controller and the inter-chip interconnection protocol controller respectively occupy a higher hardware resource, resulting in an increase in core particle area and an increase in cost.
Design a protocol controller, which supports peripheral protocol and inter-chip interconnection protocol through one protocol controller, and uses the same set of bus interfaces to achieve protocol multiplexing to avoid implementing each protocol controller separately.
It reduces the hardware resources occupied by the protocol controller, saves the hardware resources of the core particles, reduces the cost of the chip, and simplifies the difficulty of the core particles design.
Smart Images

Figure CN2024095960_08052025_PF_FP_ABST
Abstract
Description
Protocol controller, protocol control method, chip, system on chip and electronic device
[0001] This application claims priority to Chinese Patent Application No. 202311459482.2 filed on November 3, 2023, and the contents of the above-mentioned Chinese patent application disclosure are hereby cited in their entirety as a part of this application. Technical Field
[0002] Embodiments of the present disclosure relate to a protocol controller, a protocol control method, a chip, a system on a chip, and an electronic device. Background Art
[0003] A chiplet is a unit chip that can realize certain functions, such as a processor chiplet (such as a CPU chip) that realizes data processing. Multiple chiplets can be interconnected to form a chip such as SOC (System On Chip).
[0004] The protocol controller is a component in the chip that manages and executes the communication protocol. Based on the need for the chip to interconnect with peripherals (short for external devices) and other chiplets, the protocol controller in the chip can be divided into a peripheral protocol controller and an inter-chip interconnection protocol controller. Among them, the peripheral protocol controller is used to manage and execute peripheral protocols to achieve interconnection between the chip and the peripheral. The inter-chip interconnection protocol controller is used to manage and execute inter-chip interconnection protocols to achieve interconnection between the chip and other chiplets.
[0005] In the above context, how to provide a protocol controller to reduce the hardware resources occupied by the protocol controller has become a technical problem that those skilled in the art urgently need to solve.
[0006] Summary of the Invention
[0007] In view of this, the embodiments of the present disclosure provide a protocol controller, a protocol control method, a chiplet, a system on chip and an electronic device, which support peripheral protocols and inter-chip interconnection protocols through one protocol controller, avoiding the high hardware resources occupied by the peripheral protocol controller and the interconnection protocol controller respectively, and can reduce the hardware resources occupied by the protocol controller.
[0008] To achieve the above objectives, the embodiments of the present disclosure provide the following technical solutions.
[0009] In a first aspect, an embodiment of the present disclosure provides a protocol controller, applied to a chiplet, the protocol controller comprising:
[0010] A first bus interface connected to the system bus, wherein the first bus interface implements an inter-chip interconnection protocol and a first partial sub-protocol of the peripheral protocol;
[0011] and, a second bus interface connected to the system bus, the second bus interface implementing a second partial sub-protocol of the peripheral protocol, the first partial sub-protocol and the second partial sub-protocol being configured to be implemented by different bus interfaces;
[0012] The core particle uses one of an inter-chip interconnection protocol and a peripheral protocol at the same time.
[0013] In a second aspect, an embodiment of the present disclosure provides a protocol control method, applied to the protocol controller described in the first aspect, the method comprising:
[0014] Determine the protocol currently used by the protocol controller;
[0015] If the protocol currently used by the protocol controller is a peripheral protocol, the module configured separately for the inter-chip interconnection protocol in the protocol controller is closed;
[0016] If the protocol currently used by the protocol controller is an inter-chip interconnection protocol, a module in the protocol controller that is separately configured for the peripheral protocol is closed.
[0017] In a third aspect, an embodiment of the present disclosure provides a core particle, comprising the protocol controller as described in the first aspect above.
[0018] In a fourth aspect, an embodiment of the present disclosure provides a system on chip, comprising a plurality of interconnected core particles, wherein the core particles are the core particles described in the first aspect above.
[0019] In a fifth aspect, an embodiment of the present disclosure provides an electronic device, comprising the core particle as described in the first aspect above, or the system on chip as described in the fourth aspect above.
[0020] The protocol controller provided by the embodiment of the present disclosure can be applied to a chip, and the protocol controller may include a first bus interface connected to the system bus, and a second bus interface connected to the system bus; since the chip uses one of the inter-chip interconnection protocol and the peripheral protocol at the same time, when the first part of the sub-protocol and the second part of the sub-protocol of the peripheral protocol are configured to be implemented by different bus interfaces, the protocol controller provided by the embodiment of the present disclosure can implement the inter-chip interconnection protocol and the first part of the sub-protocol of the peripheral protocol on the first bus interface, and implement the second part of the sub-protocol of the peripheral protocol on the second bus interface, so that the inter-chip interconnection protocol and the first part of the sub-protocol of the peripheral protocol that the chip needs to support can share the first bus interface of the protocol controller, thereby reducing the hardware resources occupied by the protocol controller; and the second part of the sub-protocol that needs to be configured separately from the first part of the sub-protocol is implemented on the second bus interface of the protocol controller, so that the protocol controller of the chip can support the peripheral protocol and the inter-chip interconnection protocol through two groups of interfaces, the first bus interface and the second bus interface.
[0021] It can be seen that the embodiment of the present disclosure can support peripheral protocols and inter-chip interconnection protocols through a protocol controller in the chip, and the inter-chip interconnection protocol and the first part of the sub-protocol of the peripheral protocol can share a set of bus interfaces (i.e., the first bus interface) of the protocol controller, thereby improving the reusability of hardware resources; furthermore, different from the method of separately implementing the peripheral protocol controller and the interconnection protocol controller in the chip, the embodiment of the present disclosure can reduce the hardware resources occupied by the protocol controller, thereby saving the hardware resources of the chip. BRIEF DESCRIPTION OF THE DRAWINGS
[0022] In order to more clearly illustrate the technical solutions in the embodiments of the present disclosure, the following briefly introduces the drawings required for use in the description of the embodiments. Obviously, the drawings described below are merely embodiments of the present disclosure. For ordinary technicians in this field, other drawings can be obtained based on the provided drawings without any creative work.
[0023] FIG1A is an example diagram of interconnection between a core particle and peripherals and other core particles;
[0024] FIG1B is another example diagram of interconnection between a core particle and peripherals and other core particles;
[0025] FIG2A is a diagram illustrating an example of a connection of a protocol controller according to an embodiment of the present disclosure;
[0026] FIG2B is another example diagram of a connection of a protocol controller according to an embodiment of the present disclosure;
[0027] FIG3 is an exemplary diagram of interconnection of core particles according to an embodiment of the present disclosure;
[0028] FIG4 is an example diagram of a protocol controller provided by an embodiment of the present disclosure;
[0029] FIG5 is an example diagram of a bus interface module provided by an embodiment of the present disclosure;
[0030] FIG6A is an example diagram of a transport layer module provided in an embodiment of the present disclosure;
[0031] FIG6B is another example diagram of a transport layer module provided by an embodiment of the present disclosure;
[0032] FIG6C is a diagram illustrating an example of the interaction process between the protocol controller and the system bus according to an embodiment of the present disclosure;
[0033] FIG6D is another example diagram of the interaction process between the protocol controller and the system bus according to an embodiment of the present disclosure;
[0034] FIG7 is an example diagram of a data link layer module provided in an embodiment of the present disclosure;
[0035] FIG8 is an example diagram of a physical layer module provided in an embodiment of the present disclosure;
[0036] FIG9 is another exemplary diagram of a protocol controller provided by an embodiment of the present disclosure; and
[0037] FIG10 is a flowchart of a protocol control method provided by an embodiment of the present disclosure. DETAILED DESCRIPTION
[0038] The following will be combined with the accompanying drawings in the embodiments of the present disclosure to clearly and completely describe the technical solutions in the embodiments of the present disclosure. Obviously, the embodiments described are only part of the embodiments of the present disclosure, not all of the embodiments. Based on the embodiments of the present disclosure, all other embodiments obtained by ordinary technicians in this field without making any creative efforts are within the scope of protection of the present disclosure.
[0039] Limited by the chip's process technology and cost, multiple chiplets can be combined into a chip system (such as a system on a chip) through inter-chip interconnection technology to achieve chip performance improvement and function increase; among them, inter-chip interconnection technology can realize the interconnection of multiple chiplets based on the inter-chip interconnection protocol.
[0040] At the same time, in order to enable processor cores (such as CPU cores) and other cores to be interconnected with peripherals, the cores and peripherals can be interconnected through peripheral protocols. For example, with the increase in computing power requirements of computer systems, in order to reduce the impact of the storage wall problem, peripheral protocols such as the CXL (Compute Express Link) protocol have been introduced to improve the data exchange efficiency between CPU cores and other cores and peripherals. Therefore, CPU cores and other cores can be interconnected with peripherals through peripheral protocols such as the CXL protocol. It should be noted that the storage wall problem refers to the problem that when a large amount of memory data needs to be accessed, the performance of the computer system cannot be effectively improved due to limitations such as memory bandwidth, latency or cache consistency. The emergence of the storage wall problem is accompanied by a bottleneck in memory bandwidth.
[0041] It can be seen that the chip needs to be interconnected with peripherals and other chiplets. Therefore, when designing the chip, it is necessary to make the chip support peripheral protocols and inter-chip interconnection protocols, so that the chip can be interconnected with peripherals through peripheral protocols and can be interconnected with other chiplets through inter-chip interconnection protocols.
[0042] For ease of understanding, Figure 1A exemplarily shows an example diagram of the interconnection between the core particles and peripherals and other core particles. As shown in Figure 1A, the core particles 111 and 112 can be interconnected through the inter-chip interconnection protocol, and the core particles 111 and the peripherals 120 can be interconnected through the peripheral protocol.
[0043] Among them, core particles 111 and core particles 112 can be two core particles in a chip such as a SOC. For example, core particles 111 and core particles 112 are two processor core particles in the SOC. The embodiments of the present disclosure do not limit the number of core particles in a chip such as a SOC. Core particles 111 and core particles 112 can be interconnected via an inter-chip interconnection protocol; wherein the inter-chip interconnection protocol is a communication protocol for connecting different core particles to achieve high-speed data transmission and communication between the core particles. The inter-chip interconnection protocol can include a three-layer protocol of the transport layer, the data link layer, and the physical layer.
[0044] Peripheral device 120 can be any external device connected to chiplet 111, such as a network device, accelerator device, or storage device. Chiplet 111 and peripheral device 120 can be interconnected via a peripheral protocol, a communication protocol used by the chiplet to connect to and control external or peripheral devices, such as the CXL protocol.
[0045] It should be noted that the CXL protocol is a high-performance, open interconnect protocol designed to connect computing, storage, and acceleration devices to support high-bandwidth, low-latency data transmission and resource sharing. It should be further clarified that peripheral protocols are not limited to the CXL protocol and can also include the CCIX (Cache Coherent Interconnect for Accelerators) protocol or other protocols that connect processors (such as graphics processors) and acceleration devices to support high-performance computing and data transmission.
[0046] In order for the core to support the peripheral protocol and the inter-chip interconnection protocol, the core needs to implement protocol controllers that support the peripheral protocol and the inter-chip interconnection protocol respectively. For ease of understanding, FIG1B exemplarily shows another example diagram of the interconnection between the core and the peripheral and other cores. In combination with FIG1A and FIG1B , the core 111 is implemented with a peripheral protocol controller 131 and an inter-chip interconnection protocol controller 132. Among them, the core 111 can use the peripheral protocol controller 131 to interconnect with the peripheral 120 through the peripheral protocol; the core 111 can use the inter-chip interconnection protocol controller 132 to interconnect with the core 112 through the inter-chip interconnection protocol.
[0047] By implementing the peripheral protocol controller and the inter-chip interconnection protocol controller in the chiplet, the chiplet can select the protocol controller to be used according to the actual application scenario, thereby interconnecting with the peripheral through the peripheral protocol, or interconnecting with other chiplets through the inter-chip interconnection protocol, thereby meeting the needs of the chiplet in various application scenarios.
[0048] However, the chip may not be interconnected with peripherals and other chiplets at the same time, that is, the chip is interconnected with peripherals or other chiplets at the same time. At this time, the chip uses one of the peripheral protocol controller and the inter-chip interconnection protocol controller, and the other unused protocol controller needs to be turned off to reduce power consumption.
[0049] For example, in an application scenario where a chiplet is interconnected with a peripheral device, the chiplet may choose to use a peripheral protocol controller to interconnect with the peripheral device through the peripheral protocol, and to reduce power consumption, the chiplet may shut down the currently unused inter-chip interconnect protocol controller. For another example, in an application scenario where a chiplet is interconnected with other chiplets, the chiplet may choose to use an inter-chip interconnect protocol controller to interconnect with other chiplets through the inter-chip interconnect protocol, and to reduce power consumption, the chiplet may shut down the currently unused peripheral protocol controller.
[0050] It can be seen that based on the mechanism that a chiplet may use one of the peripheral protocol and the inter-chip interconnect protocol at the same time while the other protocol is not used, if both the peripheral protocol controller and the inter-chip interconnect protocol controller are implemented in the chiplet at the same time, this may cause the following problems:
[0051] Since the chip may use one of the peripheral protocol controller and the inter-chip interconnect protocol controller at the same time, the other unused protocol controller needs to be turned off. Therefore, if the peripheral protocol controller and the inter-chip interconnect protocol controller are implemented in the chip at the same time, it will occupy a larger hardware resource of the chip, resulting in an increase in the area of the chip and an increase in the cost; at the same time, the increase in the number of protocol controllers in the chip will lead to an increase in the design complexity of the system bus and an increase in the occupied hardware resources, resulting in an increase in the design difficulty of the chip and an increase in the cost.
[0052] In addition, when implementing both the peripheral protocol controller and the inter-chip interconnection protocol controller in the chip, a complex low-power design solution is required to minimize the power consumption of the protocol controller that needs to be shut down, which further increases the complexity of the chip design.
[0053] Based on this, the disclosed embodiments provide an improved protocol controller design solution. By designing a protocol controller in the core, it supports peripheral protocols and inter-chip interconnection protocols, thereby avoiding the problems caused by separately implementing the peripheral protocol controller and the interconnection protocol controller in the core. For example, it can avoid the high hardware resources occupied by separately implementing the peripheral protocol controller and the interconnection protocol controller, save the hardware resources occupied by the protocol controller, reduce the area of the core, reduce the cost of the chip, and reduce the difficulty of core design. Furthermore, by performing low-power control for the protocols that need to be turned off in a protocol controller, the complexity of the control logic can be simplified, further reducing the complexity of the core design.
[0054] Based on the above ideas, as an optional implementation, FIG2A exemplarily shows a connection example diagram of a protocol controller provided in an embodiment of the present disclosure. As shown in FIG2A , the core particle may include: a protocol controller 200. The protocol controller 200 may include: a first bus interface 210 and a second bus interface 220; wherein the first bus interface 210 and the second bus interface 220 are respectively connected to the system bus, that is, the first bus interface 210 is connected to the system bus, and the second bus interface 220 is connected to the system bus.
[0055] It should be noted that a system bus can be a communication channel provided in a chip (e.g., a SOC chip) that connects the different functional modules of the chip and serves as a medium for data transmission and coordinated operation between the functional modules. As an alternative implementation, the system bus can be an internal bus or an on-chip bus of the SOC chip.
[0056] In the disclosed embodiment, the first bus interface 210 and the second bus interface 220 are two sets of bus interfaces in the core. The first bus interface 210 can implement the inter-chip interconnect protocol and the first sub-protocol of the peripheral protocol, thereby supporting the interface-related functions of the inter-chip interconnect protocol and the interface-related functions of the first sub-protocol of the peripheral protocol.
[0057] In the embodiment of the present disclosure, the second bus interface 220 can implement the second part of the sub-protocol of the peripheral protocol, thereby supporting the interface-related functions of the second part of the sub-protocol of the peripheral protocol.
[0058] In an embodiment of the present disclosure, the first part sub-protocol and the second part sub-protocol of the peripheral protocol are configured to be implemented by different bus interfaces, that is, the peripheral protocol can be divided into the first part sub-protocol and the second part sub-protocol that need to be configured to different bus interfaces, so that the first part sub-protocol and the second part sub-protocol of the peripheral protocol can be implemented on different bus interfaces.
[0059] On this basis, since the core particle may use one of the peripheral protocol and the inter-chip interconnection protocol at the same time (that is, the core particle does not use the inter-chip interconnection protocol when using the peripheral protocol, and does not use the peripheral protocol when using the inter-chip interconnection protocol), the embodiment of the present disclosure, when designing the protocol controller of the core particle, can configure the inter-chip interconnection protocol and the first part of the sub-protocol of the peripheral protocol to share a set of bus interfaces of the core particle (that is, the first bus interface), so that when the core particle supports the inter-chip interconnection protocol and the first part of the sub-protocol of the peripheral protocol, the inter-chip interconnection protocol and the first part of the sub-protocol of the peripheral protocol can be reused for the first bus interface, thereby reducing the hardware resources occupied by the protocol controller.
[0060] At the same time, when the inter-chip interconnection protocol and the first part of the sub-protocol of the peripheral protocol are implemented on the first bus interface, the second part of the sub-protocol of the peripheral protocol is implemented on a set of bus interfaces different from the first bus interface (i.e., the second bus interface), so that the protocol controller of the core particle can support the peripheral protocol and the inter-chip interconnection protocol through two bus interfaces (i.e., the first bus interface and the second bus interface).
[0061] The protocol controller provided by the embodiment of the present disclosure can be applied to a chip, and the protocol controller may include a first bus interface connected to the system bus, and a second bus interface connected to the system bus; since the chip uses one of the inter-chip interconnection protocol and the peripheral protocol at the same time, when the first part of the sub-protocol and the second part of the sub-protocol of the peripheral protocol are configured to be implemented by different bus interfaces, the protocol controller provided by the embodiment of the present disclosure can implement the inter-chip interconnection protocol and the first part of the sub-protocol of the peripheral protocol on the first bus interface, and implement the second part of the sub-protocol of the peripheral protocol on the second bus interface, so that the inter-chip interconnection protocol and the first part of the sub-protocol of the peripheral protocol that the chip needs to support can share the first bus interface of the protocol controller, thereby reducing the hardware resources occupied by the protocol controller; and the second part of the sub-protocol that needs to be configured separately from the first part of the sub-protocol is implemented on the second bus interface of the protocol controller, so that the protocol controller of the chip can support the peripheral protocol and the inter-chip interconnection protocol through two groups of interfaces, the first bus interface and the second bus interface.
[0062] It can be seen that the embodiment of the present disclosure can support peripheral protocols and inter-chip interconnection protocols through a protocol controller in the chip, and the inter-chip interconnection protocol and the first part of the sub-protocol of the peripheral protocol can share a set of bus interfaces (i.e., the first bus interface) of the protocol controller, thereby improving the reusability of hardware resources; furthermore, different from the method of separately implementing the peripheral protocol controller and the interconnection protocol controller in the chip, the embodiment of the present disclosure can reduce the hardware resources occupied by the protocol controller, thereby saving the hardware resources of the chip.
[0063] In one implementation example, taking the CXL protocol as the peripheral protocol, the first sub-protocol of the peripheral protocol may include the memory and cache sub-protocol of the CXL protocol. This allows the memory and cache sub-protocol of the CXL protocol, as well as the inter-chip interconnect protocol, to be implemented on the first bus interface of the protocol controller, such that the memory and cache sub-protocol of the CXL protocol and the inter-chip interconnect protocol share the first bus interface of the protocol controller. It should be noted that the memory and cache sub-protocol of the CXL protocol can be considered as sub-protocols of the CXL protocol related to memory and cache, such as the CXL.MEM (memory) sub-protocol and the CXL.CACHE (cache) sub-protocol of the CXL protocol, where MEM is an abbreviation for MEMORY.
[0064] In one implementation example, taking the CXL protocol as an example, the second sub-protocol of the peripheral protocol may include an input / output sub-protocol of the CXL protocol, thereby enabling the input / output sub-protocol of the CXL protocol to be implemented on the second bus interface of the protocol controller. The input / output sub-protocol of the CXL protocol is, for example, the CXL.IO (input / output) sub-protocol of the CXL protocol.
[0065] It should be noted that the CXL protocol may include the CXL.IO subprotocol, the CXL.CACHE subprotocol, and the CXL.MEM subprotocol. The CXL.IO subprotocol is a subprotocol within the CXL protocol, used to implement high-performance input and output communications, and is the input and output subprotocol of the CXL protocol. The CXL.CACHE subprotocol is a subprotocol within the CXL protocol, used to support high-performance caching and data sharing, and is the cache subprotocol of the CXL protocol. The CXL.MEM subprotocol is a subprotocol within the CXL protocol, used to support high-performance memory access and memory sharing, and is the memory subprotocol of the CXL protocol. As subprotocols within the CXL protocol related to memory and caching, the CXL.CACHE subprotocol and the CXL.MEM subprotocol can be referred to as the memory and cache subprotocols of the CXL protocol.
[0066] As an optional implementation, taking the CXL protocol as an example of the peripheral protocol, FIG2B exemplarily shows another connection example diagram of the protocol controller provided in an embodiment of the present disclosure. In combination with FIG2A and FIG2B , the first bus interface 210 can implement the CXL.CACHE sub-protocol, the CXL.MEM sub-protocol and the inter-chip interconnection protocol, so that the core particle can be connected to the system bus through the first bus interface to implement the memory and cache related functions of the CXL protocol, as well as the related functions of the inter-chip interconnection protocol; the second bus interface can implement the CXL.IO sub-protocol, so that the core particle can be connected to the system bus through the second bus interface to implement the input and output related functions of the CXL protocol.
[0067] In a further optional implementation, FIG3 exemplarily shows an example diagram of interconnection of core particles provided by an embodiment of the present disclosure. In combination with FIG2A and FIG3 , the core particle may further include: a physical coding sublayer 310 connected to the protocol controller 200, and a physical layer interface 320 connected to the physical coding sublayer 310. At the same time, the protocol controller 200 may further include: a third bus interface 230; the protocol controller 200 may achieve connection with the physical coding sublayer 310 through the third bus interface 230.
[0068] It should be noted that, in the chiplet, the physical layer (PHY) interface 320 is part of the physical layer of the chiplet and is used to handle the physical layer connection for data transmission, for example, transmitting data from the chiplet to the physical channel, and receiving data from the physical channel and transmitting it to the chiplet. In one example, the physical layer interface can be, for example, a high-speed PHY interface, used to handle the physical layer connection for high-speed data transmission.
[0069] The physical coding sublayer 310 may also be part of the physical layer of the corelet, and is used to implement the functions of the physical layer in the corelet, such as data coding, physical layer information addition and processing, etc.
[0070] As an optional implementation, the protocol controller provided in the embodiment of the present disclosure can connect the system bus of the chip (such as the SOC chip) and the physical coding sublayer of the core particle, for example, the protocol controller is connected between the system bus of the chip (such as the SOC chip) and the physical coding sublayer of the core particle. Among them, the protocol controller is connected to the system bus through two groups of bus interfaces (i.e., the first bus interface and the second bus interface) to access the internal bus or on-chip bus of the chip (such as the SOC chip); at the same time, it is connected to the physical coding sublayer of the core particle through a group of bus interfaces (i.e., the third bus interface) to connect to other core particles or peripherals through the physical coding sublayer of the core particle and the physical layer interface of the core particle. In other words, the core particle is connected to the system bus of the chip (such as the SOC chip) through the bus interface of the protocol controller, and is connected to other core particles or peripherals through the physical layer interface.
[0071] In an optional implementation, the protocol used by the system bus can be called a system bus protocol, and the system bus protocol can be a standard system bus protocol, such as the AXI (Advanced eXtensible Interface) protocol, or a customized system bus protocol. In an optional implementation, the third bus interface of the protocol controller and the physical coding sublayer can be connected using a physical layer bus, and the physical layer bus can use a standard bus protocol such as the PIPE (PHY Interface for PCI Express, PCIE physical layer interface) protocol, or a customized bus protocol. For example, taking the CXL protocol as an example, the physical layer adopts the interface standard of the PCIE (Peripheral Component Interconnect Express) bus, then based on the CXL protocol and the PCIE protocol, the physical layer bus connecting the third bus interface of the protocol controller to the physical coding sublayer can be implemented based on the PIPE protocol.
[0072] As an optional implementation, the protocol can have multiple layers such as a transport layer, a data link layer, and a physical layer. Among them, the physical layer of the protocol as the bottom layer can be used to define electrical characteristics, transmission media, and connection interfaces, ensure the correct connection of devices, and perform data transmission; the data link layer is responsible for managing the transmission of data, such as data grouping, error detection and correction, etc. The transport layer is responsible for controlling data transmission to ensure reliable data transmission. Based on this, Figure 4 exemplarily shows an example diagram of a protocol controller provided in an embodiment of the present disclosure. In combination with Figures 3 and 4, the protocol controller 200 in the core particle may include: a bus interface module 410, a transport layer module 420, a data link layer module 430, and a physical layer module 440.
[0073] The bus interface module 410 can implement connection management of the bus interface connecting the protocol controller 200 to the system bus. Since the protocol controller is provided with a first bus interface and a second bus interface, respectively connected to the system bus, the bus interface module can implement connection management of the first bus interface and the second bus interface, respectively. As an optional implementation, FIG5 exemplarily shows an example diagram of a bus interface module provided in an embodiment of the present disclosure. As shown in FIG5 , the bus interface module 410 can include a first interface management module 411 and a second interface management module 412.
[0074] Among them, the first interface management module 411 is used for connection management between the first bus interface 210 and the system bus, that is, when the first bus interface 210 implements the inter-chip interconnection protocol and the first part of the sub-protocol of the peripheral protocol, the connection management between the first bus interface 210 and the system bus can be implemented by the first interface management module 411.
[0075] It should be noted that the first bus interface 210 corresponds to the bus corresponding to the inter-chip interconnect protocol and the bus corresponding to the first sub-protocol of the peripheral protocol. Therefore, the connection management performed by the first interface management module 411 between the first bus interface 210 and the system bus can be considered as: the first interface management module 411 manages the connection between the bus corresponding to the inter-chip interconnect protocol and the bus corresponding to the first sub-protocol of the peripheral protocol and the system bus. In one implementation example, taking the CXL protocol as the peripheral protocol and the CXL.CACHE sub-protocol and CXL.MEM sub-protocol as the first sub-protocol of the peripheral protocol, the first interface management module 411 can manage the connection between the buses corresponding to the CXL.CACHE sub-protocol and the CXL.MEM sub-protocol and the system bus, as well as the connection between the bus corresponding to the inter-chip interconnect protocol and the system bus.
[0076] The second interface management module 412 is used for connection management between the second bus interface 220 and the system bus. That is, when the second bus interface 220 implements the second sub-protocol of the peripheral protocol, the connection management between the second bus interface 220 and the system bus can be implemented by the second interface management module 412. The second bus interface 220 corresponds to the bus corresponding to the second sub-protocol of the peripheral protocol. Therefore, the connection management between the second bus interface 220 and the system bus performed by the second interface management module 412 can be regarded as: the second interface management module 412 manages the connection between the bus corresponding to the second sub-protocol of the peripheral protocol and the system bus. In an implementation example, taking the peripheral protocol as the CXL protocol and the second sub-protocol of the peripheral protocol as the CXL.IO sub-protocol, the second interface management module 412 can implement connection management between the bus corresponding to the CXL.IO sub-protocol and the system bus.
[0077] In an optional implementation, the interface management module within the bus interface module can manage the connection and disconnection between the corresponding bus interface and the system bus by collecting statistics on the internal state of the protocol controller and, based on the statistics, the internal state of the protocol controller and the state of the corresponding bus interface on the system bus, thereby implementing connection management of the corresponding bus interface. In other words, the connection or disconnection between the first bus interface and the system bus, and the connection or disconnection between the second bus interface and the system bus, are managed by the corresponding interface management module based on the internal state of the protocol controller and the state of the corresponding bus interface on the system bus.
[0078] As an optional implementation, the internal state of the protocol controller for the protocol, for example, the processing state of the protocol by the internal modules of the protocol controller for the protocol, such as the processing state of the sub-modules related to the protocol in the transport layer module 420 and the data link layer module 430 of the protocol controller.
[0079] In an optional implementation, the first interface management module can manage the connection and disconnection between the first bus interface and the system bus based on the internal status of the protocol controller for the inter-chip interconnect protocol and the first partial sub-protocol of the peripheral protocol, as well as the status of the first bus interface.
[0080] In an implementation example, taking the connection management of the first bus interface as an example, the inter-chip interconnection protocol and the first part of the sub-protocol of the peripheral protocol are implemented based on the first bus interface. If the processing status of the internal modules of the protocol controller for the inter-chip interconnection protocol and the first part of the sub-protocol of the peripheral protocol are all idle (for example, the sub-modules related to the inter-chip interconnection protocol and the first part of the sub-protocol of the peripheral protocol in the transport layer module 420 and the data link layer module 430 of the protocol controller are all idle), and the inter-chip interconnection protocol and the first part of the sub-protocol of the peripheral protocol are also in the idle state on the first bus interface corresponding to the system bus, the connection between the first bus interface and the system bus can be disconnected; if any internal module of the protocol controller has a data processing operation for the inter-chip interconnection protocol or the first part of the sub-protocol of the peripheral protocol (for example, any sub-module related to the inter-chip interconnection protocol or the first part of the sub-protocol of the peripheral protocol in the transport layer module 420 and the data link layer module 430 of the protocol controller has a data processing operation), the connection between the first bus interface and the system bus is restored.
[0081] Taking the example of a peripheral protocol being the CXL protocol and the first sub-protocols of the peripheral protocol being the CXL.CACHE sub-protocol and the CXL.MEM sub-protocol, if statistics determine that the sub-modules related to the CXL.CACHE sub-protocol, the CXL.MEM sub-protocol, and the inter-chip interconnect protocol in the transport layer module 420 and the data link layer module 430 are all in an idle state, and the first bus interface corresponding to the CXL.CACHE sub-protocol, the CXL.MEM sub-protocol, and the inter-chip interconnect protocol on the system bus is also in an idle state, the first interface management module may disconnect the first bus interface from the system bus. If statistics determine that any sub-module related to the CXL.CACHE sub-protocol, the CXL.MEM sub-protocol, and the inter-chip interconnect protocol in the transport layer module 420 and the data link layer module 430 is performing a data processing operation, the connection between the first bus interface and the system bus may be restored.
[0082] In an optional implementation, the second interface management module may manage connection and disconnection between the second bus interface and the system bus based on an internal state of the protocol controller for the second partial sub-protocol of the peripheral protocol and a state of the second bus interface.
[0083] In an implementation example, taking the connection management of the second bus interface as an example, the second part of the sub-protocol of the peripheral protocol is implemented based on the second bus interface. If the internal modules of the protocol controller are all in an idle state for the processing status of the second part of the sub-protocol of the peripheral protocol (for example, the sub-modules related to the second part of the sub-protocol of the peripheral protocol in the transport layer module 420 and the data link layer module 430 of the protocol controller are all in an idle state), and the second part of the sub-protocol of the peripheral protocol is also in an idle state on the second bus interface corresponding to the system bus, the second interface management module can disconnect the connection between the second bus interface and the system bus; if any internal module of the protocol controller has a data processing operation for the second part of the sub-protocol of the peripheral protocol (for example, any sub-module related to the second part of the sub-protocol of the peripheral protocol in the transport layer module 420 and the data link layer module 430 of the protocol controller has a data processing operation), the second interface management module can restore the connection between the second bus interface and the system bus.
[0084] Taking the CXL.IO subprotocol as an example, if the interface management module statistically determines that all submodules related to the CXL.IO subprotocol in transport layer module 420 and data link layer module 430 are in an idle state, and the second bus interface corresponding to the CXL.IO subprotocol on the system bus is also in an idle state, the connection between the second bus interface and the system bus may be disconnected. If any submodule related to the CXL.IO subprotocol in transport layer module 420 or data link layer module 430 is performing a data processing operation, the second interface management module may restore the connection between the second bus interface and the system bus.
[0085] It should be noted that the interface management module can realize the connection management between the first bus interface and the system bus, and the connection management between the second bus interface and the system bus respectively through hardware monitoring and statistics of the internal status of the protocol controller for the protocol and the status of the corresponding bus interface on the system bus; the embodiments of the present disclosure do not limit the hardware implementation method of the interface management module monitoring and statistics of the internal status of the protocol controller for the protocol and the status of the corresponding bus interface on the system bus.
[0086] Returning to FIG4 , the transport layer module 420 is responsible for data transmission control of the protocol controller. Since the protocol controller needs to support the inter-chip interconnection protocol and the peripheral protocol, and is provided with a first bus interface for implementing the inter-chip interconnection protocol and the first sub-protocol of the peripheral protocol, and a second bus interface for implementing the second sub-protocol of the peripheral protocol, the transport layer module 420 can implement data transmission control for the inter-chip interconnection protocol and the first sub-protocol of the peripheral protocol, as well as data transmission control for the second sub-protocol of the peripheral protocol. In other words, the disclosed embodiment can implement the transport layer design for the inter-chip interconnection protocol and the first sub-protocol of the peripheral protocol (e.g., the CXL.CACHE sub-protocol and the CXL.MEM sub-protocol), as well as the transport layer design for the second sub-protocol of the peripheral protocol (e.g., the CXL.IO sub-protocol) in the transport layer module 420.
[0087] In an alternative implementation, the transport layer module 420 can be connected to the system bus via a bus interface between the protocol controller and the system bus. That is, the transport layer module 420 connects the system bus and the data link layer module 430. In an alternative implementation in which the transport layer module is connected to the system bus, the transport layer interface of the transport layer module 420 is connected to the system bus via a bus interface between the protocol controller and the system bus. For example, the transport layer interface of the transport layer module 420 is connected to the system bus via a first bus interface and a second bus interface, respectively.
[0088] As an optional implementation, FIG6A exemplarily illustrates an example diagram of a transport layer module provided in an embodiment of the present disclosure. As shown in FIG6A , the transport layer module 420 is provided with two transport layer submodules, namely a first transport layer submodule 601 and a second transport layer submodule 602. The first transport layer submodule 601 implements data transmission control for the inter-chip interconnect protocol and the first sub-protocol of the peripheral protocol; the second transport layer submodule 602 implements data transmission control for the second sub-protocol of the peripheral protocol. For example, the first transport layer submodule can implement data transmission control for the inter-chip interconnect protocol, the CXL.CACHE subprotocol, and the CXL.MEM subprotocol, while the second transport layer submodule can implement data transmission control for the CXL.IO subprotocol.
[0089] In an optional implementation, in order to reduce the hardware resource usage of the transport layer module, the transport layer module may have multiple sub-modules shared by two transport layer sub-modules (a first transport layer sub-module and a second transport layer sub-module). The multiple sub-modules may be partial sub-modules within the transport layer module, that is, the two transport layer sub-modules (a first transport layer sub-module and a second transport layer sub-module) set in the transport layer module 420 may share partial modules within the transport layer.
[0090] In an optional implementation, Figure 6B exemplarily shows another example diagram of the transport layer module provided in an embodiment of the present disclosure. As shown in Figure 6B, the multiple sub-modules shared by the first transport layer sub-module and the second transport layer sub-module in the transport layer module 420 can be divided into at least: a first transport layer sub-module set and a second transport layer sub-module set.
[0091] The first submodule set of the transport layer is used to process requests from peripherals or other core particles to be sent to the system bus, and responses from the system bus to be sent to peripherals or other core particles;
[0092] The second sub-module set of the transport layer is used to process requests from the system bus that need to be sent to peripheral devices or other core particles, and responses from peripheral devices or other core particles that need to be sent to the system bus.
[0093] That is to say, the first sub-module set of the transport layer has multiple sub-modules for processing requests from peripherals or other core particles that need to be sent to the system bus, and responses from the system bus that need to be sent to peripherals or other core particles, and can be shared by the first transport layer sub-module and the second transport layer sub-module; the second sub-module set of the transport layer has multiple sub-modules for processing requests from the system bus that need to be sent to peripherals or other core particles, and responses from peripherals or other core particles that need to be sent to the system bus, and can be shared by the first transport layer sub-module and the second transport layer sub-module.
[0094] In a further optional implementation, in combination with what is shown in FIG6B , the sub-modules within the transport layer module 420 may include: a sending request queue 421, a receiving response queue 422, a receiving request queue 423, a sending response queue 424, a sending data cache 425, a receiving data cache 426, a queue scheduling module 427, and multiple protocol parsing modules 428.
[0095] Among them, the sending request queue 421 and the receiving response queue 422 can be regarded as optional forms of the first sub-module set of the transport layer, and the receiving request queue 423 and the sending response queue 424 can be regarded as optional forms of the second sub-module set of the transport layer.
[0096] Furthermore, in addition to the transport layer first sub-module set (for example, the sending request queue 421 and the receiving response queue 422) and the transport layer second sub-module set (for example, the receiving request queue 423 and the sending response queue 424) in the transport layer module 420, the multiple sub-modules shared by the first transport layer sub-module and the second transport layer sub-module may also include a sending data cache 425, a receiving data cache 426, and a queue scheduling module 427.
[0097] As an optional implementation, in this implementation example, the sending request queue 421, the receiving response queue 422, the receiving request queue 423, the sending response queue 424, the sending data cache 425, the receiving data cache 426, and the queue scheduling module 427 are multiple sub-modules shared by the first transport layer sub-module and the second transport layer sub-module within the transport layer module 420; thus, the first transport layer sub-module and the second transport layer sub-module can share the above multiple sub-modules to implement the hardware resource sharing of the inter-chip interconnection protocol, the first part sub-protocol, and the second part sub-protocol of the peripheral protocol at the transport layer, thereby reducing the occupancy of hardware resources.
[0098] The multiple protocol parsing modules 428 correspond to the number of protocols that require independent configuration of protocol parsing modules, and one protocol parsing module is used to parse requests and responses of the corresponding protocol. In one implementation example, the multiple protocol parsing modules may include a protocol parsing module corresponding to the inter-chip interconnect protocol, a protocol parsing module corresponding to the first sub-protocol of the peripheral protocol, and a protocol parsing module corresponding to the second sub-protocol of the peripheral protocol; wherein the protocol parsing module corresponding to the inter-chip interconnect protocol is used to parse requests and responses of the inter-chip interconnect protocol, the protocol parsing module corresponding to the first sub-protocol of the peripheral protocol is used to parse requests and responses of the first sub-protocol, and the protocol parsing module corresponding to the second sub-protocol of the peripheral protocol is used to parse requests and responses of the second sub-protocol.
[0099] For example, if the peripheral protocol is the CXL protocol, the protocol parsing modules corresponding to the first sub-protocol of the peripheral protocol may include the protocol parsing modules for the CXL.CACHE sub-protocol and the CXL.MEM sub-protocol. The protocol parsing modules corresponding to the second sub-protocol of the peripheral protocol may include the protocol parsing module for the CXL.IO sub-protocol. In other words, the CXL.IO sub-protocol, CXL.CACHE sub-protocol, CXL.MEM sub-protocol, and inter-chip interconnect protocol each require their own independent protocol parsing modules to parse requests and responses.
[0100] In an implementation example, if the protocol controller is used as an inter-chip interconnection protocol controller, the requests transmitted by the protocol controller are all inter-chip interconnection requests, and the responses transmitted by the protocol controller are all inter-chip interconnection responses. At this time, the protocol parsing module corresponding to the inter-chip interconnection protocol can be used to parse the requests and responses.
[0101] If the protocol controller is used as a CXL protocol controller, the request transmitted by the protocol controller may be a request using the CXL.IO subprotocol, a request using the CXL.CACHE subprotocol, or a request using the CXL.MEM subprotocol, and the response transmitted by the protocol controller may be a response using the CXL.IO subprotocol, a response using the CXL.CACHE subprotocol, or a response using the CXL.MEM subprotocol. In this case, it is necessary to select a protocol parsing module to parse the request and response based on the specific situation. For example, data read and write requests and responses are mainly implemented through the CXL.CACHE subprotocol and the CXL.MEM subprotocol (i.e., the memory and cache subprotocols of the CXL protocol). When data read and write requests and responses involving the CXL protocol are concerned, they can be parsed by the protocol parsing module corresponding to the CXL.CACHE subprotocol and the protocol parsing module corresponding to the CXL.MEM subprotocol. Among them, cache-related data read and write requests and responses can be parsed by the protocol parsing module corresponding to the CXL.CACHE subprotocol; memory-related data read and write requests and responses can be parsed by the protocol parsing module corresponding to the CXL.MEM subprotocol. For example, the input and output configuration management of the CXL protocol is mainly implemented through the CXL.IO sub-protocol. Therefore, when it comes to requests and responses related to the input and output configuration management of the CXL protocol, they can be parsed through the protocol parsing module corresponding to the CXL.IO sub-protocol.
[0102] As an optional implementation, the inter-chip interconnection protocol and the data transmission control of the first part of the sub-protocol of the peripheral protocol are implemented based on the first transport layer sub-module, and the protocol parsing module corresponding to the inter-chip interconnection protocol and the protocol parsing module corresponding to the first part of the sub-protocol of the peripheral protocol can be set in the first transport layer sub-module; the data transmission control of the second part of the sub-protocol of the peripheral protocol is implemented based on the second transport layer sub-module, and the protocol parsing module corresponding to the second part of the sub-protocol of the peripheral protocol can be set in the second transport layer sub-module.
[0103] In an optional implementation, the sending request queue, receiving response queue, receiving request queue, sending response queue, sending data cache, receiving data cache, and queue scheduling module in the transport layer module can be set as shared resources, shared by the first transport layer sub-module and the second transport layer sub-module. The embodiment of the present disclosure does not limit the setting location of the above-mentioned shared sub-modules, which can be set in any one of the first transport layer sub-module and the second transport layer sub-module, or in a shared resource area set in the transport layer module.
[0104] The following introduces the common sub-modules within the transport layer module.
[0105] As shown in FIG6B , the send request queue 421 is used to store at least the pending requests of the chiplets. The pending requests of the chiplets can be requests that the chiplets want to send to the system bus; the pending requests can come from peripherals or other chiplets connected to the chiplets and need to be sent to the system bus; the pending requests can be request information for requesting data reading or writing, requesting interrupts, etc. In one example, when the chiplets use a peripheral protocol (such as the CXL protocol), the pending requests can come from peripherals connected to the chiplets (such as the CPU chiplets), and the chiplets need to send the pending requests to the system bus; in another example, when the chiplets use an inter-chip interconnection protocol, the pending requests can come from other chiplets (such as other CPU chiplets) connected to the chiplets (such as the CPU chiplets), and the chiplets need to send the pending requests to the system bus.
[0106] In an optional implementation, as shown in Figures 3 and 4, the request to be sent from a peripheral device or other core particle can be passed to the protocol controller through the core particle's physical layer interface and physical coding sublayer, and then passed to the transport layer module through the physical layer module and data link layer module within the protocol controller.
[0107] It can be seen that the embodiments of the present disclosure can save the pending requests from peripherals and other core particles in the sending request queue, that is, the pending requests corresponding to the peripheral protocol (such as the CXL protocol) and the pending requests corresponding to the inter-chip interconnection protocol can both be saved in the sending request queue, that is, the peripheral protocol (such as the CXL protocol) and the inter-chip interconnection protocol can share the sending request queue of the transport layer, thereby reducing the hardware resource usage involved in saving the pending requests corresponding to the peripheral protocol (such as the CXL protocol) and the inter-chip interconnection protocol at the transport layer.
[0108] As an optional implementation, when the data link layer module 430 parses a to-be-sent request from another core or peripheral device, it may store the to-be-sent request into the send request queue 421 , so as to store the to-be-sent request in the send request queue 421 .
[0109] The receiving response queue 422 is at least used to store the to-be-sent responses marked corresponding to the sent requests in the sending request queue, wherein the sent requests to be sent refer to the requests that have been sent in the sending request queue (the requests need to be sent to the system bus), and the sent requests to be sent are dequeued and cleared from the sending request queue. As an optional implementation, when the data sending conditions for sending data to the system bus are met, the requests to be sent in the sending request queue 421 can be sent to the system bus; for example, when the bus interface used by the protocol corresponding to the request to be sent is in a state connected to the system bus and the system bus has the ability to receive requests (for example, the system bus has space for receiving requests), it can be regarded as meeting the data sending conditions for sending data to the system bus, so that the transport layer module can dequeue and clear the requests to be sent in the sending request queue 421, and send the dequeued requests to be sent to the bus system. At the same time, in the receiving response queue 422, the requests to be sent (i.e., the sent requests to be sent) sent to the system bus are marked with responses to be received.
[0110] In one implementation example, if the pending request is a pending request corresponding to a peripheral protocol (such as the CXL protocol), then when the data transmission conditions for sending data to the system bus are met, the pending request corresponding to the peripheral protocol (such as the CXL protocol) can be dequeued from the transmit request queue and sent to the system bus. At the same time, the receive response queue can store the pending response corresponding to the pending request of the peripheral protocol (such as the CXL protocol). If the pending request is a pending request corresponding to an inter-chip interconnect protocol, then when the data transmission conditions for sending data to the system bus are met, the pending request corresponding to the inter-chip interconnect protocol can be dequeued from the transmit request queue and sent to the system bus. At the same time, the receive response queue can store the pending response corresponding to the pending request of the inter-chip interconnect protocol. In other words, the pending response corresponding to the pending request of the peripheral protocol (such as the CXL protocol) sent to the system bus and the pending response corresponding to the pending request of the inter-chip interconnect protocol sent to the system bus can both be stored in the receive response queue, so that the peripheral protocol (such as the CXL protocol) and the inter-chip interconnect protocol can share the receive response queue of the transport layer, reducing hardware resource usage.
[0111] It should be noted that, when the pending request corresponding to the inter-chip interconnection protocol is sent to the system bus, it can be transmitted to the first bus interface connected to the system bus through the transport layer interface of the transport layer module, so as to be transmitted to the system bus through the first bus interface; when the pending request corresponding to the first part of the sub-protocol of the peripheral protocol (such as the pending request corresponding to the CXL.CACHE sub-protocol and the CXL.MEM sub-protocol) is sent to the system bus, it can be transmitted to the first bus interface connected to the system bus through the transport layer interface, so as to be transmitted to the system bus through the first bus interface; when the pending request corresponding to the second part of the sub-protocol of the peripheral protocol (such as the pending request corresponding to the CXL.IO sub-protocol) is sent to the system bus, it can be transmitted to the second bus interface connected to the system bus through the transport layer interface, so as to be transmitted to the system bus through the second bus interface.
[0112] In a further optional implementation, if the transport layer module receives a response returned by the system bus (for ease of explanation, the response returned by the system bus can be referred to as the first response), the transport layer module can compare the request targeted by the first response of the system bus with the request to be sent targeted by the response to be received stored in the receive response queue; if the comparison results are consistent, the first response of the system bus can be saved to the receive response queue; if the comparison results are inconsistent, the first response of the system bus is discarded and an error is reported. It should be noted that the consistency of the comparison results indicates that the first response is the response of the system bus to the request to be sent from the peripheral device or other core particle, so the first response and the data corresponding to the first response need to be fed back to the peripheral device or other core particle. At this time, the transport layer module can save the first response to the receive response queue, and when the data sending conditions for sending data to the data link layer are met, the first response and the data corresponding to the first response are sent to the data link layer module, and then fed back to the peripheral device or other core particle.
[0113] It can be seen that in a further optional implementation, the receive response queue can further save the first response of the system bus, and the request targeted by the saved first response of the system bus is consistent with the request to be sent targeted by the response to be received saved in the receive response queue.
[0114] In one implementation example, the response to be received may carry an identifier of the corresponding request to be sent, and the first response of the system bus may also carry an identifier of the request to which it is directed. Thus, the embodiment of the present disclosure can compare the identifier carried by the response to be received with the identifier carried by the first response of the system bus to see whether they are consistent, so as to compare whether the request to which the first response of the system bus is directed is consistent with the request to be sent to which the response to be received is directed. It should be noted that the embodiment of the present disclosure can assign an independent identifier (such as an identification number) to each request to distinguish different requests.
[0115] It should be further explained that the request to which the first response of the system bus is directed may be a pending request corresponding to a peripheral protocol (such as the CXL protocol) or a pending request corresponding to an inter-chip interconnect protocol. The responses corresponding to pending requests of different protocols can be passed to the transport layer module through the bus interface corresponding to the protocol. For example, if the first response of the system bus is directed to a request of the inter-chip interconnect protocol, the first response of the system bus is passed to the transport layer module by the system bus, the first bus interface of the protocol controller, and the transport layer interface; if the first response of the system bus is directed to a request of the first part of the sub-protocol of the peripheral protocol (such as the CXL.CACHE sub-protocol and the CXL.MEM sub-protocol), the first response of the system bus is passed to the transport layer module by the system bus, the first bus interface of the protocol controller, and the transport layer interface; if the first response of the system bus is directed to a request of the second part of the sub-protocol of the peripheral protocol (such as the CXL.IO sub-protocol), the first response of the system bus is passed to the transport layer module by the system bus, the second bus interface of the protocol controller, and the transport layer interface.
[0116] In a further optional implementation, when the data sending conditions for sending data to the data link layer are met, the first response is dequeued and cleared from the receive response queue, and the first response and the data corresponding to the first response are sent to the data link layer module, and then passed to other core particles or peripherals. In one example, when the data sending conditions for sending data to the data link layer are met, the first response in the receive response queue and the data corresponding to the first response (the data corresponding to the first response can be stored in the receive data cache) can be passed to the physical coding sublayer of the core particle through the data link layer module and the physical layer module of the protocol controller, and then passed to the physical layer interface of the core particle, and passed to other core particles or peripherals by the physical layer interface of the core particle.
[0117] As an optional implementation, the data sending conditions for sending data to the data link layer may be, for example, that the data link layer module and the physical layer module of the protocol controller are in a connected state, and the bandwidth between the data link layer module and the physical layer module supports the transmission of the required data (for example, the bandwidth supports the above-mentioned first response, and the transmission of the data corresponding to the first response).
[0118] To facilitate understanding of the process by which the transport layer module of the protocol controller sends a request to the system bus and receives a response from the system bus, FIG6C exemplarily illustrates, as an optional implementation, an example diagram of the interaction process between the protocol controller and the system bus provided by an embodiment of the present disclosure. The optional implementation of the interaction process described below can refer to the description of the corresponding section above. Referring to FIG6C , the interaction process may include the following steps.
[0119] In step S610, the data link layer module saves the request to be sent to a sending request queue.
[0120] In an optional implementation, the data link layer module parses the to-be-sent request from the peripheral device or other core particles, and may save the to-be-sent request to a send request queue of the transport layer module.
[0121] In step S611 , when the data transmission condition for sending data to the system bus is met, the transport layer module dequeues and clears the request to be sent from the sending request queue, and sends the request to be sent and the data corresponding to the request to be sent to the system bus.
[0122] In step S612, the transport layer module saves in the receiving response queue the marked responses to be received corresponding to the requests to be sent in the sending request queue.
[0123] When the data sending condition for sending data to the system bus is met, the transport layer module may synchronously execute step S611 and step S612.
[0124] In step S613 , the system bus transmits the first response to the transport layer module.
[0125] Based on the protocol corresponding to the first response of the system bus, the first response of the system bus can be transmitted to the transport layer interface through the bus interface corresponding to the protocol of the protocol controller, and thus enter the transport layer module.
[0126] In step S614 , the transport layer module compares the request to which the first response of the system bus corresponds with the request to which the response to be received corresponds.
[0127] In step S615 , if the comparison results are inconsistent, the transport layer module discards the first response of the system bus and reports an error.
[0128] In an optional implementation, the transport layer module may report error information through interrupts and status registers. Optionally, part of the error information may be synchronously transmitted to peripherals or other cores through the data link layer.
[0129] In step S616 , if the comparison results are consistent, the transport layer module saves the first response of the system bus to the receive response queue.
[0130] In step S617, when the data sending condition for sending data to the data link layer is met, the transport layer module dequeues and clears the first response from the receive response queue, and sends the first response and data corresponding to the first response to the data link layer module.
[0131] Among them, step S617 is executed after step S616.
[0132] The requests and responses described above involve parsing in the transport layer module. Based on the protocol used in the requests and responses, the transport layer module can use the protocol parsing module corresponding to the protocol for parsing. The specific optional implementation methods can be described in the previous description and will not be expanded here.
[0133] Returning to FIG. 6B , the receive request queue 423 is used to store at least the receive requests of the core. A receive request of a core can be a request sent by the system bus and received by the core; a receive request can come from the system bus and need to be sent to a peripheral device or other core device connected to the core; a receive request can be a request message for requesting data read or write, requesting an interrupt, etc. In other words, all receive requests received by the core from the system bus and need to be sent to a peripheral device or other core device can be stored in the receive request queue. That is, the peripheral protocol (such as the CXL protocol) and the inter-chip interconnect protocol can share the receive request queue of the transport layer, thereby reducing hardware resource usage.
[0134] In one implementation example, if the receive request sent by the system bus is a receive request corresponding to the inter-chip interconnect protocol, or a receive request corresponding to the first sub-protocol of the peripheral protocol (such as the receive request corresponding to the CXL.CACHE sub-protocol and the CXL.MEM sub-protocol), then the receive request sent by the system bus can be passed to the transport layer module via the first bus interface and the transport layer interface and saved in the receive request queue. If the receive request sent by the system bus is a receive request corresponding to the second sub-protocol of the peripheral protocol (such as the receive request corresponding to the CXL.IO sub-protocol), then the receive request of the system bus can be passed to the transport layer module via the second bus interface and the transport layer interface and saved in the receive request queue.
[0135] The sending response queue 424 is at least used to store the waiting-to-receive responses corresponding to the receiving requests sent by the core particle, wherein the receiving requests sent by the core particle are dequeued and cleared from the receiving request queue. As an optional implementation, when the data sending conditions for sending data to the data link layer are met, the receiving requests stored in the receiving request queue 423 are dequeued and cleared, and the receiving request queue and the data corresponding to the receiving request can be sent to the data link layer module, and reach the physical coding sublayer of the core particle through the data link layer module and the physical layer module, and then be passed to the peripheral device or other core particles through the physical layer interface of the core particle; at the same time, the receiving requests sent in the receiving request queue can be marked as waiting-to-receive responses, and the waiting-to-receive responses corresponding to the sent receiving requests can be saved in the sending response queue.
[0136] In one implementation example, if the receive request is a receive request corresponding to a peripheral protocol (such as the CXL protocol), then when the data transmission conditions for sending data to the data link layer are met, the receive request corresponding to the peripheral protocol (such as the CXL protocol) can be dequeued and cleared from the receive request queue, and the receive request and the data corresponding to the receive request (the data corresponding to the receive request can be stored in the receive data cache) can be sent to the data link layer module; at the same time, the send response queue can store the pending response marked corresponding to the received request corresponding to the sent peripheral protocol (such as the CXL protocol). If the receive request is a receive request corresponding to an inter-chip interconnect protocol, then when the data transmission conditions for sending data to the data link layer are met, the receive request corresponding to the inter-chip interconnect protocol can be dequeued and cleared from the receive request queue, and the receive request and the data corresponding to the receive request can be sent to the data link layer module, and at the same time, the send response queue can store the pending response marked corresponding to the received request corresponding to the sent inter-chip interconnect protocol. That is to say, the pending responses marked corresponding to the receive requests corresponding to the sent peripheral protocols (such as the CXL protocol) and the pending responses marked corresponding to the receive requests corresponding to the sent inter-chip interconnection protocols can both be saved in the send response queue, so that the send response queue of the transport layer can be shared, reducing hardware resource usage.
[0137] In an optional implementation, since the receive request and the data corresponding to the receive request are passed to the physical layer (physical coding sublayer, physical layer interface) of the core particle through the data link layer module and the physical layer module, the data sending conditions corresponding to the receive request that meet the data sending conditions for sending data to the data link layer can be regarded as that the data link layer module and the physical layer module are in a connected state, and the bandwidth of the data link layer module and the physical layer module supports the transmission of the receive request and the data corresponding to the receive request.
[0138] In a further optional implementation, the peripheral or other core particle can feedback a response to the core particle (for the sake of convenience, the response feedback by the peripheral or other core particle can be referred to as the second response), and the second response can be parsed by the data link layer module of the protocol controller, and when the data link layer module parses the second response feedback by the peripheral or other core particle, the second response is passed to the transport layer module. Thus, the transport layer module can compare the request for the second response with the receive request for the response to be received stored in the send response queue; if the comparison result is consistent, the second response can be saved to the send response queue; if the comparison result is inconsistent, the second response is discarded and an error is reported. It should be noted that the consistency of the comparison result indicates that the second response is the response made by the peripheral or other core particle to the receive request from the system bus, so the second response and the data corresponding to the second response need to be fed back to the system bus. At this time, the transport layer module can save the second response to the send response queue, and when the data sending conditions for sending data to the system bus are met, the second response and the data corresponding to the second response are fed back to the system bus.
[0139] It can be seen that in a further optional implementation, the sending response queue can be further used to save the second response of the peripheral device or other core particles, and the request targeted by the saved second response is consistent with the receiving request targeted by the waiting response saved in the sending response queue.
[0140] In a further optional implementation, when the data transmission condition for sending data to the system bus is met, the second response can be dequeued and cleared from the transmission response queue, so that the second response and the data corresponding to the second response can be sent to the system bus. In an implementation example, if the protocol corresponding to the second response is an inter-chip interconnect protocol, the data corresponding to the second response and the second response can be transmitted to the system bus via the transport layer interface and the first bus interface; if the protocol corresponding to the second response is a first part sub-protocol of the peripheral protocol (such as the CXL.CACHE sub-protocol and the CXL.MEM sub-protocol), the data corresponding to the second response and the second response can be transmitted to the system bus via the transport layer interface and the first bus interface; if the protocol corresponding to the second response is a second part sub-protocol of the peripheral protocol (such as the CXL.IO sub-protocol), the data corresponding to the second response and the second response can be transmitted to the system bus via the transport layer interface and the second bus interface.
[0141] In an optional implementation, based on the second response and the data corresponding to the second response need to be sent to the system bus through the transport layer interface, the data sending conditions corresponding to the second response that meet the data sending conditions to the system bus can be, for example, that the bus interface corresponding to the protocol of the second response is in a connected state with the system bus, and the system bus has space to receive the response and data.
[0142] To facilitate understanding of the process of the system bus sending a request to the transport layer module of the protocol controller, and the transport layer module feeding back a response to the system bus, FIG6D exemplarily illustrates, as an optional implementation, another example diagram of the interaction process between the protocol controller and the system bus provided by an embodiment of the present disclosure. The optional implementation of the interaction process described below can refer to the description of the corresponding section above. Referring to FIG6D , the interaction process may include the following steps.
[0143] In step S620 , the transport layer module saves the receive request from the system bus into the receive request queue.
[0144] Based on the protocol corresponding to the receive request, the receive request can be transferred to the transport layer interface through the bus interface corresponding to the protocol of the protocol controller, and thus enter the transport layer module.
[0145] In step S621, when the data sending condition for sending data to the data link layer is met, the receive request is dequeued from the receive request queue and cleared, and the receive request and the data corresponding to the receive request are sent to the data link layer module.
[0146] In step S622, the transport layer module saves the to-be-received responses marked corresponding to the sent receive requests in a send response queue.
[0147] When the data sending condition for sending data to the data link layer is met, the transport layer module may synchronously execute step S621 and step S622.
[0148] In step S623, the data link layer module transmits a second response to the transport layer module.
[0149] The second response comes from the peripheral device or other core particle, is a response sent by the peripheral device or other core particle, and is transferred to the transport layer module via the data link layer module of the protocol controller of the core particle.
[0150] In step S624, the transport layer module compares the request to which the second response is addressed with the received request to which the to-be-received response stored in the sending response queue is addressed.
[0151] In an optional implementation, the identifier carried in the second response may be compared with the identifier carried in the to-be-received response stored in the sending response queue to see whether they are consistent.
[0152] In step S625, if the comparison results are inconsistent, the transport layer module discards the second response and reports an error.
[0153] In an optional implementation, the transport layer module may report error information through interrupts and status registers. Optionally, part of the error information may be synchronously transmitted to peripherals or other cores through the data link layer.
[0154] In step S626, if the comparison results are consistent, the transport layer module saves the second response to the sending response queue.
[0155] In step S627 , when the data sending condition for sending data to the system bus is met, the transport layer module dequeues and clears the second response from the sending response queue, and sends the second response and data corresponding to the second response to the system bus.
[0156] Based on the protocol corresponding to the second response, the second response and the data corresponding to the second response can be transmitted to the system bus through the transport layer interface and the bus interface corresponding to the protocol of the protocol controller.
[0157] Returning to FIG6B , the transmit data buffer 425 is used to at least buffer the data corresponding to the pending requests in the transmit request queue 421, and to buffer the data corresponding to the second responses in the transmit response queue. That is, pending requests from peripherals or other cores are stored in the transmit request queue, and the data corresponding to the pending requests are stored in the transmit data buffer. Thus, when the data corresponding to the pending requests needs to be sent to the system bus, they can be retrieved from the transmit data buffer and sent. Simultaneously, the second responses (from the system bus) that need to be fed back to the peripherals or other cores are stored in the transmit response queue, and the data corresponding to the second responses are stored in the transmit data buffer. Thus, when the data corresponding to the second responses needs to be fed back to the peripherals or other cores, they can be retrieved from the transmit data buffer and sent.
[0158] The disclosed embodiment can store data corresponding to pending requests from peripheral devices or other core particles, and data corresponding to second responses that need to be fed back to the peripheral devices or other core particles, in a sending data cache. Therefore, data corresponding to pending requests from peripheral devices or other core particles, and data corresponding to second responses that need to be fed back to the peripheral devices or other core particles can share the sending data cache, and are not limited to protocols (regardless of peripheral protocols or inter-chip interconnection protocols), which can reduce the hardware resource usage of the sending data cache.
[0159] The receive data buffer 426 is used to cache at least the data corresponding to the receive requests in the receive request queue and the data corresponding to the first responses in the receive response queue. That is, receive requests from the system bus are stored in the receive request queue, and the data corresponding to the receive requests are stored in the receive data buffer. Thus, when the data corresponding to the receive requests needs to be sent to a peripheral device or other core, it can be retrieved from the receive data buffer and sent. At the same time, the first response (from a peripheral device or other core) that needs to be fed back to the system bus is stored in the receive response queue, and the data corresponding to the first response is stored in the receive data buffer. Thus, when the data corresponding to the first response needs to be fed back to the system bus, it can be retrieved from the receive data buffer and sent.
[0160] The disclosed embodiment can store data corresponding to a receive request from a system bus and data corresponding to a first response that needs to be fed back to the system bus in a receive data cache. Therefore, the data corresponding to a receive request from the system bus and the data corresponding to the first response that needs to be fed back to the system bus can share the receive data cache, and there is no restriction on the protocol (either the peripheral protocol or the inter-chip interconnection protocol), which can reduce the hardware resource usage of the receive data cache.
[0161] The queue scheduling module 427 is at least responsible for the enqueue processing and dequeue processing of the pending requests in the sending request queue, the first response in the receiving response queue, the received request in the receiving request queue, and the second response in the sending response queue for arbitration scheduling, wherein the enqueue processing refers to storing the request in the queue, and the dequeue processing refers to extracting the request from the queue. The arbitration scheduling by the queue scheduling module 427 can be implemented based on at least one of the mechanisms such as the priority of the request and response, the order requirements of the protocol, and the letter of credit. The embodiment of the present disclosure does not set any restrictions on the arbitration scheduling mechanism, and the arbitration scheduling mechanism can be set according to actual conditions. In an example, the embodiment of the present disclosure can set the arbitration scheduling mechanism of the queue scheduling module 427 to be configurable, such as the arbitration scheduling mechanism of the queue scheduling module is configured and defined through a configuration register, so that the priority of the request and response defined by the arbitration scheduling can be changed through the configuration register, and then the arbitration scheduling can be configured based on information such as the address, priority, and request type of the request. The embodiment of the present disclosure realizes the configurability of the arbitration scheduling mechanism by configuring registers, and can support the arbitration scheduling of requests and responses of peripheral protocols (such as CXL protocol) and inter-chip interconnection protocols through a shared queue scheduling module, thereby reducing the occupation of hardware resources.
[0162] It should be noted that the form of the response involved in the embodiments of the present disclosure can correspond to the form of the request. For example, if the request to be sent is a read request, the corresponding first response can be a read response; if the request to be sent is a write request, the corresponding first response can be a write response; the same applies to the received request and the second response. It should be noted that the data corresponding to the read response can be understood as the data to be read, and the read response can carry the status information related to the read response; the data corresponding to the write response can be understood as the data to be written, and the write response can carry the processing status of the write request involved in the write response.
[0163] The disclosed embodiments can implement a sending request queue, a receiving response queue, a receiving request queue, a sending response queue, a sending data cache, a receiving data cache, and a queue scheduling module in the transport layer module of the protocol controller, and the two transport layer sub-modules (the first transport layer sub-module and the second transport layer sub-module) provided in the transport layer module can share the above sub-modules to realize the processing of requests and responses regarding peripheral protocols (such as the CXL protocol) between the system bus and peripherals, and the processing of requests and responses regarding inter-chip interconnection protocols between the system bus and other core particles, thereby reducing the hardware resource occupancy of the transport layer module of the protocol controller on the basis of the peripheral protocols and the inter-chip interconnection protocols sharing the above modules.
[0164] As an optional implementation, for the data link layer module provided in the embodiment of the present disclosure, Figure 7 exemplarily shows an example diagram of the data link layer module provided in the embodiment of the present disclosure. Combined with Figures 4 and 7, from the perspective of the data sending direction of the data link layer module 430, the data link layer module 430 may include: a first part sub-protocol conversion module 711 in the sending direction, a first part sub-protocol sending data packetization module 712, an inter-chip interconnection sending data packetization module 713, a first sending retransmission cache module 714, a second part sub-protocol conversion module 715 in the sending direction, a second part sub-protocol sending data packetization module 716, and a second sending retransmission cache module 717.
[0165] Among them, the data sending direction of the data link layer module 430 can be the direction in which the data link layer module 430 receives data sent by the transport layer module 420 and sends data to the physical layer module 440; among them, the data sent by the transport layer module 420 to the data link layer module 430 comes from the system bus, and the data sent by the data link layer module 430 to the physical layer module 440 needs to be passed to peripherals or other core particles.
[0166] From the perspective of the receiving data direction of the data link layer 430, the data link layer module 430 may include: a first part sub-protocol receiving data unpacking module 721, a receiving direction first part sub-protocol conversion module 722, an inter-chip interconnection receiving data unpacking module 723, a second part sub-protocol receiving data unpacking module 724, and a receiving direction second part sub-protocol conversion module 725.
[0167] Among them, the data receiving direction of the data link layer 430 can be the direction in which the data link layer 430 receives data sent by the physical layer module 440 and transmits the data to the transport layer module 420; the data sent by the physical layer module 440 to the data link layer 430 comes from peripherals or other core particles, and the data transmitted by the data link layer 430 to the transport layer module 420 needs to be transmitted to the system bus.
[0168] It should be noted that the protocol conversion module involved in the above-mentioned data link layer module in the direction of sending data and the direction of receiving data is mainly responsible for the conversion between the system bus protocol (such as the AXI protocol) and the peripheral protocol (such as the CXL protocol), involving the conversion of the system bus protocol to the peripheral protocol in the direction of sending data by the data link layer module, and the conversion of the peripheral protocol to the system bus protocol in the direction of receiving data by the data link layer module. It should be noted that inter-chip interconnection does not require protocol conversion, so the data link layer module does not need to set up a protocol conversion module for inter-chip interconnection.
[0169] In an optional implementation, the first part of the sub-protocols of the peripheral protocol (such as the CXL.CACHE sub-protocol and the CXL.MEM sub-protocol) and the second part of the sub-protocol (such as the CXL.IO sub-protocol) need to implement protocol conversion modules in the sending data direction and the receiving data direction of the data link layer respectively; that is, the first part of the sub-protocol needs to implement the sending direction first part sub-protocol conversion module 711 in the sending data direction, the second part of the sub-protocol needs to implement the sending direction second part sub-protocol conversion module 715 in the sending data direction, the first part of the sub-protocol needs to implement the receiving direction first part sub-protocol conversion module 722 in the receiving data direction, and the second part of the sub-protocol needs to implement the receiving direction second part sub-protocol conversion module 725 in the receiving data direction.
[0170] In an optional implementation, the first part sub-protocol conversion module 711 in the sending direction is used to convert the request or response, and / or data of the data link layer module in the sending data direction (the request or response, and / or data transmitted by the corresponding transport layer module) from the system bus protocol (such as the AXI protocol) to the first part sub-protocol of the peripheral protocol (such as the CXL.CACHE sub-protocol and the CXL.MEM sub-protocol).
[0171] The second part sub-protocol conversion module 715 in the sending direction is used to convert the request or response, and / or data of the data link layer module in the sending data direction (the request or response, and / or data transmitted by the corresponding transport layer module) from the system bus protocol (for example, the AXI protocol) to the second part sub-protocol of the peripheral protocol (for example, the CXL.IO sub-protocol).
[0172] In an optional implementation, the first part sub-protocol conversion module 722 in the receiving direction is connected to the first part sub-protocol received data unpacking module 721, and is at least used to convert the first part sub-protocol of the peripheral protocol to the system bus protocol for the data packet parsed by the first part sub-protocol received data unpacking module 721.
[0173] In an optional implementation, the receiving direction second part sub-protocol conversion module 725 is connected to the second part sub-protocol received data unpacking module 724, and is at least used to convert the second part sub-protocol of the peripheral protocol to the system bus protocol for the data packet parsed by the second part sub-protocol received data unpacking module 724.
[0174] The data transmission packetization module involved in the above-mentioned data link layer module in the data transmission direction is mainly responsible for assembling the requests or responses, and / or data corresponding to the data transmission direction of the data link layer (the requests or responses, and / or data transmitted by the corresponding transport layer module) into data packets matching the corresponding protocol according to the corresponding protocol; among them, the inter-chip interconnection protocol, the first part sub-protocol (such as the CXL.CACHE sub-protocol and the CXL.MEM sub-protocol) and the second part sub-protocol (such as the CXL.IO sub-protocol) of the peripheral protocol need to implement the data transmission packetization module respectively in the data transmission direction of the data link layer; that is, the inter-chip interconnection protocol needs to implement the inter-chip interconnection data transmission packetization module 713 in the data transmission direction, the first part sub-protocol needs to implement the first part sub-protocol data transmission packetization module 712 in the data transmission direction, and the second part sub-protocol needs to implement the second part sub-protocol data transmission packetization module 716 in the data transmission direction.
[0175] In an optional implementation, the inter-chip interconnection data packetization module 713 can be used to assemble the request or response and / or data transmitted by the transport layer module into a data packet that matches the inter-chip interconnection protocol according to the inter-chip interconnection protocol.
[0176] In an optional implementation, the first part sub-protocol sending data packetization module 712 is connected to the sending direction first part sub-protocol conversion module 711, and can assemble the request or response, and / or data of the conversion protocol of the sending direction first part sub-protocol conversion module 711 into a data packet that matches the first part sub-protocol.
[0177] In an optional implementation, the second part sub-protocol sending data packetization module 716 is connected to the sending direction second part sub-protocol conversion module 715, and can assemble the request or response, and / or data of the conversion protocol of the sending direction second part sub-protocol conversion module 715 into a data packet that matches the second part sub-protocol.
[0178] In one example, taking the CXL protocol's packet length as a preset length, the first sub-protocol sending data packetization module and the second sub-protocol sending data packetization module can sequentially splice requests or responses, and / or data, of the protocols converted by the corresponding protocol conversion modules into packets of the preset length. This allows multiple requests or responses to be appended with fields such as packet type, thereby splicing them into a single packet of the preset length. Of course, embodiments of the present disclosure can also support splicing pure data and fields such as packet type into a single packet of the preset length. In an optional example, the preset length is, for example, 68 bytes.
[0179] In an optional implementation, a sending and retransmission cache module can be set in the protocol controller, and the sending and retransmission cache module can cache data packets sent to the chip or peripheral device, which data packets are data packets packaged by the data link layer module; wherein, if the data packet is received correctly, the correctly received data packet is deleted from the sending and retransmission cache module; if the data packet is not received correctly, the incorrectly received data packet is retrieved from the sending and retransmission cache module and retransmitted.
[0180] The transmission retransmission buffer module provided in the protocol controller may be, for example, the transmission retransmission buffer module involved in the data transmission direction of the aforementioned data link layer module, and is configured to buffer data packets assembled by the corresponding transmission data assembly module and provide a retransmission mechanism for the data packets. For example, the transmission retransmission buffer module provided in the protocol controller may include a first transmission retransmission buffer module 714 and a second transmission retransmission buffer module 717.
[0181] Among them, the first sending retransmission cache module 714 corresponds to the connection between the first part sub-protocol sending data packetization module 712 and the inter-chip interconnection sending data packetization module 713, and can cache the data packets packaged by the first part sub-protocol sending data packetization module 712 and the inter-chip interconnection sending data packetization module 713. Among them, if the data packet packaged by the first part sub-protocol sending data packetization module 712 is correctly received by the peripheral device, or the data packet packaged by the inter-chip interconnection sending data packetization module 713 is correctly received by other core particles, then the correctly received data packet can be deleted from the first sending retransmission cache module 714; if the data packet is not received correctly, then the data packet that is not received correctly can be retrieved from the first sending retransmission cache module 714 and retransmitted.
[0182] Correspondingly, the second sending retransmission cache module 717 corresponds to the connection to the second part sub-protocol sending data packetization module 716, so that the data packets packetized by the second part sub-protocol sending data packetization module 716 can be cached, wherein, if the data packets packetized by the second part sub-protocol sending data packetization module 716 are correctly received by the peripheral device, the correctly received data packets can be deleted from the second sending retransmission cache module 717, and if the data packets are not received correctly, the incorrectly received data packets can be retrieved from the second sending retransmission cache module 717 and retransmitted.
[0183] As an optional implementation, the receiving end of the data packet can check the check field in the data packet to perform data packet verification. If the verification passes, the data packet is considered to be correctly received. At this time, the receiving end of the data packet will send a notification message to the sending end of the data packet to inform the sending end of the data packet that the data packet is correctly received. If the sending end of the data packet times out and does not receive the notification message that the data packet is correctly received, or receives the notification message that the data packet is not correctly received, it can be considered that the data packet is not correctly received. It should be noted that for the protocol controller of the chip, when sending data to the peripheral device, the receiving end of the data packet can be the protocol controller of the peripheral device (such as the CXL protocol controller), and when sending data to other chip devices, the receiving end of the data packet can be the protocol controller of other chip devices (the part of the protocol controller that supports inter-chip interconnection).
[0184] In an optional alternative implementation, the transmission retransmission buffer module may not be located in the data link layer module, but may be located in the physical layer module 440 of the protocol controller. For example, in the embodiment of the present disclosure, the location of the transmission retransmission buffer module may be determined based on the version of the peripheral protocol. If the version of the peripheral protocol is the first version, the transmission retransmission buffer module may be located in the data link layer module. If the version of the peripheral protocol is the second version, the transmission retransmission buffer module may be located in the physical layer module, where the second version is higher than the first version. For example, the first version is CXL protocol version 1.1 or CXL protocol version 2.0, and the second version is CXL protocol version 3.0.
[0185] Returning to Figure 7, the data link layer module is mainly responsible for the data receiving unpacking module involved in the data receiving direction, and according to the corresponding protocol, it parses the data packets transmitted by the physical layer module. Among them, the inter-chip interconnection protocol, the first part of the sub-protocol of the peripheral protocol (such as the CXL.CACHE sub-protocol and the CXL.MEM sub-protocol), and the second part of the sub-protocol (such as the CXL.IO sub-protocol) need to implement the receiving data unpacking module in the data receiving direction of the data link layer respectively; that is, the inter-chip interconnection protocol needs to implement the inter-chip interconnection receiving data unpacking module 723 in the receiving data direction, the first part of the sub-protocol needs to implement the first part of the sub-protocol receiving data unpacking module 721 in the receiving data direction, and the second part of the sub-protocol needs to implement the second part of the sub-protocol receiving data unpacking module 724 in the receiving data direction.
[0186] In an optional implementation, the inter-chip interconnection received data depacketizing module 723 may be configured to parse data packets from other cores transmitted by the physical layer module according to the inter-chip interconnection protocol.
[0187] In an optional implementation, the first part sub-protocol received data depacketizing module 721 may be configured to parse data packets related to the first part sub-protocol from the peripheral device and transmitted by the physical layer module according to the first part sub-protocol of the peripheral device protocol.
[0188] In an optional implementation, the second part sub-protocol received data depacketizing module 724 may be configured to parse data packets related to the second part sub-protocol from the peripheral device and transmitted by the physical layer module according to the second part sub-protocol of the peripheral device protocol.
[0189] As an optional implementation, for the physical layer module provided in the embodiment of the present disclosure, Figure 8 exemplarily shows an example diagram of the physical layer module provided in the embodiment of the present disclosure. Combined with Figures 4, 7 and 8, the physical layer module 440 may include: a protocol arbitration module 811, a sending retransmission buffer module 812, a physical layer encoding module 813 and a physical layer decoding module 814.
[0190] Among them, the protocol arbitration module 811 can be used at least to arbitrate data packets packaged by the first part sub-protocol sending data package module in the data link layer module 430, and the data packets packaged by the second part sub-protocol sending data package module, and send the arbitrated data packets to the next module connected to the protocol arbitration module.
[0191] In an optional implementation, arbitration by the protocol arbitration module 811 may involve, when both packets packaged by the first sub-protocol sending data package module (corresponding to packets of the first sub-protocol) and packets packaged by the second sub-protocol sending data package module (corresponding to packets of the second sub-protocol) require physical layer bandwidth for transmission, arbitrating the packets packaged by the first sub-protocol sending data package module (corresponding to packets of the first sub-protocol) and the packets packaged by the second sub-protocol sending data package module (corresponding to packets of the second sub-protocol), and determining whether the packet winning the arbitration is eligible for transmission using the physical layer bandwidth. For example, when packets of the CXL.IO sub-protocol and packets of the CXL.CACHE sub-protocol / CXL.MEM sub-protocol both require physical layer bandwidth for transmission, arbitration may be performed on the CXL.IO sub-protocol and the packets of the CXL.CACHE sub-protocol / CXL.MEM sub-protocol, and the packet winning the arbitration is eligible for transmission using the physical layer bandwidth.
[0192] As an optional implementation, the arbitration algorithm used by the protocol arbitration module 811 may be, for example, a round robin algorithm, or other arbitration algorithms, which are not limited in the embodiment of the present disclosure.
[0193] As an optional implementation, the sending retransmission buffer module 812 is at least used to buffer data packets and support a retransmission mechanism. For a detailed introduction, please refer to the description of the corresponding part above.
[0194] In an optional implementation, if the sending retransmission cache module is set in the data link layer module, the sending retransmission cache module may include the first sending retransmission cache module and the second sending retransmission cache module described above, and related functions can refer to the description of the corresponding part above.
[0195] It should be noted that if the sending and retransmission cache module is set in the data link layer module, the next module connected to the protocol arbitration module may be the physical layer encoding module 813; if the sending and retransmission cache module is set in the physical layer module, the next module connected to the protocol arbitration module may be the sending and retransmission cache module.
[0196] In an optional implementation, the physical layer encoding module 813 is at least configured to encode and send data packets according to the protocol requirements of the physical layer of the core.
[0197] In an optional implementation, the physical layer decoding module 814 is at least configured to decode data received from the physical layer of the core particle according to the protocol requirements of the physical layer of the core particle, obtain a data packet, and pass it to the data link layer module.
[0198] In an optional implementation, the physical layer encoding module 813 and the physical layer decoding module 814 are connected to the physical layer of the core particle (for example, the physical coding sublayer of the core particle), so that the physical layer encoding module 813 and the physical layer decoding module 814 can be connected to the physical coding sublayer of the core particle through the third bus interface of the protocol controller.
[0199] In a further optional implementation, the peripheral protocol and inter-chip interconnection protocol based on the protocol controller are connected to the physical coding sublayer of the core particle through the third bus interface. The embodiment of the present disclosure can provide the peripheral protocol and inter-chip interconnection protocol of the protocol controller, and a mechanism for time-sharing calling the third bus interface and the physical coding sublayer to communicate data. For example, the time when the peripheral protocol of the protocol controller calls the third bus interface to communicate data with the physical coding sublayer, and the time when the inter-chip interconnection protocol of the protocol controller calls the third bus interface to communicate data with the physical coding sublayer are negotiated and agreed upon, so that the time when the peripheral protocol of the protocol controller calls the third bus interface and the time when the inter-chip interconnection protocol calls the third bus interface can be staggered, so as to realize the time-sharing multiplexing of the peripheral protocol and the inter-chip interconnection protocol of the protocol controller on the third bus interface to communicate data with the physical coding sublayer.
[0200] In a further optional implementation, FIG9 exemplarily shows another example diagram of the protocol controller provided by an embodiment of the present disclosure. In combination with FIG4 and FIG9 , the protocol controller may further include: a control register 450 , a status and interrupt management module 460 .
[0201] Among them, the control register 450 is used to implement a software-configurable register, and the software-configurable register may include at least one of a configuration register defined in a peripheral protocol (such as a CXL protocol), a custom configuration register of a peripheral protocol controller, and a configuration register of an inter-chip interconnect protocol controller. The above registers may each have an independent access address.
[0202] The status and interrupt management module 460 is used to implement software status register and interrupt management. The software status register may include at least one of the status register defined in the peripheral protocol (such as the CXL protocol), the custom status register of the peripheral protocol controller, and the status register of the inter-chip interconnect protocol controller.
[0203] In an optional implementation, the status and interrupt management module 460 may further implement interrupt management and interrupt reporting functions according to the interrupt configuration and interrupt status of the control register 450 .
[0204] It should be noted that the configurable registers can be used to configure the behavior of the protocol controller. The status register can be used to monitor the current status of the protocol controller and the current status of the data link, including whether there are any data transmission errors, the current data transmission rate, the current interrupt status, etc.
[0205] The protocol controller provided by the embodiment of the present disclosure can implement the interface multiplexing of the inter-chip interconnection protocol and the first part sub-protocol of the peripheral protocol (such as CXL.CACHE sub-protocol and CXL.MEM sub-protocol) at the first bus interface connected to the system bus; in the transport layer module, except for the protocol parsing module, the remaining sub-modules of the transport layer module can implement the multiplexing of the inter-chip interconnection protocol, the first part sub-protocol of the peripheral protocol, and the second part sub-protocol (such as CXL.IO sub-protocol); in the data link layer module, the inter-chip interconnection protocol and the first part sub-protocol of the peripheral protocol can implement a shared transmission and retransmission cache module; in the physical layer module, the inter-chip interconnection protocol, the first part sub-protocol of the peripheral protocol, and the second part sub-protocol can share a transmission and retransmission cache module, a physical layer encoding module, and a physical layer decoding module. The protocol controller provided by the embodiment of the present disclosure can support peripheral protocols (such as CXL protocols) and inter-chip interconnection protocols. By realizing the multiplexing of hardware resources, the protocol controller can greatly reduce the occupation of hardware resources, while reducing the resources and difficulty required for chip integration, which helps to reduce chip costs and shorten the design cycle.
[0206] Based on the protocol controller provided by the embodiment of the present disclosure, the embodiment of the present disclosure also provides a protocol control method. As an optional implementation, Figure 10 exemplarily shows an optional flow chart of the protocol control method provided by the embodiment of the present disclosure. The method flow can be applied to the protocol controller. Referring to Figure 10, the method flow can include the following steps.
[0207] In step S01 , the protocol currently used by the protocol controller is determined.
[0208] In the embodiment of the present disclosure, the protocol currently used by the protocol controller may be a peripheral protocol or an inter-chip interconnection protocol.
[0209] In step S02, if the protocol currently used by the protocol controller is a peripheral protocol, the module in the protocol controller that is separately configured for the inter-chip interconnection protocol is closed.
[0210] The protocol currently used by the protocol controller is the peripheral protocol (including the first part sub-protocol and the second part sub-protocol of the peripheral protocol), then the protocol controller is currently used as a peripheral protocol controller, so that the module in the protocol controller that is separately configured for the inter-chip interconnection protocol can be turned off to reduce power consumption.
[0211] In an optional implementation, shutting down a module in the protocol controller that is configured solely for the inter-chip interconnect protocol may include shutting down at least one of the following modules:
[0212] The software configurable registers related to inter-chip interconnection in the control register, the software status registers and interrupt management related modules related to inter-chip interconnection in the status and interrupt management module, the protocol parsing module corresponding to the inter-chip interconnection protocol in the transport layer module, the inter-chip interconnection sending data packetization module and the inter-chip interconnection receiving data depacketization module in the data link layer module.
[0213] In step S03, if the protocol currently used by the protocol controller is the inter-chip interconnection protocol, the module in the protocol controller that is separately configured for the peripheral protocol is closed.
[0214] If the protocol currently used by the protocol controller is the inter-chip interconnection protocol, the protocol controller is currently used as an inter-chip interconnection controller, so that the modules in the protocol controller that are configured separately for the peripheral protocol can be turned off (for example, the modules that are configured separately for the first part of the sub-protocol of the peripheral protocol need to be turned off, and the modules that are configured separately for the second part of the sub-protocol of the peripheral protocol need to be turned off) to reduce power consumption.
[0215] In an optional implementation, shutting down a module in the protocol controller that is configured solely for a peripheral protocol may include shutting down at least one of the following modules:
[0216] Software-configurable registers related to the peripheral protocol (e.g., CXL protocol) in the control register, software status registers and interrupt management-related modules related to the peripheral protocol (e.g., CXL protocol) in the status and interrupt management module, the second bus interface corresponding to the second sub-protocol of the peripheral protocol, the parsing module corresponding to the peripheral protocol (e.g., CXL protocol) in the transport layer module (e.g., the protocol parsing module corresponding to the first sub-protocol in the transport layer module, and the protocol parsing module corresponding to the second sub-protocol), the protocol conversion module related to the peripheral protocol in the data link layer module (e.g., the first sub-protocol conversion module in the sending direction, the second sub-protocol conversion module in the sending direction, the first sub-protocol conversion module in the receiving direction, and the second sub-protocol conversion module in the receiving direction), the data packetization module for sending (e.g., the first sub-protocol data packetization module for sending, and the second sub-protocol data packetization module for sending), and the data depacketization module for receiving (e.g., the first sub-protocol data depacketization module for receiving, and the second sub-protocol data depacketization module for receiving).
[0217] Based on the protocol control method provided by the embodiment of the present disclosure, the embodiment of the present disclosure can shut down the module in the protocol controller that is separately configured for the inter-chip interconnection protocol when the protocol controller uses the peripheral protocol, and shut down the module in the protocol controller that is separately configured for the peripheral protocol when the protocol controller uses the inter-chip interconnection protocol, thereby shutting down the modules in the protocol controller that are not related to the currently used protocol, thereby reducing the power consumption of the protocol controller.
[0218] The embodiment of the present disclosure further provides a core particle, which may include the protocol controller provided by the embodiment of the present disclosure.
[0219] In a further optional implementation, the core particle provided by the embodiment of the present disclosure may further include: a physical coding sublayer connected to the protocol controller, and a physical layer interface connected to the physical coding sublayer.
[0220] The embodiments of the present disclosure further provide a system on chip, which may include a plurality of interconnected core particles, such as the core particles provided in the embodiments of the present disclosure.
[0221] An embodiment of the present disclosure further provides an electronic device, such as a terminal device or a server device. The electronic device may include the chip provided by the embodiment of the present disclosure, or the system on chip provided by the embodiment of the present disclosure.
[0222] The above describes multiple embodiment schemes provided by the embodiments of the present disclosure. The various optional methods introduced in each embodiment scheme can be combined and cross-referenced with each other without conflict, thereby extending a variety of possible embodiment schemes, which can all be considered as embodiment schemes disclosed and disclosed by the embodiments of the present disclosure.
[0223] Although the embodiments of the present disclosure are disclosed above, the present disclosure is not limited thereto. Any person skilled in the art may make various changes and modifications without departing from the spirit and scope of the present disclosure. Therefore, the scope of protection of the present disclosure shall be based on the scope defined by the claims.
Claims
1. A protocol controller, applied to a chip, the protocol controller comprising: A first bus interface connected to the system bus, the first bus interface implementing an inter-chip interconnection protocol and a first partial sub-protocol of a peripheral protocol; and, a second bus interface connected to the system bus, the second bus interface implementing a second partial sub-protocol of the peripheral protocol, the first partial sub-protocol and the second partial sub-protocol being configured to be implemented by different bus interfaces; The core particle uses one of an inter-chip interconnection protocol and a peripheral protocol at the same time.
2. The protocol controller according to claim 1, wherein: The protocol controller further comprises: a bus interface module; the bus interface module comprises a first interface management module and a second interface management module; The first interface management module is used for connection management between the first bus interface and the system bus; The second interface management module is used for connection management between the second bus interface and the system bus.
3. The protocol controller according to claim 2, wherein: The first interface management module, used for connection management between the first bus interface and the system bus, includes: Based on the internal state of the protocol controller for the inter-chip interconnect protocol and the first partial sub-protocol, and the state of the first bus interface, managing the connection and disconnection between the first bus interface and the system bus; The second interface management module, used for connection management between the second bus interface and the system bus, includes: Based on the internal state of the protocol controller for the second part of the sub-protocol and the state of the second bus interface, the connection and disconnection between the second bus interface and the system bus are managed.
4. The protocol controller according to claim 3, wherein: The first interface management module is used to manage the connection and disconnection between the first bus interface and the system bus based on the internal state of the protocol controller for the inter-chip interconnection protocol and the first partial sub-protocol, and the state of the first bus interface, including: If the processing states of the internal modules of the protocol controller for the inter-chip interconnection protocol and the first part of the sub-protocol are both in an idle state, and the first bus interface is also in an idle state, disconnecting the first bus interface from the system bus; If any internal module of the protocol controller has a data processing operation for the inter-chip interconnection protocol or the first part of the sub-protocol, then restore the connection between the first bus interface and the system bus; The second interface management module, for managing the connection and disconnection between the second bus interface and the system bus based on the internal state of the protocol controller for the second part of the sub-protocol and the state of the second bus interface, includes: If the processing states of the internal modules of the protocol controller for the second part of the sub-protocol are all in an idle state, and the second bus interface is also in an idle state, disconnecting the second bus interface from the system bus; If any internal module of the protocol controller has a data processing operation for the second part of the sub-protocol, the connection between the second bus interface and the system bus is restored.
5. The protocol controller according to claim 1, wherein: The protocol controller also includes: a transport layer module, a data link layer module, and a physical layer module; The transport layer interface of the transport layer module is connected to the system bus through the first bus interface and the second bus interface respectively; the transport layer module is connected to the data link layer module, and the data link layer module is connected to the physical layer module; the physical layer module is connected to the physical coding sublayer of the core particle through the third bus interface of the protocol controller.
6. The protocol controller according to claim 5, wherein: The transport layer module is provided with a first transport layer submodule and a second transport layer submodule, the first transport layer submodule implements the data transmission control of the inter-chip interconnection protocol and the first part of the sub-protocol, and the second transport layer submodule implements the data transmission control of the second part of the sub-protocol; The transport layer module has a plurality of submodules shared by the first transport layer submodule and the second transport layer submodule, and the plurality of submodules are part of the submodules within the transport layer module.
7. The protocol controller according to claim 6, wherein: The multiple sub-modules include at least: The first submodule set of the transport layer is used to process requests from peripherals or other core particles to be sent to the system bus, and responses from the system bus to be sent to peripherals or other core particles; The second submodule set of the transport layer is used to process requests from the system bus that need to be sent to peripherals or other core particles, and responses from peripherals or other core particles that need to be sent to the system bus.
8. The protocol controller according to claim 7, wherein: The first submodule set of the transport layer includes at least: a sending request queue and a receiving response queue; The sending request queue is at least used to store the waiting sending requests of the core particle. The request comes from a peripheral device or other core particles connected to the core particle and needs to be sent to the system bus; The receiving response queue is used at least to store the to-be-received responses marked corresponding to the to-be-sent requests sent in the sending request queue; and to store the first response of the system bus, and the request for which the first response is stored is consistent with the to-be-sent request for which the to-be-received response stored in the receiving response queue is stored; Among them, when the data sending conditions for sending data to the system bus are met, the request to be sent is dequeued and cleared from the sending request queue, and the request to be sent and the data corresponding to the request to be sent are sent to the system bus; when the data sending conditions for sending data to the data link layer are met, the first response is dequeued and cleared from the receiving response queue, and the first response and the data corresponding to the first response are sent to the data link layer module.
9. The protocol controller according to claim 8, wherein: The second submodule set of the transport layer includes at least: a receiving request queue and a sending response queue; The receiving request queue is at least used to store the receiving request of the chiplet, the receiving request comes from the system bus and needs to be sent to the peripheral device or other chiplets connected to the chiplet; The sending response queue is at least used to store the to-be-received response marked corresponding to the sent receiving request; and to store the second response of the peripheral device or other core particles, and the request for which the stored second response is targeted is consistent with the receiving request for which the to-be-received response stored in the sending response queue is targeted; Among them, when the data sending conditions for sending data to the data link layer are met, the receive request is dequeued and cleared from the receive request queue, and the receive request and the data corresponding to the receive request are sent to the data link layer module; when the data sending conditions for sending data to the system bus are met, the second response is dequeued and cleared from the send response queue, and the second response and the data corresponding to the second response are sent to the system bus.
10. The protocol controller according to claim 9, wherein: The multiple submodules also include: a sending data buffer, a receiving data buffer and a queue scheduling module; The sending data buffer is at least used to cache data corresponding to the to-be-sent request in the sending request queue, and to cache data corresponding to the second response in the sending response queue; The received data cache is at least used to cache data corresponding to the received request in the received request queue, and cache data corresponding to the first response in the received response queue; The queue scheduling module is at least used to arbitrate and schedule the waiting requests in the sending request queue, the first responses in the receiving response queue, the receiving requests in the receiving request queue, and the sending responses. The queue scheduling module performs queue entry and dequeue processing for the second response in the response queue; wherein the arbitration scheduling mechanism of the queue scheduling module is configured and defined through a configuration register.
11. The protocol controller according to any one of claims 6 to 10, wherein: The transport layer module is provided with a plurality of protocol parsing modules; The number of the multiple protocol parsing modules corresponds to the number of protocols that require independent configuration of protocol parsing modules; The multiple protocol analysis modules include: a protocol analysis module corresponding to the inter-chip interconnection protocol, a protocol analysis module corresponding to the first part of the sub-protocol, and a protocol analysis module corresponding to the second part of the sub-protocol; Among them, the protocol parsing module corresponding to the inter-chip interconnection protocol and the protocol parsing module corresponding to the first part of the sub-protocol are set in the first transport layer sub-module; the protocol parsing module corresponding to the second part of the sub-protocol is set in the second transport layer sub-module.
12. The protocol controller according to claim 5, wherein: The data link layer module includes: a first part sub-protocol conversion module for the sending direction, a first part sub-protocol sending data packetization module, an inter-chip interconnection sending data packetization module, a second part sub-protocol conversion module for the sending direction, and a second part sub-protocol sending data packetization module; The first part sub-protocol conversion module in the sending direction is at least used for converting the request or response and / or data transmitted by the transport layer module from the system bus protocol to the first part sub-protocol of the peripheral protocol; The first part sub-protocol sending data packetizing module is at least used to assemble the request or response of the protocol converted by the first part sub-protocol conversion module in the sending direction, and / or data, into a data packet matching the first part sub-protocol; The inter-chip interconnection data packetization module is at least used to assemble the request or response and / or data transmitted by the transport layer module into a data packet matching the inter-chip interconnection protocol according to the inter-chip interconnection protocol; The second part sub-protocol conversion module in the sending direction is at least used for converting the request or response and / or data transmitted by the transport layer module from the system bus protocol to the second part sub-protocol of the peripheral protocol; The second part sub-protocol sending data packetizing module is at least used to assemble the request or response and / or data of the protocol converted by the sending direction to the second part sub-protocol conversion module into a data packet matching the second part sub-protocol.
13. The protocol controller according to claim 12, wherein: The data link layer module also includes: a first part sub-protocol received data unpacking module, a receiving direction first part sub-protocol conversion module, an inter-chip interconnection received data unpacking module, a second part sub-protocol received data unpacking module, and a receiving direction second part sub-protocol conversion module; The first part sub-protocol receiving data unpacking module is at least used to parse the data packets related to the first part sub-protocol from the peripheral device transmitted by the physical layer module according to the first part sub-protocol of the peripheral device protocol; The first part sub-protocol conversion module in the receiving direction is at least used for converting the first part sub-protocol of the peripheral protocol to the system bus protocol for the data packet parsed by the first part sub-protocol receiving data unpacking module; The inter-chip interconnection receiving data depacketizing module is at least used to parse the data packets from other core particles transmitted by the physical layer module according to the inter-chip interconnection protocol; The second part sub-protocol receiving data unpacking module is at least used to parse the data packets related to the second part sub-protocol from the peripheral device and transmitted by the physical layer module according to the second part sub-protocol of the peripheral device protocol; The receiving direction second part sub-protocol conversion module is at least used for converting the second part sub-protocol of the peripheral protocol to the system bus protocol for the data packet parsed by the second part sub-protocol receiving data unpacking module.
14. The protocol controller according to claim 12 or 13, wherein: The physical layer module includes: a protocol arbitration module, a physical layer encoding module and a physical layer decoding module; The protocol arbitration module is at least used to perform data packet arbitration on the data packets packaged by the first part sub-protocol sending data package module and the data packets packaged by the second part sub-protocol sending data package module in the data link layer module, and send the arbitrated data packets to the next module connected to the protocol arbitration module; The physical layer encoding module is at least used to encode and send data packets according to the protocol requirements of the physical layer of the core particle; The physical layer decoding module is at least used to decode the data received from the physical layer of the core particle according to the protocol requirements of the physical layer of the core particle, obtain the data packet, and pass it to the data link layer module.
15. The protocol controller according to claim 14, wherein: The protocol controller further comprises: a sending retransmission buffer module; The sending retransmission cache module is at least used to cache data packets sent to the core particle or peripheral device, and the data packets are data packets packaged by the data link layer module; wherein, if the data packet is correctly received, the correctly received data packet is deleted from the sending retransmission cache module, and if the data packet is not correctly received, the incorrectly received data packet is retrieved from the sending retransmission cache module and retransmitted.
16. The protocol controller according to claim 15, wherein: The sending retransmission buffer module is arranged in the data link layer module or the physical layer module; Among them, if the version of the peripheral protocol is the first version, the sending retransmission cache module is set in the data link layer module; if the version of the peripheral protocol is the second version, the sending retransmission cache module is set in the physical layer module, and the second version is higher than the first version.
17. The protocol controller according to claim 16, wherein: The sending retransmission buffer module is arranged in the data link layer module, and the sending retransmission buffer module comprises a first sending retransmission buffer module and a second sending retransmission buffer module; The first sending retransmission buffer module is at least used to cache the data packets packaged by the first part of the sub-protocol sending data packetizing module and the inter-chip interconnection sending data packetizing module; wherein, if the data packets packaged by the first part of the sub-protocol sending data packetizing module are correctly received by the peripheral device, or the data packets packaged by the inter-chip interconnection sending data packetizing module are correctly received by other core particles, the correctly received data packets are deleted from the first sending retransmission buffer module, and if the data packets are not correctly received, the incorrectly received data packets are retrieved from the first sending retransmission buffer module and retransmitted; The second sending retransmission cache module is at least used for caching the data packets packaged by the second part sub-protocol sending data package module; wherein, if the data packets packaged by the second part sub-protocol sending data package module are correctly received by the peripheral device, the correctly received data packets are deleted from the second sending retransmission cache module, and if the data packets are not correctly received, the incorrectly received data packets are retrieved from the second sending retransmission cache module and retransmitted.
18. The protocol controller according to claim 16, wherein: If the sending retransmission cache module is set in the physical layer module, the next module connected to the protocol arbitration module is the sending retransmission cache module; if the sending retransmission cache module is set in the data link layer module, the next module connected to the protocol arbitration module is the physical layer encoding module.
19. The protocol controller according to claim 5, wherein: The protocol controller also includes: a control register, and a status and interrupt management module; The control register is used to implement a software configurable register, and the software configurable register includes at least one of a configuration register defined in a peripheral protocol, a custom configuration register of a peripheral protocol controller, and a configuration register of an inter-chip interconnect protocol controller; The status and interrupt management module is used to implement software status register and interrupt management, wherein the software status register includes at least one of a status register defined in a peripheral protocol, a custom status register of a peripheral protocol controller, and a status register of an inter-chip interconnect protocol controller; The status and interrupt management module is further used to implement interrupt management and interrupt reporting according to the interrupt configuration and interrupt status of the control register.
20. The protocol controller according to any one of claims 1 to 19, wherein: The peripheral device protocol includes the CXL protocol; the first part of the sub-protocols includes the memory and cache sub-protocols of the CXL protocol, and the second part of the sub-protocols includes the input and output sub-protocols of the CXL protocol.
21. A protocol control method, applied to the protocol controller according to any one of claims 1 to 20, the protocol control method comprising: Determine the protocol currently used by the protocol controller; If the protocol currently used by the protocol controller is a peripheral protocol, the module configured separately for the inter-chip interconnection protocol in the protocol controller is closed; If the protocol currently used by the protocol controller is an inter-chip interconnection protocol, the module in the protocol controller that is separately configured for the peripheral protocol is closed.
22. The protocol control method according to claim 21, wherein: The shutting down of the module configured for the inter-chip interconnection protocol in the protocol controller includes shutting down at least one of the following modules: The software configurable registers related to inter-chip interconnection in the control register, the software status registers and interrupt management related modules related to inter-chip interconnection in the status and interrupt management module, the protocol parsing module corresponding to the inter-chip interconnection protocol in the transport layer module, the inter-chip interconnection sending data packetization module and the inter-chip interconnection receiving data unpacking module in the data link layer module.
23. The protocol control method according to claim 22, wherein: The shutting down of the module configured for the peripheral protocol in the protocol controller includes shutting down at least one of the following modules: Software configurable registers related to peripheral protocols in the control registers, software status registers related to peripheral protocols in the status and interrupt management modules, and interrupt management related modules, and the first The second bus interface corresponding to the second part of the sub-protocol, the protocol parsing module corresponding to the first part of the sub-protocol in the transport layer module and the protocol parsing module corresponding to the second part of the sub-protocol, the first part of the sub-protocol conversion module for the sending direction, the first part of the sub-protocol sending data packetization module, the second part of the sub-protocol conversion module for the sending direction, the second part of the sub-protocol sending data packetization module, the first part of the sub-protocol receiving data unpacking module, the first part of the sub-protocol conversion module for the receiving direction, the second part of the sub-protocol receiving data unpacking module, and the second part of the sub-protocol conversion module for the receiving direction in the data link layer module.
24. A core particle comprising the protocol controller according to any one of claims 1-20.
25. The core particle according to claim 24, further comprising: A physical coding sublayer connected to the protocol controller, and a physical layer interface connected to the physical coding sublayer.
26. A system on a chip, comprising a plurality of interconnected core particles, wherein: The core particle comprises the core particle according to any one of claims 24-25.
27. An electronic device comprising the core particle according to any one of claims 24-25, or the system on chip according to claim 26.
Citation Information
Patent Citations
Protocol controller, protocol control method, chip particle, system on chip and electronic equipment
CN117453596A
Interconnection die, interconnection micro-component, interconnection micro-system and communication method thereof
CN112817905A
Conversion interface and communication method for interconnection bare core and AXI main device
CN114721979A
Wafer-to-wafer interface interconnection method, wafer-to-wafer interface interconnection equipment and medium
CN116881188A
Scalable network-on-package for connecting chiplet-based designs
US11488935B1
Cited By
MIPS multiprocessor system based on CXL interface and computer equipment
CN121560811A