Hardware abstract data structure, data processing method and system
09804985 ยท 2017-10-31
Assignee
Inventors
- Cissy Yuan (Shenzhen, CN)
- Erkun Mao (Shenzhen, CN)
- Jian WANG (Shenzhen, CN)
- Xuehong Tian (Shenzhen, CN)
- Daibing Zeng (Shenzhen, CN)
- Wanting Tian (Shenzhen, CN)
- Qian CHEN (Shenzhen, CN)
Cpc classification
G06F5/06
PHYSICS
G06F7/78
PHYSICS
International classification
G06F7/78
PHYSICS
G06F5/06
PHYSICS
Abstract
A Hardware Abstract Data Structure (HADS) includes a General Interface (GI), a Coherence Interface (CI), a Control and Configuration Logic (CCL), an Intelligence Logic (IL) and a Memory Pool (MP), wherein the GI is arranged to implement intercommunion between the HADS and a processor; the CI is arranged to implement coherence storage between multiple processors; the CCL is arranged to, in response to a command received by the GI, configure a hardware data structure for the MP; the IL is arranged to complete a large amount of simple and frequent data processing; and the MP is arranged to store data. Correspondingly, a method and data processing system are also disclosed. Through the disclosure, the HADS which is dynamically configurable, flexible, efficient, universal in interface and good in interconnectivity can be implemented to improve the data processing efficiency.
Claims
1. A Hardware Abstract Data Structure (HADS), comprising a General Interface (GI), a Control and Configuration Logic (CCL) and a Memory Pool (MP), wherein the GI is arranged to implement intercommunion between the HADS and a processor, receive a configuration command from the processor and send the configuration command to the CCL, the configuration command comprising at least information of a hardware data structure requiring to be configured, wherein the CCL is arranged to, in response to the configuration command received by the GI, configure the hardware data structure for the MP such that a memory block in the MP is configured in the required hardware data structure, the hardware data structure requiring to be configured is selected by the processer from a plurality of hardware data structures, and wherein the MP is arranged to store data.
2. The HADS according to claim 1, further comprising a Coherence Interface (CI), arranged to make multiple cores interconnected and directly access the data.
3. The HADS according to claim 2, further comprising an Intelligence Logic (IL), wherein the CCL is further arranged to, in response to a command received by the GI, control data transmission between the MP and an interface, data processing in the IL and bypass of the data, and wherein the IL is arranged to process the data stored in the MP under the control of the CCL.
4. The HADS according to claim 3, wherein the IL is further arranged to output the processed data or write the processed data back to the MP under the control of the CCL.
5. A data processing system, comprising a processor and a Hardware Abstract Data Structure (HADS) according to claim 2.
6. The system according to claim 5, wherein the processor is a local processor and/or a remote processor.
7. The HADS according to claim 1, further comprising an Intelligence Logic (IL), wherein the CCL is further arranged to, in response to a command received by the GI, control data transmission between the MP and an interface, data processing in the IL and bypass of the data, and wherein the IL is arranged to process the data stored in the MP under the control of the CCL.
8. The HADS according to claim 7, wherein the IL is further arranged to output the processed data or write the processed data back to the MP under the control of the CCL.
9. A data processing system, comprising a processor and a Hardware Abstract Data Structure (HADS) according to claim 8.
10. A data processing system, comprising a processor and a Hardware Abstract Data Structure (HADS) according to claim 7.
11. A data processing system, comprising a processor and a Hardware Abstract Data Structure (HADS) according to claim 1.
12. The system according to claim 11, wherein the processor is a local processor and/or a remote processor.
13. A data processing method, comprising: configuring, by a processor, a Hardware Abstract Data Structure (HADS) such that a memory block in the HADS is configured in a required hardware data structure; and storing data by using the configured memory block, wherein the step of configuring, by a processor, an HADS such that a memory block in the HADS is configured in a required hardware data structure comprises: selecting, by the processor, a hardware data structure requiring to be configured from a plurality of hardware data structures and sending a configuration command to a Control and Configuration Logic (CCL) through a General Interface (GI), wherein the configuration command at least comprises information of the hardware data structure requiring to be configured; and in response to the configuration command, configuring, by the CCL, the hardware data structure for a Memory Pool (MP) such that the memory block in the MP is configured in the required hardware data structure.
14. The method according to claim 13, further comprising: directly accessing, by the processor, the data in the MP through a Coherence Interface (CI) or a GI; and controlling, by the CCL, data transmission between the MP and an interface, data processing in an Intelligence Logic (IL) and bypass of the data between the CI and the GI.
15. The method according to claim 14, further comprising: controlling, by the CCL, the IL to output the processed data or write the processed data back to the MP.
16. The method according to claim 15, wherein the processor is a local processor and/or a remote processor.
17. The method according to claim 14, wherein the processor is a local processor and/or a remote processor.
18. The method according to claim 13, wherein the processor is a local processor and/or a remote processor.
19. The method according to claim 13, wherein the processor is a local processor and/or a remote processor.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
DETAILED DESCRIPTION
(14) The basic idea of the embodiment of the disclosure is that an HADS includes that: a GI, a CCL and an MP, wherein the GI is arranged to implement intercommunion between the HADS and the processor; the CCL is arranged to, in response to a configuration command received by the GI, configure a hardware data structure for the MP; and the MP is arranged to store data.
(15)
(16) The GI is interconnected with a processor and is arranged to implement intercommunion between the HADS and the processor.
(17) The CCL is arranged to configure, in response to a configuration command received by the GI, a hardware data structure for the MP. Specifically, the CCL may dynamically configure a Memory Array (MA) in the MP into a required hardware data structure, such as a cache structure, a TCM structure, a CAM structure, an FIFO structure, a buffer structure, a heap structure, a stack structure, a queue structure, a table structure, a link structure, a tree structure, and a graphic structure.
(18) The MP is arranged to store data. Here, the data is a generalized concept and may further include an index, a pointer and the like besides specific data. Generally, an MP is composed of many memory blocks (which may, but is not limited to, be represented by an array). A memory of certain size may be configured into n MAs, and the function of each MA is completely configurable. For example, each MA may store an index, a pointer or data. Except the MP, all other components are referred to as HADS Intelligence Control and Interconnect (HADS-ICI) in the disclosure.
(19) The HADS further includes a CI, which is arranged to make multiple cores interconnected and directly access the data.
(20) The HADS further includes an IL,
(21) the CCL is further arranged to, in response to a command received by the GI, control data transmission between the MP and an interface, data processing in the IL and bypass of the data; and
(22) the IL is arranged to process the data stored in the MP under the control of the CCL.
(23) The IL is further arranged to output the processed data or write the processed data back to the MP under the control of the CCL.
(24) The HADS may further include a CI, which is arranged to implement intercommunion between multiple cores and may be used for direct data access (such as DMA).
(25) It should be noted that, based on the HADS, the whole MP may be configured in different data structures according to the requirement of software.
(26) Correspondingly, an embodiment of the disclosure further discloses a data processing method, which includes that:
(27) a processor configures an HADS such that a memory block in the HADS is configured in a required hardware data structure, and the processor stores data by using the configured memory block.
(28) The operation that the processor configures the HADS such that a memory block in the HADS is configured in the required hardware data structure includes that:
(29) the processor sends a configuration command to a CCL through a GI, wherein the configuration command at least includes the information of the hardware data structure requiring to be configured; and
(30) in response to the configuration command, the CCL configures the hardware data structure for an MP such that the memory block in the MP is configured in the required hardware data structure.
(31) The method further includes that:
(32) the processor directly accesses the data in the MP through a CI or GI; and
(33) the CCL controls data transmission between the MP and an interface, data processing in an IL and bypass of the data between the CI and the GI.
(34) The method further includes that:
(35) the CCL controls the IL to output the processed data or write the processed data back to the MP.
(36) The processor is a local processor and/or a remote processor.
(37) Correspondingly, an embodiment of the disclosure further discloses a data processing system, which includes a processor and the aforementioned HADS.
(38) The processor is a local processor and/or a remote processor. Multiple processors may share one or more data structures.
(39) The technical solution of the disclosure is further elaborated below in combination with embodiments in detail.
(40) Embodiment 1
(41)
(42) Embodiment 2
(43)
(44) Embodiment 3
(45)
(46) Embodiment 4
(47)
(48) Embodiment 5
(49) In the embodiment, a lookup table is taken as an example to describe how to implement a table.
(50) Embodiment 6
(51)
(52) It should be noted that
(53) If the big and small ends of the two cores are inconsistent, the data needs to be twisted according to the byte, which is implemented very easily by the IL. An example showing data processing in the HADS is as shown in
(54) It should be noted that the HADS is more convenient for matrix transformation, bit manipulation (such as bit extraction or insertion) or other operation of a large amount of data. A buffer may be defined in the HADS to store a processed intermediate result therein at first and then return the data to the processor after the data is completely processed.
(55) Possible use of the HADS in a system is as shown in
(56) Furthermore, multiple HADSs can be connected with one another to form a large HADS. The HADS may also coexist and communicate with other types of memories.
(57) That is, the HADS is applicable to any processor architecture, and may be used as the only memory of the processor or used together with other memories. An example showing that the HADS is used together with other memories is as shown in
(58) To sum up, compared with the prior art, the HADS has the following characteristics:
(59) 1) it is dynamically configurable and flexible, and which data structure the memory is used as completely depends on software;
(60) 2) it has high efficiency, which may completely achieve the same efficiency as that implemented by firmware;
(61) 3) various data structures may coexist in the memory, and data may flow between various data structures, thereby reducing the traffic of the data bus and facilitating the improvement of performance and the decrease of power consumption;
(62) 4) it may process the data input and output by various data structures, thereby reducing the load of the processor and improving the performance of the processor; and
(63) 5) it is flexible to use and is applicable to any processor architecture.
(64) Compared with the prior art, the HADS of the disclosure achieves the same flexibility as a data structure implemented by software, and achieves the same efficiency as a data structure implemented by hardware. The HADS is applicable to any processor architecture and is completely dynamically configurable. The IL of the HADS has data processing and converting capability, so that the frequency of accessing the bus is reduced, which is favourable for the improvement of performance and the decrease of power consumption. In the HADS, various data structures may coexist, data may flow between various data structures, and the IL may process the flowing data, so that the loads of the bus and the processor are reduced. Therefore, the aims of improving the performance and decreasing the power consumption are achieved.
(65) The above are only the preferred embodiments of the disclosure, and are not intended to limit the scope of protection of the claims of the disclosure.