This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2013-243992, filed on Nov. 26, 2013, the entire contents of which are incorporated herein by reference.
The embodiments discussed herein are related to an arithmetic processing device, an information processing device, and a method of controlling the information processing device.
In order to improve the processing throughput of the processor to the memory, there is a technique for compressing the data of the store instruction and the like and transferring the compressed data to the memory.
Examples are described a case where a fetch instruction follows to a store instruction. When the amount of data to be stored by the store instruction is large, it takes to transfer the store instruction more time. Accordingly, there may be that a delay time, which is a waiting time until start of transferring the subsequent fetch instruction, is increased. In order to avoid the increase of the delay time, the arithmetic processing device compresses the data of the store instruction, and transfers the compressed data to the memory. Therefore, the transfer time of a store instruction becomes short, thereby reducing the delay time of the subsequent fetch instruction as a result.
For example, the compression of data is realized by the integrated circuit (as described in, for example, following Patent Documents 1 to 4).
When the clock frequency of the processor is high, it is preferable to use an integrated circuit which has a high compressibility of the data, because there is the need to transfer data in 1 clock. However, in the high compressibility integrated circuit, the circuit scale grows big by increasing latches, and the consumption electricity increases. Because the processing time of the circuit, which has a large scale, becomes a long, a completion of the compression processing of data may not be in a time of the transfer start of the store instruction by compressing the data.
In addition, according to the conventional description, for example, it is determined whether the compressed data or the original data is transferred by comparing the size of data before and after the compression after the compression of data was completed. In other words, in a series of processing of the store instruction, it is determined whether the compressed data or the original data is transferred after the compression of data. Therefore, not only it takes time until the determination of the transfer the compressed data, but also time to consume the compression process of data is wasted when determining that the compress data is not transferred after the compression of data. By these processes, it is difficult to improve data transfer rate in the memory band width between the processor and the memory.
According to a first aspect of the embodiment, An arithmetic processing device includes an arithmetic processing unit configured to issue an instruction accompanying with data which is sent to a memory, a judgment unit configured to judge whether or not a redundancy degree of the data which is accompanied with the instruction is more than a predetermined value, a compression unit configured to judge whether or not compress the data based on an waiting time until a transfer start of the instruction to the memory and a compression time to take the compression of the data when the redundancy degree of the data is more than the predetermined value, and compress the data when judging that performs the compression; and an instruction arbitration unit configured to transfer the instruction accompanying with the compressed data from the arithmetic processing unit to the memory when the compression unit performs the compression and transfer the instruction accompanying with the non-compressed data from the arithmetic processing unit to the memory when the compression unit does not perform the compression.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention.
(Information Processing Device)
In
(Memory Control Unit)
The request arbitration unit 51 arbitrates two or more requests of the instructions, which is not completed to transfer to the memory 30, in the instructions which are transferred to the memory 30 (for example, a store instruction and a fetch instruction). The request arbitration unit 51 holds one or more instructions that are completed to transfer to the memory 30, as queues such as FIFO (First In First Out memory).
For example, when a store instruction with much quantity of data is issued, the sending out time to the memory 30 for the data becomes longer, thereby it takes a time to transfer the instruction. For example, when a different store instruction and a fetch instruction are issued to follow the store instruction with much quantity of the data, the request arbitration unit 51 holds the following instruction in the queues, and requests the following instruction according to a completion of the transfer of the precedent instruction. Therefore, a waiting time may occur until the start of the request of the instruction.
The request waiting time counter 52 holds the total of the transfer time of the instructions, which are held in the queues in the request arbitration unit 51 and are not completed to transfer, as the request waiting time. In other words, the request waiting time counter 52 holds the waiting time until the transfer start of a following instruction issued newly as a counting time. The transfer time for each instruction is detectable beforehand. When a new instruction is added to the queues, the request arbitration unit 51 counts up the request waiting time counter 52 for the time that the transfer of the instruction takes. In addition, when the transfer of the instruction held in the queue has completed, the request arbitration unit 51 counts down the request waiting time counter 52 for the transfer time of the instruction concerned.
The temporarily store unit 31 stores temporarily data “dt” in a data memory 38 when the instruction accompanying with the data (for example, a store instruction) to send out to the memory 30 was issued, judges a redundancy degree of same data pattern (for example, mismatching rate of same data pattern) in the data “dt”, generates a compression judgment flag “fg” and outputs it to the compression judgment unit 61. For example, the temporarily store unit 31 has the data memory 38 which stores data “dt”, a flag memory 36 which stores the compression judgment flag “fg” which the instruction has and a compression judgment flag generation logical circuit 34. The compression judgment flag generation logical circuit 34 judges whether the data “dt” has a redundancy degree of same data pattern more than a predetermined value, and outputs the compression judgment flag “fg” which has a second predetermined value when the data “dt” has the redundancy degree of same data pattern more than the predetermined value. The compression judgment flag generation logical circuit 34 has a comparison unit 41 and a redundant judgment unit 42. The comparison unit 41 detects the redundancy degree of the data “dt” and the redundant judgment unit 42 judges the redundancy degree of the data “dt” by comparing the threshold with the comparison result, and outputs the compression judgment flag “fg”.
The compression judgment unit 61 has a request waiting time confirmation unit 62 and a compression judgment flag check unit 63. The compression judgment flag check unit 63 determines whether the compression judgment flag “fg” has the second predetermined value and the request waiting time confirmation unit 62 judges whether the compression of the data for the instruction, that the compression judgment flag “fg” has the second predetermined value, is performed based on the waiting time of the request waiting time counter 52.
The compression judgment unit 61, when judging to compress the data, outputs the data to the data compressing device 54. The data compressing device 54 compresses the input data and outputs the compressed data to the packet generation unit 53. In addition, the compression judgment unit 61, when judging to compress the data, updates the request waiting time counter 52, because the transfer time of the instruction changes according to data quantity. In addition, the compression judgment unit 61, when judging not to compress the data, outputs the data of the non-compression to the packet generation unit 53. The packet generation unit 53 generates a packet based on input data.
(Packet)
As depicted by
(Compression of Data)
The run length encoding realizes compression by converting the data into data of the data format H1 in
The run length encoding will be described in the example of the data “0xaaaaaaaaaaaaaaa” for the compression target. In the data “0xaaaaaaaaaaaaaaa” for the compression target, mark “0x” represents that the data is a hexadecimal notation and value “a” is a hexadecimal value. Accordingly, the data “0xaaaaaaaaaaaaaaa” is constructed by 15 (decimal notation, hexadecimal value=f) pieces of data pattern “0xa”. Therefore, the data after the compression become “0xfa” when the data “0xaaaaaaaaaaaaaaa” is encoded by the run length encoding. In the data “0xfa” after the compression, the value “0xf” indicates the data format RL (repeating number) and the value “0xa” indicates the data format DP (data pattern). In other words, the data “0xfa” after the compression represents that the data pattern “0xa” continues a “0xf” (=15: decimal notation) pieces. In this case, the total repeating number of same data pattern is 15 (that is, matching rate of 4 bit data=100%, mismatching rate=0%). Because the data length of data “0xaaaaaaaaaaaaaaa” is 60 bit (=4 bit*15) and the data length of data “0xfa” is 8 bit (f=a=4 bit), by the encoding, the data length decreases in 8 bit from 60 bit.
Similarly, the run length encoding will be described in the example of the data “0xffffddddeeeeaaaa” for the compression target. In the data “0xffffddddeeeeaaaa” for the compression target, mark “0x” represents that the data is a hexadecimal notation and values “f”, “d”, “e” and “a” are hexadecimal value. Accordingly, the data “0xffffddddeeeeaaaa” is constructed by four (decimal notation, hexadecimal value=4) pieces of data pattern “0xf”, four (decimal notation, hexadecimal value=4) pieces of data pattern “0xd”, four (decimal notation, hexadecimal value=4) pieces of data pattern “0xe” and four (decimal notation, hexadecimal value=4) pieces of data pattern “0xa”. Therefore, the data after the compression become “0x4f4d4e4a” when the data “0xffffddddeeeeaaaa” is encoded by the run length encoding. Because the data length of data “0xffffddddeeeeaaaa” is 64 bit (=4 bit*16) and the data length of data “0x4f4d4e4a” is 32 bit, by the encoding, the data length decreases in 32 bit from 64 bit. In other words, by the encoding, the data length becomes ½.
As depicted by
On the other hand, according to the run length encoding, the data length may not decrease depending on the contents of data. For example, the run length encoding will be described in the example of the data “0xabcddddd” for the compression target. In the data “0xabcddddd” for the compression target, mark “0x” represents that the data is a hexadecimal notation and values “a”, “b”, “c” and “d” are hexadecimal value. The data length of data “0xabcddddd” is 32 bit (=4 bit*8) and the total repeating number of same data pattern is 5. Therefore, the data after the compression become “0x1a1b1c5d” when the data “0xabcddddd” is encoded by the run length encoding. The data length of data “0x1a1b1c5d” is 32 bit, by the encoding. Therefore, the data length by the encoding does not decrease according the contents of the data. Furthermore, for example, when the 32 bit data “0xabcdeeee” is run length encoding, the encoded data is data “0x1a1b1c1d4e” and is 40 bit. Therefore, the data length increases by the contents of data as a result of encoding.
As depicted by the run length encoding in
(Determination of Effect or No-Effect that the Compression has Performed)
The arithmetic processing unit judges whether the compression of the data which are the target of the store instruction is performed based on the data size and the waiting time (S11) to try the compression. The arithmetic processing unit judges that the compression is possible when completing the compression of the data during the waiting time (S12/YES). The arithmetic processing device does not try the compression of data when it is judged to be impossible of compression (S12/NO), and requests the store instruction based on a non-compressed data held in the temporarily store unit (S14).
On the other hand, the arithmetic processing device, when judging that the compression is possible (S12/YES), tries the compression (compresses the held in the temporarily memory unit) and creates a compressed data (S13). Then the arithmetic processing device compares the size of the original data before the compression with the size of the compressed data (S15). When the size of the compressed data is smaller than the size of the original data, in other words, when the size of data decreases by the compression (S16/YES), the arithmetic processing device creates a packet to include the compressed data as a payload and requests the store instruction (S18).
And when the size of data does not decrease by the compression (S16/NO), the arithmetic processing device creates a packet to include the non-compressed data as a payload and requests the store instruction (S17). As described in
While, in the embodiment, the arithmetic processing device 20, before the compression of the data, judges whether the redundancy degree (the total repeating number of same data pattern=matching rate of unit data) of the data of the instruction (for example, the store instruction), which accompanying with the data to send out to the memory, is more than a predetermined value and determines whether the compression of the data is performed about the instruction which the redundancy degree of the data is more than the predetermine value. In addition, the arithmetic processing device 20 judges whether or not compresses the data based on the waiting time until a transfer start to the memory and the compression time to take time to compress the data to be concrete and performs the compression of the data when judging to perform the compression. In addition, the arithmetic processing device 20 judges whether or not compresses the data based on a transfer time of the compressed data after compression to the memory and a transfer time of the original data to the memory.
In this way, it is possible that the arithmetic processing device 20 easily judges whether the data have the compressibility corresponding to the predetermined value based on whether the redundancy degree of the data is more than a predetermined value without compressing data. Therefore, it is possible that the arithmetic processing device 20 judges the correct or incorrect that performs the compression of data without compressing data with a high speed and it is possible to avoid unnecessary compression processing. In other words, it is possible that the arithmetic processing device 20 judges whether the compression is performed easily and immediately. Therefore, it is possible that the arithmetic processing device 20 promotes efficiency of data transmission with the CPU 21 and the memory 30.
(Judgment of Redundancy Degree of Data)
Firstly, the processing (the redundancy is high or low), which judges whether the redundancy degree of the data is more than a predetermined value about the instruction accompanying with data to send out to the memory 30, will be explained. In addition, the instruction accompanying with the data to send out to the memory is not limited to the store instruction, but included an atomic instruction, etc.
The compression judgment flag generation logical circuit 34 in the temporarily store unit 31 detects and judges the redundancy degree of stored data when the data are stored in the data memory 38 of the temporarily store unit 31 (S21). Then, the compression judgment flag generation logical circuit 34 outputs the compression judgment flag “fg” indicating the judgment whether or not the redundancy degree of the data (the total repeating number of same data pattern) is more than the predetermined value based on the redundancy degree of the data judged and the set threshold (S22). The compression judgment flag generation logical circuit 34, when the redundancy degree of the data is more than the set threshold, judges that the data have the redundancy more than the predetermined value (the high redundancy) and creates the compression judgment flag “fg” having a value “1”.
(Compression Judgment Flag Generation Logical Circuit)
The compression judgment flag generation logical circuit 34 in
Each of the flip-flops f0-ff holds an unit data which is divided the data of 64-bit stored in the data memory 38 of the temporarily store unit 31 into 4-bit and outputs it. In addition, each of the comparators H1-H15 compares output values (value of 4-bit) DD0-DDf from adjacent flip-flops f0-ff each other and outputs comparison results C01-Cef (C i, i+1) to the index calculator 43. Each of the comparators H1-H15, when output values from the flip-flops f0-ff matches with each other, outputs output values C01-Cef having the value “0” (match of data pattern), and when the output values from the flip-flops f0-ff do not match with each other, outputs output values C01-Cef having the value “1” (mismatch of data pattern).
In addition, the index calculator 43 adds up the output values C01-Cef from each of the comparators H1-H15. And threshold comparator 44 compares the set threshold 45 with the total value (number of mismatch) which outputs from the index calculator 43 and outputs the value “1” (as a high redundancy) as the compression judgment flag “fg” when the total values is not more than the threshold 45 and outputs the value “0” (as a low redundancy) as the compression judgment flag “fg” when the total values is more than the threshold 45.
The compression judgment flag generation logical circuit 34 of
The process of the compression judgment flag generation logical circuit 34 in
More specially, the case that data “0xffffddddeeeeaaaa” of 64 bit is inputted will be explained as a specific example. In response to the input of the data “0xffffddddeeeeaaaa”, sixteen pieces of flip-flops f0-ff holds unit data “0xf”, “0xf”, “0xf”, “0xf”, “0xd”, “0xd”, “0xd”, “0xd”, “0xe”, “0xe”, “0xe”, “0xe”, “0xa”, “0xa”, “0xa”, “0xa” of which each have. That is, the flip-flops f0-f3 hold data “0xf” respectively. In addition, the flip-flops f4-f7, the flip-flops f8-fb, and the flip-flops fc-ff respectively hold data “0xd”, data “0xe” and data “0xa”.
The comparator H1 compares an output value “0xf” of the flip-flop f1 with an output value “0xf” of the flip-flop f0 and outputs “C01” having value “0” because the both output values match with each other. In addition, each of the comparators H2, H3 outputs “C12”, “C23” each having a value “0”, too. On the other hand, the comparator H4 (not illustrated in
In other words, the comparators H1-H3, the comparators H5-H7, and the comparators H9-H11 output the value “0”, and the comparator H4, H8, H12 output the value “1” when the 64 bit-data “0xffffddddeeeeaaaa” is input. The index calculator 43 adds up the output values C01-Cef from the comparators H1-H15, and outputs a total value “3”. The threshold comparator 44 compares the total value “3” with the threshold value “4”, and outputs the value “1” as the compression judgment flag “fg” because the total value is smaller than the threshold value.
As described in the specific example, the data has four kind of data patterns (in this example, “0xffff”, “0xdddd”, “0xeeee” and “0xaaaa”) when the total value of the index calculator 43 is “3” (the total number of mismatching unit data). According to the run length encoding as described in
Σ−Ci i+1(i=0˜e)<4 Expression 1
The expression 1 indicates the condition that the total value of output values C01-Cef from the comparators H1-H15 is less than the threshold “4”. When the condition is satisfied, the compression judgment flag generation logical circuit 34 outputs the compression judgment flag “fg” having the value “1”, because the data length after the compression becomes less than ½. On the other hand, the compression judgment flag generation logical circuit 34 outputs the compression judgment flag “fg” having value “0” when the total value of the output values Ci i+1 are more than the threshold “4”, because the data length does not become less than ½ of the original data.
In addition, for example, the case, in which data “0xaabbccccddddeeee” having five type of data patterns is inputted into, will be explained. When inputted the data “0xaabbccccddddeeee”, the comparators H1, H3, the comparator H5-H7, and the comparators H9-H11 output the value “0”(match), and the comparators H2, H4, H8, H12 output the value “1” (mismatch). Therefore, the index calculator 43 adds up the output values C01-Cef from the comparators H1-H15, and outputs the total value “4”. The threshold comparator 44 compares the threshold value “4” with the total value “4” and outputs the compression judgment flag “fg” having the value “0”.
The data “0xaabbccccddddeeee” has five type of data patterns, and the data length of the data “0x2a2b4c4d4e” after the compression is more than ½ of the original data. Therefore, the compression judgment flag generation logical circuit 34 determines that the data do not have the redundancy degree more than a predetermined value, and outputs the compression judgment flag “fg” of value “0”.
In addition, the compression judgment flag generation logical circuit 34 is described for data of 64 bit in
When the threshold value is “2”, the compression judgment flag generation logical circuit 34 determines that the data has a redundancy degree more than a predetermined value when the number of kind of data patterns in the data is less than a value “2”, and outputs the compression judgment flag “fg” having the value “1”. According to the run length encoding as described in
Σ−Ci i+1(i=0˜e)<2 Expression 2
The expression 2 indicates the condition that the total value of output values C i i+1 is less than the threshold “2”. When the condition is satisfied, the compression judgment flag generation logical circuit 34 outputs the compression judgment flag “fg” having the value “1”, because the data length after the compression becomes less than ¼ of the original data. On the other hand, the compression judgment flag generation logical circuit 34 outputs the compression judgment flag “fg” having value “0” when the total value of the output values Ci i+1 are more than the threshold “2”, because the data length does not become less than ¼ of the original data.
In other words, as illustrated by
(Correct or Incorrect Judgment Process of the Compression of Data)
Next, the Correct or incorrect judgment process of the compression of data base on the compression judgment flag “fg” according to the embodiment will be explained.
The compression judgment flag check unit 63 (referring to
Specially, the compression judgment unit 61 judges whether or not the data is compressed based on start time for sending out of data (that is, waiting time until a transfer start to the memory) and the compression time for data. In addition, the compression judgment unit 61 judges whether or not the data is compressed based on a first sending out time to the memory of compressed data when performs the compression and a second sending out time to the memory of the non-compressed data when do not compress. In addition, the compression judgment unit 61 executes the judgment process of step S31 about an instruction when all compression judgment flags “fg” corresponding to the packets p1-pn are the value “1” when the instruction has a plurality of data packets p1-pn as depicted by
More specially, when the compression judgment flag “fg” has value “0” (low redundancy), in other words, when the data do not have the redundancy more than a predetermined value, the compression judgment unit 61 judges that a desired compression rate is not obtained even if the compression is performed, and determines that the compression does not perform. On the other hand, when the compression judgment flag “fg” has value “1”, the request waiting time confirmation unit 62 judges that the compression is performed when satisfying the condition “the waiting time>=the compression time”. The compression judgment unit 61 calculates the compression time for data based on the length of the data, for example.
Even if the data have the redundancy more than the predetermined value, depending on the number of the logic steps for the compression of data (compression time), the time suffers from the compression of data. Therefore, the transfer completion of the instruction may become later than a case which does not compress data. Here, for example, the transfer completion timing of the instruction indicates to a timing when sending out to memory 30 of the data is completed. In addition, a first time, of which the sending out to the memory 30 of the compressed data takes (called as a first sending out time as follows), is shorter than a second time, of which the sending out to the memory 30 of the non-compressed data (called as a second sending out time as follows).
Therefore, a timing of the transfer completion of the instruction in a case which compress the data becomes earlier than a timing of the transfer completion of the instruction in a case which does not compress the data, when the condition “waiting time>=compression time” is satisfied, because the sending out time of the compressed data is shorter than the sending out time of the non-compressed data. Therefore, the compression judgment unit 61 judges that the compression is performed when the data have the redundancy more than the predetermined value and the condition “waiting time>=compression time” is satisfied.
However, even if does not satisfy the condition “waiting time>=compression time”, that is, even if a case is “the waiting time<compression time”, there is a case that the transfer completion of the compressed data may become earlier than the transfer completion of non-compressed data, by performing the compression.
Specially, when satisfying the condition of “(the waiting time+the sending out time of the non-compressed data to the memory 30)>(the compression time+the sending out time of the compressed data to the memory 30)”, the transfer of the instruction of the compressed data earlier completes than a case of the non-compressed data. That is, when the sending out time for the data largely decreases by the compression of data, even if satisfying a condition “the waiting time<the compression time”, a condition of “(the waiting time+the sending out time of the non-compressed data to the memory 30)>(the compression time+the sending out time of the compressed data to the memory 30)” is established.
The compression judgment unit 61 judges each time to take from the sending out to the memory 30 based on the data length of the compressed data and the non-compressed data, for example. The compression judgment unit 61 calculates the sending out completion time of data when the compression is performed based on the total time with the sending out time for the compressed data and the compression time. In addition, the compression judgment unit 61 calculates the sending out completion time of data when the compression is not performed based on the total time with the waiting time and the sending out time for the non-compressed data. And the compression judgment unit 61 determines that the compression is performed, when the transfer completion time of the instruction when performing the compression is earlier than the transfer completion time of the instruction when the compression is not performed.
Referring back to
In addition, the sending out time to the memory 30 for data decreases, because the size of the data decreases when compressing the data. Therefore, the request arbitration unit 51 updates the request waiting time counter 52 based on the transfer time for data when compressing the data. In other words, the request arbitration unit 51 decrements the request waiting time counter 52 for the decreased transfer time for the instruction, which decreases by the compression of data when compressing the data.
On the other hand, when it is not judged to the compress is available (S32/NO), the packet generation unit 53 generate a packet including the data of the non-compression as a payload and the request arbitration unit 51 performs a request of the instruction when the transfer of the precedent instruction is completed (S34).
In addition, the arithmetic processing device 20 in the embodiment generates the compression judgment flag “fg” by the compression judgment flag generation logical circuit 34 for data held at a predetermined time in the temporally store unit 31. Accordingly, when a queue in the request arbitration unit 51 does not have an instruction which awaits the transfer, that is, when it is available to request the issued instruction immediately, the compression judgment flag generation logical circuit 34 does not need to generate the compression judgment flag “fg”. In this case, for example, the request arbitration unit 51 requests the store instruction without compressing the data held in the temporally store unit 31.
Next, the step S31 of the compression availability judgment process of the data depicted by
In
When the store instruction is requested in a timing Y1, the compression judgment unit 61 compares the compression time with the waiting time based on the request waiting time counter 52. In the example of
When the store instruction is requested in a timing Y2, the compression judgment unit 61 compares the compression time with the waiting time based on the request waiting time counter 52. In the example of
In the example of
As illustrated by
As above described, the arithmetic processing device 20 according to the embodiment, has an arithmetic processing unit which issues an instruction accompanying with data which is sent to a memory, an judgment unit which judges whether or not a redundancy degree of the data which is accompanied with the instruction is more than a predetermined value, and a compression unit which judges whether or not compresses the data based on an waiting time until a transfer start of the instruction to the memory and a compression time to take the compression of the data when the redundancy degree of the data is more than the predetermined value. Further, the arithmetic processing device 20 has an instruction arbitration unit which transfers the instruction accompanying with the compressed data when the compression unit performs the compression and the instruction accompanying with the non-compressed data when the compression unit does not perform the compression.
In this way, it is possible that the arithmetic processing device easily judges whether the data has a compression rate corresponding to a predetermined value because judging whether the data has the redundancy degree more than a predetermined value. In addition, because the arithmetic processing device judges whether the data has the compression rate corresponding to the predetermined value without compressing the data, it is possible to judge whether or not performs the compression of the data based on the waiting time until a transfer start to the memory of the instruction and the compression time at an early stage.
It is possible that the arithmetic processing device increases time to compress data since it become able to determine whether the compression is performed at an early stage. Therefore, it is possible that the arithmetic processing device compresses more data, thereby it is possible to improve an efficiency of the band width with the CPU and the memory. In addition, it is possible to avoid unnecessary compression process since it become able to determine whether or not the compression of data is performed without compressing data.
In addition, the compression unit in the arithmetic processing device 20 according to the embodiment judges that the compression is performed when the compression time is within the waiting time. It is possible that the arithmetic processing device determines whether the transfer completion of the instruction becomes early by comparing the waiting time with the compression time by performing the compression of data.
In addition, the compression unit in the arithmetic processing device 20 according to the embodiment judges whether or not the compression is performed based on the sending out time of the compressed data to the memory and the sending out time of the non-compressed data to the memory. Therefore, it is possible that the arithmetic processing device 20 judges whether or not the transfer completion of the instruction becomes early by performing the compression, based on the sending out time of the compressed data to the memory and the sending out time of the non-compressed data to the memory. Further, it is possible the arithmetic processing device 20 compresses more data having the redundancy degree more than the predetermined value based on the sending out time of the compressed data to the memory and the sending out time of the non-compressed data to the memory in addition to the compression time and the waiting time.
In addition, the compression unit in the arithmetic processing device 20 according to the embodiment, calculates a first sending out end time of the compressed data and a second sending out end time of the non-compressed data, based on the waiting time and the compression time, and determines to compress when the first sending out end time is earlier than the second sending out end time. Therefore, it is possible that the arithmetic processing device 20 appropriately judges whether or not compresses the data without compressing data, since the compression unit calculates the first sending out end time of the compressed data and the second sending out end time of the non-compressed data based on the waiting time and the compression time, and determines to compress when the first sending out end time is earlier than the second sending out end time.
In addition, the compression unit of the arithmetic processing device 20 in the embodiment calculates the first sending out end time based on the total time with the compression time and the sending out time of the compressed data and the second sending out end time based on the total time with the wait time and the sending out time of the non-compressed data. It is possible that the arithmetic processing device 20 easily calculates the first sending out end time and the second sending out end time.
In addition, the judgment unit of the arithmetic processing device 20 in the embodiment calculates the matching rate between adjacent unit data which are divided the data into a predetermined bit length, and judges that the redundancy degree is more than the predetermined value when the matching rate is more than a reference value. It is possible that the arithmetic processing device 20 easily judges that the redundancy degree is more than the predetermined value when the matching rate is more than a reference value.
In addition, the judgment unit of the arithmetic processing device 20 in the embodiment has a plurality of first arithmetic unit which outputs the first value when the adjacent unit data are matched and outputs the second value which is different from the first value when the adjacent unit data are mismatched, and a second arithmetic unit which compare a total value of the output values from the plurality of the first arithmetic unit with the total value of the reference. It is possible that the arithmetic processing device 20 judges whether or not the data has a redundancy degree more than the predetermined value based on the outputs of the first and second arithmetic unit, thereby it is possible to easily judge whether or not the data has a predetermined compression rate.
All examples and conditional language provided herein are intended for the pedagogical purposes of aiding the reader in understanding the invention and the concepts contributed by the inventor to further the art, and are not to be construed as limitations to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although one or more embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2013-243992 | Nov 2013 | JP | national |