This application is based on and claims priority under 35 USC 119 from Japanese Patent Application No. 2017-200039 filed Oct. 16, 2017.
The present invention relates to a data processing device.
A technology of performing data processing in which software processing and hardware processing are mixed has been known in the related art.
According to an aspect of the invention, there is provided a data processing device which includes a software processing section that performs software processing on data, a hardware processing section that performs hardware processing on data, and a memory that stores data transmitted and received between the software processing section and the hardware processing section and sequentially outputs the stored data to the hardware processing section.
Exemplary embodiment(s) of the present invention will be described in detail based on the following figures, wherein:
The software processing unit 10 performs software processing on data as a processing target. In the specific example illustrated in
The hardware processing unit 20 performs hardware processing on data as the processing target. In the specific example illustrated in
The data storage unit 30 stores data as a processing target of data processing (software processing and hardware processing). In the specific example illustrated in
The cache memory L2 functions as a secondary cache of the two CPUs (CPU0 and CPU1). The software processing unit 10 uses the cache memory L2 as a secondary cache, via a snoop cache coherency control circuit 14.
The fast-in-fast-out (FIFO) memory 32 stores data transmitted and received between the software processing unit 10 and the hardware processing unit 20. In the specific example illustrated in
The FIFO memory 32 is a storage device capable of reading and writing data at a relatively high speed in a first-in-first-out manner. The FIFO memory 32 is a specific example of a storage device which does not require setting of address information (storage address information) in a case where data is read and written. Storing data transmitted and received between the software processing unit 10 and the hardware processing unit 20 may be realized by using a storage device different from the FIFO memory 32.
In the specific example illustrated in
In a case where the data processing device 100 in
The overall configuration of the data processing device 100 in
Firstly, data is transferred to the hardware processing unit 20 from the DDR memory 40 (S1). Data used as the processing target by the data processing device 100 is stored in the DDR memory 40. For example, data stored in the DDR memory 40 is transferred to the hardware processing unit 20 by control of the DMA controller 44, in a manner of direct memory access (DMA).
In a case where data as the processing target is transferred, the hardware processing unit 20 performs hardware processing A on the data as the processing target (S2). For example, in a case where data as the processing target, which is obtained from the DDR memory 40 is compressed data (data subjected to compression processing), decompression processing as the hardware processing A is performed on the compressed data. Hardware processing other than the decompression processing may be performed as the hardware processing A.
Data is sequentially transferred from the hardware processing unit 20 to the data storage unit 30 (S3). For example, data subjected to the hardware processing A by the hardware processing unit 20 is transferred one by one to the data storage unit 30 in order of being processed and is stored one by one in the FIFO memory 32 of the data storage unit 30. In the specific example illustrated in
Data is sequentially transferred from the data storage unit 30 to the software processing unit 10 (S4). For example, data stored in the data storage unit 30 is transferred one by one to the software processing unit 10 in order of being stored. In the specific example illustrated in
In the steps of S3 and S4, the FIFO memory 32 stores data obtained from the hardware processing unit 20, one by one in order of being subjected to the hardware processing A and outputs the stored data to the software processing unit 10 one by one in order of being stored.
In a case where data as the processing target is transferred, the software processing unit 10 performs software processing on the data as the processing target (S5). For example, in a case where data as the processing target is image data, image processing such as color conversion processing is performed as the software processing. Software processing other than the image processing may be performed as the software processing.
Data is sequentially transferred from the software processing unit 10 to the data storage unit 30 (S6). For example, data subjected to software processing by the software processing unit 10 is transferred to the data storage unit 30 one by one in order of being processed and is stored in the FIFO memory 32 of the data storage unit 30 one by one. In the specific example illustrated in
Further, data is sequentially transferred from the data storage unit 30 to the hardware processing unit 20 (S7). For example, data stored in the data storage unit 30 is transferred one by one to the hardware processing unit 20 in order of being stored. In the specific example illustrated in
In the steps of S6 and S7, the FIFO memory 32 stores data obtained from the software processing unit 10, one by one in order of being subjected to the software processing and outputs the stored data to the hardware processing unit 20 one by one in order of being stored.
The FIFO memory 32 does not require setting of address information (storage address information) in a case where data is read and written. Thus, in the step of S6, the FIFO memory 32 stores data obtained from the software processing unit 10 without receiving address information for storing data, from the software processing unit 10. In addition, in the step of S7, the FIFO memory 32 outputs the stored data to the hardware processing unit 20 without receiving address information for reading data, from the hardware processing unit 20. Accordingly, reading and writing of data are performed at a relatively high speed in a first-in-first-out manner.
In a case where data subjected to the software processing is transferred, the hardware processing unit 20 performs hardware processing B on the data subjected to the software processing (S8). For example, in the step of S2, in a case where decompression processing is performed as the hardware processing A, compression processing is performed as the hardware processing B. Hardware processing other than the compression processing may be performed as the hardware processing B.
For example, in a case where performing the hardware processing A has been already ended before the hardware processing unit performs the hardware processing B, the hardware processing unit 20 may perform the hardware processing B by changing a processing circuit of the hardware processing A to a processing circuit of the hardware processing B. The hardware processing unit 20 may include two processing circuits of the hardware processing A and the hardware processing B and the two processing circuits may be selectively used.
Data subjected to the data processing is transferred from the hardware processing unit 20 to the DDR memory 40 (S9). For example, data subjected to the hardware processing B by the hardware processing unit 20 is transferred from the hardware processing unit 20 to the DDR memory 40 and stored in the DDR memory 40, by control of the DMA controller 44.
In the specific example illustrated in
On the contrary, the part (2) of
For example, a comparative example has a configuration obtained by excluding the FIFO memory 32 from the specific example of the data processing device 100 illustrated in
The data processing device 100 in the specific example illustrated in
In the hardware processing, it is known that the pipeline processing of sequentially performing data processing has high efficiency. Therefore, it is necessary that data is also sequentially input. It is necessary that data input to the hardware processing unit 20 is subjected to processing in the software processing unit 10 and then is written in the DDR memory 40. This is because the data written in the DDR memory 40 may be sequentially read by the hardware processing unit 20. In a case where data is transmitted and received between the software processing unit 10 and the hardware processing unit 20 without passing through the FIFO memory 32, a mechanism of monitoring whether or not the software processing unit 10 ends writing of data in a storage area in which the hardware processing unit 20 reads data is provided. Alternatively, as illustrated in the part (2) of
In the specific example illustrated in the part (1) of
Hitherto, although the exemplary embodiment of the present invention is described, the above-described exemplary embodiment is merely illustrative in all aspects and does not limit the scope of the present invention. The present invention includes various modifications in a range without departing from the gist thereof.
The foregoing description of the exemplary embodiments of the present invention has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Obviously, many modifications and variations will be apparent to practitioners skilled in the art. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, thereby enabling others skilled in the art to understand the invention for various embodiments and with the various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the following claims and their equivalents.
Number | Date | Country | Kind |
---|---|---|---|
2017-200039 | Oct 2017 | JP | national |