CN111797051B - System on chip, data transmission method and broadcast module - Google Patents

System on chip, data transmission method and broadcast module Download PDF

Info

Publication number
CN111797051B
CN111797051B CN202010500891.2A CN202010500891A CN111797051B CN 111797051 B CN111797051 B CN 111797051B CN 202010500891 A CN202010500891 A CN 202010500891A CN 111797051 B CN111797051 B CN 111797051B
Authority
CN
China
Prior art keywords
module
node module
broadcast
slave
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010500891.2A
Other languages
Chinese (zh)
Other versions
CN111797051A (en
Inventor
李炜
曹庆新
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Intellifusion Technologies Co Ltd
Original Assignee
Shenzhen Intellifusion Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Intellifusion Technologies Co Ltd filed Critical Shenzhen Intellifusion Technologies Co Ltd
Priority to CN202010500891.2A priority Critical patent/CN111797051B/en
Publication of CN111797051A publication Critical patent/CN111797051A/en
Priority to PCT/CN2021/088442 priority patent/WO2021244168A1/en
Application granted granted Critical
Publication of CN111797051B publication Critical patent/CN111797051B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/781On-chip cache; Off-chip memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Multimedia (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Multi Processors (AREA)

Abstract

The application is applicable to the technical field of electronics, and provides a system on chip, a data transmission method and a broadcast module, wherein the system on chip comprises at least two main devices, at least one slave device and a bus; the bus comprises at least two broadcasting modules, and each broadcasting module is correspondingly connected with one main device; the broadcast module is configured as an initial node module or a slave node module. The method comprises the steps that a broadcast module is used as a medium for data transmission between slave equipment and at least two main equipment in a system on chip, interaction is carried out between the slave equipment and an initial node module in the broadcast module, a data reading request is sent to the slave equipment, and target data returned by the slave equipment are obtained; thereafter, the target data is transmitted to each master device through target data transmission between the initial node module and the slave node module in the broadcasting module. The embodiment of the application can solve the problems of how to improve the data transmission efficiency of the system on chip and reduce the power consumption in the prior art.

Description

System on chip, data transmission method and broadcast module
Technical Field
The present application relates to the field of electronic technologies, and in particular, to a system on chip, a data transmission method, and a broadcast module.
Background
In an existing System-on-a-chip (SoC), a plurality of masters (masters) and a plurality of slaves (Slave) are included, and each Master and each Slave are connected by a bus to implement data transfer. However, in the conventional data transfer method, the bus can be occupied by only one master device and one slave device at any time, and if a plurality of master devices need to request to read data from the same slave device, the plurality of master devices can only wait to acquire the right to use the bus in sequence and respectively read data from the slave device for a plurality of times.
The data transmission method has the defects of low data transmission efficiency and waste of power consumption because a plurality of masters need to wait for reading data in sequence and the slaves need to consume power for a plurality of times to process the requests of the masters respectively.
Disclosure of Invention
In view of this, embodiments of the present application provide a system on chip, a data transmission method, and a broadcast module, so as to solve the problem of how to improve the data transmission efficiency and reduce the power consumption of the system on chip in the prior art.
A first aspect of an embodiment of the present application provides a system on a chip, where the system on a chip includes at least two masters, at least one slave, and a bus; the bus comprises at least two broadcasting modules, and each broadcasting module is correspondingly connected with one main device; wherein the broadcast module configured as an initial node in a broadcast topology is an initial node module, and the broadcast modules other than the initial node module in the broadcast topology are slave node modules;
the main device is used for sending a data reading request and acquiring target data through the broadcasting module;
the initial node module is connected with one main device correspondingly; wherein the broadcast module configured as an initial node in a broadcast topology is an initial node module, and the broadcast modules other than the initial node module in the broadcast topology are slave node modules;
the slave node module is configured to receive a second data reading request sent by a second master device corresponding to the slave node module, acquire target data broadcast by the initial node module according to the second data reading request, and send the target data to the second master device; the identification information carried by the second data reading request is consistent with the identification information carried by the first data reading request;
the slave device is configured to receive the first data reading request sent by the initial node module, and send target data to the initial node module according to the first data reading request.
A second aspect of the embodiments of the present application provides a data transmission method, which is applied to an initial node module in a broadcast module, and the data transmission method includes:
receiving a data reading request sent by a first master device corresponding to the initial node module, wherein the first data reading request carries identification information;
sending the data reading request to corresponding slave equipment, and receiving target data returned by the slave equipment;
and sending the target data to the first master device and broadcasting the target data to a slave node module corresponding to the initial node module.
A third aspect of the embodiments of the present application provides another data transmission method, which is applied to a slave node module in a broadcast module, and the data transmission method includes:
receiving a second data reading request sent by a second master device corresponding to the slave node module, wherein the second data reading request carries identification information;
acquiring target data broadcast by an initial node module corresponding to the slave node module according to the second data reading request, wherein the initial node module has a first data reading request carrying the identification information;
and sending the target data to the second main device.
A fourth aspect of the embodiments of the present application provides a broadcast module, where if the broadcast module is specifically an initial node module, the broadcast module includes:
a first receiving unit, configured to receive a first data reading request sent by a first master device corresponding to the initial node module, where the first data reading request carries identification information;
a data reading request sending unit, configured to send the first data reading request to a corresponding slave device according to the identification information, and receive target data returned by the slave device;
a first sending unit, configured to send the target data to the first master device and broadcast the target data to a slave node module corresponding to the initial node module;
or, the broadcast module is specifically a slave node module, and includes:
a second receiving unit, configured to receive a second data reading request sent by a second master device corresponding to the slave node module;
a target data obtaining unit, configured to obtain, according to the second data reading request, target data broadcast by an initial node module corresponding to the slave node module, where the initial node module has a first data reading request carrying the identification information;
a second sending unit, configured to send the target data to the second master device.
A fifth aspect of an embodiment of the present application provides a broadcast module, including:
the read command cache submodule is used for accessing an external main device through a read command channel so as to obtain a data read request sent by the main device, and the data read request carries identification information;
the input end of the instruction gate module is connected with the output end of the read command cache submodule and is used for receiving the data reading request transmitted by the read command cache submodule; the output end of the instruction gate module is connected with an external slave device, and is used for determining the slave device corresponding to the data reading request from the external slave device according to the identification information carried by the data reading request if the broadcast module is configured as an initial node module, and sending the data reading request to the corresponding slave device; the broadcast module is configured as a slave node module, the output end of the command gate module is in a closed state, and the data reading request is prohibited from being sent out;
a first selector, a first input end of which is connected to the external slave device, and configured to, if the broadcast module is configured as the initial node module, obtain target data from the corresponding slave device according to the identification information carried in the data reading request; if the broadcast module is configured as a slave node module, the second input terminal of the first selector is configured to be connected with a parent node module of the broadcast module, and is used for acquiring target data from the parent node module; the parent node module is other broadcast modules positioned at the upper-level nodes of the broadcast modules in a broadcast topological structure;
the input end of the read data cache submodule is connected with the output end of the first selector and is used for caching the target data; if the broadcasting module has a corresponding child node module, the output end of the read data cache sub-module is configured to be connected with the child node module, and is used for sending the target data to the child node module; wherein the child node module is another broadcast module located at a next-level node of the broadcast module in a broadcast topology structure;
a first input end and a second input end of the second selector are respectively connected with the read data cache submodule and the external slave device, and are used for acquiring the target data; and the output end of the second selector is connected with the main equipment through a read data channel and is used for transmitting the target data to the main equipment.
A sixth aspect of embodiments of the present application provides a terminal device, which includes a memory, a processor, and a computer program stored in the memory and executable on the processor, and when the processor executes the computer program, the terminal device is caused to implement the steps of the data transmission method according to the second aspect or the third aspect.
A seventh aspect of embodiments of the present application provides a computer-readable storage medium storing a computer program which, when executed by a processor, causes a terminal device to implement the steps of the data transmission method according to the second aspect or the third aspect.
An eighth aspect of embodiments of the present application provides a computer program product, which, when run on a terminal device, causes the terminal device to perform the steps of the data transmission method according to the second aspect or the third aspect.
Compared with the prior art, the embodiment of the application has the advantages that: in the embodiment of the application, a broadcast module is used as a medium for data transmission between slave equipment and at least two main equipment, and the broadcast module interacts with the slave equipment through an initial node module in the broadcast module, sends a data reading request to the slave equipment and acquires target data returned by the slave equipment; thereafter, the target data is finally transmitted to each master device through target data transmission between the initial node module and the slave node module in the broadcasting module. Due to the fact that the plurality of broadcasting modules in the bus enable the plurality of main devices to acquire the target data of the same slave device under the condition of one-time target data reading, data transmission efficiency between the main devices and the slave devices can be improved; in addition, in the data transmission process, the slave equipment only needs to interact with the initial node module in the broadcasting module, and does not need to repeatedly process data reading requests for multiple times, so that the power consumption of the system can be reduced.
Drawings
In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings needed to be used in the embodiments or the prior art descriptions will be briefly described below, and it is obvious that the drawings in the following description are only some embodiments of the present application, and it is obvious for those skilled in the art to obtain other drawings without creative efforts.
Fig. 1 is a diagram illustrating a first system on chip according to an embodiment of the present disclosure;
FIG. 2 is a diagram illustrating a second exemplary system-on-chip architecture according to an embodiment of the present disclosure;
FIG. 3 is a diagram illustrating a third exemplary system-on-chip architecture according to an embodiment of the present application;
FIG. 4 is a diagram illustrating a fourth exemplary system-on-chip architecture according to an embodiment of the present application;
FIG. 5 is a block diagram illustrating an alternative system-on-chip according to an embodiment of the present disclosure;
fig. 6 is a schematic flow chart of an implementation of a first data transmission method provided in an embodiment of the present application;
fig. 7 is a schematic flow chart of an implementation of a second data transmission method provided in the embodiment of the present application;
fig. 8 is a diagram illustrating a structure of an initial node module according to an embodiment of the present disclosure;
fig. 9 is a diagram illustrating a structure of a slave node module according to an embodiment of the present application;
fig. 10 is a diagram illustrating an internal structure of a broadcasting module according to an embodiment of the present application;
fig. 11 is a schematic diagram of a terminal device provided in an embodiment of the present application.
Detailed Description
In the following description, for purposes of explanation and not limitation, specific details are set forth, such as particular system structures, techniques, etc. in order to provide a thorough understanding of the embodiments of the present application. It will be apparent, however, to one skilled in the art that the present application may be practiced in other embodiments that depart from these specific details. In other instances, detailed descriptions of well-known systems, devices, circuits, and methods are omitted so as not to obscure the description of the present application with unnecessary detail.
In order to explain the technical solution described in the present application, the following description will be given by way of specific examples.
It will be understood that the terms "comprises" and/or "comprising," when used in this specification and the appended claims, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
It is also to be understood that the terminology used in the description of the present application herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the application. As used in this specification and the appended claims, the singular forms "a", "an", and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise.
It should be further understood that the term "and/or" as used in this specification and the appended claims refers to and includes any and all possible combinations of one or more of the associated listed items.
As used in this specification and the appended claims, the term "if" may be interpreted contextually as "when", "upon" or "in response to a determination" or "in response to a detection". Similarly, the phrase "if it is determined" or "if a [ described condition or event ] is detected" may be interpreted contextually to mean "upon determining" or "in response to determining" or "upon detecting [ described condition or event ]" or "in response to detecting [ described condition or event ]".
In addition, in the description of the present application, the terms "first," "second," "third," and the like are used solely to distinguish one from another and are not to be construed as indicating or implying relative importance.
The first embodiment is as follows:
fig. 1 shows a schematic structural diagram of a first system on chip provided in an embodiment of the present application, which is detailed as follows:
the system on chip comprises at least two masters 1 (masters), at least one Slave 2(Slave), and a BUS 3 (BUS); the bus 3 at least includes at least two Broadcast modules 31 (BRC), and each Broadcast module 31 is correspondingly connected to one of the master devices 1; wherein the broadcast module configured as an initial node in a broadcast topology is an initial node module, and the broadcast modules other than the initial node module in the broadcast topology are slave node modules.
In the embodiment of the application, the bus is a public communication trunk line for transmitting information by each functional component in the system on chip; the master device is a device which has bus control right during primary bus transmission, and the slave device is a device which is accessed by the master device and provides corresponding data for the master device during the primary bus transmission. Illustratively, the master device may be a processor and the slave device may be a memory.
As shown in fig. 1, the system on chip may include M masters 1, N slaves 2, and a bus 3, where M has a value greater than or equal to two and N has a value greater than or equal to one. Further, the values of M and N may be the same or different; preferably, the value of M is larger than the value of N, i.e. in a system on chip, multiple masters may share data of the same slave.
In the embodiment of the present application, the bus 3 is a common communication trunk for transmitting data between the master device and the slave device, and specifically, the bus 3 includes two or more broadcast modules 31, and each broadcast module 31 is correspondingly connected to one master device 1. That is, each broadcast module 31 is connected to a master device 1 that needs to acquire data through a broadcast operation, and it is understood that the system on chip may further include a master device 1 that does not need to be connected to the broadcast module 31, and in this case, the master device does not need to share data of a slave device with other master devices, and the master device may independently and directly acquire data from the slave device according to its own data reading request.
Specifically, besides being connected with the corresponding main device, the broadcast modules also have a connection relationship therebetween, and the connection relationship can be flexibly configured. Specifically, the connection relationship between the broadcast modules is determined according to the configured broadcast topology, and the broadcast module configured as the initial node in the broadcast topology is an initial node module, such as BRC0 shown in fig. 1; the broadcast modules other than the initial node module in the broadcast topology are slave node modules, such as BRC1, BRC2, BRC3 shown in fig. 1. The initial node module can directly transmit commands and data with slave equipment according to the data reading request; while the slave node modules cannot interact directly with the slave devices. Optionally, multiple groups of broadcast topology structures may exist in the embodiment of the present application, each group of broadcast topology structures is respectively configured with an initial node module and at least one slave node module, and each initial node module and each slave node module can acquire the corresponding slave node module and initial node module according to configuration information of the broadcast topology structures acquired in advance.
The main device is used for sending a data reading request and acquiring target data through the broadcasting module.
In the embodiment of the application, each master device connected with the broadcast module sends a data reading request and acquires target data through the corresponding broadcast module. As shown in fig. 1, the masters 0 to 3 respectively send respective data reading requests to the broadcast modules BRC0 to BRC3, and respectively obtain target data from the broadcast modules BRC0 to BRC 3.
The initial node module is configured to receive a first data reading request sent by a first master device corresponding to the initial node module; according to the identification information carried in the first data reading request, sending the first data reading request to the slave equipment corresponding to the identification information, receiving the target data returned by the slave equipment, sending the target data to the first master equipment, and broadcasting the target data to the slave node module of the initial node module.
The initial node module in the embodiment of the application is a broadcast module of an initial node in a broadcast topological structure of a bus, and the initial node module is connected with at least one corresponding slave node module; the first master device in this embodiment of the present application is a master device connected to the initial node module. After receiving a first data reading request sent by a first master device, an initial node module determines a slave device corresponding to identification information from a plurality of slave devices according to the identification information carried in the first data reading request, and sends the first data reading request to the slave device. Alternatively, the identification information may be address information of the target data requested by the first data read request, and the address information may include physical address information of a slave device storing the target data and specific index address information of the requested target data in the slave device. And determining the corresponding slave equipment according to the address information. After the first data reading request is sent to the slave device, the target data returned by the slave device is received, and the target data is sent to the first master device and broadcasted to the slave node module corresponding to the initial node module, that is, the slave node module configured to be connected with the initial node module.
Exemplarily, as shown in fig. 1, a BRC0 is an initial node module, and the initial node module is connected to a corresponding first Master0 and configured to receive a first data read request sent by a first Master 0; then, according to the identification information carried by the first data read request, it is determined that the currently corresponding Slave device is the Slave device Slave1, the first data read request is sent to the Slave device Slave1 correspondingly, and target data returned from the Slave device Slave1 is received. Thereafter, the BRC0 broadcasts the received target data to the slave node modules BRC1, BRC2, and BRC 3. Optionally, when the initial node module detects that the slave node module has cached the second data read request consistent with the identification information of the first data read request, it is determined that the slave node module is ready to receive the target data, and at this time, the target data is broadcasted to the slave node module.
The slave node module is configured to receive a second data reading request sent by a second master device corresponding to the slave node module, acquire target data broadcast by the initial node module according to the second data reading request, and send the target data to the second master device; and the identification information carried by the second data reading request is consistent with the identification information carried by the first data reading request.
The slave node modules in the embodiment of the application are broadcast modules except the initial node in a broadcast topological structure, and each slave node module is directly connected with the initial node module or indirectly establishes communication with the initial node module through other slave node modules; the second master device in the embodiment of the present application is a master device connected to the slave node module. Exemplarily, as shown in fig. 1, BRC1, BRC2, and BRC3 are all slave node modules, and are respectively connected to corresponding second Master devices Master1, Master2, and Master3, and configured to receive a data read request sent by the corresponding second Master device. Also, the slave node modules BRC1, BRC2, BRC3 are in communication, directly or indirectly, with the initial node module BRC0 for obtaining target data broadcast by the initial node module in accordance with the received second data read request. And then, respectively sending the acquired target data to the respectively corresponding second Master devices Master1, Master2 and Master 3. Specifically, the second data read request acquired by the slave node module is consistent with the identification information of the first data read request acquired by the initial node module, that is, the slave node module and the corresponding initial node module receive the data read requests of the same type to acquire the same target data. Optionally, if the identification information of the second data read request acquired by each slave node module is inconsistent with the identification information of the first data read request, each slave node module independently finds a slave device corresponding to the second data read request, and independently acquires the target data corresponding to the second data read request from the corresponding slave device, without acquiring the target data through the initial node module.
The slave device is configured to receive the first data reading request sent by the initial node module, and send the target data to the initial node module according to the first data reading request.
The slave device in the embodiment of the present application is specifically a slave device determined by the initial node module according to the identification information carried in the current first data reading request, and in the broadcast topology, the slave device only performs data transmission with the initial node module in the broadcast topology. Specifically, the slave device receives a first data reading request sent by an initial node module, queries corresponding target data stored in the slave device according to the first data reading request, and sends the target data to the initial node module. As shown in fig. 1, the Slave device Slave1 establishes a connection with only the initial node module BRC0, receives a data read request from the BRC0, and returns target data corresponding to the data read request to the BRC 0.
In the embodiment of the application, a broadcast module is used as a medium for data transmission between slave equipment and at least two pieces of main equipment, and the broadcast module interacts with the slave equipment through an initial node module in the broadcast module, sends a data reading request to the slave equipment and acquires target data returned by the slave equipment; then, the target data is finally transmitted to each master device through the target data transmission between the initial node module and the slave node module in the broadcasting module. Due to the fact that the plurality of broadcasting modules in the bus enable the plurality of main devices to acquire the target data of the same slave device under the condition of one-time target data reading, data transmission efficiency between the main devices and the slave devices can be improved; in addition, in the data transmission process, the slave equipment only needs to interact with the initial node module in the broadcast module, and does not need to repeatedly process data reading requests for many times, so that the power consumption of the system can be reduced.
Optionally, the broadcast topology is a two-level topology or a topology with more than two levels;
if the broadcast topology is a two-level topology, the initial node module is configured to be directly connected to each of the slave node modules;
if the broadcast topology is a topology with more than two levels, the initial node module is configured to be connected with at least one appointed slave node module, and a preset connection relationship exists between the slave node modules.
The broadcast topology in the embodiment of the present application may be a two-stage topology or a topology with more than two stages.
When the broadcast topology is a two-stage topology, the initial node module in the broadcast topology is configured to be directly connected with each slave node module, and there is no connection relationship between the slave node modules. As shown in fig. 2, the initial node module BRC0 is directly connected to the slave node modules BRC1, BRC2, and BRC3, respectively. In this case, since all the slave node modules are directly connected to the initial node module, the broadcast of the target data by the initial node module is specifically to directly send the target data to each slave node module.
When the broadcast topology is a topology with more than two levels, the initial node module in the broadcast topology is configured to be connected with part of the slave node modules, and further preset connection relationships exist among the slave node modules. Illustratively, as shown in fig. 3, a schematic diagram of a broadcast topology with three levels is shown, wherein the initial node module BRC0 is connected to the slave node module BRC1, and the slave node module BRC1 is further connected to the slave node module BRC2 and the slave node module BRC3, respectively. Illustratively, as shown in fig. 4, a topology structure with a broadcast topology structure of four levels is shown, in which the initial node module BRC0 is connected to the slave node module BRC1, the slave node module BRC1 is further connected to the slave node module BRC2, and the slave node module BRC2 is further connected to the slave node module BRC3, so as to form a connection relationship of level-by-level. In this case, since the initial node module is connected to only a part of the slave node modules, the broadcasting of the target data by the initial node module is specifically to transmit the target data to the slave node module directly connected to the initial node module, and then the slave node module gradually transmits the target data to other slave node modules which are not connected to the initial node module.
It should be understood that, in the embodiment of the present application, the three types of broadcast topologies in fig. 2, fig. 3, and fig. 4 are merely examples and are not limited, and the broadcast topology may also be a structure not shown in other figures. The hierarchical relationship of the broadcast topological structure can be specifically set according to actual requirements, and when data transmission needs high real-time performance, the broadcast topological structure is configured into a structure with fewer hierarchies, such as a structure comprising two stages of nodes, so as to improve the real-time performance of the data transmission; when the data transmission has low real-time requirement, the broadcast topology is configured to be a structure with higher hierarchy, so as to improve the time sequence of data transmission.
Optionally, the system on chip further comprises:
the system comprises a main control module and a plurality of broadcasting modules, wherein the main control module is used for acquiring a user configuration instruction, generating configuration information of a broadcasting topological structure and transmitting the configuration information to each broadcasting module, the configuration information of the broadcasting topological structure at least comprises a module type of each broadcasting module, information of a father node module of each broadcasting module and information of a child node module of each broadcasting module, the module type comprises an initial node module and a subordinate node module, the father node module of the broadcasting module is other broadcasting modules positioned at a node at the upper stage of the broadcasting module in the broadcasting topological structure, and the child node module of the broadcasting module is other broadcasting modules positioned at a node at the lower stage of the broadcasting module in the broadcasting topological structure.
In this embodiment, the system on chip shown in fig. 1 may further include a main control module 4, where the main control module 4 may obtain a user configuration instruction, generate configuration information of a current broadcast topology, and transmit the configuration information of the broadcast topology to each broadcast module of the system on chip, so that each broadcast module determines a module type and a connection relationship of the broadcast module in the corresponding broadcast topology. Specifically, the configuration information of the broadcast topology includes a module type, information of a parent node module of the broadcast module, and information of a child node module. Specifically, the module type includes an initial node module and a slave node module, and by the module type, each broadcast module can determine whether itself can directly communicate with a corresponding slave device in a broadcast topology. Specifically, the parent node module of the broadcast module is another broadcast module located at the upper-level node of the broadcast module in the broadcast topology structure, and the child node module of the broadcast module is another broadcast module located at the lower-level node of the broadcast module in the broadcast topology structure, and the connection relationship between each broadcast module and another broadcast module can be made through the information of the parent node module and the information of the child node module, so as to perform data broadcast transmission therebetween later.
Illustratively, the broadcast topology shown in fig. 3 is a structure obtained by configuring the broadcast modules BRC 0-BRC 3 according to a user configuration instruction as follows: configuring the module type of the BRC0 as an initial node module, establishing connection with a Slave device Slave1, and configuring the information of a child node module of the BRC0 as a BRC 1; the module type of the BRC1 is configured as a slave node module, the information of a parent node module of the BRC is configured as a BRC0, and the information of a child node module of the BRC is configured as a BRC 2; the module types of the BRC2 and the BRC3 are each configured as a slave node module, and configure the information of its parent node module as the BRC1, with the two slave node modules as the end node module, so that the information of the child node module is not configured for the two broadcast modules any longer.
In the embodiment of the application, the configuration information of the broadcast topological structure can be flexibly generated according to the user configuration instruction so as to flexibly construct the broadcast topological structure of the system on chip, so that the flexibility and the expansibility of data transmission of the system on chip can be improved; and the configuration information of the broadcast topological structure can be transmitted to each broadcast module, so that each broadcast module determines the module type and the connection relation of the broadcast module, and the broadcast transmission of target data can be accurately realized later.
For convenience of comparison and understanding, as shown in fig. 5, a schematic structural diagram of another type of system on chip without a broadcast module is given as a comparative example of the system on chip of the embodiment of the present application. In fig. 5, when the masters 0 to 3 all need to obtain the same target data from the Slave1, the masters 0 to 3 only need to interact with the Slave1 in sequence, the Slave1 needs to receive four data read requests, and the target data returned four times can meet the requirements of the masters 0 to Master 3. In the system-on-chip structure shown in fig. 1 to 4 in this embodiment of the application, the Slave device Slave1 only needs to interact with the initial node module, and only needs to receive a data reading request once and return target data once, so that data transmission of each master device can be completed by using the broadcast module.
The system on chip in the embodiment of the present application may be an Artificial Intelligence (AI) chip for running a neural network algorithm, for example. In the AI chip, the master device is specifically a plurality of neural network processors, and the slave device is specifically a Double Data Rate (DDR) SDRAM storing shared parameters. Because parameter sharing may need to be performed among the plurality of neural network processors when the neural network algorithm is operated, the DDR serves as the slave device storage sharing parameter, and by the system on chip structure according to the embodiment of the present application, the plurality of neural network processors can efficiently obtain the sharing parameter of the slave device DDR, and can reduce the system power consumption and save the DDR bandwidth, thereby improving the operation efficiency of the AI chip.
Example two:
fig. 6 shows a schematic flow chart of a data transmission method provided in an embodiment of the present application, where an execution subject of the data transmission method is an initial node module as described in the first embodiment, and details are as follows:
in S601, a first data reading request sent by a first master device corresponding to the initial node module is received, where the first data reading request carries identification information.
The initial node module is connected with the corresponding first master device, and receives a first data reading request sent by the first master device, wherein the first data reading request specifically carries identification information. Optionally, the identification information may include address information of target data requested by the first data read request, and the address information may include physical address information of a slave device storing the target data and specific index address information of the requested target data in the slave device. Optionally, the identification information may also be device number information of the specified slave device.
In S602, according to the identification information, the first data reading request is sent to a corresponding slave device, and target data returned by the slave device is received.
After receiving a data reading request sent by a first master device, determining a corresponding slave device according to identification information contained in the data reading request, and sending the data reading request to the slave device. And then receiving the target data returned by the slave device.
In S603, the target data is sent to the first master device and broadcast to the slave node module corresponding to the initial node module.
After receiving the target data, the initial node module sends the target data to a first master device correspondingly connected with the initial node module, and broadcasts the target data to a slave node module corresponding to the initial node module. Specifically, the initial node module may determine the corresponding slave node module according to the configuration information of the broadcast topology stored in the initial node module. Specifically, broadcasting the target data to the slave node module corresponding to the initial node module includes: and according to the configuration information of the broadcast topological structure stored in the slave node module, sending the target data to the slave node module directly connected with the initial node module, namely sending the target data to the child node module corresponding to the initial node module. The child node module is a broadcast module located at a node of a next level of the initial node module in the broadcast topology structure. And then, the sub-node module determines whether the target data sent by the initial node module needs to be further transmitted to more slave node modules which are not directly connected with the initial node module step by step according to the configuration information of the broadcast topological structure.
Optionally, the initial node module first obtains the slave node module corresponding to the initial node module, and if it is detected that the corresponding slave node module is in a state ready to receive the target data, broadcasts the target data to the corresponding slave node module.
Optionally, after the step S601, the method further includes:
caching the first data reading request;
correspondingly, the step S603 includes:
when detecting that a slave node module corresponding to the initial node module has a second data reading request carrying the identification information, sending the target data to the first master device and broadcasting the target data to a corresponding slave node module of the initial node module.
In this embodiment of the application, after receiving a first data read request sent by a first master device, an initial node module caches the first data read request. After the initial node module receives the target data, detecting whether a second data reading request consistent with the identification information of the first data reading request cached by the initial node module exists in a slave node module corresponding to the initial node module. When detecting that a slave node module corresponding to the initial node module has a second data reading request carrying the same identification information, it indicates that the master device corresponding to the slave node module also needs to acquire target data, and the slave node module also receives the same data reading request and is ready to receive the target data. At this time, the target data is sent to the first master device and is broadcast to the slave node module corresponding to the initial node module. Optionally, if an abnormal node module exists in the slave node module corresponding to the initial node module, the initial node module directly broadcasts the target data to the slave node modules other than the abnormal node module. The abnormal node module is specifically a slave node module which cannot be detected to have the second data reading request within a preset detection duration. When the abnormal node module exists, the initial node module can also broadcast the target data to the slave node modules except the abnormal node module in time, and the data reading state of the abnormal node module does not need to be waited all the time, so that the timeliness and the effectiveness of data broadcasting can be improved.
In the embodiment of the application, the first data reading request is cached so that the first data reading request is compared with the second data reading request existing in the slave node module after the target data is received, and the comparison is used as a trigger condition of the target data broadcast, so that the initial node module can broadcast the target data at a proper time, and the accuracy and the effectiveness of data transmission can be improved.
Optionally, before the step S601, the method further includes:
acquiring configuration information of a broadcast topological structure, and determining the type of the module and the connection relation with other broadcast modules according to the configuration information of the broadcast topological structure.
In the embodiment of the application, before data transmission, configuration information of a broadcast topology configured by a master control module is obtained, a node type of the master control module is determined as an initial node module according to the configuration information of the broadcast topology, and a connection relationship between the initial node module and other broadcast modules is determined.
In the embodiment of the application, the broadcast module specifically determines that the module type of the broadcast module is an initial node module type by acquiring configuration information of the broadcast topological structure, and determines a slave node module which has a connection relation with the initial node module in the broadcast topological structure, so that the data broadcast operation can be accurately completed later.
In the embodiment of the present application, an initial node module performs operations of sending a first data reading request to a slave device and receiving target data, and then sends the target data to a second master device corresponding to the initial node module and broadcasts the target data to a slave node module corresponding to the initial node module. After the initial node module interacts with the slave equipment for one time, the target data can be finally obtained by the plurality of master equipment through data broadcasting, so that the data transmission efficiency between the master equipment and the slave equipment is improved; in addition, in the data transmission process, the slave equipment only needs to interact with the initial node module, and does not need to repeatedly process data reading requests for many times, so that the power consumption of the system can be reduced.
Example three:
fig. 7 is a schematic flow chart of another data transmission method provided in the embodiment of the present application, where an execution main body of the data transmission method is a slave node module described in the first embodiment, and details are as follows:
in S701, a second data reading request sent by a second master device corresponding to the slave node module is received, where the second data request carries identification information.
The slave node module is connected to the corresponding second master device, and receives a data reading request sent by the second master device, where the second data request carries identification information, optionally, the identification information may include address information of target data requested by the second data reading request, and the address information may include physical address information of a slave device that stores the target data and specific index address information of the requested target data in the slave device. Optionally, the identification information may also be device number information of the specified slave device.
In S702, the target data broadcast by the initial node module corresponding to the slave node module is obtained according to the second data reading request, where the initial node module has a first data reading request carrying the identification information.
And acquiring target data broadcast by the initial node module corresponding to the slave node module according to the received second data reading request, wherein the target data is data corresponding to the second data reading request. Specifically, the slave node module determines a corresponding initial node module according to configuration information of a broadcast topology structure pre-stored by the slave node module, where the initial node module has a first data read request consistent with identification information carried in a second data read request. Specifically, if the slave node module is directly connected to the initial node module, the slave node module directly receives the target data sent by the initial node module; if the slave node module is not directly connected to the initial node module, but indirectly communicates with the initial node module through other slave node modules in between, the slave node module indirectly obtains the target data broadcasted by the initial node module by receiving the target data forwarded by its parent node module (i.e. the broadcast module of the node at the upper level of the slave node module in the broadcast topology).
In S703, the target data is sent to the second master device.
After receiving the target data, the slave node module at least sends the received target data to the second master device, so that the second master device obtains the data corresponding to the data reading request.
Optionally, the slave node module has a corresponding child node module, and correspondingly, the step S703 includes:
and sending the target data to the second master device and broadcasting the target data to the child node modules corresponding to the slave node modules.
In this embodiment, the slave node module is specifically a broadcast module located at an intermediate node in a broadcast topology structure with more than two levels, that is, the slave node module has a corresponding child node module, and the child node module is specifically another broadcast module located at a node at a next level of the slave node module in the broadcast topology structure. Illustratively, the slave node module of the embodiment of the present application may be the slave node module BRC1 as shown in fig. 3, which has corresponding child node modules BRC2 and BRC 3. For example, the slave node module of the embodiment of the present application may be the slave node module BRC1 shown in fig. 4, which has a corresponding child node module BRC 2; or the slave node module of the embodiment of the present application may be the slave node module BRC2 as shown in fig. 4, which has a corresponding child node module BRC 3. Correspondingly, the slave node module further broadcasts the target data to the child node modules of the slave node module in addition to transmitting the target data to the second master device correspondingly connected with the slave node module, so that more master devices can obtain the target data through the broadcasting module.
Optionally, after the step S701, the method further includes:
caching the second data reading request;
correspondingly, the sub-node module that transmits the target data to the second master device and broadcasts the target data to the slave node module includes:
when detecting that the same data reading request exists in the sub-node modules of the slave node module, sending the target data to the second master device and broadcasting the target data to the sub-node modules of the slave node module.
In this embodiment of the application, after receiving a second data read request sent by a second master device, a slave node module caches the second data read request. After the slave node module receives the target data, detecting whether a child node module of the slave node module has a second data reading request consistent with a second data reading request cached by the slave node module. When detecting that the same data reading request exists in the child node module of the slave node module, it indicates that the master device corresponding to the child node module also needs to acquire the target data, and the child node module receives the same data reading request and is ready to receive the target data. At this time, the target data is transmitted to the second master device and the target data is broadcast to the child node modules of the slave node module.
In the embodiment of the application, the second data reading request is cached, so that the second data reading request is compared with the second data reading request existing in the sub-node module after the target data is received, and the comparison is used as a trigger condition of the target data broadcast, so that the sub-node module can further broadcast the target data at a proper time, and therefore the accuracy and the effectiveness of data transmission can be improved.
Optionally, before the step S701, the method further includes:
acquiring configuration information of a broadcast topological structure, and determining the type of the module and the connection relation with other broadcast modules according to the configuration information of the broadcast topological structure.
In the embodiment of the present application, before data transmission is performed, topology information configured by a master control module is obtained, a node type of the master control module is determined as a slave node module according to the topology information, and information of other broadcast modules (i.e., parent node modules) of a previous-stage node connected to the slave node module and information of other broadcast modules (i.e., child node modules) of a next-stage node connected to the slave node module are determined. Specifically, the unique identification number of the parent node module is used as the information of the parent node module, and the unique identification number of the child node module is used as the information of the child node module. Optionally, if there is no corresponding child node module in the slave node module, the information of the child node module may be null, or characters such as "null", "0", "N/a" may be used as the information of the child node module. By acquiring the configuration information of the broadcast topology, the position of the slave node module in the broadcast topology can be accurately determined, so that the slave node module can accurately transmit data.
In the embodiment of the application, because the slave node module and the second master device corresponding to the slave node module do not need to interact with the slave device, the second master device can finally obtain the target data only by obtaining the target data broadcast by the initial node module corresponding to the slave node module. The second master device can acquire the target data through the slave node module without waiting for interaction with the slave devices one by one, so that the data transmission efficiency between the master device and the slave devices can be improved; in addition, the slave device does not need to repeatedly process the data reading request of the second master device in the data transmission process, so that the system power consumption can be reduced.
Example four:
fig. 8 is a schematic structural diagram of a first broadcast module provided in an embodiment of the present application, where the broadcast module is specifically an initial node module, and for convenience of description, only a part related to the embodiment of the present application is shown:
the initial node module includes: a first receiving unit 81, a data reading request transmitting unit 82, and a first transmitting unit 83. Wherein:
a first receiving unit 81, configured to receive a first data reading request sent by a first master device corresponding to the initial node module, where the first data reading request carries identification information.
A data reading request sending unit 82, configured to send the first data reading request to a corresponding slave device according to the identification information, and receive target data returned by the slave device.
A first sending unit 83, configured to send the target data to the first master device and broadcast the target data to a slave node module corresponding to the initial node module.
Optionally, the initial node module further includes:
the cache unit is used for caching the first data reading request;
correspondingly, the first sending unit 83 is specifically configured to send the target data to the first master device and broadcast the target data to the slave node module corresponding to the initial node module when detecting that the slave node module corresponding to the initial node module already has the second data reading request carrying the identification information.
Optionally, the initial node module further includes:
the first acquisition module is used for acquiring the configuration information of the broadcast topological structure and determining the module type of the first acquisition module and the connection relation with other broadcast modules according to the configuration information of the broadcast topological structure.
Fig. 9 shows a schematic structural diagram of a second broadcast module provided in an embodiment of the present application, where the broadcast module is specifically a slave node module, and for convenience of description, only a part related to the embodiment of the present application is shown:
the slave node module includes: a second receiving unit 91, a target data acquiring unit 92, and a second transmitting unit 93. Wherein:
a second receiving unit 91, configured to receive a second data reading request sent by a second master device corresponding to the slave node module.
A target data obtaining unit 92, configured to obtain, according to the second data reading request, target data broadcast by an initial node module corresponding to the slave node module, where the initial node module has a first data reading request carrying the identification information.
A second sending unit 93, configured to send the target data to the second master device.
Optionally, the slave node module includes a child node module, and correspondingly, the second sending unit 93 is specifically configured to send the target data to the second master device and broadcast the target data to the child node module of the slave node module.
Optionally, the slave node module further comprises:
and the second acquisition module is used for acquiring the configuration information of the broadcast topological structure and determining the module type of the second acquisition module and the connection relation with other broadcast modules according to the configuration information of the broadcast topological structure.
It should be noted that, for the information interaction, execution process, and other contents between the above-mentioned devices/units, the specific functions and technical effects thereof are based on the same concept as those of the embodiment of the method of the present application, and specific reference may be made to the part of the embodiment of the method, which is not described herein again.
It should be clear to those skilled in the art that, for convenience and simplicity of description, the foregoing division of the functional units and modules is only used for illustration, and in practical applications, the above function distribution may be performed by different functional units and modules as needed, that is, the internal structure of the apparatus may be divided into different functional units or modules to perform all or part of the above described functions. Each functional unit and module in the embodiments may be integrated in one processing unit, or each unit may exist alone physically, or two or more units are integrated in one unit, and the integrated unit may be implemented in a form of hardware, or in a form of software functional unit. In addition, specific names of the functional units and modules are only for convenience of distinguishing from each other, and are not used for limiting the protection scope of the present application. The specific working processes of the units and modules in the system may refer to the corresponding processes in the foregoing method embodiments, and are not described herein again.
It should be understood that, in the embodiment of the present application, the two types of broadcast modules, namely, the initial node module and the dependent node module, may have the same or different physical structures. Optionally, the initial node module and the dependent node module are broadcast modules with different functions obtained by performing different line gating rules on broadcast modules with the same entity structure or installing different computer programs.
Exemplarily, fig. 10 shows a schematic physical structure diagram of a broadcasting module provided in an embodiment of the present application. As shown in fig. 10, the broadcast module includes a read command buffer submodule ARBUF, a read data buffer submodule RBUF, a command gate module AR CMD Gating, a first selector MUX-0 and a second selector MUX-1, wherein:
the read command cache submodule ARBUF is used for accessing an external main device through a read command Channel AR Channel to acquire a data read request sent by the main device, and the data read request carries identification information.
The read command cache submodule ARBUF accesses an external main device through a read command Channel AR Channel to obtain a data read request sent by the main device, wherein the data read request carries identification information. The identification information may include address information of target data requested by the data read request, and the address information may include physical address information of a slave device storing the target data and specific index address information of the requested target data in the slave device. Optionally, the identification information may also be device number information of the specified slave device.
The input end of the instruction gate module AR CMD gaming is connected with the output end of the read command cache submodule ARBUF and is used for receiving the data reading request transmitted by the read command cache submodule ARBUF; the output end of the command gate module AR CMD Gating is connected to an external slave device, and is configured to be in an open state if the broadcast module is configured as an initial node module, determine a slave device corresponding to the data reading request from the external slave device according to the identification information carried in the data reading request, and send the data reading request to the corresponding slave device; and the instruction gate module AR CMD Gating is configured to disable the data reading request from being issued if the broadcast module is configured as a slave node module.
The command gate module AR CMD Gating according to the embodiment of the present application is specifically configured to control the outgoing of the data reading request, and specifically, the outgoing of the data reading request is controlled through the state configuration (including the on state and the off state) of the output end of the command gate module AR CMD Gating. Specifically, the input terminal of the command gate module ARCMD Gating is connected to the output terminal of the read command buffer submodule ARBUF, and receives a data read request transmitted from the read command buffer submodule ABRUF. The output end of the command gate module AR CMD Gating is connected to an external slave device, and specifically, a physical connection may be established with all slave devices outside the broadcast module on the system on chip in advance. When the broadcast module is configured as an initial node module, the output end of the command gate module AR CMD Gating is configured in an on state, and at this time, after the command gate module AR cmdging receives a data reading request, according to identification information carried in the data reading request, slave devices corresponding to a current data reading request are determined from all external slave devices which establish physical connection in advance, and the data reading request is sent to the corresponding slave devices. Specifically, if the broadcast module is configured as a slave node module, the output terminal of the command gate module AR CMD Gating is in an off state, and the read command cache submodule ABRUF cannot send the data read request to the outside.
A first selector MUX-0, a first input terminal of the first selector MUX-0 being connected to the external slave device, configured to obtain target data from the corresponding slave device if the broadcast module is configured as the initial node module; if the broadcast module is configured as a slave node module, the second input terminal of the first selector is configured to be connected with a parent node module of the broadcast module, and is used for acquiring target data from the parent node module; the father node module is other broadcast modules positioned at the upper-level nodes of the broadcast modules in a broadcast topological structure.
And when the broadcast module is configured as an initial node module, acquiring target data from the corresponding slave device according to the determined slave device corresponding to the identification information carried by the data reading request. When the broadcasting module is configured as a slave node module, the second input terminal of the first selector MUX-0 is connected to the parent node module of the slave node module (i.e., other broadcasting modules located at a node higher than the broadcasting module in the broadcasting topology) through the broadcasting line BRC _ BUS, for acquiring the target data transmitted by the parent node module of the broadcasting module when the broadcasting module is configured as a slave node module. Specifically, the parent node module may be an initial node module, or may be another slave node module located between the current slave node module and the initial node module.
An input end of the read data cache submodule RBUF is connected with an output end of the first selector MUX-0, and is used for caching the target data; if the broadcasting module has a corresponding child node module, the output end of the read data cache sub-module RBUF is configured to be connected to the child node module, and is configured to send the target data to the child node module.
The input end of the read data cache submodule RBUF is connected with the output end of the first selector MUX-0 and used for caching the acquired target data. If the broadcasting module itself has a corresponding sub-node module (i.e. other broadcasting modules located at the next-level node of the broadcasting module in the broadcasting topology), an output terminal of the read data cache sub-module RBUF is configured to be connected to the sub-node module through a broadcasting line BRC _ BUS, for sending the target data to the sub-node module. Optionally, the number of the child node modules corresponding to the broadcast module may be one or more; the broadcast module may send the target data to multiple child node modules simultaneously.
A first input end and a second input end of the second selector MUX-1 are respectively connected with the read data cache submodule RBUF and the external slave device, and are used for acquiring the target data; and the output end of the second selector MUX-1 is connected with the master device through a read data Channel R Channel and is used for transmitting the target data to the master device.
A first input end of the second selector MUX-1 is connected with the read data cache submodule RBUF, and a second input end of the second selector MUX-1 is connected with an external slave device to acquire target data. Specifically, when the broadcast module needs to execute a target data broadcast operation, the second selector selects to acquire target data from the read data cache submodule RBUF through the first input end; when the broadcasting module does not need to execute the target data broadcasting operation, the second selector selects to directly acquire the target data of the slave device corresponding to the identification information of the current data reading request through the second input end. The output of the second selector MUX-1 is connected to the corresponding master device via a read data channel RChannel for transferring the target data to the master device.
Optionally, the read command cache sub-module ABRUF is further configured to, if the broadcast module is configured as a slave node module, connect with the parent node module through the broadcast line BRC _ BUS, so as to notify the parent node module that the parent node module is in a ready state where the target data can be received after the broadcast module acquires the data read request. The read command cache submodule ABRUF is further configured to, if the broadcasting module has a child node module, connect with the child node module through a broadcast line BRC _ BUS to receive a notification of a ready state of the child node module; when receiving the notification of the ready state of the broadcast module of the next-stage node, the broadcast line BRC _ BUS is controlled again to transfer the target data to the child node module.
In the embodiment of the present application, by using the structure of the broadcast module, line gating is performed, and a module type and a corresponding connection relationship of the broadcast module can be flexibly configured to be used as a medium between the master device and the slave device to flexibly implement a corresponding data transfer function, so that data transfer efficiency between the master device and the slave device is improved, and system power consumption of the system on chip is reduced.
Example five:
fig. 11 is a schematic diagram of a terminal device according to an embodiment of the present application. As shown in fig. 11, the terminal device 11 of this embodiment includes: a processor 110, a memory 111 and a computer program 112, such as a data transfer program, stored in the memory 111 and operable on the processor 110. The processor 110 executes the computer program 112 to implement the steps in the above-described data transmission method embodiments, such as steps S601 to S603 shown in fig. 6 or steps S701 to S703 shown in fig. 7. Alternatively, the processor 110, when executing the computer program 112, implements the functions of the modules/units in the device embodiments, such as the functions of the units 81 to 83 shown in fig. 8 or the functions of the units 91 to 93 shown in fig. 9.
Illustratively, the computer program 112 may be partitioned into one or more modules/units that are stored in the memory 111 and executed by the processor 110 to accomplish the present application. The one or more modules/units may be a series of computer program instruction segments capable of performing specific functions, which are used for describing the execution process of the computer program 112 in the terminal device 11. For example, the computer program 112 may be divided into a first receiving unit, a data reading request sending unit, and a first sending unit, and the specific functions of each unit are as follows:
a first receiving unit, configured to receive a first data reading request sent by a first master device corresponding to the initial node module, where the first data reading request carries identification information.
And the data reading request sending unit is used for sending the first data reading request to corresponding slave equipment according to the identification information and receiving the target data returned by the slave equipment.
And the first sending unit is used for sending the target data to the first master device and broadcasting the target data to the slave node module corresponding to the initial node module.
Alternatively, the computer program 112 may be divided into a second receiving unit, a target data acquiring unit and a second sending unit, and the specific functions of each unit are as follows:
and the second receiving unit is used for receiving a second data reading request sent by a second master device corresponding to the slave node module.
And a target data obtaining unit, configured to obtain, according to the second data reading request, target data broadcast by an initial node module corresponding to the slave node module, where the initial node module has a first data reading request carrying the identification information.
A second sending unit, configured to send the target data to the second master device.
The terminal device 11 may be a desktop computer, a notebook, a palm computer, a cloud server, or other computing devices. The terminal device may include, but is not limited to, a processor 110, a memory 111. Those skilled in the art will appreciate that fig. 11 is merely an example of a terminal device 11 and is not intended to limit the terminal device 11, and may include more or less components than those shown, or some components in combination, or different components, for example, the terminal device may also include input and output devices, network access devices, buses, etc.
The Processor 110 may be a Central Processing Unit (CPU), other general purpose Processor, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA) or other Programmable logic device, discrete Gate or transistor logic device, discrete hardware component, or the like. A general purpose processor may be a microprocessor or the processor may be any conventional processor or the like.
The storage 111 may be an internal storage unit of the terminal device 11, such as a hard disk or a memory of the terminal device 11. The memory 111 may also be an external storage device of the terminal device 11, such as a plug-in hard disk, a Smart Media Card (SMC), a Secure Digital (SD) Card, a Flash memory Card (Flash Card), and the like, which are provided on the terminal device 11. Further, the memory 111 may also include both an internal storage unit and an external storage device of the terminal device 11. The memory 111 is used for storing the computer program and other programs and data required by the terminal device. The memory 111 may also be used to temporarily store data that has been output or is to be output.
It will be apparent to those skilled in the art that, for convenience and brevity of description, only the above-mentioned division of the functional units and modules is illustrated, and in practical applications, the above-mentioned function distribution may be performed by different functional units and modules according to needs, that is, the internal structure of the apparatus is divided into different functional units or modules to perform all or part of the above-mentioned functions. Each functional unit and module in the embodiments may be integrated in one processing unit, or each unit may exist alone physically, or two or more units are integrated in one unit, and the integrated unit may be implemented in a form of hardware, or in a form of software functional unit. In addition, specific names of the functional units and modules are only for convenience of distinguishing from each other, and are not used for limiting the protection scope of the present application. The specific working processes of the units and modules in the system may refer to the corresponding processes in the foregoing method embodiments, and are not described herein again.
In the above embodiments, the description of each embodiment has its own emphasis, and reference may be made to the related description of other embodiments for parts that are not described or recited in any embodiment.
Those of ordinary skill in the art will appreciate that the various illustrative elements and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware or combinations of computer software and electronic hardware. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the implementation. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.
In the embodiments provided in the present application, it should be understood that the disclosed apparatus/terminal device and method may be implemented in other ways. For example, the above-described embodiments of the apparatus/terminal device are merely illustrative, and for example, the division of the modules or units is only one logical division, and there may be other divisions when actually implemented, for example, a plurality of units or components may be combined or integrated into another system, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, devices or units, and may be in an electrical, mechanical or other form.
The units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of the embodiment.
In addition, functional units in the embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit. The integrated unit can be realized in a form of hardware, and can also be realized in a form of a software functional unit.
The integrated modules/units, if implemented in the form of software functional units and sold or used as separate products, may be stored in a computer readable storage medium. Based on such understanding, all or part of the flow in the method of the embodiments described above can be realized by a computer program, which can be stored in a computer-readable storage medium and can realize the steps of the embodiments of the methods described above when the computer program is executed by a processor. Wherein the computer program comprises computer program code, which may be in the form of source code, object code, an executable file or some intermediate form, etc. The computer-readable medium may include: any entity or device capable of carrying the computer program code, recording medium, usb disk, removable hard disk, magnetic disk, optical disk, computer Memory, Read-Only Memory (ROM), Random Access Memory (RAM), electrical carrier wave signals, telecommunications signals, software distribution medium, and the like. It should be noted that the computer readable medium may contain content that is subject to appropriate increase or decrease as required by legislation and patent practice in jurisdictions, for example, in some jurisdictions, computer readable media does not include electrical carrier signals and telecommunications signals as is required by legislation and patent practice.
The above-mentioned embodiments are only used for illustrating the technical solutions of the present application, and not for limiting the same; although the present application has been described in detail with reference to the foregoing embodiments, it should be understood by those of ordinary skill in the art that: the technical solutions described in the foregoing embodiments may still be modified, or some technical features may be equivalently replaced; such modifications and substitutions do not substantially depart from the spirit and scope of the embodiments of the present application and are intended to be included within the scope of the present application.

Claims (11)

1. A system on a chip, the system on a chip comprising at least two masters, at least one slave, and a bus; the bus comprises at least two broadcasting modules, and each broadcasting module is correspondingly connected with one main device; wherein the broadcast module configured as an initial node in a broadcast topology is an initial node module, and the broadcast modules other than the initial node module in the broadcast topology are slave node modules; the broadcast modules are connected with corresponding main equipment, and the broadcast modules are also connected with each other; the initial node module can directly transmit commands and data with slave equipment according to the data reading request;
the main device is used for sending a data reading request and acquiring target data through the broadcasting module;
the initial node module is configured to receive a first data reading request sent by a first master device corresponding to the initial node module; according to the identification information carried in the first data reading request, sending the first data reading request to a slave device corresponding to the identification information, receiving the target data returned by the slave device, sending the target data to the first master device, and broadcasting the target data to a slave node module of the initial node module, including: sending the target data to the first master device, and broadcasting the target data to a slave node module corresponding to the initial node module when detecting that the slave node module corresponding to the initial node module has a second data reading request carrying the identification information;
the slave node module is configured to receive a second data reading request sent by a second master device corresponding to the slave node module, acquire target data broadcast by the initial node module according to the second data reading request, and send the target data to the second master device, where identification information carried in the second data reading request is consistent with the identification information carried in the first data reading request, and the slave device cannot directly interact with the slave device; if the second data reading request of the slave node module is inconsistent with the identification information of the first data reading request, the slave node module independently acquires target data corresponding to the second data reading request from corresponding slave equipment;
the slave device is configured to receive the first data reading request sent by the initial node module, and send the target data to the initial node module according to the first data reading request.
2. The system on a chip of claim 1, wherein the broadcast topology is a two-level topology or a topology with more than two levels;
if the broadcast topology is a two-level topology, the initial node module is configured to be directly connected to each of the slave node modules;
if the broadcast topology is a topology with more than two levels, the initial node module is configured to be connected with at least one appointed slave node module, and a preset connection relationship exists between the slave node modules.
3. The system-on-chip of claim 1, wherein the system-on-chip further comprises:
the main control module is configured to obtain a user configuration instruction, generate configuration information of a broadcast topology structure, and transmit the configuration information to each broadcast module, where the configuration information of the broadcast topology structure at least includes a module type of each broadcast module, information of a parent node module of each broadcast module, and information of a child node module of each broadcast module, the module type includes an initial node module and a slave node module, the parent node module of the broadcast module is another broadcast module located at a node of an upper level of the broadcast module in the broadcast topology structure, and the child node module of the broadcast module is another broadcast module located at a node of a lower level of the broadcast module in the broadcast topology structure.
4. A data transmission method is applied to an initial node module, and is characterized in that the initial node module is a broadcast module configured as an initial node in a broadcast topology structure, and the broadcast modules except the initial node module in the broadcast topology structure are slave node modules; each broadcast module is correspondingly connected with a main device, the main device is used for sending a data reading request and acquiring target data through the broadcast module, and the broadcast modules are connected with the corresponding main devices and have a connection relation; the initial node module can directly transmit commands and data with slave equipment according to the data reading request;
the method comprises the following steps:
receiving a first data reading request sent by a first master device corresponding to the initial node module, wherein the first data reading request carries identification information;
according to the identification information, sending the first data reading request to corresponding slave equipment, and receiving target data returned by the slave equipment;
sending the target data to the first master device and broadcasting the target data to a slave node module corresponding to the initial node module; the method specifically comprises the following steps: when detecting that a second data reading request carrying the identification information exists in a slave node module corresponding to the initial node module, sending the target data to the first master device and broadcasting the target data to the slave node module corresponding to the initial node module; at this time, the slave node module cannot directly interact with the slave device.
5. A data transmission method is applied to a slave node module, and is characterized in that a broadcast module configured as an initial node in a broadcast topology is an initial node module, and the slave node module is the broadcast module except the initial node module in the broadcast topology; each broadcast module is correspondingly connected with a main device, the main device is used for sending a data reading request and acquiring target data through the broadcast module, and the broadcast modules are connected with the corresponding main devices and have a connection relation; the initial node module can directly transmit commands and data with slave equipment according to the data reading request;
the method comprises the following steps:
receiving a second data reading request sent by a second master device corresponding to the slave node module, wherein the second data reading request carries identification information;
acquiring target data broadcast by an initial node module corresponding to the slave node module according to the second data reading request, wherein the initial node module has a first data reading request carrying the identification information; the method comprises the following steps: if the identification information carried by the second data reading request is consistent with the identification information carried by the first data request carried by the initial node module, the slave node module acquires the target data broadcast by the initial node module, and at the moment, the slave node module cannot directly interact with slave equipment;
if the identification information carried by the second data reading request is inconsistent with the identification information of the first data reading request, the slave node module independently acquires target data corresponding to the second data reading request from corresponding slave equipment;
and sending the target data to the second main device.
6. The data transfer method of claim 5, wherein the slave node module has a corresponding child node module, and correspondingly, the sending the target data to the second master device comprises:
and sending the target data to the second master device and broadcasting the target data to the child node modules corresponding to the slave node modules.
7. The data transfer method of claim 4 or 5, wherein the method further comprises:
acquiring configuration information of a broadcast topological structure, and determining the type of the module and the connection relation with other broadcast modules according to the configuration information of the broadcast topological structure.
8. A broadcast module, specifically an initial node module, comprising:
a first receiving unit, configured to receive a first data reading request sent by a first master device corresponding to the initial node module, where the first data reading request carries identification information;
a data reading request sending unit, configured to send the first data reading request to a corresponding slave device according to the identification information, and receive target data returned by the slave device;
a first sending unit, configured to send the target data to the first master device and broadcast the target data to a slave node module corresponding to the initial node module; the method comprises the following steps: sending the target data to the first master device, and broadcasting the target data to a slave node module corresponding to the initial node module when detecting that the slave node module corresponding to the initial node module has a second data reading request carrying the identification information; at this time, the slave node module cannot directly interact with the slave device;
or, the broadcast module is specifically a slave node module, and includes:
a second receiving unit, configured to receive a second data reading request sent by a second master device corresponding to the slave node module;
a target data obtaining unit, configured to obtain, according to the second data reading request, target data broadcast by an initial node module corresponding to the slave node module, where the initial node module has a first data reading request carrying the identification information; the method is specifically used for: if the identification information carried by the second data reading request is consistent with the identification information carried by the first data request carried by the initial node module, the slave node module acquires the target data broadcast by the initial node module, and at the moment, the slave node module cannot directly interact with slave equipment; if the identification information carried by the second data reading request is inconsistent with the identification information of the first data reading request, the slave node module independently acquires target data corresponding to the second data reading request from corresponding slave equipment;
a second transmitting unit configured to transmit the target data to the second master device;
each broadcasting module is correspondingly connected with a main device; wherein the broadcast module configured as an initial node in a broadcast topology is an initial node module, and the broadcast modules other than the initial node module in the broadcast topology are slave node modules; the broadcast modules are connected with corresponding main equipment, and the broadcast modules are also connected with each other; the initial node module can directly transmit commands and data with slave equipment according to the data reading request; when the second data reading request received by the slave node module is consistent with the first data reading request received by the initial node module, the slave node module cannot directly interact with the slave device.
9. A broadcast module, comprising:
the read command cache submodule is used for accessing an external main device through a read command channel so as to obtain a data read request sent by the main device, and the data read request carries identification information;
the input end of the instruction gate module is connected with the output end of the read command cache submodule and is used for receiving the data reading request transmitted by the read command cache submodule; the output end of the instruction gate module is connected with an external slave device, and is used for determining the slave device corresponding to the data reading request from the external slave device according to the identification information carried by the data reading request if the broadcast module is configured as an initial node module, and sending the data reading request to the corresponding slave device; the broadcast module is configured as a slave node module, the output end of the command gate module is in a closed state, and the data reading request is prohibited from being sent out;
a first selector, a first input end of which is connected to the external slave device, and is configured to obtain target data from the corresponding slave device if the broadcast module is configured as the initial node module; if the broadcast module is configured as a slave node module, the second input terminal of the first selector is configured to be connected with a parent node module of the broadcast module, and is used for acquiring target data from the parent node module; the parent node module is other broadcast modules positioned at the upper-level nodes of the broadcast modules in a broadcast topological structure;
the input end of the read data cache submodule is connected with the output end of the first selector and is used for caching the target data; if the broadcasting module has a corresponding child node module, the output end of the read data cache sub-module is configured to be connected with the child node module, and is used for sending the target data to the child node module; wherein the child node module is another broadcast module located at a next-level node of the broadcast module in a broadcast topology structure;
a first input end and a second input end of the second selector are respectively connected with the read data cache submodule and the external slave device, and are used for acquiring the target data; the output end of the second selector is connected with the main device through a read data channel and used for transmitting the target data to the main device;
each broadcasting module is correspondingly connected with a main device; wherein the broadcast module configured as an initial node in a broadcast topology is an initial node module, and the broadcast modules other than the initial node module in the broadcast topology are slave node modules; the broadcast modules are connected with corresponding main equipment, and the broadcast modules are also connected with each other; the initial node module can directly transmit commands and data with slave equipment according to the data reading request; when the second data reading request received by the slave node module is consistent with the first data reading request received by the initial node module, the slave node module cannot directly interact with the slave device.
10. A terminal device comprising a memory, a processor and a computer program stored in the memory and executable on the processor, characterized in that the computer program, when executed by the processor, causes the terminal device to carry out the steps of the method according to any one of claims 4 to 7.
11. A computer-readable storage medium, in which a computer program is stored which, when being executed by a processor, causes a terminal device to carry out the steps of the method according to any one of claims 4 to 7.
CN202010500891.2A 2020-06-04 2020-06-04 System on chip, data transmission method and broadcast module Active CN111797051B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010500891.2A CN111797051B (en) 2020-06-04 2020-06-04 System on chip, data transmission method and broadcast module
PCT/CN2021/088442 WO2021244168A1 (en) 2020-06-04 2021-04-20 System on chip, data transmission method, and broadcast modules

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010500891.2A CN111797051B (en) 2020-06-04 2020-06-04 System on chip, data transmission method and broadcast module

Publications (2)

Publication Number Publication Date
CN111797051A CN111797051A (en) 2020-10-20
CN111797051B true CN111797051B (en) 2022-05-17

Family

ID=72803009

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010500891.2A Active CN111797051B (en) 2020-06-04 2020-06-04 System on chip, data transmission method and broadcast module

Country Status (2)

Country Link
CN (1) CN111797051B (en)
WO (1) WO2021244168A1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111797051B (en) * 2020-06-04 2022-05-17 深圳云天励飞技术股份有限公司 System on chip, data transmission method and broadcast module
CN112822127B (en) * 2020-12-29 2023-07-04 北京灵汐科技有限公司 Data broadcasting method, device, chip and medium of network-on-chip
CN112367236B (en) * 2021-01-12 2021-04-06 南京芯驰半导体科技有限公司 Data scheduling method and system of LIN bus
EP4333545A4 (en) * 2021-05-28 2024-06-19 Huawei Digital Power Tech Co Ltd Access method and communication apparatus
CN117319946A (en) * 2023-08-30 2023-12-29 深圳市志奋领科技有限公司 Wireless communication method, system, device and storage medium

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05158891A (en) * 1991-12-06 1993-06-25 Fujitsu Ltd Response information collecting system for multi-addres transmission
CN100365602C (en) * 2004-12-31 2008-01-30 北京中星微电子有限公司 Apparatus for realizing access of driven devices on a unified bus by a plurality of active devices
US7246188B2 (en) * 2005-02-10 2007-07-17 Qualcomm Incorporated Flow control method to improve bus utilization in a system-on-a-chip integrated circuit
US7617343B2 (en) * 2005-03-02 2009-11-10 Qualcomm Incorporated Scalable bus structure
JP2007241612A (en) * 2006-03-08 2007-09-20 Matsushita Electric Ind Co Ltd Multi-master system
US7493468B2 (en) * 2006-06-01 2009-02-17 International Business Machines Corporation Method for broadcasting instructions/data to a plurality of processors in a multiprocessor device via aliasing
KR100813256B1 (en) * 2006-06-23 2008-03-13 삼성전자주식회사 Apparatus and method for arbitrating bus access
CN100524252C (en) * 2007-09-20 2009-08-05 华为技术有限公司 Embedded system chip and data read-write processing method
KR20120097831A (en) * 2011-02-25 2012-09-05 삼성전자주식회사 System on chip bus system
US9009446B2 (en) * 2012-08-02 2015-04-14 Oracle International Corporation Using broadcast-based TLB sharing to reduce address-translation latency in a shared-memory system with electrical interconnect
CN107341129B (en) * 2016-04-29 2021-06-29 上海磁宇信息科技有限公司 Cell array computing system and testing method thereof
KR20180062807A (en) * 2016-12-01 2018-06-11 삼성전자주식회사 System interconnect and system on chip having the same
CN108121679B (en) * 2017-08-07 2021-01-01 鸿秦(北京)科技有限公司 Embedded SoC system bus and protocol conversion bridging device thereof
CN110674075B (en) * 2019-09-27 2023-03-10 山东华芯半导体有限公司 Method and system for realizing AXI bus broadcasting mechanism
CN111797051B (en) * 2020-06-04 2022-05-17 深圳云天励飞技术股份有限公司 System on chip, data transmission method and broadcast module

Also Published As

Publication number Publication date
CN111797051A (en) 2020-10-20
WO2021244168A1 (en) 2021-12-09

Similar Documents

Publication Publication Date Title
CN111797051B (en) System on chip, data transmission method and broadcast module
US5490253A (en) Multiprocessor system using odd/even data buses with a timeshared address bus
US6665742B2 (en) System for reconfiguring a first device and/or a second device to use a maximum compatible communication parameters based on transmitting a communication to the first and second devices of a point-to-point link
US6760838B2 (en) System and method of initializing and determining a bootstrap processor [BSP] in a fabric of a distributed multiprocessor computing system
CN104346317B (en) Shared resource access method and device
US7464115B2 (en) Node synchronization for multi-processor computer systems
CN114048164B (en) Chip interconnection method, system, device and readable storage medium
CN110119304B (en) Interrupt processing method and device and server
CN114338594B (en) ARP (Address resolution protocol) response-substituting method, device, equipment and storage medium in Kubernetes environment
US20120221747A1 (en) Method for reordering the request queue of a hardware accelerator
CN116243995B (en) Communication method, communication device, computer readable storage medium, and electronic apparatus
JP2022530873A (en) Machine learning model update for machine learning accelerators
CN108845964B (en) Dynamic identification method for CPS (cyber physical system) main node based on UM-BUS (UM-BUS)
US20210334143A1 (en) System for cooperation of disaggregated computing resources interconnected through optical circuit, and method for cooperation of disaggregated resources
US20230376442A1 (en) Enabling a Multi-Chip Daisy Chain Topology using Peripheral Component Interconnect Express (PCIe)
CN116303207A (en) Bus transmission method, device, equipment and storage medium
CN108829624B (en) CPS node attribute data and function method code storage and organization method
CN117033275B (en) DMA method and device between acceleration cards, acceleration card, acceleration platform and medium
CN113177015A (en) Frame header-based serial port communication method and serial port chip
CN115114042A (en) Storage data access method and device, electronic equipment and storage medium
CN112256426A (en) Master-slave communication system with bus arbiter and communication method
CN108845965B (en) Dynamic identification method for CPS slave node based on UM-BUS BUS
CN114547034A (en) Data query method, device, equipment and storage medium
CN114281499A (en) Interrupt transmission processing method and system during bus interconnection
CN108845966B (en) CPS node function parameter access method

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 518000 1/F, 17 Building, Shenzhen Dayun Software Town, 8288 Longgang Avenue, Henggang Street, Longgang District, Shenzhen City, Guangdong Province

Applicant after: Shenzhen Yuntian lifeI Technology Co., Ltd

Address before: 518000 1/F, 17 Building, Shenzhen Dayun Software Town, 8288 Longgang Avenue, Henggang Street, Longgang District, Shenzhen City, Guangdong Province

Applicant before: SHENZHEN INTELLIFUSION TECHNOLOGIES Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant