WO2012029137A1 - Computing device, information processing device and method of controlling computing device - Google Patents

Computing device, information processing device and method of controlling computing device Download PDF

Info

Publication number
WO2012029137A1
WO2012029137A1 PCT/JP2010/064846 JP2010064846W WO2012029137A1 WO 2012029137 A1 WO2012029137 A1 WO 2012029137A1 JP 2010064846 W JP2010064846 W JP 2010064846W WO 2012029137 A1 WO2012029137 A1 WO 2012029137A1
Authority
WO
WIPO (PCT)
Prior art keywords
entry
storage unit
unit
data
error
Prior art date
Application number
PCT/JP2010/064846
Other languages
French (fr)
Japanese (ja)
Inventor
坂田 英樹
Original Assignee
富士通株式会社
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 富士通株式会社 filed Critical 富士通株式会社
Priority to PCT/JP2010/064846 priority Critical patent/WO2012029137A1/en
Publication of WO2012029137A1 publication Critical patent/WO2012029137A1/en

Links

Images

Classifications

    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis
    • 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

Definitions

  • the present invention relates to an arithmetic processing device, an information processing device, and a control method for the arithmetic processing device.
  • the following is known as a buffer storage device for storing a copy of a part of the storage contents of the main storage device. That is, when an error (error) occurs during the write operation to the main storage device, the error control circuit writes the data to the predicted data array and the address to the predicted address array. In response to a read / write request to the buffer storage device, the request address is compared with the address of the predicted address array, and if they match, the data of the predicted data array is read or the write data sent from the central processing unit Write.
  • error error
  • an information processing apparatus having a buffer storage that contains a copy of a part of the storage contents of the main storage device and a second tag that is a copy of a tag that stores address information of data stored in the buffer storage. It has been.
  • the buffer storage corresponding to the way in which the fixed failure has occurred and the way of the second tag are not separated, and only the way of the tag failure is separated.
  • the data stored in the buffer storage is used for hit detection by referring to the second tag.
  • a degeneration control device that controls degeneration of a cache memory having a plurality of ways based on the occurrence of an error with respect to an access request.
  • the degeneration control device stores cache line degeneration information indicating the presence / absence of degeneration for each cache line of a plurality of ways, and if an error that occurs in response to an access request satisfies a predetermined condition, a predetermined For each cache line, cache line degeneration information indicating degeneration is written.
  • an information processing device and a control method for the arithmetic processing device that can continue to be used without degenerating the entry in which an error has occurred even when an error occurs in an entry of a storage unit that stores data With the goal.
  • the arithmetic processing apparatus includes an arithmetic unit that performs an operation on data read from a first storage unit that stores data, and a second storage unit that stores data read by the arithmetic unit.
  • the arithmetic processing unit further includes a third storage unit that stores address information in the first storage unit of the data stored in the second storage unit.
  • the arithmetic processing unit searches the third storage unit for an entry that stores address information of data corresponding to the access request from the arithmetic unit. Then, the data corresponding to the access request is read out from the entry in the second storage unit that stores the data associated with the retrieved entry in the third storage unit, and transferred to the arithmetic unit.
  • inspection part It is a figure which shows an example of a structure of the directory storage part shown by FIG. It is a figure which shows an example of a structure of the data storage part shown by FIG. It is a figure which shows an example of the data structure of each entry of the directory storage part shown by FIG. It is a flowchart which shows an example of the flow of a process of the secondary cache control part shown by FIG. It is a flowchart which shows the example of the flow of a process of duplication of an entry.
  • FIG. 10 is a diagram illustrating an example of a data structure of a directory storage unit for describing a configuration of a first modification of the first embodiment.
  • FIG. 10 is a diagram illustrating an example of a data structure of a data storage unit for describing a configuration of a first modification of the first embodiment. It is a figure which shows an example of the data structure of each entry of the directory storage part for demonstrating the structure of the modification 1 of Example 1.
  • FIG. 10 is a flowchart showing another example of the operation flow for duplicating entries in the second modification of the first embodiment.
  • a cache memory entry is duplicated upon detection of a 1-bit error such as a parity error.
  • a 1-bit error such as a parity error.
  • 1-bit error detection is performed so that data protected by ECC (Error Correcting Code) does not fall into an error state such as a 2-bit error that is not correctable by ECC and is not a 1-bit error that can be corrected by ECC.
  • ECC Error Correcting Code
  • a method of degenerating an entry in the cache memory in which an error has occurred can be considered.
  • this method when errors frequently occur in the same index of the cache memory, the performance of the cache memory can be degraded by degenerating the entry in which the error occurred.
  • the entry in which a 1-bit error is detected in the cache memory is duplicated.
  • the cache memory used is an n-way set associative type.
  • the cache memory is divided into n blocks (that is, ways) so that the cache memory hits a plurality of data having the same address (index). Refers to the method.
  • duplication of entries data or information stored in an entry is copied and stored in another entry. By duplicating entries, the same data is duplicated and stored in two entries (hereinafter referred to as a pair of entries) of the entry where the data was originally stored and the other entry.
  • any entry can be used except for an entry that has already been degenerated and a pair entry that has already been duplicated.
  • the above entry duplication can be executed when a 1-bit error first occurs after starting the CPU core for the cache memory entry.
  • the counter counts the number of times a 1-bit error has been detected since the start of the CPU core, and obtains the number of times a 1-bit error has been detected. A negative decision may be made.
  • the data write-back means that when the data in the upper storage device is rewritten, the rewritten data is transferred immediately to the lower main storage device, and the corresponding data in the lower storage device is transferred by the rewritten data. Say to overwrite. Writing back is also referred to as write-back.
  • the capacity of the cache memory is halved with respect to the index. Not too much.
  • the capacity of the cache memory will end up with 1 entry for the index where the error is detected. .
  • the availability of the system can be improved while minimizing the degradation of the system performance.
  • FIG. 1 is a block diagram showing an example of the configuration of an information processing apparatus according to an embodiment.
  • the information processing apparatus includes a CPU core 100 (processor core block) that is an example of an arithmetic unit, a secondary cache control unit 200, and a main storage device 300 (main memory) that is an example of a first storage unit.
  • the CPU core 100 and the secondary cache control unit 200 constitute a processor which is an example of an arithmetic processing unit.
  • the CPU core 100 includes an instruction execution unit 101 and a primary cache unit 102.
  • the instruction execution unit 101 retrieves an instruction from the main storage device 300 via the primary cache unit 102 and the secondary cache control unit 200, and executes the retrieved instruction. Further, the instruction execution unit 101 reads data from the main storage device 300 via the primary cache unit 102 and the secondary cache control unit 200 and performs an operation using the data.
  • the primary cache unit 102 In response to a request from the instruction execution unit 101, the primary cache unit 102 reads data stored therein and transfers it to the instruction execution unit 101. When the primary cache unit 102 does not store data corresponding to the request from the instruction execution unit 101, the primary cache unit 102 requests the secondary cache control unit 200 to read data.
  • the secondary cache control unit 200 includes a secondary cache directory unit 201 and a secondary cache data unit 202. In response to the request from the primary cache unit 102, the secondary cache control unit 200 reads the data stored in the secondary cache data unit 202 and transfers the data to the primary cache unit 102. When the secondary cache control unit 200 does not store the corresponding data, the secondary cache control unit 200 reads the data from the main storage device 300 and transfers it to the primary cache unit 102.
  • the secondary cache directory unit 201 includes a directory storage unit 2011 that stores information related to data stored in the secondary cache data unit 202 (described later with reference to FIG. 4), and a directory checking unit 203.
  • the directory storage unit 2011 will be described later with reference to FIG. 3A.
  • the directory checking unit 203 reads data from the secondary cache data unit 202 in response to a request from the CPU core 100, the directory checking unit 203 detects a 1-bit error or 2-bit error in the directory storage unit 2011 by error detection and correction using ECC. The detected 1-bit error is corrected. Details of the directory checking unit 203 will be described later with reference to FIG.
  • the secondary cache data unit 202 has a data storage unit 2021 for storing data and a data inspection unit 204.
  • the data storage unit 2021 will be described later with reference to FIG. 3B.
  • the data checking unit 204 reads data in response to a request from the CPU core 100, the data checking unit 204 detects a 1-bit error or 2-bit error in the data storage unit 2021, corrects the detected 1-bit error, and corrects the data. Is transferred to the CPU core 100. Details of the data inspection unit 204 will be described later with reference to FIG.
  • the directory checking unit 203 includes an error checking unit 2031, an error adding unit 2032, a directory error correcting unit 2033, a hit Way checking unit 2034, and a directory updating unit 2035.
  • the error checking unit 2031 detects an error in the entry of the directory storage unit 2011 related to the read request from the CPU core 100 when reading data from the secondary cache data unit 202 in response to the read request from the CPU core 100. .
  • the error adding unit 2032 counts the number of detections of the 1-bit error detected by the error checking unit 2031 and the 1-bit error detected in the data storage unit 2021 detected by the error checking unit 2041 of the data checking unit 204 described later.
  • the directory error correction unit 2033 corrects a 1-bit error among the errors detected by the error checking unit 2031.
  • the hit way inspection unit 2034 searches the directory storage unit 2011 and obtains an entry in the directory storage unit 2011 related to the read request from the CPU core 100.
  • the directory update unit 2035 updates the contents of the directory storage unit 2011. As an example, when new data is stored in the data storage unit 2021, the directory update unit 2035 stores information on the new data in a corresponding entry of the directory storage unit 2011.
  • the data inspection unit 204 includes an error inspection unit 2041, a data error correction unit 2043, and a data selection unit 2046.
  • the error checking unit 2041 detects an error in the read entry when reading data from the entry of the data storage unit 2021 in response to a read request from the CPU core 100.
  • the data error correction unit 2043 corrects a 1-bit error among the errors detected by the error checking unit 2041.
  • the data selection unit 2046 reads data from the entry selected from the data storage unit 2021 corresponding to the entry of the directory storage unit 2011 obtained by the search by the hit way inspection unit 2034.
  • FIG. 3A shows an example of the data structure of the directory storage unit 2011.
  • FIG. 3B shows an example of the data structure of the data storage unit 2021.
  • the entry in the directory storage unit 2011 and the entry in the data storage unit 2021 are in a one-to-one correspondence. That is, entries of index i and way j (i and j are positive integers) in the directory storage unit 2011 of FIG. 3A correspond to entry i of index i and way 0 of the data storage unit 2021 of FIG. 3B.
  • the entry A of index 0 and way 0 in the directory storage unit 2011 in FIG. 3A corresponds to the entry A ′ of index 0 and way 0 in the data storage unit 2021 in FIG. 3B.
  • the entry B of index 0 and way 1 in the directory storage unit 2011 in FIG. 3A corresponds to the entry B ′ of index 0 and way 1 in the data storage unit 2021 in FIG. 3B.
  • the entries of index i and way j in the directory storage unit 2011 store information regarding data stored in the entries of index i and way j in the corresponding data storage unit 2021.
  • Each entry of the directory storage unit 2011 has a storage capacity of about several tens of bits, for example, and each entry of the data storage unit 2021 has a storage capacity of about several tens of bytes to several hundreds of bytes, for example.
  • FIG. 4 shows an example of the data structure of each entry in the directory storage unit 2011.
  • Each entry in the directory storage unit 2011 includes fields of a physical address part 400, a status 401, a primary cache unit 102 status 402, a duplex flag 403, a way number 404, a degeneration flag 405, an error count 406, and an ECC 407.
  • a field of a part 400 of the physical address is a field of the directory storage unit 2011 among addresses (address information) in the main storage device 300 of data stored in the entry of the data storage unit 2021 corresponding to the entry of the directory storage unit 2011.
  • one way (Way) is obtained from the ways (0 to n) of the directory storage part 2011. .
  • one entry is obtained by the index and way.
  • the field of status 401 stores information indicating the state of data stored in the entry of the data storage unit 2021 corresponding to the entry of the directory storage unit 2011. Specifically, “00” (invalid) indicates a state where data is not yet stored. “10” (clean) indicates that data that matches the data in the main storage device 300 is stored, and “11” (dirty) stores data that does not match the data in the main storage device 300. Indicates the state. For example, when data corresponding to a request from the CPU core 100 is read from the main storage device 300 and transferred to the CPU core 100, the data is stored in the data storage unit 2021. Immediately thereafter, the data storage unit 2021 stores data that matches the data in the main storage device 300.
  • the primary cache status 402 field indicates the status of the corresponding data stored in the primary cache unit 102.
  • “00” (non-existent) indicates a state in which the corresponding data does not exist in the primary cache unit 102.
  • “00” (not present) is stored in the field of the primary cache status 402.
  • “10” (clean) indicates that the corresponding data exists in the primary cache unit 102 and matches the data in the data storage unit 2021. For example, when data is read from the data storage unit 2021 and transferred to the CPU core 100 in response to a request from the CPU core 100, the data is stored in the primary cache unit 102.
  • the data stored in the temporary cache unit 102 matches the data in the data storage unit 2021. Therefore, if the data match, “10” (clean) is stored in the field of the primary cache status 402. “11” (possibility of “dirty”) indicates a state in which data corresponding to the primary cache unit 102 exists and may not match the data stored in the data storage unit 2021. For example, it is assumed that information indicating that there is a possibility of rewriting corresponding data is obtained from the CPU core 100. In such a case, if the corresponding data is rewritten in the primary cache unit 102 and the rewritten data is not written back to the data storage unit 2021, the data in the primary cache unit 102 does not match the data in the data storage unit 2021. . Therefore, in this case, “11” (possibility of dirty) is stored in the field of the primary cache status 402.
  • the field of the duplex flag 403 stores information indicating whether the entry in the directory storage unit 2011 is one of the paired entries. “01010” indicates a state in which the entry is not duplicated. “10101” indicates a state in which the entry is one of a pair of duplicate entries.
  • the field of the duplicated way number 404 stores information indicating the number of the partner entry of the pair entry when the entry in the directory storage unit 2011 is duplicated.
  • the field of the degeneration flag 405 stores information indicating whether or not the entry in the directory storage unit 2011 is degenerated. “01010” indicates a state that is not degenerated, and “10101” indicates a state that is not degenerated.
  • the error count 406 field stores information indicating the number of detections of a 1-bit error detected by the error checking unit 2031 or 2041 when reading from an entry in the directory storage unit 2011 or a corresponding entry in the data storage unit 2021. The number of error detections is counted by the error adder 2032.
  • an error correction code (Error Correcting ⁇ Code) is stored.
  • the directory storage unit 2011 and the data storage unit 2021 are protected by error correction codes.
  • the error checking unit 2031 detects an error in the entry in the directory storage unit 2011, if the error is a 1-bit error, the directory error correction unit 2033 corrects the 1-bit error.
  • the error checking unit 2041 detects an error in the entry of the data storage unit 2021, if the error is a 1-bit error, the data error correction unit 2043 corrects the 1-bit error.
  • FIG. 5 is a flowchart showing an example of the processing flow of the secondary cache control unit 200 shown in FIG.
  • step S102 When a read request is received from the CPU core 100 (Yes in step S101), the process proceeds to step S102.
  • the processing in FIG. In step S102, if the hit way inspection unit 2034 searches the directory storage unit 2011 and can obtain an entry related to the read request (hit), the process proceeds to step S103.
  • step S103 the data selection unit 2046 selects an entry in the data storage unit 2021 corresponding to the entry in the directory storage unit 2011 obtained by the hit way inspection unit 2034, reads the data from the selected entry, and proceeds to step S108. At that time, “10” (clean) is stored in the primary cache status 402 in the entry of the directory storage unit 2011 (update of the directory).
  • step S108 the data selection unit 2046 selects the entry, and the data selection unit 2046 transfers the data read from the selected entry to the CPU core 100, and the flow in FIG. 5 ends.
  • step S104 the directory update unit 2035 performs entry invalidation processing in the directory storage unit 2011 and the data storage unit 2021, and proceeds to step S105.
  • the entry that has been invalidated is used when data is stored in step S107 described later.
  • an entry to be invalidated in step S104 for example, an entry of LRU (Least Recently Used), an entry of the youngest way whose status 401 is “00” (invalid), and the like can be used.
  • the entry of LRU means the entry having the longest access time. The invalidation process will be described later with reference to FIG.
  • step S105 the data selection unit 2056 requests the data related to the read request from the CPU core 100 to the main storage device 300, and proceeds to step S106.
  • step S ⁇ b> 106 the data selection unit 2056 determines whether the requested data has been transferred from the main storage device 300. If the data related to the request is transferred from the main storage device 300, the process proceeds to step S107. If not transferred, the process returns to step S106.
  • step S107 the data selection unit 2046 stores the transferred data in the entry of the data storage unit 2021, and proceeds to step S108. At this time, the directory update unit 2035 stores information related to the stored data in the directory storage unit 2011.
  • step S108 the data selection unit 2046 transfers the data transferred from the main storage device 300 to the CPU core 100, and the flow of FIG.
  • FIG. 6 is a flowchart showing a process flow of entry duplication.
  • the directory update unit 2035 proceeds to step S2 when the error checking unit 2031 or the error checking unit 2041 detects a 1-bit error for an entry that is not duplicated (Yes in step S1). On the other hand, when a 1-bit error is not detected (No in step S1), the processing in FIG. 6 is terminated.
  • step S2 the directory update unit 2035 determines whether or not the error detection count indicated by the error count 406 exceeds a specified value (error threshold) for the entry in which the 1-bit error is detected. If the number of error detections does not exceed the specified value, the process proceeds to step S3. If the number of error detections exceeds the specified value, the process proceeds to step S4.
  • error threshold a specified value for the entry in which the 1-bit error is detected.
  • step S3 the error addition unit 2032 adds “1” to the error detection count stored in the error count 406 field, and ends the process of FIG.
  • step S4 the directory updating unit 2035 determines whether there is an entry on the same index that can be used as an entry on the other side (the other side) of the paired entry in order to duplicate the entry.
  • the entry on the other side of the paired entry the entry of the next way number (neighboring), the entry of the LRU, the entry of the youngest way with the status “00” (invalid), and the like can be used.
  • duplicated entries and degenerated entries are not targeted for duplication.
  • the entry in which the 1-bit error is detected is degenerated and the duplex process is not performed.
  • the entry in which a 1-bit error is detected is the last entry on the same index, neither degeneration nor duplication is performed.
  • step S4 when there is no entry on the same index that can be used as a partner entry to be duplicated in the paired entry (No), the process proceeds to step S5.
  • step S5 the directory update unit 2035 determines whether the entry in which the 1-bit error is detected is the last entry on the same index. If it is not the last entry on the same index (No), the entry in which the 1-bit error is detected is invalidated and degenerated (step S6), and the process of FIG. 6 is terminated. On the other hand, if it is the last entry on the same index (Yes in step S5), the processing of FIG. 6 is terminated without doing anything.
  • step S4 when there is an entry that can be used as the entry on the other side of the pair entry on the same index (Yes), the process proceeds to step S7.
  • step S7 the directory update unit 2035 determines whether the status 401 of the usable entry is “00” (invalid). That is, it is determined whether a usable entry is used for data storage. If the status 401 is “00” (invalid) (Yes in step S7), the usable entry is not used for data storage, and the process proceeds to step S9. If the status 401 is not “00” (invalid) (No in step S7), the usable entry is used for data storage, and the process proceeds to step S8.
  • step S8 the directory update unit 2035 performs entry invalidation processing, which will be described later with reference to FIG. 7, and then proceeds to step S9. That is, when a usable entry is used for storing data, the usable entry is invalidated. The invalidated entry is used as a partner to be duplexed (step S9).
  • step S9 the directory update unit 2035 copies (duplicates) the data or information of the entry in which the 1-bit error is detected to the usable entry, and duplicates the entry.
  • “information” simply copied includes, for example, information on the following fields among the fields of the entry in the directory storage unit 2011 shown in FIG. That is, information stored in each field of the physical address part 400, the status 401, the primary cache status 402, the duplex flag 403, and the degeneration flag 405 can be cited.
  • the entry in which the 1-bit error is detected in step S1 is the entry in the data storage unit 2021, the entry in which the 1-bit error is detected is duplicated and the corresponding entry in the directory storage unit 2011 is duplicated. At the same time.
  • step S1 if the entry in which a 1-bit error is detected in step S1 is an entry in the directory storage unit 2011, the entry in the corresponding data storage unit 2021 is also duplexed at the same time as the entry is duplexed.
  • the directory error correction unit 2033 or the data error correction unit 2043 determines that the 1-bit error in the data or information of the entry in which the 1-bit error is detected. Correct the error.
  • “10101” (duplexed) is stored in the field of the duplex flag 403 of the entry in which the 1-bit error is detected and the entry on the other side of the duplex, and the field of the way number 404 is duplexed. Stores the other party's way number.
  • FIG. 7 is a flowchart showing the flow of entry invalidation processing performed in step S104 of FIG. 3 and step S8 of FIG.
  • step S21 the directory update unit 2035 determines whether the entry to be invalidated is not used for data storage (invalid). That is, it is determined whether or not the status 401 related to the entry to be invalidated is “00” (invalid). If the entry to be invalidated is not used for data storage (invalid) (invalid), the entry to be invalidated is in the invalidated state (invalid), and the processing in FIG. 7 ends.
  • step S22 the directory update unit 2035 determines whether or not the CPU core 100 stores data corresponding to the data stored in the entry to be invalidated. That is, it is determined whether or not the primary cache status 402 is “10” (clean) or “11” (possibility of dirty). If the primary cache status 402 is “00” (invalid) (No in step S22), the process proceeds to step S27. If the primary cache status 402 is “10” (clean) or “11” (possibility of dirty) (Yes in step S22), the process proceeds to step S23.
  • step S23 the directory update unit 2035 first requests the CPU core 100 to invalidate the corresponding data. This is to ensure data consistency (cache coherency) between the primary cache unit 102 and the secondary cache control unit 200.
  • the primary cache unit 102 of the CPU core 100 receives the data invalidation request, and determines whether or not the corresponding data for which the invalidation is requested matches the data stored in the secondary cache control unit 200 (clean).
  • Step S24 For example, it is assumed that the data stored in the primary cache unit 102 is rewritten and the data stored in the secondary cache control unit 200 is not written back to the rewritten data. In this case, the data stored in the primary cache unit 102 does not match the data stored in the secondary cache control unit 200 (dirty).
  • step S24 When the data stored in the primary cache unit 102 does not match the data stored in the secondary cache control unit 200 (dirty) (No in step S24), the process proceeds to step S25. On the other hand, when the data stored in the primary cache unit 102 matches (clean) the data stored in the secondary cache control unit 200 (Yes in step S24), the process proceeds to step S26.
  • step S25 the primary cache unit 102 writes back the data requested to be invalidated to the secondary cache control unit 200.
  • the data stored in the primary cache unit 102 matches the data stored in the secondary cache control unit 200 (clean).
  • step S26 the primary cache unit 102 invalidates the data requested to be invalidated in the primary cache unit 102, and proceeds to step S27.
  • step S27 the directory update unit 2035 determines whether or not the data related to the invalidated entry matches (clean) the corresponding data in the main storage device 300. That is, it is determined whether the status 401 is “10” (clean) or “11” (dirty). If the data matches the data in the main storage device 300 (clean) (Yes in step S27), that is, if the status 401 is “10”, the process proceeds to step S29. If the data does not match the data in the main storage device 300 (dirty) (No in step S27), that is, if the status 401 is “11”, the process proceeds to step S28.
  • step S28 the directory update unit 2035 writes back the data related to the entry to be invalidated to the main storage device 300. As a result, it matches the data in the data main storage device 300 related to the entry to be invalidated (clean).
  • step S29 the directory update unit 2035 invalidates the data related to the entry to be invalidated. That is, “00” (invalid) is stored in the status 401 related to the entry to be invalidated in the directory storage unit 2011. After step S29 ends, the process of FIG. 7 ends.
  • FIG. 8 is a flowchart showing a flow of processing when data is read from the secondary cache control unit 200.
  • step S41 the data selection unit 2046 determines whether the error checking unit 2031 or the error checking unit 2041 has detected a 2-bit error in the directory storage unit 2011 or the data storage unit 2021.
  • step S42 the process proceeds to step S42.
  • step S43 the process proceeds to step S43.
  • step S43 the data selection unit 2046 determines whether the error checking unit 2031 or the error checking unit 2041 has detected a 1-bit error. If a 1-bit error is not detected (No in step S43), the data read from the entry is transferred to the CPU core 100, and the process of FIG. If a 1-bit error is detected (Yes in step S43), the process proceeds to step S44.
  • step S44 the directory error correction unit 2033 or the data error correction unit 2043 corrects the 1-bit error, and stores (rewrites) the corrected data or information in the directory storage unit 2011 or the data storage unit 2021. Then, the data selection unit 2046 transfers the read data (or the 1-bit error is corrected in step S44) to the CPU core 100, and ends the process of FIG.
  • step S41 if a 2-bit error is detected in step S41 (Yes), the process proceeds to step S42.
  • step S42 the directory selection unit 2046 determines whether the entry in which the 2-bit error is detected is duplicated. If the entry in which the 2-bit error is detected in step S42 is not duplicated (No), the process proceeds to step S48.
  • step S48 the data selection unit 2046 reports to the CPU core 100 that the data related to the read request has an uncorrectable error, and ends the process of FIG.
  • step S42 If the entry in which the 2-bit error is detected in step S42 is duplicated (Yes), the process proceeds to step S45.
  • the hit way checking unit 2034 first finds a 2-bit error among the duplicated entries as a result of the search. Get one entry where is detected.
  • step S45 the directory selection unit 2046 degenerates one entry in which the 2-bit error is detected, and proceeds to step S46.
  • step S46 the directory selection unit 2046 selects an entry on the other side of the pair of entries and reads data from the selected entry. Then, the directory updating unit 2035 stores “01010” indicating the state of not being duplexed in the duplexing flag 403 related to the entry on the other side, cancels the duplexing, and proceeds to step S47.
  • step S47 the data selection unit 2046 determines whether the error check unit 2031 or the error check unit 2041 detects a 2-bit error in the directory storage unit 2011 or the data storage unit 2021 for the entry on the other side. If a 2-bit error is detected, the process proceeds to step S48. If no 2-bit error is detected, the process proceeds to step S43.
  • the ECC cannot be corrected because it is a 2-bit error, and part of the physical address 400 of the entry having the 2-bit error cannot be read.
  • the hit way inspection unit 2034 cannot obtain an entry by searching the directory storage unit 2011.
  • the directory storage unit 2011 detects a 2-bit error from one of the paired entries.
  • the hit way checking unit 2034 is a part of the physical address of the partner entry. 400 can be read. As a result, the hit way inspection unit 2034 can obtain data held in the entry in response to a read request from the CPU core 100. Therefore, when the following three conditions (1), (2), and (3) are satisfied, it is determined that degeneration of an entry in which a 2-bit error is detected and duplication of an entry in which an error is detected need to be eliminated. be able to. (1) The hit way inspection unit 2034 has only one entry obtained by the search. (2) The entries obtained by the search are duplicated. (3) On the same index as the entry obtained by the search, a 2-bit error is detected in the way (entry side entry) indicated by the field of the way number 404 of the entry obtained by the search.
  • the duplex flag 403 is multiplexed and a 2-bit error is generated inside the duplication flag 403. It is desirable to be able to correct the above.
  • multiplexing means increasing information redundancy.
  • the duplex flag is 5 bits of “01010” and “10101”, but 1 bit is sufficient. By setting this to 5 bits, the redundancy becomes quadruple, and even if 2 bits of the 5 bits are inverted, it can be determined whether the remaining 3 bits are duplicated (majority decision). Therefore, it is possible to correct up to a 2-bit error.
  • replace refers to processing as in steps S104, S105, S106, and S107 of FIG. That is, when data is read from the main storage device 300 (S105, S106) and stored in the secondary cache control unit 200 (S107), an entry invalidation process is performed to secure an entry used for storage. (S104). Then, the data read from the main storage device 300 is stored in the invalidated entry (S107).
  • the first modification of the first embodiment has substantially the same configuration as the first embodiment described above. Therefore, differences from the first embodiment will be mainly described, and the same description as in the first embodiment will be omitted as appropriate.
  • FIGS. 3A and 3B show examples of the data structures of the directory storage unit 2011 and the data storage unit 2021 corresponding to the above-described FIGS. 3A and 3B, respectively.
  • the first modification of the first embodiment is different from the first embodiment in that a correspondence relationship between the directory storage unit 2011 and the data storage unit 2021 is provided for a pair of duplicated entries by providing an exchange flag 409 described later with reference to FIG. It is possible to exchange the other party. That is, for example, in each of the directory storage unit 2011 and the data storage unit 2021 shown in FIG. 3A and FIG. 3B described above, two adjacent entries, index 0, way 0 entry, and index 0, way 1 entry, Assume that the entry is duplicated to form a pair entry.
  • the correspondence relationship as shown in FIGS. 9A and 9B can be obtained. That is, in the correspondence after the exchange, the entry (A) of index 0 and way 0 in the directory storage unit 2011 corresponds to the entry (A ′) of index 0 and way 1 in the data storage unit 2021. An entry (B) of index 0 and way 1 in the directory storage unit 2011 corresponds to an entry (B ′) of index 0 and way 0 in the data storage unit 2021.
  • FIG. 9B unlike FIG.
  • the index 0 and way 0 entry (A) in the directory storage unit 2011 and the index 0 and way 1 entry in the data storage unit 2021 (B ′) is assumed to be a case where each entry becomes a target of degeneration by detecting, for example, a 2-bit error.
  • the entry (B) of the directory storage unit 2011 corresponding to the entry (B ′) of the data storage unit 2021 that is the target of degeneration is also the target of degeneration.
  • the entry (A ′) of the data storage unit 2021 corresponding to the entry (A) of the directory storage unit 2011 that is the target of degeneration is also the target of degeneration.
  • the number of entries to be degenerated can be minimized. That is, as described above, when duplication is performed in the state of FIGS. 3A and 3B, the index 0 and way 0 entry (A) in the directory storage unit 2011 and the index 0 and way 1 entry (B ′ in the data storage unit 2021) ) And are each subject to degeneration. In this case, as shown in FIGS. 9A and 9B, the counterpart of the correspondence relationship between the directory storage unit 2011 and the data storage unit 2021 is exchanged as follows for the pair of duplicated entries.
  • the entries that are subject to degeneration due to the detection of a 2-bit error will have a new correspondence relationship, and the other entries will have a new correspondence relationship.
  • the entry (B) of index 0 and way 1 in the directory storage unit 2011 and the entry (B ′) of index 0 and way 0 in the data storage unit 2021 correspond to each other.
  • the index 0 and way 1 entry (B) of the directory storage unit 2011 and the corresponding index 0 and way 0 entry (B ′) of the data storage unit 2021 can continue to be used.
  • FIG. 10 shows an example of the data structure of each entry in the directory storage unit 2011 that can be used in the first modification of the first embodiment.
  • each field of the directory error count 407 and the data error count 408 is included instead of the error count 406 field. Further, a field for the exchange flag 409 is newly included.
  • the field of the directory error frequency 407 stores the error detection frequency in the entry of the directory storage unit 2011 to which the field of the directory error frequency 407 belongs. That is, the number of times that the error checking unit 2031 has detected a 1-bit error when reading the entry of the directory storage unit 2011 to which the field of the directory error number 407 belongs is stored.
  • the field of the data error count 408 stores the number of times of error detection in the entry of the data storage unit 2021 corresponding to the entry of the directory storage unit 2011 to which the field of the data error count 408 belongs. That is, the number of times that the error checking unit 2041 has detected a 1-bit error when reading the entry of the data storage unit 2021 corresponding to the entry of the directory storage unit 2011 to which the field of the data error count 408 belongs is stored.
  • the directory storage unit 2011 and the data storage unit 2021 can individually indicate the number of error detections, and each of the entry of the directory storage unit 2011 and the entry of the data storage unit 2021 that was not initially associated with each other. This can be detected when the number of error detections exceeds the specified value. For example, the entry of index 0 and way 0 in the directory storage unit 2011 for each of the entry of index 0 and way 0 in the directory storage unit 2011 and the entry of index 0 and way 1 in the data storage unit 2021 that are not originally associated with each other. When the number of error detections of the entries of index 0 and way 1 in the data storage unit 2021 exceeds a specified value, this can be detected.
  • the field of the exchange flag 409 includes the directory storage unit 2011 and the data storage unit 2021 between the entries of the counterpart of the duplex pair when the entries of the directory storage unit 2011 and the data storage unit 2021 are duplexed.
  • the information which shows whether the other party of the correspondence relationship between is mutually exchanged is stored. “0” indicates a state where the counterparts of the correspondence relationship between the directory storage unit 2011 and the data storage unit 2021 are not exchanged with each other (for example, the state of FIGS. 3A and 3B). “1” indicates a state where the counterparts of the correspondence relationship between the directory storage unit 2011 and the data storage unit 2021 are exchanged with each other (for example, the states of FIGS. 9A and 9B).
  • the data selection unit 2046 performs the following processing. That is, from the entry selected by selecting the entry of the data storage unit 2021 corresponding to the entry of the other side of the duplex pair indicated by the field of the way number 404 of the entry of the directory storage unit 2011 obtained by the search by the hit way inspection unit 2034 Read data.
  • the data stored in each entry in the data storage unit 2021 matches (clean) with the data stored in the main storage device 300, it is an entry in the data storage unit 2021, which is not correctable by ECC. Even if a bit error occurs, it can be restored. That is, the same data can be restored in the data storage unit 2021 by reading the corresponding data from the main storage device 300.
  • the second modification of the first embodiment among the data stored in each entry of the data storage unit 2021, only the entry that stores data that does not match the data in the main storage device 300 (dirty) The entry is to be duplicated. That is, if a 1-bit error is detected when data is read from an entry that stores dirty data, the entry in which the error is detected is duplicated.
  • Steps S1 to S3 and Steps S4 to S9 correspond to Steps S1 to S3 and Steps S4 to S9 in FIG. 6, respectively, and have the same processing contents, and redundant description is omitted.
  • step S3A the directory update unit 2035 refers to the status 401 related to the entry in which the error detection count of the 1-bit error exceeds the specified value in step S2. Then, it is determined whether or not “11” indicating that the data of the entry of the data storage unit 2021 does not match (dirty) with the data of the main storage device 300 is stored. When “11” indicating that it does not match (dirty) with the data in the main storage device 300 is stored (Yes in step S3A), the process proceeds to step S4. On the other hand, if “11” indicating that it does not match (dirty) with the data in the main storage device 300 is not stored (No in step S3A), the processing in FIG. 11 is terminated.
  • the corresponding entry is duplicated (FIGS. 6 and 11) triggered by the detection of a 1-bit error.
  • all entries in the directory storage unit 2011 and the data storage unit 2021 may be duplicated from the beginning of the system without triggering detection of a 1-bit error.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

A computing device provided with a computing unit for computing the data read out from a first memory unit; a second memory unit for storing the data the computing unit read out; and a third memory unit for storing the address information of the data stored in the second memory unit, wherein the computing device searches from the third memory unit an entry for storing address information corresponding to an access request from the computing unit, reads out data from the entry of the second memory unit which stores data corresponding to the searched entry of the third memory unit and transfer the data to the computing unit, detects an error in the second memory unit or the third memory unit, and copies to other entries the data of the entry of the second memory unit associated with the detection of the error or the information of the entry of the third memory unit associated with the detection of the error.

Description

演算処理装置、情報処理装置、及び演算処理装置の制御方法Arithmetic processing apparatus, information processing apparatus, and control method for arithmetic processing apparatus
 本発明は、演算処理装置、情報処理装置、及び演算処理装置の制御方法に関する。 The present invention relates to an arithmetic processing device, an information processing device, and a control method for the arithmetic processing device.
 主記憶装置の記憶内容の一部の写しを記憶するバッファ記憶装置として以下のものが知られている。すなわち、主記憶装置への書き込み動作中に誤り(エラー)が発生した場合、誤り制御回路により、予測データアレイにデータを、予測アドレスアレイにアドレスを夫々書き込む。そして、バッファ記憶装置への読み出し、書き込み要求に対し、その要求アドレスと予測アドレスアレイのアドレスを比較し、一致すれば予測データアレイのデータを読み出し、又は、中央処理装置から送られてきた書き込みデータを書き込む。 The following is known as a buffer storage device for storing a copy of a part of the storage contents of the main storage device. That is, when an error (error) occurs during the write operation to the main storage device, the error control circuit writes the data to the predicted data array and the address to the predicted address array. In response to a read / write request to the buffer storage device, the request address is compared with the address of the predicted address array, and if they match, the data of the predicted data array is read or the write data sent from the central processing unit Write.
 又、主記憶装置の記憶内容の一部の写しを内蔵するバッファストレージと、バッファストレージに格納されたデータのアドレス情報を格納したタグの写しである第2のタグを備えた情報処理装置が知られている。情報処理装置では、タグの特定のウェイに固定故障が発生した場合に、固定故障が発生したウェイに対応するバッファストレージ及び第2のタグのウェイ切り離しを行わず、タグの故障発生ウェイのみを切り離す。そして、バッファストレージのアクセス時にタグにおいてヒットが検出されなかった際には第2のタグの参照によるヒット検出でバッファストレージの格納データを使用する。 Also, there is known an information processing apparatus having a buffer storage that contains a copy of a part of the storage contents of the main storage device and a second tag that is a copy of a tag that stores address information of data stored in the buffer storage. It has been. In the information processing apparatus, when a fixed failure occurs in a specific way of the tag, the buffer storage corresponding to the way in which the fixed failure has occurred and the way of the second tag are not separated, and only the way of the tag failure is separated. . When no hit is detected in the tag when accessing the buffer storage, the data stored in the buffer storage is used for hit detection by referring to the second tag.
 又、アクセス要求に対するエラーの発生に基づいて複数のウェイを有するキャッシュメモリの縮退を制御する縮退制御装置が知られている。縮退制御装置では、複数のウェイの夫々のキャッシュライン毎に縮退の有無を示すキャッシュライン縮退情報を記憶し、アクセス要求に対して発生したエラーが所定の条件を満たした場合は、エラーに係る所定のキャッシュラインにつき、縮退であることを示すキャッシュライン縮退情報を書き込む。 Further, a degeneration control device that controls degeneration of a cache memory having a plurality of ways based on the occurrence of an error with respect to an access request is known. The degeneration control device stores cache line degeneration information indicating the presence / absence of degeneration for each cache line of a plurality of ways, and if an error that occurs in response to an access request satisfies a predetermined condition, a predetermined For each cache line, cache line degeneration information indicating degeneration is written.
特開昭60-15758号公報Japanese Unexamined Patent Publication No. 60-15758 特開平2-293946号公報JP-A-2-293946 国際公開第WO2007/097027号International Publication No. WO2007 / 097027
 データを格納する記憶部のエントリにエラーが生じた場合でも、エラーが発生したエントリを縮退せずに引き続き使用可能とする演算処理装置、情報処理装置、及び演算処理装置の制御方法を提供することを目的とする。 To provide an arithmetic processing device, an information processing device, and a control method for the arithmetic processing device that can continue to be used without degenerating the entry in which an error has occurred even when an error occurs in an entry of a storage unit that stores data With the goal.
 実施例に係る演算処理装置は、データを格納する第1の記憶部から読み出されたデータに対する演算を行う演算部と、演算部が読み出したデータを格納する第2の記憶部を有する。演算処理装置は更に、第2の記憶部に格納されたデータの第1の記憶部におけるアドレス情報を格納する第3の記憶部を有する。演算処理装置は、第3の記憶部から演算部からのアクセス要求に対応するデータのアドレス情報を格納するエントリを検索する。そして検索した第3の記憶部のエントリに対応付けられたデータを格納する第2の記憶部のエントリからアクセス要求に対応するデータを読み出して演算部に転送する。そして第2の記憶部におけるエラーを検出し、エラーの検出に係る第2の記憶部のエントリのデータを他のエントリに複製する。又、第3の記憶部におけるエラーを検出し、エラーの検出に係る第3の記憶部のエントリの情報を他のエントリに複製する。 The arithmetic processing apparatus according to the embodiment includes an arithmetic unit that performs an operation on data read from a first storage unit that stores data, and a second storage unit that stores data read by the arithmetic unit. The arithmetic processing unit further includes a third storage unit that stores address information in the first storage unit of the data stored in the second storage unit. The arithmetic processing unit searches the third storage unit for an entry that stores address information of data corresponding to the access request from the arithmetic unit. Then, the data corresponding to the access request is read out from the entry in the second storage unit that stores the data associated with the retrieved entry in the third storage unit, and transferred to the arithmetic unit. Then, an error in the second storage unit is detected, and the data of the entry in the second storage unit related to the error detection is copied to another entry. Further, an error in the third storage unit is detected, and the information of the entry in the third storage unit related to the error detection is duplicated in another entry.
 第2の記憶部或いは第3の記憶部のエントリのデータ或いは情報の複製を行うことにより、エラーが生じたエントリを縮退せずに、演算処理装置又は情報処理装置を引き続き使用することが可能となる。したがってエラー発生時のシステムの性能低下を抑えつつ、可用性を向上させることができる。 By duplicating the data or information of the entry in the second storage unit or the third storage unit, it is possible to continue using the arithmetic processing unit or the information processing unit without degenerating the entry in which the error has occurred. Become. Therefore, it is possible to improve availability while suppressing a decrease in system performance when an error occurs.
