WO2007096998A1 - キャッシュメモリ装置およびキャッシュメモリ制御方法 - Google Patents

キャッシュメモリ装置およびキャッシュメモリ制御方法 Download PDF

Info

Publication number
WO2007096998A1
WO2007096998A1 PCT/JP2006/303475 JP2006303475W WO2007096998A1 WO 2007096998 A1 WO2007096998 A1 WO 2007096998A1 JP 2006303475 W JP2006303475 W JP 2006303475W WO 2007096998 A1 WO2007096998 A1 WO 2007096998A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
tag information
address
cache
error
Prior art date
Application number
PCT/JP2006/303475
Other languages
English (en)
French (fr)
Inventor
Takashi Miura
Naohiro Kiyota
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 EP06714614A priority Critical patent/EP1988466A4/en
Priority to PCT/JP2006/303475 priority patent/WO2007096998A1/ja
Priority to JP2008501551A priority patent/JPWO2007096998A1/ja
Publication of WO2007096998A1 publication Critical patent/WO2007096998A1/ja
Priority to US12/230,113 priority patent/US20080320227A1/en

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/12Replacement control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/141Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc

Definitions

  • the present invention relates to a cache memory device including a cache that stores data and stores tag information indicating an address for specifying the stored data, and a cache memory control method, and more particularly, tag information at the time of replacement processing.
  • the present invention relates to a cache memory device and a cache memory control method that can prevent errors in the system and prevent damage to the system.
  • a cache memory provided in a processor such as a CPU can be accessed at high speed, but has a smaller storage capacity than a main memory. For this reason, not all data stored in the main memory can be stored in the cache memory, and the cache memory stores a part of the data stored in the main memory. For this reason, the address in the main memory is stored in the cache memory so that the address of the data in the main memory is stored (cached) in the cache memory so that it can be searched. Tag information indicating is stored.
  • tag information is read from the cache memory, and whether or not desired data is cached in the cache memory. Is searched. At this time, in order to ensure that no error has occurred when reading the tag information, error detection may be performed using the NORITY bit added to the tag information.
  • ECC Error Correcting Code
  • Patent Document 1 Japanese Patent Application Laid-Open No. 2000-20397 Disclosure of the invention
  • the tag information is searched and the desired data is stored in the cache memory. It is determined whether or not. As a result, if the desired data is stored in the cache memory! (A cache miss), the data stored in the current cache memory is transferred to the main memory or higher cache memory (ie, the secondary cache etc. The replacement process is performed to replace the desired data stored in ().
  • tag information is read again from the cache memory, and data to be replaced with desired data is determined.
  • the tag information corresponding to the data and the data is temporarily stored in the save buffer, and the data at the address indicated by the tag information is replaced with the desired data. Is required from the main memory or the upper cache memory.
  • the present invention has been made in view of the strong points, and provides a cache memory device and a cache memory control method capable of preventing an error in tag information during a replacement process and preventing damage to the system.
  • the purpose is to do.
  • the present invention provides a cache memory device including a cache that stores data and tag information indicating an address for specifying the stored data.
  • Write desired data to z When a read request occurs, a detection unit that reads the tag information to detect an error, and if no error is detected in the tag information as a result of error detection by the detection unit, A search means for searching for the address from the tag information, and a result of the search by the search means; A storage unit that stores an address of the data that is included in the tag information and is replaced with the desired data when the address of the desired data is not included in the tag information; and an address stored by the storage unit And a control means for requesting data replacement to the outside using the.
  • the storage unit includes a selecting unit that selects an address of data that has been accessed for the longest time among a plurality of addresses included in the tag information. And an address selected by the selecting means is stored.
  • control means reads and invalidates data corresponding to an address stored by the storage means by reading the cache power.
  • the present invention is characterized in that, in the above-mentioned invention, the control means reads out the data corresponding to the address stored by the storage means and transfers the data to the outside.
  • control means when the control means requests processing other than data replacement after the address is stored by the storage means, the address of the data to be processed And the address stored by the storage means, and the processing is stopped when the two addresses match.
  • the present invention when an error is detected in the tag information as a result of the error detection by the detection unit, corresponds to the tag information in which the error is detected and the tag information. It further comprises an acquisition means for acquiring data from an external force, and a writing means for writing the tag information and data acquired by the acquisition means into the cache.
  • the present invention stores data and an address for specifying the stored data
  • the present invention when a write Z read request for writing desired data to the cache occurs, an error is detected by reading the tag information. If no error is detected in the tag information as a result of the error detection, the address of the desired data is detected. If the tag information does not contain the address of the desired data, the address of the data that is included in the tag information and is replaced with the desired data is stored and stored. Request external data replacement using the specified address. For this reason, the address used during data replacement, that is, replacement processing, is based on powerful tag information in which no error is detected, ensuring the accuracy of tag information, and tag information during replacement processing. Errors can be prevented and, as a result, damage to the system can be prevented.
  • the address that is accessed for the longest time among the plurality of addresses included in the tag information is selected to store the selected address.
  • the data with the lowest possibility of being replaced becomes the data to be replaced, and cache efficiency can be improved.
  • the cache capacity is secured, and the desired data is newly updated. Can be stored in the cache.
  • the data corresponding to the stored address is read out in the cache power and transferred to the outside. It is transferred to the memory to secure the cache capacity, and the desired data can be newly stored in the cache.
  • the address of the data to be processed is compared with the stored address, and both addresses are compared. Stop processing when matches. For this reason, even if a store process or the like is requested for data that is invalidated or transferred as a replacement target, the process is not performed wastefully.
  • the tag information in which the error is detected and the data corresponding to the tag information are acquired and acquired. Write the tag information and data to the cache. For this reason, tag information is updated, and the recurrence of errors can be prevented.
  • FIG. 1 is a block diagram showing a schematic configuration of a CPU according to an embodiment of the present invention.
  • FIG. 2 is a block diagram showing a main configuration of a primary cache control unit according to one embodiment.
  • FIG. 3 is a diagram for explaining a configuration of a primary cache according to an embodiment.
  • FIG. 4 is a flowchart showing a cache memory control operation according to one embodiment. Explanation of symbols
  • FIG. 1 is a block diagram showing a schematic configuration of a CPU provided with a cache memory device according to an embodiment of the present invention.
  • the CPU shown in FIG. 1 includes a primary cache control unit 100, a primary cache 200, a secondary cache control unit 300, a secondary cache 400, an instruction processing unit 500, and an arithmetic processing unit 600. This CPU is connected to the main memory 700.
  • the primary cache control unit 100 reads and writes data from and to the primary cache 200 in response to an instruction from the instruction processing unit 500.
  • the primary cache control unit 100 sends a replacement request to the secondary cache control unit 300 when desired data is not stored when data is read from the primary cache 200.
  • the primary cache control unit 100 reads an error when reading data from the primary cache 200.
  • One detected tag information is held, and a replacement process based on the tag information is performed.
  • the primary cache 200 stores frequently used data on the secondary cache 400 and the main memory 700, and also stores tag information indicating an address of the stored data on the main memory 700.
  • the primary cache 200 is assumed to have a set associative configuration in which a plurality of cache lines correspond to each predetermined memory block of the main memory 700. Below, each cache line corresponding to the same memory block is called a way.
  • the secondary cache control unit 300 reads and writes data from and to the secondary cache 400 in accordance with a replacement request from the primary cache control unit 100.
  • the secondary cache control unit 300 outputs error information indicating that an error has been detected in the tag information from the primary cache control unit 100
  • the secondary cache control unit 300 refers to a copy of the tag information in the primary cache 200 and generates an error.
  • the generated tag information and the data corresponding to the tag information are read from the secondary cache 400 and output to the primary cache control unit 100.
  • the secondary cache 400 stores frequently used data in the main memory 700, and also stores a tag information of the stored data and a copy of the tag information of the primary cache 200.
  • the instruction processing unit 500 interprets instructions such as a program, instructs the arithmetic processing unit 600 to execute necessary arithmetic processing, and reads and writes necessary data to the primary cache control unit 100. Instruct. In response to an instruction from the instruction processing unit 500, the arithmetic processing unit 600 performs arithmetic processing using data from which the force is read, such as the primary cache 200.
  • the main memory 700 is a main storage device, and stores data programs necessary for processing in the CPU.
  • the main memory 700 has a large capacity compared to the primary cache 200 and the secondary cache 400, and the access speed is slow.
  • FIG. 2 is a block diagram showing the main configuration of primary cache control section 100 and primary cache 200 according to the present embodiment.
  • the primary cache control unit 100 includes a connection unit 101, a read instruction unit 102, a write Z read unit 103, an error detection unit 104, an error notification unit 105, a tag Z data acquisition unit 106, a search unit 107, Way selection unit 108, replacement control unit 109 And an address storage unit 110 and a data storage unit 111.
  • the primary cache 200 has a tag RAM 201 and a data RAM 202.
  • Connection unit 101 is connected to instruction processing unit 500, notifies read instruction unit 102 of a data read instruction from instruction processing unit 500, and instructs the data read from primary cache 200 as an instruction. Output to processing unit 500.
  • the read instruction unit 102 instructs the write Z reading unit 103 on the address of the data to be read.
  • write Z reading unit 103 When the address is instructed from read instruction unit 102, write Z reading unit 103 reads tag information corresponding to this address from tag RAM 201, and outputs the tag information to error detection unit 104. In addition, when the search unit 107 notifies that the cache hit has occurred, the write Z reading unit 103 reads the data corresponding to the address instructed from the read instructing unit 102 from the data RAM 202 and passes through the connection unit 101. Is output to the instruction processing unit 500. Further, the writing Z reading unit 103 writes the tag information and data output from the tag Z data acquisition unit 106 to the tag RAM 201 and the data RAM 202, respectively. Further, the write Z reading unit 103 reads data from the data RAM 202 according to the control by the replacement control unit 109.
  • the error detection unit 104 detects an error in the tag information output from the writing Z reading unit 103. Specifically, the error detection unit 104 performs error detection using the parity bit added to the tag information. If an error is detected in the tag information, the error detection unit 104 notifies the error notification unit 105 to that effect. If no error is detected in the information, the fact is notified to the search unit 107 together with the tag information.
  • the error notification unit 105 updates the tag information and the data corresponding to the tag information, and error information that can identify the tag information in which the error is detected. Is output to the secondary cache control unit 300.
  • the tag Z data acquisition unit 106 acquires the tag information and data output from the secondary cache control unit 300, and writes the acquired tag information and data to the primary cache 200.
  • the Z reading unit 103 is instructed.
  • the search unit 107 determines whether or not the tag information includes an address for the reading instruction unit 102 to instruct the writing Z reading unit 103 to perform reading. Search for.
  • the tag information read out by the writing Z reading unit 103 includes information on a plurality of ways corresponding to the same memory block, and therefore stores different data addresses for each way. For this reason, it is necessary to search tag information in order to determine whether or not the desired data is stored in the primary cache 200, and if the tag information contains the address of the data to be read as a result of the search, If the tag data does not contain the address of the data to be read out, a cache miss occurs.
  • the search unit 107 notifies the write Z reading unit 103 that it is a cache hit so that data is read from the data RAM 202 of the primary cache 200.
  • the search unit 107 outputs the tag information to the way selection unit 108 and notifies the replacement control unit 109 of the cache miss.
  • the way selection unit 108 selects the way that has been least recently used by LRU (Least Recently Used) control from the tag information, and stores the address of the data stored in the selected way as an address. Output to part 110.
  • LRU east Recently Used
  • the replace control unit 109 performs a replacement process for replacing the data stored in the data RAM 202 of the primary cache 200 with the desired data stored in the secondary cache 400 or the main memory 700.
  • the replacement control unit 109 reads out the address stored in the address storage unit 110, and requests that the read address data is replaced with the desired data.
  • the replacement request is output to the secondary cache control unit 300.
  • replace control unit 109 instructs write Z reading unit 103 to read the data at the address stored in address storage unit 110 from data RAM 202.
  • the rib control unit 109 then outputs the data read by the writing Z reading unit 103 to the data storage unit 111.
  • Address storage section 110 stores an address of data that is output from way selection section 108 and is replaced with desired data. Since the address storage unit 110 stores the address stored in the selected way even if the tag information power in which no error is detected as a result of the error detection by the error detection unit 104 is stored, it is ensured that there is no error in the stored address. be able to.
  • the data storage unit 111 stores data that is output from the replacement control unit 109 and is replaced with desired data. Further, the force address storage unit 110 and the data storage unit 111 omitted in FIG. 2 invalidate the stored address and data when a data invalidation request for replacement is issued from the secondary cache control unit 300.
  • the tag RAM 201 stores tag information indicating an address on the main memory 700 of data stored in the primary cache 200.
  • the data RAM 202 stores data corresponding to the address stored in the tag RAM 201.
  • the primary cache 200 has a set associative configuration. Therefore, the tag RAM 201 and the data RAM 202 are provided with a set of a plurality of ways 0 to n as shown in FIG. Each way of the tag RAM 201 stores the address of the data stored in the data RAM 202 on the corresponding memory block, and each way of the data RAM 202 stores the data itself on the corresponding memory block. Has been.
  • each set of ways 0 to n includes a valid bit V indicating whether or not this set is valid, and data stored in each way.
  • the system absolute address Adrs corresponding to the address and the valid bit V and the parity bit P for error detection of the system absolute address Adrs are added! /.
  • a read instruction for reading desired data from the primary cache 200 is issued from the instruction processing unit 500, and reaches the connection unit 101 of the primary cache control unit 100 (step S101).
  • the connection unit 101 outputs a read command to the read command unit 102, the read command unit 102 notifies the address of the desired data included in the read command to the write Z read unit 103, and the write Z read unit 103 notifies
  • the tag information corresponding to the read address is read from the tag RAM 201 of the next cache 200 (step S102).
  • the read tag information is output to the error detection unit 104, and the error detection unit 104 uses the tag information tee bit to detect an error in the tag information (step S103). If an error is detected in the tag information as a result of error detection (step S103Ye s), the error notification unit 105 outputs error information to the secondary cache control unit 300 (step S104). Then, the secondary cache control unit 300 refers to a copy of the tag information of the primary cache 200, and reads data and tag information corresponding to the tag information in which an error is detected based on the error information from the secondary cache 400. Is output to the primary cache control unit 100.
  • step S103 No if no error is detected in the tag information as a result of the error detection of the tag information (step S103 No), the tag information is output to the search unit 107, and the search unit 107 converts the desired data into the tag information. Is registered (step S106). As a result, if the desired data is registered in the tag information and a cache hit occurs (step S106 Yes), the data corresponding to the read command from the command processing unit 500 is stored in the data RAM 202, and this data is read. Processing is executed (step S107). That is, the retrieval unit 107 instructs the writing Z reading unit 103 to read the desired data, the writing Z reading unit 103 reads the desired data from the data RAM 202, and the instruction processing unit 500 via the connection unit 101. Is output.
  • the search unit 107 searches for tag information and the desired data is not registered in the tag information and a cache miss occurs (step S106 No)
  • the tag information is output to the way selection unit 108.
  • the replacement control unit 109 is notified of a cache miss.
  • the way selection unit 108 selects the way (ie, LRU control is performed) among the plurality of ways included in the tag information after the longest access time V. Since this way is not frequently accessed recently, it becomes the way to be replaced with the desired data accessed this time. Therefore, the address stored in the way selected by the way selection unit 108 is stored in the address storage unit 110 (step S108).
  • the address stored in the address storage unit 110 is an accurate one because the error detection unit 104 can obtain the tag information power without detecting an error as a result of the error detection. It is guaranteed that
  • the replacement control unit 109 notified that a cache miss has occurred reads the address stored in the address storage unit 110, and in the primary cache 200, the read address data and A replacement request for requesting replacement with desired data is issued to the secondary cache control unit 300 (step S109).
  • replacement control unit 109 instructs write Z reading unit 103 to read the address data read from address storage unit 110, and this data is written from data RAM 202 as the data to be replaced.
  • the read Z reading unit 103 step S110
  • it is output from the replacement control unit 109 to the data storage unit 111 and stored (step S111).
  • the way to store the data to be replayed may be determined by LRU control. Therefore, the same way as the way selection related to the tag information is selected, and as a result, the way storing the address data stored in the address storage unit 110 is selected.
  • step S112 when an invalidation request for data to be replaced is issued from the secondary cache control unit 300 that has received the replacement request, the replacement control unit 109 and the address stored in the address storage unit 110 and The data stored in the data storage unit 111 is invalidated (step S112), the desired data and tag information output from the secondary cache control unit 300 are stored in the data RAM 202 and the tag RAM 201, respectively, and the replacement process ends. .
  • the secondary cache control unit 300 obtains the desired data from the main memory 700 and sends it to the primary cache control unit 100 when the desired data force S requested for replacement is not stored in the secondary cache 400. Output.
  • Secondary cache control unit 300 When a data move-out request is issued instead of an invalidation request, the address stored in the address storage unit 110 and the data stored in the data storage unit 111 are set to 2 by the replacement control unit 109. The next cache control unit 300 may be moved out.
  • error detection of tag information is executed when tag information is read in response to a data read command, and no error is detected in tag information. If a miss occurs, the address stored in the powerful tag information where no error has been detected is temporarily held for replacement processing due to a cache miss. For this reason, the accuracy of the tag information (address) used in the replacement process is ensured, an error in the tag information during the replacement process can be prevented, and the system can be prevented from being damaged.
  • the present invention can be applied to a case where an error in tag information during the replacement process is prevented and a system is prevented from being damaged.

Description

明 細 書
キャッシュメモリ装置およびキャッシュメモリ制御方法
技術分野
[0001] 本発明は、データを記憶するとともに、記憶されたデータを特定するアドレスを示す タグ情報を記憶するキャッシュを備えるキャッシュメモリ装置およびキャッシュメモリ制 御方法に関し、特に、リプレース処理時のタグ情報のエラーを防止し、システムの損 傷を防止することができるキャッシュメモリ装置およびキャッシュメモリ制御方法に関 する。
背景技術
[0002] 通常、 CPUなどのプロセッサ内に備えられるキャッシュメモリは、高速アクセスが可 能である反面、メインメモリよりも記憶容量が小さい。このため、メインメモリに記憶され ているデータをすベてキャッシュメモリに記憶させることはできず、キャッシュメモリは、 メインメモリに記憶されたデータの一部を記憶することになる。このため、メインメモリ 上のどのアドレスのデータがキャッシュメモリに記憶されて(キャッシュされて) V、るか 検索できるよう、キャッシュメモリには、データそのものにカ卩えてデータのメインメモリ上 でのアドレスを示すタグ情報が記憶されて 、る。
[0003] そして、 CPUにおける処理の過程でキャッシュメモリに対するデータの読み出しお よび書き込みの処理が発生すると、まず、キャッシュメモリからタグ情報が読み出され 、所望のデータがキャッシュメモリにキャッシュされているか否かが検索される。このと き、タグ情報の読み出し時にエラーが発生していないことを担保するため、タグ情報 に付加されているノ リティビットが用いられてエラー検出が行われることがある。
[0004] このエラー検出には、例えば特許文献 1に記載されているように、ノ^ティビットの他 に ECC (Error Correcting Code :誤り訂正符号)などが用いられることもある。そして 、特許文献 1においては、メインメモリ容量とキャッシュメモリ容量との割合に応じて、 ノ リティビットまたは ECCを用いてタグ情報のエラー検出を行 、、信頼性を向上する ことが開示されている。
[0005] 特許文献 1 :特開 2000— 20397号公報 発明の開示
発明が解決しょうとする課題
[0006] ところで、タグ情報のエラー検出の結果、読み出されたタグ情報にエラーが検出さ れな 、場合は、このタグ情報が検索されて所望のデータがキャッシュメモリに記憶さ れている力否かが判定される。この結果、キャッシュメモリに所望のデータが記憶され て!ヽな 、(キャッシュミス)場合は、現在のキャッシュメモリに記憶されて 、るデータを、 メインメモリまたは上位のキャッシュメモリ(すなわち 2次キャッシュなど)に記憶されて いる所望のデータに置き換えるリプレース処理が行われることになる。
[0007] リプレース処理の際には、再びキャッシュメモリからタグ情報が読み出され、所望の データに置き換えられるデータが決定される。置き換えられるデータが決定されると、 このデータおよびデータに対応するタグ情報は、一時的に退避用のバッファに記憶 されるとともに、タグ情報によって示されるアドレスのデータを所望のデータに置き換 えることがメインメモリまたは上位のキャッシュメモリに要求される。
[0008] し力しながら、このとき、キャッシュメモリから読み出されたタグ情報が正しいという前 提の下でリプレース処理が行われるため、キャッシュメモリからの読み出しおよび書き 込みの際にタグ情報にエラーがなくても、リプレース処理の際のタグ情報の読み出し に際してエラーが発生した場合、システムの重大な損傷などを引き起こす恐れがある という問題がある。
[0009] 本発明は力かる点に鑑みてなされたものであり、リプレース処理時のタグ情報のェ ラーを防止し、システムの損傷を防止することができるキャッシュメモリ装置およびキヤ ッシュメモリ制御方法を提供することを目的とする。
課題を解決するための手段
[0010] 上記課題を解決するために、本発明は、データを記憶するとともに、記憶されたデ ータを特定するアドレスを示すタグ情報を記憶するキャッシュを備えるキャッシュメモリ 装置であって、前記キャッシュに対する所望データの書き込み z読み出し要求発生 時に、前記タグ情報を読み出してエラーを検出する検出手段と、前記検出手段によ るエラー検出の結果、前記タグ情報にエラーが検出されない場合に、所望データの アドレスを前記タグ情報から検索する検索手段と、前記検索手段による検索の結果、 所望データのアドレスが前記タグ情報に含まれない場合に、前記タグ情報に含まれ るアドレスであって所望データと置換されるデータのアドレスを記憶する記憶手段と、 前記記憶手段によって記憶されたアドレスを用いてデータの置換を外部に要求する 制御手段とを有することを特徴とする。
[0011] また、本発明は、上記発明において、前記記憶手段は、前記タグ情報に含まれる 複数のアドレスのうち、最も長 、時間アクセスされて ヽな 、データのアドレスを選択す る選択手段を含み、前記選択手段によって選択されたアドレスを記憶することを特徴 とする。
[0012] また、本発明は、上記発明において、前記制御手段は、前記記憶手段によって記 憶されたアドレスに対応するデータを前記キャッシュ力 読み出して無効化することを 特徴とする。
[0013] また、本発明は、上記発明において、前記制御手段は、前記記憶手段によって記 憶されたアドレスに対応するデータを前記キャッシュ力 読み出して外部へ転送する ことを特徴とする。
[0014] また、本発明は、上記発明において、前記制御手段は、前記記憶手段によってアド レスが記憶された後、データの置換以外の処理が要求された場合に、この処理対象 のデータのアドレスと前記記憶手段によって記憶されたアドレスとを比較し、両ァドレ スが一致する際に前記処理を中止させることを特徴とする。
[0015] また、本発明は、上記発明において、前記検出手段によるエラー検出の結果、前 記タグ情報にエラーが検出された場合に、エラーが検出されたタグ情報およびこのタ グ情報に対応するデータを外部力 取得する取得手段と、前記取得手段によって取 得されたタグ情報およびデータを前記キャッシュに書き込む書込手段とをさらに有す ることを特徴とする。
[0016] また、本発明は、上記発明において、前記検索手段による検索の結果、所望デー タのアドレスが前記タグ情報に含まれる場合に、前記キャッシュに記憶された所望デ ータに対する書き込み Z読み出しを実行する書込 Z読出手段をさらに有することを 特徴とする。
[0017] また、本発明は、データを記憶するとともに、記憶されたデータを特定するアドレス を示すタグ情報を記憶するキャッシュを制御するキャッシュメモリ制御方法であって、 前記キャッシュに対する所望データの書き込み Z読み出し要求発生時に、前記タグ 情報を読み出してエラーを検出する検出工程と、前記検出工程におけるエラー検出 の結果、前記タグ情報にエラーが検出されない場合に、所望データのアドレスを前記 タグ情報から検索する検索工程と、前記検索工程における検索の結果、所望データ のアドレスが前記タグ情報に含まれな!/、場合に、前記タグ情報に含まれるアドレスで あって所望データと置換されるデータのアドレスを記憶する記憶工程と、前記記憶ェ 程にて記憶されたアドレスを用いてデータの置換を外部に要求する要求工程とを有 することを特徴とする。
発明の効果
[0018] 本発明によれば、キャッシュに対する所望データの書き込み Z読み出し要求発生 時に、タグ情報を読み出してエラーを検出し、エラー検出の結果、タグ情報にエラー が検出されない場合に、所望データのアドレスをタグ情報力 検索し、検索の結果、 所望データのアドレスがタグ情報に含まれな 、場合に、タグ情報に含まれるアドレス であって所望データと置換されるデータのアドレスを記憶し、記憶されたアドレスを用 いてデータの置換を外部に要求する。このため、データの置換、すなわちリプレース 処理時に用いられるアドレスは、エラーが検出されな力つたタグ情報に基づくものとな り、タグ情報の正確性を担保することができ、リプレース処理時のタグ情報のエラーを 防止し、結果としてシステムの損傷を防止することができる。
[0019] また、本発明によれば、タグ情報に含まれる複数のアドレスのうち、最も長い時間ァ クセスされて 、な 、データのアドレスを選択し、選択されたアドレスを記憶するため、 アクセスされる可能性が最も低いデータがリプレース対象のデータとなり、キャッシュ 効率を向上することができる。
[0020] また、本発明によれば、記憶されたアドレスに対応するデータをキャッシュ力 読み 出して無効化するため、リプレース対象のデータが無効化されてキャッシュ容量が確 保され、所望データを新たにキャッシュに記憶させることができる。
[0021] また、本発明によれば、記憶されたアドレスに対応するデータをキャッシュ力 読み 出して外部へ転送するため、リプレース対象のデータが例えば 2次キャッシュやメイン メモリへ転送されてキャッシュ容量が確保され、所望データを新たにキャッシュに記憶 させることがでさる。
[0022] また、本発明によれば、アドレスが記憶された後、データの置換以外の処理が要求 された場合に、この処理対象のデータのアドレスと記憶されたアドレスとを比較し、両 アドレスが一致する際に処理を中止させる。このため、リプレース対象となって無効化 または転送されるデータに対して、例えばストア処理などが要求されても、無駄に処 理が実行されることがない。
[0023] また、本発明によれば、エラー検出の結果、タグ情報にエラーが検出された場合に 、エラーが検出されたタグ情報およびこのタグ情報に対応するデータを外部力 取得 し、取得されたタグ情報およびデータをキャッシュに書き込む。このため、タグ情報が 更新され、エラーの再発を防止することができる。
[0024] また、本発明によれば、検索の結果、所望データのアドレスがタグ情報に含まれる 場合に、キャッシュに記憶された所望データに対する書き込み Z読み出しを実行す るため、所望データがキャッシュに記憶されているキャッシュヒットの場合は、迅速に データの書き込み Z読み出しが行われる。
図面の簡単な説明
[0025] [図 1]図 1は、本発明の一実施の形態に係る CPUの概略構成を示すブロック図であ る。
[図 2]図 2は、一実施の形態に係る 1次キャッシュ制御部の要部構成を示すブロック図 である。
[図 3]図 3は、一実施の形態に係る 1次キャッシュの構成を説明するための図である。
[図 4]図 4は、一実施の形態に係るキャッシュメモリ制御動作を示すフロー図である。 符号の説明
[0026] 100 1次キャッシュ制御部
101 接続部
102 読出指示部
103 書込 Z読出部
104 エラー検出部 105 エラー通知部
106 タグ Zデータ取得部
107 検索部
108 ゥ イ選択部
109 リプレース制御部
110 アドレス記憶部
111 データ記憶部
200 1次キャッシュ
300 2次キャッシュ制御部
400 2次キャッシュ
500 命令処理部
600 演算処理部
700 メインメモリ
発明を実施するための最良の形態
[0027] 以下、本発明の一実施の形態について、図面を参照して詳細に説明する。なお、 以下においては、 CPUに 1次キャッシュおよび 2次キャッシュが備えられている場合 を例に挙げて説明する力 CPUが 1次キャッシュのみを備えている場合や、 CPUが さらに 3次以上のキャッシュメモリを備えている場合などにも本発明を適用することが できる。
[0028] 図 1は、本発明の一実施の形態に係るキャッシュメモリ装置を備えた CPUの概略構 成を示すブロック図である。図 1に示す CPUは、 1次キャッシュ制御部 100、 1次キヤ ッシュ 200、 2次キャッシュ制御部 300、 2次キャッシュ 400、命令処理部 500、演算 処理部 600を備えている。また、この CPUは、メインメモリ 700に接続されている。
[0029] 1次キャッシュ制御部 100は、命令処理部 500からの命令に応じて 1次キャッシュ 2 00に対するデータの読み出しおよび書き込みを行う。また 1次キャッシュ制御部 100 は、 1次キャッシュ 200からのデータの読み出しに際して所望のデータが記憶されて いない場合、 2次キャッシュ制御部 300に対してリプレース要求を送出する。このとき 、 1次キャッシュ制御部 100は、 1次キャッシュ 200からのデータの読み出し時にエラ 一検出されたタグ情報を保持しておき、このタグ情報に基づくリプレース処理を行う。
1次キャッシュ制御部 100の具体的な動作については、後に詳述する。
[0030] 1次キャッシュ 200は、 2次キャッシュ 400およびメインメモリ 700上の頻繁に使用さ れるデータを記憶するとともに、記憶されたデータのメインメモリ 700上におけるァドレ スを示すタグ情報を記憶する。本実施の形態においては、 1次キャッシュ 200は、メイ ンメモリ 700の所定のメモリブロックごとに複数のキャッシュラインが対応しているセット ァソシァティブ構成を採っているものとする。以下では、同一のメモリブロックに対応 する各キャッシュラインをウェイと呼ぶ。
[0031] 2次キャッシュ制御部 300は、 1次キャッシュ制御部 100からのリプレース要求に従 つて、 2次キャッシュ 400に対するデータの読み出しおよび書き込みを行う。また 2次 キャッシュ制御部 300は、 1次キャッシュ制御部 100からタグ情報にエラーが検出され た旨のエラー情報が出力された場合、 1次キャッシュ 200のタグ情報のコピーを参照 して、エラーが発生したタグ情報とこのタグ情報に対応するデータとを 2次キャッシュ 4 00から読み出し、 1次キャッシュ制御部 100へ出力する。
[0032] 2次キャッシュ 400は、メインメモリ 700上の頻繁に使用されるデータを記憶するとと もに、記憶されたデータのタグ情報および 1次キャッシュ 200のタグ情報のコピーを記 憶する。
[0033] 命令処理部 500は、プログラムなどの命令を解釈し、必要な演算処理の実行を演 算処理部 600に指示するとともに、必要なデータの読み出しおよび書き込みを 1次キ ャッシュ制御部 100へ指示する。演算処理部 600は、命令処理部 500からの指示に 応じて、 1次キャッシュ 200など力も読み出されたデータを用いた演算処理を行う。
[0034] メインメモリ 700は、主記憶装置であって、 CPUにおける処理に必要なデータゃプ ログラムを記憶している。メインメモリ 700は、 1次キャッシュ 200および 2次キャッシュ 400と比較すると大容量である力 アクセス速度が遅 、。
[0035] 図 2は、本実施の形態に係る 1次キャッシュ制御部 100および 1次キャッシュ 200の 要部構成を示すブロック図である。図 2において、 1次キャッシュ制御部 100は、接続 部 101、読出指示部 102、書込 Z読出部 103、エラー検出部 104、エラー通知部 10 5、タグ Zデータ取得部 106、検索部 107、ウェイ選択部 108、リプレース制御部 109 、アドレス記憶部 110、およびデータ記憶部 111を有している。また、 1次キャッシュ 2 00は、タグ RAM201およびデータ RAM202を有している。
[0036] 接続部 101は、命令処理部 500と接続されており、命令処理部 500からのデータの 読み出し命令を読出指示部 102へ通知し、 1次キャッシュ 200から読み出されたデー タを命令処理部 500へ出力する。
[0037] 読出指示部 102は、命令処理部 500からデータの読み出し命令が出された場合、 読み出すデータのアドレスを書込 Z読出部 103へ指示する。
[0038] 書込 Z読出部 103は、読出指示部 102からアドレスを指示されると、このアドレスに 対応するタグ情報をタグ RAM201から読み出し、エラー検出部 104へ出力する。ま た、書込 Z読出部 103は、検索部 107からキャッシュヒットの旨が通知されると、読出 指示部 102から指示されたアドレスに対応するデータをデータ RAM202から読み出 し、接続部 101経由で命令処理部 500へ出力する。さらに、書込 Z読出部 103は、 タグ Zデータ取得部 106から出力されるタグ情報およびデータをそれぞれタグ RAM 201およびデータ RAM202に書き込む。また、書込 Z読出部 103は、リプレース制 御部 109による制御に応じてデータ RAM202からデータを読み出す。
[0039] エラー検出部 104は、書込 Z読出部 103から出力されるタグ情報のエラー検出を 行う。具体的には、エラー検出部 104は、タグ情報に付加されたパリティビットを用い てエラー検出を行い、タグ情報にエラーが検出されれば、その旨をエラー通知部 10 5へ通知し、タグ情報にエラーが検出されなければ、その旨をタグ情報とともに検索 部 107へ通知する。
[0040] エラー通知部 105は、タグ情報にエラーが検出された場合、このタグ情報とタグ情 報に対応するデータとを更新するために、エラーが検出されたタグ情報を特定可能 なエラー情報を 2次キャッシュ制御部 300へ出力する。
[0041] タグ Zデータ取得部 106は、 2次キャッシュ制御部 300から出力されるタグ情報およ びデータを取得し、取得されたタグ情報およびデータの 1次キャッシュ 200への書き 込みを書込 Z読出部 103へ指示する。
[0042] 検索部 107は、タグ情報にエラーが検出されない場合、このタグ情報に読出指示 部 102が書込 Z読出部 103に読み出しを指示するアドレスが含まれている力否かを 検索する。書込 Z読出部 103によって読み出されるタグ情報には、同一のメモリブ口 ックに対応する複数のウェイの情報が含まれており、したがって、ウェイごとに異なる データのアドレスが格納されている。このため、所望のデータが 1次キャッシュ 200に 記憶されている力否かを判断するためにタグ情報の検索が必要となり、検索の結果、 読み出すデータのアドレスがタグ情報に含まれていればキャッシュヒットとなり、読み 出すデータのアドレスがタグ情報に含まれていなければキャッシュミスとなる。
[0043] そして、検索部 107は、キャッシュヒットの場合、 1次キャッシュ 200のデータ RAM2 02からデータが読み出されるように、キャッシュヒットである旨を書込 Z読出部 103へ 通知する。一方、検索部 107は、キャッシュミスの場合、タグ情報をウェイ選択部 108 へ出力し、キャッシュミスである旨をリプレース制御部 109へ通知する。
[0044] ウェイ選択部 108は、タグ情報から LRU (Least Recently Used)制御により、最近 の使用頻度が最も低 、ウェイを選択し、選択されたウェイに格納されて 、るデータの アドレスをアドレス記憶部 110へ出力する。
[0045] リプレース制御部 109は、キャッシュミスの場合、 1次キャッシュ 200のデータ RAM 202に記憶されているデータを 2次キャッシュ 400またはメインメモリ 700に記憶され ている所望のデータに置き換えるリプレース処理を開始する。すなわち、リプレース制 御部 109は、検索部 107からキャッシュミスの旨が通知されると、アドレス記憶部 110 力 アドレスを読み出し、読み出されたアドレスのデータと所望のデータとを置き換え る旨を要求するリプレース要求を 2次キャッシュ制御部 300へ出力する。
[0046] また、リプレース制御部 109は、アドレス記憶部 110に記憶されたアドレスのデータ をデータ RAM202から読み出すように書込 Z読出部 103へ指示する。そして、リブ レース制御部 109は、書込 Z読出部 103によって読み出されたデータをデータ記憶 部 111へ出力する。
[0047] アドレス記憶部 110は、ウェイ選択部 108から出力される、所望のデータと置き換え られるデータのアドレスを記憶する。アドレス記憶部 110は、エラー検出部 104による エラー検出の結果、エラーが検出されないタグ情報力も選択されたウェイに格納され たアドレスを記憶するため、記憶されるアドレスにはエラーがないことを担保すること ができる。 [0048] データ記憶部 111は、リプレース制御部 109から出力される、所望のデータと置き 換えられるデータを記憶する。また、図 2では省略した力 アドレス記憶部 110および データ記憶部 111は、 2次キャッシュ制御部 300から置き換えられるデータの無効化 要求が発行された場合、記憶したアドレスおよびデータを無効化する。
[0049] タグ RAM201は、 1次キャッシュ 200に記憶されるデータのメインメモリ 700上のァ ドレスを示すタグ情報を記憶している。データ RAM202は、タグ RAM201に記憶さ れたアドレスに対応するデータを記憶している。上述したように、本実施の形態にお いては、 1次キャッシュ 200は、セットァソシァティブ構成を採っている。したがって、タ グ RAM201およびデータ RAM202は、メインメモリ 700の各メモリブロックに対して、 例えば図 3に示すような複数のウェイ 0〜nのセットを対応付けて備えている。そして、 タグ RAM201の各ウェイには、対応するメモリブロック上のデータ RAM202に記憶 されたデータのアドレスが格納されており、データ RAM202の各ウェイには、対応す るメモリブロック上のデータそのものが格納されている。
[0050] また、ウェイ 0〜nからなる各セットには、図 3に示すように、このセットが有効であるか 否かを示すバリッドビット(Valid bit)V、各ウェイに格納されているデータまたはァドレ スに対応するシステム絶対アドレス Adrs、およびバリッドビット Vとシステム絶対アドレ ス Adrsのエラー検出のための ティビット(Parity bit) Pが付カ卩されて!/、る。
[0051] 次いで、上記のように構成された 1次キャッシュ制御部 100によるキャッシュメモリ制 御方法について、図 4に示すフロー図を参照しながら説明する。
[0052] まず、命令処理部 500から所望のデータを 1次キャッシュ 200から読み出す読出命 令が発行され、 1次キャッシュ制御部 100の接続部 101に到達する (ステップ S101) 。そして、接続部 101によって読み出し命令が読出指示部 102 出力され、読出指 示部 102によって読み出し命令に含まれる所望のデータのアドレスが書込 Z読出部 103 通知され、書込 Z読出部 103によって通知されたアドレスに対応するタグ情報 力 次キャッシュ 200のタグ RAM201から読み出される(ステップ S 102
[0053] 読み出されたタグ情報は、エラー検出部 104 出力され、エラー検出部 104によつ てタグ情報の ティビットが用いられ、タグ情報のエラー検出が実行される (ステップ S103)。エラー検出の結果、タグ情報にエラーが検出された場合 (ステップ S103Ye s)、エラー通知部 105によってエラー情報が 2次キャッシュ制御部 300へ出力される (ステップ S104)。そして、 2次キャッシュ制御部 300によって、 1次キャッシュ 200のタ グ情報のコピーが参照され、エラー情報を基にエラーが検出されたタグ情報に対応 するデータおよびタグ情報が 2次キャッシュ 400から読み出され、 1次キャッシュ制御 部 100へ出力される。これらのデータおよびタグ情報は、 1次キャッシュ制御部 100の タグ Zデータ取得部 106によって取得され、書込 Z読出部 103に対してそれぞれデ ータ RAM202およびタグ RAM201への書き込みが指示される。これにより、書込 Z 読出部 103によってエラーがないデータおよびタグ情報がデータ RAM202およびタ グ RAM201に書き込まれ、タグ RAM201の更新が行われる(ステップ S105)。
[0054] 一方、タグ情報のエラー検出の結果、タグ情報にエラーが検出されない場合 (ステ ップ S103No)、タグ情報は検索部 107へ出力され、検索部 107によって所望のデ ータがタグ情報に登録されているか否かが検索される (ステップ S106)。この結果、 所望のデータがタグ情報に登録されておりキャッシュヒットすれば (ステップ S106Yes )、命令処理部 500からの読み出し命令に応じたデータがデータ RAM202に記憶さ れているため、このデータの読み出し処理が実行される (ステップ S107)。すなわち、 検索部 107によって所望のデータの読み出しが書込 Z読出部 103へ指示され、書 込 Z読出部 103によってデータ RAM202から所望のデータが読み出され、接続部 1 01経由で命令処理部 500へ出力される。
[0055] また、検索部 107によるタグ情報の検索の結果、所望のデータがタグ情報に登録さ れておらずキャッシュミスすれば (ステップ S106No)、タグ情報がウェイ選択部 108 へ出力されるとともに、リプレース制御部 109へキャッシュミスの旨が通知される。そし て、ウェイ選択部 108によって、タグ情報に含まれる複数のウェイのうち、最近一番長 V、時間アクセスされて 、な 、ウェイが選択される(すなわち、 LRU制御が行われる)。 このウェイは、最近のアクセス頻度が低いため、今回アクセスされる所望のデータとの 置き換え対象のウェイとなる。このため、ウェイ選択部 108によって選択されたウェイ に格納されているアドレスは、アドレス記憶部 110に記憶される(ステップ S108)。ここ で、アドレス記憶部 110に記憶されるアドレスは、エラー検出部 104によるエラー検出 の結果、エラーが検出されな力つたタグ情報力も得られるものであるため、正確なも のであることが担保される。
[0056] そして、キャッシュミスが発生した旨が通知されたリプレース制御部 109によって、ァ ドレス記憶部 110に記憶されたアドレスが読み出され、 1次キャッシュ 200において、 読み出されたアドレスのデータと所望のデータとの置き換えを要求するリプレース要 求が 2次キャッシュ制御部 300へ発行される(ステップ S109)。
[0057] さらに、リプレース制御部 109によって、アドレス記憶部 110から読み出されたァドレ スのデータを読み出すように書込 Z読出部 103へ指示され、このデータがリプレース 対象のデータとしてデータ RAM202から書込 Z読出部 103によって読み出されると (ステップ S110)、リプレース制御部 109からデータ記憶部 111へ出力されて記憶さ れる(ステップ S 111)。
[0058] このようなリプレース処理時にお!、て、本実施の形態では、上述のようにアドレス記 憶部 110に記憶されたアドレスの正確さが担保されているため、リプレース処理時に 改めてタグ情報をタグ RAM201から読み出してエラー検出を行う必要がないとともに 、リプレース処理に用いられるタグ情報 (すなわちアドレス)にエラーが発生することも ない。
[0059] なお、データ RAM202からのデータの読み出しに際して、 LRU制御によりリプレー ス対象のデータを格納するウェイを決定するようにしても良いが、タグ RAM201のゥ エイとデータ RAM202のウェイとが対応しているため、タグ情報に関するウェイ選択と 同じウェイが選択されることになり、結果として、アドレス記憶部 110に記憶されたアド レスのデータが格納されているウェイが選択されることになる。
[0060] その後、リプレース要求を受けた 2次キャッシュ制御部 300からリプレース対象のデ ータの無効化要求が発行されると、リプレース制御部 109によって、アドレス記憶部 1 10に記憶されたアドレスおよびデータ記憶部 111に記憶されたデータが無効化され (ステップ S112)、 2次キャッシュ制御部 300から出力された所望のデータおよびタグ 情報がそれぞれデータ RAM202およびタグ RAM201に記憶され、リプレース処理 が終了する。なお、 2次キャッシュ制御部 300は、リプレース要求された所望のデータ 力 S 2次キャッシュ 400に記憶されていない場合は、メインメモリ 700から所望のデータ を取得して、 1次キャッシュ制御部 100へ出力する。また、 2次キャッシュ制御部 300 から、無効化要求の代わりにデータのムーブアウト要求が発行された場合は、リプレ ース制御部 109によって、アドレス記憶部 110に記憶されたアドレスおよびデータ記 憶部 111に記憶されたデータが 2次キャッシュ制御部 300ヘムーブアウトされるように しても良い。
[0061] 以上のように、本実施の形態によれば、データの読み出し命令に応じたタグ情報の 読み出し時にタグ情報のエラー検出を実行し、タグ情報にエラーが検出されず、力 つ、キャッシュミスが発生した場合は、エラーが検出されな力つたタグ情報に格納され ているアドレスをキャッシュミスに伴うリプレース処理用に一時的に保持しておく。この ため、リプレース処理に用いられるタグ情報(アドレス)の正確性が担保され、リプレー ス処理時のタグ情報のエラーを防止し、システムの損傷を防止することができる。
[0062] なお、上記一実施の形態にお!、て、アドレス記憶部 110にアドレスが記憶された後 であってリプレース処理が開始される前に、例えばストア処理が実行される場合は、 ストア対象のデータのアドレスがアドレス記憶部 110に記憶されたアドレスと比較され 、両アドレスが一致する場合は、リプレースによって無効化またはムーブアウトされる データのストア処理が実行されることを意味しているため、ストア処理の実行が中止さ れるようにしても良い。
産業上の利用可能性
[0063] 本発明は、リプレース処理時のタグ情報のエラーを防止し、システムの損傷を防止 する場合に適用することができる。

Claims

請求の範囲
[1] データを記憶するとともに、記憶されたデータを特定するアドレスを示すタグ情報を 記憶するキャッシュを備えるキャッシュメモリ装置であって、
前記キャッシュに対する所望データの書き込み Z読み出し要求発生時に、前記タ グ情報を読み出してエラーを検出する検出手段と、
前記検出手段によるエラー検出の結果、前記タグ情報にエラーが検出されない場 合に、所望データのアドレスを前記タグ情報から検索する検索手段と、
前記検索手段による検索の結果、所望データのアドレスが前記タグ情報に含まれ な 、場合に、前記タグ情報に含まれるアドレスであって所望データと置換されるデー タのアドレスを記憶する記憶手段と、
前記記憶手段によって記憶されたアドレスを用いてデータの置換を外部に要求す る制御手段と
を有することを特徴とするキャッシュメモリ装置。
[2] 前記記憶手段は、
前記タグ情報に含まれる複数のアドレスのうち、最も長 、時間アクセスされて!/、な ヽ データのアドレスを選択する選択手段を含み、
前記選択手段によって選択されたアドレスを記憶することを特徴とする請求項 1記 載のキャッシュメモリ装置。
[3] 前記制御手段は、
前記記憶手段によって記憶されたアドレスに対応するデータを前記キャッシュから 読み出して無効化することを特徴とする請求項 1記載のキャッシュメモリ装置。
[4] 前記制御手段は、
前記記憶手段によって記憶されたアドレスに対応するデータを前記キャッシュから 読み出して外部へ転送することを特徴とする請求項 1記載のキャッシュメモリ装置。
[5] 前記制御手段は、
前記記憶手段によってアドレスが記憶された後、データの置換以外の処理が要求 された場合に、この処理対象のデータのアドレスと前記記憶手段によって記憶された アドレスとを比較し、両アドレスが一致する際に前記処理を中止させることを特徴とす る請求項 1記載のキャッシュメモリ装置。
[6] 前記検出手段によるエラー検出の結果、前記タグ情報にエラーが検出された場合 に、エラーが検出されたタグ情報およびこのタグ情報に対応するデータを外部から取 得する取得手段と、
前記取得手段によって取得されたタグ情報およびデータを前記キャッシュに書き込 む書込手段と
をさらに有することを特徴とする請求項 1記載のキャッシュメモリ装置。
[7] 前記検索手段による検索の結果、所望データのアドレスが前記タグ情報に含まれる 場合に、前記キャッシュに記憶された所望データに対する書き込み Z読み出しを実 行する書込 Z読出手段をさらに有することを特徴とする請求項 1記載のキャッシュメ モリ装置。
[8] データを記憶するとともに、記憶されたデータを特定するアドレスを示すタグ情報を 記憶するキャッシュを制御するキャッシュメモリ制御方法であって、
前記キャッシュに対する所望データの書き込み Z読み出し要求発生時に、前記タ グ情報を読み出してエラーを検出する検出工程と、
前記検出工程におけるエラー検出の結果、前記タグ情報にエラーが検出されない 場合に、所望データのアドレスを前記タグ情報力 検索する検索工程と、
前記検索工程における検索の結果、所望データのアドレスが前記タグ情報に含ま れな 、場合に、前記タグ情報に含まれるアドレスであって所望データと置換されるデ ータのアドレスを記憶する記憶工程と、
前記記憶工程にて記憶されたアドレスを用いてデータの置換を外部に要求する要 求工程と
を有することを特徴とするキャッシュメモリ制御方法。
PCT/JP2006/303475 2006-02-24 2006-02-24 キャッシュメモリ装置およびキャッシュメモリ制御方法 WO2007096998A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP06714614A EP1988466A4 (en) 2006-02-24 2006-02-24 CACHE MEMORY ARRANGEMENT AND CACHE MEMORY CONTROL METHOD
PCT/JP2006/303475 WO2007096998A1 (ja) 2006-02-24 2006-02-24 キャッシュメモリ装置およびキャッシュメモリ制御方法
JP2008501551A JPWO2007096998A1 (ja) 2006-02-24 2006-02-24 キャッシュメモリ装置およびキャッシュメモリ制御方法
US12/230,113 US20080320227A1 (en) 2006-02-24 2008-08-22 Cache memory device and cache memory control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2006/303475 WO2007096998A1 (ja) 2006-02-24 2006-02-24 キャッシュメモリ装置およびキャッシュメモリ制御方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/230,113 Continuation US20080320227A1 (en) 2006-02-24 2008-08-22 Cache memory device and cache memory control method

Publications (1)

Publication Number Publication Date
WO2007096998A1 true WO2007096998A1 (ja) 2007-08-30

Family

ID=38437060

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2006/303475 WO2007096998A1 (ja) 2006-02-24 2006-02-24 キャッシュメモリ装置およびキャッシュメモリ制御方法

Country Status (4)

Country Link
US (1) US20080320227A1 (ja)
EP (1) EP1988466A4 (ja)
JP (1) JPWO2007096998A1 (ja)
WO (1) WO2007096998A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013084315A1 (ja) * 2011-12-07 2013-06-13 富士通株式会社 演算処理装置、及び、演算処理装置の制御方法
WO2013084314A1 (ja) * 2011-12-07 2013-06-13 富士通株式会社 演算処理装置及び演算処理装置の制御方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9748002B2 (en) * 2013-10-23 2017-08-29 Etron Technology, Inc. System-in-package module with memory
JP6218971B2 (ja) * 2014-12-14 2017-10-25 ヴィア アライアンス セミコンダクター カンパニー リミテッド アドレス・タグ・ビットに基づく動的キャッシュ置換ウェイ選択
WO2016097810A1 (en) 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Multi-mode set associative cache memory dynamically configurable to selectively select one or a plurality of its sets depending upon mode
JP6209689B2 (ja) 2014-12-14 2017-10-04 ヴィア アライアンス セミコンダクター カンパニー リミテッド モードに応じてウェイの全部又はサブセットに選択的に割り当てるように動的に構成可能であるマルチモード・セット・アソシエイティブ・キャッシュ・メモリ
US9946469B2 (en) * 2016-03-21 2018-04-17 Smart Modular Technologies, Inc. Solid state storage system with latency management mechanism and method of operation thereof
US11237972B2 (en) 2017-12-29 2022-02-01 Advanced Micro Devices, Inc. Method and apparatus for controlling cache line storage in cache memory

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5693163A (en) * 1979-12-25 1981-07-28 Fujitsu Ltd Buffer access control system
JPS60189553A (ja) * 1984-03-09 1985-09-27 Hitachi Ltd バッファメモリ制御方法
JPH05165719A (ja) * 1991-12-18 1993-07-02 Nec Eng Ltd メモリアクセス処理装置
JPH07295883A (ja) * 1994-04-28 1995-11-10 Fujitsu Ltd 情報処理装置
JP2000020397A (ja) 1998-07-03 2000-01-21 Pfu Ltd キャッシュメモリ制御装置
JP2006040175A (ja) * 2004-07-29 2006-02-09 Fujitsu Ltd キャッシュメモリ装置およびキャッシュメモリ制御方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6792568B2 (en) * 2001-07-31 2004-09-14 Hewlett Packard Development Co. Lp Data transfer and storage device and method

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5693163A (en) * 1979-12-25 1981-07-28 Fujitsu Ltd Buffer access control system
JPS60189553A (ja) * 1984-03-09 1985-09-27 Hitachi Ltd バッファメモリ制御方法
JPH05165719A (ja) * 1991-12-18 1993-07-02 Nec Eng Ltd メモリアクセス処理装置
JPH07295883A (ja) * 1994-04-28 1995-11-10 Fujitsu Ltd 情報処理装置
JP2000020397A (ja) 1998-07-03 2000-01-21 Pfu Ltd キャッシュメモリ制御装置
JP2006040175A (ja) * 2004-07-29 2006-02-09 Fujitsu Ltd キャッシュメモリ装置およびキャッシュメモリ制御方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP1988466A4

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013084315A1 (ja) * 2011-12-07 2013-06-13 富士通株式会社 演算処理装置、及び、演算処理装置の制御方法
WO2013084314A1 (ja) * 2011-12-07 2013-06-13 富士通株式会社 演算処理装置及び演算処理装置の制御方法

Also Published As

Publication number Publication date
JPWO2007096998A1 (ja) 2009-07-09
EP1988466A1 (en) 2008-11-05
US20080320227A1 (en) 2008-12-25
EP1988466A4 (en) 2009-12-23

Similar Documents

Publication Publication Date Title
JP4297968B2 (ja) コヒーレンシ維持装置およびコヒーレンシ維持方法
EP1622007B1 (en) Information processing apparatus and software pre-fetch control method
WO2007096998A1 (ja) キャッシュメモリ装置およびキャッシュメモリ制御方法
JP4608011B2 (ja) 演算処理装置および演算処理方法
JP5526626B2 (ja) 演算処理装置およびアドレス変換方法
JP4673584B2 (ja) キャッシュメモリ装置、演算処理装置及びキャッシュメモリ装置の制御方法
JP6273733B2 (ja) 演算処理装置、情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム
US10083126B2 (en) Apparatus and method for avoiding conflicting entries in a storage structure
JPH07295886A (ja) 階層メモリ、階層メモリを有するコンピュータ・システムおよび階層メモリ管理方法
JP4574712B2 (ja) 演算処理装置、情報処理装置及び制御方法
JPS6135584B2 (ja)
KR102346255B1 (ko) 조건부 메모리 액세스 프로그램 명령에 대한 허가 제어
JP2013097671A (ja) アドレス変換装置、アドレス変換装置の制御方法及び演算処理装置
US6810473B2 (en) Replacement algorithm for a replicated fully associative translation look-aside buffer
US9189432B2 (en) Apparatus and method for predicting target storage unit
JP7470112B2 (ja) 持続性メモリクリーニング
WO2021059198A1 (en) Circuitry and method
JP6337570B2 (ja) 演算処理装置及び演算処理装置の制御方法
JPH04363738A (ja) キャッシュメモリ装置
JPH08249228A (ja) データ処理装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
ENP Entry into the national phase

Ref document number: 2008501551

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2006714614

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE