WO2004025478A1 - メモリブロック間のレイテンシ差を活用するデータ処理装置および方法 - Google Patents

メモリブロック間のレイテンシ差を活用するデータ処理装置および方法 Download PDF

Info

Publication number
WO2004025478A1
WO2004025478A1 PCT/JP2002/009290 JP0209290W WO2004025478A1 WO 2004025478 A1 WO2004025478 A1 WO 2004025478A1 JP 0209290 W JP0209290 W JP 0209290W WO 2004025478 A1 WO2004025478 A1 WO 2004025478A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
request
tag
request source
cache memory
Prior art date
Application number
PCT/JP2002/009290
Other languages
English (en)
French (fr)
Inventor
Akira Nodomi
Tatsumi Nakada
Eiki Ito
Hideki Sakata
Original Assignee
Fujitsu Limited
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 Fujitsu Limited filed Critical Fujitsu Limited
Priority to PCT/JP2002/009290 priority Critical patent/WO2004025478A1/ja
Priority to JP2004535832A priority patent/JPWO2004025478A1/ja
Publication of WO2004025478A1 publication Critical patent/WO2004025478A1/ja
Priority to US11/059,472 priority patent/US20050144409A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement

Definitions

  • the present invention relates to a data processing device having a memory composed of a plurality of blocks, and a method of processing data in such a memory.
  • LSI large scale integration
  • main storage devices such as main storage devices
  • large-capacity (that is, large-area) cache memories are mounted on LSIs to fill the difference. The method of doing is becoming common.
  • the processor and main memory are enclosed inside the LSI. It is easy to imagine that the internal memory of LSIs will continue to increase in capacity as the degree of integration increases.
  • Patent Document 1
  • Patent Document 2
  • Latency here means the time from issuing a data request to returning the requested data, and the unit of latency is the number of clock cycles used for circuit synchronization.
  • the ratio of wiring delay time to delay time in LSI is small, and gate delay time is mainly used. For this reason, even if the wiring delay time is slightly longer depending on the location of the memory inside the LSI, it can be kept within one cycle. Therefore, it is easy to use the same latency even between memories having slightly different delay times.
  • Figure 1 shows a virtual configuration when memory control with a single latency is applied to a large-capacity memory mounted on an LSI.
  • the LSI in FIG. 1 includes a request source 11 and a memory 12, and the memory 12 is divided into four memory blocks Ml, M2, M3, and M4. The distances from the request source 11 are farther in the order of Ml, M2, M3, and M4.
  • Each memory block includes flip-flop circuits (FF) 21, 22, random access memory (RAM) 23 for storing data, and selector 24.
  • FF flip-flop circuits
  • RAM random access memory
  • selector 24 selects an output path from the RAM 23 or an output path from a farther block in the same block, and outputs data of the selected path.
  • the distance between the request source 11 and each block when converted into latency, is a path that transfers the data request issued from the request source 11 to the destination RAM 23 and RAM 23 It is represented by the number of FFs 21 included in the path that transfers the data output from to the request source 11.
  • the distances to blocks M1, M2, M3, and M4 are 2, 4, 6, and 8, respectively.
  • An object of the present invention is to provide a data processing apparatus and method for speeding up memory access when a large-capacity memory is mounted on a semiconductor integrated circuit such as an LSI.
  • a first data processing device of the present invention includes a plurality of memory blocks, a plurality of transfer paths, and a selector.
  • Multiple memory blocks are added to the data request issued by the request source. It has different latencies, receives the data request and outputs the requested data. Multiple transfer paths transfer data from these memory blocks to the request source. Then, the selector selects a transfer path from the memory block to which the data request is issued to the request source from among these transfer paths.
  • a second data processing device of the present invention includes a plurality of cache memory blocks, a control circuit, a plurality of tag transfer paths, a plurality of data transfer paths, a first selector, and a second selector.
  • a plurality of cache memory blocks include a tag memory that receives a data request issued from a request source and outputs a tag of requested data, and a data memory that receives the data request and outputs the requested data. And have different data latencies for data requests.
  • the control circuit performs cache control using the output tag.
  • the plurality of tag transfer paths transfer tags from these cache memory blocks to the control circuit, respectively, and the plurality of data transfer paths transfer data from these cache memory blocks to the request source.
  • the first selector selects a tag transfer path from the cache memory block to which the data request is issued to the control circuit from among these tag transfer paths, and the second selector selects a data transfer path from among these data transfer paths. Select the data transfer path from the request destination cache memory block to the request source.
  • FIG. 1 is a configuration diagram of a virtual LSI having a plurality of memory blocks.
  • FIG. 2 shows the classification of the data processing device of the present invention.
  • FIG. 3 is a diagram showing a first basic configuration.
  • FIG. 4 is a diagram showing a second basic configuration.
  • t 6 is a diagram showing a contention data output between two requests is a diagram showing a first example of delaying a request issuance.
  • FIG. 7 is a diagram illustrating a second example of delaying request issuance.
  • FIG. 8 is a diagram showing a first applied configuration.
  • FIG. 9 is a diagram illustrating an example of delaying data output.
  • FIG. 10 is a diagram showing a second applied configuration.
  • FIG. 11 is a configuration diagram of the first variable length buffer.
  • FIG. 12 is a configuration diagram of the second variable length buffer.
  • FIG. 13 is a configuration diagram of the third variable-length buffer.
  • FIG. 14 is a configuration diagram of the access input control circuit.
  • FIG. 15 is a diagram showing details of the second applied configuration.
  • FIG. 16 is a configuration diagram of the variable length buffer stage number selection circuit.
  • FIG. 17 is a configuration diagram of the data valid flag response circuit.
  • FIG. 18 is a diagram showing a basic configuration of the cache memory.
  • FIG. 19 is a diagram illustrating a third example of delaying request issuance.
  • FIG. 20 is a diagram showing a first cache memory application configuration.
  • FIG. 21 is a diagram illustrating an example in which tag output and data output are delayed.
  • FIG. 22 is a diagram showing a second cache memory application configuration.
  • FIG. 23 is a configuration diagram of a chip-level multiprocessor. BEST MODE FOR CARRYING OUT THE INVENTION
  • the memory in the LSI is divided into a plurality of blocks according to the difference in latency, and blocks having a short latency (that is, physically close to the request source). Access to the block at a higher position), the result should be returned sooner. As a result, the average latency can be reduced by effectively utilizing the latency difference, and the performance of the LSI can be improved.
  • the configuration of the data processing apparatus of the present embodiment can be roughly classified into six configurations as shown in FIG.
  • the basic configuration 31 is a configuration in which the data in the memory is blocked according to the latency difference in consideration of the relationship between the request source position and the data arrangement position in the memory. Compared to the basic configuration 31, a single-stage variable-length buffer is added to the block with the shortest latency.
  • the application configuration 33 has a configuration in which a variable-length buffer is added to the basic configuration 31 as well as a block with the shortest latency, as well as a block with a longer latency. In this case, multiple blocks of variable-length buffers capable of achieving the same latency as the block with the longest latency are added to each block.
  • configurations 34, 35, and 36 represent embodiments in which configurations 31, 32, and 33 are extended to cache memories, respectively.
  • the basic configuration of the cache memory 34 is a configuration in which cache data and tags are blocked according to the latency difference
  • the advanced configuration of the cache memory 35 is a block with the shortest latency compared to the basic configuration of the cache memory 34.
  • This is a configuration in which a single-stage variable-length buffer is added.
  • the cache memory application configuration 36 is a configuration in which a plurality of stages of variable-length buffers are added to each block to the cache memory basic configuration 34.
  • the configuration of the LSI is as shown in FIG.
  • the LSI in Fig. 3 consists of a request source 41 and a memory 42, and the memory 42 is divided into four memory blocks Ml, M2, M3, and M4. Blocked.
  • the request source 41 corresponds to, for example, a main pipeline in a CPU (central processing unit), an arithmetic unit, etc., issues a data request to each block of the memory 42, and outputs the data request from the memory 42 via the output bus 51. Receive data. In this case, since memory control is performed using different latencies for each block, F F22 is not required.
  • the latencies of blocks Ml, M2, M3, and M4 are 2, 4, 6, and 8, respectively, so the average latency for memory access is:
  • a selector 24 is provided in each memory block to select either data output from the RAM 23 in the same block or data output from a farther block. However, it is also possible to perform such a selection of output data at once just before the output bus 51.
  • FIG. 4 shows such a configuration of the LSI.
  • the memory blocks Ml, M2, and M3 in FIG. 4 are provided with an FF 21 for transferring data output from a block having a longer latency, instead of the selector 24.
  • the selector 52 is provided outside the four memory blocks, selects one of the four data transfer paths from those blocks, and outputs the data of the selected path to the output bus 51. In practice, the corresponding transfer path is selected according to the block identification information included in the data request.
  • the latency of blocks Ml, M2, M3, and M4 is They are 2, 4, 6 and 8, respectively, with an average latency of 5 cycles.
  • the simplest solution to prevent this conflict is to delay the issuance of the subsequent request R2 by one cycle, as shown in Figure 6.
  • the data for the request R 2 is output to the output path 51 in the cycle 05 instead of the cycle 04, so that no conflict occurs.
  • This instruction mechanism calculates the latency of each request according to the block to be accessed, and notifies the request source that the data on the output bus 5lh is valid according to the result.
  • the latency of the request R3 is 4 cycles, so if the request R3 is issued in cycle 04, the data is output from the memory 42 in cycle 07 and the request R2 is There is no output conflict between them. Nevertheless, because the issuance of request R2 was delayed, the issuance of subsequent request R3 was also delayed, and the actual data would be output in cycle 08. As a result, the actual latency is dragged and extended, and the overall throughput is degraded.
  • arbitration of data output from a plurality of blocks having different latencies by adopting the application configuration 32 in place of the basic configuration 31 in FIG. 2 may be considered.
  • the following functions are added.
  • variable length buffer For example, if a variable length buffer is added to the block Ml having the shortest latency (two cycles) in FIG. 4, the configuration of LSI is as shown in FIG.
  • the block Ml in FIG. 8 is provided with a one-stage variable-length buffer including a selector 53 and an FF 54. Selector 53 transfers data directly from RAM 23 and via FF 54 based on race conditions when FF 54 is used as a buffer and when it is not used. Select one of the paths to be performed.
  • the data output from block Ml can be delayed by one cycle, so that the latency of block Ml is variable within a range of 2 to 3 cycles.
  • the application configuration 32 described above is a limited measure in which a variable-length buffer is added only to the memory block with the shortest latency in order to minimize the increase in physical quantity.
  • This configuration can be further extended if physical capacity allows, and all blocks except the longest latency memory block can be handled in all situations by providing variable length buffers that can bridge the difference from the longest latency. It becomes possible to do.
  • Such a configuration is the application configuration 33 in FIG.
  • the latency of each memory block is Add a variable-length buffer to each memory block so that it can be stretched to the same latency as the reblock. This extends the range of latency adjustments and completely prevents performance degradation due to output conflicts.
  • a variable length buffer is added to the blocks M1 to M3 in FIG. 4
  • the configuration of the LSI is as shown in FIG. Blocks Ml, M2, and M3 in FIG. 10 are provided with variable length buffers 55, 56, and 57, respectively.
  • variable length buffer 55 includes selectors 61, 62 and 63 and six FFs 54.
  • Each FF 54 is used as a buffer of one stage, and each selector selects one of a path for transferring data directly from the RAM 23 and a path for transferring data via the FF 54.
  • the variable-length buffer 55 can set four buffer lengths of 0, 2, 4, and 6 stages. These buffer lengths are used to set the data output to 0, 2, and 4 cycles, respectively. , And can be delayed by six cycles.
  • the selector 61 selects the input I2
  • the selectors 61 and 62 select the inputs I1 and I4, respectively.
  • selectors 61, 62 and 63 select inputs II, 13 and 16 respectively.
  • selectors 61, 62 and 63 select inputs II, 13 and I5 respectively. I do.
  • the variable length buffer 56 includes selectors 61 and 62 and four FFs 54 as shown in FIG. This variable length buffer 56 can set three buffer lengths of 0 stage, 2 stages, and 4 stages. In the case of 0 stages, selector 61 selects input I 2, in the case of 2 stages, selectors 61 and 62 select inputs I 1 and I 4, respectively, in the case of 4 stages, selectors 61 and 62 select input I 2 Select I1, I3.
  • the variable length buffer 57 includes a selector 61 and two FFs 5 as shown in FIG. 4 forces
  • the variable-length buffer 57 can set two buffer lengths, ie, ⁇ -stage and two-stage. In the case of 0 stages, the selector 61 selects the input I2, and in the case of 2 stages, the selector 61 selects the input I1.
  • the latencies of blocks Ml, M2, and M3 can be changed in the range of 2-8 cycles, 4-8 cycles, and 6-8 cycles, respectively. Eight cycles, which is the latency of M4, can be realized. Since the longest latency of the memory 42 is eight cycles, no matter what the situation, if the data output is delayed by a maximum of eight cycles, output conflict does not occur.
  • FIG. 14 is a configuration diagram of an access activation control circuit corresponding to an example of the above-described inhibition mechanism.
  • the access input control circuit of FIG. 14 is provided between the request source 41 and the memory 42, receives the request signal R from the request source 41, and returns the access signal A to the request source 41.
  • the access signal A When the access signal A is a logical "1", it indicates that access to the memory 42 can be input, and when it is a logical "0", it indicates that access cannot be input.
  • the request source 41 delays issuing the request until the access signal A becomes logic "1".
  • the block output selection signals O 1 to O 4 are used as control signals for the selector 52.
  • the decoder 64 decodes the request signal R to obtain the address of the issue destination, and outputs the block selection signals S1 to S4.
  • the signal S4 is input to a circuit in which eight FFs 54 are connected in series, and output as a signal # 4 after eight cycles.
  • the output of AND circuit 65 is based on the signal S 3 If it is “1” and the signal O4 is logic “0" six cycles later, it becomes logic "1".
  • the output of the AND circuit 65 is input to a circuit in which six FFs 54 are connected in series, and output as a signal O3 after six cycles.
  • the output of the AND circuit 66 becomes logic "1" when the signal S2 is logic “1” and the signals O3 and O4 are both logic “0” four cycles later.
  • the output of the AND circuit 66 is input to a circuit in which four FFs 54 are connected in series, and is output as a signal ⁇ 2 after four cycles.
  • the output of the AND circuit 67 becomes logic "1" when the signal S1 is logic “1” and the signals 02, 03, and O4 are both logic “0” two cycles later.
  • the output of the AND circuit 67 is input to a circuit in which two F F 54 are connected in series, and is output as a signal O 1 two cycles later.
  • the ⁇ R circuit 68 outputs the logical sum of the signal S4 and the outputs of the AND circuits 65 to 67 as the access signal A.
  • a request to which the block M4 is issued is input to the memory 42 as it is.
  • requests that are issued to other blocks are checked to see if data output conflicts with the preceding request, and if they do, issuance of the request is suppressed.
  • FIG. 15 is a more detailed configuration diagram of the LSI of FIG. 15, a data valid flag response circuit 71 and a variable length buffer stage number selection circuit 72 are further added to the configuration of FIG.
  • the variable-length buffer stage number selection circuit 72 holds output buffer reservation information indicating the data output timing for the issued request, and performs the following control.
  • Block identification information of the access destination from the address of the request.
  • the block identification information for example, a block number is used. If a block is known, its minimum required latency can be known, so let it be n cycles.
  • variable length Set 0 as the initial value for the number m of buffer stages used.
  • the data valid flag response circuit 71 corresponds to an example of the above-described instruction mechanism, and (n
  • FIG. 16 shows an example of the variable length buffer stage number selection circuit 72.
  • Figure 1 shows the decoder 64, the request signal R, and the block selection signals S1 to S4.
  • a circuit in which eight FFs 54 are connected in series forms a preceding request indication bit map and stores output buffer reservation information.
  • the timing signal OUT output from the final stage FF 54 becomes logic "1" in the cycle in which data is output.
  • the buffer stage number selection signals C110 to C1_6 are used as control signals for the variable-length buffer 55 of the block M1.
  • the variable length buffer 55 is set to the buffer length of the i-th stage.
  • the signals C 1-4 are omitted.
  • the output of the AND circuit 91 becomes logic "1" when the following two conditions are satisfied.
  • the output of the AND circuit 91 is input to the penultimate FF 54 and output as a signal OUT after two cycles.
  • the output of the AND circuit 92 becomes logic "1" when the following three conditions are satisfied.
  • the output of the AND circuit 92 is input to the third last FF 54 and output as a signal OUT after three cycles. Then, the OR circuit 96 outputs the logical sum of the outputs of the AND circuits 91 and 92 as the buffer stage number selection signal C11. According to such a circuit, if the output bus 51 is free two cycles ahead, the buffer length of the variable length buffer 55 is set to zero. Even if the output bus 51 is not vacant two cycles ahead, but is vacant three cycles ahead, the buffer length of the variable-length buffer 55 is set to zero. In this case, if output of the requested data is delayed by one cycle, output conflict does not occur.
  • the output of the AND circuit 93 becomes logic "1" when the following four conditions are satisfied. It becomes.
  • the OR circuit 85 outputs the logical sum of the output of the AND circuit 93 and the output of an AND circuit (not shown) provided for another block.
  • the output of the OR circuit 85 is input to the fourth last FF 54, and is output as a signal OUT four cycles later.
  • the output of the AND circuit 94 becomes logic "1" when the following five conditions are satisfied.
  • the OR circuit 84 outputs the logical sum of the output of the AND circuit 94 and the output of an AND circuit (not shown) provided for another block.
  • the output of the OR circuit 84 is input to the fifth last FF 54, and is output as a signal OUT after 5 cycles.
  • the OR circuit 97 outputs the logical sum of the outputs of the AND circuits 93 and 94 as the buffer stage number selection signal C112.
  • the buffer length of the variable length buffer 55 is set to two stages. Even if the output bus 51 is not empty four cycles ahead, if the output bus 51 is empty five cycles ahead, the buffer length of the variable-length buffer 55 is set to two stages. In this case, if the data output is delayed by one cycle, no output conflict occurs.
  • the output of the AND circuit 95 becomes logic "1" when the following seven conditions are satisfied.
  • the OR circuit 81 outputs the logical sum of the output of the AND circuit 95 and the output of an AND circuit (not shown) provided for another block.
  • the output of the OR circuit 81 is input to the first FF 54 and output as a signal OUT after 8 cycles.
  • the output of the AND circuit 95 is used as a buffer stage number selection signal C1-6. According to such a circuit, the buffer length of the variable length buffer 55 is set to six stages unless the output bus 51 is not vacant two to seven cycles ahead. In this case, there is no output contention because the latency is up to eight cycles.
  • the OR circuits 82 and 83 also output the logical sum of the outputs of the AND circuit (not shown).
  • the output of the OR circuit 83 is input to the sixth last FF 54 and output as a signal OUT after six cycles.
  • the output of the OR circuit 82 is input to the seventh last FF 54 and output as a signal OUT after seven cycles.
  • the buffer stage number selection signals C14 are also generated in the same manner as the other selection signals.
  • variable length buffer stage number selection circuit 72 an optimum buffer length is selected according to the block number of the issue destination and the data output timing of the preceding request. Therefore, while utilizing the latency difference between blocks, Data output conflicts can be prevented.
  • FIG. 17 shows an example of a control circuit for the memory block Ml in the data valid flag response circuit 71.
  • the control circuit shown in Fig. 17 has a configuration in which FF54 is added to each of the input side and output side of the variable length buffer shown in Fig. 11, and shifts the request signal R sequentially from the input side to the output side And output as data valid flag F.
  • FF54 is added to each of the input side and output side of the variable length buffer shown in Fig. 11, and shifts the request signal R sequentially from the input side to the output side And output as data valid flag F.
  • the selectors 6 1, 6 2, and 6 3 are connected to the variable-length buffer shown in FIG. It is controlled by the same logic. Therefore, the data valid flag F can be transferred to the request source 41 at the timing when data is output from the memory block Ml.
  • the configuration of the control circuit for the other memory blocks is the same as the circuit in FIG.
  • the data valid flag F generated by the data valid flag response circuit 71 it is also possible to use the timing signal OUT shown in FIG. In this case, since the signal OUT is transferred to the request source 41, the data valid flag response circuit 71 becomes unnecessary.
  • variable-length buffers are provided in all memory blocks except for the memory block M4 with the longest latency so that all situations can be handled. However, if only a limited situation can be dealt with, a variable length buffer may be provided only in some memory blocks.
  • the configuration in Fig. 8 can be regarded as a simplification of the configuration in Fig. 15, it is controlled by the same control circuit as the data valid flag response circuit 71 and the variable length buffer stage number selection circuit 72 in Fig. 15. can do.
  • the configuration of the control circuit in this case can be easily estimated from FIGS. 16 and 17.
  • the basic configuration 31, application configuration 32, and application configuration 33 described above are configurations for a general memory. Latency difference.
  • the basic configuration 31, application configuration 32, and application configuration 33 shown in Fig. 2 are each extended to cache memory.
  • the basic configuration of cache memory 34, application configuration of cache memory 35, and application configuration of cache memory 36 are as follows. is there.
  • the basic configuration of cache memory 34 addresses large-capacity cache memory with the following additional configuration functions.
  • FIG. 18 shows a configuration example of an LSI equipped with such a cache memory. I have.
  • the LSI in FIG. 18 includes a request source 41 and a cache memory 101, and the cache memory 101 is blocked by four cache memory blocks C1, C2, C3, and C4.
  • Each cache memory block includes FF 21, tag RAMI 11, and data RAMI 12, and outputs tags and data in response to a request from request source 41.
  • the selector 103 selects one of the tag transfer paths from the four blocks, and outputs the tag of the selected path to the cache control circuit 102.
  • the cache control circuit 102 determines hit / miss of the received tag, and controls the operation of the cache memory 101 according to the determination result.
  • the selector 52 selects one of the data transfer paths from the four blocks, and outputs the data of the selected path to the output bus 51.
  • Tag latency 1
  • a request R2 for block C1 is issued two summs after the issuance of request R1 for block C2, and a request R3 for block C2 is issued immediately after that. I do.
  • requests R 1 and R 2 are issued in cycles 01 and 03, respectively, the tag outputs for those requests conflict in cycle 03, so that The suppression mechanism delays the issuance of request R2 by one cycle. Accordingly, the issuance of request R 3 is also delayed by one cycle.
  • a cache memory application configuration 35 is used.
  • a single-stage variable-length buffer similar to that shown in Fig. 8 is added for both tag output and data output from the block with the shortest latency.
  • the selector 53 selects either a path for transferring data directly from the tag RAM I11 or a path for transferring data via the FF54. I do.
  • the selector 53 selects one of a path for directly transferring data from the data RAM I 12 and a path for transferring data via the FF 54. select.
  • the scheduling shown in FIG. 21 can be performed for the three requests in FIG.
  • cycle 03 Even if Quest R2 is issued, if the path through FF 54 is selected as the tag transfer path, the tag output can be delayed by one cycle, so that it will not conflict with the tag output for request R1 in cycle 03. Absent. Therefore, there is no need to delay the issuance of requests R2 and R3.
  • variable-length buffer capable of extending the latency of each cache memory block to the longest latency is added to both the tag output and the data output from each cache memory block. This makes it possible to handle all situations and achieve the best average latency.
  • variable-length buffers are added to the outputs of the tag RAMs 111 and the data RAMI 12 of blocks C1 to C3, respectively, the configuration of the LSI becomes Become.
  • a variable-length buffer 55 is provided on each output side of the tag RAMI 11 and data RAMI 12 of the block C 1, and a variable length buffer 55 is provided on each output side of the tag RAMI 11 and the data RAMI 12 of the block C 2.
  • a long buffer 56 is provided. Also, the tag RAMI11 of block C3 and the data RAM
  • variable length buffer 57 is provided on each of the output sides of 112.
  • variable length buffers 55, 56, 57, the data valid flag response circuit 71, and the variable length buffer stage number selection circuit 72 are as described above.
  • the two variable length buffers in each block are controlled by the same selection signal from the variable length buffer stage number selection circuit 72, and the selector 103 and the selector 103
  • the tag latencies of blocks C1, C2, and C3 are variable in the range of 1 to a cycle, 2 to 7 cycles, and 5 to 7 cycles, respectively.
  • Tag Crate of Block C 4 7 cycles which is the maximum Since the longest tag latency of the cache memory 101 is 7 cycles, the tag output does not compete if the tag output is delayed by up to 7 cycles in any situation.
  • the adjustment range of the data latency is the same as in FIG.
  • FIG. 23 shows a configuration example in which the cache memory application configuration 36 is applied to a chip-level multiprocessor (Chip-level Multiprocessor, CMP).
  • CMP is a system that has multiple processors (CPU CORE) in an LSI chip, and can realize a multiprocessor configuration that was conventionally realized using multiple chips on a single chip.
  • each selector 24 selects the output path from the most recent variable length buffer or the output path from a further block.
  • each block is also provided with these circuits as in the configuration of FIG. Circuits similar to the CPU CORE 121 are provided for other CPU cores.
  • block C 1 is the closest from CPU CORE 121 and block C 4 is the farthest. Therefore, for CPU CORE 121, the shortest data rate of blocks C1, C2, C3, and C4 The latencies are 2, 4, 6, and 8, respectively.
  • block C1 is farthest from CPU CORE 124 and block C4 is closest.
  • the shortest data latencies of blocks C1, C2, C3, and C4 are 8, 6, 4, and 2, respectively.
  • block C 2 is closest, blocks C 1 and C 3 are next closest, and block C 4 is farthest.
  • the minimum data latencies of blocks C1, C2, C3, and C4 are 4, 2, 4, and 6, respectively.
  • Block C 3 is closest to CPU CORE 123, blocks C 2 and C 4 are next closest, and block C 1 is farthest.
  • the shortest data latencies of blocks C1, C2, C3, and C4 are 6, 4, 2, and 4, respectively.
  • the speed of memory access can be increased by utilizing a latency difference according to a data storage position.

Description

明細書 メモリブロック間のレイテンシ差を活用するデータ処理装置および方法 技術分野
本発明は、 複数のブロックからなるメモリを有するデータ処理装置と、 その ようなメモリのデータを処理する方法に関する。 背景技術
マイクロプロセッサをはじめとして L S I (Large Scale Integration ) の集積度および高速化の向上は目覚しいものがある。 L S Iの高速化が進む一 方で主記憶装置等の外部メモリとの速度差は拡大しており、 その差を埋めるた めに、 大容量の (つまり、 面積の大きな) キャッシュメモリを L S Iに搭載す るという手法が一般化している。
また、 携帯電話や PDA (Personal Digital Assistance) をはじめとした 小型だがデータ処理能力を要求される装置では、 LS I内部にプロセッサと主 記憶が封入されている。 今後も、 集積度の向上に伴い、 LS I内部のメモリは 大容量化の一途をたどるものと容易に想像できる。
従来のメモリ制御では、 LS I内部に搭載された大容量メモリへのアクセス はすべて単一のレイテンシで行われている (例えば、 特許文献 1および 2参 照)。
特許文献 1
特開平 09— 045075号公報
特許文献 2
特開 2000— 298983号公報 ここでのレイテンシとは、 データリクエストを発行してからリクエストされ たデータが帰ってくるまでの時間を意味し、 レイテンシの単位としては、 回路 の同期に用いられるクロックのサイクル数が用いられる。
単一のレイテンシを用いると、 リクエスト元から物理的に遠い位置にあるメ モリへのアクセスも近いメモリへのアクセスも、 レイテンシには差がなくなる。 このような制御を行う理由は、 主として次の 2つである。
( 1 ) 単一のレイテンシとした方が制御が簡単になる。
( 2 ) 従来は、 L S I内における遅延時間のうち配線遅延時間が占める割合は 小さく、 ゲート遅延時間が主である。 このため、 L S I内部でのメモリの配置 位置により配線遅延時間が多少大きくなつても、 それを 1サイクル内に収める ことができる。 したがって、 遅延時間が多少異なるメモリ間においても、 同一 のレイテンシを用いることが容易である。
し力、し、 半導体のプロセス技術が進歩し L S Iの速度 (クロック周波数) が さらに向上するにつれ、 L S I内部の配線遅延時間が支配的になり、 L S I内 での配置位置の差によるディレイ差が無視できなくなつてきた。 このような状 況で、 従来通り単一のレイテンシで制御を行うと、 結果的に最も遠いメモリに 合わせざるを得ず、 メモリアクセスのレイテンシが大幅に伸びて処理性能に悪 影響を与える。
図 1は、 単一のレイテンシによるメモリ制御を L S Iに搭載された大容量メ モリに適用した場合の仮想的な構成を示している。 図 1の L S Iは、 リクエス ト元 1 1およびメモリ 1 2からなり、 メモリ 1 2は 4つのメモリブロック M l、 M 2、 M 3、 および M 4にブロック化されている。 リクエスト元 1 1からの距 離は、 M l、 M 2、 M 3、 およぴ M 4の順に遠くなつている。
各メモリブロックは、 フリップフロップ回路 (F F ) 2 1、 2 2、 データを 格納する R AM (random access memory ) 2 3、 およびセレクタ 2 4を含む。 F F 2 1および 2 2は、 それぞれ 1段 (1サイクル) のバッファ回路として機 能する。 セレクタ 2 4は、 同じブロック内の R AM 2 3からの出力パス、 また はより遠くのプロックからの出力パスを選択し、 選択されたパスのデータを出 力する。
この場合、 リクエスト元 1 1と各ブロックとの距離は、 レイテンシに換算す ると、 リクエスト元 1 1から発行されたデータリクエストを発行先の R AM 2 3に転送するパスと、 R AM 2 3から出力されたデータをリクエスト元 1 1に 転送するパスとに含まれる F F 2 1の数で表される。 ここでは、 ブロック M l、 M 2、 M 3、 および M 4までの距離は、 それぞれ 2サイクル、 4サイクル、 6 サイクル、 および 8サイクルである。
ブロック間でレイテンシに差をつけない場合、 最も遠いブロック M 4に合わ せて他のプロックに F F 2 2が追加され、 平均レイテンシは以下のようになる。 平均レイテンシ==最大レイテンシ = 8サイクル したがって、 M 4以外のメモリブロックに対するリクエストの処理が大幅に 遅れることになる。 発明の開示
本発明の識題は、 L S Iのような半導体集積回路に大容量のメモリを搭載し た場合のメモリアクセスを高速化するデータ処理装置およぴ方法を提供するこ とである。
本発明の第 1のデータ処理装置は、 複数のメモリブロック、 複数の転送パス 、 およびセレクタを備える。
複数のメモリブ口ックは、 リクエスト元から発行されたデータリクエストに 対してそれぞれ異なるレイテンシを有し、 そのデータリクエストを受け取って リクエストされたデータを出力する。 複数の転送パスは、 これらのメモリプロ ックからリクエスト元に対してそれぞれデータを転送する。 そして、 セレクタ は、 これらの転送パスのうち、 データリクエス トの発行先のメモリブロックか らリクエスト元への転送パスを選択する。
本発明の第 2のデータ処理装置は、 複数のキャッシュメモリブロック、 制御 回路、 複数のタグ転送パス、 複数のデータ転送パス、 第 1のセレクタ、 および 第 2のセレクタを備える。
複数のキヤッシュメモリブ口ックは、 リクエスト元から発行されたデータリ クエストを受け取ってリクエストされたデータのタグを出力するタグメモリと 、 そのデータリクエストを受け取ってリクエストされたデータを出力するデー タメモリとを含み、 データリクエストに対してそれぞれ異なるデータレイテン シを有する。 制御回路は、 出力されたタグを用いてキャッシュ制御を行う。 複数のタグ転送パスは、 これらのキャッシュメモリブロックから制御回路に 対してそれぞれタグを転送し、 複数のデータ転送パスは、 これらのキャッシュ メモリプロックからリクエスト元に対してそれぞれデータを転送する。
第 1のセレクタは、 これらのタグ転送パスのうち、 データリクエストの発行 先のキャッシュメモリブロックから制御回路へのタグ転送パスを選択し、 第 2 のセレクタは、 これらのデータ転送パスのうち、 データリクエストの発行先の キャッシュメモリブ口ックからリクエスト元へのデータ転送パスを選択する。 図面の簡単な説明
図 1は、 複数のメモリブロックを有する仮想的な L S Iの構成図である。 図 2は、 本発明のデータ処理装置の分類を示している。
図 3は、 第 1の基本構成を示す図である。 図 4は、 第 2の基本構成を示す図である。
図 5は、 2つのリクエスト間におけるデータ出力の競合を示す図である t 図 6は、 リクエスト発行を遅らせる第 1の例を示す図である。
図 7は、 リクエスト発行を遅らせる第 2の例を示す図である。
図 8は、 第 1の応用構成を示す図である。
図 9は、 データ出力を遅らせる例を示す図である。
図 1 0は、 第 2の応用構成を示す図である。
図 1 1は、 第 1の可変長バッファの構成図である。
図 1 2は、 第 2の可変長バッファの構成図である。
図 1 3は、 第 3の可変長バッファの構成図である。
図 1 4は、 アクセス投入制御回路の構成図である。
図 1 5は、 第 2の応用構成の詳細を示す図である。
図 1 6は、 可変長バッファ段数選択回路の構成図である。
図 1 7は、 データ有効フラグ応答回路の構成図である。
図 1 8は、 キャッシュメモリ基本構成を示す図である。
図 1 9は、 リクエスト発行を遅らせる第 3の例を示す図である。
図 2 0は、 第 1のキャッシュメモリ応用構成を示す図である。
図 2 1は、 タグ出力とデータ出力を遅らせる例を示す図である。
図 2 2は、 第 2のキャッシュメモリ応用構成を示す図である。
図 2 3は、 チップレベルマルチプロセッサの構成図である。 発明を実施するための最良の形態
以下、 図面を参照しながら、 本発明の実施の形態を詳細に説明する。
本実施形態では、 L S I内のメモリをレイテンシの差に応じて複数のプロッ クに分割し、 レイテンシの短いブロック (つまり、 物理的にリクエスト元に近 い位置のブロック) へのアクセスに対しては早く結果を返すようにする。 これ により、 レイテンシ差を有効利用して平均レイテンシを短縮し、 L S Iの性能 向上を図ることができる。
本実施形態のデータ処理装置の構成は、 大別すると、 図 2に示すような 6つ の構成に分類できる。 基本構成 3 1は、 リクエスト元の位置とメモリ内のデー タの配置位置との関係を考慮し、 メモリ内のデータをレイテンシ差に応じてブ ロック化した構成であり、 応用構成 3 2は、 基本構成 3 1に対して、 最短レイ テンシのブ口ックに 1段の可変長バッファを追加した構成である。
また、 応用構成 3 3は、 基本構成 3 1に対して、 最短レイテンシのブロック のみならず、 より長いレイテンシのプロックに対しても、 可変長バッファを追 加した構成である。 この場合、 最長レイテンシのブロックと同じレイテンシを 実現可能な複数段の可変長バッファが、 各プロックに追加される。
次に、 構成 3 4、 3 5、 および 3 6は、 それぞれ構成 3 1、 3 2、 および 3 3をキャッシュメモリに拡張した実施形態を表している。
キャッシュメモリ基本構成 3 4は、 キャッシュのデータおよびタグをレイテ ンシ差に応じてブロック化した構成であり、 キャッシュメモリ応用構成 3 5は、 キャッシュメモリ基本構成 3 4に対して、 最短レイテンシのプロックに 1段の 可変長バッファを追加した構成である。 また、 キャッシュメモリ応用構成 3 6 は、 キャッシュメモリ基本構成 3 4に対して、 各ブロックに複数段の可変長バ ッファを追加した構成である。
以下、 図 3から図 2 3までを参照しながら、 各構成の具体例について説明す る。
まず、 図 1の L S Iに本発明の基本構成 3 1を適用した場合、 L S Iの構成 は図 3のようになる。 図 3の L S Iは、 リクエスト元 4 1およびメモリ 4 2か らなり、 メモリ 4 2は 4つのメモリブロック M l、 M 2、 M 3、 および M 4に プロック化されている。
リクエス ト元 41は、 例えば、 CPU (中央処理装置) 内のメインパイプラ イン、 演算器等に対応し、 メモリ 42の各プロックに対してデータリクエスト を発行し、 メモリ 42から出力バス 5 1を介してデータを受け取る。 この場合、 ブロック毎に異なるレイテンシを用いてメモリ制御が行われるため、 F F 22 は不要となる。
ブロック Ml、 M2、 M3、 および M 4のレイテンシは、 それぞれ 2サイク ル、 4サイクル、 6サイクル、 および 8サイクルであるから、 メモリアクセス の平均レイテンシは次のようになる。
平均レイテンシ= (2 + 4+6 + 8) /4 = 5サイクノレ
したがって、 図 1の場合と比べて 3サイクル分の性能向上となる。 図 3の構 成では、 各メモリブロックにセレクタ 24を設けて、 同じブロック内の RAM 23から出力されたデータ、 またはより遠くのブロックから出力されたデータ のいずれかを選択している。 しかし、 このような出力データの選択を、 出カバ ス 5 1の直前で一括して行うことも可能である。
図 4は、 このような L S Iの構成を示している。 図 4のメモリプロック Ml、 M2、 および M3には、 セレクタ 24の代わりに、 よりレイテンシの長いプロ ックから出力されたデータを転送する FF 21が追加されている。 セレクタ 5 2は、 4つのメモリブロックの外側に設けられ、 それらのブロックからの 4つ のデータ転送パスの 1つを選択して、 選択されたパスのデータを出力バス 5 1 に出力する。 実際には、 データリクエストに含まれるブロック識別情報に応じ て、 対応する転送パスが選択される。
この場合も、 ブロック Ml、 M2、 M3、 および M 4のレイテンシは、 それ ぞれ 2サイクル、 4サイクル、 6サイクル、 および 8サイクルであり、 平均レ ィテンシは 5サイクルとなる。
ところで、 レイテンシの異なるブロックからのデータをリクエスト元に返す 際には、 レイテンシ差に起因する出力バス 5 1の競合に注意しなければならな い。
例えば、 図 5に示すように、 レイテンシ = 4サイクルであるブロック M 2へ のリクエスト R 1が発行されてから 2サイクル後に、 レイテンシ = 2サイクル であるプロック M lへのリクエス ト R 2を発行した場合を考える。 リクエス ト R 1および R 2がそれぞれサイクル 0 1および 0 3において発行されると、 そ れらのリクエストに対するデータはともにサイクル 0 4において出力バス 5 1 に出力されるので、 出力バス 5 1の競合が発生する。
この競合を抑止する最も単純な解決策は、 図 6に示すように、 後続のリクェ スト R 2の発行を 1サイクル遅らせる方法である。 この場合、 リクエスト R 2 に対するデータは、 サイクノレ 0 4ではなく、 サイクル 0 5において出力パス 5 1に出力されるので競合は発生しない。
このようなメモリ制御を実現するために、 L S I内には以下のような機構 (回路) が付加される。
( a ) 固定レイテンシではないため、 リクエスト元に対して非同期にデータの t
転送を指示する指示機構が必要となる。 この指示機構は、 アクセスするプロッ クに応じて各リクエストのレイテンシを計算し、 その結果に応じて出力バス 5 l hのデータが有効であることをリクエスト元に通知する。
( b ) レイテンシに差がある複数のプロックへのリクエストが連続して発生す る揚合、 出力バス 5 1上へのデータ出力が競合するのを回避する必要がある。 このため、 各リクエストのレイテンシを求める上記 (a ) の指示機構とともに、 現在実行中のリクエストのレイテンシを記憶しておき、 出力が競合すると判断 される場合には後続のリクエストの発行を抑止する (遅らせる) 抑止機構が必 要となる。
これらの指示機構およぴ抑止機構の具体例については、 後述することにする。 図 6において、 例えば、 リクエスト R 2のすぐ後にブロック M 2へのリクエス ト R 3が続いていた場合には、 抑止機構により図 7に示すようなスケジユーリ ングが行われる。
この場合、 リクエス ト R 3の発行先のレイテンシは 4サイクルであるから、 サイクル 0 4においてリクエスト R 3を発行すれば、 サイクル 0 7においてメ モリ 4 2からデータが出力され、 リクエスト R 2との間で出力の競合は発生し ない。 それにもかかわらず、 リクエス ト R 2の発行が遅れたため、 後続のリク エスト R 3の発行も遅れ、 実際のデータはサイクル 0 8において出力されるこ とになる。 その結果、 実質的なレイテンシも引きずられて伸びてしまい、 全体 のスループットが悪化する。
そこで、 図 2の基本構成 3 1の代わりに応用構成 3 2を採用することで、 レ ィテンシの異なる複数のプロックからのデータ出力の調停を行うことが考えら れる。 この場合、 以下のような機能が追加される。
( c ) 最短レイテンシのメモリブロックの出力に、 1段の可変長バッファを付 加する。
( d ) 前述した (b ) の抑止機構の機能を拡張して、 最短レイテンシのメモリ ブロックへのアクセスについては、 以下の 2つの判断を同時に行うようにする。
— 1段のバッファを使用しない場合の競合状況の判断
一 1段のバッファを使用する場合の競合状況の判断
バッファを使用しなくても出力が競合しなレ、場合には、 バッファを使用しな いように転送パスを選択する。 一方、 バッファを使用しないと競合が生じ、 使 用すると競合が生じない場合には、 バッファを使用するように転送パスを選択 する。 バッファの有無によらず出力が競合する場合には、 リクエス トの発行を 遅らせる。
例えば、 図 4において最短レイテンシ (2サイクル) を有するブロック M l に可変長バッファを付加すると、 L S Iの構成は図 8のようになる。 図 8のブ 口ック M lにはセレクタ 5 3と F F 5 4からなる 1段の可変長バッファが設け られている。 セレクタ 5 3は、 F F 5 4をバッファとして使用する場合の競合 状況とそれを使用しない場合の競合状況に基づいて、 R AM 2 3から直接デー タを転送するパスと F F 5 4を介して転送するパスのいずれかを選択する。
F F 5 4を通るパスを選択すればブロック M lからのデータ出力を 1サイク レだけ遅らせることができるので、 ブロック M lのレイテンシは 2〜 3サイク ルの範囲で可変となる。
これにより、 図 7のリクエスト R 2および R 3の発行とデータのレイテンシ は、 図 9に示すように改善される。 この場合、 サイクル 0 3においてリクエス ト R 2を発行しても、 転送パスとして F F 5 4を通るパスを選択すればデータ 出力を 1サイクル遅らせることができるので、 サイクル 0 4におけるリクエス ト R 1に対するデータ出力と競合することはない。 したがって、 次のリクエス ト R 3の発行を遅らせる必要がなくなり、 サイクル 0 4において R 3を発行し、 サイクル 0 7においてデータを出力することが可能となる。
上述した応用構成 3 2は、 物量の増大を最小限に抑えるために、 最短レイテ ンシのメモリブロックについてのみ可変長バッファを付加した限定的な対処で ある。 物量が許すならばこの構成をさらに拡張し、 最長レイテンシのメモリブ 口ックを除くすべてのブロックについて、 最長レイテンシとの差を埋めること が可能な可変長バッファを用意することにより、 あらゆる状況に対処すること が可能となる。 このような構成が図 2の応用構成 3 3である。
応用構成 3 3では、 各メモリブロックのレイテンシを最長レイテンシのメモ リブロックと同じレイテンシにまで引き伸ばすことができるような可変長バッ ファを、 各メモリブロックに付加する。 これにより、 レイテンシの調節範囲が 拡大し、 出力の競合による性能低下を完全に防ぐことができるようになる。 例えば、 図 4においてブロック Ml〜M 3にこのような可変長バッファを付 加すると、 LS Iの構成は図 10のようになる。 図 10のブロック Ml、 M2、 および M3にはそれぞれ可変長バッファ 55、 56、 および 57が設けられて いる。
可変長バッファ 55は、 図 1 1に示すように、 セレクタ 6 1、 62、 および 6 3と 6個の FF 54からなる。 各 FF 54は 1段のバッファとして用いられ、 各セレクタは、 RAM 23から直接データを転送するパスと FF 54を介して 転送するパスのいずれかを選択する。
この可変長バッファ 55は、 0段、 2段、 4段、 および 6段の 4つのバッフ 了長を設定することができ、 これらのバッファ長はデータ出力をそれぞれ 0サ イタル、 2サイクル、 4サイクル、 および 6サイクルだけ遅らせることができ る。 0段の場合、 セレクタ 6 1は入力 I 2を選択し、 2段の場合、 セレクタ 6 1、 62はそれぞれ入力 I 1、 I 4を選択する。 4段の場合、 セレクタ 6 1、 62、 63はそれぞれ入力 I I、 1 3、 1 6を選択し、 6段の場合、 セレクタ 6 1、 62、 63はそれぞれ入力 I I、 1 3、 I 5を選択する。
可変長バッファ 56は、 図 1 2に示すように、 セレクタ 6 1および 62と 4 個の FF 54からなる。 この可変長バッファ 56は、 0段、 2段、 および 4段 の 3つのバッファ長を設定することができる。 0段の場合、 セレクタ 6 1は入 力 I 2を選択し、 2段の場合、 セレクタ 61、 62はそれぞれ入力 I 1、 I 4 を選択し、 4段の場合、 セレクタ 61、 62はそれぞれ入力 I 1、 I 3を選択 する。
可変長バッファ 57は、 図 1 3に示すように、 セレクタ 61と 2個の F F 5 4力、らなる。 この可変長バッファ 57は、 ◦段および 2段の 2つのバッファ長 を設定することができる。 0段の場合、 セレクタ 61は入力 I 2を選択し、 2 段の場合、 セレクタ 6 1は入力 I 1を選択する。
これらの可変長バッファを設けることで、 ブロック Ml、 M2、 および M3 のレイテンシはそれぞれ 2〜8サイクル、 4〜8サイクル、 および 6〜8サイ クノレの範囲で可変となり、 レ、ずれのブロックもブロック M4のレイテンシであ る 8サイクルを実現可能となっている。 メモリ 42の最長レイテンシは 8サイ クルであるから、 どのような状況であってもデータ出力を最大 8サイクル遅ら せれば出力の競合が発生することはない。
図 14は、 前述した抑止機構の一例に対応するアクセス投入制御回路の構成 図である。 図 14のアクセス投入制御回路は、 リクエスト元 41とメモリ 42 の間に設けられ、 リクエスト元 41からリクエスト信号 Rを受け取って、 ァク セス信号 Aをリクエスト元 41に返送する。
アクセス信号 Aは、 論理 "1" のときメモリ 42へのアクセス投入が可能で あることを表し、 論理 "0" のときアクセス投入が不可能であることを表す。 リクエスト元 41は、 アクセス信号 Aが論理 "1" となるまでリクエストの発 行を遅らせる。
また、 ブロック出力選択信号 O 1〜〇 4は、 セレクタ 52の制御信号として 用いられる。 セレクタ 52は、 信号 O i ( i = l, 2, 3, 4) が論理 " 1" のときブロック M iからの転送パスを選択する。
デコーダ 64は、 リクエスト信号 Rをデコードして発行先のァドレスを取得 し、 ブロック選択信号 S 1〜S 4を出力する。 信号 S i ( i = l, 2, 3, 4) は、 発行先がブロック M iであるときに論理 "1" となる。
信号 S 4は 8個の FF 54が直列に接続された回路に入力され、 8サイクル 後に信号〇 4として出力される。 AND回路 65の出力は、 信号 S 3が論理 "1" であり、 かつ、 6サイクル先で信号 O 4が論理 " 0 " である場合に、 論 理 " 1" となる。 AND回路 65の出力は、 6個の F F 54が直列に接続され た回路に入力され、 6サイクル後に信号 O 3として出力される。
AND回路 66の出力は、 信号 S 2が論理 " 1" であり、 かつ、 4サイクル 先で信号 O 3および O 4がともに論理 "0" である場合に、 論理 "1" となる。 AND回路 66の出力は、 4個の FF 54が直列に接続された回路に入力され、 4サイクル後に信号〇 2として出力される。
AND回路 67の出力は、 信号 S 1が論理 " 1" であり、 かつ、 2サイクル 先で信号 02、 03、 および O 4がともに論理 "0" である場合に、 論理 "1" となる。 AND回路 67の出力は、 2個の F F 54が直列に接続された 回路に入力され、 2サイクル後に信号 O 1として出力される。 そして、 〇R回 路 68は、 信号 S 4と AND回路 65〜67の出力の論理和をアクセス信号 A として出力する。
このようなアクセス投入制御回路によれば、 プロック M4を発行先とするリ クエストはそのままメモリ 42に投入される。 しかし、 他のブロックを発行先 とするリクエストは、 先行するリクエストとの間でデータ出力が競合するかど うかがチェックされ、 競合する場合にはリクエストの発行が抑止される。
図 15は、 図 10の LS Iのより詳細な構成図である。 図 15では、 図 10 の構成に対してさらにデータ有効フラグ応答回路 7 1と可変長バッファ段数選 択回路 72が追加されている。 可変長バッファ段数選択回路 72は、 発行され たリクエストに対するデータ出力のタイミングを表す出カバッファ予約情報を 保持しており、 以下のような制御を行う。
(1) リクエストのアドレスからアクセス先のプロック識別情報を得る。 プロ ック識別情報としては、 例えば、 ブロック番号が用いられる。 ブロックが分か ればその最低必要レイテンシが分かるので、 それを nサイクルとする。 可変長 バッファの使用段数 mの初期値として 0をセットする。
(2) 出力バッファ予約情報から (n+m) サイクル後の出力バス 5 1の空き を検査する。 出力バス 51が空いていない場合は (3) の処理を行い、 空いて いる場合は (4) の処理を行う。
(3) mに 2を加算して (2) の処理を行う。
(4) アクセス先のブロックの可変長バッファの段数を m段に設定して、 デー タをアクセスする。 また、 (n+m) サイクル後にデータが出力されることを 出力バッファ予約情報に追加し、 後続のリクエストに備える。 同時に、 得られ た (n+m) サイクルの値をデータ有効フラグ応答回路 71に通知する。 データ有効フラグ応答回路 71は、 前述した指示機構の一例に対応し、 (n
+ m) サイクル後にデータ有効フラグをリクエスト元 41に転送する。 これに より、 (n+m) サイクル後のサイクルにおいて出力バス 5 1上のデータが有 効であることを、 リクエスト元 41に通知する。
図 16は、 可変長バッファ段数選択回路 72の例を示している。 デコーダ 6 4、 リクエスト信号 R、 およびブロック選択信号 S 1〜S 4については、 図 1
4と同様である。
8個の FF 54が直列に接続された回路は、 先行リクエスト表示ビットマツ プを形成し、 出力バッファ予約情報を記憶する。 最終段の FF 54から出力さ れるタイミング信号 OUTは、 データ出力が行われるサイクルで論理 " 1" と なる。
バッファ段数選択信号 C 1一 0〜C 1 _ 6は、 ブロック M 1の可変長バッフ ァ 55の制御信号して用いられる。 信号 C 1一 i ( i =0, 2, 4, 6) が論 锂 "1" のとき、 可変長バッファ 55には i段のバッファ長が設定される。 た だし、 図 16では、 信号 C 1—4は省略されている。
また、 図 16では、 ブロック Mlのバッファ段数選択信号を生成する回路の みが示されているが、 他のプロックのバッファ段数選択信号も同様の回路によ り生成される。 信号 S 2からは、 ブロック M 2の可変長バッファ 56のバッフ ァ段数選択信号 C2— i ( i =0, 2, 4) が生成され、 信号 S 3からは、 ブ ロック M 3の可変長バッファ 57のバッファ段数選択信号 C 3— i ( i =0, 2) が生成される。
AND回路 91の出力は、 以下の 2つの条件が満たされた場合に論理 "1" となる。
-信号 S 1が論理 "1"
- 2サイクル先で信号 OUTが論理 "0"
AND回路 9 1の出力は、 最後から 2番目の F F 54に入力され、 2サイク ル後に信号 OUTとして出力される。
AND回路 92の出力は、 以下の 3つの条件が満たされた場合に論理 "1" となる。
•信号 S 1が論理 "1"
■ 2サイクル先で信号〇 U Tが論理 " 1 "
- 3サイクル先で信号 OUTが論理 "0"
AND回路 92の出力は、 最後から 3番目の FF 54に入力され、 3サイク ル後に信号 OUTとして出力される。 そして、 OR回路 96は、 AND回路 9 1および 92の出力の論理和をバッファ段数選択信号 C 1一 0として出力する。 このような回路によれば、 出力バス 51が 2サイクル先で空いていれば、 可 変長バッファ 55のバッファ長は 0段に設定される。 また、 出力バス 5 1が 2 サイクル先で空いていなくても、 3サイクル先で空いていれば、 可変長バッフ ァ 55のバッファ長は 0段に設定される。 この場合、 リクエストされたデータ の出力を 1サイクル遅らせれば、 出力の競合は発生しない。
AND回路 93の出力は、 以下の 4つの条件が満たされた場合に論理 "1" となる。
■信号 S 1が論理 "1"
■ 2サイクル先で信号 O U Tが論理 " 1 "
• 3サイクル先で信号 OUTが論理 "1"
· 4サイクル先で信号 OUTが論理 " 0"
OR回路 85は、 AND回路 93の出力と他のブロック用に設けられた AN D回路 (不図示) の出力の論理和を出力する。 OR回路 85の出力は、 最後か ら 4番目の FF 54に入力され、 4サイクル後に信号 OUTとして出力される。
AND回路 94の出力は、 以下の 5つの条件が満たされた場合に論理 "1" となる。
-信号 S 1が論理 "1"
• 2サイクル先で信号 OUTが論理 "1"
■ 3サイクル先で信号 OUTが論理 "1"
• 4サイクル先で信号 OUTが論理 "1"
· 5サイクル先で信号 OUTが論理 "0"
OR回路 84は、 AND回路 94の出力と他のブロック用に設けられた AN D回路 (不図示) の出力の論理和を出力する。 OR回路 84の出力は、 最後か ら 5番目の FF 54に入力され、 5サイクル後に信号 OUTとして出力される。 また、 OR回路 97は、 AND回路 93および 94の出力の論理和をバッファ 段数選択信号 C 1一 2として出力する。
このような回路によれば、 出力バス 51が 4サイクル先で空いていれば、 可 変長バッファ 55のバッファ長は 2段に設定される。 また、 出力バス 5 1が 4 サイクル先で空いていなくても、 5サイクル先で空いていれば、 可変長バッフ ァ 55のバッファ長は 2段に設定される。 この場合も、 データの出力を 1サイ クル遅らせれば、 出力の競合は発生しない。 AND回路 95の出力は、 以下の 7つの条件が満たされた場合に論理 "1" となる。
•信号 S 1が論理 "1"
■ 2サイクル先で信号 OUTが論理 "1"
- 3サイクル先で信号 OUTが論理 "1"
■ 4サイクル先で信号 OUTが論理 "1"
■ 5サイクル先で信号 OUTが論理 "1"
• 6サイクル先で信号 OUTが論理 "1"
• 7サイクル先で信号 O U Tが論理 " 1 "
OR回路 81は、 AND回路 95の出力と他のブロック用に設けられた AN D回路 (不図示) の出力の論理和を出力する。 OR回路 81の出力は、 最初の FF 54に入力され、 8サイクル後に信号 OUTとして出力される。 また、 A ND回路 95の出力は、 バッファ段数選択信号 C 1— 6として用いられる。 このような回路によれば、 出力バス 51が 2〜 7サイクル先で空いていなけ れば、 可変長バッファ 55のバッファ長は 6段に設定される。 この場合、 レイ テンシは最長の 8サイクルとなるので、 出力の競合は発生しない。
同様にして、 OR回路 82および 83も、 不図示の AND回路の出力の論理 和を出力する。 OR回路 83の出力は、 最後から 6番目の FF 54に入力され、 6サイクル後に信号 OUTとして出力される。 OR回路 82の出力は、 最後か ら 7番目の FF 54に入力され、 7サイクル後に信号 OUTとして出力される。 また、 バッファ段数選択信号 C 1一 4も、 他の選択信号と同様にして生成され る。
このような可変長バッファ段数選択回路 72によれば、 発行先のプロック番 号と先行するリクエストのデータ出力タイミングとに応じて、 最適なバッファ 長が選択される。 したがって、 プロック間のレイテンシ差を活用しながら、 デ ータ出力の競合を防止することができる。
図 1 7は、 データ有効フラグ応答回路 7 1のうちメモリプロック M l用の制 御回路の例を示している。 図 1 7の制御回路は、 図 1 1の可変長バッファの入 力側と出力側にそれぞれ F F 5 4を追加した構成を有し、 リクエスト信号 Rを 入力側から出力側に向かって順次シフトし、 データ有効フラグ Fとして出力す る。 メモリプロック M 1の場合、 n = 2、 m= 0 , 2, 4 , 6であるから、 n + m= 2 , 4, 6, 8となる。
セレクタ 6 1、 6 2、 および 6 3は、 可変長バッファ段数選択回路 7 2から の選択信号 C (信号 C 1 _ 0〜C 1一 6に相当する) により、 図 1 1の可変長 バッファと同様の論理で制御される。 したがって、 メモリブロック M lからデ ータが出力されるタイミングに合わせて、 データ有効フラグ Fをリクエスト元 4 1に転送することができる。 他のメモリブロック用の制御回路の構成につい ても、 図 1 7の回路と同様である。
ところで、 データ有効フラグ応答回路 7 1が生成するデータ有効フラグ Fの 代わりに、 図 1 6に示したタイミング信号 O U Tを用いることも可能である。 この場合、 信号 O U Tがリクエス ト元 4 1に対して転送されるので、 データ有 効フラグ応答回路 7 1は不要となる。
図 1 5の構成では、 すべての状況に対処できるように、 最長レイテンシのメ モリブロック M 4を除くすべてのメモリブロックに可変長バッファを設けてい る。 しかしながら、 限定的な状況にのみ対処できればよい場合は、 一部のメモ リブロックにのみ可変長バッファを設けるようにしてもよい。
図 8の構成は、 図 1 5の構成を簡略化したものとみなすことができるので、 図 1 5のデータ有効フラグ応答回路 7 1と可変長バッファ段数選択回路 7 2と 同様の制御回路により制御することができる。 この場合の制御回路の構成は、 図 1 6および図 1 7から容易に推定できる。 以上説明した基本構成 3 1、 応用構成 3 2、 および応用構成 3 3は、 一般的 なメモリの場合の構成であるが、 このメモリがキャッシュメモリである場合に、 キャッシュのタグについてもデータと同様のレイテンシ差を持たせることがで きる。 図 2の基本構成 3 1、 応用構成 3 2、 および応用構成 3 3をそれぞれキ ャッシュメモリに拡張した構成が、 キャッシュメモリ基本構成 3 4、 キヤッシ ュメモリ応用構成 3 5、 およびキャッシュメモリ応用構成 3 6である。
L S I内のキャッシュメモリについて本発明を適用するには、 タグの構造に ついての考慮が必要となる。 データに比べてタグの物量が少なく、 すべてのブ 口ックのタグをリクエスト元に近い場所にまとめて配置できるのであれば、 基 本構成 3 1、 応用構成 3 2、 および応用構成 3 3で対処可能である。 し力、し、 タグの物量が無視できないほど大きレ、場合には、 それも分散配置する必要があ る。 そこで、 キャッシュメモリ基本構成 3 4では、 以下のような追加構成 機 能により、 大容量のキャッシュメモリに対処する。
( e ) データをキャッシュライン毎に分散配置する。 これにより、 タグもプロ ック毎に分散配置可能となる。
( f ) 前述の (b ) の抑止機構を拡張し、 出力バスへのデータ出力が競合する 場合、 またはタグからの出力が競合する場合に、 リクエストの発行を抑止する。 キャッシュメモリでは、 タグの出力を用いてキャッシュラインのヒット Zミ ス等のデータの有効性を判定している。 上記 (f ) の抑止機構がない場合には、 各プロック毎にタグ出力を判定/処理する制御論理が必要となる。 例えば、 キ ャッシュミスにより外部へのアクセスを要するリクエストが複数発生すること があり得るので、 それらのリクエストの調停のための制御や回路が新たに必要 となる。 したがって、 (f ) の抑止機構を採用した方が制御が簡単になると考 えられる。
図 1 8は、 このようなキャッシュメモリを搭載した L S Iの構成例を示して いる。 図 18の LS Iは、 リクエスト元 41およびキャッシュメモリ 101力 らなり、 キャッシュメモリ 101は 4つのキャッシュメモリブロック C 1、 C 2、 C 3、 および C 4にプロック化されている。
各キャッシュメモリブロックは、 FF 21、 タグ RAMI 1 1、 およぴデー タ RAMI 1 2を含み、 リクエスト元 41からのリクエストに応じてタグおよ びデータを出力する。
セレクタ 103は、 4つのプロックからのタグ転送パスの 1つを選択して、 選択されたパスのタグをキャッシュ制御回路 102に出力する。 キャッシュ制 御回路 102は、 受け取ったタグのヒット /ミス判定を行い、 判定結果に応じ てキャッシュメモリ 101の動作を制御する。 また、 セレクタ 52は、 4つの ブロックからのデータ転送パスの 1つを選択して、 選択されたパスのデータを 出力バス 51に出力する。
このようにキャッシュのタグ部とデータ部を一体化した構成には、 次のよう な実装上の利点がある。
(1) 反復性: 1つのキャッシュメモリブロックをコピーして、 容易に他のキ ャッシュメモリブロックを作成することができる。
(2) ディレイ解析の局所化: 1つのキャッシュメモリブロックについてディ レイ解析を行えば、 解析結果を他のキヤッシュメモリブ口ックにも応用するこ とができる。
図 18の構成では、 データおよびタグのレイテンシは次のようになる。 ブロック C 1 : データレイテンシ =2, タグレイテンシ = 1
ブロック C 2 : データレイテンシ =4, タグレイテンシ =3
ブロック C 3 : データレイテンシ= 6, タグレイテンシ= 5
ブロック C4 : データレイテンシ =8, タグレイテンシ= 7 ここで、 図 7と同様に、 ブロック C 2に対するリクエスト R 1の発行の 2サ イタル後にブロック C 1に対するリクエスト R 2が発行され、 その直後にプロ ック C 2に対するリクエスト R 3が発行されたとする。 この場合、 図 1 9に示 すように、 リクエスト R 1および R 2がそれぞれサイクル 0 1および 0 3にお いて発行されると、 サイクル 0 3においてそれらのリクエストに対するタグ出 力が競合するので、 抑止機構はリクエスト R 2の発行を 1サイクル遅らせる。 これに伴って、 リクエスト R 3の発行も 1サイクル遅れることになる。
そこで、 このような性能低下を防ぐために、 キャッシュメモリ応用構成 3 5 が用いられる。 この構成では、 最短レイテンシのプロックからのタグ出力とデ ータ出力の両方について、 図 8と同様の 1段の可変長バッファを追加する。 こ れにより、 タグを分散配置したキャッシュメモリにおいてもリクエスト発行の 自由度が増し、 後続するリクエストの起動を 1サイクル早くすることができる。 したがって、 平均レイテンシを短縮して、 より効率の良いスケジューリングを 行うことが可能となる。
図 1 8のキヤッシュメモリプロック C 1のタグ R AM I 1 1およびデータ R AM I 1 2の出力に対して、 それぞれ図 8と同様の可変長バッファを追加す'る と、 L S Iの構成は図 2 0のようになる。
タグ R AM I 1 1の出力側の可変長バッファにおいて、 セレクタ 5 3は、 タ グ R AM I 1 1から直接データを転送するパスと F F 5 4を介して転送するパ スのいずれかを選択する。 また、 データ R AM I 1 2の出力側の可変長バッフ ァにおいて、 セレクタ 5 3は、 データ R AM I 1 2から直接データを転送する パスと F F 5 4を介して転送するパスのいずれかを選択する。
このような構成によれば、 図 1 9の 3つのリクエストに対して、 図 2 1に示 すようなスケジューリングが可能となる。 この場合、 サイクル 0 3においてリ クエスト R 2を発行しても、 タグの転送パスとして FF 54を通るパスを選択 すればタグ出力を 1サイクル遅らせることができるので、 サイクル 03におけ るリクエスト R 1に対するタグ出力と競合することはない。 したがって、 リク ェスト R 2、 R 3の発行を遅らせる必要がなくなる。
キャッシュメモリ応用構成 36では、 各キャッシュメモリブロックのレイテ ンシを最長レイテンシにまで引き伸ばすことができるような可変長バッファを、 各キャッシュメモリプロックからのタグ出力とデータ出力の両方に付加する。 これにより、 あらゆる状況に対処することが可能となり、 最も良い平均レイテ ンシが得られる。
例えば、 図 18においてブロック C 1〜C 3のタグ RAM 1 1 1およびデー タ RAMI 12の出力に対して、 このような可変長バッファをそれぞれ付加す ると、 L S Iの構成は図 22のようになる。
プロック C 1のタグ RAMI 1 1およびデータ RAMI 1 2の出力側には、 それぞれ可変長バッファ 55が設けられており、 ブロック C 2のタグ RAMI 1 1およびデータ RAMI 12の出力側には、 それぞれ可変長バッファ 56が 設けられている。 また、 ブロック C3のタグ RAMI 1 1およびデータ RAM
1 1 2の出力側には、 それぞれ可変長バッファ 57が設けられている。
可変長バッファ 55、 56、 57、 データ有効フラグ応答回路 71、 および 可変長バッファ段数選択回路 72の構成と動作については、 前述した通りであ る。 この場合、 各ブロック内の 2つの可変長バッファは、 可変長バッファ段数 選択回路 72からの同じ選択信号により制御され、 セレクタ 103とセレクタ
52も同じ選択信号により制御される。
これらの可変長バッファを設けることで、 ブロック C l、 C 2、 および C 3 のタグレイテンシはそれぞれ 1〜アサイクル、 2〜7サイクル、 および 5〜 7 サイクルの範囲で可変となり、 いずれのブロックもブロック C 4のタグレイテ ンシである 7サイクルを実現可能となっている。 キヤッシュメモリ 101の最 長タグレイテンシは 7サイクルであるから、 どのような状況であってもタグ出 力を最大 7サイクル遅らせればタグ出力が競合することはない。 データレイテ ンシの調節範囲については、 図 15の場合と同様である。
図 23は、 キャッシュメモリ応用構成 36をチップレベルマルチプロセッサ (Chip-level Multi Processor, CMP) に適用した場合の構成例を示してい る。 CMPは、 L S Iチップ内に複数のプロセッサ (CPU CORE) を持 つシステムであり、 従来は複数個のチップを使って実現していたマルチプロセ ッサ構成を 1チップで実現することができる。
図 23の構成では、 4つの C PU CORE 1 21 122、 1 23、 およ び 124がチップ上に搭載され、 これらの CPU COREが大容量のオンチ ップキャッシュ (on-chip cache ) を共有している。 このオンチップキヤッ シュは、 4つのキャッシュメモリブロック C 1、 C 2、 C 3、 および C 4から なる。 可変長バッファ 55、 56、 および 57の機能については、 図 22の場 合と同様である。 各セレクタ 24は、 直近の可変長バッファからの出力パス、 またはより遠くのプロックからの出力パスを選択する。
ここでは簡単のため、 CPU CORE 12 1からのリクエストを各ブロッ クのデータ RAMI 1 2に転送するパスと、 各データ RAMI 1 2からのデー タを CPU CORE 121に転送するパスのみが示されており、 タグ RAM とそれに付随する転送パスは省略されている。 しかしながら、 各ブロックには、 図 22の構成と同様に、 これらの回路も設けられている。 他の CPU COR Eに対しても、 CPU CORE 1 21と同様の回路が設けられる。
ただし、 物理的な配置から明らかなように、 CPU C O R E 1 21からは プロック C 1が最も近く、 ブロック C 4は最も遠い。 このため、 CPU CO RE 121にとつて、 ブロック C l、 C2、 C 3、 および C 4の最短データレ ィテンシは、 それぞれ 2サイクル、 4サイクル、 6サイクル、 および 8サイク ルとなる。
逆に、 CPU CORE 124からはブロック C 1が最も遠く、 ブロック C 4は最も近い。 このため、 CPU CORE 1 24にとつて、 ブロック C l、 C 2、 C 3、 および C 4の最短データレイテンシは、 それぞれ 8サイクル、 6 サイクル、 4サイクル、 および 2サイクルとなる。
CPU CORE 1 22からはプロック C 2が最も近く、 プロック C 1およ び C 3は次に近く、 プロック C 4は最も遠い。 このため、 CPU CORE 1 22にとつて、 ブロック C l、 C 2、 C3、 および C 4の最短データレイテン シは、 それぞれ 4サイクル、 2サイクル、 4サイクル、 および 6サイクルとな る。
また、 CPU CORE 1 23からはプロック C 3が最も近く、 ブロック C 2および C 4は次に近く、 プロック C 1は最も遠い。 このため、 CPU CO RE 123にとつて、 ブロック C l、 C 2、 C 3、 および C 4の最短データレ ィテンシは、 それぞれ 6サイクル、 4サイクル、 2サイクル、 および 4サイク ルとなる。
このような CMP構成によれば、 チップ上のメモリを共有する複数のプロセ ッサのそれぞれについて、 メモリアクセスの平均レイテンシを最適化すること が可能となる。 産業上の利用可能性
本発明によれば、 半導体集積回路に大容量のメモリを搭載した場合に、 デー タの格納位置に応じたレイテンシ差を活用して、 メモリアクセスを高速化する ことができる。

Claims

請求の範囲
1 . データリクエストを発行するリクエスト元と、
前記データリクエストに対してそれぞれ異なるレイテンシを有し、 該データ リクエストを受け取ってリクエストされたデータを出力する複数のメモリブ口 ックと、
前記複数のメモリブ口ックから前記リクエスト元に対してそれぞれデータを 転送する複数の転送パスと、
前記複数の転送パスのうち、 前記データリクエストの発行先のメモリブ口ッ クから前記リクエス ト元への転送パスを選択するセレクタと
を備えることを特徴とするデータ処理装置。
2 . 前記リクエスト元は、 前記データリクエス トと先行する他のデータリク エストの間でデータ出力の競合が発生するとき、 前記データリクエストを発行 するタイミングを遅らせることを特徴とする請求項 1記載のデータ処理装置。
3 . 前記複数の転送パスのうち最短レイテンシを有するメモリブロックから 前記リクエスト元への転送パスは、 該リクエス ト元と該複数の転送パスの間に 設けられたバスにデータを出力するタイミングを変化させる可変長バッファを 含むことを特徴とする請求項 1記載のデータ処理装置。
4 . 前記可変長バッファは、 前記データリクエストと先行する他のデータリ クエストの間で前記パスに対するデータ出力の競合が発生するとき、 前記デー タを出力するタイミングを遅らせることを特徴とする請求項 3記載のデータ処 理装置。
5 . 前記複数の転送パスのうち少なくとも一部の転送パスは、 前記リクエス ト元と該複数の転送パスの間に設けられたバスにデータを出力するタイミング を変化させる可変長バッファを含むことを特徴とする請求項 1記載のデータ処 理装置。
6 . 前記可変長バッファは、 該可変長バッファを含む転送パスに属するメモ リプロックのレイテンシを最長レイテンシと同じ値にまで引き伸ばす回路を含 むことを特徴とする請求項 5記載のデータ処理装置。
7 . 前記可変長バッファは、 前記データリクエストと先行する他のデータリ クエストの間で前記バスに対するデータ出力の競合が発生するとき、 前記デー タを出力するタイミングを遅らせることを特徴とする請求項 5記載のデータ処
8 . リクエスト元から発行されたデータリクエストに対してそれぞれ異なる レイテンシを有し、 該データリクエストを受け取ってリクエストされたデータ を出力する複数のメモリブロックと、
前記複数のメモリブロックから前記リクエスト元に対してそれぞれデータを 転送する複数の転送パスと、
前記複数の転送パスのうち、 前記データリクエストの発行先のメモリブ口ッ クから前記リクエスト元への転送パスを選択するセレクタと
を備えることを特徴とするデータ処理装置。
9 . データリクエストを発行するリクエスト元と、 前記データリクエストを受け取ってリクエストされたデータのタグを出力す るタグメモリと、 該データリクエストを受け取ってリクエストされたデータを 出力するデータメモリとを含み、 該データリクエストに対してそれぞれ異なる データレイテンシを有する複数のキャッシュメモリプロックと、
出力されたタグを用いてキヤッシュ制御を行う制御回路と、
前記複数のキャッシュメモリブ口ックから前記制御回路に対してそれぞれタ グを転送する複数のタグ転送パスと、
前記複数のキャッシュメモリブ口ック力、ら前記リクエスト元に対してそれぞ れデータを転送する複数のデータ転送パスと、
前記複数のタグ転送パスのうち、 前記データリクエストの発行先のキヤッシ ュメモリブロックから前記制御回路へのタグ転送パスを選択する第 1のセレク タと、
前記複数のデータ転送パスのうち、 前記発行先のキャッシュメモリブロック から前記リクエスト元へのデータ転送パスを選択する第 2のセレクタと を備えることを特徴とするデータ処理装置。
1 0 . 前記リクエスト元は、 前記データリクエストと先行する他のデータリ クエストの間で前記制御回路に対するタグ出力の競合が発生するとき、 前記デ ータリクエストを発行するタイミングを遅らせることを特徴とする請求項 9記 載のデータ処理装置。
1 1 . 前記複数のタグ転送パスのうち最短データレイテンシを有するキヤッ シュメモリブロックから前記制御回路へのタグ転送パスは、 該制御回路にタグ を供給するタイミングを変化させる第 1の可変長バッファを含み、 前記複数の データ転送パスのうち該最短データレイテンシを有するキヤッシュメモリブロ ックから前記リクエスト元へのデータ転送パスは、 該リクエスト元と該複数の データ転送パスの間に設けられたバスにデータを出力するタイミングを変化さ せる第 2の可変長バッファを含むことを特徴とする請求項 9記載のデータ処理
1 2 . 前記第 1の可変長バッファは、 前記データリクエストと先行する他の データリクエストの間で前記制御回路に対するタグ出力の競合が発生するとき 、 前記タグを供給するタイミングを遅らせることを特徴とする請求項 1 1記載 のデータ処理装置。
1 3 . 前記複数のタグ転送パスのうち少なくとも一部のタグ転送パスは、 前 記制御回路にタグを供給するタイミングを変化させる第 1の可変長バッファを 含み、 前記複数のデータ転送パスのうち該一部のタグ転送パスに属するキヤッ シュメモリブ口ックから前記リクエスト元へのデータ転送パスは、 該リクエス ト元と該複数のデータ転送パスの間に設けられたバスにデータを出力するタイ ミングを変化させる第 2の可変長バッファを含むことを特徴とする請求項 9記 載のデータ処理装置。
1 4 . 前記第 1の可変長バッファは、 前記複数のキャッシュメモリブロック が前記データリクエストに対してそれぞれ異なるタグレイテンシを有するとき 、 該第 1の可変長バッファを含むタグ転送パスに属するキヤッシュメモリブ口 ックのタグレイテンシを最長タグレイテンシと同じ値にまで引き伸ばす回路を 含み、 前記第 2の可変長バッファは、 該第 2の可変長バッファを含むデータ転 送パスに属するキヤッシュメモリプロックのデータレイテンシを最長データレ ィテンシと同じ値にまで引き伸ばす回路を含むことを特徴とする請求項 1 3記 載のデータ処理装置。
1 5 . 前記第 1の可変長バッファは、 前記データリクエストと先行する他の データリクエストの間で前記制御回路に対するタグ出力の競合が発生するとき 、 前記タグを供給するタイミングを遅らせることを特徴とする請求項 1 3記載 のデータ処理装置。
1 6 . リクエスト元から発行されたデータリクエストを受け取ってリクエス トされたデータのタグを出力するタグメモリと、 該データリクエストを受け取 つてリクエストされたデータを出力するデータメモリとを含み、 該データリク ェストに対してそれぞれ異なるデータレイテンシを有する複数のキャッシュメ モリブロックと、
出力されたタグを用いてキヤッシュ制御を行う制御回路と、
前記複数のキヤッシュメモリプロックから前記制御回路に対してそれぞれタ グを転送する複数のタグ転送パスと、
前記複数のキャッシュメモリブ口ックから前記リクエスト元に対してそれぞ れデータを転送する複数のデータ転送パスと、
前記複数のタグ転送パスのうち、 前記データリクエストの発行先のキヤッシ ュメモリブロックから前記制御回路へのタグ転送パスを選択する第 1のセレク タと、
前記複数のデータ転送パスのうち、 前記発行先のキャッシュメモリブロック から前記リクエスト元へのデータ転送パスを選択する第 2のセレクタと を備えることを特徴とするデータ処理装置。
7 . リクエスト元から発行されたデータリクエストに対してそれぞれ異な るレイテンシを有する複数のメモリブロックのうち、 該データリクエストの発 行先のメモリブロックに対して該データリクエストを転送し、
前記複数のメモリブ口ックから前記リクエスト元に対してそれぞれデータを 転送する複数の転送パスのうち、 前記発行先のメモリブロックから前記リクェ スト元への転送パスを選択し、
前記発行先のメモリブロックから出力されたデータを、 選択された転送パス を用いて前記リクエスト元に転送する
ことを特徴とするデータ処理方法。
1 8 . リクエスト元から発行されたデータリクエストを受け取ってリクエス トされたデ一タのタグを出力するタグメモリと、 該データリクエストを受け取 つてリクエストされたデータを出力するデータメモリとを含み、 該データリク ェストに対してそれぞれ異な ¾データレイテンシを有する複数のキャッシュメ モリブロックのうち、 該データリクエストの発行先のキヤッシュメモリブ口ッ クに対して該データリクエストを転送し、
前記複数のキャッシュメモリブロックからキャッシュ制御を行う制御回路に 対してそれぞれタグを転送する複数のタグ転送パスのうち、 前記発行先のキヤ ッシュメモリブロックから該制御回路へのタグ転送パスを選択し、
前記複数のキャッシュメモリブロックから前記リクエスト元に対してそれぞ れデータを転送する複数のデータ転送パスのうち、 前記発行先のキャッシュメ モリプロックから該リクエスト元へのデータ転送パスを選択し、
前記発行先のキヤッシュメモリプロックから出力されたタグを、 選択された タグ転送パスを用いて前記制御回路に転送し、
前記発行先のキャッシュメモリブロックから出力されたデータを、 選択され たデータ転送パスを用いて前記リクエスト元に転送する とを特徴とするデータ処理方法。
PCT/JP2002/009290 2002-09-11 2002-09-11 メモリブロック間のレイテンシ差を活用するデータ処理装置および方法 WO2004025478A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2002/009290 WO2004025478A1 (ja) 2002-09-11 2002-09-11 メモリブロック間のレイテンシ差を活用するデータ処理装置および方法
JP2004535832A JPWO2004025478A1 (ja) 2002-09-11 2002-09-11 メモリブロック間のレイテンシ差を活用するデータ処理装置および方法
US11/059,472 US20050144409A1 (en) 2002-09-11 2005-02-16 Data processing device and method utilizing latency difference between memory blocks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2002/009290 WO2004025478A1 (ja) 2002-09-11 2002-09-11 メモリブロック間のレイテンシ差を活用するデータ処理装置および方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US11/059,472 Continuation US20050144409A1 (en) 2002-09-11 2005-02-16 Data processing device and method utilizing latency difference between memory blocks

Publications (1)

Publication Number Publication Date
WO2004025478A1 true WO2004025478A1 (ja) 2004-03-25

Family

ID=31986083

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2002/009290 WO2004025478A1 (ja) 2002-09-11 2002-09-11 メモリブロック間のレイテンシ差を活用するデータ処理装置および方法

Country Status (2)

Country Link
JP (1) JPWO2004025478A1 (ja)
WO (1) WO2004025478A1 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008500668A (ja) * 2004-05-21 2008-01-10 ラムバス・インコーポレーテッド 多重メモリアクセスレイテンシ時間をサポートするコンピュータメモリシステムにおける性能を改善するためのシステムおよび方法
JP2008510257A (ja) * 2004-08-19 2008-04-03 ミクロン テクノロジー インコーポレイテッド ディジーチェーン型メモリトポロジのメモリコマンド遅延バランシング
WO2008038372A1 (fr) * 2006-09-28 2008-04-03 Fujitsu Microelectronics Limited Circuit de mémoire partagée et procédé de contrôle d'accès
JP2008544424A (ja) * 2005-06-30 2008-12-04 インテル コーポレイション Dramの並列処理を向上するシステム及び方法
JP2009093227A (ja) * 2007-10-03 2009-04-30 Canon Inc メモリアクセス制御装置及びメモリアクセス制御方法
WO2010134201A1 (ja) * 2009-05-22 2010-11-25 株式会社日立製作所 半導体装置
US9606928B2 (en) 2014-08-26 2017-03-28 Kabushiki Kaisha Toshiba Memory system

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62135949A (ja) * 1985-12-09 1987-06-18 Toshiba Corp 高速記憶装置
JPH01149445A (ja) * 1987-12-05 1989-06-12 Hitachi Ltd 半導体集積回路装置
JPH02143347A (ja) * 1988-11-24 1990-06-01 Nec Corp 情報処理装置
JPH06266615A (ja) * 1993-03-12 1994-09-22 Hitachi Ltd 順次データ転送型メモリ及び順次データ転送型メモリを用いたコンピュータシステム
JPH08503800A (ja) * 1992-11-25 1996-04-23 エイ・エス・ティー・リサーチ・インコーポレーテッド パイプライン化されたデータの順序決めシステム
JP2000020390A (ja) * 1998-06-29 2000-01-21 Matsushita Electric Ind Co Ltd 半導体記憶装置
JP2000112816A (ja) * 1998-09-30 2000-04-21 Nec Corp 半導体記憶装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62135949A (ja) * 1985-12-09 1987-06-18 Toshiba Corp 高速記憶装置
JPH01149445A (ja) * 1987-12-05 1989-06-12 Hitachi Ltd 半導体集積回路装置
JPH02143347A (ja) * 1988-11-24 1990-06-01 Nec Corp 情報処理装置
JPH08503800A (ja) * 1992-11-25 1996-04-23 エイ・エス・ティー・リサーチ・インコーポレーテッド パイプライン化されたデータの順序決めシステム
JPH06266615A (ja) * 1993-03-12 1994-09-22 Hitachi Ltd 順次データ転送型メモリ及び順次データ転送型メモリを用いたコンピュータシステム
JP2000020390A (ja) * 1998-06-29 2000-01-21 Matsushita Electric Ind Co Ltd 半導体記憶装置
JP2000112816A (ja) * 1998-09-30 2000-04-21 Nec Corp 半導体記憶装置

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4926963B2 (ja) * 2004-05-21 2012-05-09 ラムバス・インコーポレーテッド 多重メモリアクセスレイテンシ時間をサポートするコンピュータメモリシステムにおける性能を改善するためのシステムおよび方法
JP2008500668A (ja) * 2004-05-21 2008-01-10 ラムバス・インコーポレーテッド 多重メモリアクセスレイテンシ時間をサポートするコンピュータメモリシステムにおける性能を改善するためのシステムおよび方法
JP4742347B2 (ja) * 2004-08-19 2011-08-10 マイクロン テクノロジー, インク. ディジーチェーン型メモリトポロジのメモリコマンド遅延バランシング
JP2008510257A (ja) * 2004-08-19 2008-04-03 ミクロン テクノロジー インコーポレイテッド ディジーチェーン型メモリトポロジのメモリコマンド遅延バランシング
JP2008544424A (ja) * 2005-06-30 2008-12-04 インテル コーポレイション Dramの並列処理を向上するシステム及び方法
JP4805351B2 (ja) * 2005-06-30 2011-11-02 インテル コーポレイション Dramの並列処理を向上するシステム及び方法
WO2008038372A1 (fr) * 2006-09-28 2008-04-03 Fujitsu Microelectronics Limited Circuit de mémoire partagée et procédé de contrôle d'accès
JP2009093227A (ja) * 2007-10-03 2009-04-30 Canon Inc メモリアクセス制御装置及びメモリアクセス制御方法
WO2010134201A1 (ja) * 2009-05-22 2010-11-25 株式会社日立製作所 半導体装置
TWI421696B (zh) * 2009-05-22 2014-01-01 Hitachi Ltd Semiconductor device
JP5420648B2 (ja) * 2009-05-22 2014-02-19 株式会社日立製作所 半導体装置
US8904140B2 (en) 2009-05-22 2014-12-02 Hitachi, Ltd. Semiconductor device
US9606928B2 (en) 2014-08-26 2017-03-28 Kabushiki Kaisha Toshiba Memory system

Also Published As

Publication number Publication date
JPWO2004025478A1 (ja) 2006-01-12

Similar Documents

Publication Publication Date Title
US8601221B2 (en) Speculation-aware memory controller arbiter
US6594713B1 (en) Hub interface unit and application unit interfaces for expanded direct memory access processor
US7353310B2 (en) Hierarchical memory access via pipelining with deferred arbitration
US6691216B2 (en) Shared program memory for use in multicore DSP devices
US10423558B1 (en) Systems and methods for controlling data on a bus using latency
US8751746B2 (en) QoS management in the L2 cache
US7818546B2 (en) Pipeline processing communicating adjacent stages and controls to prevent the address information from being overwritten
JP4566738B2 (ja) コンピュータメモリ装置
GB2415067A (en) Managing conflicting read and write operations on separate read and write buses
US11537538B2 (en) Inter cluster snoop latency reduction
TW201342213A (zh) 於處理器電路內識別及排定關鍵指令的優先次序之技術
US7765250B2 (en) Data processor with internal memory structure for processing stream data
US8667199B2 (en) Data processing apparatus and method for performing multi-cycle arbitration
US20100088489A1 (en) data transfer network and control apparatus for a system with an array of processing elements each either self-or common controlled
WO2004025478A1 (ja) メモリブロック間のレイテンシ差を活用するデータ処理装置および方法
US20050144409A1 (en) Data processing device and method utilizing latency difference between memory blocks
US8713216B2 (en) Processor and data transfer method
US7162591B1 (en) Processor memory having a dedicated port
US7028116B2 (en) Enhancement of transaction order queue
JP2005508549A (ja) アンキャッシュ素子のための帯域幅の向上
EP1512079A2 (en) Pseudo multiport data memory has stall facility
US7356649B2 (en) Semiconductor data processor
US11016899B2 (en) Selectively honoring speculative memory prefetch requests based on bandwidth state of a memory access path component(s) in a processor-based system
JP6303632B2 (ja) 演算処理装置および演算処理装置の制御方法
US9135157B2 (en) Integrated circuit device, signal processing system and method for prefetching lines of data therefor

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP US

WWE Wipo information: entry into national phase

Ref document number: 2004535832

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 11059472

Country of ref document: US