実施例によるプロセッサ(演算処理装置)の構成の一例を示すブロック図である。It is a block diagram which shows an example of a structure of the processor (arithmetic processing apparatus) by an Example. 図1に示されるディレクトリ検査部及びデータ検査部の夫々の内部構成の一例を示すブロック図である。It is a block diagram which shows an example of each internal structure of the directory test | inspection part shown by FIG. 1, and a data test | inspection part. 図1に示されるディレクトリ格納部の構成の一例を示す図である。It is a figure which shows an example of a structure of the directory storage part shown by FIG. 図1に示されるデータ格納部の構成の一例を示す図である。It is a figure which shows an example of a structure of the data storage part shown by FIG. 図1に示されるディレクトリ格納部の各エントリのデータ構造の一例を示す図である。It is a figure which shows an example of the data structure of each entry of the directory storage part shown by FIG. 図1に示される二次キャッシュ制御部の処理の流れの一例を示すフローチャートである。It is a flowchart which shows an example of the flow of a process of the secondary cache control part shown by FIG. エントリの二重化の処理の流れの例を示すフローチャートである。It is a flowchart which shows the example of the flow of a process of duplication of an entry. エントリの無効化の処理の流れの例を示すフローチャートである。It is a flowchart which shows the example of the flow of a process of invalidating an entry. エントリから読み出しを行う処理の流れの例を示すフローチャートである。It is a flowchart which shows the example of the flow of the process which reads from an entry. 実施例1の変形例1の構成を説明するための、ディレクトリ格納部のデータ構造の一例を示す図である。FIG. 10 is a diagram illustrating an example of a data structure of a directory storage unit for describing a configuration of a first modification of the first embodiment. 実施例1の変形例1の構成を説明するための、データ格納部のデータ構造の一例を示す図である。FIG. 10 is a diagram illustrating an example of a data structure of a data storage unit for describing a configuration of a first modification of the first embodiment. 実施例1の変形例1の構成を説明するための、ディレクトリ格納部の各エントリのデータ構造の一例を示す図である。It is a figure which shows an example of the data structure of each entry of the directory storage part for demonstrating the structure of the modification 1 of Example 1. FIG. 実施例1の変形例2におけるエントリの二重化の動作の流れの他の例を示すフローチャートである。10 is a flowchart showing another example of the operation flow for duplicating entries in the second modification of the first embodiment.
 以下に本発明の実施例の説明を行う。 Hereinafter, examples of the present invention will be described.
 実施例1によれば、CPU(Central Processing Unit)コアと主記憶装置との間に設けられるキャッシュメモリを使用するシステムにおいて、パリティエラー等の1ビットエラーの検出を契機にキャッシュメモリのエントリを二重化することにより、エラー発生時のシステムの性能低下を抑えつつ、可用性を高めることができる。ここで「キャッシュメモリのエントリを二重化する」とは、キャッシュメモリの1つのエントリに保持されているデータを、キャッシュメモリに元から存在する他のエントリにコピー(複製)することを意味する。 According to the first embodiment, in a system that uses a cache memory provided between a CPU (Central Processing Unit) core and a main storage device, a cache memory entry is duplicated upon detection of a 1-bit error such as a parity error. By doing so, it is possible to increase availability while suppressing a decrease in system performance when an error occurs. Here, “duplicating a cache memory entry” means copying (duplicating) data held in one entry of the cache memory to another entry originally existing in the cache memory.
 情報処理装置を使用したコンピュータシステムにおいて、可用性を高めるため、重大な障害に発展する潜在的な要因を予め排除することが望ましい。例えばECC(Error Correcting Code)によって保護されたデータが、ECCでは訂正可能な1ビットエラーではなく、ECCでは訂正不能な2ビットエラー等のエラー状態に陥ることがないように、1ビットエラーの検出回数に基づき、エラーが発生したキャッシュメモリのエントリを縮退させる方法が考えられる。しかしながらこの方法によれば、キャッシュメモリの同一インデックス(index)においてエラーが頻発した場合、エラーが発生したエントリが縮退されることによりキャッシュメモリの性能低下が生じ得る。 In a computer system that uses an information processing device, it is desirable to eliminate in advance potential factors that can lead to serious failures in order to increase availability. For example, 1-bit error detection is performed so that data protected by ECC (Error Correcting Code) does not fall into an error state such as a 2-bit error that is not correctable by ECC and is not a 1-bit error that can be corrected by ECC. Based on the number of times, a method of degenerating an entry in the cache memory in which an error has occurred can be considered. However, according to this method, when errors frequently occur in the same index of the cache memory, the performance of the cache memory can be degraded by degenerating the entry in which the error occurred.
 実施例1によれば、キャッシュメモリにおいて1ビットエラーが検出されたエントリを二重化する。その結果、1ビットエラーが検出された時点ではエントリの縮退を行う必要がなく、2ビットエラーが検出された時点でエントリの縮退を行えば済む。したがってシステムの性能低下を極力抑えながら、システムの可用性を高めることができる。 According to the first embodiment, the entry in which a 1-bit error is detected in the cache memory is duplicated. As a result, it is not necessary to perform entry degeneration when a 1-bit error is detected, and it is sufficient to perform entry degeneration when a 2-bit error is detected. Therefore, the availability of the system can be increased while minimizing the degradation of the system performance.
 CPUコアからの要求によってキャッシュメモリへのアクセスが生じた際に1ビットエラーが生じた場合、エラーが生じたエントリを二重化する。尚、使用するキャッシュメモリは、nウェイのセットアソシエイティブ方式のものである。nウェイのセットアソシエイティブ方式とは、キャッシュメモリをn個のブロック(すなわちウェイ)に分割することで、一部のアドレス(インデックス)が同じ複数のデータに対してキャッシュメモリがヒットするようにする方式をいう。又、エントリの二重化では、エントリに格納されたデータ又は情報をコピーして他のエントリへ格納する。エントリの二重化により、同一のデータが、データが元々格納されていたエントリと、上記他のエントリとの2つのエントリ(以下、対のエントリと称する)に重複して格納される。 When a 1-bit error occurs when access to the cache memory occurs due to a request from the CPU core, the entry in which the error has occurred is duplicated. The cache memory used is an n-way set associative type. In the n-way set associative method, the cache memory is divided into n blocks (that is, ways) so that the cache memory hits a plurality of data having the same address (index). Refers to the method. In addition, in duplication of entries, data or information stored in an entry is copied and stored in another entry. By duplicating entries, the same data is duplicated and stored in two entries (hereinafter referred to as a pair of entries) of the entry where the data was originally stored and the other entry.
 ここで上記他のエントリとしては、既に縮退されたエントリ及び既に二重化がなされた対のエントリを除き、いずれのエントリも使用し得る。 Here, as the other entry, any entry can be used except for an entry that has already been degenerated and a pair entry that has already been duplicated.
 上記エントリの二重化は、キャッシュメモリのエントリについてCPUコアの起動後に1ビットエラーが最初に生じた時点で実行することができる。或いは、各エントリにつき、カウンタによってCPUコアの起動後からの1ビットエラーの検出回数を計数して1ビットエラーの検出回数を取得し、1ビットエラーの検出回数を考慮してエントリの二重化の要否の決定を行っても良い。 The above entry duplication can be executed when a 1-bit error first occurs after starting the CPU core for the cache memory entry. Alternatively, for each entry, the counter counts the number of times a 1-bit error has been detected since the start of the CPU core, and obtains the number of times a 1-bit error has been detected. A negative decision may be made.
 又、上記他のエントリとして使用するエントリに既にデータが格納されていた場合、予め他のエントリを無効化する処理(図7とともに後述)を行う。又、必要に応じ、エントリの無効化に先立って、主記憶装置に対するデータの書き戻しを行う(図7参照)。ここでデータの書き戻しとは、上位の記憶装置のデータが書き換えられた際に、書き換え後のデータをすぐ下位の主記憶装置に転送し、書き換え後のデータによって下位の記憶装置における対応するデータを上書きすることを言う。書き戻しはライトバック(write back)とも称する。 In addition, when data is already stored in the entry used as the other entry, processing for invalidating the other entry (described later with reference to FIG. 7) is performed. If necessary, data is written back to the main storage device before invalidating the entry (see FIG. 7). Here, the data write-back means that when the data in the upper storage device is rewritten, the rewritten data is transferred immediately to the lower main storage device, and the corresponding data in the lower storage device is transferred by the rewritten data. Say to overwrite. Writing back is also referred to as write-back.
 尚、このようにしてエントリの二重化がなされた対のエントリのうちの一方のエントリにおいてECCでは訂正不能な2ビットエラーが生じた場合、一方のエントリは縮退されるため、対のエントリの二重化が解消される。 When a two-bit error that cannot be corrected by ECC occurs in one of the paired entries in which the entries are duplexed in this way, one of the entries is degenerated, and therefore the paired entries are duplicated. It will be resolved.
 このような構成の実施例1によれば、仮にキャッシュメモリのエントリにおいて1ビットエラーが多発して同一インデックスに属する全てのエントリが二重化された場合でも、インデックスに関しキャッシュメモリの容量が半分になるに過ぎない。これに対し、1ビットエラーが検出された時点で順次エントリを二重化せずに縮退する方法を採用すると、キャッシュメモリの容量は、エラーが検出されたインデックスに関し、最後には1エントリとなってしまう。 According to the first embodiment having such a configuration, even if one-bit errors frequently occur in cache memory entries and all entries belonging to the same index are duplicated, the capacity of the cache memory is halved with respect to the index. Not too much. On the other hand, if a method is adopted in which entries are degenerated without sequential duplication when a 1-bit error is detected, the capacity of the cache memory will end up with 1 entry for the index where the error is detected. .
 又、エントリの二重化で得られる対のエントリの一方に2ビットエラーが発生しても他方のエントリによって訂正可能であれば、対のエントリは正常な一つのエントリと同等の信頼性を有すると言える。よってエントリを二重化した場合には対のエントリの一方のエントリがエラー発生により縮退する方法は、1ビットエラーが生じたエントリを縮退して正常なエントリを残す方法と同等の信頼性を提供できる。 Also, even if a 2-bit error occurs in one of the paired entries obtained by duplication of entries, if the other entry can correct it, it can be said that the paired entries have the same reliability as a normal entry. . Therefore, when entries are duplicated, a method in which one entry of a pair of entries is degenerated due to an error can provide the same reliability as a method of degenerating an entry in which a 1-bit error has occurred and leaving a normal entry.
 更に、1ビットエラーを生じたエントリを順次縮退する結果、同一インデックス上に1個だけエントリが残る場合と、エントリの二重化を行った対のエントリが1対だけ残った場合とを比較する。この場合、エントリを二重化する方法の方が、二重化されている分、データの信頼性は高いと言える。 Furthermore, as a result of sequentially degenerating entries having a 1-bit error, a comparison is made between the case where only one entry remains on the same index and the case where only one pair of entries with duplicate entries remain. In this case, it can be said that the method of duplicating entries has higher data reliability because of the duplication.
 すなわち実施例1によれば、1ビットエラーが多発するような状況下であっても、システムの性能低下を最小限に抑えつつ、システムの可用性を向上し得る。 That is, according to the first embodiment, even in a situation where 1-bit errors frequently occur, the availability of the system can be improved while minimizing the degradation of the system performance.
 次に図とともに実施例1の詳細な説明を行う。 Next, the first embodiment will be described in detail with reference to the drawings.
 図1は実施例による情報処理装置の構成の一例を示すブロック図である。 FIG. 1 is a block diagram showing an example of the configuration of an information processing apparatus according to an embodiment.
 実施例による情報処理装置は、演算部の一例であるCPUコア100(プロセッサコアブロック),二次キャッシュ制御部200及び、第1の記憶部の一例である主記憶装置300(メインメモリ)を有する。ここでCPUコア100と二次キャッシュ制御部200とが、演算処理装置の一例であるプロセッサを構成する。 The information processing apparatus according to the embodiment includes a CPU core 100 (processor core block) that is an example of an arithmetic unit, a secondary cache control unit 200, and a main storage device 300 (main memory) that is an example of a first storage unit. . Here, the CPU core 100 and the secondary cache control unit 200 constitute a processor which is an example of an arithmetic processing unit.
 CPUコア100は、命令実行部101と一次キャッシュ部102とを有する。命令実行部101は、一次キャッシュ部102及び二次キャッシュ制御部200を経由して主記憶装置300から命令を取り出し、取り出した命令を実行する。又、命令実行部101は、一次キャッシュ部102及び二次キャッシュ制御部200を経由して主記憶装置300からデータを読み出し、データを使用して演算を行う。 The CPU core 100 includes an instruction execution unit 101 and a primary cache unit 102. The instruction execution unit 101 retrieves an instruction from the main storage device 300 via the primary cache unit 102 and the secondary cache control unit 200, and executes the retrieved instruction. Further, the instruction execution unit 101 reads data from the main storage device 300 via the primary cache unit 102 and the secondary cache control unit 200 and performs an operation using the data.
 一次キャッシュ部102は、命令実行部101からの要求に応じ、自己が格納するデータを読み出して命令実行部101に転送する。一次キャッシュ部102は、自己が命令実行部101からの要求に対応するデータを格納していなかった場合、二次キャッシュ制御部200に対し、データの読み出しを要求する。 In response to a request from the instruction execution unit 101, the primary cache unit 102 reads data stored therein and transfers it to the instruction execution unit 101. When the primary cache unit 102 does not store data corresponding to the request from the instruction execution unit 101, the primary cache unit 102 requests the secondary cache control unit 200 to read data.
 二次キャッシュ制御部200は、二次キャッシュディレクトリ部201と、二次キャッシュデータ部202とを有する。二次キャッシュ制御部200は、一次キャッシュ部102からの上記要求に応じ、二次キャッシュデータ部202が格納するデータを読み出して一次キャッシュ部102へ転送する。二次キャッシュ制御部200が該当するデータを格納していない場合、二次キャッシュ制御部200は、主記憶装置300からデータを読み出して一次キャッシュ部102へ転送する。 The secondary cache control unit 200 includes a secondary cache directory unit 201 and a secondary cache data unit 202. In response to the request from the primary cache unit 102, the secondary cache control unit 200 reads the data stored in the secondary cache data unit 202 and transfers the data to the primary cache unit 102. When the secondary cache control unit 200 does not store the corresponding data, the secondary cache control unit 200 reads the data from the main storage device 300 and transfers it to the primary cache unit 102.
 二次キャッシュディレクトリ部201は、二次キャッシュデータ部202が格納するデータに関する情報(図4とともに後述)を格納するディレクトリ格納部2011と、ディレクトリ検査部203とを有する。ディレクトリ格納部2011につき、図3Aとともに後述する。ディレクトリ検査部203は、CPUコア100からの要求に応じて二次キャッシュデータ部202からデータを読み出す際、ECCによるエラー検出及び訂正により、ディレクトリ格納部2011における1ビットエラー又は2ビットエラーを検出し、検出した1ビットエラーを訂正する。ディレクトリ検査部203の詳細につき、図2とともに後述する。 The secondary cache directory unit 201 includes a directory storage unit 2011 that stores information related to data stored in the secondary cache data unit 202 (described later with reference to FIG. 4), and a directory checking unit 203. The directory storage unit 2011 will be described later with reference to FIG. 3A. When the directory checking unit 203 reads data from the secondary cache data unit 202 in response to a request from the CPU core 100, the directory checking unit 203 detects a 1-bit error or 2-bit error in the directory storage unit 2011 by error detection and correction using ECC. The detected 1-bit error is corrected. Details of the directory checking unit 203 will be described later with reference to FIG.
 二次キャッシュデータ部202は、データを格納するデータ格納部2021と、データ検査部204とを有する。データ格納部2021につき図3Bとともに後述する。データ検査部204は、CPUコア100からの要求に応じてデータを読み出す際に、データ格納部2021における1ビットエラー又は2ビットエラーを検出し、検出した1ビットエラーを訂正し、訂正後のデータをCPUコア100へ転送する。データ検査部204の詳細につき、図2とともに後述する。 The secondary cache data unit 202 has a data storage unit 2021 for storing data and a data inspection unit 204. The data storage unit 2021 will be described later with reference to FIG. 3B. When the data checking unit 204 reads data in response to a request from the CPU core 100, the data checking unit 204 detects a 1-bit error or 2-bit error in the data storage unit 2021, corrects the detected 1-bit error, and corrects the data. Is transferred to the CPU core 100. Details of the data inspection unit 204 will be described later with reference to FIG.
 次に図2とともに、ディレクトリ検査部203及びデータ検査部204の詳細について説明する。 Next, the details of the directory checking unit 203 and the data checking unit 204 will be described with reference to FIG.
 ディレクトリ検査部203は、エラー検査部2031,エラー加算部2032,ディレクトリエラー訂正部2033,hit Way検査部2034,及びディレクトリ更新部2035を有する。 The directory checking unit 203 includes an error checking unit 2031, an error adding unit 2032, a directory error correcting unit 2033, a hit Way checking unit 2034, and a directory updating unit 2035.
 エラー検査部2031は、CPUコア100からのリード要求に応じて二次キャッシュデータ部202からデータを読み出す際に、CPUコア100からのリード要求に係る、ディレクトリ格納部2011のエントリにおけるエラーを検出する。エラー加算部2032は、エラー検査部2031が検出する1ビットエラー、及び後述するデータ検査部204のエラー検査部2041が検出するデータ格納部2021における1ビットエラーの検出回数を計数する。ディレクトリエラー訂正部2033は、エラー検査部2031が検出したエラーのうち、1ビットエラーを訂正する。hit Way検査部2034はディレクトリ格納部2011を検索し、CPUコア100からのリード要求に係る、ディレクトリ格納部2011のエントリを得る。ディレクトリ更新部2035はディレクトリ格納部2011の内容を更新する。一例として、データ格納部2021に新たなデータが格納される場合、ディレクトリ更新部2035は、ディレクトリ格納部2011の対応するエントリに、新たなデータに関する情報を格納する。 The error checking unit 2031 detects an error in the entry of the directory storage unit 2011 related to the read request from the CPU core 100 when reading data from the secondary cache data unit 202 in response to the read request from the CPU core 100. . The error adding unit 2032 counts the number of detections of the 1-bit error detected by the error checking unit 2031 and the 1-bit error detected in the data storage unit 2021 detected by the error checking unit 2041 of the data checking unit 204 described later. The directory error correction unit 2033 corrects a 1-bit error among the errors detected by the error checking unit 2031. The hit way inspection unit 2034 searches the directory storage unit 2011 and obtains an entry in the directory storage unit 2011 related to the read request from the CPU core 100. The directory update unit 2035 updates the contents of the directory storage unit 2011. As an example, when new data is stored in the data storage unit 2021, the directory update unit 2035 stores information on the new data in a corresponding entry of the directory storage unit 2011.
 データ検査部204は、エラー検査部2041,データエラー訂正部2043及びデータ選択部2046を有する。 The data inspection unit 204 includes an error inspection unit 2041, a data error correction unit 2043, and a data selection unit 2046.
 エラー検査部2041は、CPUコア100からのリード要求に応じてデータ格納部2021のエントリからデータを読み出す際に、読み出したエントリにおけるエラーを検出する。データエラー訂正部2043は、エラー検査部2041が検出したエラーのうち1ビットエラーを訂正する。データ選択部2046は、hit Way検査部2034が検索によって得た、ディレクトリ格納部2011のエントリに対応するデータ格納部2021から選択したエントリからデータを読み出す。 The error checking unit 2041 detects an error in the read entry when reading data from the entry of the data storage unit 2021 in response to a read request from the CPU core 100. The data error correction unit 2043 corrects a 1-bit error among the errors detected by the error checking unit 2041. The data selection unit 2046 reads data from the entry selected from the data storage unit 2021 corresponding to the entry of the directory storage unit 2011 obtained by the search by the hit way inspection unit 2034.
 図3Aは、ディレクトリ格納部2011のデータ構造の例を示す。図3Bは、データ格納部2021のデータ構造の例を示す。図3A,図3Bに示す如く、ディレクトリ格納部2011のエントリとデータ格納部2021のエントリはそれぞれ1対1で対応している。すなわち図3Aのディレクトリ格納部2011のインデックスi,ウェイj(i、jは夫々正の整数)のエントリは、図3Bのデータ格納部2021のインデックスi,ウェイ0のエントリjに対応する。例えば図3Aのディレクトリ格納部2011のインデックス0,ウェイ0のエントリAは、図3Bのデータ格納部2021のインデックス0,ウェイ0のエントリA'に対応する。同様に、図3Aのディレクトリ格納部2011のインデックス0,ウェイ1のエントリBは、図3Bのデータ格納部2021のインデックス0,ウェイ1のエントリB'に対応する。そして、ディレクトリ格納部2011のインデックスi,ウェイjのエントリは、対応するデータ格納部2021のインデックスi,ウェイjのエントリが格納するデータに関する情報を格納する。又、ディレクトリ格納部2011の各エントリは例えば数十ビット程度の記憶容量を有し、データ格納部2021の各エントリは例えば数十バイト乃至数百バイト程度の記憶容量を有する。 FIG. 3A shows an example of the data structure of the directory storage unit 2011. FIG. 3B shows an example of the data structure of the data storage unit 2021. As shown in FIGS. 3A and 3B, the entry in the directory storage unit 2011 and the entry in the data storage unit 2021 are in a one-to-one correspondence. That is, entries of index i and way j (i and j are positive integers) in the directory storage unit 2011 of FIG. 3A correspond to entry i of index i and way 0 of the data storage unit 2021 of FIG. 3B. For example, the entry A of index 0 and way 0 in the directory storage unit 2011 in FIG. 3A corresponds to the entry A ′ of index 0 and way 0 in the data storage unit 2021 in FIG. 3B. Similarly, the entry B of index 0 and way 1 in the directory storage unit 2011 in FIG. 3A corresponds to the entry B ′ of index 0 and way 1 in the data storage unit 2021 in FIG. 3B. The entries of index i and way j in the directory storage unit 2011 store information regarding data stored in the entries of index i and way j in the corresponding data storage unit 2021. Each entry of the directory storage unit 2011 has a storage capacity of about several tens of bits, for example, and each entry of the data storage unit 2021 has a storage capacity of about several tens of bytes to several hundreds of bytes, for example.
 図4は、ディレクトリ格納部2011の各エントリのデータ構造の例を示す。ディレクトリ格納部2011の各エントリは、物理アドレスの一部400,ステータス401,一次キャッシュ部102のステータス402,二重化フラグ403,Way番号404,縮退フラグ405,エラー回数406及びECC407の各フィールドを有する。 FIG. 4 shows an example of the data structure of each entry in the directory storage unit 2011. Each entry in the directory storage unit 2011 includes fields of a physical address part 400, a status 401, a primary cache unit 102 status 402, a duplex flag 403, a way number 404, a degeneration flag 405, an error count 406, and an ECC 407.
 物理アドレスの一部400のフィールドは、ディレクトリ格納部2011のエントリに対応するデータ格納部2021のエントリに格納されたデータの,主記憶装置300におけるアドレス(アドレス情報)のうち、ディレクトリ格納部2011のインデックス(index)を指定するインデックス部を除いた部分を格納する。すなわち、CPUコア100からのメモリアクセス要求に係るデータのアドレスのうち、インデックス部によってディレクトリ格納部2011のインデックス(0乃至m:mは正の整数)の中から、一つのインデックスが得られる。そして、アドレスのうち、インデックス部を除いた部分につき、物理アドレスの一部400を参照することにより、ディレクトリ格納部2011のウェイ(0乃至n)の中から、一つのウェイ(Way)が得られる。このようにして、ディレクトリ格納部2011の一つのインデックス及び一つのウェイが得られると、インデックス及びウェイにより、一つのエントリが得られる。 A field of a part 400 of the physical address is a field of the directory storage unit 2011 among addresses (address information) in the main storage device 300 of data stored in the entry of the data storage unit 2021 corresponding to the entry of the directory storage unit 2011. Stores the part excluding the index part that specifies the index. That is, of the data addresses related to the memory access request from the CPU core 100, one index is obtained from the indexes of the directory storage unit 2011 (0 to m: m is a positive integer) by the index unit. Then, by referring to a part 400 of the physical address for the part excluding the index part of the address, one way (Way) is obtained from the ways (0 to n) of the directory storage part 2011. . Thus, when one index and one way in the directory storage unit 2011 are obtained, one entry is obtained by the index and way.
 ステータス401のフィールドは、ディレクトリ格納部2011のエントリに対応する、データ格納部2021のエントリに格納されているデータの状態を示す情報を格納する。具体的には、「00」(invalid)は、未だデータが格納されていない状態を示す。「10」(clean)は、主記憶装置300のデータと一致するデータが格納されている状態を示し、「11」(dirty)は、主記憶装置300のデータと一致しないデータが格納されている状態を示す。例えばCPUコア100からの要求に応じたデータが主記憶装置300から読み出されてCPUコア100に転送される際、データがデータ格納部2021に格納される。その直後は、データ格納部2021には、主記憶装置300のデータと一致するデータが格納されている。したがってステータス401のフィールドには「10」(clean)が格納される。又、その後、データ格納部2021において、データがCPUコア100によって書き換えられたが、書き換え後のデータが主記憶装置300に書き戻されていない場合を想定する。この場合、データ格納部2021には、主記憶装置300のデータと一致しないデータが格納される。したがってこの場合、ステータス401のフィールドには「11」(dirty)が格納される。 The field of status 401 stores information indicating the state of data stored in the entry of the data storage unit 2021 corresponding to the entry of the directory storage unit 2011. Specifically, “00” (invalid) indicates a state where data is not yet stored. “10” (clean) indicates that data that matches the data in the main storage device 300 is stored, and “11” (dirty) stores data that does not match the data in the main storage device 300. Indicates the state. For example, when data corresponding to a request from the CPU core 100 is read from the main storage device 300 and transferred to the CPU core 100, the data is stored in the data storage unit 2021. Immediately thereafter, the data storage unit 2021 stores data that matches the data in the main storage device 300. Therefore, “10” (clean) is stored in the status 401 field. Thereafter, it is assumed that the data is rewritten by the CPU core 100 in the data storage unit 2021, but the rewritten data is not written back to the main storage device 300. In this case, the data storage unit 2021 stores data that does not match the data in the main storage device 300. Therefore, in this case, “11” (dirty) is stored in the field of the status 401.
 一次キャッシュステータス402のフィールドは、一次キャッシュ部102が格納する、対応するデータの状態を示す。「00」(不存在)は、対応するデータが一次キャッシュ部102に存在しない状態を示す。例えば対応するデータが一次キャッシュ部102において無効化されたとの情報がCPUコア100から得られた場合、一次キャッシュステータス402のフィールドには「00」(不存在)が格納される。「10」(clean)は、対応するデータが一次キャッシュ部102に存在し、且つデータ格納部2021のデータと一致する状態を示す。例えばCPUコア100からの要求に応じてデータ格納部2021からデータが読み出されてCPUコア100に転送された場合、データは一次キャッシュ部102に格納される。このため、一時キャッシュ部102に格納されたデータはデータ格納部2021におけるデータと一致する。よってデータが一致する場合、一次キャッシュステータス402のフィールドには、「10」(clean)が格納される。「11」(dirtyの可能性有り)は、一次キャッシュ部102に対応するデータが存在し、データ格納部2021のデータと一致しない可能性がある状態を示す。例えばCPUコア100から、対応するデータを書き換える可能性がある旨の情報が得られた場合を想定する。このような場合、一次キャッシュ部102において、対応するデータが書き換えられ、書き換え後のデータがデータ格納部2021に書き戻されなければ、一次キャッシュ部102のデータはデータ格納部2021のデータと一致しない。よってこの場合、一次キャッシュステータス402のフィールドには、「11」(dirtyの可能性有り)が格納される。 The primary cache status 402 field indicates the status of the corresponding data stored in the primary cache unit 102. “00” (non-existent) indicates a state in which the corresponding data does not exist in the primary cache unit 102. For example, when information indicating that the corresponding data has been invalidated in the primary cache unit 102 is obtained from the CPU core 100, “00” (not present) is stored in the field of the primary cache status 402. “10” (clean) indicates that the corresponding data exists in the primary cache unit 102 and matches the data in the data storage unit 2021. For example, when data is read from the data storage unit 2021 and transferred to the CPU core 100 in response to a request from the CPU core 100, the data is stored in the primary cache unit 102. For this reason, the data stored in the temporary cache unit 102 matches the data in the data storage unit 2021. Therefore, if the data match, “10” (clean) is stored in the field of the primary cache status 402. “11” (possibility of “dirty”) indicates a state in which data corresponding to the primary cache unit 102 exists and may not match the data stored in the data storage unit 2021. For example, it is assumed that information indicating that there is a possibility of rewriting corresponding data is obtained from the CPU core 100. In such a case, if the corresponding data is rewritten in the primary cache unit 102 and the rewritten data is not written back to the data storage unit 2021, the data in the primary cache unit 102 does not match the data in the data storage unit 2021. . Therefore, in this case, “11” (possibility of dirty) is stored in the field of the primary cache status 402.
 二重化フラグ403のフィールドは、ディレクトリ格納部2011のエントリが二重化された対のエントリの一方であるか否かを示す情報を格納する。「01010」は、エントリが二重化されていない状態を示す。「10101」は、エントリが二重化された対のエントリの一方である状態を示す。 The field of the duplex flag 403 stores information indicating whether the entry in the directory storage unit 2011 is one of the paired entries. “01010” indicates a state in which the entry is not duplicated. “10101” indicates a state in which the entry is one of a pair of duplicate entries.
 二重化Way番号404のフィールドは、ディレクトリ格納部2011のエントリが二重化されている場合に、対のエントリの相手側のエントリの番号を示す情報を格納する。 The field of the duplicated way number 404 stores information indicating the number of the partner entry of the pair entry when the entry in the directory storage unit 2011 is duplicated.
 縮退フラグ405のフィールドは、ディレクトリ格納部2011のエントリが縮退されているか否かを示す情報を格納する。「01010」は縮退されていない状態を示し、「10101」は縮退されている状態を示す。 The field of the degeneration flag 405 stores information indicating whether or not the entry in the directory storage unit 2011 is degenerated. “01010” indicates a state that is not degenerated, and “10101” indicates a state that is not degenerated.
 エラー回数406のフィールドは、ディレクトリ格納部2011におけるエントリ或いはデータ格納部2021の対応するエントリからの読出時にエラー検査部2031或いは2041によって検出された1ビットエラーの検出回数を示す情報を格納する。エラーの検出回数は、エラー加算部2032によって計数される。 The error count 406 field stores information indicating the number of detections of a 1-bit error detected by the error checking unit 2031 or 2041 when reading from an entry in the directory storage unit 2011 or a corresponding entry in the data storage unit 2021. The number of error detections is counted by the error adder 2032.
 ECC410のフィールドには、エラー訂正符号(Error Correcting Code)を格納する。ディレクトリ格納部2011及びデータ格納部2021はエラー訂正符号によって保護される。エラー検査部2031がディレクトリ格納部2011のエントリのエラーを検出すると、エラーが1ビットエラーであれば、ディレクトリエラー訂正部2033が1ビットエラーを訂正する。又、エラー検査部2041がデータ格納部2021のエントリのエラーを検出すると、エラーが1ビットエラーであれば、データエラー訂正部2043が1ビットエラーを訂正する。 In the field of ECC410, an error correction code (Error Correcting 格納 Code) is stored. The directory storage unit 2011 and the data storage unit 2021 are protected by error correction codes. When the error checking unit 2031 detects an error in the entry in the directory storage unit 2011, if the error is a 1-bit error, the directory error correction unit 2033 corrects the 1-bit error. When the error checking unit 2041 detects an error in the entry of the data storage unit 2021, if the error is a 1-bit error, the data error correction unit 2043 corrects the 1-bit error.
  図5は、図1に示される二次キャッシュ制御部200の処理の流れの例を示すフローチャートである。 FIG. 5 is a flowchart showing an example of the processing flow of the secondary cache control unit 200 shown in FIG.
 CPUコア100からリード要求を受けると(ステップS101のYes),ステップS102に移行する。他方、CPUコア100からリード要求を受けていない場合(ステップS101のNo),図5の処理を終了する。ステップS102では、hit Way検査部2034がディレクトリ格納部2011を検索し、リード要求に係るエントリを得ることができれば(ヒット),ステップS103に移行する。ステップS103では、データ選択部2046が、hit Way検査部2034が得たディレクトリ格納部2011のエントリに対応するデータ格納部2021のエントリを選択し選択したエントリからデータを読み出し、ステップS108に移行する。又その際、ディレクトリ格納部2011のエントリ中、一次キャッシュステータス402に「10」(clean)を格納する(ディレクトリの更新)。すなわち上記の如く、CPUコア100からの要求に応じてデータをCPUコア100に転送した直後は、データは一次キャッシュ部102に格納される。このため、データはデータ格納部2021における対応するデータと一致する(clean)からである。ステップS108では、データ選択部2046がエントリを選択して選択したエントリから読み出した上記データをデータ選択部2046がCPUコア100へ転送し、図5のフローを終了する。 When a read request is received from the CPU core 100 (Yes in step S101), the process proceeds to step S102. On the other hand, if no read request has been received from the CPU core 100 (No in step S101), the processing in FIG. In step S102, if the hit way inspection unit 2034 searches the directory storage unit 2011 and can obtain an entry related to the read request (hit), the process proceeds to step S103. In step S103, the data selection unit 2046 selects an entry in the data storage unit 2021 corresponding to the entry in the directory storage unit 2011 obtained by the hit way inspection unit 2034, reads the data from the selected entry, and proceeds to step S108. At that time, “10” (clean) is stored in the primary cache status 402 in the entry of the directory storage unit 2011 (update of the directory). That is, as described above, immediately after data is transferred to the CPU core 100 in response to a request from the CPU core 100, the data is stored in the primary cache unit 102. For this reason, the data is consistent with the corresponding data in the data storage unit 2021 (clean). In step S108, the data selection unit 2046 selects the entry, and the data selection unit 2046 transfers the data read from the selected entry to the CPU core 100, and the flow in FIG. 5 ends.
 他方、ステップS102でディレクトリ格納部2011のエントリが得られなかった(ミスした)場合(No),ステップS104に移行する。ステップS104では、ディレクトリ更新部2035が、ディレクトリ格納部2011及びデータ格納部2021においてエントリの無効化処理を行い,ステップS105に移行する。無効化処理がなされたエントリは、後述するステップS107にてデータを格納する際に使用される。ステップS104で無効化処理がなされるエントリとしては、例えばLRU(Least Recently Used)のエントリ、ステータス401が「00」(invalid)であり且つ最若番のウェイのエントリ等とすることができる。ここでLRUのエントリとは、アクセスがなされていない時間が最も長いエントリを意味する。尚、無効化処理につき、図7とともに後述する。 On the other hand, when the entry of the directory storage unit 2011 is not obtained (missed) in step S102 (No), the process proceeds to step S104. In step S104, the directory update unit 2035 performs entry invalidation processing in the directory storage unit 2011 and the data storage unit 2021, and proceeds to step S105. The entry that has been invalidated is used when data is stored in step S107 described later. As an entry to be invalidated in step S104, for example, an entry of LRU (Least Recently Used), an entry of the youngest way whose status 401 is “00” (invalid), and the like can be used. Here, the entry of LRU means the entry having the longest access time. The invalidation process will be described later with reference to FIG.
 ステップS105では、データ選択部2056が、上記CPUコア100からのリード要求に係るデータを主記憶装置300に要求し、ステップS106に移行する。ステップS106では、データ選択部2056が、要求に係るデータが主記憶装置300から転送されたか否かを判定する。要求に係るデータが主記憶装置300から転送されればステップS107に移行し、転送されなければステップS106に戻る。ステップS107では、データ選択部2046が、転送されたデータをデータ格納部2021のエントリに格納してステップS108に移行する。又、このとき、ディレクトリ更新部2035が、ディレクトリ格納部2011に、格納されたデータに関する情報を格納する。ステップS108では、データ選択部2046が、主記憶装置300から転送されたデータをCPUコア100へ転送し、図5のフローを終了する。 In step S105, the data selection unit 2056 requests the data related to the read request from the CPU core 100 to the main storage device 300, and proceeds to step S106. In step S <b> 106, the data selection unit 2056 determines whether the requested data has been transferred from the main storage device 300. If the data related to the request is transferred from the main storage device 300, the process proceeds to step S107. If not transferred, the process returns to step S106. In step S107, the data selection unit 2046 stores the transferred data in the entry of the data storage unit 2021, and proceeds to step S108. At this time, the directory update unit 2035 stores information related to the stored data in the directory storage unit 2011. In step S108, the data selection unit 2046 transfers the data transferred from the main storage device 300 to the CPU core 100, and the flow of FIG.
 図6は、エントリの二重化の処理の流れを示すフローチャートである。 FIG. 6 is a flowchart showing a process flow of entry duplication.
 ディレクトリ更新部2035は、エラー検査部2031或いはエラー検査部2041が、二重化されていないエントリについて1ビットエラーを検出した場合(ステップS1のYes)、ステップS2に移行する。他方、1ビットエラーを検出しなかった場合(ステップS1のNo)、図6の処理を終了する。 The directory update unit 2035 proceeds to step S2 when the error checking unit 2031 or the error checking unit 2041 detects a 1-bit error for an entry that is not duplicated (Yes in step S1). On the other hand, when a 1-bit error is not detected (No in step S1), the processing in FIG. 6 is terminated.
 ステップS2では、ディレクトリ更新部2035は、上記1ビットエラーが検出されたエントリにつき、エラー回数406が示すエラー検出回数が規定値(エラー閾値)を超えているか否かを判定する。エラー検出回数が規定値を超えていない場合、ステップS3に移行する。エラー検出回数が規定値を超えている場合、ステップS4に移行する。 In step S2, the directory update unit 2035 determines whether or not the error detection count indicated by the error count 406 exceeds a specified value (error threshold) for the entry in which the 1-bit error is detected. If the number of error detections does not exceed the specified value, the process proceeds to step S3. If the number of error detections exceeds the specified value, the process proceeds to step S4.
 ステップS3では、エラー加算部2032が、エラー回数406のフィールドに格納されたエラー検出回数に、「1」を加算して、図6の処理を終了する。 In step S3, the error addition unit 2032 adds “1” to the error detection count stored in the error count 406 field, and ends the process of FIG.
 ステップS4でディレクトリ更新部2035は、エントリの二重化を行うため、対のエントリの相手側(他方)のエントリとして使用可能なエントリが同一インデックス上に存在するか否かを判定する。ここで対のエントリの相手側のエントリとしては、次のウェイ番号(隣り)のエントリ、LRUのエントリ、ステータスが「00」(invalid)且つ最若番のウェイのエントリ等とすることができる。但し、二重化されているエントリ及び縮退されているエントリは、二重化の対象とはしない。ここで同一インデックス上の全てのエントリが対象外となった場合、上記1ビットエラーが検出されたエントリを縮退し、二重化処理は行わない。但し1ビットエラーが検出されたエントリが同一インデックス上の最後のエントリであった場合には、縮退も二重化も行わない。 In step S4, the directory updating unit 2035 determines whether there is an entry on the same index that can be used as an entry on the other side (the other side) of the paired entry in order to duplicate the entry. Here, as the entry on the other side of the paired entry, the entry of the next way number (neighboring), the entry of the LRU, the entry of the youngest way with the status “00” (invalid), and the like can be used. However, duplicated entries and degenerated entries are not targeted for duplication. Here, when all entries on the same index are excluded, the entry in which the 1-bit error is detected is degenerated and the duplex process is not performed. However, when the entry in which a 1-bit error is detected is the last entry on the same index, neither degeneration nor duplication is performed.
 すなわちステップS4では、対のエントリにおいて二重化の対象とする相手側のエントリとして使用可能なエントリが同一インデックス上に存在しない場合(No),ステップS5に移行する。ステップS5では、ディレクトリ更新部2035は、1ビットエラーが検出されたエントリが同一インデックス上で最後のエントリか否かを判定する。同一インデックス上で最後のエントリでなければ(No),1ビットエラーが検出されたエントリを無効化処理して縮退し(ステップS6)、図6の処理を終了する。他方、同一インデックス上で最後のエントリであれば(ステップS5のYes),そのまま何もせずに図6の処理を終了する。 That is, in step S4, when there is no entry on the same index that can be used as a partner entry to be duplicated in the paired entry (No), the process proceeds to step S5. In step S5, the directory update unit 2035 determines whether the entry in which the 1-bit error is detected is the last entry on the same index. If it is not the last entry on the same index (No), the entry in which the 1-bit error is detected is invalidated and degenerated (step S6), and the process of FIG. 6 is terminated. On the other hand, if it is the last entry on the same index (Yes in step S5), the processing of FIG. 6 is terminated without doing anything.
 ステップS4で、対のエントリの相手側のエントリとして使用可能なエントリが同一インデックス上に存在する場合(Yes),ステップS7に移行する。ステップS7では、ディレクトリ更新部2035は、使用可能なエントリのステータス401が「00」(invalid)か否かを判定する。すなわち、使用可能なエントリがデータの格納に使用されているか否かを判定する。ステータス401が「00」(invalid)であれば(ステップS7のYes),使用可能なエントリはデータの格納に使用されておらず、ステップS9に移行する。ステータス401が「00」(invalid)でなければ(ステップS7のNo)、使用可能なエントリはデータの格納に使用されており、ステップS8に移行する。ステップS8では、ディレクトリ更新部2035は、図7とともに後述するエントリの無効化処理を行い、その後ステップS9に移行する。すなわち、使用可能なエントリがデータの格納に使用されている場合、使用可能なエントリを無効化処理する。無効化処理されたエントリが、二重化の対象となる相手側として使用される(ステップS9)。 In step S4, when there is an entry that can be used as the entry on the other side of the pair entry on the same index (Yes), the process proceeds to step S7. In step S7, the directory update unit 2035 determines whether the status 401 of the usable entry is “00” (invalid). That is, it is determined whether a usable entry is used for data storage. If the status 401 is “00” (invalid) (Yes in step S7), the usable entry is not used for data storage, and the process proceeds to step S9. If the status 401 is not “00” (invalid) (No in step S7), the usable entry is used for data storage, and the process proceeds to step S8. In step S8, the directory update unit 2035 performs entry invalidation processing, which will be described later with reference to FIG. 7, and then proceeds to step S9. That is, when a usable entry is used for storing data, the usable entry is invalidated. The invalidated entry is used as a partner to be duplexed (step S9).
 ステップS9では、ディレクトリ更新部2035が、上記使用可能なエントリに、上記1ビットエラーが検出されたエントリのデータ又は情報をコピー(複製)し、エントリの二重化を行う。ここで単純にコピーする「情報」としては、例えば、図4に示すディレクトリ格納部2011のエントリの各フィールドうち、以下に示すフィールドの情報が挙げられる。すなわち、物理アドレスの一部400、ステータス401,1次キャッシュステータス402,二重化フラグ403および縮退フラグ405の各フィールドに格納された情報が挙げられる。尚、ここでは、ステップS1で1ビットエラーが検出されたエントリがデータ格納部2021のエントリであった場合、1ビットエラーが検出されたエントリの二重化とともに、対応するディレクトリ格納部2011のエントリの二重化も同時に行う。同様に、ステップS1で1ビットエラーが検出されたエントリがディレクトリ格納部2011のエントリであった場合、エントリの二重化とともに、対応するデータ格納部2021のエントリの二重化も同時に行う。又、上記1ビットエラーが検出されたエントリのデータをコピーする前に、ディレクトリエラー訂正部2033或いはデータエラー訂正部2043が、上記1ビットエラーが検出されたエントリのデータ或いは情報において、上記1ビットエラーを訂正する。又、上記1ビットエラーが検出されたエントリ及び二重化の相手側のエントリの夫々の二重化フラグ403のフィールドに「10101」(二重化有り)を格納するとともに、Way番号404のフィールドには、互いに二重化の相手側のウェイ番号を格納する。ステップS9の終了後、図6の処理を終了する。 In step S9, the directory update unit 2035 copies (duplicates) the data or information of the entry in which the 1-bit error is detected to the usable entry, and duplicates the entry. Here, “information” simply copied includes, for example, information on the following fields among the fields of the entry in the directory storage unit 2011 shown in FIG. That is, information stored in each field of the physical address part 400, the status 401, the primary cache status 402, the duplex flag 403, and the degeneration flag 405 can be cited. Here, if the entry in which the 1-bit error is detected in step S1 is the entry in the data storage unit 2021, the entry in which the 1-bit error is detected is duplicated and the corresponding entry in the directory storage unit 2011 is duplicated. At the same time. Similarly, if the entry in which a 1-bit error is detected in step S1 is an entry in the directory storage unit 2011, the entry in the corresponding data storage unit 2021 is also duplexed at the same time as the entry is duplexed. In addition, before copying the data of the entry in which the 1-bit error is detected, the directory error correction unit 2033 or the data error correction unit 2043 determines that the 1-bit error in the data or information of the entry in which the 1-bit error is detected. Correct the error. In addition, “10101” (duplexed) is stored in the field of the duplex flag 403 of the entry in which the 1-bit error is detected and the entry on the other side of the duplex, and the field of the way number 404 is duplexed. Stores the other party's way number. After step S9 ends, the process of FIG. 6 ends.
 図7は、図3のステップS104、及び図6のステップS8で実施する、エントリの無効化処理の流れを示すフローチャートである。 FIG. 7 is a flowchart showing the flow of entry invalidation processing performed in step S104 of FIG. 3 and step S8 of FIG.
 ステップS21で、ディレクトリ更新部2035は、無効化処理するエントリがデータの格納に使用されていない(無効)か否かを判定する。すなわち無効化処理するエントリに係るステータス401が「00」(invalid)か否かを判定する。無効化処理するエントリがデータの格納に使用されていない(無効)場合(invalid),無効化するエントリは無効化処理された状態(invalid)になっており、図7の処理を終了する。 In step S21, the directory update unit 2035 determines whether the entry to be invalidated is not used for data storage (invalid). That is, it is determined whether or not the status 401 related to the entry to be invalidated is “00” (invalid). If the entry to be invalidated is not used for data storage (invalid) (invalid), the entry to be invalidated is in the invalidated state (invalid), and the processing in FIG. 7 ends.
 他方、無効化処理するエントリがデータの格納に使用されていない(無効)状態(invalid)ではない場合(ステップS21のNo),ステップS22に移行する。ステップS22でディレクトリ更新部2035は、無効化するエントリに格納されているデータに対応するデータをCPUコア100が格納するか否かを判定する。すなわち、一次キャッシュステータス402が「10」(clean)或いは「11」(dirtyの可能性有り)か否かを判定する。一次キャッシュステータス402が「00」(invalid)であれば(ステップS22のNo),ステップS27に移行する。一次キャッシュステータス402が「10」(clean)或いは「11」(dirtyの可能性有り)であれば(ステップS22のYes),ステップS23に移行する。 On the other hand, if the entry to be invalidated is not used for storing data (invalid) (invalid) (No in step S21), the process proceeds to step S22. In step S22, the directory update unit 2035 determines whether or not the CPU core 100 stores data corresponding to the data stored in the entry to be invalidated. That is, it is determined whether or not the primary cache status 402 is “10” (clean) or “11” (possibility of dirty). If the primary cache status 402 is “00” (invalid) (No in step S22), the process proceeds to step S27. If the primary cache status 402 is “10” (clean) or “11” (possibility of dirty) (Yes in step S22), the process proceeds to step S23.
 ステップS23でディレクトリ更新部2035は、まずCPUコア100に対し、上記対応するデータの無効化を要求する。一次キャッシュ部102と二次キャッシュ制御部200との間でデータの整合性(キャッシュコヒーレンシ:cache coherency)を確保するためである。CPUコア100の一次キャッシュ部102はデータの無効化要求を受け、上記無効化が要求された対応するデータが二次キャッシュ制御部200が格納するデータと一致する(clean)か否かを判定する(ステップS24)。例えば一次キャッシュ部102が格納するデータが書き換えられ、それに伴って二次キャッシュ制御部200が格納するデータが書き換え後のデータに書き戻されない場合を想定する。この場合、一次キャッシュ部102が格納するデータは二次キャッシュ制御部200が格納するデータと一致しない(dirty)。一次キャッシュ部102が格納するデータが、二次キャッシュ制御部200が格納するデータと一致しない(dirty)場合(ステップS24のNo)、ステップS25に移行する。他方、一次キャッシュ部102が格納するデータが、二次キャッシュ制御部200が格納するデータと一致する(clean)場合(ステップS24のYes)、ステップS26に移行する。 In step S23, the directory update unit 2035 first requests the CPU core 100 to invalidate the corresponding data. This is to ensure data consistency (cache coherency) between the primary cache unit 102 and the secondary cache control unit 200. The primary cache unit 102 of the CPU core 100 receives the data invalidation request, and determines whether or not the corresponding data for which the invalidation is requested matches the data stored in the secondary cache control unit 200 (clean). (Step S24). For example, it is assumed that the data stored in the primary cache unit 102 is rewritten and the data stored in the secondary cache control unit 200 is not written back to the rewritten data. In this case, the data stored in the primary cache unit 102 does not match the data stored in the secondary cache control unit 200 (dirty). When the data stored in the primary cache unit 102 does not match the data stored in the secondary cache control unit 200 (dirty) (No in step S24), the process proceeds to step S25. On the other hand, when the data stored in the primary cache unit 102 matches (clean) the data stored in the secondary cache control unit 200 (Yes in step S24), the process proceeds to step S26.
 ステップS25では、一次キャッシュ部102は,無効化が要求されたデータを二次キャッシュ制御部200に書き戻す。その結果、一次キャッシュ部102が格納するデータは二次キャッシュ制御部200が格納するデータと一致する(clean)。その後、ステップS26に移行する。ステップS26では、一次キャッシュ部102は、一次キャッシュ部102において無効化が要求されたデータを無効化し、ステップS27に移行する。 In step S25, the primary cache unit 102 writes back the data requested to be invalidated to the secondary cache control unit 200. As a result, the data stored in the primary cache unit 102 matches the data stored in the secondary cache control unit 200 (clean). Thereafter, the process proceeds to step S26. In step S26, the primary cache unit 102 invalidates the data requested to be invalidated in the primary cache unit 102, and proceeds to step S27.
 ステップS27では、ディレクトリ更新部2035が、無効化するエントリに係るデータが、主記憶装置300における対応するデータと一致する(clean)か否かを判定する。すなわちステータス401が、「10」(clean)及び「11」(dirty)のいずれであるかを判定する。主記憶装置300におけるデータと一致する(clean)場合(ステップS27のYes)、すなわちステータス401が「10」の場合、ステップS29に移行する。主記憶装置300におけるデータと一致しない(dirty)場合(ステップS27のNo)、すなわちステータス401が「11」の場合、ステップS28に移行する。 In step S27, the directory update unit 2035 determines whether or not the data related to the invalidated entry matches (clean) the corresponding data in the main storage device 300. That is, it is determined whether the status 401 is “10” (clean) or “11” (dirty). If the data matches the data in the main storage device 300 (clean) (Yes in step S27), that is, if the status 401 is “10”, the process proceeds to step S29. If the data does not match the data in the main storage device 300 (dirty) (No in step S27), that is, if the status 401 is “11”, the process proceeds to step S28.
 ステップS28でディレクトリ更新部2035は、無効化するエントリに係るデータを主記憶装置300へ書き戻す。その結果、無効化するエントリに係るデータ主記憶装置300におけるデータと一致する(clean)。 In step S28, the directory update unit 2035 writes back the data related to the entry to be invalidated to the main storage device 300. As a result, it matches the data in the data main storage device 300 related to the entry to be invalidated (clean).
 ステップS29では、ディレクトリ更新部2035は、無効化するエントリに係るデータを無効化する。すなわち、ディレクトリ格納部2011における無効化するエントリに係るステータス401に「00」(invalid)を格納する。ステップS29の終了後、図7の処理を終了する。 In step S29, the directory update unit 2035 invalidates the data related to the entry to be invalidated. That is, “00” (invalid) is stored in the status 401 related to the entry to be invalidated in the directory storage unit 2011. After step S29 ends, the process of FIG. 7 ends.
 図8は、二次キャッシュ制御部200からデータが読み出される際の処理の流れを示すフローチャートである。 FIG. 8 is a flowchart showing a flow of processing when data is read from the secondary cache control unit 200.
 ここで、CPUコア100からリード要求がなされ、hit Way検査部2034による検索によってリード要求に係るディレクトリ格納部2011のエントリが得られた場合を想定する。その場合、ステップS41で、データ選択部2046は、エラー検査部2031或いはエラー検査部2041がディレクトリ格納部2011或いはデータ格納部2021における2ビットエラーを検出したか否かを判定する。2ビットエラーが検出された場合(ステップS41のYes)、ステップS42に移行する。2ビットエラーが検出されない場合(ステップS41のNo)、ステップS43に移行する。 Here, it is assumed that a read request is made from the CPU core 100 and an entry in the directory storage unit 2011 related to the read request is obtained by the search by the hit way inspection unit 2034. In this case, in step S41, the data selection unit 2046 determines whether the error checking unit 2031 or the error checking unit 2041 has detected a 2-bit error in the directory storage unit 2011 or the data storage unit 2021. When a 2-bit error is detected (Yes in step S41), the process proceeds to step S42. When a 2-bit error is not detected (No in step S41), the process proceeds to step S43.
 ステップS43にて、データ選択部2046は、エラー検査部2031又はエラー検査部2041が1ビットエラーを検出したか否かを判定する。1ビットエラーが検出されない場合(ステップS43のNo)、エントリから読み出したデータをCPUコア100に転送し、図8の処理を終了する。1ビットエラーが検出された場合(ステップS43のYes),ステップS44に移行する。ステップS44では、ディレクトリエラー訂正部2033或いはデータエラー訂正部2043が、上記1ビットエラーを訂正し、訂正後のデータ或いは情報をディレクトリ格納部2011或いはデータ格納部2021に格納(再書込み)する。そしてデータ選択部2046は、読み出した(或いはステップS44で1ビットエラーが訂正された)データをCPUコア100に転送し、図8の処理を終了する。 In step S43, the data selection unit 2046 determines whether the error checking unit 2031 or the error checking unit 2041 has detected a 1-bit error. If a 1-bit error is not detected (No in step S43), the data read from the entry is transferred to the CPU core 100, and the process of FIG. If a 1-bit error is detected (Yes in step S43), the process proceeds to step S44. In step S44, the directory error correction unit 2033 or the data error correction unit 2043 corrects the 1-bit error, and stores (rewrites) the corrected data or information in the directory storage unit 2011 or the data storage unit 2021. Then, the data selection unit 2046 transfers the read data (or the 1-bit error is corrected in step S44) to the CPU core 100, and ends the process of FIG.
 他方、ステップS41にて、2ビットエラーが検出された場合(Yes),ステップS42に移行する。ステップS42でディレクトリ選択部2046は、2ビットエラーが検出されたエントリが二重化されているか否かを判定する。ステップS42で2ビットエラーが検出されたエントリが二重化されていない場合(No),ステップS48に移行する。ステップS48で、データ選択部2046は、CPUコア100に対し、リード要求に係るデータが訂正不能のエラーを有する旨を報告し,図8の処理を終了する。 On the other hand, if a 2-bit error is detected in step S41 (Yes), the process proceeds to step S42. In step S42, the directory selection unit 2046 determines whether the entry in which the 2-bit error is detected is duplicated. If the entry in which the 2-bit error is detected in step S42 is not duplicated (No), the process proceeds to step S48. In step S48, the data selection unit 2046 reports to the CPU core 100 that the data related to the read request has an uncorrectable error, and ends the process of FIG.
 ステップS42で2ビットエラーが検出されたエントリが二重化されている場合(Yes),ステップS45に移行する。尚、エントリの二重化がなされた対のエントリに係るデータに対するリード要求がCPUコア100からなされた場合、hit Way検査部2034は検索の結果、二重化がなされた対のエントリのうち、まず2ビットエラーが検出された一方のエントリを得る。ステップS45でディレクトリ選択部2046は、2ビットエラーが検出された一方のエントリを縮退し、ステップS46に移行する。ステップS46でディレクトリ選択部2046は、上記対のエントリの相手側のエントリを選択し選択したエントリからデータを読み出す。そしてディレクトリ更新部2035が、相手側のエントリに係る二重化フラグ403に、二重化されていない状態を示す「01010」を格納して二重化を解消し、ステップS47に移行する。 If the entry in which the 2-bit error is detected in step S42 is duplicated (Yes), the process proceeds to step S45. When the CPU core 100 makes a read request for data related to a paired entry whose entry has been duplicated, the hit way checking unit 2034 first finds a 2-bit error among the duplicated entries as a result of the search. Get one entry where is detected. In step S45, the directory selection unit 2046 degenerates one entry in which the 2-bit error is detected, and proceeds to step S46. In step S46, the directory selection unit 2046 selects an entry on the other side of the pair of entries and reads data from the selected entry. Then, the directory updating unit 2035 stores “01010” indicating the state of not being duplexed in the duplexing flag 403 related to the entry on the other side, cancels the duplexing, and proceeds to step S47.
 ステップS47でデータ選択部2046は、相手側のエントリにつき、エラー検査部2031或いはエラー検査部2041が、ディレクトリ格納部2011或いはデータ格納部2021において2ビットエラーを検出したかを判定する。2ビットエラーが検出された場合,ステップS48に移行する。2ビットエラーが検出されなかった場合,ステップS43に移行する。 In step S47, the data selection unit 2046 determines whether the error check unit 2031 or the error check unit 2041 detects a 2-bit error in the directory storage unit 2011 or the data storage unit 2021 for the entry on the other side. If a 2-bit error is detected, the process proceeds to step S48. If no 2-bit error is detected, the process proceeds to step S43.
 尚、ディレクトリ格納部2011にて2ビットエラーが生じた場合、2ビットエラーであるためECCは訂正できず、2ビットエラーを有するエントリの物理アドレスの一部400を読むことができない。この場合、CPUコア100からのリード要求に応じたデータがデータ格納部2021に格納されていても、hit Way検査部2034はディレクトリ格納部2011の検索によってエントリを得ることができない。しかしながら二重化されているエントリにおいては、2ビットエラーを有するエントリを縮退するのに必要は情報を得ることができる。ここで、ディレクトリ格納部2011において、二重化された対のエントリのうち一方のエントリから2ビットエラーが検出された場合を想定する。 If a 2-bit error occurs in the directory storage unit 2011, the ECC cannot be corrected because it is a 2-bit error, and part of the physical address 400 of the entry having the 2-bit error cannot be read. In this case, even if the data corresponding to the read request from the CPU core 100 is stored in the data storage unit 2021, the hit way inspection unit 2034 cannot obtain an entry by searching the directory storage unit 2011. However, in duplicate entries, the information necessary to degenerate entries with 2-bit errors can be obtained. Here, it is assumed that the directory storage unit 2011 detects a 2-bit error from one of the paired entries.
 この場合、上記対のエントリの相手側のエントリはエラーが検出されず,或いは1ビットエラーが検出され訂正が可能であるとすると、hit Way検査部2034は相手側のエントリの物理アドレスの一部400を読むことができる。その結果、hit Way検査部2034は上記CPUコア100からリード要求に対し、エントリに保持されたデータを得ることができる。したがって、以下の3条件(1)、(2)、(3)が満たされる場合、2ビットエラーが検出されたエントリの縮退及びエラーが検出されたエントリの二重化の解消が必要であると判定することができる。
