Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. Note that components having the same function are denoted by the same reference symbols throughout the drawings for describing the embodiment, and the repetitive description thereof will be omitted.
The data processing device of the present embodiment is configured of a plurality of data processing units, that is, a data processing unit 1 (11), a data processing unit 2 (12), and a data processing unit n (1n), a data compression unit (2), a memory controller (3), a memory (4), an expanding data buffer (5), a hit detection unit (6), a data expansion unit (7), a bus (8), and the like.
The data processing unit 1 (11), the data processing unit 2 (12), . . . , and the data processing unit n (in) perform data processing while reading and writing transfer data stored in the memory (4) by way of the bus (8) and the memory controller (3). A specific example of the data processing unit is a CPU and a computing unit specialized for a specific process. Further, in the present embodiment, the data processing units perform the reading from and the writing to the memory (4) by byte addressing.
The data processing unit 1 (11), the data processing unit 2 (12), . . . , and the data processing unit n (1n), the memory controller (3), the data compression unit (2), the hit detection unit (6), the data expansion unit (7), and the expanding data buffer (5) are connected to the bus (8), through which data transfer among them is performed. Although the bus (8) includes address, control signal, and data, they are illustrated in a summarized manner in the present embodiment. Further, the bus (8) has a width of 32 bits for both address and data in the present embodiment.
The memory controller (3) decodes read and write requests on the bus (8) and inputs/outputs a signal complying with the interface of the memory (4) to/from the memory (4), thereby reading the data corresponding to the read request of the bus (8) from the memory (4) or writing the write data of the bus (8) to the memory (4). Further, the memory controller (3) ignores the read request of the bus (8) when a read request mask signal (10) from the hit detection unit (6) is asserted, and instead, reads the data from the expanding data buffer (5).
The expanding data buffer (5) includes a plurality of entries each consisting of a set of a storage element TAG for holding the area information of the expanding data, a storage element CADR for holding the address of the compressed data, a storage element DATA for holding the expanding data, a storage element DV for holding the state indicating whether the storage element DATA is valid or invalid (1: valid, 0: invalid), and a storage element ST for holding the state indicating whether the expanding data is expanding or not expanding (1: expanding, 0: not expanding). The respective storage elements are denoted as TAG, CADR, DATA, DV, and ST in the following description. In the present embodiment, the expanding data buffer (5) has four entries 0 to 3. Furthermore, the expanding data is divided into units of 256 bytes and held in the DATA in the present embodiment. Therefore, the high order 9 to 32 bits of the address are stored in the TAG as area information of the expanding data.
The expanding data buffer (5) compares the 9 to 32 bits of the read address and the value of the TAG of the plurality of entries when the read request is issued to the bus (8), and when the matching TAG is found, it outputs a signal (17), a signal (18), a signal (13), and a signal (15) from the TAG, ST, DV, and CADR of the relevant entry and outputs the data of 4 bytes selected by the low order 1 to 8 bits of the read address from the DATA of 256 bytes to the data of the bus (8), and then it outputs 1 indicating that matching TAG is found to a hit signal (16). If matching TAG is not found as a result of the comparison, 0 is outputted to the hit signal (16).
Further, the expanding data buffer (5) compares the write address and the value of the TAG of the plurality of entries when the write request is issued to an expanding data write bus (14), and when matching TAG is found, it writes the write data of the expanding data write bus (14) to ST, DV, and DATA of the relevant entry. If the matching TAG is not found as a result of the comparison, no value is written to the ST, DV, and DATA.
The data compression unit (2) reads the expanding data from the memory (4), generates the compressed data thereof, and writes the compressed data to the memory (4). Further, the data compression unit (2) selects one entry from the plurality of entries of the expanding data buffer by using the signal (9) when compressing the data, and writes 9 to 32 bits of the address of the expanding data and the address of the compressed data to the TAG and the CADR of the selected entry.
The hit detection unit (6) decodes the hit signal (16), the ST read-out signal (18), and the DV read-out signal (13) from the expanding data buffer (5), and outputs a read request mask signal (10) and an expansion start signal (21).
The logical expression of the request mask signal (10) is:
Also, the logical expression of the expansion start signal (21) is:
The data expansion unit (7) holds the TAG read-out signal (17) and the CDCR read-out signal (15) at the time of expansion start signal (21) assertion, and at the same time, it sets 1 to the ST of the entry having TAG that matches the TAG read-out signal held in the data expansion unit (7) through the expanding data write bus (14), reads the compressed data at the address indicated by the CDCR read-out signal held in the data expansion unit (7) from the memory through the bus (8), and then expands the compressed data. When the expansion of the compressed data is terminated, 1 and the expanded data are written to the DV and DATA of the entry having TAG that matches the TAG read-out signal held in the data expansion unit (7) through the expanding data write bus (14). Note that, although the expanding data write bus (14) includes address, control signal, and write data and the write data is further divided into ST, DV, and DATA, they are illustrated in a summarized manner in the present embodiment.
The operation of the data processing device according to the first embodiment of the present invention will be described with reference to
In cycle 1, the data processing unit 1(11) outputs a read request for the data of address 1000. The expression of each of the address driver and the data driver is DP: data processing unit 1(11), DE: data expansion unit (7), MC: memory controller (3), and CC: expanding data buffer (5). In this cycle, the expansion start signal (21) is asserted in accordance with the operation of the expanding data buffer (5) and the asserting condition of the expansion start signal (21) of the hit detection unit (6).
In response to the assertion of the expansion start signal, the data expansion unit (7) starts reading and expanding of the compressed data CD0 of the address 2000 to 200F from cycle 2. In the subsequent cycle 3, 1 is set to ST of the entry 0 of the expanding data buffer (5) by the operation of the expanding data buffer (5) and the data expansion unit (7), and the state shown in
While the data expansion unit (7) expands CD0, the data processing unit 1(11) outputs a read request for data of the address 1004 in cycle 20. In cycle 20, since 1 is set to ST of the entry 0, the expansion start signal (21) is not asserted in accordance with the asserting condition of the expansion start signal (21) of the hit detection unit (6). Therefore, the expansion of the compressed data is not started redundantly. The expansion from CD0 to D0 is terminated in cycle 39, D0 is stored in DATA of the entry 0 of the expanding data buffer (5), and 1 is set to DV. The state of the expanding data buffer (5) at this time is shown in
In the subsequent cycle 40, the data processing unit 1(11) outputs a read request for the data of address 1008. The read request mask signal (10) is asserted in accordance with the asserting condition of the read request mask signal (10) of the hit detection unit (6). Since the read request mask signal (10) is asserted, the data D0(2) is read by the expanding data buffer (5) in the following cycle 41 by the operation of the memory controller (3) and the expanding data buffer (5) described in
Similarly, the data subsequent to the address 100C is also sequentially read by the expanding data buffer (5), a read request for the final data of D0 is outputted in cycle 5100, and the corresponding final data is read in the following cycle 5101.
As described above, the number of times of the memory access necessary to read the data D0 of 256 bytes is five according to the present embodiment, and it is possible to reduce the memory access to 5/64 in comparison to the sixty-four times in the case where the present invention is not used. Furthermore, according to the present embodiment, the access to D0 is not waited during the expansion from CD0 to D0 even if the D0 is the data that requires real-time property, and thus the real-time property is guaranteed.
The entire configuration of the data processing device according to the second embodiment of the present invention is the same as the entire configuration (
The expanding data buffer (5) includes a plurality of entries each consisting of a set of TAG for holding the area information of the expanding data, CADR for holding the address of the expansion descriptor which is information for expanding the compressed data, DATA for holding the expanding data, DV for holding the state indicating whether DATA is valid or invalid (1: valid, 0: invalid), and ST for holding the state indicating whether the expanding data is expanding or not expanding (1: expanding, 0: not expanding). In the present embodiment, the expanding data buffer (5) has four entries 0 to 3. Furthermore, the expanding data is divided into units of 256 bytes and held in the DATA in the present embodiment. Therefore, the high order 9 to 32 bits of the address are stored in the TAG as area information of the expanding data.
The expanding data buffer (5) compares the 9 to 32 bits of the read address and the value of the TAG of the plurality of entries when the read request is issued to the bus (8), and when the matching TAG is found, it outputs a signal (17), a signal (18), a signal (13), and a signal (15) from the TAG, ST, DV, and CADR of the relevant entry and outputs the data of 4 bytes selected by the low order 1 to 8 bits of the read address from the DATA of 256 bytes to the data of the bus (8), and then it outputs 1 indicating that matching TAG is found to a hit signal (16). If matching TAG is not found as a result of the comparison, 0 is outputted to the hit signal (16). Furthermore, the expanding data buffer (5) compares the 9 to 32 bits of the write address and the value of the TAG of the plurality of entries when write request is issued to the expanding data write bus (14), and when the matching TAG is found, it writes the write data of the expanding data write bus (14) to ST, DV, and DATA of the relevant entry. If the matching TAG is not found as a result of comparison, no value is written to ST, DV, and DATA.
The data compression unit (2) reads the expanding data from the memory (4), generates the compressed data thereof, and writes the compressed data and the expansion descriptor of the compressed data to the memory (4). Further, the data compression unit (7) selects one entry from the plurality of entries of the expanding data buffer by using the signal (9) when compressing the data, and writes 9 to 32 bits of the address of the expanding data and the address of the expansion descriptor of the compressed data to the TAG and the CADR of the selected entry.
The data expansion unit (7) holds the TAG read-out signal (17) and the CDCR read-out signal (15) at the time of expansion start signal (21) assertion, and at the same time, it sets 1 to the ST of the entry having TAG that matches the TAG read-out signal held in the data expansion unit (7) through the expanding data write bus (14), reads the compressed data from the memory through the bus (8) in accordance with the expansion descriptor at the address indicated by the CDCR read-out signal held in the data expansion unit (7) and then expands the compressed data. When the expansion of the compressed data is terminated, 1 and the expanded data are written to the DV and DATA of the entry having TAG that matches the TAG read-out signal held in the data expansion unit (7) through the expanding data write bus (14). Note that, although the expanding data write bus (14) includes address, control signal, and write data and the write data is further divided into ST, DV, and DATA, they are illustrated in a summarized manner in the present embodiment.
The operation of the data processing device according to the second embodiment of the present invention will be described with reference to
In cycle 1, the data processing unit 1(11) outputs a read request for the data of address 1000. In this cycle, the expansion start signal (21) is asserted in accordance with the operation of the expanding data buffer (5) and the asserting condition of the expansion start signal (21) of the hit detection unit (6) described in the first embodiment.
In response to the assertion of the expansion start signal, the data expansion unit (7) reads the expansion descriptor DS0 of addresses 3000 to 300C in cycles 2 to 11 by the operation of the expanding data buffer (5) and the data expansion unit (7). In the following cycles 12 to 30, CD0 of addresses 2000 to 201C is read in accordance with the start address and the end address of the CD0 indicated by the expansion descriptor DS0. D0 is expanded from CD0 in accordance with the format information of the expansion descriptor DS0 from the subsequent cycle 31.
In cycle 1, the data processing unit 1(11) outputs a read request for the data of address 1100. In this cycle, the expansion start signal (21) is asserted in accordance with the operation of the expanding data buffer (5) and the asserting condition of the expansion start signal (21) of the hit detection unit (6) described in the first embodiment.
In response to the assertion of the expansion start signal, the data expansion unit (7) reads the expansion descriptor DS1 of addresses 3010 to 301C in cycles 2 to 11 by the operation of the expanding data buffer (5) and the data expansion unit (7) described in the present embodiment. In the following cycles 12 to 22, CD1 of address 2020 to 202C is read in accordance with the start address and the end address of the CD1 indicated by the expansion descriptor DS1. D1 is expanded from CD1 in accordance with the format information of the expansion descriptor DS1 from the subsequent cycle 23.
As described in
In the foregoing, the invention made by the inventors of the present invention has been concretely described based on the embodiments. However, it is needless to say that the present invention is not limited to the foregoing embodiments and various modifications and alterations can be made within the scope of the present invention.
The present invention relates to a technology for a data processing device, and in particular, it can be used for a technology for a data transfer among a plurality of data processing units.
Number | Date | Country | Kind |
---|---|---|---|
2006-260177 | Sep 2006 | JP | national |