WO2006038258A1 - データプロセッサ - Google Patents

データプロセッサ Download PDF

Info

Publication number
WO2006038258A1
WO2006038258A1 PCT/JP2004/014353 JP2004014353W WO2006038258A1 WO 2006038258 A1 WO2006038258 A1 WO 2006038258A1 JP 2004014353 W JP2004014353 W JP 2004014353W WO 2006038258 A1 WO2006038258 A1 WO 2006038258A1
Authority
WO
WIPO (PCT)
Prior art keywords
address translation
address
way
data
cache
Prior art date
Application number
PCT/JP2004/014353
Other languages
English (en)
French (fr)
Inventor
Masayuki Ito
Original Assignee
Renesas Technology Corp.
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 Renesas Technology Corp. filed Critical Renesas Technology Corp.
Priority to JP2006539089A priority Critical patent/JPWO2006038258A1/ja
Priority to US11/663,592 priority patent/US20080114940A1/en
Priority to PCT/JP2004/014353 priority patent/WO2006038258A1/ja
Publication of WO2006038258A1 publication Critical patent/WO2006038258A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present invention relates to a data processor having a cache memory and an address translation buffer.
  • a direct mapping method In a cache memory, a direct mapping method, a set associative method, a full mapping method as a mapping method for associating data in an external memory with data in the cache memory in units of a certain size block.
  • a social method if the size of the block is B bytes and the number of blocks in the cache memory is c, the number m of the block containing the byte at address a in the external memory is the integer part of aZB.
  • the direct mapping method the block of the external memory with the number m is uniquely mapped to the block with the number obtained by the expression m mod c in the cache memory.
  • any block in the external memory can be mapped to any block in the cache memory.
  • all blocks in the cache memory must be associatively searched for each access, which is difficult to achieve with a practical cache capacity. Therefore, in practice, a setassociative method in between the two is generally used.
  • the block (way) is a configuration that takes advantage of both by applying a fully associative mapping, and is called an n-way set associative method depending on the value of n.
  • the cache line force tag, valid bit, and data of each of the four ways indexed by the index bit of the virtual address are read.
  • the In a physical address tag cache which is a practical cache method, the physical address obtained by converting the virtual address by the address translation buffer (TLB) is compared with the tag of each way. A way with a matching tag and a valid bit of 1 is a cache hit.
  • the data requested by the CPU can be supplied by selecting data from the data array of the way that hits the cache.
  • a cache miss is when all the ways do not hit. In this case, it is necessary to obtain valid data by accessing the lower-level cache memory or external memory.
  • the concept of full associative, set associative, and direct mapping can be applied to the TLB configuration independently of the cache.
  • Patent Document 1 was obtained in a prior art search after completion of the present invention.
  • Patent Document 1 describes an invention for efficiently performing TLB hit judgment and cache hit judgment in a microprocessor having a TLB and a cache memory.
  • a TLB / cache that serves as both TLB and cache memory is arranged, and when the virtual address is converted to a physical address, the TLB / cache is indexed by the virtual address, and the tag is read.
  • the side bits are compared, and a cache hit signal is generated by the comparison result signal and the valid flag CV.
  • This technology is characterized in that the judgment of the cache hit and the judgment of the TLB hit are performed together in one comparison operation, and a direct map is shown as an example.
  • the data for one cache line may be equal to the page size, which is the address translation unit, and the read / write unit for the cache line by index is 1 kilobyte or 4 kilobyte compared to the normal size such as 32 bytes. It will be dozens of times more.
  • Patent Document 1 Japanese Unexamined Patent Publication No. 2003-196157
  • the present inventor examined the power consumption by the set associative cache memory. For example, in the case of a 4-way set associative cache memory, it is necessary to read a 4-way tag and perform a cache hit determination each time a memory access occurs. 4 way days At the same time, the data is read out at the same time, and the data of the hit hit by the cache hit determination signal is selected. For this reason, the present inventor has found that it is necessary to perform a read operation for all of the four ways of the tag memory and the four ways of the data memory, and the power consumption is large.
  • Patent Document 1 The focus of Patent Document 1 is to use both the physical page number of the TLB and the cache tag in order to efficiently perform the TLB hit judgment and the cache hit judgment.
  • An object of the present invention is to reduce power consumption by the set associative cache memory in a data processor having a set associative cache memory and an address translation buffer.
  • each way in the set associative cache memory with ways equal to the number of entries in the TLB corresponds to the page size that is a unit of address translation by the TLB.
  • Corresponding storage capacity is provided in the data part and no tag memory or tag is provided as the address part.
  • Each entry in the TLB and each way in the cache memory have a one-to-one correspondence, and only the data in the area mapped to the physical address specified by the TLB address translation pair can be cached in the corresponding way.
  • Only one way of cache data array operation is selected by the TLB hit signal obtained by the logical product of the TLB virtual page address comparison result and the TLB valid bit.
  • the cache valid bit of the way selected for operation is used as the cache hit signal.
  • the present invention will be further described below by dividing it into a plurality of items.
  • the data processor has an address translation buffer and a set-associative cache memory, and the address translation buffer has n entry fields for storing address translation pairs,
  • the cache memory has n ways one-to-one corresponding to the entry field, and each way includes a data field having a page size storage capacity as an address conversion unit.
  • the address translation buffer outputs an associative comparison result for each entry field to a corresponding way, and the way starts a memory operation in response to an associative hit of the input associative comparison result. According to the above means, only one way corresponding to the associative hit of TLB is activated, so that the tag array and the data array of all the ways are read in parallel in the set associative cache memory and operated. This can be avoided and can contribute to low power consumption.
  • the address translation pair has information that makes a pair of a virtual page address and a physical page address corresponding to the virtual page address, and the physical page address of the data held in the data field is Equal to the physical page address held by the address translation pair of the corresponding entry field.
  • the cache memory does not need to have an address tag field paired with the data field.
  • the address conversion buffer compares the input conversion target address with the virtual page address of the entry field, and on the condition that the entry field whose comparison result matches is valid, the way corresponding to the entry field. A way hit is notified, and this way hit notification indicates an associative hit of the associative comparison result.
  • a control unit (2, 24) is provided for replacing an address conversion buffer entry when all the associative comparison results by the address conversion buffer are associative misses.
  • the entry replaces the address translation buffer entry, it invalidates the data field of the cache memory way corresponding to the replaced entry.
  • the control unit further has the data of the data field to be copied back when invalidating the data field of the way of the cache memory corresponding to the entry to be replaced, and if so, in the lower memory. Write back.
  • a data processor includes an address translation buffer and a set-associative cache memory, and the address translation buffer includes n entry fields for storing address translation pairs.
  • the cache memory has n ways one-to-one corresponding to the entry field, and each way is assigned to store data of a physical page address held in the corresponding entry field. The way starts the memory operation on condition that the associative comparison result for the corresponding entry field becomes an associative hit. Therefore, it is possible to avoid reading the tag array and data array of all the ways in parallel in the set associative cache memory, thereby contributing to low power consumption.
  • a control unit that replaces an entry in the address translation buffer when the associative comparison result for all entry fields is an associative miss.
  • the control unit When replacing an entry, invalidate the cache data of the way of the cache memory corresponding to the entry to be replaced. Further, when invalidating the data in the cache memory way corresponding to the entry to be replaced, the control unit has the data to be copy-knocked, and if so, writes it back to the lower memory.
  • a data processor includes an address translation buffer and a set associative cache memory, and the address translation buffer has n entries for storing an address translation pair. And a prediction circuit that predicts an entry field that becomes a translation hit of address translation, and the cache memory has n ways one-to-one corresponding to the entry field, and each way corresponds to Allocated to store the data located at the physical page address held by the entry field. In the way, the corresponding entry field is the prediction area of the address translation hit.
  • the memory operation is started on the condition that the cache memory is present, and the cache memory generates a cache hit on the condition that the prediction of the address translation hit matches the actual address translation result.
  • the control mode that activates a corresponding way in response to an associative hit in the TLB is the timing for initiating the operation of one way after the TLB associative search result is output, in parallel with the TLB associative search.
  • the time required for the index operation of the cache memory becomes longer than the control mode in which the cache memory is indexed.
  • a data processor includes an address translation buffer and a set associative cache memory having a plurality of ways, and the address translation nof is a virtual page address.
  • the address translation pair that holds the information and the physical page address information, and the tag of the cache memory is shared with the physical page address information held by the address translation pair of the address translation buffer and is used as a hit signal of the address translation buffer. The corresponding cache way operation is selected accordingly.
  • a data processor includes an address translation buffer and a set associative cache memory having a plurality of ways, the address translation buffer including virtual page address information and The address translation pair having physical page address information is stored, and the physical address space data specified by the physical page address information held by the translation pair of the address translation buffer is stored in the corresponding way of the cache memory. The operation of the corresponding way is selected according to the way hit signal of the address translation buffer.
  • a data processor using a prediction circuit includes an address conversion nofer and a set associative cache memory having a plurality of ways, and the address conversion buffer includes: An address translation pair that holds virtual page address information and physical page address information; and a prediction circuit that predicts a translation hit of the address translation buffer, and the address translation pair of the address translation buffer holds the cache memory tag. It is shared with the physical page address information, and the operation of the corresponding cache way is selected according to the prediction by the prediction circuit, and a cache hit is generated on condition that the prediction matches the actual address translation result.
  • a data processor using a prediction circuit includes an address conversion nofer and a set associative cache memory having a plurality of ways, and the address conversion buffer includes: An address translation pair that holds virtual page address information and physical page address information; and a prediction circuit that predicts a translation hit of the address translation buffer, and is based on physical page address information held by the translation pair of the address translation buffer.
  • the data of the physical address space specified by the cache memory is stored in the corresponding way of the cache memory, and the operation of the corresponding cache way is selected according to the prediction by the prediction circuit, and the prediction matches the actual address conversion result. Generates a cache hit on condition that
  • the data processor having the set associative cache memory and the address conversion buffer Power consumption by the set associative cache memory can be reduced.
  • FIG. 1 is a block diagram showing a detailed example of ITLB and ICACHE.
  • FIG. 2 is a block diagram of a data processor according to an example of the present invention.
  • FIG. 3 is an address map illustrating the relationship between main memory data and cache memory data in a configuration in which the address translation buffer and cache memory are linked and operated as typified by FIG. .
  • FIG. 4 is a flowchart showing the operation flow of ITLB and ICACHE.
  • FIG. 5 is a flowchart showing a TLB rewrite control flow.
  • FIG. 6 is a flowchart showing a cache rewrite control flow.
  • FIG. 7 is a block diagram showing a detailed example of ICACH and ITLB using the prediction result of address translation hits.
  • FIG. 8 is a block diagram showing, as a comparative example, a cache memory that indexes all ways in parallel.
  • FIG. 9 is an address map illustrating the relationship between the data in the cache memory in FIG. 8 and the data in the main memory.
  • VPN virtual page address (entry field)
  • PPN physical page address (entry field)
  • FIG. 2 shows a data processor according to an example of the present invention.
  • the data processor (MPU) 1 shown in the figure is not particularly limited, but is formed on a single semiconductor substrate (semiconductor chip) such as single crystal silicon by a known semiconductor integrated circuit manufacturing technique.
  • the data processor 1 includes, for example, a central processing unit (CPU) 2 as a data processing unit.
  • the central processing unit 2 is connected to an internal bus (IBUS) 4 via an address translation buffer and a cache unit (TLB'CACH) 3. Connected to.
  • the internal bus 4 employs a split “transaction” bus protocol.
  • the internal bus 4 is connected to a bus controller (BSC) 5 that performs external bus control or external memory interface control.
  • BSC bus controller
  • a bus controller 5 is connected to a main memory (MMRY) 6 composed of synchronous DRAM or the like.
  • the external circuit connected to the bus controller is not limited to the memory, but may be configured to be connected to other LSI (eg LCDC, peripheral circuit) power.
  • a peripheral bus (PBUS) 8 is connected to the internal node 4 via a bus bridge circuit (BBRG) 7.
  • Peripheral circuits such as an interrupt controller (INT C) 10 and a clock pulse generator (CPG) 11 are connected to the peripheral bus 8.
  • a direct 'memory' access' controller (DMAC) 12 is connected to the peripheral bus 8 and the internal bus 4 to control data transfer between modules.
  • the CPU 2 includes, but is not limited to, a general-purpose register and an arithmetic logic unit. And an instruction control unit that includes a program counter, an instruction decoder, etc., and controls instruction fetching and decoding, instruction execution procedures, and arithmetic control.
  • the address translation buffer and cache unit 3 includes an instruction address translation buffer (IT LB) 20, an instruction cache memory (ICACHE) 21, a data address translation buffer (DTLB) 22, a data cache memory (DCACHE) 23, and a control It has a circuit 24.
  • the ITLB 20 has information on a pair of a virtual instruction address and a physical instruction address corresponding to the virtual instruction address as a conversion pair.
  • the DTLB 21 has information of a pair of a virtual data address and a physical data address corresponding to the virtual data address as a conversion pair. These conversion pairs are a copy of part of the page management information on the main memory 6.
  • ICACHE21 has a copy of some instructions of the program held in the program area on the main memory.
  • DCACHE23 has a copy of part of the data held in the work area on the main memory.
  • the CPU 2 When the instruction fetch is performed, the CPU 2 asserts an instruction fetch signal 25 to the ITLB 20 and ICACHE 21 and outputs a virtual instruction address 26. ITLB20 outputs a virtual address translation hit signal 27 to ICACHE21 when there is a translation hit for the virtual address. ICA CHE21 outputs instruction 28 corresponding to the virtual instruction address to CPU2.
  • CPU 2 When CPU 2 performs data fetch, it asserts data fetch signal 30 to DTLB 22 and DCACHE 23 and outputs virtual data address 31.
  • the DTLB 22 outputs a virtual address translation hit signal 32 to the DCACHE 23 when there is a translation hit for the virtual address.
  • DCACHE23 In the case of read access, DCACHE23 outputs data 33 corresponding to the virtual data address to CPU2, and in the case of write access, DCACHE23 writes data 33 from CPU2 to the cache line corresponding to the virtual data address.
  • the control circuit 24 performs control such as notifying the CPU 2 of a TLB exception handling request in response to the occurrence of a conversion miss in the ITLB 20 and DTLB 22. Further, the control circuit 24 performs replacement control of a cache entry in response to occurrence of a cache miss in the ICACHE 21 and DCACHE 23.
  • the address translation and cache unit 3 performs physical instruction address 40 output, instruction 41 input, data address 42 output, data 43 input / output, etc., with the internal bus 4.
  • Figure 1 shows a detailed example of ITLB and ICACHE.
  • ITLB20 has an 8-entry associative configuration
  • ICACH21 has an 8-way set associative configuration, for example.
  • Two entries ETY0 and ETY7 are representatively shown in ITLB20.
  • an entry can be called a way.
  • it is called an entry to distinguish it from a cache memory way.
  • Each entry has an entry field for holding a virtual page address (VPN), a valid bit (V) of the entry, and a physical page address (PPN).
  • VPN and PPN constitute a conversion pair.
  • the page size which is an address translation unit by ITLB 20
  • the virtual address space is a 32-bit address space.
  • the bit width of VPN and PPN is 20 bits from the 13th bit to the 32nd bit ([31:12]).
  • CMP is a comparison means
  • ND is a functional AND gate.
  • a memory cell having a comparison function in units of bits can be employed in a memory having a fully associative configuration.
  • the comparison function and the logical product function may be assigned to the memory cells in units of bits.
  • the virtual page address [31:12] is compared with VPN ([31:12]) by comparison means CMP, and this matches and valid bit TV is set to 1.
  • the entry conversion hit signal 50 [0] in the entry ETYO becomes a logical value 1 that means a hit.
  • Two or more entry conversion hit signals 50 [7: 0] from each entry become logical 1 at the same time.
  • a TLB multi-hit state does not normally occur. When a TLB multi-hit condition is generated, it is detected and the multi-hit exception handling request is notified to the CPU 2 to deal with it.
  • a logical sum circuit (OR) 51 takes a logical sum of eight signals 50 [7: 0] to generate a conversion hit signal 53.
  • the control circuit 24 receives the conversion hit signal 50 and generates a TLB miss exception request to the CPU 2 when a TLB miss is notified.
  • One PPN of the entry is selected by the selector 52 by the entry conversion hit signal 50 [7: 0] and output as a physical page address. This physical page address is output to the internal bus 4 as a physical page address constituting the physical address 40 indicated by 40 in FIG.
  • the entry translation hit signal 50 [7: 0] is ANDed with the instruction fetch signal 25 in the AND gate 54, and the virtual address translation hit signal 27 [7: 0] Is supplied to the instruction cache memory 21.
  • the instruction cache memory 21 has eight ways WAYO-WAY7.
  • Way WAYO When designating all or any one of WAY7, it is simply written as WAY WAY.
  • Each way WAY0-WAY7 has a data field DAT and a valid bit field V.
  • the cache capacity of the data field of each way WAY matches the page size and is 4 kilobytes.
  • the cache line size of the data field DAT is shown as an example of 32 bytes, and the lower side [11: 5] of the virtual address is given as the index address 60 to the instruction cache memory 21.
  • the lower address [4: 0] of the virtual address is the in-line offset address 61, and is used to select the data position within 32 bytes in one line.
  • the selector 63 is used for the selection.
  • each way WAY0-WAY7 is selected for memory operation when the corresponding virtual address translation hit signal 27 [7: 0] is a translation hit.
  • the way WAY for which the memory operation has been selected can be addressed by an index address, etc., to select a memory cell, to read the selected memory cell power storage information, or to store the information in the selected memory cell Is made possible. Therefore, even when there is an instruction access request, the way WAY will not start unless the corresponding virtual address translation hit signal 27 [7: 0] hits!
  • the virtual address translation hit signal 27 [7: 0] is a translation hit signal for each virtual page
  • the virtual address translation hit signal 27 [7: 0] is incremented by 1 to the logical force value 1 (translation hit value).
  • the logical force value 1 translation hit value
  • only one way can be operated.
  • only one way WAY corresponding to the virtual page related to the address translation hit by TLB is operated. All ways are not operated in parallel. Thereby, useless power consumption can be suppressed.
  • the cache line corresponding to the index address 60 is selected from the data field DAT and the valid bit field V, and the data and the valid bit are read out.
  • the read data is selected by the selector 63 by the offset address 61.
  • the data output from the selector 63 and the valid bit from which the way force is also read are selected and output by the selector 64 that performs the selection operation by the virtual address translation hit signal 27 [7: 0].
  • the effective bit selected by the selector 64 is supplied to the control circuit 24.
  • Control circuit 2 4 considers the valid bit as the cache hit signal 65, and if it is a cache hit (if the valid bit is a logical value indicating validity), the data selected by the selector 64 is supplied to the CPU 2 as the cache data 28.
  • the main memory 6 is accessed via the bus controller 5 to control fetching the corresponding instruction into the cache line and supply the fetched instruction to the CPU 2.
  • the force data system DTLB and DCACHETLB described for the command system ITLB and ICACHE can be similarly configured.
  • data there is no need to perform operations that are different from conventional cache memory, except for selecting the way that also causes write access.
  • cache memory operations are required in connection with TLB misses.
  • FIG. 3 illustrates the relationship between the data in the main memory and the data in the cache memory in a configuration in which the address translation buffer and the cache memory are linked and operated as typified by FIG.
  • the PPN is 2 bits and the page size is 3 bits.
  • the cache memory way has 8 cache lines!
  • the index address Aidx is 3 bits.
  • the TLB PPN corresponding to way WAYO is page number 00
  • the TLB PPN corresponding to way WAY1 is page number 10.
  • the cache memory way WAYO can store the range RNGO of the main memory from 00000 to 00111
  • the way WAY1 can store the range RAG1 of the main memory from 10000 to 10111.
  • the activation of the memory operation can be determined for each way of the cache memory by the virtual address translation hit signal for each entry in the TLB.
  • data is registered in the cache memory in line size units, and each bit has a valid bit. When valid data is registered in the cache, the valid bit is set to logical value 1 and the data is stored. Indicates that it is valid
  • FIG. 4 illustrates the operation flow of ITLB and ICACHE. Life issued from CPU2
  • the upper [31:12] of the instruction virtual address is compared with the VPN of each entry in the instruction TLB, and the logical product of the comparison result and the valid bit of each entry is taken to obtain the virtual address translation hit signal 27 [7 : 0] is generated (S 1). It is determined how many logical values 1 are present in the virtual address translation hit signal 27 [7: 0] (S2). If two or more, the TLB multi-hit status is notified to CPU2 (S3). If there is only one logical value 1, the memory operation of the way related to the hit is selected, and the indexed data and valid bit are read from the way (S4). The logical value of the read valid bit is determined (S5).
  • the read data is supplied to the SCPU (S6). If not valid, a cache line fill operation for a cache miss is performed by cache rewrite control (S7). If all the logical values are 0 in step S2, it is a TLB miss, and a TLB miss exception handling request for adding or replacing a TLB entry is issued to CPU 2, and TLB rewrite control is performed (S8 ). At this time, the control unit 24 rewrites all the valid bits of the cache memory way corresponding to the rewritten TLB entry to an invalid level (S9). Then, compare the virtual page address VPN of each TLB entry (S1).
  • control circuit 24 invalidates the data field of the way of the cache memory corresponding to the entry to be replaced. (S9) If there is data in the data field to be copied back, write back to the main memory.
  • FIG. 5 illustrates a TLB rewrite control flow.
  • the rewrite control flow differs depending on whether a lower-level TLB exists in the data processor (Sl l). If a lower layer TLB exists, the lower layer TLB is searched (S12). It is determined whether the searched lower layer TLB is a translation hit (TLB hit) for the virtual page address related to the TLB miss (S13). In the case of a TLB hit, the VPN and PPN of the conversion pair of the lower layer TLB are registered as TLB entries related to the miss (S14).
  • TLB hit translation hit
  • step S13 if the TLB in the lower layer is a miss (if there is a TLB in the lower layer but there is also a TLB miss), the TLB miss is notified to the CPU and the main is controlled by software.
  • the page management information managed in the memory is registered in both the upper and lower TLBs (VPN, PPN) related to the mistake and validated (S15). If there is no TLB in the lower layer, a TLB miss exception is notified to the CPU and the software
  • the page management information managed in the memo-in memory 6 is registered in the TLB (VPN, PPN) related to the mistake and made effective.
  • FIG. 6 illustrates a cache rewrite control flow. If the TLB hits but the valid bit of the corresponding cache way is logical 0 (invalid level), it becomes a cache miss. At this time, the cache rewrite control is performed as described in step S7 in FIG. A cache rewrite is an update of only one line that misses the cache.
  • control differs depending on whether or not a lower-level cache memory exists in the data processor (S21). If there is a lower-level cache memory, the lower-level cache memory is searched (S22). If the cache memory in the lower hierarchy is a cache hit, the cache data relating to the hit is registered in the cache memory in the upper hierarchy, and the valid bit is set to the logical value 1 (S24). If there is a lower-level cache, but a cache miss occurs there, the cache controller is notified of the cache miss and the main memory 6 is accessed. As a result, the data acquired from the main memory 6 is registered in both the upper and lower cache memories, and the valid bit is set to the logical value 1 (S25).
  • FIG. 8 shows, as a comparative example, a cache memory in which all ways are indexed in parallel.
  • ICACHE has an address tag field TAG.
  • I CACHE selects all way WAYO-WAY7 operations and opens the index operation. Be started.
  • the tag of the indexed cache line is compared with the physical page address supplied from the ITLB card, and the cache data of the matching way is the data related to the cache hit.
  • FIG. 9 illustrates the relationship between the cache memory data of FIG. 8 and the main memory data.
  • the PPN is 2 bits and the page size is 3 bits for simplicity.
  • the cache memory way has 8 cache lines!
  • the index address Aidx is 3 bits.
  • the data processor 1 responds to the address translation hit signal generated for each TLB entry, as represented by the virtual address translation hit signal 27 [7: 0].
  • the memory operation of the cache way to be started is started, and not all cache ways start the index operation in parallel. Since ICACH and DCACH do not require a tag memory in the cache, no power is required to access the tag memory itself. Therefore, low power consumption can be realized with respect to the cache memory having a set-associative configuration of the prior art. In estimating this effect, it is assumed that the ratio of the power consumption of the tag field and the data field is 1: 2 in one cache way, considering the free field of the cache memory and the bit width of the data field.
  • the selection of the way that is tightly coupled with the TLB represented by ICACH and the set cache of the conventional technology The ratio of the power consumption of the operation type cache memory is about 12: 2, and the power consumption of the cache memory is reduced. It can be estimated that it can be reduced by about 83%.
  • Figure 7 shows a detailed example of ICACH and ITLB using the predicted address translation hits.
  • ITLB 20 has an 8-entry associative configuration
  • ICACH 21 has an 8-way set associative configuration, for example, as in FIG.
  • a prediction circuit 70 and a prediction match confirmation circuit 71 are added to the configuration of FIG. 1, and the way WAY operation is selected according to the virtual address translation hit prediction signal 72 [7: 0] to predict the address translation hit.
  • the difference is that cache hit 65 is generated on the condition that matches the actual address translation result.
  • the prediction circuit 70 holds the previous address conversion result and outputs it as a prediction signal 73 [7: 0].
  • the prediction signal 73 [7: 0] is ANDed with the instruction etch signal 25 by the AND gate 54, and the logical product signal is the virtual address translation hit prediction signal 72 [ 7: 0].
  • the way of ICACH21 WAYO—WAY7 is started by the logical value 1 of the corresponding virtual address translation hit prediction signal 72 [7: 0].
  • the virtual address translation hit prediction signal 72 [7: 0] has the function of the virtual address translation hit signal 27 [7: 0] in FIG.
  • the prediction match confirmation circuit 71 receives an entry translation hit signal 50 [7: 0] which is an address translation result in each actual entry ETYO-ETY7.
  • the prediction match confirmation circuit 71 determines whether or not the value of the prediction signal 73 [7: 0] held by the prediction circuit 70 matches the newly received entry conversion hit signal 50 [7: 0].
  • the determination result signal 75 is output, and the value of the entry conversion hit signal 50 [7: 0] is held as a new prediction result in the prediction circuit 70 so that it can be used for the next cache operation.
  • the determination result signal 75 indicating whether the prediction is correct is logically ANDed with the valid bit selected by the selector 77 and the AND gate 76.
  • the logical product signal is regarded as a cache hit signal 65.
  • the cache memory 21 can be started without waiting for the conversion hit signal 50 [7: 0] to be confirmed by the ITLB 20, so that high-speed operation is possible. Even in this case, the VPN comparison on the ITLB 20 side is performed, and when the actual address translation hit signal 50 [7: 0] is determined, it is confirmed whether or not the prediction is correct.
  • the prediction match confirmation result is supplied to the prediction circuit 70 to be reflected in the next prediction.
  • the prediction is correct, the data output from ICACH21 and the cache hit signal are correct and are used in the same way as in Figure 1. If the prediction is incorrect, the correct prediction signal 73 [7: 0] has already been obtained, and therefore the prediction is not erroneous even if the output of the prediction circuit 70 is used. If the correct prediction hit signal is held in the prediction circuit 70, it is possible to resume from reading the way WAY of the corresponding cache memory 21. Of course, it is possible to start over from the VPN comparison of each entry ETY of ITLB20. In this application example, the fact that the cache memory to be activated has only one way is added to the feature that enables effective data in the cache memory to be obtained at high speed. Similarly, the effect of low power consumption can be obtained. [0049] Although the invention made by the present inventor has been specifically described based on the embodiments, it is needless to say that the present invention is not limited thereto and can be variously modified without departing from the gist thereof. .
  • the data processor may include a data processing unit such as a floating point arithmetic unit or a product-sum arithmetic unit. In addition, have other circuit modules.
  • the data processor is not limited to a single chip, but may be a multi-chip or a multi-CPU configuration having a plurality of central processing units! /.
  • the present invention can be widely applied to microcomputers, microprocessors, and the like having an address translation buffer and a cache memory.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

 TLBのエントリ数分のウェイを持つセットアソシアティブキャッシュメモリ(21)における各ウェイはTLBによるアドレス変換単位であるページサイズに対応する記憶容量をデータ部(DAT)に有し、アドレス部としてタグメモリ若しくはタグを持たない。TLBの各エントリ(ETY0~ETY7)とキャッシュメモリの各ウェイ(WAY0~WAY7)を1対1対応させ、TLBのアドレス変換対で規定される物理アドレスにマッピングされる領域のデータのみを対応するウェイにキャッシング可能とする。TLBの仮想ページアドレスの比較結果とTLBの有効ビットとの論理積によって得られるTLBヒット信号によってキャッシュデータアレイの動作を1ウェイのみ選択する。動作選択されたウェイのキャッシュ有効ビットをキャッシュヒット信号として利用する。

Description

明 細 書
テータプロセッサ
技術分野
[0001] 本発明はキャッシュメモリとアドレス変換バッファとを有するデータプロセッサに関す る。
背景技術
[0002] キャッシュメモリにおいて、一定の大きさのブロックを単位として、外部メモリのデー タをキャッシュメモリ内のデータに対応づけるマッピング方式として、ダイレクトマツピン グ方式、セットァソシァティブ方式、フルァソシァティブ方式がある。ここで、ブロックの 大きさを Bバイト、キャッシュメモリ内のブロック数を cとすると、外部メモリのアドレス aの バイトが含まれるブロックの番号 mを aZBの整数部とする。ダイレクトマッピング方式 では、番号 mの外部メモリのブロックはキャッシュメモリ内において式 m mod cで得 られる番号のブロックに一意的にマッピングされる。ダイレクトマッピングでは、キヤッ シュメモリ内の同一ブロックに割り当てられる複数のブロックが同時に使用されると衝 突が発生してキャッシュヒット率が低下する。要するに、別アドレスでも同一ブロック( キャッシュライン)力 Sインデックスされる場合が多い、ということである。これに対してフ ルァソシァティブ方式では、外部メモリのどのブロックもキャッシュメモリのどのブロック に対してもマッピング可能とする方式である。し力しながら、フルァソシァティブ方式で は、キャッシュメモリの全ブロックを各アクセス毎に連想検索しなければならず、実用 的なキャッシュ容量では、実現困難である。このため、実用的には、両者の中間のセ ットァソシァティブ方式が一般的に用いられる。セットァソシァティブ方式は、 n (n= 2 、 4又は 8程)個のキャッシュメモリ内ブロックをまとめた単位をセットと定義し、このセッ トに対してはダイレクトマッピングを適用し、セット内のブロック(ウェイ)に対しては、フ ルァソシァティブマッピングを適用することによって、両者の長所を生かす構成であり 、 nの値により nウェイセットァソシァティブ方式と称される。
[0003] 4ウェイセットァソシァティブ方式では、まず仮想アドレスのインデックスビットでイン デッタスされる 4つの各ウェイのキャッシュライン力 タグと有効ビットとデータを読み出 す。実用的なキャッシュ方式である物理アドレスタグ方式のキャッシュでは、仮想アド レスをアドレス変換バッファ (TLB)により変換した物理アドレスと各ウェイのタグとを比 較する。タグが一致してかつ有効ビットが 1であるウェイがキャッシュヒットとなる。キヤッ シュヒットしたウェイのデータアレイからのデータを選択することで CPUの要求したデ ータを供給することができる。全てのウェイがヒットしない場合がキャッシュミスであり、 この場合は下位階層のキャッシュメモリ又は外部メモリへアクセスして有効なデータを 取得する必要がある。尚、フルァソシァティブ、セットァソシァティブ、ダイレクトマツピ ングの考え方はキャッシュとは独立に TLBの構成にも採用できる。
[0004] 本発明完成後の先行技術調査にて特許文献 1が得られた。特許文献 1には TLBと キャッシュメモリを備えたマイクロプロセッサにおいて TLBヒット判断とキャッシュヒット 判断とを効率的に行う発明に関する記載がある。すなわち、 TLBとキャッシュメモリと を兼ねる TLB/キャッシュを配置し、仮想アドレス力も物理アドレスへの変換の際に、 仮想アドレスにより TLB/キャッシュをインデックスしてタグを読み出し、読出したタグ と仮想アドレスの上位側ビットを比較し、その比較結果信号と有効フラグ CVによりキ ャッシュヒット信号を生成する。この技術は、 1回の比較動作でキャッシュヒットの判断 と TLBヒットの判断をまとめて行うことを特徴としており、ダイレクトマップを一例として 示している。セットァソシァティブ形態とする場合には、当然複数のウェイは並列動作 され、ウェイ毎にキャッシュヒットの判断と TLBヒットの判断がまとめて行われる。特に、 1キャッシュラインのデータはアドレス変換単位であるページサイズに等しくされる場 合もあり、インデックスによるキャッシュラインの読出し及び書き込み単位は 32バイトな どの通常サイズに比べて 1キロバイトや 4キロバイトのように数十倍以上にも及ぶことに なる。
[0005] 特許文献 1:特開 2003— 196157号公報
発明の開示
発明が解決しょうとする課題
[0006] 本発明者はセットァソシァティブキャッシュメモリによる電力消費を検討した。例えば 4ウェイセットァソシァティブキャッシュメモリの場合、メモリアクセスが発生する毎に、 4 ウェイ分のタグを読み出してキャッシュヒット判定を行う必要がある。 4ウェイ分のデー タの同時にあら力じめ読み出しておき、前記キャッシュヒット判定信号でヒットしたゥェ ィのデータを選択する。このため、タグメモリ 4ウェイ分とデータメモリ 4ウェイ分の全て に対して読み出し動作を行う必要があり消費電力が大きいということが本発明者によ つて見出された。
[0007] データプロセッサの低消費電力化に対する要求は、プロセスの微細化による動作 周波数の向上や論理規模の増加により益々高まってきており、電池駆動のシステム や安価なノ ッケージを必要とするデータプロセッサでは特に大きな課題である。
[0008] こうした背景力も本発明者は、動作時の消費電力が大きいキャッシュメモリの無駄な 読み出しを省くことについて検討した。キャッシュヒット率の観点から 2— 8ウェイを持 つセットァソシァティブキャッシュメモリが主流である。セットァソシァティブキャッシュメ モリでは全てのウェイのタグアレイとデータアレイを読み出す必要がある力 実際に使 われるのは一つのウェイ力も読み出したデータのみである。また、外部メモリの連続し た領域がキャッシングされることが自然であるためタグには同一の物理ページァドレ ス(物理ページアドレス番号)が数多く登録される傾向があり、その物理アドレスは TL Bの物理ページ番号と同一である。そこで本発明者は、 TLBの物理ページ番号とキ ャッシュのタグを兼ねるようにして、セットァソシァティブキャッシュメモリにおけるデー タアレイを TLBのヒット信号に従って 1ウェイのみ起動するという着眼点を得た。特許 文献 1による着眼点は TLBヒット判断とキャッシュヒット判断とを効率的に行うために、 TLBの物理ページ番号とキャッシュのタグを兼ねるというものである。
[0009] 本発明の目的は、セットァソシァティブキャッシュメモリとアドレス変換バッファを有す るデータプロセッサにお 、て前記セットァソシァティブキャッシュメモリによる電力消費 を低減することにある。
[0010] 本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面 力 明らかになるであろう。
課題を解決するための手段
[0011] 本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記 の通りである。すなわち、 TLBのエントリ数分のウェイを持つセットァソシァティブキヤ ッシュメモリにおける各ウェイは TLBによるアドレス変換単位であるページサイズに対 応する記憶容量をデータ部に有し、アドレス部としてタグメモリ若しくはタグを持たな い。 TLBの各エントリとキャッシュメモリの各ウェイを 1対 1対応させ、 TLBのアドレス変 換対で規定される物理アドレスにマッピングされる領域のデータのみを対応するゥェ ィにキャッシング可能とする。 TLBの仮想ページアドレスの比較結果と TLBの有効ビ ットとの論理積によって得られる TLBヒット信号によってキャッシュデータアレイの動作 を 1ウェイのみ選択する。動作選択されたウェイのキャッシュ有効ビットをキャッシュヒッ ト信号として利用する。以下に本発明を複数項目に分けて更に説明する。
[0012] 〔1〕データプロセッサは、アドレス変換バッファとセットァソシァティブ形態のキヤッシ ュメモリとを有し、前記アドレス変換バッファはアドレス変換対を格納するための n個の エントリフィールドを有し、前記キャッシュメモリは前記エントリフィールドに一対一対応 される n個のウェイを有し、前記各々のウェイはアドレス変換単位であるページサイズ の記憶容量を有するデータフィールドを備える。前記アドレス変換バッファはエントリ フィールド毎の連想比較結果を対応するウェイに出力し、前記ウェイは入力した連想 比較結果の連想ヒットに応答してメモリ動作を開始する。上記した手段によれば、 TL Bの連想ヒットに応答して対応する一つのウェイのみ起動するから、セットァソシァティ ブキャッシュメモリにおいて全てのウェイのタグアレイとデータアレイを並列に読み出 し動作させることを回避することができ、低消費電力に資することができる。
[0013] 本発明の具体的な形態として、前記アドレス変換対は仮想ページアドレスとこれに 対応する物理ページアドレスとを対とする情報を有し、前記データフィールドが保有 するデータの物理ページアドレスは、対応するエントリフィールドのアドレス変換対が 保有する物理ページアドレスに等し 、。前記キャッシュメモリは前記データフィールド と対のアドレスタグフィールドを持つことを必要としない。
[0014] 前記アドレス変換バッファは、入力した変換対象アドレスを前記エントリフィールドの 仮想ページアドレスと比較し、比較結果が一致したエントリフィールドが有効であるこ とを条件に、当該エントリフィールドに対応するウェイにウェイヒットを通知し、このゥェ ィヒットの通知が連想比較結果の連想ヒットを示す。
[0015] 前記アドレス変換バッファによる前記連想比較結果が全て連想ミスであるときァドレ ス変換バッファのエントリをリプレースする制御ユニット(2, 24)を有し、前記制御ュ- ットはアドレス変換バッファのエントリをリプレースするとき、リプレースされるエントリに 対応するキャッシュメモリのウェイのデータフィールドを無効化する。前記制御ユニット は更に、リプレースされるエントリに対応するキャッシュメモリのウェイのデータフィール ドを無効化するとき、コピーバックされるべきデータフィールドのデータを有して 、る場 合には下位側メモリに書き戻しする。
[0016] 〔2〕本発明の別の観点によるデータプロセッサは、アドレス変換バッファとセットァソ シァティブ形態のキャッシュメモリとを有し、前記アドレス変換バッファはアドレス変換 対を格納するための n個のエントリフィールドを有し、前記キャッシュメモリは前記ェン トリフィールドに一対一対応される n個のウェイを有し、前記各々のウェイは対応する エントリフィールドが保有する物理ページアドレスのデータの格納に割り当てられる。 前記ウェイは対応するエントリフィールドに関する連想比較結果が連想ヒットになるの を条件にメモリ動作を開始する。したがって、セットァソシァティブキャッシュメモリにお いて全てのウェイのタグアレイとデータアレイを並列に読み出し動作させることを回避 することができ、低消費電力に資することができる。
[0017] 本発明の具体的な形態として、全てのエントリフィールドに関する前記連想比較結 果が連想ミスであるときアドレス変換バッファのエントリをリプレースする制御ユニットを 有し、前記制御ユニットはアドレス変換バッファのエントリをリプレースするとき、リプレ ースされるエントリに対応するキャッシュメモリのウェイのキャッシュデータを無効化す る。前記制御ユニットは更に、リプレースされるエントリに対応するキャッシュメモリのゥ エイのデータを無効化するとき、コピーノックされるべきデータを有して 、る場合には 下位側メモリに書き戻しする。
[0018] 〔3〕本発明の更に別の観点によるデータプロセッサは、アドレス変換バッファとセット ァソシァティブ形態のキャッシュメモリとを有し、前記アドレス変換バッファはアドレス 変換対を格納するための n個のエントリフィールドと、アドレス変換の変換ヒットになる エントリフィールドを予測する予測回路とを有し、前記キャッシュメモリは前記エントリ フィールドに一対一対応される n個のウェイを有し、前記各々のウェイは対応するェン トリフィールドが保有する物理ページアドレスに配置されているデータの格納に割り当 てられる。前記ウェイは対応するエントリフィールドがアドレス変換ヒットの予測領域で あるのを条件にメモリ動作を開始し、前記キャッシュメモリは前記アドレス変換ヒットの 予測が実際のアドレス変換結果と一致するのを条件にキャッシュヒットを生成する。 TLBの連想ヒットに応答して対応する一つのウェイを起動する制御形態は、一つのゥ エイの動作を起動するタイミングが TLBの連想検索結果が出た後であり、 TLBの連 想検索に並行してキャッシュメモリのインデックスを行う制御形態に比べて、キャッシュ メモリのインデックス動作までに要する時間が長くなる。予測回路による予測結果にし たがってキャッシュメモリのインデックス動作を予め開始することによってその動作開 始の遅れを小さくすることができる。予め開始したキャッシュ動作のキャッシュヒットは 前記アドレス変換ヒットの予測が実際のアドレス変換結果と一致するのを条件とする から、誤った予測によるキャッシュ動作が有効にされることはない。
[0019] 〔4〕本発明の更に別の観点によるデータプロセッサは、アドレス変換バッファと複数 のウェイを持つセットァソシァティブ形態のキャッシュメモリとを有し、前記アドレス変換 ノ ッファは仮想ページアドレス情報と物理ページアドレス情報とを保有するアドレス変 換対を有し、前記キャッシュメモリのタグをアドレス変換バッファのアドレス変換対が保 有する物理ページアドレス情報と共通化し、前記アドレス変換バッファのヒット信号に 応じて対応するキャッシュのウェイの動作を選択する。
[0020] 本発明の更に別の観点によるデータプロセッサは、アドレス変換バッファと複数のゥ エイを持つセットァソシァティブ形態のキャッシュメモリとを有し、前記アドレス変換バッ ファは仮想ページアドレス情報と物理ページアドレス情報とを保有するアドレス変換 対を有し、前記アドレス変換バッファの変換対が保有する物理ページアドレス情報に よって指定される物理アドレス空間のデータをキャッシュメモリの対応するウェイに格 納し、前記アドレス変換バッファのウェイのヒット信号に応じて、対応するウェイの動作 を選択する。
[0021] 予測回路を用いる本発明の更に別の観点によるデータプロセッサは、アドレス変換 ノ ッファと複数のウェイを持つセットァソシァティブ形態のキャッシュメモリとを有し、前 記アドレス変換バッファは、仮想ページアドレス情報と物理ページアドレス情報とを保 有するアドレス変換対と、アドレス変換バッファの変換ヒットを予測する予測回路とを 有し、前記キャッシュメモリのタグをアドレス変換バッファのアドレス変換対が保有する 物理ページアドレス情報と共通化し、前記予測回路による予測に応じて対応するキヤ ッシュのウェイの動作を選択し、前記予測が実際のアドレス変換結果に一致すること を条件にキャッシュヒットを生成する。
[0022] 予測回路を用いる本発明の更に別の観点によるデータプロセッサは、アドレス変換 ノ ッファと複数のウェイを持つセットァソシァティブ形態のキャッシュメモリとを有し、前 記アドレス変換バッファは、仮想ページアドレス情報と物理ページアドレス情報を保 有するアドレス変換対と、アドレス変換バッファの変換ヒットを予測する予測回路とを 有し、前記アドレス変換バッファの変換対が保有する物理ページアドレス情報によつ て指定される物理アドレス空間のデータをキャッシュメモリの対応するウェイに格納し 、前記予測回路による予測に応じて対応するキャッシュのウェイの動作を選択し、前 記予測が実際のアドレス変換結果に一致することを条件にキャッシュヒットを生成する 発明の効果
[0023] 本願において開示される発明のうち代表的なものによって得られる効果を簡単に説 明すれば下記の通りである。
[0024] すなわち、セットァソシァティブキャッシュメモリにおけるデータアレイを TLBの変換 ヒット信号に従って 1個のウェイのみ動作を選択するから、セットァソシァティブキヤッ シュメモリとアドレス変換バッファを有するデータプロセッサにおいて前記セットァソシ ァティブキャッシュメモリによる電力消費を低減することができる。
図面の簡単な説明
[0025] [図 1]ITLB及び ICACHEの詳細な一例を示すブロック図である。
[図 2]本発明の一例に係るデータプロセッサのブロック図である。
[図 3]図 1に代表されるようにアドレス変換バッファとキャッシュメモリが密結合でリンク されて動作される構成におけるメインメモリのデータとキャッシュメモリのデータとの関 係を例示するアドレスマップである。
[図 4]ITLB及び ICACHEの動作フローを示すフローチャートである。
[図 5]TLB書き換え制御フローを示すフローチャートである。
[図 6]キャッシュ書き換え制御フローを示すフローチャートである。 [図 7]アドレス変換ヒットの予測結果を用いる ICACHと ITLBの詳細な一例を示すブ ロック図である。
[図 8]全てのウェイを並列的にインデックスする形態のキャッシュメモリを比較例として 示すブロック図である。
[図 9]図 8のキャッシュメモリのデータとメインメモリのデータとの関係を例示するァドレ スマップである。
符号の説明
1 データプロセッサ
2 CPU
3 アドレス変換バッファ及びキャッシュユニット
4 内部バス
5 ノ スコントローラ
6 メインメモリ
20 命令アドレス変換バッファ
21 命令キャッシュメモリ
22 データアドレス変換バッファ
23 データキャッシュメモリ
24 制御回路
25 命令フ ツチ信号
26 仮想命令アドレス
27 仮想アドレス変換ヒット信号
28 命令
30 データフ ツチ信号
31 データアドレス
32 仮想アドレス変換ヒット信号
33 データ
ETY0— ETY7 エントリ
VPN 仮想ページアドレス(エントリフィールド) PPN 物理ページアドレス(エントリフィールド)
V 有効ビット(エントリフィールド)
50[7 : 0] エントリ変換ヒット信号
27[7 : 0] 仮想アドレス変換ヒット信号
65 キャッシュヒット信号
70 予測回路
71 予測一致確認回路
72[7 : 0] 仮想アドレス変換ヒット予測信号
73[7 : 0] 予測信号
発明を実施するための最良の形態
[0027] 《データプロセッサ》
図 2には本発明の一例に係るデータプロセッサが示される。同図に示されるデータ プロセッサ (MPU) 1は、特に制限されないが、公知の半導体集積回路製造技術に よって単結晶シリコンのような 1個の半導体基板(半導体チップ)に形成される。この データプロセッサ 1は、データ処理ユニットとして、例えば、中央処理装置(CPU) 2を 有し、中央処理装置 2はアドレス変換バッファ及びキャッシュユニット(TLB'CACH) 3を介して内部バス (IBUS) 4に接続される。特に制限されないが、前記内部バス 4に はスプリット 'トランザクション 'バスのバスプロトコルが採用される。内部バス 4には外 部バス制御若しくは外部メモリインタフェース制御を行うバスコントローラ (BSC) 5が 接続される。図においてバスコントローラ 5にはシンクロナス DRAMなどによって構成 されるメインメモリ(MMRY) 6が接続される。また、バスコントローラに接続される外部 回路はメモリに限定されず、その他 LSI (例えば LCDC、周辺回路)力接続されるよう に構成され ヽて 、ても良 、。更に前記内部ノ ス 4にはバスブリッジ回路(BBRG) 7を 介して周辺バス(PBUS) 8が接続される。周辺バス 8には割り込みコントローラ(INT C) 10、クロックパルスジェネレータ(CPG) 11などの周辺回路が接続される。周辺バ ス 8と内部バス 4にはダイレクト 'メモリ 'アクセス'コントローラ(DMAC) 12が接続され 、モジュール間のデータ転送制御を行う。
[0028] 前記 CPU2は、特に制限されないが、汎用レジスタや算術論理演算器などを備え て演算を行う演算部と、プログラムカウンタや命令デコーダ等を備えて命令のフェッチ や解読並びに命令実行手順を制御したり演算制御を行う命令制御部とを有する。
[0029] 前記アドレス変換バッファ及びキャッシュユニット 3は、命令アドレス変換バッファ(IT LB) 20、命令キャッシュメモリ(ICACHE) 21、データアドレス変換バッファ(DTLB) 22、データキャッシュメモリ(DCACHE) 23、及び制御回路 24を有する。 ITLB20は 仮想命令アドレスとこれに対応される物理命令アドレスとの対の情報を変換対として 有する。 DTLB21は仮想データアドレスとこれに対応される物理データアドレスとの 対の情報を変換対として有する。それら変換対はメインメモリ 6上のページ管理情報 の一部のコピーとされる。 ICACHE21はメインメモリ上のプログラム領域が保有する プログラムの一部の命令のコピーを有する。 DCACHE23はメインメモリ上のワーク 領域が保有するデータの一部のコピーを有する。
[0030] CPU2は命令フェッチを行うとき、 ITLB20及び ICACHE21に、命令フェッチ信号 25をアサートし、且つ仮想命令アドレス 26を出力する。 ITLB20は仮想アドレスに対 する変換ヒットのとき仮想アドレス変換ヒット信号 27を ICACHE21に出力する。 ICA CHE21は仮想命令アドレスに応ずる命令 28を CPU2に出力する。 CPU2はデータ フェッチを行うとき、 DTLB22及び DCACHE23に、データフェッチ信号 30をアサ一 トし、且つ仮想データアドレス 31を出力する。 DTLB22は仮想アドレスに対する変換 ヒットのとき仮想アドレス変換ヒット信号 32を DCACHE23に出力する。リードアクセス の場合には DCACHE23は仮想データアドレスに応ずるデータ 33を CPU2に出力 し、ライトアクセスの場合には DCACHE23は仮想データアドレスに応ずるキャッシュ ラインに CPU2からのデータ 33を書き込む。制御回路 24は、 ITLB20及び DTLB2 2における変換ミスの発生に応答して CPU2に TLB例外処理要求を通知する制御な どを行う。また、制御回路 24は、 ICACHE21及び DCACHE23におけるキャッシュ ミスの発生に応答するキャッシュエントリのリプレース制御などを行う。
[0031] 前記アドレス変換及びキャッシュユニット 3は、内部バス 4との間で、物理命令アドレ ス 40の出力、命令 41の入力、データアドレス 42の出力、データ 43の入出力など行う
[0032] 《アドレス変換バッファ及びキャッシュユニット》 図 1には ITLB及び ICACHEの詳細な一例が示される。ここでは ITLB20は例えば 8エントリのフルァソシァティブ構成、 ICACH21は例えば 8ウェイセットァソシァティブ 構成とする。
[0033] ITLB20には 2個のエントリ ETY0、 ETY7が代表的に示される。 8エントリのフルァ ソシァティブ構成においてエントリをウェイと称することも可能である力 ここではキヤッ シュメモリのウェイと区別するためにエントリと称する。各々のエントリには仮想ページ アドレス(VPN)、エントリの有効ビット(V)、物理ページアドレス(PPN)を保有するた めのエントリフィールドを有する。 VPNと PPNは変換対を構成する。この例では ITLB 20によるアドレス変換単位であるページサイズは 4キロバイトとされ、仮想アドレス空 間を 32ビットアドレス空間とする。 VPN及び PPNのビット幅は第 13ビット目から第 32 ビット目までの 20ビット([31: 12])とされる。各エントリにおいて CMPは比較手段、 A NDは論理積ゲートを機能的に示して 、る。フルァソシァティブ構成のメモリにはビッ ト単位で比較機能を有するメモリセルを採用することができ、この場合には比較機能 及び論理積機能はビット単位でメモリセルに担わせてよい。
[0034] CPU2が仮想命令アドレス 26を発行すると、そのうちの仮想ページアドレス [31: 12 ]が比較手段 CMPにより VPN ([31: 12])と比較され、これが一致してかつ有効ビット TVが 1 (有効レベル)である場合にエントリ ETYOにおけるエントリ変換ヒット信号 50[ 0]がヒットを意味する論理値 1となる。各エントリからのエントリ変換ヒット信号 50[7 : 0] が同時に 2つ以上論理値 1になる TLBマルチヒット状態は通常は生じな 、ようになつ ている。 TLBマルチヒット状態が発生された場合にはその状態を検出し、マルチヒット 例外処理要求を CPU2に通知することで対処するようになって 、る。論理和回路 (O R) 51は 8本の信号 50[7 : 0]の論理和を採って変換ヒット信号 53を生成する。制御回 路 24は変換ヒット信号 50を入力し、 TLBミスが通知されたとき CPU2に TLBミス例外 要求を発生する。また、エントリの PPNはエントリ変換ヒット信号 50[7 : 0]によってセレ クタ 52で一つが選択され物理ページアドレスとして出力される。この物理ページアド レスは、必要に応じて図 2の 40で示される物理アドレス 40を構成する物理ページアド レスとして内部バス 4に出力される。前記エントリ変換ヒット信号 50[7 : 0]はアンドゲー ト 54で命令フェッチ信号 25と論理積が採られ、仮想アドレス変換ヒット信号 27[7: 0] として命令キャッシュメモリ 21に供給される。
[0035] 命令キャッシュメモリ 21は 8個のウェイ WAYO— WAY7を有する。ウェイ WAYO— WAY7の全て又は任意の一つを指称するときは単にゥヱイ WAYとも記す。各々のゥ エイ WAY0— WAY7はデータフィールド DATと有効ビットフィールド Vを有し、各々 のウェイ WAYのデータフィールドのキャッシュ容量はページサイズと一致しており 4キ ロバイトである。データフィールド DATのキャッシュラインサイズは 32バイトの例で示 しており、仮想アドレスの下位側 [11 : 5]が命令キャッシュメモリ 21へのインデックスァ ドレス 60として与えられる。仮想アドレスの下位アドレス [4 : 0]はライン内オフセットアド レス 61とされ、 1ライン内 32バイトの中でのデータ位置の選択に用いられる。その選 択にはセレクタ 63を用いる。 8個のウェイ WAY0— WAY7の動作は仮想アドレス変 換ヒット信号 27[7 : 0]によって個別に指示される。すなわち、各々のウェイ WAY0— WAY7は対応する仮想アドレス変換ヒット信号 27[7: 0]が変換ヒットであるときメモリ 動作が選択される。メモリ動作が選択されたウェイ WAYは、インデックスアドレスによ るアドレシングなどが可能にされ、メモリセルの選択、選択されたメモリセル力 記憶 情報を読み出し、或いは選択されたメモリセルに情報を記憶することが可能にされる 。したがって、命令アクセス要求がある場合でも、対応する仮想アドレス変換ヒット信 号 27[7: 0]がヒットしない限りウェイ WAYはは起動しな!、。仮想アドレス変換ヒット信 号 27[7: 0]は仮想ページ単位の変換ヒット信号であるから、仮想アドレス変換ヒット信 号 27[7 : 0]は 1つし力論理値 1 (変換ヒット値)にならず、動作されるウェイは一つに限 られる。要するに、 TLBによるアドレス変換ヒットに係る仮想ページに対応する一つの ウェイ WAYだけが動作される。全てのウェイが並列動作されない。これにより、無駄 な電力消費を抑制することができる。
[0036] 起動されたウェイ WAYでは、データフィールド DATと有効ビットフィールド Vからィ ンデッタスアドレス 60に対応するキャッシュラインが選択され、データと有効ビットが読 み出される。読み出されたデータはオフセットアドレス 61によりセレクタ 63で選択され る。セレクタ 63から出力されたデータと前記ウェイ力も読み出された有効ビットは仮想 アドレス変換ヒット信号 27[7 : 0]によって選択動作を行うセレクタ 64で選択されて出力 される。セレクタ 64で選択された有効ビットは制御回路 24に供給される。制御回路 2 4は有効ビットをキャッシュヒット信号 65とみなし、キャッシュヒットであれば (有効ビット が有効を示す論理値であれば)、前記セレクタ 64で選択されたデータをキャッシュデ ータ 28として CPU2に供給される。キャッシュミスであれば、バスコントローラ 5を介し てメインメモリ 6をアクセスして、対応する命令をそのキャッシュラインに取り込む制御 を行うと共に、取り込んだ命令を CPU2に供給する。
[0037] 図 1では命令系の ITLB及び ICACHEについて説明した力 データ系の DTLB及 び DCACHETLBについても同様に構成することができる。データの場合は書き込 みアクセスも発生する力 ウェイの選択以外は従来のキャッシュメモリと特別異なる操 作を行う必要はない。また、命令とデータを区別しない統合 TLB、統合キャッシュメモ リの構成を採用する場合も同様である。詳細は後述するが TLBミスと関係してキヤッ シュメモリの操作が必要になる。
[0038] 図 3には図 1に代表されるようにアドレス変換バッファとキャッシュメモリが密結合でリ ンクされて動作される構成におけるメインメモリのデータとキャッシュメモリのデータと の関係を例示する。ここでは、説明を簡単にするために、 PPNを 2ビット、ページサイ ズを 3ビットエリアとする。キャッシュメモリのウェイはキャッシュラインを 8ライン有して!/ヽ る。インデックスアドレス Aidxは 3ビットである。図において、ウェイ WAYOに対応する TLBの PPNはページ番号 00、ウェイ WAY1に対応する TLBの PPNはページ番号 10としている。この場合、キャッシュメモリのウェイ WAYOにはメインメモリのメモリアド レス 00000— 00111までの範囲 RNGOが格納可能であり、ウェイ WAY1にはメイン メモリのメモリアドレス 10000— 10111までの範囲 RAG1が格納可能である。このよう に、ある時点において、 TLBに格納されているアドレス変換対象となるメモリ領域の みが対応するキャッシュメモリのウェイに格納可能となる。この関係ゆえに、 TLBにお けるエントリ毎の仮想アドレス変換ヒット信号でキャッシュメモリのウェイ毎にメモリ動作 の起動を決めることができる。なお、キャッシュメモリへのデータの登録はラインサイズ 単位で行い、そのサイズ毎に有効ビットを保有しており、有効なデータがキャッシュに 登録されている場合に有効ビットを論理値 1としてそのデータが有効であることを示す
[0039] 図 4には ITLB及び ICACHEの動作フローが例示される。 CPU2から発行される命 令仮想アドレスの上位 [31: 12]を命令 TLBの各エントリの VPNと比較し、その比較 結果と各エントリの有効ビットとの論理積を採り、各エントリの仮想アドレス変換ヒット信 号 27[7: 0]を生成する(S 1)。仮想アドレス変換ヒット信号 27[7: 0]のうち論理値 1が 幾つあるかを判定する(S2)。 2個以上であれば TLBマルチヒット状態が CPU2に通 知される(S3)。一つだけが論理値 1であれば、ヒットに係るウェイのメモリ動作が選択 され、当該ウェイからインデックスされたデータと有効ビットを読み出す (S4)。読出し た有効ビットの論理値力^かを判定し (S5)、有効 (論理値 1)であれば読出しデータ 力 SCPUに供給される(S6)。有効でなければ、キャッシュ書き換え制御により、キヤッ シュミスに対するキャッシュラインのフィル動作などが行われる(S7)。ステップ S2の判 定で全てが論理値 0のときは、 TLBミスであり、 TLBのエントリの追加若しくはリプレー スのための TLBミス例外処理要求が CPU2に発行され、 TLB書き換え制御が行わ れる(S8)。このとき、制御部 24は、書き換えた TLBのエントリに対応されるキャッシュ メモリのウェイの有効ビットを全て無効のレベルに書き換える(S9)。その後、 TLBの 各エントリの仮想ページアドレス VPNに対する比較動作 (S1)力 やり直す。
[0040] 特に図示はしないが、書き込みアクセスに対応することが必要なデータキャッシュメ モリの場合、前記制御回路 24は、リプレースされるエントリに対応するキャッシュメモリ のウェイのデータフィールドを無効化するとき(S9)、コピーバックされるべきデータフ ィールドのデータを有して 、る場合にはメインメモリに書き戻しする。
[0041] 図 5には TLB書き換え制御フローが例示される。書き換え制御フローはデータプロ セッサに下位階層の TLBが存在するカゝ否かで異なる(Sl l)。下位階層の TLBが存 在する場合、下位階層の TLBを検索する(S12)。検索した下位階層の TLBが、上 記 TLBミスに係る仮想ページアドレスに対して変換ヒット (TLBヒット)であるかを判定 する(S13)。 TLBヒットの場合には当該下位階層 TLBの変換対の VPNと PPNをミス に係る TLBのエントリとして登録する(S 14)。ステップ S 13にお!/、て下位階層の TLB がミスであるとき(下位階層の TLBが存在するがそこでも TLBミスとなった場合)、 TL Bミスを CPUに通知しソフトウェア制御にてメインメモリに管理されているページ管理 情報をミスに係る上位及び下位双方の TLB(VPN, PPN)に登録し、有効にする(S1 5)。下位階層の TLBが存在しない場合、 TLBミス例外を CPUに通知しソフトウェア 制御にてメモインメモリ 6に管理されているページ管理情報をミスに係る TLB(VPN, PPN)に登録し、有効にする。
[0042] 図 6にはキャッシュ書き換え制御フローが例示される。 TLBにはヒットしたが対応す るキャッシュのウェイの有効ビットが論理値 0 (無効レベル)であった場合、キャッシュミ スとなる。このとき図 4にステップ S 7で説明したようにキャッシュ書き換え制御を行う。 キャッシュの書き換えはキャッシュミスした 1ラインのみの更新である。
[0043] まず、データプロセッサに下位階層のキャッシュメモリが存在するか否かで制御が 異なる(S21)。下位階層のキャッシュメモリが存在する場合、下位階層のキャッシュメ モリを検索する(S22)。下位階層のキャッシュメモリがキャッシュヒットの場合にはヒット に係るキャッシュデータを上位階層のキャッシュメモリに登録し、有効ビットを論理値 1 とする(S24)。下位階層のキャッシュが存在するがそこでもキャッシュミスとなった場 合には、キャッシュミスをバスコントローラ 5に通知し、メインメモリ 6をアクセスさせる。こ れによってメインメモリ 6から取得したデータを上位及び下位双方のキャッシュメモリに 登録し、有効ビットを論理値 1とする(S25)。このとき、下位階層のキャッシュメモリに 対してデータ登録を行なわな 、選択も可能である。下位階層のキャッシュメモリが存 在しない場合、キャッシュミスをバスコントローラ 5に通知し、メインメモリ 6をアクセスさ せ、メインメモリ 6から得たデータをキャッシュメモリに登録し、有効ビットを論理値 1とし て、キャッシュ書き換え制御を終了する(S26)。
[0044] キャッシュメモリを書き換えた後、正しいデータを CPU2へ供給することができる。こ のとき、 TLBの各エントリの VPN比較動作 (S1)力もやり直すことも可能であるし、仮 想アドレス変換ヒット信号 27[7: 0]を保持しておき対応するキャッシュウェイ力もの読 み出し動作力 再開しても良い。或いは、キャッシュメモリへのデータ登録と同時に C PU2が要求しているデータをキャッシュメモリへ登録するのと並行して CPU2へも供 給する制御を行うことも可能である。
[0045] 図 8には全てのウェイを並列的にインデックスする形態のキャッシュメモリを比較例と して示す。図 8において ICACHEはアドレスタグフィールド TAGを有する。図 8にお いて信号 25にて命令アクセス要求があると、 ITLBのアドレス変換動作に並行して、 I CACHEは全てのウェイ WAYO— WAY7の動作が選択されてインデックス動作が開 始される。インデックスされたキャッシュラインのタグは ITLBカゝら供給される物理ぺー ジアドレスと比較され、一致したウェイのキャッシュデータがキャッシュヒットに係るデー タとされる。図 9には図 8のキャッシュメモリのデータとメインメモリのデータとの関係を 例示する。ここでも図 3と同様に、説明を簡単にするため、 PPNを 2ビット、ページサイ ズを 3ビットエリアとする。キャッシュメモリのウェイはキャッシュラインを 8ライン有して!/ヽ る。インデックスアドレス Aidxは 3ビットである。
[0046] 以上説明したように、データプロセッサ 1にお 、て仮想アドレス変換ヒット信号 27[7: 0]に代表されるように TLBのエントリ毎に生成されるアドレス変換ヒット信号に応答し て対応するキャッシュウェイのメモリ動作が開始され、全てのキャッシュウェイが並列 的にインデックス動作を開始することはない。 ICACH, DCACHはキャッシュにタグ メモリが不要であるから、タグメモリ自体をアクセスするための電力も全く必要ない。し たがって、従来技術のセットァソシァティブ構成のキャッシュメモリに対して低消費電 力を実現することができる。この効果を見積もるにあたり、キャッシュメモリのタダフィー ルドとデータフィールドのビット幅を考慮して、 1個のキャッシュウェイにお!、てタグフィ 一ルドとデータフィールドの電力消費の割合を 1: 2と仮定すると、従来技術のセットァ ソシァティブキャッシュメモリと ICACHに代表される TLBと密結合されたウェイの選択 動作型キャッシュメモリとの消費電力の比は 12 : 2程度になり、キャッシュメモリの消費 電力を約 83%程度低減可能であると見積ることができる。
[0047] 《アドレス変換ヒットの予測結果を用いるキャッシュユニット》
図 7にはアドレス変換ヒットの予測結果を用いる ICACHと ITLBの詳細な一例が示 される。ここでは ITLB20は例えば 8エントリのフルァソシァティブ構成、 ICACH21は 例えば 8ウェイセットァソシァティブ構成とし、図 1の場合と同様とする。図 1の構成に 対し、予測回路 70と予測一致確認回路 71とを追加し、仮想アドレス変換ヒット予測信 号 72[7 : 0]にしたがってウェイ WAYの動作を選択し、前記アドレス変換ヒットの予測 が実際のアドレス変換結果と一致するのを条件にキャッシュヒット 65を生成するように した点が相違される。予測回路 70は一つ前のアドレス変換結果を保持し、これを予 測信号 73[7 : 0]として出力する。予測信号 73[7 : 0]はアンドゲート 54によって命令フ エッチ信号 25と論理積が採られ、論理積信号が仮想アドレス変換ヒット予測信号 72[ 7: 0]とされる。 ICACH21のウェイ WAYO— WAY7は対応する仮想アドレス変換ヒッ ト予測信号 72[7 : 0]の論理値 1によってメモリ動作が開始される。要するに、 ICACH 21のウェイ WAYO— WAY7に対する起動制御に関しては、仮想アドレス変換ヒット 予測信号 72[7: 0]は図 1における仮想アドレス変換ヒット信号 27[7: 0]の機能を持つ 。予測一致確認回路 71は実際の各エントリ ETYO— ETY7におけるアドレス変換結 果であるエントリ変換ヒット信号 50[7 : 0]を受け取る。予測一致確認回路 71は予測回 路 70が保持して 、る予測信号 73[7: 0]の値と、新たに受け取ったエントリ変換ヒット 信号 50[7 : 0]との一致を判定し、その判定結果信号 75を出力すると共に、予測回路 70に新たな予測結果としてそのエントリ変換ヒット信号 50[7 : 0]の値を保持させ、次 のキャッシュ動作に利用可能とする。予測の正否を示す判定結果信号 75はセレクタ 77で選択された有効ビットとアンドゲート 76で論理積が採られる。その論理積信号が キャッシュヒット信号 65とみなされる。
図 1と比べると、対応するキャッシュのゥヱイを信号 27[7 : 0]で起動する代わりに、予 測信号 73[7: 0]と命令アクセス信号 25との論理積信号を用いて命令キャッシュのゥ エイ WAYを起動する。したがって、 ITLB20での変換ヒット信号 50[7 : 0]の確定を待 たずにキャッシュメモリ 21を起動することができるため高速動作が可能となる。この場 合でも ITLB20側の VPN比較は行 、、実際のアドレス変換ヒット信号 50[7: 0]が確 定した時点で予測が正し力 たかどうかを確認する。予測一致確認結果は次の予測 に反映するため予測回路 70に供給される。予測が正し力つた場合、 ICACH21から 出力されるデータとキャッシュヒット信号は正しいものであり、図 1の場合と同様に用い れらる。予測が誤っていた場合には、今度は正しい予測信号 73[7 : 0]を既に得てい るため、予測回路 70の出力を用いても予測を誤ることはない。正しい予測ヒット信号 を予測回路 70に保持しておけば、対応するキャッシュメモリ 21のウェイ WAYの読み 出しから再開することができる。もちろん ITLB20の各エントリ ETYの VPN比較から やり直す制御も可能である。この応用例では、キャッシュメモリの有効データを高速に 得ることができる特徴にカ卩えて、起動されるキャッシュメモリのウェイ WAYが 1個であ る点は先に説明した例と変わりないため、上記同様に低消費電力の効果も得ることが できる。 [0049] 以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、 本発明はそれに限定されるものではなぐその要旨を逸脱しない範囲において種々 変更可能であることは言うまでもな 、。
[0050] 例えば上記の例では仮想メモリから物理メモリへのマッピング方式として、固定長の アドレス変換を用いる方式 (ページング方式)を一例として 、る。ページサイズは 4キロ バイトに限定されず適宜変更可能である。データプロセッサは CPUの他に浮動小数 点演算ユニットや積和演算ユニットなどのデータ処理ユニットを備えてもよい。更にそ の他の回路モジュールを有してょ 、。データプロセッサはシングルチップに限定され ず、マルチチップで構成されるものであってもよいし、中央処理装置を複数備えるマ ルチ CPU構成であってもよ!/、。
産業上の利用可能性
[0051] 本発明はアドレス変換バッファとキャッシュメモリを備えたマイクロコンピュータやマイ クロプロセッサなどに広く適用することができる。

Claims

請求の範囲
[1] アドレス変換バッファとセットァソシァティブ形態のキャッシュメモリとを有し、
前記アドレス変換バッファはアドレス変換対を格納するための n個のエントリフィール ドを有し、
前記キャッシュメモリは前記エントリフィールドに一対一対応される n個のウェイを有 し、前記各々のウェイはアドレス変換単位であるページサイズの記憶容量を有するデ ータフィールドを備え、
前記アドレス変換バッファはエントリフィールド毎の連想比較結果を対応するウェイ に出力し、前記ウェイは入力した連想比較結果の連想ヒットに応答してメモリ動作を 開始するデータプロセッサ。
[2] 前記アドレス変換対は仮想ページアドレスとこれに対応する物理ページアドレスとを 対とする情報を有し、
前記データフィールドが保有するデータの物理ページアドレスは、対応するエントリ フィールドのアドレス変換対が保有する物理ページアドレスに等しい請求項 1記載の データプロセッサ。
[3] 前記キャッシュメモリは前記データフィールドと対のアドレスタグフィールドを持つこと を必要としない請求項 2記載のデータプロセッサ。
[4] 前記アドレス変換バッファは、入力した変換対象アドレスを前記エントリフィールドの 仮想ページアドレスと比較し、比較結果が一致したエントリフィールドが有効であるこ とを条件に、当該エントリフィールドに対応するウェイにウェイヒットを通知し、このゥェ ィヒットの通知が連想比較結果の連想ヒットを示す請求項 3記載のデータプロセッサ。
[5] 前記アドレス変換バッファによる前記連想比較結果が全て連想ミスであるときアドレス 変換バッファのエントリをリプレースする制御ユニットを有し、前記制御ユニットはアド レス変換バッファのエントリをリプレースするとき、リプレースされるエントリに対応する キャッシュメモリのウェイのデータフィールドを無効化する請求項 1記載のデータプロ セッサ。
[6] 前記制御ユニットは更に、リプレースされるエントリに対応するキャッシュメモリのウェイ のデータフィールドを無効化するとき、書き込みアクセスに対するキャッシュメモリのラ イトキャッシュミスに対してコピーバックされるべきデータフィールドのデータを下位側 メモリに書き戻しする請求項 5記載のデータプロセッサ。
[7] アドレス変換バッファとセットァソシァティブ形態のキャッシュメモリとを有し、
前記アドレス変換バッファはアドレス変換対を格納するための n個のエントリフィール ドを有し、
前記キャッシュメモリは前記エントリフィールドに一対一対応される n個のウェイを有 し、
前記各々のウェイは対応するエントリフィールドが保有する物理ページアドレスのデ ータの格納に割り当てられ、
前記ウェイは対応するエントリフィールドに関する連想比較結果が連想ヒットになる のを条件にメモリ動作を開始するデータプロセッサ。
[8] 全てのエントリフィールドに関する前記連想比較結果が連想ミスであるときアドレス変 換バッファのエントリをリプレースする制御ユニットを有し、前記制御ユニットはァドレ ス変換バッファのエントリをリプレースするとき、リプレースされるエントリに対応するキ ャッシュメモリのウェイのキャッシュデータを無効化する請求項 7記載のデータプロセ ッサ。
[9] 前記制御ユニットは更に、リプレースされるエントリに対応するキャッシュメモリのウェイ のデータを無効化するとき、書き込みアクセスに対するキャッシュメモリのライトキヤッ シュミスに対してコピーバックされるべきデータを下位側メモリに書き戻しする請求項 8 記載のデータプロセッサ。
[10] アドレス変換バッファとセットァソシァティブ形態のキャッシュメモリとを有し、
前記アドレス変換バッファはアドレス変換対を格納するための n個のエントリフィール ドと、アドレス変換の変換ヒットになるエントリフィールドを予測する予測回路とを有し、 前記キャッシュメモリは前記エントリフィールドに一対一対応される n個のウェイを有 し、
前記各々のウェイは対応するエントリフィールドが保有する物理ページアドレスに配 置されて!、るデータの格納に割り当てられ、
前記ウェイは対応するエントリフィールドがアドレス変換ヒットの予測領域であるのを 条件にメモリ動作を開始し、前記キャッシュメモリは前記アドレス変換ヒットの予測が実 際のアドレス変換結果と一致するのを条件にキャッシュヒットを生成するデータプロセ ッサ。
[11] アドレス変換バッファと複数のウェイを持つセットァソシァティブ形態のキャッシュメモリ とを有し、
前記アドレス変換バッファは仮想ページアドレス情報と物理ページアドレス情報とを 保有するアドレス変換対を有し、
前記キャッシュメモリのタグをアドレス変換バッファのアドレス変換対が保有する物理 ページアドレス情報と共通化し、前記アドレス変換バッファのヒット信号に応じて対応 するキャッシュのウェイの動作を選択するデータプロセッサ。
[12] アドレス変換バッファと複数のウェイを持つセットァソシァティブ形態のキャッシュメモリ とを有し、
前記アドレス変換バッファは仮想ページアドレス情報と物理ページアドレス情報とを 保有するアドレス変換対を有し、
前記アドレス変換バッファの変換対が保有する物理ページアドレス情報によって指 定される物理アドレス空間のデータをキャッシュメモリの対応するウェイに格納し、前 記アドレス変換バッファのウェイのヒット信号に応じて、対応するウェイの動作を選択 するデータプロセッサ。
[13] アドレス変換バッファと複数のウェイを持つセットァソシァティブ形態のキャッシュメモリ とを有し、
前記アドレス変換バッファは、仮想ページアドレス情報と物理ページアドレス情報と を保有するアドレス変換対と、アドレス変換バッファの変換ヒットを予測する予測回路 とを有し、
前記キャッシュメモリのタグをアドレス変換バッファのアドレス変換対が保有する物理 ページアドレス情報と共通化し、前記予測回路による予測に応じて対応するキヤッシ ュのウェイの動作を選択し、前記予測が実際のアドレス変換結果に一致することを条 件にキャッシュヒットを生成するデータプロセッサ。
[14] アドレス変換バッファと複数のウェイを持つセットァソシァティブ形態のキャッシュメモリ とを有し、
前記アドレス変換バッファは、仮想ページアドレス情報と物理ページアドレス情報を 保有するアドレス変換対と、アドレス変換バッファの変換ヒットを予測する予測回路と を有し、
前記アドレス変換バッファの変換対が保有する物理ページアドレス情報によって指 定される物理アドレス空間のデータをキャッシュメモリの対応するウェイに格納し、前 記予測回路による予測に応じて対応するキャッシュのウェイの動作を選択し、前記予 測が実際のアドレス変換結果に一致することを条件にキャッシュヒットを生成するデー タプロセッサ。
PCT/JP2004/014353 2004-09-30 2004-09-30 データプロセッサ WO2006038258A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006539089A JPWO2006038258A1 (ja) 2004-09-30 2004-09-30 データプロセッサ
US11/663,592 US20080114940A1 (en) 2004-09-30 2004-09-30 Data Processor
PCT/JP2004/014353 WO2006038258A1 (ja) 2004-09-30 2004-09-30 データプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2004/014353 WO2006038258A1 (ja) 2004-09-30 2004-09-30 データプロセッサ

Publications (1)

Publication Number Publication Date
WO2006038258A1 true WO2006038258A1 (ja) 2006-04-13

Family

ID=36142349

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2004/014353 WO2006038258A1 (ja) 2004-09-30 2004-09-30 データプロセッサ

Country Status (3)

Country Link
US (1) US20080114940A1 (ja)
JP (1) JPWO2006038258A1 (ja)
WO (1) WO2006038258A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010237770A (ja) * 2009-03-30 2010-10-21 Toshiba Corp 情報処理装置、ブリッジ装置および情報処理方法
WO2014057546A1 (ja) * 2012-10-10 2014-04-17 富士通株式会社 マルチヒット検出回路、処理装置およびマルチヒット検出方法
JP2015060571A (ja) * 2013-09-20 2015-03-30 株式会社東芝 キャッシュメモリシステムおよびプロセッサシステム
US10025719B2 (en) 2014-02-24 2018-07-17 Kabushiki Kaisha Toshiba Cache memory system and processor system
JP2022517318A (ja) * 2019-01-24 2022-03-08 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド トランスレーションルックアサイドバッファエビクションに基づくキャッシュ置換

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8667258B2 (en) 2010-06-23 2014-03-04 International Business Machines Corporation High performance cache translation look-aside buffer (TLB) lookups using multiple page size prediction
US8788789B2 (en) * 2010-12-15 2014-07-22 Advanced Micro Devices, Inc. Power filter in data translation look-aside buffer based on an input linear address
TWI587136B (zh) * 2011-05-06 2017-06-11 創惟科技股份有限公司 快閃記憶體系統及其快閃記憶體無效資料頁資訊之管理方法與回收方法
US9367456B1 (en) * 2013-06-14 2016-06-14 Marvell International Ltd. Integrated circuit and method for accessing segments of a cache line in arrays of storage elements of a folded cache
GB2547189A (en) * 2016-02-03 2017-08-16 Swarm64 As Cache and method
US10037283B2 (en) * 2016-08-12 2018-07-31 Advanced Micro Devices, Inc. Updating least-recently-used data for greater persistence of higher generality cache entries
US10489305B1 (en) 2018-08-14 2019-11-26 Texas Instruments Incorporated Prefetch kill and revival in an instruction cache

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61271572A (ja) * 1985-05-28 1986-12-01 Toshiba Corp キヤツシユメモリ
JPH05108486A (ja) * 1991-10-12 1993-04-30 Fujitsu Ltd キヤツシユ・メモリの制御方式
JPH07334423A (ja) * 1994-06-07 1995-12-22 Hitachi Ltd セットアソシアティブ方式のメモリ装置
JPH086857A (ja) * 1994-06-17 1996-01-12 Mitsubishi Electric Corp キャッシュメモリ
JP2000293437A (ja) * 1999-04-02 2000-10-20 Nec Corp キャッシュメモリ装置及びキャッシュメモリ制御方法
JP2003196157A (ja) * 2001-12-25 2003-07-11 Mitsubishi Electric Corp プロセッサ装置及びメモリ管理方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5148538A (en) * 1989-10-20 1992-09-15 International Business Machines Corporation Translation look ahead based cache access

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61271572A (ja) * 1985-05-28 1986-12-01 Toshiba Corp キヤツシユメモリ
JPH05108486A (ja) * 1991-10-12 1993-04-30 Fujitsu Ltd キヤツシユ・メモリの制御方式
JPH07334423A (ja) * 1994-06-07 1995-12-22 Hitachi Ltd セットアソシアティブ方式のメモリ装置
JPH086857A (ja) * 1994-06-17 1996-01-12 Mitsubishi Electric Corp キャッシュメモリ
JP2000293437A (ja) * 1999-04-02 2000-10-20 Nec Corp キャッシュメモリ装置及びキャッシュメモリ制御方法
JP2003196157A (ja) * 2001-12-25 2003-07-11 Mitsubishi Electric Corp プロセッサ装置及びメモリ管理方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LEE Y. ET AL: "SHARED TAG FOR MMU AND CACHE MEMORY", PROCEEDINGS OF 1997 INTERNATIONAL SEMICONDUCTOR CONFERENCE (CAS'97), vol. 1, 7 October 1997 (1997-10-07), pages 77 - 80, XP010266859 *
SUZUKI K. ET AL: "Tagless Cache", THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS, vol. 94, no. 481, CPSY94-98, 30 January 1995 (1995-01-30), pages 25 - 32, XP003005651 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010237770A (ja) * 2009-03-30 2010-10-21 Toshiba Corp 情報処理装置、ブリッジ装置および情報処理方法
WO2014057546A1 (ja) * 2012-10-10 2014-04-17 富士通株式会社 マルチヒット検出回路、処理装置およびマルチヒット検出方法
JP2015060571A (ja) * 2013-09-20 2015-03-30 株式会社東芝 キャッシュメモリシステムおよびプロセッサシステム
US9740613B2 (en) 2013-09-20 2017-08-22 Kabushiki Kaisha Toshiba Cache memory system and processor system
US10025719B2 (en) 2014-02-24 2018-07-17 Kabushiki Kaisha Toshiba Cache memory system and processor system
JP2022517318A (ja) * 2019-01-24 2022-03-08 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド トランスレーションルックアサイドバッファエビクションに基づくキャッシュ置換
JP7337173B2 (ja) 2019-01-24 2023-09-01 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド トランスレーションルックアサイドバッファエビクションに基づくキャッシュ置換

Also Published As

Publication number Publication date
US20080114940A1 (en) 2008-05-15
JPWO2006038258A1 (ja) 2008-05-15

Similar Documents

Publication Publication Date Title
JP3713312B2 (ja) データ処理装置
US9208084B2 (en) Extended main memory hierarchy having flash memory for page fault handling
EP3238074B1 (en) Cache accessed using virtual addresses
US9098284B2 (en) Method and apparatus for saving power by efficiently disabling ways for a set-associative cache
US9112537B2 (en) Content-aware caches for reliability
US8291168B2 (en) Disabling cache portions during low voltage operations
US6006311A (en) Dynamic updating of repair mask used for cache defect avoidance
US7516275B2 (en) Pseudo-LRU virtual counter for a locking cache
US6023746A (en) Dual associative-cache directories allowing simultaneous read operation using two buses with multiplexors, address tags, memory block control signals, single clock cycle operation and error correction
US5715427A (en) Semi-associative cache with MRU/LRU replacement
US5958068A (en) Cache array defect functional bypassing using repair mask
JPH036757A (ja) ライトバツクデータキヤツシユメモリ装置
JP2001195303A (ja) 機能が並列に分散された変換索引バッファ
US6085288A (en) Dual cache directories with respective queue independently executing its content and allowing staggered write operations
US10528473B2 (en) Disabling cache portions during low voltage operations
US5883904A (en) Method for recoverability via redundant cache arrays
CN111164581A (zh) 用于修补页的系统、方法和装置
WO2006038258A1 (ja) データプロセッサ
JPH07295889A (ja) アドレス変換回路
JP4071942B2 (ja) データ処理装置及びデータプロセッサ
US5943686A (en) Multiple cache directories for non-arbitration concurrent accessing of a cache memory
US5867511A (en) Method for high-speed recoverable directory access
TWI407306B (zh) 快取記憶體系統及其存取方法與電腦程式產品
EP2866148B1 (en) Storage system having tag storage device with multiple tag entries associated with same data storage line for data recycling and related tag storage device
JP2000259498A (ja) マルチスレッド・プロセッサの命令キャッシュ

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

DPEN Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed from 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2006539089

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 11663592

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase
WWP Wipo information: published in national office

Ref document number: 11663592

Country of ref document: US