(1)hit Way検査部2034が検索によって得たエントリは1つのみである。
(2)検索によって得たエントリは二重化されている。
(3)検索によって得たエントリと同一インデックス上で、検索によって得たエントリのWay番号404のフィールドが示すウェイ(相手側のエントリ)で2ビットエラーが検出されている。
In this case, assuming that no error is detected in the partner entry of the paired entry, or that a 1-bit error is detected and correction is possible, the hit way checking unit 2034 is a part of the physical address of the partner entry. 400 can be read. As a result, the hit way inspection unit 2034 can obtain data held in the entry in response to a read request from the CPU core 100. Therefore, when the following three conditions (1), (2), and (3) are satisfied, it is determined that degeneration of an entry in which a 2-bit error is detected and duplication of an entry in which an error is detected need to be eliminated. be able to.
(1) The hit way inspection unit 2034 has only one entry obtained by the search.
(2) The entries obtained by the search are duplicated.
(3) On the same index as the entry obtained by the search, a 2-bit error is detected in the way (entry side entry) indicated by the field of the way number 404 of the entry obtained by the search.
 又、このような2ビットエラーからの回復処理、すなわち2ビットエラーを有するエントリの縮退及び二重化の解消を可能にするため、二重化フラグ403は、多重化され、重化フラグ403内部で2ビットエラーの訂正を行えるものであることが望ましい。ここで多重化とは、情報の冗長度を増加させることを意味する。例えば図4に示す例では、二重化フラグは「01010」、「10101」の各5ビットであるが、本来は1ビットで足りる。これを5ビットとすることにより、冗長度が4重となり、5ビットのうち、2ビットが反転しても、残りの3ビットによって二重化がなされているか否かを判定し得る(多数決)。よって2ビットエラーまで訂正できる。 In addition, in order to enable recovery processing from such a 2-bit error, that is, to degenerate an entry having a 2-bit error and to eliminate duplication, the duplex flag 403 is multiplexed and a 2-bit error is generated inside the duplication flag 403. It is desirable to be able to correct the above. Here, multiplexing means increasing information redundancy. For example, in the example shown in FIG. 4, the duplex flag is 5 bits of “01010” and “10101”, but 1 bit is sufficient. By setting this to 5 bits, the redundancy becomes quadruple, and even if 2 bits of the 5 bits are inverted, it can be determined whether the remaining 3 bits are duplicated (majority decision). Therefore, it is possible to correct up to a 2-bit error.
 又、二重化された対のエントリのうちの一方のエントリがリプレイスの対象となった場合、リプレイスの対象となった一方のエントリとともに、対の相手側のエントリも同時期に無効化処理される。そしてこのように同時期に無効化処理された対のエントリの夫々に、同時期に主記憶装置300から読み出されたデータが二重化されて格納される。ここでリプレイスとは、上述した図5のステップS104,S105,S106,S107の如くの処理を言う。すなわち、主記憶装置300からデータが読み出されて(S105、S106)二次キャッシュ制御部200に格納される(S107)際、格納に使用するエントリを確保するために、エントリの無効化処理がなされる(S104)。そして無効化処理されたエントリに主記憶装置300から読み出されたデータが格納される(S107)。 In addition, when one of the duplicated entries becomes a replacement target, the entry on the other party side of the pair is invalidated at the same time as the replacement target entry. The data read from the main storage device 300 at the same time is duplicated and stored in each of the paired entries invalidated at the same time in this way. Here, “replace” refers to processing as in steps S104, S105, S106, and S107 of FIG. That is, when data is read from the main storage device 300 (S105, S106) and stored in the secondary cache control unit 200 (S107), an entry invalidation process is performed to secure an entry used for storage. (S104). Then, the data read from the main storage device 300 is stored in the invalidated entry (S107).
 次に図9A,図9B,図10とともに、実施例1の変形例1について説明する。実施例1の変形例1は、上述した実施例1とほぼ同様の構成を有する。したがって実施例1と異なる点について主に説明し、実施例1と同様の構成については適宜重複する説明を省略する。 Next, Modification 1 of Embodiment 1 will be described with reference to FIGS. 9A, 9B, and 10. The first modification of the first embodiment has substantially the same configuration as the first embodiment described above. Therefore, differences from the first embodiment will be mainly described, and the same description as in the first embodiment will be omitted as appropriate.
 図9A,図9Bは、上述した図3A,図3Bに夫々対応するディレクトリ格納部2011及びデータ格納部2021の夫々のデータ構造の例を示す。実施例1の変形例1が実施例1と異なる点は,図10とともに後述する交換フラグ409を設けることにより、二重化した対のエントリについてディレクトリ格納部2011とデータ格納部2021との間の対応関係の相手側を交換することを可能にする。すなわち,例えば上述した図3A,図3Bに示されるディレクトリ格納部2011及びデータ格納部2021の夫々において、隣接する2つのエントリであるインデックス0,ウェイ0のエントリ、及びインデックス0,ウェイ1のエントリが二重化されて対のエントリとなる場合を想定する。このような場合に、上記交換フラグ409のフィールドを設け、対のエントリについて対応関係の相手側を交換することにより、図9A,図9Bに示す如くの対応関係とすることができる。すなわち交換後の対応関係では、ディレクトリ格納部2011中のインデックス0,ウェイ0のエントリ(A)がデータ格納部2021中のインデックス0,ウェイ1のエントリ(A')に対応する。そして、ディレクトリ格納部2011中のインデックス0,ウェイ1のエントリ(B)が、データ格納部2021中のインデックス0,ウェイ0のエントリ(B')に対応する。尚、説明の便宜上、図9Bでは図3Bと異なり、データ格納部2021のインデックス0,ウェイ0のエントリに「B'」を付し、データ格納部2021のインデックス0,ウェイ1のエントリに「A'」を付した。これはディレクトリ格納部2011とデータ格納部2021との間のエントリ同士の対応関係を明確にするためである。 9A and 9B show examples of the data structures of the directory storage unit 2011 and the data storage unit 2021 corresponding to the above-described FIGS. 3A and 3B, respectively. The first modification of the first embodiment is different from the first embodiment in that a correspondence relationship between the directory storage unit 2011 and the data storage unit 2021 is provided for a pair of duplicated entries by providing an exchange flag 409 described later with reference to FIG. It is possible to exchange the other party. That is, for example, in each of the directory storage unit 2011 and the data storage unit 2021 shown in FIG. 3A and FIG. 3B described above, two adjacent entries, index 0, way 0 entry, and index 0, way 1 entry, Assume that the entry is duplicated to form a pair entry. In such a case, by providing a field for the exchange flag 409 and exchanging the counterpart of the correspondence relationship for the pair of entries, the correspondence relationship as shown in FIGS. 9A and 9B can be obtained. That is, in the correspondence after the exchange, the entry (A) of index 0 and way 0 in the directory storage unit 2011 corresponds to the entry (A ′) of index 0 and way 1 in the data storage unit 2021. An entry (B) of index 0 and way 1 in the directory storage unit 2011 corresponds to an entry (B ′) of index 0 and way 0 in the data storage unit 2021. For convenience of explanation, in FIG. 9B, unlike FIG. 3B, “B ′” is added to the entries of index 0 and way 0 in the data storage unit 2021, and “A” is added to the entries of index 0 and way 1 in the data storage unit 2021. "" Was added. This is to clarify the correspondence between entries between the directory storage unit 2011 and the data storage unit 2021.
 ここで、例えば図3A,図3Bに開示された状態で二重化されている場合に、ディレクトリ格納部2011のインデックス0,ウェイ0のエントリ(A)とデータ格納部2021のインデックス0,ウェイ1のエントリ(B')とが、例えば夫々2ビットエラーが検出されることにより、各々のエントリが縮退の対象となった場合を想定する。この場合、縮退の対象となったデータ格納部2021のエントリ(B')に対応するディレクトリ格納部2011のエントリ(B)も、同様に縮退の対象となる。同様に、縮退の対象となったディレクトリ格納部2011のエントリ(A)に対応するデータ格納部2021のエントリ(A')も、同様に縮退の対象となる。その結果、二次キャッシュ制御部200において、ディレクトリ格納部2011のエントリ(A),(B)と、これらに夫々対応するデータ格納部2021のエントリ(A'),(B')とが、夫々縮退の対象となるため、いずれのエントリも使用ができなくなる。 Here, for example, when duplication is performed in the state disclosed in FIGS. 3A and 3B, the index 0 and way 0 entry (A) in the directory storage unit 2011 and the index 0 and way 1 entry in the data storage unit 2021 (B ′) is assumed to be a case where each entry becomes a target of degeneration by detecting, for example, a 2-bit error. In this case, the entry (B) of the directory storage unit 2011 corresponding to the entry (B ′) of the data storage unit 2021 that is the target of degeneration is also the target of degeneration. Similarly, the entry (A ′) of the data storage unit 2021 corresponding to the entry (A) of the directory storage unit 2011 that is the target of degeneration is also the target of degeneration. As a result, in the secondary cache control unit 200, the entries (A) and (B) in the directory storage unit 2011, and the entries (A ′) and (B ′) in the data storage unit 2021 corresponding to these, respectively. Since it is a target of degeneration, neither entry can be used.
 これに対し、実施例1の変形例1の構成によれば、縮退の対象となるエントリの個数を最小限にすることができる。すなわち上記同様、図3A,図3Bの状態で二重化されている場合に、ディレクトリ格納部2011のインデックス0,ウェイ0のエントリ(A)とデータ格納部2021のインデックス0,ウェイ1のエントリ(B')とが夫々縮退の対象となった場合を想定する。この場合、図9A,図9Bに示す如くに、二重化された対のエントリにつき、ディレクトリ格納部2011とデータ格納部2021との間の対応関係の相手側を以下のように交換する。対応関係の相手側の交換によって、夫々が2ビットエラーの検出によって縮退の対象となったエントリ同士が新たに対応関係を持つようになり、それ以外のエントリ同士が新たに対応関係を持つようになる。すなわち、2ビットエラーの検出によって縮退の対象となった、ディレクトリ格納部2011中のインデックス0,ウェイ0のエントリ(A)と、データ格納部2021中のインデックス0,ウェイ1のエントリ(A')とが対応する。又、それ以外の、ディレクトリ格納部2011中のインデックス0,ウェイ1のエントリ(B)と、データ格納部2021中のインデックス0,ウェイ0のエントリ(B')とが対応する。その結果、ディレクトリ格納部2011のインデックス0,ウェイ1のエントリ(B)と、これに対応するデータ格納部2021のインデックス0,ウェイ0のエントリ(B')とが、引き続き使用可能となる。 On the other hand, according to the configuration of the first modification of the first embodiment, the number of entries to be degenerated can be minimized. That is, as described above, when duplication is performed in the state of FIGS. 3A and 3B, the index 0 and way 0 entry (A) in the directory storage unit 2011 and the index 0 and way 1 entry (B ′ in the data storage unit 2021) ) And are each subject to degeneration. In this case, as shown in FIGS. 9A and 9B, the counterpart of the correspondence relationship between the directory storage unit 2011 and the data storage unit 2021 is exchanged as follows for the pair of duplicated entries. By exchanging the counterparts of the correspondence relationship, the entries that are subject to degeneration due to the detection of a 2-bit error will have a new correspondence relationship, and the other entries will have a new correspondence relationship. Become. In other words, the entry (A) of index 0 and way 0 in the directory storage unit 2011 and the entry of index 0 and way 1 in the data storage unit 2021 (A ′) that are subject to degeneration due to detection of a 2-bit error. Corresponds. In addition, the entry (B) of index 0 and way 1 in the directory storage unit 2011 and the entry (B ′) of index 0 and way 0 in the data storage unit 2021 correspond to each other. As a result, the index 0 and way 1 entry (B) of the directory storage unit 2011 and the corresponding index 0 and way 0 entry (B ′) of the data storage unit 2021 can continue to be used.
 図10は、実施例1の変形例1において使用可能なディレクトリ格納部2011の各エントリのデータ構造の例を示す。図4に示す実施例1の場合と比較すると、エラー回数406のフィールドの代わりに、ディレクトリエラー回数407,データエラー回数408の各フィールドが含まれる。更に、交換フラグ409のフィールドが新たに含められる。 FIG. 10 shows an example of the data structure of each entry in the directory storage unit 2011 that can be used in the first modification of the first embodiment. Compared to the case of the first embodiment shown in FIG. 4, each field of the directory error count 407 and the data error count 408 is included instead of the error count 406 field. Further, a field for the exchange flag 409 is newly included.
 ディレクトリエラー回数407のフィールドは、ディレクトリエラー回数407のフィールドが属するディレクトリ格納部2011のエントリにおけるエラー検出回数を格納する。すなわち、ディレクトリエラー回数407のフィールドが属するディレクトリ格納部2011のエントリの読み出しの際にエラー検査部2031が1ビットエラーを検出した回数を格納する。データエラー回数408のフィールドは、データエラー回数408のフィールドが属するディレクトリ格納部2011のエントリに対応するデータ格納部2021のエントリにおけるエラー検出回数を格納する。すなわち、データエラー回数408のフィールドが属するディレクトリ格納部2011のエントリに対応するデータ格納部2021のエントリの読み出しの際にエラー検査部2041が1ビットエラーを検出した回数を格納する。その結果、ディレクトリ格納部2011とデータ格納部2021とでエラー検出回数を個別に示すことができるようになり、当初は対応関係になかったディレクトリ格納部2011のエントリ及びデータ格納部2021のエントリの夫々についてエラー検出回数が規定値を超えた場合、これを検出できる。例えば元々は対応関係にないディレクトリ格納部2011中のインデックス0,ウェイ0のエントリ及びデータ格納部2021中のインデックス0,ウェイ1のエントリの夫々についてディレクトリ格納部2011中のインデックス0,ウェイ0のエントリ及びデータ格納部2021中のインデックス0,ウェイ1のエントリのそれぞれのエラー検出回数が規定値を超えた場合、これを検出できる。そして検出を契機として、図9A,図9Bとともに上記したように、交換フラグを使用して対応関係の相手側の交換を行う制御を行い得る。すなわち、正常な側のディレクトリ格納部2011中のインデックス0,ウェイ1のエントリとデータ格納部2021中のインデックス0,ウェイ0のエントリとに対応関係を持たせる制御を行い得る。 The field of the directory error frequency 407 stores the error detection frequency in the entry of the directory storage unit 2011 to which the field of the directory error frequency 407 belongs. That is, the number of times that the error checking unit 2031 has detected a 1-bit error when reading the entry of the directory storage unit 2011 to which the field of the directory error number 407 belongs is stored. The field of the data error count 408 stores the number of times of error detection in the entry of the data storage unit 2021 corresponding to the entry of the directory storage unit 2011 to which the field of the data error count 408 belongs. That is, the number of times that the error checking unit 2041 has detected a 1-bit error when reading the entry of the data storage unit 2021 corresponding to the entry of the directory storage unit 2011 to which the field of the data error count 408 belongs is stored. As a result, the directory storage unit 2011 and the data storage unit 2021 can individually indicate the number of error detections, and each of the entry of the directory storage unit 2011 and the entry of the data storage unit 2021 that was not initially associated with each other. This can be detected when the number of error detections exceeds the specified value. For example, the entry of index 0 and way 0 in the directory storage unit 2011 for each of the entry of index 0 and way 0 in the directory storage unit 2011 and the entry of index 0 and way 1 in the data storage unit 2021 that are not originally associated with each other. When the number of error detections of the entries of index 0 and way 1 in the data storage unit 2021 exceeds a specified value, this can be detected. Then, using the detection as an opportunity, as described above with reference to FIGS. 9A and 9B, it is possible to perform control for exchanging the counterpart of the correspondence relationship using the exchange flag. That is, it is possible to perform a control so that the entry of index 0 and way 1 in the normal directory storage unit 2011 and the entry of index 0 and way 0 in the data storage unit 2021 have a corresponding relationship.
 交換フラグ409のフィールドは、ディレクトリ格納部2011およびデータ格納部2021の夫々のエントリが二重化されている場合に、二重化の対の相手側のエントリとの間でディレクトリ格納部2011とデータ格納部2021との間の対応関係の相手側が相互に交換されているか否かを示す情報を格納する。「0」はディレクトリ格納部2011とデータ格納部2021との間の対応関係の相手側が相互に交換されていない状態(例えば図3A,図3Bの状態)を示す。「1」はディレクトリ格納部2011とデータ格納部2021との間の対応関係の相手側が相互に交換されている状態(例えば図9A,図9Bの状態)を示す。ディレクトリ格納部2011とデータ格納部2021との間の対応関係の相手側が相互に交換されている場合、データ選択部2046は以下の処理を行う。すなわち、hit Way検査部2034が検索によって得たディレクトリ格納部2011のエントリのWay番号404のフィールドが示す二重化の対の相手側のエントリに対応するデータ格納部2021のエントリを選択し選択したエントリからデータを読み出す。 The field of the exchange flag 409 includes the directory storage unit 2011 and the data storage unit 2021 between the entries of the counterpart of the duplex pair when the entries of the directory storage unit 2011 and the data storage unit 2021 are duplexed. The information which shows whether the other party of the correspondence relationship between is mutually exchanged is stored. “0” indicates a state where the counterparts of the correspondence relationship between the directory storage unit 2011 and the data storage unit 2021 are not exchanged with each other (for example, the state of FIGS. 3A and 3B). “1” indicates a state where the counterparts of the correspondence relationship between the directory storage unit 2011 and the data storage unit 2021 are exchanged with each other (for example, the states of FIGS. 9A and 9B). When the counterparts of the correspondence relationship between the directory storage unit 2011 and the data storage unit 2021 are exchanged with each other, the data selection unit 2046 performs the following processing. That is, from the entry selected by selecting the entry of the data storage unit 2021 corresponding to the entry of the other side of the duplex pair indicated by the field of the way number 404 of the entry of the directory storage unit 2011 obtained by the search by the hit way inspection unit 2034 Read data.
 次に図11とともに、実施例1の変形例2の説明を行う。実施例1の変形例2は、上述した実施例1とほぼ同様の構成を有する。したがって実施例1と異なる点について主に説明し、実施例1と同様の構成については重複する説明を適宜省略する。 Next, Modification 2 of Embodiment 1 will be described with reference to FIG. The second modification of the first embodiment has substantially the same configuration as the first embodiment described above. Therefore, the difference from the first embodiment will be mainly described, and the same description as that of the first embodiment will be appropriately omitted.
 データ格納部2021の各エントリに格納されているデータが主記憶装置300に格納されているデータと一致する(clean)場合には、仮にデータ格納部2021のエントリで、ECCでは訂正不可能な2ビットエラーが生じも復元が可能である。すなわち、対応するデータを主記憶装置300から読み出すことにより、同一のデータをデータ格納部2021において復元することができる。このような観点から、実施例1の変形例2では、データ格納部2021の各エントリに格納されたデータのうち、主記憶装置300のデータと一致しない(dirty)データを格納するエントリのみを、エントリの二重化の対象とする。すなわち、dirtyなデータを格納するエントリからデータが読み出された際に1ビットエラーが検出された場合、エラーが検出されたエントリの二重化を行う。 If the data stored in each entry in the data storage unit 2021 matches (clean) with the data stored in the main storage device 300, it is an entry in the data storage unit 2021, which is not correctable by ECC. Even if a bit error occurs, it can be restored. That is, the same data can be restored in the data storage unit 2021 by reading the corresponding data from the main storage device 300. From this point of view, in the second modification of the first embodiment, among the data stored in each entry of the data storage unit 2021, only the entry that stores data that does not match the data in the main storage device 300 (dirty) The entry is to be duplicated. That is, if a 1-bit error is detected when data is read from an entry that stores dirty data, the entry in which the error is detected is duplicated.
 図11とともに、実施例1の変形例2におけるエントリの二重化処理の流れを説明する。図11中、ステップS1~S3,ステップS4~S9は、夫々図6中のステップS1~S3,ステップS4~S9に対応し、夫々同様の処理内容を有するため、重複する説明を省略する。 Referring to FIG. 11, the flow of entry duplication processing in the second modification of the first embodiment will be described. In FIG. 11, Steps S1 to S3 and Steps S4 to S9 correspond to Steps S1 to S3 and Steps S4 to S9 in FIG. 6, respectively, and have the same processing contents, and redundant description is omitted.
 ステップS3Aで、ディレクトリ更新部2035は、ステップS2で1ビットエラーのエラー検出回数が規定値を超えたエントリに係るステータス401を参照する。そして、データ格納部2021のエントリのデータが主記憶装置300のデータと一致しない(dirty)旨を示す「11」が格納されているか否かを判定する。主記憶装置300のデータと一致しない(dirty)旨を示す「11」が格納されている場合(ステップS3AのYes),ステップS4に移行する。他方、主記憶装置300のデータと一致しない(dirty)旨を示す「11」が格納されていない場合(ステップS3AのNo)、図11の処理を終了する。 In step S3A, the directory update unit 2035 refers to the status 401 related to the entry in which the error detection count of the 1-bit error exceeds the specified value in step S2. Then, it is determined whether or not “11” indicating that the data of the entry of the data storage unit 2021 does not match (dirty) with the data of the main storage device 300 is stored. When “11” indicating that it does not match (dirty) with the data in the main storage device 300 is stored (Yes in step S3A), the process proceeds to step S4. On the other hand, if “11” indicating that it does not match (dirty) with the data in the main storage device 300 is not stored (No in step S3A), the processing in FIG. 11 is terminated.
 又、上記した実施例1,実施例1の変形例1、実施例1の変形例2では、1ビットエラーの検出を契機として、該当するエントリの二重化(図6,図11)を行う。しかしながら、このような構成とは異なり、1ビットエラーの検出を契機することなく、システムのスタート当初から、ディレクトリ格納部2011及びデータ格納部2021の全てのエントリを二重化するようにしてもよい。このような構成とすることにより、1ビットエラーの発生を経ずに、2ビットエラーが発生するような状況が生じた場合であっても、常に二重化の対の相手側のエントリからデータを読み出すことができる。したがって、1ビットエラーの発生を経ない2ビットエラーに対しても有効である。 Further, in the first modification of the first embodiment and the first embodiment and the second modification of the first embodiment, the corresponding entry is duplicated (FIGS. 6 and 11) triggered by the detection of a 1-bit error. However, unlike such a configuration, all entries in the directory storage unit 2011 and the data storage unit 2021 may be duplicated from the beginning of the system without triggering detection of a 1-bit error. By adopting such a configuration, even when a situation in which a 2-bit error occurs without causing a 1-bit error, data is always read from the entry on the other side of the duplex pair. be able to. Therefore, it is also effective for a 2-bit error that does not undergo a 1-bit error.
 100 CPUコア
 200 二次キャッシュ制御部
 201 二次キャッシュディレクトリ部
 202 二次キャッシュデータ部
 203 ディレクトリ検査部
 204 データ検査部
 2011 ディレクトリ格納部(第3の記憶部)
 2021 データ格納部(第2の記憶部)
 2031 エラー検査部
 2033 ディレクトリエラー訂正部(訂正部)
 2034 hit Way検査部(検索部)
 2035 ディレクトリ更新部
 2041 エラー検査部
 2043 データエラー訂正部(訂正部)
 2046 データ選択部
 300 主記憶装置(第1の記憶部)
DESCRIPTION OF SYMBOLS 100 CPU core 200 Secondary cache control part 201 Secondary cache directory part 202 Secondary cache data part 203 Directory inspection part 204 Data inspection part 2011 Directory storage part (3rd memory | storage part)
2021 Data storage unit (second storage unit)
2031 Error inspection unit 2033 Directory error correction unit (correction unit)
2034 hit Way inspection part (search part)
2035 Directory update unit 2041 Error check unit 2043 Data error correction unit (correction unit)
2046 Data selection unit 300 Main storage device (first storage unit)

Claims (20)

  1.  データを格納する第1の記憶部と、
     前記第1の記憶部から読み出されたデータに対する演算を行う演算部と、
     前記演算部が前記第1の記憶部から読み出したデータを格納するエントリを有する第2の記憶部と、
     前記第2の記憶部に格納されたデータの前記第1の記憶部におけるアドレス情報を格納するエントリを有する第3の記憶部と、
     前記第3の記憶部から前記演算部からのアクセス要求に対応するデータのアドレス情報を格納するエントリを検索する検索部と、
     前記検索部が検索した前記第3の記憶部のエントリに対応付けられたデータを格納する前記第2の記憶部のエントリから前記アクセス要求に対応するデータを読み出して前記演算部に転送するデータ選択部と、
     前記第2の記憶部或いは前記第3の記憶部のエントリのエラーを検出するエラー検査部と、
     前記エラー検査部がエラーを検出した前記第2の記憶部のエントリが格納するデータを、前記第2の記憶部の他のエントリに複製し、前記エラー検査部がエラーを検出した前記第3の記憶部のエントリが格納する情報を前記第3の記憶部の他のエントリに複製するディレクトリ更新部と、を有することを特徴とする、演算処理装置。
    A first storage unit for storing data;
    An arithmetic unit that performs an operation on data read from the first storage unit;
    A second storage unit having an entry for storing data read from the first storage unit by the arithmetic unit;
    A third storage unit having an entry for storing address information in the first storage unit of data stored in the second storage unit;
    A search unit for searching for an entry storing address information of data corresponding to an access request from the arithmetic unit from the third storage unit;
    Data selection for reading data corresponding to the access request from the entry in the second storage unit storing data associated with the entry in the third storage unit searched by the search unit and transferring the data to the arithmetic unit And
    An error checking unit for detecting an error in an entry in the second storage unit or the third storage unit;
    The data stored in the entry of the second storage unit in which the error check unit has detected an error is copied to another entry in the second storage unit, and the third error check unit has detected an error. And a directory updating unit that replicates information stored in an entry of the storage unit to another entry of the third storage unit.
  2.  前記演算処理装置において、
     前記第2の記憶部は、前記第1の記憶部が格納するデータのアドレス情報に含まれるインデックス情報が示すインデックス毎に複数のウェイを有し、各インデックスの前記複数のウェイは夫々複数のデータを格納するエントリであり、前記複数のウェイが格納する前記複数のデータのアドレス情報はインデックス情報の部分が共通し他の部分が異なり、
     前記第3の記憶部は、前記第1の記憶部が格納するデータのアドレス情報に含まれるインデックス情報が示すインデックス毎に複数のウェイを有し、各インデックスの前記複数のウェイは夫々複数のデータに係る情報を格納するエントリであり、前記複数のウェイが格納する情報に係る前記複数のデータのアドレス情報はインデックス情報の部分が共通し他の部分が異なり、
     前記ディレクトリ更新部は、前記エラー検査部が前記第2の記憶部のエントリのエラーを検出した場合、エラーを検出したエントリのデータを同一インデックス上の他のウェイのエントリに複製し、
     前記エラー検査部が前記第3の記憶部のエントリのエラーを検出した場合、エラーを検出したエントリの情報を同一インデックス上の他のウェイのエントリに複製することを特徴とする請求項1記載の演算処理装置。
    In the arithmetic processing unit,
    The second storage unit has a plurality of ways for each index indicated by index information included in address information of data stored in the first storage unit, and each of the plurality of ways in each index has a plurality of data. The address information of the plurality of data stored in the plurality of ways has a common index information part and other parts differ,
    The third storage unit has a plurality of ways for each index indicated by index information included in address information of data stored in the first storage unit, and each of the plurality of ways in each index has a plurality of data. The address information of the plurality of data related to the information stored in the plurality of ways has a common part of the index information and the other part is different.
    The directory update unit, when the error check unit detects an error in the entry of the second storage unit, duplicates the data of the entry in which the error is detected to the entry of another way on the same index,
    The information of the entry in which the error is detected is copied to an entry in another way on the same index when the error checking unit detects an error in the entry in the third storage unit. Arithmetic processing unit.
  3.  前記演算処理装置において、
     前記ディレクトリ更新部は、データ又は情報を複製した対のエントリに関し、前記第2の記憶部と前記第3の記憶部との間の対応関係の相手側を、前記対のエントリの一方のエントリと他方のエントリとの間で交換することを特徴とする請求項1記載の演算処理装置。
    In the arithmetic processing unit,
    The directory update unit relates to a pair of entries in which data or information is duplicated, and designates the counterpart of the correspondence relationship between the second storage unit and the third storage unit as one entry of the pair entry. 2. The arithmetic processing apparatus according to claim 1, wherein exchange is performed with the other entry.
  4.  前記演算処理装置において、
     前記ディレクトリ更新部は、前記第2の記憶部の前記他のエントリが有効なデータを格納する場合、前記他のエントリが格納するデータに対応するデータを前記演算部が格納し、且つ前記演算部が格納する前記対応するデータが前記第2の記憶部の他のエントリが格納するデータと一致する場合には前記演算部が格納する前記対応するデータを無効化し、一致するとは言えない場合には前記演算部が格納する前記対応するデータを前記第2の記憶部の前記他のエントリに書き戻した後に前記演算部が格納するデータを無効化し、
     前記演算部が格納する対応するデータの無効化の後、前記第2の記憶部の前記他のエントリが格納するデータが前記第1の記憶部が格納する対応するデータと一致する場合には前記第2の記憶部の前記他のエントリが格納するデータを無効化し、一致しない場合には前記第2の記憶部の前記他のエントリが格納するデータを前記第1の記憶部に書き戻した後に前記第2の記憶部の前記他のエントリが格納するデータを無効化することを特徴とする請求項1記載の演算処理装置。
    In the arithmetic processing unit,
    The directory update unit stores data corresponding to data stored in the other entry when the other entry of the second storage unit stores valid data, and the calculation unit When the corresponding data stored in the second storage unit matches the data stored in the other entry of the second storage unit, the corresponding data stored in the arithmetic unit is invalidated. Invalidate the data stored in the arithmetic unit after writing back the corresponding data stored in the arithmetic unit to the other entry in the second storage unit;
    After invalidation of the corresponding data stored in the arithmetic unit, if the data stored in the other entry of the second storage unit matches the corresponding data stored in the first storage unit, After invalidating the data stored in the other entry in the second storage unit and, if they do not match, writing back the data stored in the other entry in the second storage unit to the first storage unit 2. The arithmetic processing apparatus according to claim 1, wherein the data stored in the other entry of the second storage unit is invalidated.
  5.  前記演算処理装置において、
     前記ディレクトリ更新部は、前記第2の記憶部のエントリにおけるエラーの検出回数が規定値を超えた場合に、前記エラーの検出回数が規定値を超えたエントリのデータを同じインデックスの他のエントリに複製し、前記エラーの検出回数が規定値を超えた前記第2の記憶部のエントリに対応する前記第3の記憶部のエントリの情報を前記第2の記憶部の前記他のエントリに対応する前記第3の記憶部の他のエントリに複製し、
     前記第3の記憶部のエントリにおけるエラーの検出回数が規定値を超えた場合に、前記エラーの検出回数が規定値を超えたエントリの情報を同じインデックスの他のエントリに複製し、前記エラーの検出回数が規定値を超えた前記第3の記憶部のエントリに対応する前記第2の記憶部のエントリのデータを前記第3の記憶部の前記他のエントリに対応する前記第2の記憶部の他のエントリに複製することを特徴とする請求項1記載の演算処理装置。
    In the arithmetic processing unit,
    When the number of errors detected in the entry in the second storage unit exceeds a specified value, the directory update unit transfers the data of the entry in which the number of errors detected exceeds the specified value to another entry of the same index. The information of the entry in the third storage unit corresponding to the entry in the second storage unit that is duplicated and the number of times of detection of the error exceeds a specified value corresponds to the other entry in the second storage unit. Replicate to other entries in the third storage,
    When the number of errors detected in the entry in the third storage unit exceeds a specified value, the information of the entry in which the number of detected errors exceeds the specified value is copied to another entry of the same index, and the error The second storage unit corresponding to the other entry in the third storage unit is the data of the entry in the second storage unit corresponding to the entry in the third storage unit in which the number of detections exceeds a specified value. The arithmetic processing apparatus according to claim 1, wherein the arithmetic processing apparatus is copied to another entry.
  6.  前記演算処理装置において、
     前記ディレクトリ更新部は、前記第2の記憶部および前記第3の記憶部の各々のエントリのデータあるいは情報を同じインデックスの他のエントリに複製した対のエントリのうちのいずれか一方のエントリに訂正不能なエラーが生じた場合、訂正不能なエラーが生じたエントリを縮退することを特徴とする請求項1記載の演算処理装置。
    In the arithmetic processing unit,
    The directory update unit corrects the data or information of each entry of the second storage unit and the third storage unit to one entry of a pair of entries copied to another entry of the same index. 2. The arithmetic processing apparatus according to claim 1, wherein when an uncorrectable error occurs, the entry in which the uncorrectable error has occurred is degenerated.
  7.  前記演算処理装置において、
     前記ディレクトリ更新部は、エラーが生じた前記第2の記憶部のエントリが格納するデータが、前記第2の記憶部のエントリと対応する前記第1の記憶部のエントリが格納するデータと一致しない場合、前記第2の記憶部のエントリのデータを同じインデックスの他のエントリに複製することを特徴とする請求項1記載の演算処理装置。
    In the arithmetic processing unit,
    In the directory update unit, the data stored in the entry in the second storage unit in which an error has occurred does not match the data stored in the entry in the first storage unit corresponding to the entry in the second storage unit 2. The arithmetic processing apparatus according to claim 1, wherein the data of the entry in the second storage unit is copied to another entry of the same index.
  8.  データを格納する第1の記憶部と、
     前記第1の記憶部から読み出されたデータに対する演算を行う演算部と、
     前記演算部が前記第1の記憶部から読み出したデータを格納するエントリを有する第2の記憶部と、
     前記第2の記憶部に格納されたデータの前記第1の記憶部におけるアドレス情報を格納するエントリを有する第3の記憶部と、
     前記第3の記憶部から前記演算部からのアクセス要求に対応するデータのアドレス情報を格納するエントリを検索する検索部と、
     前記検索部が検索した前記第3の記憶部のエントリに対応付けられたデータを格納する前記第2の記憶部のエントリから前記アクセス要求に対応するデータを読み出して前記演算部に転送するデータ選択部と、
     前記第3の記憶部或いは前記第2の記憶部における該当するエントリのエラーを検出するエラー検査部と、
     前記エラー検査部がエラーを検出した前記第2の記憶部のエントリが格納するデータを、前記第2の記憶部の他のエントリに複製し、前記エラー検査部がエラーを検出した前記第3の記憶部のエントリが格納する情報を前記第3の記憶部の他のエントリに複製するディレクトリ更新部と、を有することを特徴とする、情報処理装置。
    A first storage unit for storing data;
    An arithmetic unit that performs an operation on data read from the first storage unit;
    A second storage unit having an entry for storing data read from the first storage unit by the arithmetic unit;
    A third storage unit having an entry for storing address information in the first storage unit of data stored in the second storage unit;
    A search unit for searching for an entry storing address information of data corresponding to an access request from the arithmetic unit from the third storage unit;
    Data selection for reading data corresponding to the access request from the entry in the second storage unit storing data associated with the entry in the third storage unit searched by the search unit and transferring the data to the arithmetic unit And
    An error checking unit for detecting an error of a corresponding entry in the third storage unit or the second storage unit;
    The data stored in the entry of the second storage unit in which the error check unit has detected an error is copied to another entry in the second storage unit, and the third error check unit has detected an error. An information processing apparatus comprising: a directory updating unit that replicates information stored in an entry of a storage unit to another entry of the third storage unit.
  9.  前記情報処理装置において、
     前記第2の記憶部は、前記第1の記憶部が格納するデータのアドレス情報に含まれるインデックス情報が示すインデックス毎に複数のウェイを有し、各インデックスの前記複数のウェイは夫々複数のエントリであり、前記複数のウェイが格納する前記複数のデータのアドレス情報は前記インデックス情報の部分が共通し他の部分が異なり、
     前記第3の記憶部は、前記第1の記憶部が格納するデータのアドレス情報に含まれるインデックス情報が示すインデックス毎に複数のウェイを有し、各インデックスの前記複数のウェイは夫々複数のエントリであり、前記複数のウェイが格納する情報に係る前記複数のデータのアドレス情報は前記インデックス情報の部分が共通し他の部分が異なり、
     前記ディレクトリ更新部は、前記エラー検査部が前記第2の記憶部のエントリにおけるエラーを検出した場合、エラーを検出したエントリのデータを同一インデックス上の他のウェイのエントリに複製し、
     前記エラー検査部が前記第3の記憶部のエントリにおけるエラーを検出した場合、エラーを検出したエントリの情報を同一インデックス上の他のウェイのエントリに複製することを特徴とする請求項8記載の情報処理装置。
    In the information processing apparatus,
    The second storage unit has a plurality of ways for each index indicated by index information included in address information of data stored in the first storage unit, and each of the plurality of ways in each index has a plurality of entries. The address information of the plurality of data stored in the plurality of ways has a common part of the index information and other parts are different,
    The third storage unit has a plurality of ways for each index indicated by index information included in address information of data stored in the first storage unit, and each of the plurality of ways in each index has a plurality of entries. And the address information of the plurality of data related to the information stored in the plurality of ways has a common part of the index information and other parts are different,
    The directory update unit, when the error check unit detects an error in the entry of the second storage unit, duplicates the data of the entry in which the error is detected to the entry of another way on the same index,
    9. The information according to claim 8, wherein when the error checking unit detects an error in the entry in the third storage unit, the information of the entry in which the error is detected is copied to an entry of another way on the same index. Information processing device.
  10.  前記情報処理装置において、
     前記ディレクトリ更新部は、データ又は情報を複製した対のエントリに関し、前記第2の記憶部と前記第3の記憶部との間の対応関係の相手側を、前記対のエントリの一方のエントリと他方のエントリとの間で交換することを特徴とする請求項8記載の情報処理装置。
    In the information processing apparatus,
    The directory update unit relates to a pair of entries in which data or information is duplicated, and designates the counterpart of the correspondence relationship between the second storage unit and the third storage unit as one entry of the pair entry. The information processing apparatus according to claim 8, wherein the information processing apparatus is exchanged with the other entry.
  11.  前記情報処理装置において、
     前記ディレクトリ更新部は、前記第2の記憶部の前記他のエントリが有効なデータを格納する場合には、前記他のエントリが格納するデータに対応するデータを前記演算部が格納し、且つ前記演算部が格納する前記対応するデータが前記第2の記憶部の前記他のエントリが格納するデータと一致する場合には前記演算部が格納する前記対応するデータを無効化し、一致するとは言えない場合には前記演算部が格納する対応するデータを前記第2の記憶部の前記他のエントリに書き戻した後に前記演算部が格納する前記対応するデータを無効化し、
     前記演算部が格納する前記対応するデータの無効化の後、前記第2の記憶部の前記他のエントリが格納するデータが前記第1の記憶部が格納する対応するデータと一致する場合には前記第2の記憶部の前記他のエントリが格納するデータを無効化し、一致しない場合には前記第2の記憶部の前記他のエントリが格納するデータを前記第1の記憶部に書き戻した後に前記第2の記憶部の前記他のエントリが格納するデータを無効化することを特徴とする請求項8記載の情報処理装置。
    In the information processing apparatus,
    In the directory update unit, when the other entry of the second storage unit stores valid data, the arithmetic unit stores data corresponding to data stored in the other entry, and When the corresponding data stored in the calculation unit matches the data stored in the other entry in the second storage unit, the corresponding data stored in the calculation unit is invalidated and cannot be said to match. In this case, after the corresponding data stored in the arithmetic unit is written back to the other entry in the second storage unit, the corresponding data stored in the arithmetic unit is invalidated.
    After invalidating the corresponding data stored in the arithmetic unit, if the data stored in the other entry in the second storage unit matches the corresponding data stored in the first storage unit The data stored in the other entry in the second storage unit is invalidated, and when the data does not match, the data stored in the other entry in the second storage unit is written back to the first storage unit. 9. The information processing apparatus according to claim 8, wherein data stored in the other entry of the second storage unit is invalidated later.
  12.  前記情報処理装置において、
     前記ディレクトリ更新部は、前記第2の記憶部のエントリにおけるエラーの検出回数が規定値を超えた場合に、前記エラーの検出回数が規定値を超えたエントリのデータを同じインデックスの他のエントリに複製し、前記エラーの検出回数が規定値を超えた前記第2の記憶部のエントリに対応する前記第3の記憶部のエントリの情報を前記第2の記憶部の前記他のエントリに対応する前記第3の記憶部の他のエントリに複製し、
     前記第3の記憶部のエントリにおけるエラーの検出回数が規定値を超えた場合に、前記エラーの検出回数が規定値を超えたエントリの情報を同じインデックスの他のエントリに複製し、前記エラーの検出回数が規定値を超えた前記第3の記憶部のエントリに対応する前記第2の記憶部のエントリのデータを前記第3の記憶部の前記他のエントリに対応する前記第2の記憶部の他のエントリに複製することを特徴とする請求項8記載の情報処理装置。
    In the information processing apparatus,
    When the number of errors detected in the entry in the second storage unit exceeds a specified value, the directory update unit transfers the data of the entry in which the number of errors detected exceeds the specified value to another entry of the same index. The information of the entry in the third storage unit corresponding to the entry in the second storage unit that is duplicated and the number of times of detection of the error exceeds a specified value corresponds to the other entry in the second storage unit. Replicate to other entries in the third storage,
    When the number of errors detected in the entry in the third storage unit exceeds a specified value, the information of the entry in which the number of detected errors exceeds the specified value is copied to another entry of the same index, and the error The second storage unit corresponding to the other entry in the third storage unit is the data of the entry in the second storage unit corresponding to the entry in the third storage unit in which the number of detections exceeds a specified value. The information processing apparatus according to claim 8, wherein the information processing apparatus is copied to another entry.
  13.  前記情報処理装置において、
     前記ディレクトリ更新部は、前記第2の記憶部および前記第3の記憶部の各々のエントリのデータあるいは情報を同じインデックスの他のエントリに複製した対のエントリのうちのいずれか一方のエントリに訂正不能なエラーが生じた場合、訂正不能なエラーが生じたエントリを縮退することを特徴とする請求項8記載の情報処理装置。
    In the information processing apparatus,
    The directory update unit corrects the data or information of each entry of the second storage unit and the third storage unit to one entry of a pair of entries copied to another entry of the same index. 9. The information processing apparatus according to claim 8, wherein when an uncorrectable error occurs, the entry in which the uncorrectable error has occurred is degenerated.
  14.  前記情報処理装置において、
     前記ディレクトリ更新部は、エラーが生じた前記第2の記憶部のエントリが格納するデータが、前記第2の記憶部のエントリと対応する前記第1の記憶部のエントリが格納するデータと一致しない場合、前記第2の記憶部のエントリのデータを同じインデックスの他のエントリに複製することを特徴とする請求項8記載の情報処理装置。
    In the information processing apparatus,
    In the directory update unit, the data stored in the entry in the second storage unit in which an error has occurred does not match the data stored in the entry in the first storage unit corresponding to the entry in the second storage unit 9. The information processing apparatus according to claim 8, wherein the data of the entry in the second storage unit is copied to another entry of the same index.
  15.  データを格納する第1の記憶部から読み出されたデータに対する演算を行う演算部と、前記演算部が前記第1の記憶部から読み出したデータを格納するエントリを有する第2の記憶部と、前記第2の記憶部に格納されたデータの前記第1の記憶部におけるアドレス情報を格納するエントリを有する第3の記憶部とを有する演算処理装置の制御方法であって、
     検索部が、前記第3の記憶部から前記演算部からのアクセス要求に対応するデータのアドレス情報を格納するエントリを検索する段階と、
     データ選択部が、前記検索部が検索した前記第3の記憶部のエントリに対応付けられたデータを格納する前記第2の記憶部のエントリから前記アクセス要求に対応するデータを読み出して前記演算部に転送する段階と、
     エラー検査部が、前記第3の記憶部或いは前記第2の記憶部のエントリのエラーを検出する段階と、
     ディレクトリ更新部が、前記エラー検査部がエラーを検出した前記第2の記憶部のエントリが格納するデータを前記第2の記憶部の他のエントリに複製し、前記エラー検査部がエラーを検出した前記第3の記憶部のエントリが格納する情報を前記第3の記憶部の他のエントリに複製する段階と、を有することを特徴とする、演算処理装置の制御方法。
    An arithmetic unit that performs an operation on data read from a first storage unit that stores data; a second storage unit that includes an entry in which the arithmetic unit stores data read from the first storage unit; And a third storage unit having an entry for storing address information in the first storage unit of data stored in the second storage unit,
    A search unit searching for an entry storing address information of data corresponding to an access request from the arithmetic unit from the third storage unit;
    A data selection unit reads data corresponding to the access request from an entry in the second storage unit that stores data associated with an entry in the third storage unit searched by the search unit, and the arithmetic unit And transfer to the
    An error checking unit detecting an error in an entry in the third storage unit or the second storage unit;
    The directory update unit replicates the data stored in the entry in the second storage unit in which the error check unit has detected an error to another entry in the second storage unit, and the error check unit has detected an error And a step of copying information stored in the entry of the third storage unit to another entry of the third storage unit.
  16.  前記演算処理装置の制御方法において、
     前記第2の記憶部は、前記第1の記憶部が格納するデータのアドレス情報に含まれるインデックス情報が示すインデックス毎に複数のウェイを有し、各インデックスの前記複数のウェイは夫々複数のデータを格納するエントリであり、前記複数のウェイが格納する前記複数のデータのアドレス情報はインデックス情報の部分が共通し他の部分が異なり、
     前記第3の記憶部は、前記第1の記憶部が格納するデータのアドレス情報に含まれるインデックス情報が示すインデックス毎に複数のウェイを有し、各インデックスの前記複数のウェイは夫々複数のデータに係る情報を格納するエントリであり、前記複数のウェイが格納する情報に係る前記複数のデータのアドレス情報はインデックス情報の部分が共通し他の部分が異なり、
     前記ディレクトリ更新部は、前記エラー検査部が前記第2の記憶部のエントリのエラーを検出した場合、エラーを検出したエントリのデータを同一インデックス上の他のウェイのエントリに複製し、
     前記エラー検査部が前記第3の記憶部のエントリのエラーを検出した場合、エラーを検出したエントリの情報を同一インデックス上の他のウェイのエントリに複製することを特徴とする請求項15記載の演算処理装置の制御方法。
    In the control method of the arithmetic processing unit,
    The second storage unit has a plurality of ways for each index indicated by index information included in address information of data stored in the first storage unit, and each of the plurality of ways in each index has a plurality of data. The address information of the plurality of data stored in the plurality of ways has a common index information part and other parts differ,
    The third storage unit has a plurality of ways for each index indicated by index information included in address information of data stored in the first storage unit, and each of the plurality of ways in each index has a plurality of data. The address information of the plurality of data related to the information stored in the plurality of ways has a common part of the index information and the other part is different.
    The directory update unit, when the error check unit detects an error in the entry in the second storage unit, duplicates the data of the entry in which the error is detected to the entry of another way on the same index,
    16. The information according to claim 15, wherein when the error checking unit detects an error in an entry in the third storage unit, the information of the entry in which the error is detected is copied to an entry in another way on the same index. A method for controlling an arithmetic processing unit.
  17.  前記演算処理装置の制御方法において、
     前記ディレクトリ更新部は、データ又は情報を複製した対のエントリに関し、前記第2の記憶部と前記第3の記憶部との間の対応関係の相手側を、前記対のエントリの一方のエントリと他方のエントリとの間で交換することを特徴とする請求項15記載の演算処理装置の制御方法。
    In the control method of the arithmetic processing unit,
    The directory update unit relates to a pair of entries in which data or information is duplicated, and designates the counterpart of the correspondence relationship between the second storage unit and the third storage unit as one entry of the pair entry. 16. The method according to claim 15, wherein exchange is performed with the other entry.
  18.  前記演算処理装置の制御方法において、
     前記ディレクトリ更新部は、前記第2の記憶部の前記他のエントリが有効なデータを格納する場合、前記他のエントリが格納するデータに対応するデータを前記演算部が格納し、且つ前記演算部が格納する前記対応するデータが前記第2の記憶部の他のエントリが格納するデータと一致する場合には前記演算部が格納する前記対応するデータを無効化し、一致するとは言えない場合には前記演算部が格納する前記対応するデータを前記第2の記憶部の前記他のエントリに書き戻した後に前記演算部が格納するデータを無効化し、
     前記演算部が格納する対応するデータの無効化の後、前記第2の記憶部の前記他のエントリが格納するデータが前記第1の記憶部が格納する対応するデータと一致する場合には前記第2の記憶部の前記他のエントリが格納するデータを無効化し、一致しない場合には前記第2の記憶部の前記他のエントリが格納するデータを前記第1の記憶部に書き戻した後に前記第2の記憶部の前記他のエントリが格納するデータを無効化することを特徴とする請求項15記載の演算処理装置の制御方法。
    In the control method of the arithmetic processing unit,
    The directory update unit stores data corresponding to data stored in the other entry when the other entry of the second storage unit stores valid data, and the calculation unit When the corresponding data stored in the second storage unit matches the data stored in the other entry of the second storage unit, the corresponding data stored in the arithmetic unit is invalidated. Invalidate the data stored in the arithmetic unit after writing back the corresponding data stored in the arithmetic unit to the other entry in the second storage unit;
    After invalidation of the corresponding data stored in the arithmetic unit, if the data stored in the other entry of the second storage unit matches the corresponding data stored in the first storage unit, After invalidating the data stored in the other entry in the second storage unit and, if they do not match, writing back the data stored in the other entry in the second storage unit to the first storage unit 16. The method according to claim 15, wherein data stored in the other entry in the second storage unit is invalidated.
  19.  前記演算処理装置の制御方法において、
     前記ディレクトリ更新部は、前記第2の記憶部のエントリにおけるエラーの検出回数が規定値を超えた場合に、前記エラーの検出回数が規定値を超えたエントリのデータを同じインデックスの他のエントリに複製し、前記エラーの検出回数が規定値を超えた前記第2の記憶部のエントリに対応する前記第3の記憶部のエントリの情報を前記第2の記憶部の前記他のエントリに対応する前記第3の記憶部の他のエントリに複製し、
     前記第3の記憶部のエントリにおけるエラーの検出回数が規定値を超えた場合に、前記エラーの検出回数が規定値を超えたエントリの情報を同じインデックスの他のエントリに複製し、前記エラーの検出回数が規定値を超えた前記第3の記憶部のエントリに対応する前記第2の記憶部のエントリのデータを前記第3の記憶部の前記他のエントリに対応する前記第2の記憶部の他のエントリに複製することを特徴とする請求項15記載の演算処理装置の制御方法。
    In the control method of the arithmetic processing unit,
    When the number of errors detected in the entry in the second storage unit exceeds a specified value, the directory update unit transfers the data of the entry in which the number of errors detected exceeds the specified value to another entry of the same index. The information of the entry in the third storage unit corresponding to the entry in the second storage unit that is duplicated and the number of times of detection of the error exceeds a specified value corresponds to the other entry in the second storage unit. Replicate to other entries in the third storage,
    When the number of errors detected in the entry in the third storage unit exceeds a specified value, the information of the entry in which the number of detected errors exceeds the specified value is copied to another entry of the same index, and the error The second storage unit corresponding to the other entry in the third storage unit is the data of the entry in the second storage unit corresponding to the entry in the third storage unit in which the number of detections exceeds a specified value. The method of controlling an arithmetic processing unit according to claim 15, wherein the method is copied to another entry.
  20.  前記演算処理装置の制御方法において、
     前記ディレクトリ更新部は、前記第2の記憶部および前記第3の記憶部の各々のエントリのデータあるいは情報を同じインデックスの他のエントリに複製した対のエントリのうちのいずれか一方のエントリに訂正不能なエラーが生じた場合、訂正不能なエラーが生じたエントリを縮退することを特徴とする請求項15記載の演算処理装置の制御方法。
    In the control method of the arithmetic processing unit,
    The directory update unit corrects the data or information of each entry of the second storage unit and the third storage unit to one entry of a pair of entries copied to another entry of the same index. 16. The method according to claim 15, wherein when an uncorrectable error occurs, the entry in which the uncorrectable error has occurred is degenerated.
PCT/JP2010/064846 2010-08-31 2010-08-31 Computing device, information processing device and method of controlling computing device WO2012029137A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/064846 WO2012029137A1 (en) 2010-08-31 2010-08-31 Computing device, information processing device and method of controlling computing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/064846 WO2012029137A1 (en) 2010-08-31 2010-08-31 Computing device, information processing device and method of controlling computing device

Publications (1)

Publication Number Publication Date
WO2012029137A1 true WO2012029137A1 (en) 2012-03-08

Family

ID=45772273

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/064846 WO2012029137A1 (en) 2010-08-31 2010-08-31 Computing device, information processing device and method of controlling computing device

Country Status (1)

Country Link
WO (1) WO2012029137A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014080646A1 (en) * 2012-11-22 2014-05-30 株式会社 東芝 Cache management device and cache management method
US10521134B2 (en) 2015-09-16 2019-12-31 Kabushiki Kaisha Toshiba Memory system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05120141A (en) * 1991-10-29 1993-05-18 Matsushita Electric Ind Co Ltd Cache memory device
JPH07295883A (en) * 1994-04-28 1995-11-10 Fujitsu Ltd Information processor
JPH10240628A (en) * 1997-02-28 1998-09-11 Nec Corp Cache memory device
JP2004318870A (en) * 2003-04-17 2004-11-11 Internatl Business Mach Corp <Ibm> Application of special ecc matrix for solving stuck bit fault in ecc-protected mechanism
JP2005512162A (en) * 2001-04-13 2005-04-28 サン・マイクロシステムズ・インコーポレイテッド Method for providing fault tolerance by comparing addresses and data from redundant processors operating in lockstep
JP2008234074A (en) * 2007-03-16 2008-10-02 Fujitsu Ltd Cache device

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05120141A (en) * 1991-10-29 1993-05-18 Matsushita Electric Ind Co Ltd Cache memory device
JPH07295883A (en) * 1994-04-28 1995-11-10 Fujitsu Ltd Information processor
JPH10240628A (en) * 1997-02-28 1998-09-11 Nec Corp Cache memory device
JP2005512162A (en) * 2001-04-13 2005-04-28 サン・マイクロシステムズ・インコーポレイテッド Method for providing fault tolerance by comparing addresses and data from redundant processors operating in lockstep
JP2004318870A (en) * 2003-04-17 2004-11-11 Internatl Business Mach Corp <Ibm> Application of special ecc matrix for solving stuck bit fault in ecc-protected mechanism
JP2008234074A (en) * 2007-03-16 2008-10-02 Fujitsu Ltd Cache device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014080646A1 (en) * 2012-11-22 2014-05-30 株式会社 東芝 Cache management device and cache management method
US10521134B2 (en) 2015-09-16 2019-12-31 Kabushiki Kaisha Toshiba Memory system

Similar Documents

Publication Publication Date Title
US10884940B2 (en) Method and apparatus for using compression to improve performance of low voltage caches
US7069494B2 (en) Application of special ECC matrix for solving stuck bit faults in an ECC protected mechanism
US7272773B2 (en) Cache directory array recovery mechanism to support special ECC stuck bit matrix
CN102929750B (en) Nonvolatile media dirty region tracking
US8205136B2 (en) Fault tolerant encoding of directory states for stuck bits
US8977820B2 (en) Handling of hard errors in a cache of a data processing apparatus
US9377960B2 (en) System and method of using stripes for recovering data in a flash storage system
US9047223B2 (en) Replicating tag entries for reliability enhancement in cache tag arrays
US9239797B2 (en) Implementing enhanced data caching and takeover of non-owned storage devices in dual storage device controller configuration with data in write cache
WO2010049928A1 (en) System and methods for raid writing and asynchronous parity computation
JP5950286B2 (en) Apparatus and method for writing address conversion table
WO2002088962A2 (en) Data storage array employing block checksums and dynamic striping
JP2017156984A (en) Semiconductor device and memory access control method
JP3851093B2 (en) Data transfer method and data processing system
WO2012029137A1 (en) Computing device, information processing device and method of controlling computing device
US7689891B2 (en) Method and system for handling stuck bits in cache directories
US20040001269A1 (en) Control system and memory control method executing a detection of an error in a formation in parallel with reading operation
US10936206B1 (en) Handling a device in a latency state in a redundant storage system
JP5021978B2 (en) Multiprocessor system and operation method thereof
US8826095B2 (en) Method and system for providing an improved store-in cache
US8458532B2 (en) Error handling mechanism for a tag memory within coherency control circuitry
US20120210067A1 (en) Mirroring device and mirroring recovery method
US7062611B2 (en) Dirty data protection for cache memories
JP2014026589A (en) Information processing device, information processing program, and information processing method
JP2004038299A (en) Cache memory device and bit error detecting method for reference history

Legal Events

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

Ref document number: 10856688

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10856688

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP