WO2007097001A1 - Ram診断装置およびram診断方法 - Google Patents
Ram診断装置およびram診断方法 Download PDFInfo
- Publication number
- WO2007097001A1 WO2007097001A1 PCT/JP2006/303485 JP2006303485W WO2007097001A1 WO 2007097001 A1 WO2007097001 A1 WO 2007097001A1 JP 2006303485 W JP2006303485 W JP 2006303485W WO 2007097001 A1 WO2007097001 A1 WO 2007097001A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- ram
- bit
- status
- bits
- writing
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/56—External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1032—Simple parity
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0407—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals on power on
Definitions
- the present invention relates to a RAM diagnostic apparatus and a RAM diagnostic method for diagnosing whether or not there is a failure in a RAM. In particular, regardless of the size of the main memory installed, all bits of the RAM can be more easily and quickly.
- the present invention relates to a RAM diagnostic apparatus and a RAM diagnostic method that can be diagnosed.
- a failure of RAM may be diagnosed.
- predetermined diagnostic data is written into the RAM to be diagnosed by the processor in accordance with a program instruction.
- the diagnostic data written in the RAM is read again by the program instruction, and the hardware error check circuit determines whether or not the read diagnostic data has an error. The presence or absence of is determined. That is, if the diagnostic data read out of the RAM power is incorrect, it is determined that the RAM is faulty. Then, by writing and reading diagnostic data to all lines of the RAM, it is possible to check whether or not there is a failure in the RAM.
- Patent Document 1 discloses a technique for writing diagnostic data directly into RAM without the ROM power passing through the processor. This can reduce the time required for failure diagnosis of RAM.
- Patent Document 1 Japanese Patent Laid-Open No. 5-61780
- the RAM temporarily stores data in the main memory, such as data RAM, tag RAM (TAG-RAM), and TLB (Translation Look-aside Buffer) —RAM.
- main memory such as data RAM, tag RAM (TAG-RAM), and TLB (Translation Look-aside Buffer) —RAM.
- TAG-RAM tag RAM
- TLB Translation Look-aside Buffer
- Some are used in the cache.
- tag RAM and TLB-RAM in the cache physical addresses that indicate the address of the data in the main memory are registered. Specifically, the physical address of the cached data on the main memory is registered in the tag RAM, and the correspondence between the virtual address and the physical address used by the program is registered in the TLB-RAM. Has been.
- the number of bits of the physical address registered in the tag RAM and TLB—RAM only needs to be able to represent all the addresses of the main memory connected to the cache. It depends. Therefore, if a main memory smaller than the maximum size that can be installed in the information processing device is installed, only physical addresses that always have fewer bits than physical addresses that can be registered in tag RAM and TLB-RAM. May be registered, and the upper bits of the physical address may always be 0.
- the memory space of the main memory can be expressed in 32 bits.
- the memory space of this main memory can be expressed in 28 bits, so the physical addresses registered in the tags RAM and TLB-RAM The upper 4 bits of are always 0.
- the present invention has been made in view of the problem, and it is possible to easily and quickly diagnose all the bits of the RAM regardless of the size of the main memory to be mounted.
- An object is to provide a RAM diagnosis method.
- the present invention provides a RAM diagnostic apparatus for diagnosing whether or not there is a failure in a RAM, and a status bit indicating whether or not a plurality of processing states are different!
- the writing unit When the writing process is selected by the selection unit, the writing unit writes the second data pattern obtained by inverting the first data pattern in the entire area of the RAM, and the writing And detecting means for reading out the first data pattern or the second data pattern from the entire area of the RAM and detecting an error when the error checking process is selected by the selecting means after each of the writing processes by the means. And wherein the Rukoto.
- the generation unit is generated by a generation unit that generates a bit string in which an address bit indicating a start address of a RAM is added to a lower order of a status bit, and the generation unit And increment means for incrementing the bit string by one.
- the present invention provides the bit obtained by the increment means in the above invention.
- the sequence becomes equal to the predetermined bit sequence, it is further characterized by further comprising determination means for determining that all processing indicated by the status bit is completed.
- the selecting unit selects a state bit partial force process from the bit string obtained by the increment unit, and the writing unit is obtained by the increment unit.
- the first data pattern or the second data pattern is written in the RAM area indicated by the address bit portion of the bit string.
- the selection unit selects a state bit partial force process from the bit string obtained by the increment unit, and the detection unit is obtained by the increment unit.
- the error is detected by reading the first data pattern or the second data pattern in the RAM area indicated by the address bit portion in the bit string.
- the generation means writes the first data pattern consisting of only 0 in the entire area of the RAM. 0 Status bit indicating the status of the write process, 0 write process Perform error check later 0 Status bit indicating the status of error check processing, writing the second data pattern that only has 1 power to all areas of RAM 1 Status bit indicating the status of writing processing, and 1 after writing processing 1 It is characterized by sequentially generating status bits indicating the status of error check processing.
- the generation unit further generates a status bit indicating a state of an initialization process for invalidating the entire area of the RAM after the one error check process, and the writing unit Is characterized in that when the initialization process is selected by the selection means, the entire area of the RAM is invalidated.
- the generation unit generates a status bit in the order of the 1-write process, the 1-error check process, the 0-write process, and the 0-error check process. It is characterized by making it.
- the present invention is characterized in that, in the above-mentioned invention, the detecting means detects an error in the first data pattern and the second data pattern using a NORITY bit registered in a RAM. To do.
- the present invention is the above invention, wherein the selection means has a status bit as the first data.
- the first AND circuit that outputs 1 when the data pattern writing process is indicated, and the second AND circuit that outputs 1 when the status bit indicates the writing process of the second data pattern
- a third AND circuit that outputs 1 when the status bit indicates the error check processing of the first data pattern, and when the status bit indicates the error check processing of the second data pattern.
- a first AND circuit that outputs a signal instructing writing to the RAM when 1 is output from any one of the first AND circuit and the second AND circuit;
- a logical sum circuit; and a second logical sum circuit that outputs a signal instructing reading from the RAM when one is output from any one of the third logical product circuit and the fourth logical product circuit. It is characterized by that.
- the present invention is a RAM diagnosis method for diagnosing whether or not there is a failure in a RAM, and a generation step for sequentially generating status bits indicating whether or not a plurality of processing states are out of order;
- a selection process is selected with reference to the status bits generated in the generation process, and a write process is selected in the selection process, a binary first data pattern is written in the entire area of the RAM.
- a first writing step a first detection step for reading the first data pattern written in the first writing step and reading an entire region of the RAM to detect an error, and a step after the first detecting step.
- a second writing process for writing the second data pattern obtained by inverting the first data pattern in the entire area of the RAM, and reading the second data pattern written in the second writing process in the entire area of the RAM. And a second detection step for detecting an error.
- the processing when a status bit indicating whether or not a plurality of processing states are out of order is generated in sequence, the processing is selected with reference to the generated status bit, and the writing processing is selected.
- the error check process is selected after each, the first data pattern or the second data pattern is also read out from the entire area of the RAM to detect an error. For this reason, the error check is performed with the bits in all areas of the RAM set to 0 and 1, led by hardware that does not read data from the main memory or use complicated programs. Regardless of the size of the main memory installed, all bits of RAM can be diagnosed more easily and quickly.
- bit string in which an address bit indicating the start address of the RAM is added to the lower order of the status bits is generated, and the generated bit string is incremented by one. If the bit string is divided into a status bit part and an address bit part, address bits corresponding to the addresses of the entire RAM area can be obtained for one type of status bit. Designation can be done easily.
- bit string used to specify the RAM area can be used as it is for completion determination.
- processing is also selected for the state bit partial power of the obtained bit string, and the first data pattern or the second data is stored in the RAM area indicated by the address bit part of the obtained bit string. Write the pattern. For this reason, the first data pattern or the second data pattern can be surely written to the entire area up to the starting address and final address of the RAM while the status bit indicates the writing process.
- the state bit partial force of the obtained bit string is also selected for processing, and the first data pattern or the second data in the RAM area indicated by the address bit portion of the obtained bit string is obtained. Read pattern and detect error. For this reason, while the status bit indicates error check processing, the error check of the first data pattern or the second data pattern of the entire area up to the start address of RAM and the final address can be surely performed.
- the first data pattern that only has 0 power is written in the entire area of the RAM.
- the status bit indicating the status of the write processing 0
- the error check after the write processing is performed.
- a status bit indicating the status of one check processing, writing a second data pattern that is only 1 in all areas of the RAM, 1 a status bit indicating the status of the write processing, and an error check after 1 write processing 1 error Status bits indicating the status of the check process are sequentially generated. This Therefore, it is possible to diagnose whether 0 writing and reading are normal in all areas of the RAM and to diagnose whether 1 writing and reading are normal in all areas of the RAM.
- an initialization process when an initialization process is selected by further generating a status bit indicating the status of the initialization process that invalidates the entire RAM area after 1 error check process, Disable all areas of. For this reason, the RAM can be initialized after diagnosis of the entire RAM area, and diagnosis can be performed at the same time as initialization of the RAM provided in the cache.
- the status bits are generated in the order of 1 write processing, 1 error check processing, 0 write processing, and 0 error check processing, if no error is detected, the final processing is performed. In other words, 0 is written in all areas of the RAM, and the initialization of the RAM can be omitted.
- the first AND circuit that outputs 1 when the status bit indicates the writing process of the first data pattern, and the status bit that writes the second data pattern A second AND circuit that outputs 1 when it indicates processing, a third AND circuit that outputs 1 when the status bit indicates error check processing of the first data pattern, and a status bit
- 1 indicates output from any one of the 4th AND circuit that outputs i and the 1st AND circuit or 2nd AND circuit when 1 indicates error check processing of the 2nd data pattern Instructing reading of RAM power when 1 is output from the 1st OR circuit that outputs a signal instructing writing to the RAM, 3rd AND circuit or 4th AND circuit And a second OR circuit that outputs a signal to be transmitted. For this reason, processing can be selected from the status bits with only a simple logic operation circuit, and accurate diagnosis of the RAM can be performed at a higher speed.
- FIG. 1 is a block diagram showing a main configuration of an information processing apparatus according to an embodiment of the present invention.
- FIG. 1 is a block diagram showing a main configuration of an information processing apparatus according to an embodiment of the present invention.
- FIG. 2 is a diagram illustrating an example of information registered in a tag RAM.
- FIG. 3 is a block diagram showing an internal configuration of the RAM diagnostic apparatus according to one embodiment.
- FIG. 4 is a flowchart showing a RAM diagnosis operation according to one embodiment.
- FIG. 5 is a flowchart showing 0-write processing according to one embodiment.
- FIG. 6 is a flowchart showing zero error check processing according to one embodiment.
- FIG. 7 is a flowchart showing one-write processing according to one embodiment.
- FIG. 8 is a flowchart showing one error check process according to one embodiment.
- FIG. 9 is a flowchart showing an initialization process according to one embodiment.
- FIG. 1 is a block diagram showing a main configuration of an information processing apparatus provided with a RAM diagnostic apparatus according to an embodiment of the present invention.
- the information processing apparatus shown in FIG. 1 includes a cache 200 in the CPU, and includes a tag RAM 200a, a TLB-RAM 200b, and a data RAM 200c in the cache.
- the tag RAM 200a is connected to a RAM diagnostic device 100, and the RAM diagnostic device 100 is connected to a service processor (Ser Vice Processor: hereinafter abbreviated as “SVP”) 300 different from the CPU. !
- SVP service processor
- the cache 200 temporarily stores (caches) data stored in the main memory 400, and speeds up processing when the data is used by the CPU. At this time, the data itself is stored in the data RAM 200c, and the physical address of this data in the main memory 400 is stored in the tag RAM 200a.
- information as shown in FIG. 2 is registered in each line in the tag RAM 200a. That is, a valid bit indicating valid Z invalidity of data, a parity bit for valid bit error check (Valid bit parity), a type bit indicating the type of data (Type bit), and an error check for type bit A parity bit (Type bit parity), a physical address bit indicating the physical address of the data (Physical address bits), and a parity bit (Physical address parity) for error check of the physical address bits are placed in each line of the tag RAM 200a. Registered.
- the CPU When the CPU reads and processes the desired data, it accesses the tag RAM 200a, searches for the physical address of the desired data, and knows whether the desired data is cached in the data RAM 200c! Can. Also, the correspondence between the virtual address and physical address used in the program is stored in the TLB-RAM 200b.
- the RAM diagnosis device 100 diagnoses whether or not there is a failure in the tag RAM 200a in the cache 200. That is, the RAM diagnosis device 100 sequentially writes 0 and 1 to all the bits storing the physical address of the tag RAM 200a, performs an error check after each writing process, and diagnoses whether there is a failure of all the bits.
- the detailed configuration of the RAM diagnostic apparatus 100 will be described in detail later.
- the SVP 300 is a processor provided independently of the CPU, and manages CPU fault diagnosis and the like.
- the SVP300 uses a RAM diagnostic device when the information processing device starts up. Instructs device 100 to start initialization of cache 200. At the time of initialization, the SVP 300 determines whether or not to perform RAM diagnosis. When RAM diagnosis is performed, the SVP 300 instructs the RAM diagnosis apparatus 100 to perform RAM diagnosis simultaneously with the initialization.
- FIG. 3 is a block diagram showing an internal configuration of RAM diagnostic apparatus 100 according to the present embodiment.
- the RAM diagnostic apparatus 100 shown in FIG. 3 includes a bit generation unit 110, a status bit output unit 120, an address bit output unit 130, an increment unit 140, a state selection unit 150, a write control unit 160, a read control unit 170, and an error.
- a detection unit 180 and a completion determination unit 190 are included.
- the bit generation unit 110 generates a bit string of the number of bits by adding a status bit indicating a state such as diagnosis or initialization to the upper of the address bits of the number of bits that can represent all lines of the tag RAM 200a. To do. Specifically, when the initialization or diagnosis of the tag RAM 200a is instructed by the SVP300 force or the like, the bit generation unit 110 generates a bit string in which 3 bits of status bits are added to the upper part of the address bits in which all bits are 0. Generate. Further, the bit generation unit 110 increments the bit string by one according to the instruction from the increment unit 140.
- the status bit is a 3-bit bit string corresponding to each state, classifying the processing executed by the RAM diagnostic apparatus 100 into five states. Specifically, the process of writing 0 to each line of the tag RAM 200a (0 write process) is represented by “011”, and the error check process (0 error check process) after 0 power S is written to the tag RAM 200a. The process of writing 1 to each line of the tag RAM200a (1 write process) is represented by “101”, and the error check process (1 error check process) after 1 is written to the tag RAM20 Oa This is represented by “110” and the initialization process of the tag RAM 200a is represented by “111”. In the present embodiment, since the process executed by the RAM diagnostic apparatus 100 is classified into five states, the status bit has a power of 3 bits. For example, if the process can be classified in four states, the state bit is 2 bits are good.
- the bit generation unit 110 is composed of all the bit forces SO following the status bit "111". A bit string to which address bits are added is generated.
- the bit generation unit 110 When the diagnosis of the SVP300 power tag RAM 200a is instructed, the bit generation unit 110 generates a bit string to which address bits including all bits of 0 are added after the status bit “011”. Each time the bit string is generated by the bit generator 110, the status bit output unit 120 outputs a status bit consisting of the upper 3 bits of this bit string to the status selector 150.
- the address bit output unit 130 outputs address bits excluding the upper 3 bits of this bit string to the write controller 160 and the read controller 170.
- the increment unit 140 indicates to the bit generation unit 110 that the bit string is incremented by 1 at a predetermined cycle.
- the state selection unit 150 refers to the state bits output from the state bit output unit 120, and performs 0 write processing, 0 error check processing, 1 write processing, 1 error check processing, and initialization processing. It selects which state it is in, and instructs the write control unit 160 or the read control unit 170 to operate according to the respective state.
- the state selection unit 150 includes an inverter 151, AND gates 152 to 156, and OR gates 157 and 158.
- the inverter 151 inverts the 3 bits output from the status bit output unit 120. In other words, inverter 151 converts 0 constituting the status bit to 1 and 1 to 0.
- AND gates 152 to 156 correspond to 0 write processing, 1 write processing, initialization processing, 0 error check processing, and 1 error check processing, respectively, and are output from status bit output unit 120.
- 1 is output from AND gates 152 to 156 corresponding to the state indicated by the status bit.
- the numbers 1 to 3 shown on the input sides of the AND gates 152 to 156 indicate the most significant bit, the second bit, and the third bit of the status bits, respectively. Therefore, for example, when the status bit “011” indicating the 0 write process is output from the status bit output unit 120, only the most significant bit of the status bit is inverted by the inverter 1 51 to the AND gate 152. Will be entered. At this time, “111” is not input to the other AND gates 153 to 156. Therefore, 1 is output only from the AND gate 152, and it can be understood that the current state is the 0 write process.
- the OR gate 158 receives the 1 from the AND gate 155 corresponding to the 0 error check process and the AND gate 156 corresponding to the 1 error check process and outputs the tag RAM 200a to the read control unit 170. Is instructed to read.
- the write control unit 160 When the writing to the tag RAM 200 a is instructed from the OR gate 157, the write control unit 160 performs a writing process on the line of the tag RAM 200 a corresponding to the address bit output from the address bit output unit 130. At this time, the write control unit 160 writes 1 when 1 is output from the AND gate 153, and writes 0 when 0 is output from the AND gate 153.
- the write control unit 160 sets 0 to all the bit bits, type bits, and physical address bits shown in FIG. At the same time, write a value that does not cause an error (in this case, 1) to each error-checked bit in all the NORITY bits. In addition, at the time of 1 write processing, the write control unit 160 writes 1 to all bits of the NORMAL bit, the type bit, and the physical address bit, and all parity bits are error-checked for each bit. Write a value (in this case 0) without generating.
- 0 writing processing and initialization processing are not distinguished, and 0 is written to all bits.
- 1 is output from AND gate 154 to writing control unit 160 (that is, When initialization processing is performed)
- 0 may be written only to the notched bits, and 1 may be written to the parity bits of the notched bits to perform only the processing of invalidating the line.
- the read control unit 170 When reading from the tag RAM 200a is instructed from the OR gate 158, the read control unit 170 also performs a read process for the line power of the tag RAM 20 Oa corresponding to the address bit output from the address bit output unit 130. Output line information to error detector 180. That is, when the status bit indicates 0 error check processing or 1 error check processing, the read control unit 170 sequentially outputs the line information of the tag RAM 200a to the error detection unit 180. [0056] When the information of each line is output from the tag RAM 200a, the error detection unit 180 performs an error check on the valid bit, type bit, and physical address bit using the parity bit of each line, and completes the result. Notify the judgment unit 190.
- the error check by the error detection unit 180 is performed after the 0 writing process and after the 1 writing process. Therefore, at the time of error check after 0 write processing, if all the bits of each line are 0, there will be no error in writing 0 to the tag RAM 200a Z read, and at error check after 1 write processing If all the bits of each line are 1, there is no error in writing 1 to the tag RAM 200a and reading Z.
- the completion determination unit 190 completes the initialization of the tag RAM 200a to the SVP 300. Notify that. That is, the completion determination unit 190 increments the bit string generated by the bit generation unit 110 by 1 and finally the status bit becomes “111” and all the address bits become 1, and the completion of the tag RAM 200a It judges that all lines have been initialized, confirms that no error has been detected, and notifies the SVP300 of the completion of initialization.
- step S100 it is determined whether or not the tag RAM 200a is diagnosed by the SVP 300 (step S100). This determination is made based on, for example, whether or not the user has selected a diagnosis suppression mode in which no diagnosis is performed. If the tag RAM 200a is diagnosed as a result of this determination (step SlOOYes), the bit generation unit 110 is notified of this, and the bit generation unit 110 sets the upper 3 bits, which are status bits, to “011”. A bit string in which all the address bits lower than the status bit are set to 0 is generated (step S200). O Then, the RAM diagnostic device 100 performs 0 write processing (step S400), 0 error check processing (step S500), 1 writing process (step S600), 1 error check process (step S700), and initialization process (step S800) are executed in sequence.
- step S100 determines whether the tag RAM 200a is not diagnosed! / (Step SlOONo).
- the bit generation unit 110 is notified of this fact, and the bit generation unit 110 A bit string in which the upper 3 bits which are status bits are set to “111” and the address bits lower than the status bits are all 0 is generated (step S300).
- step S800 only initialization processing is executed by the RAM diagnostic device 100.
- the tag RAM 200a is diagnosed as follows: 0 write process (step S400), 0 error check process (step S500), 1 write process (step S600), 1 error check process (step S7 00 ) And the initialization process (step S800) will be described in order.
- step S400 the zero write process (step S400) will be described with reference to FIG.
- the bit generation unit 110 generates a bit string in which the upper 3 bits are “011” and the lower bits are all 0. This bit string is output to status bit output section 120, address bit output section 130, and completion determination section 190.
- the completion determining unit 190 does not determine that the initialization is complete.
- bit string When the bit string is output to address bit output unit 130, the bit string excluding the upper 3 bits (here, the bit string in which all bits are 0) is transferred from address bit output unit 130 to write control unit 16 0 and output to the read control unit 170. Then, the write control unit 160 instructed to write from the OR gate 157 writes 0 in the line of the tag RAM 200a indicated by the bit string (address bit) output from the address bit output unit 130 (step S401). In other words, in this case, 0 is written to all the valid bits, type bits, and physical address bits of the line indicated by an address in which all bits are 0.
- the increment unit 140 instructs to increment the generated bit by 1.
- the bit generation unit 110 generates a bit string in which the upper 3 bits are “011”, the least significant bit is 1, and the remaining bits are all 0 (step S402).
- the status bits are output to status selection section 150, and the address bits are output to write control section 160 and read control section 170.
- the status selection unit 150 detects that the status bit has become “100” (step S403), and when the status bit becomes “100”, the 0 write process ends. Is “011” (step S403 No), the 0-write process is subsequently executed.
- an address bit in which the least significant bit is 1 and the remaining bits are all 0 is output from the address bit output unit 130 to the write control unit 160, and the write control unit 160 sets the address bit of the tag RAM 2 OOa. 0 is written to the corresponding line.
- bit generation unit 110 Thereafter, while the bit string generated by the bit generation unit 110 is incremented by 1, while the upper 3 bits are “011”, 0 is written to the line indicated by the address bit that is increased by 1. Then, the bit generation unit 110 generates a bit string in which the upper 3 bits are “011” and the lower bits are all 1, and 0 is written to the line corresponding to the address bits whose all 1 bits are 0 is written to all lines of tag RAM200a.
- bit generation unit 110 When the above-described 0 write processing is completed, the bit generation unit 110 generates a bit string in which the upper 3 bits are “100” and the lower bits are all 0. This bit string is output to status bit output section 120, address bit output section 130, and completion determination section 190. Here, since all the bits of the bit string are not 1, the completion determination unit 190 does not determine that initialization is complete.
- the bit string is output to the status bit output unit 120, the upper 3 bits “100” are output as the status bit.
- Each of the bits or the bit inverted by the inverter 151 is input to the AND gates 152 to 156.
- the inputs to AND gate are all 1, so 1 is output only from AND gate 155, and AND Gates 152 to 154, 156, etc. 0 force S is output. Therefore, the reading from the tag RAM 200a is instructed to the reading control unit 170.
- bit string When the bit string is output to address bit output unit 130, the bit string excluding the upper 3 bits (here, the bit string in which all bits are 0) is transferred from address bit output unit 130 to write control unit 16 0 and output to the read control unit 170. Then, the read control unit 170 instructed to read from the OR gate 158 executes the reading of information to the error detection unit 180 with the line force of the tag RAM 200a indicated by the address bit output from the address bit output unit 130. . That is, here, the information of the line indicated by the address whose all bits are 0 is output to the error detection unit 180.
- error detection section 180 uses parity bits to perform error check of the nodding bit, type bit, and physical address bit (step S501). Then, it is determined whether or not there is an error in the line information output from the tag RAM 200a (step S502), and if there is an error, the completion determination unit 190 is notified of the error (step S503).
- the increment unit 140 gives an instruction to increment the bit to be generated by 1, and the bit generation unit 110 sets the upper 3 bits to "100", the least significant bit to 1, and all the remaining bits to 0. Are generated (step S504).
- the status bits are output to status selection section 150, and the address bits are output to write control section 160 and read control section 170.
- the status selection unit 150 detects that the status bit has become “101” (step S505), and when the status bit becomes “101”, the 0 error check process ends. Since it is “100” (step S505N o), the 0 error check process is continued.
- an address bit in which the least significant bit is 1 and the remaining bits are all 0 is output from address bit output unit 130 to read control unit 170, and read control unit 170 causes tag RAM2
- the line force corresponding to the address bit of 00a is also read from the error detection unit 180. Then, the error detection unit 180 performs an error check on the read line information.
- step S600 the one writing process (step S600) will be described.
- the bit generation unit 110 When the 0 error check process described above is completed, the bit generation unit 110 generates a bit string in which the upper 3 bits are “101” and the lower bits are all 0. This bit string is output to status bit output unit 120, address bit output unit 130, and completion determination unit 190.
- the completion determination unit 190 since all the bits of the bit string are not 1, the completion determination unit 190 does not determine that initialization is complete.
- the increment unit 140 gives an instruction to increment the generated bit by 1, and the bit generation unit 110 sets the upper 3 bits to “101”, the least significant bit to 1, and all the remaining bits to 0. Are generated (step S602).
- the status bits are output to status selection section 150, and the address bits are output to write control section 160 and read control section 170.
- the status selection unit 150 detects that the status bit has become “110” (step S603), and when the status bit becomes “110”, one write process is completed. Is “101” (step S603 No), 1 writing processing is subsequently executed.
- an address bit in which the least significant bit is 1 and the remaining bits are all 0 is output from the address bit output unit 130 to the write control unit 160, and the write control unit 160 sets the address bit of the tag RAM 200a. 1 is written to the corresponding line.
- bit generation unit 110 When the one writing process described above is completed, the bit generation unit 110 generates a bit string in which the upper 3 bits are “110” and the lower bits are all 0. This bit string is output to status bit output section 120, address bit output section 130, and completion determination section 190. Here, since all bits of the bit string are not 1, the completion determination unit 190 determines that initialization is complete. It will not be judged.
- bit string When the bit string is output to address bit output unit 130, the bit string excluding the upper 3 bits (here, the bit string in which all bits are 0) is transferred from address bit output unit 130 to write control unit 16 0 and output to the read control unit 170. Then, the read control unit 170 instructed to read from the OR gate 158 executes the reading of information to the error detection unit 180 with the line force of the tag RAM 200a indicated by the address bit output from the address bit output unit 130. . That is, here, the information of the line indicated by the address whose all bits are 0 is output to the error detection unit 180.
- error detection section 180 uses parity bits to perform error check of the nodding bit, type bit, and physical address bit (step S701). Then, it is determined whether or not there is an error in the line information output from the tag RAM 200a (step S702). If there is an error, the completion determination unit 190 is notified of the error (step S703).
- the increment unit 140 gives an instruction to increment the bit to be generated by 1, and the bit generation unit 110 sets the upper 3 bits to "110", the least significant bit to 1, and all the remaining bits to 0. Is generated (step S704).
- the status bits are output to status selection section 150, and the address bits are output to write control section 160 and read control section 170.
- the status selection unit 150 detects that the status bit has become “111” (step S705), and when the status bit becomes “111”, the 1 error check process ends. Since it is “110” (step S705N o), one error check process is continuously executed.
- address bits whose least significant bit is 1 and all remaining bits are 0 are output from address bit output unit 130 to read control unit 170, and read control unit 170 corresponds to the address bits of tag RAM2OOa.
- the line force is also read from the error detection unit 180. Then, the error detection unit 180 performs an error check on the read line information.
- step S800 the initialization process
- the bit generation unit 110 When the 1 error check process described above is completed, the bit generation unit 110 generates a bit string in which the upper 3 bits are “111” and the lower bits are all 0. This bit string is output to status bit output unit 120, address bit output unit 130, and completion determination unit 190.
- the completion determination unit 190 since all the bits of the bit string are not 1, the completion determination unit 190 does not determine that initialization is complete.
- bit string When the bit string is output to address bit output unit 130, the bit string excluding the upper 3 bits (here, the bit string in which all bits are 0) is transferred from address bit output unit 130 to write control unit 16 0 and output to the read control unit 170. Then, the write control unit 160 instructed to write from the OR gate 157 invalidates the line of the tag RAM 200a indicated by the address bit output from the address bit output unit 130 (step S801). That is, here, 0 is written to the valid bit of the line indicated by the address where all bits are 0. Note that 0 may be written in the type bits and physical address bits other than the nodding bits.
- the completion determination unit 190 detects that all the bits of the bit string generated by the bit generation unit 110 are 1 (step S802), and If all bits become 1, it is determined whether or not there is a final failure, but here, the status bit is “111”, but all the address bits are not 1 (step S802 No), so the line is still invalid. Is done.
- the increment unit 140 gives an instruction to increment the bit to be generated by 1, and the bit generation unit 110 sets the upper 3 bits to “111”, the least significant bit is 1, and the remaining bits are all 0.
- a bit string is generated (step S803).
- the status bits are output to status selection section 150, and the address bits are output to write control section 160 and read control section 170. Then, the write control unit 160 invalidates the line corresponding to the address bit of the tag RAM 200a.
- bit string generated by the bit generation unit 110 is incremented by 1, while the upper 3 bits are “111”, 1 is written to the line indicated by the address bit that is increased by 1. Then, a bit string in which the upper 3 bits are “111” and the lower bits are all 1 is generated by the bit generation unit 110, and all bits correspond to the address bits corresponding to 1 address bits. This means that all lines in tag RAM 200a have been invalidated and initialized.
- the completion determination unit 190 determines whether or not the initialization of the tag RAM 200a has been completed. That is, in the above-described 0 error check process (step S500) and 1 error check process (step S700), it is determined whether or not an error has been notified from the error detection unit 180 (step S804). If there is no notification (step S804No), it is determined that the initialization of the tag RAM 200a has been completed (step S805), and the completion determination unit 190 notifies the SVP 300 of the completion of initialization.
- step S804 If there is an error notification (step S804 Yes), it is determined that there is a failure in the tag RAM 200a (step S806), and the completion determination unit 190 notifies the SVP 300 that there is a failure in the tag RAM 200a. If the tag RAM 200a has a failure, the SVP 300 performs processing such as notifying the user that a failure has occurred.
- the 0-write process is executed before the 1-write process, but the 1-write process may be executed first.
- the initialization process is not necessary, and the process state can be changed to 4 and the status bit can be set to 2 bits.
- 1 writing process and 0 writing This is a process that can be executed by diverting the initialization circuit that was previously used only for RAM initialization. Therefore, the scale of the circuit added to diagnose the RAM can be small. For this reason, an increase in circuit scale by the RAM diagnostic apparatus of the present invention is suppressed to a minimum.
- the present invention can be applied when diagnosing all bits of RAM more easily and at high speed regardless of the size of the main memory to be mounted.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
搭載されるメインメモリのサイズに関わらず、RAMの全ビットをより容易かつ高速に診断すること。ビット生成部(110)は、タグRAM(200a)のアドレスを示すアドレスビットの上位に状態ビットを付加したビット列を生成する。インクリメント部(140)は、ビット生成部(110)のビット列を1ずつインクリメントさせる。状態選択部(150)は、状態ビットを参照して複数の処理のいずれかを選択し、書込制御部(160)または読出制御部(170)へ状態に応じた動作を指示する。書込制御部(160)は、アドレスビットに対応するタグRAM(200a)のラインに書込処理を行う。読出制御部(170)は、アドレスビットに対応するタグRAM(200a)のラインから読み出し処理を行い、このラインの情報をエラー検出部(180)へ出力させる。エラー検出部(180)は、タグRAM(200a)の各ラインのエラーチェックを行う。
Description
明 細 書
RAM診断装置および RAM診断方法
技術分野
[0001] 本発明は、 RAMに故障があるか否かを診断する RAM診断装置および RAM診断 方法に関し、特に、搭載されるメインメモリのサイズに関わらず、 RAMの全ビットをより 容易かつ高速に診断することができる RAM診断装置および RAM診断方法に関す る。
背景技術
[0002] 一般に、情報処理装置におけるプロセッサの電源投入時などにおいては、 RAMの 故障が診断されることがある。 RAMの診断の際には、まず、プログラムの命令により、 プロセッサによって所定の診断用データが診断対象の RAMに書き込まれる。次いで 、再度プログラムの命令により、 RAMに書き込まれた診断用データが読み出され、 ハードウェアのエラーチェック回路により、読み出された診断用データに誤りがあるか 否かが判定され、 RAMの故障の有無が判定される。すなわち、 RAM力 読み出さ れた診断用データが誤っていれば、この RAMは故障していると判定される。そして、 診断用データの書き込みおよび読み出しの手順を RAMのすベてのラインに対して 行うことにより、 RAMの故障の有無を確認することができる。
[0003] このような RAMの故障の診断に用いられる診断用データカ¾OMに記憶されてい る場合、 RAM診断時には、プロセッサが一度 ROMカゝら診断用データを読み出した 後、診断対象の RAMに書き込むことになる。しかし、診断対象の RAMのサイズが大 きくなれば、これに伴って診断用データのサイズも大きくなるため、プロセッサによつ て ROMカゝら診断用データが読み出され、 RAMに書き込まれるまでの時間が長くな る。そこで、例えば特許文献 1においては、 ROM力もプロセッサを経由せずに、直接 RAMへ診断用データを書き込む技術が開示されている。これにより、 RAMの故障 診断に要する時間を短縮することができる。
[0004] 特許文献 1 :特開平 5— 61780号公報
発明の開示
発明が解決しょうとする課題
[0005] ところで、 RAMには、例えばデータ RAM、タグ RAM (TAG -RAM)、および TL B (Translation Look-aside Buffer)—RAMなどのように、メインメモリのデータを一 時的に記憶するプロセッサ内のキャッシュにおいて用いられるものがある。キャッシュ 内のタグ RAMや TLB— RAMには、データのメインメモリにおけるアドレスを示す物 理アドレスが登録されている。具体的には、タグ RAMには、キャッシュされたデータ のメインメモリ上の物理アドレスが登録されており、 TLB— RAMには、プログラムによ つて用いられる仮想アドレスと物理アドレスとの対応関係が登録されている。
[0006] これらのキャッシュ内の RAMの故障診断は、メインメモリ力 の診断用データがデ ータ RAMに書き込まれてキャッシュされた後、キャッシュされた診断用データが読み 出され、読み出された診断用データに誤りがある力否力判定されるとともに、この診断 用データのキャッシュに伴ってタグ RAMおよび TLB— RAMに登録された内容が読 み出され、読み出された登録内容が診断用データに対応しているか否力判定される ことにより行われる。
[0007] ここで、タグ RAMおよび TLB— RAMに登録される物理アドレスのビット数は、キヤ ッシュに接続されるメインメモリのすべてのアドレスを表現可能であれば良いため、メ インメモリのサイズに依存している。したがって、情報処理装置に搭載可能な最大サ ィズよりも小さいメインメモリが搭載されている場合には、タグ RAMおよび TLB— RA Mが登録可能な物理アドレスよりも常にビット数が少ない物理アドレスのみが登録さ れることになり、物理アドレスの上位ビットが常に 0となることがある。
[0008] 具体的に例を挙げると、情報処理装置が例えば 4GB (ギガバイト)のメインメモリを 搭載可能な場合、このメインメモリのメモリ空間は 32ビットで表現可能であるため、タ グ RAMおよび TLB— RAMには 32ビットまでの物理アドレスを登録することが可能 である。しかし、この情報処理装置に例えば 256MB (メガバイト)のメインメモリが搭載 された場合、このメインメモリのメモリ空間は 28ビットで表現可能であるため、タグ RA Mおよび TLB— RAMに登録される物理アドレスの上位 4ビットは常に 0となる。
[0009] このような状況下で、上述した手順によるタグ RAMおよび TLB— RAMの故障診 断を行う場合、いかなる診断用データがメインメモリからキャッシュされても、その診断
用データに関する物理アドレスの上位ビットは常に 0であるため、タグ RAMおよび TL B— RAMに登録される物理アドレスの上位ビットについては、故障診断が不可能で あるという問題がある。すなわち、上記の例では、診断用データの物理アドレスは、 2 8ビットで表現可能であるため、タグ RAMおよび TLB— RAMに登録される物理アド レスの上位 4ビットの故障診断が不可能である。
[0010] また、キャッシュ内の RAMに診断用データを書き込む際には、プログラムの命令に より、メインメモリから診断用データが書き込まれることになるため、メインメモリにァク セスする時間が力かるという問題がある。さらに、故障診断のプログラムは、キャッシュ の構成や状態を考慮して作成する必要があり、非常に煩雑なものになる傾向がある。
[0011] 本発明はカゝかる点に鑑みてなされたものであり、搭載されるメインメモリのサイズに 関わらず、 RAMの全ビットをより容易かつ高速に診断することができる RAM診断装 置および RAM診断方法を提供することを目的とする。
課題を解決するための手段
[0012] 上記課題を解決するために、本発明は、 RAMに故障があるカゝ否かを診断する RA M診断装置であって、複数の処理の状態の!/ヽずれかを示す状態ビットを順次発生さ せる発生手段と、前記発生手段によって発生した状態ビットを参照して処理を選択す る選択手段と、前記選択手段によって書込処理が選択されると、 RAMの全領域に 2 値の第 1データパターンを書き込み、次に前記選択手段によって書込処理が選択さ れると、 RAMの全領域に前記第 1データパターンを反転した第 2データパターンを 書き込む書込手段と、前記書込手段による書込処理それぞれの後に前記選択手段 によってエラーチェック処理が選択されると、前記第 1データパターンまたは前記第 2 データパターンを RAMの全領域力 読み出してエラーを検出する検出手段とを有 することを特徴とする。
[0013] また、本発明は、上記発明において、前記発生手段は、状態ビットの下位に RAM の開始アドレスを示すアドレスビットが付加されたビット列を生成する生成手段と、前 記生成手段によって生成されたビット列を 1ずつインクリメントするインクリメント手段と を含むことを特徴とする。
[0014] また、本発明は、上記発明において、前記インクリメント手段によって得られたビット
列が所定のビット列と等しくなつた場合に、状態ビットが示すすべての処理が完了し たと判定する判定手段をさらに有することを特徴とする。
[0015] また、本発明は、上記発明において、前記選択手段は、前記インクリメント手段によ つて得られたビット列のうち状態ビット部分力 処理を選択し、前記書込手段は、前記 インクリメント手段によって得られたビット列のうちアドレスビット部分が示す RAMの領 域に第 1データパターンまたは第 2データパターンを書き込むことを特徴とする。
[0016] また、本発明は、上記発明において、前記選択手段は、前記インクリメント手段によ つて得られたビット列のうち状態ビット部分力 処理を選択し、前記検出手段は、前記 インクリメント手段によって得られたビット列のうちアドレスビット部分が示す RAMの領 域の第 1データパターンまたは第 2データパターンを読み出してエラーを検出するこ とを特徴とする。
[0017] また、本発明は、上記発明において、前記発生手段は、 RAMの全領域に 0のみか らなる第 1データパターンを書き込む 0書込処理の状態を示す状態ビット、 0書込処 理後のエラーチェックを行う 0エラーチェック処理の状態を示す状態ビット、 RAMの 全領域に 1のみ力もなる第 2データパターンを書き込む 1書込処理の状態を示す状 態ビット、および 1書込処理後のエラーチェックを行う 1エラーチェック処理の状態を 示す状態ビットを順次発生させることを特徴とする。
[0018] また、本発明は、上記発明において、前記発生手段は、前記 1エラーチェック処理 後に RAMの全領域を無効化する初期化処理の状態を示す状態ビットをさらに発生 させ、前記書込手段は、前記選択手段によって初期化処理が選択されると、 RAMの 全領域を無効化することを特徴とする。
[0019] また、本発明は、上記発明において、前記発生手段は、前記 1書込処理、前記 1ェ ラーチェック処理、前記 0書込処理、および前記 0エラーチェック処理の順に状態ビッ トを発生させることを特徴とする。
[0020] また、本発明は、上記発明において、前記検出手段は、 RAMに登録されるノ リティ ビットを用いて前記第 1データパターンおよび前記第 2データパターンのエラーを検 出することを特徴とする。
[0021] また、本発明は、上記発明において、前記選択手段は、状態ビットが前記第 1デー
タパターンの書込処理を示しているときに 1を出力する第 1論理積回路と、状態ビット が前記第 2データパターンの書込処理を示しているときに 1を出力する第 2論理積回 路と、状態ビットが前記第 1データパターンのエラーチェック処理を示しているときに 1 を出力する第 3論理積回路と、状態ビットが前記第 2データパターンのエラーチェック 処理を示しているときに 1を出力する第 4論理積回路と、前記第 1論理積回路および 前記第 2論理積回路のいずれか 1つから 1が出力された場合に RAMへの書き込み を指示する信号を出力する第 1論理和回路と、前記第 3論理積回路および前記第 4 論理積回路のいずれか 1つから 1が出力された場合に RAMからの読み出しを指示 する信号を出力する第 2論理和回路とを含むことを特徴とする。
[0022] また、本発明は、 RAMに故障があるか否かを診断する RAM診断方法であって、 複数の処理の状態の!/ヽずれかを示す状態ビットを順次発生させる発生工程と、前記 発生工程にて発生した状態ビットを参照して処理を選択する選択工程と、前記選択 工程にて書込処理が選択されると、 RAMの全領域に 2値の第 1データパターンを書 き込む第 1書込工程と、前記第 1書込工程にて書き込まれた前記第 1データパターン を RAMの全領域力 読み出してエラーを検出する第 1検出工程と、前記第 1検出ェ 程の後に RAMの全領域に前記第 1データパターンを反転した第 2データパターンを 書き込む第 2書込工程と、前記第 2書込工程にて書き込まれた前記第 2データパター ンを RAMの全領域力 読み出してエラーを検出する第 2検出工程とを有することを 特徴とする。
発明の効果
[0023] 本発明によれば、複数の処理の状態の!/ヽずれかを示す状態ビットを順次発生させ 、発生した状態ビットを参照して処理を選択し、書込処理が選択されると、 RAMの全 領域に 2値の第 1データパターンを書き込み、次に書込処理が選択されると、 RAM の全領域に前記第 1データパターンを反転した第 2データパターンを書き込み、書込 処理それぞれの後にエラーチェック処理が選択されると、第 1データパターンまたは 第 2データパターンを RAMの全領域力も読み出してエラーを検出する。このため、メ インメモリからデータを読み出したり複雑なプログラムを使用したりすることなぐハー ドウエア主導で RAMの全領域のビットを 0および 1とした上でエラーチェックすること
ができ、搭載されるメインメモリのサイズに関わらず、 RAMの全ビットをより容易かつ 高速に診断することができる。
[0024] また、本発明によれば、状態ビットの下位に RAMの開始アドレスを示すアドレスビッ トが付加されたビット列を生成し、生成されたビット列を 1ずつインクリメントするため、 インクリメントされるごとにビット列を状態ビット部分とアドレスビット部分に分ければ、 1 種類の状態ビットについて RAMの全領域のアドレスに対応するアドレスビットが得ら れることになり、処理の指定と処理対象となる RAMの領域の指定とを容易に行うこと ができる。
[0025] また、本発明によれば、得られたビット列が所定のビット列と等しくなつた場合に、状 態ビットが示すすべての処理が完了したと判定するため、処理の指定および処理対 象となる RAMの領域の指定に用いられるビット列を、そのまま完了判定にも用いるこ とがでさる。
[0026] また、本発明によれば、得られたビット列のうち状態ビット部分力も処理を選択し、得 られたビット列のうちアドレスビット部分が示す RAMの領域に第 1データパターンまた は第 2データパターンを書き込む。このため、状態ビットが書込処理を示している間に 、確実に RAMの開始アドレス力 最終アドレスまでの全領域に第 1データパターンま たは第 2データパターンを書き込むことができる。
[0027] また、本発明によれば、得られたビット列のうち状態ビット部分力も処理を選択し、得 られたビット列のうちアドレスビット部分が示す RAMの領域の第 1データパターンまた は第 2データパターンを読み出してエラーを検出する。このため、状態ビットがエラー チェック処理を示している間に、確実に RAMの開始アドレス力 最終アドレスまでの 全領域の第 1データパターンまたは第 2データパターンのエラーチェックを行うことが できる。
[0028] また、本発明によれば、 RAMの全領域に 0のみ力 なる第 1データパターンを書き 込む 0書込処理の状態を示す状態ビット、 0書込処理後のエラーチェックを行う 0エラ 一チェック処理の状態を示す状態ビット、 RAMの全領域に 1のみ力 なる第 2データ パターンを書き込む 1書込処理の状態を示す状態ビット、および 1書込処理後のエラ 一チェックを行う 1エラーチェック処理の状態を示す状態ビットを順次発生させる。こ
のため、 RAMの全領域における 0の書き込みおよび読み出しが正常である力診断 するとともに、 RAMの全領域における 1の書き込みおよび読み出しが正常であるか 診断することができる。
[0029] また、本発明によれば、 1エラーチェック処理後に RAMの全領域を無効化する初 期化処理の状態を示す状態ビットをさらに発生させ、初期化処理が選択されると、 R AMの全領域を無効化する。このため、 RAMの全領域の診断の後、 RAMを初期化 することができ、キャッシュ内に備えられる RAMなどの起動時における初期化と同時 に診断することができる。
[0030] また、本発明によれば、 1書込処理、 1エラーチェック処理、 0書込処理、および 0ェ ラーチェック処理の順に状態ビットを発生させるため、エラーが検出されなければ、最 終的に RAMの全領域に 0が書き込まれた状態となり、 RAMの初期化を省略すること ができる。
[0031] また、本発明によれば、 RAMに登録されるパリティビットを用いて第 1データパター ンおよび第 2データパターンのエラーを検出するため、正確なエラーチェックを行うこ とがでさる。
[0032] また、本発明によれば、状態ビットが第 1データパターンの書込処理を示していると きに 1を出力する第 1論理積回路と、状態ビットが第 2データパターンの書込処理を示 しているときに 1を出力する第 2論理積回路と、状態ビットが第 1データパターンのエラ 一チェック処理を示しているときに 1を出力する第 3論理積回路と、状態ビットが第 2 データパターンのエラーチェック処理を示しているときに iを出力する第 4論理積回路 と、第 1論理積回路および第 2論理積回路のいずれ力 1つから 1が出力された場合に RAMへの書き込みを指示する信号を出力する第 1論理和回路と、第 3論理積回路 および第 4論理積回路のいずれか 1つから 1が出力された場合に RAM力 の読み出 しを指示する信号を出力する第 2論理和回路とを含む。このため、簡易な論理演算 回路のみで状態ビットから処理を選択することができ、より高速に RAMの正確な診 断を行うことができる。
図面の簡単な説明
[0033] [図 1]図 1は、本発明の一実施の形態に係る情報処理装置の要部構成を示すブロッ
ク図である。
[図 2]図 2は、タグ RAMに登録される情報の一例を示す図である。
[図 3]図 3は、一実施の形態に係る RAM診断装置の内部構成を示すブロック図であ る。
[図 4]図 4は、一実施の形態に係る RAM診断動作を示すフロー図である。
[図 5]図 5は、一実施の形態に係る 0書込処理を示すフロー図である。
[図 6]図 6は、一実施の形態に係る 0エラーチェック処理を示すフロー図である。
[図 7]図 7は、一実施の形態に係る 1書込処理を示すフロー図である。
[図 8]図 8は、一実施の形態に係る 1エラーチェック処理を示すフロー図である。
[図 9]図 9は、一実施の形態に係る初期化処理を示すフロー図である。
符号の説明
[0034] 110 ビット生成部
120 状態ビット出力部
130 アドレスビット出力部
140 インクリメント咅
150 状態選択部
151 インノ ータ
152、 153、 154、 155、 156 ANDゲート
157、 158 ORゲート
160 書込制御部
170 読出制御部
180 エラー検出部
190 完了判定部
発明を実施するための最良の形態
[0035] 以下、本発明の一実施の形態について、図面を参照して詳細に説明する。なお、 以下の説明においては、キャッシュ内のタグ RAM (TAG—RAM)を診断することと するが、本発明は、例えばデータ RAMや TLB— RAMなど他の RAMの診断にも適 用することができる。
[0036] 図 1は、本発明の一実施の形態に係る RAM診断装置を備えた情報処理装置の要 部構成を示すブロック図である。図 1に示す情報処理装置は、 CPU内にキャッシュ 2 00を備えており、このキャッシュ内にはタグ RAM200a、 TLB— RAM200b、および データ RAM200cを有している。そして、タグ RAM200a〖こは、 RAM診断装置 100 が接続されており、 RAM診断装置 100には、 CPUとは別のサービスプロセッサ(Ser Vice Processor:以下「SVP」と略記する) 300力接続されて!ヽる。
[0037] キャッシュ 200は、メインメモリ 400に記憶されているデータを一時的に記憶(キヤッ シュ)し、このデータが CPUで使用される際に、処理の高速化を図る。このとき、デー タ自体はデータ RAM200cに記憶され、このデータのメインメモリ 400における物理 アドレスがタグ RAM200aに記憶される。
[0038] 具体的には、タグ RAM200aには、例えば図 2に示すような情報が各ラインに登録 されている。すなわち、データの有効 Z無効を示すバリッドビット (Valid bit)、バリッド ビットのエラーチェック用のパリティビット(Valid bit parity)、データのタイプを示すタ ィプビット(Type bit)、タイプビットのエラーチェック用のパリティビット(Type bit pari ty)、データの物理アドレスを示す物理アドレスビット(Physical address bits)、およ び物理アドレスビットのエラーチェック用のパリティビット(Physical address parity)が タグ RAM200aのそれぞれのラインに登録されて 、る。 CPUが所望のデータを読み 出して処理を行う場合、タグ RAM200aにアクセスして所望のデータの物理アドレス を検索し、所望のデータがデータ RAM200cにキャッシュされて!/、るか否かを把握す ることができる。また、プログラムで使用される仮想アドレスと物理アドレスとの対応関 係が TLB—RAM200bに記憶される。
[0039] RAM診断装置 100は、キャッシュ 200内のタグ RAM200aに故障があるか否かを 診断する。すなわち、 RAM診断装置 100は、タグ RAM200aの物理アドレスを記憶 する全ビットに 0および 1を順次書き込み、各々の書込処理後にエラーチェックを行つ て、全ビットの故障の有無を診断する。 RAM診断装置 100の詳細な構成について は、後に詳述する。
[0040] SVP300は、 CPUとは独立して設けられたプロセッサであり、 CPUの故障診断な どを管理している。また、 SVP300は、情報処理装置の起動時などに、 RAM診断装
置 100へキャッシュ 200の初期化の開始を指示する。この初期化の際、 SVP300は 、 RAMの診断を行うか否かを判定し、 RAMの診断を行う場合は、初期化と同時に R AM診断を行うように RAM診断装置 100へ指示する。
[0041] 図 3は、本実施の形態に係る RAM診断装置 100の内部構成を示すブロック図であ る。図 3に示す RAM診断装置 100は、ビット生成部 110、状態ビット出力部 120、ァ ドレスビット出力部 130、インクリメント部 140、状態選択部 150、書込制御部 160、読 出制御部 170、エラー検出部 180、および完了判定部 190を有している。
[0042] ビット生成部 110は、タグ RAM200aの全ラインを表現可能なビット数のアドレスビ ットの上位に、診断や初期化などの状態を示す状態ビットを付加したビット数のビット 列を生成する。具体的には、ビット生成部 110は、 SVP300力らタグ RAM200aの初 期化または診断が指示された場合、すべてのビットが 0からなるアドレスビットの上位 に 3ビットの状態ビットを付加したビット列を生成する。また、ビット生成部 110は、イン クリメント部 140からの指示に従い、ビット列を 1ずつインクリメントする。
[0043] ここで、状態ビットとは、 RAM診断装置 100が実行する処理を 5つの状態に分類し 、それぞれの状態に対応する 3ビットのビット列である。具体的には、タグ RAM200a の各ラインに 0を書き込む処理(0書込処理)を「011」で表し、タグ RAM200aに 0力 S 書き込まれた後のエラーチェック処理 (0エラーチェック処理)を「100」で表し、タグ R AM200aの各ラインに 1を書き込む処理( 1書込処理)を「 101」で表し、タグ RAM20 Oaに 1が書き込まれた後のエラーチェック処理( 1エラーチェック処理)を「 110」で表 し、タグ RAM200aの初期化処理を「111」で表す。なお、本実施の形態においては 、 RAM診断装置 100が実行する処理が 5つの状態に分類されるため、状態ビットは 3ビットとなる力 例えば 4つの状態で処理を分類できる場合は、状態ビットは 2ビット で良い。
[0044] 状態ビットが上記のように定義されるため、 SVP300からタグ RAM200aの初期化 が指示された場合は、ビット生成部 110は、状態ビット「111」に続けてすべてのビット 力 SOからなるアドレスビットが付加されたビット列を生成する。また、 SVP300力 タグ RAM200aの診断が指示された場合は、ビット生成部 110は、状態ビット「011」に続 けてすべてのビットが 0からなるアドレスビットが付加されたビット列を生成する。
[0045] 状態ビット出力部 120は、ビット生成部 110によってビット列が生成されるたびに、こ のビット列の上位 3ビットからなる状態ビットを状態選択部 150へ出力する。アドレスビ ット出力部 130は、ビット生成部 110によってビット列が生成されるたびに、このビット 列の上位 3ビットを除いたアドレスビットを書込制御部 160および読出制御部 170へ 出力する。インクリメント部 140は、所定の周期でビット生成部 110にビット列を 1イン クリメン卜するよう旨示する。
[0046] 状態選択部 150は、状態ビット出力部 120から出力される状態ビットを参照して、 0 書込処理、 0エラーチェック処理、 1書込処理、 1エラーチェック処理、および初期化 処理のどの状態にあるかを選択し、書込制御部 160または読出制御部 170へそれぞ れの状態に応じた動作を指示する。具体的には、状態選択部 150は、インバータ 15 1、 ANDゲート 152〜156、および ORゲート 157、 158を有している。
[0047] インバータ 151は、状態ビット出力部 120から出力される 3ビットを反転する。すなわ ち、インバータ 151は、状態ビットを構成する 0を 1に変換し、 1を 0に変換する。
[0048] ANDゲート 152〜156は、それぞれ 0書込処理、 1書込処理、初期化処理、 0エラ 一チェック処理、および 1エラーチェック処理に対応しており、状態ビット出力部 120 から出力される状態ビットが示す状態に対応する ANDゲート 152〜 156から 1が出 力される。なお、図 3中、 ANDゲート 152〜156の入力側に示される 1〜3の数字は 、状態ビットの最上位ビット、 2番目のビット、および 3番目のビットをそれぞれ示してい る。したがって、例えば状態ビット出力部 120から 0書込処理を示す状態ビット「011」 が出力されると、 ANDゲート 152には、状態ビットの最上位ビットのみがインバータ 1 51によって反転された「111」が入力されることになる。このとき他の ANDゲート 153 〜156には、「111」が入力されることはない。このため、 ANDゲート 152のみから 1 が出力され、現在の状態が 0書込処理であるとわかる。
[0049] 他の状態のときも同様で、 1書込処理を示す状態ビット「101」の場合は ANDゲート 153のみから 1が出力され、初期化処理を示す状態ビット「111」の場合は ANDゲー ト 154のみから 1が出力され、 0エラーチェック処理を示す状態ビット「100」の場合は ANDゲート 155のみから 1が出力され、 1エラーチェック処理を示す状態ビット「110」 の場合は ANDゲート 156のみから 1が出力される。
[0050] ORゲート 157は、 0書込処理に対応する ANDゲート 152、 1書込処理に対応する ANDゲート 153、および初期化処理に対応する ANDゲート 154のいずれかから 1 が出力された場合に、書込制御部 160にタグ RAM200aへの書き込みを指示する。
[0051] ORゲート 158は、 0エラーチェック処理に対応する ANDゲート 155および 1エラー チェック処理に対応する ANDゲート 156のいずれかから 1が出力された場合に、読 出制御部 170にタグ RAM200aからの読み出しを指示する。
[0052] 書込制御部 160は、 ORゲート 157からタグ RAM200aへの書き込みが指示される と、アドレスビット出力部 130から出力されたアドレスビットに対応するタグ RAM200a のラインに書込処理を行う。このとき、書込制御部 160は、 ANDゲート 153から 1が出 力されれば 1を書き込み、 ANDゲート 153から 0が出力されれば 0を書き込む。
[0053] より具体的には、 0書込処理時および初期化処理時は、書込制御部 160は、図 2に 示したノ リツドビット、タイプビット、および物理アドレスビットのすべてのビットに 0を書 き込むとともに、すべてのノ リティビットにはエラーチェックされる各ビットにエラーを発 生させない値 (ここでは 1)を書き込む。また、 1書込処理時は、書込制御部 160は、 ノ リツドビット、タイプビット、および物理アドレスビットのすべてのビットに 1を書き込む とともに、すべてのパリティビットにはエラーチェックされる各ビットにエラーを発生させ な 、値 (ここでは 0)を書き込む。
[0054] なお、ここでは 0書込処理と初期化処理を区別せず、すべてのビットに 0を書き込む ものとしたが、 ANDゲート 154から書込制御部 160へ 1が出力された場合 (すなわち 、初期化処理が行われる場合)は、ノ リツドビットのみに 0を書き込むとともに、ノ リツド ビットのパリティビットに 1を書き込み、ラインを無効化する処理のみを行うようにしても 良い。
[0055] 読出制御部 170は、 ORゲート 158からタグ RAM200aからの読み出しが指示され ると、アドレスビット出力部 130から出力されたアドレスビットに対応するタグ RAM20 Oaのライン力も読み出し処理を行い、このラインの情報をエラー検出部 180へ出力さ せる。すなわち、読出制御部 170は、状態ビットが 0エラーチェック処理または 1エラ 一チェック処理を示して 、る場合に、タグ RAM200aのラインの情報を順次エラー検 出部 180へ出力させる。
[0056] エラー検出部 180は、タグ RAM200aから各ラインの情報が出力されると、各ライン のパリティビットを用いてバリッドビット、タイプビット、および物理アドレスビットのエラ 一チェックを行い、結果を完了判定部 190へ通知する。エラー検出部 180によるエラ 一チェックは、 0書込処理の後と 1書込処理の後とに行われる。したがって、 0書込処 理後のエラーチェック時には、各ラインのすべてのビットが 0であればタグ RAM200a への 0の書き込み Z読み出しにエラーがないことになり、 1書込処理後のエラーチエツ ク時には、各ラインのすべてのビットが 1であればタグ RAM200aへの 1の書き込み Z読み出しにエラーがないことになる。
[0057] 完了判定部 190は、ビット生成部 110によって生成されるビット列の全ビットが 1とな り、エラー検出部 180からエラーなしが通知されると、 SVP300へタグ RAM200aの 初期化が完了した旨を通知する。すなわち、完了判定部 190は、ビット生成部 110に よって生成されるビット列が 1ずつインクリメントされ、最終的に状態ビットが「111」とな り、アドレスビットもすベて 1となると、タグ RAM200aのすベてのラインが初期化され たと判定し、エラーが検出されな力つたことを確認して初期化完了を SVP300へ通知 する。
[0058] 次いで、上記のように構成された RAM診断装置 100によるタグ RAM200aの診断 動作について、図 4〜9に示すフロー図を参照しながら説明する。
[0059] まず、情報処理装置の起動時などに、 SVP300によってタグ RAM200aの診断を 行うか否かが判定される (ステップ S100)。この判定は、例えばユーザが診断を行わ ない診断抑止モードを選択した力否かに基づいて行われる。この判定の結果、タグ R AM200aの診断を行う場合は(ステップ SlOOYes)、ビット生成部 110へその旨が通 知され、ビット生成部 110によって状態ビットである上位 3ビットが「011」とされ、状態 ビットより下位のアドレスビットがすべて 0とされたビット列が生成される(ステップ S 200 ) oそして、 RAM診断装置 100により、 0書込処理 (ステップ S400)、 0エラーチェック 処理 (ステップ S500)、 1書込処理 (ステップ S600)、 1エラーチェック処理 (ステップ S700)、および初期化処理 (ステップ S800)が順次実行されることになる。
[0060] 一方、ステップ S 100の判定の結果、タグ RAM200aの診断を行わな!/、場合は(ス テツプ SlOONo)、ビット生成部 110へその旨が通知され、ビット生成部 110によって
状態ビットである上位 3ビットが「111」とされ、状態ビットより下位のアドレスビットがす ベて 0とされたビット列が生成される(ステップ S300)。そして、 RAM診断装置 100に より、初期化処理 (ステップ S800)のみが実行されることになる。ここでは、タグ RAM 200aの診断が行われるものとして、 0書込処理 (ステップ S400)、 0エラーチェック処 理 (ステップ S500)、 1書込処理 (ステップ S600)、 1エラーチェック処理 (ステップ S7 00)、および初期化処理 (ステップ S800)について順に説明する。
[0061] まず、図 5を参照して、 0書込処理 (ステップ S400)につ 、て説明する。 0書込処理 の開始時には、ビット生成部 110によって、上位 3ビットが「011」かっこれより下位ビ ットがすべて 0のビット列が生成される。このビット列は、状態ビット出力部 120、ァドレ スビット出力部 130、および完了判定部 190へ出力される。ここでは、ビット列のすべ てのビットが 1ではないので、完了判定部 190によって初期化完了と判定されることは ない。
[0062] ビット列が状態ビット出力部 120へ出力されると、上位 3ビット「011」が状態ビット出 力部 120から状態選択部 150へ出力され、それぞれのビットまたはインバータ 151に よって反転されたビットが ANDゲート 152〜156へ入力される。ここでは状態ビット「0 11」のうち最上位ビットのみがインバータ 151によって反転されることにより、 ANDゲ ートへの入力がすべて 1となるため、 ANDゲート 152のみから 1が出力され、 ANDゲ ート 153〜156から 0が出力される。したがって、 ORゲート 157から書込制御部 160 へタグ RAM200aへの書き込みが指示されるとともに、 ANDゲート 153から書込制 御部 160へ 0が出力されることから、タグ RAM200aへ 0が書き込まれることになる。
[0063] また、ビット列がアドレスビット出力部 130へ出力されると、上位 3ビットを除いたビッ ト列(ここでは、全ビットが 0のビット列)がアドレスビット出力部 130から書込制御部 16 0および読出制御部 170へ出力される。そして、 ORゲート 157から書き込みを指示さ れた書込制御部 160によって、アドレスビット出力部 130から出力されたビット列(アド レスビット)が示すタグ RAM200aのラインに 0が書き込まれる(ステップ S401)。すな わち、ここでは、全ビットが 0のアドレスで示されるラインのバリッドビット、タイプビット、 および物理アドレスビットのすべてのビットに 0が書き込まれる。
[0064] 一方で、インクリメント部 140からは生成するビットを 1インクリメントするよう指示が出
され、ビット生成部 110によって、上位 3ビットが「011」かつ最下位ビットが 1で残りの ビットがすべて 0のビット列が生成される(ステップ S402)。そして、上述したのと同様 に、状態ビットが状態選択部 150へ出力され、アドレスビットが書込制御部 160およ び読出制御部 170へ出力される。このとき、状態選択部 150によって、状態ビットが「 100」となったことが検知され (ステップ S403)、状態ビットが「100」となると 0書込処 理が終了するが、ここでは、状態ビットが「011」であるため(ステップ S403No)、引き 続き 0書込処理が実行される。
[0065] すなわち、最下位ビットが 1で残りのビットがすべて 0のアドレスビットがアドレスビット 出力部 130から書込制御部 160へ出力され、書込制御部 160によって、タグ RAM2 OOaのアドレスビットに対応するラインに 0が書き込まれる。
[0066] 以降、ビット生成部 110によって生成されるビット列が 1ずつインクリメントされながら 、上位 3ビットが「011」である間は、 1ずつ大きくなるアドレスビットが示すラインに 0が 書き込まれる。そして、上位 3ビットが「011」かっこれより下位ビットがすべて 1のビット 列がビット生成部 110によって生成され、全ビットが 1のアドレスビットに対応するライ ンに 0が書き込まれたときに、タグ RAM200aのすベてのラインに 0が書き込まれたこ とになる。
[0067] タグ RAM200aの全ビットが 1のアドレスビットに対応するラインに 0が書き込まれた 後、ビット生成部 110によって生成されるビット列が 1インクリメントされると、上位 3ビッ トが「100」かっこれより下位ビットがすべて 0のビット列が生成されることになる。この ため、状態選択部 150によって状態ビットが「100」であることが検知され (ステップ S4 03Yes)、 0書込処理が完了する。
[0068] 次に、図 6を参照して、 0エラーチェック処理 (ステップ S500)について説明する。上 述した 0書込処理完了時には、ビット生成部 110によって、上位 3ビットが「100」かつ これより下位ビットがすべて 0のビット列が生成される。このビット列は、状態ビット出力 部 120、アドレスビット出力部 130、および完了判定部 190へ出力される。ここでは、 ビット列のすべてのビットが 1ではないので、完了判定部 190によって初期化完了と 判定されることはない。
[0069] ビット列が状態ビット出力部 120へ出力されると、上位 3ビット「100」が状態ビット出
力部 120から状態選択部 150へ出力され、それぞれのビットまたはインバータ 151に よって反転されたビットが ANDゲート 152〜 156へ入力される。ここでは状態ビット「 1 00」のうち 2番目および 3番目のビットがインバータ 151によって反転されることにより 、 ANDゲートへの入力がすべて 1となるため、 ANDゲート 155のみから 1が出力され 、 ANDゲート 152〜154、 156力ら 0力 S出力される。した力 Sつて、 ORゲート 158力ら 読出制御部 170へタグ RAM200aからの読み出しが指示される。
[0070] また、ビット列がアドレスビット出力部 130へ出力されると、上位 3ビットを除いたビッ ト列(ここでは、全ビットが 0のビット列)がアドレスビット出力部 130から書込制御部 16 0および読出制御部 170へ出力される。そして、 ORゲート 158から読み出しを指示さ れた読出制御部 170によって、アドレスビット出力部 130から出力されたアドレスビッ トが示すタグ RAM200aのライン力もエラー検出部 180への情報の読み出しが実行 される。すなわち、ここでは、全ビットが 0のアドレスで示されるラインの情報がエラー 検出部 180へ出力される。
[0071] エラー検出部 180へ情報が出力されると、エラー検出部 180によってパリティビット が用いられることにより、ノ リツドビット、タイプビット、および物理アドレスビットのエラ 一チェックが行われる(ステップ S501)。そして、タグ RAM200aから出力されたライ ンの情報にエラーがある力否かが判定され (ステップ S502)、エラーがあれば完了判 定部 190へその旨が通知される(ステップ S 503)。
[0072] 一方で、インクリメント部 140からは生成するビットを 1インクリメントするよう指示が出 され、ビット生成部 110によって、上位 3ビットが「100」かつ最下位ビットが 1で残りの ビットがすべて 0のビット列が生成される(ステップ S504)。そして、上述したのと同様 に、状態ビットが状態選択部 150へ出力され、アドレスビットが書込制御部 160およ び読出制御部 170へ出力される。このとき、状態選択部 150によって、状態ビットが「 101」となったことが検知され (ステップ S505)、状態ビットが「101」となると 0エラーチ エック処理が終了するが、ここでは、状態ビットが「100」であるため(ステップ S505N o)、引き続き 0エラーチェック処理が実行される。
[0073] すなわち、最下位ビットが 1で残りのビットがすべて 0のアドレスビットがアドレスビット 出力部 130から読出制御部 170へ出力され、読出制御部 170によって、タグ RAM2
00aのアドレスビットに対応するライン力もエラー検出部 180への情報の読み出しが 実行される。そして、エラー検出部 180によって、読み出されたラインの情報のエラー チェックが行われる。
[0074] 以降、ビット生成部 110によって生成されるビット列が 1ずつインクリメントされながら 、上位 3ビットが「100」である間は、 1ずつ大きくなるアドレスビットが示すラインのエラ 一チェックが行われる。そして、上位 3ビットが「100」かっこれより下位ビットがすべて 1のビット列がビット生成部 110によって生成され、全ビットが 1のアドレスビットに対応 するラインのエラーチェックが行われたときに、タグ RAM200aのすベてのラインに 0 が書き込まれた場合のエラーチェックが行われたことになる。
[0075] タグ RAM200aの全ビットが 1のアドレスビットに対応するラインのエラーチェックが 行われた後、ビット生成部 110によって生成されるビット列が 1インクリメントされると、 上位 3ビットが「101」かっこれより下位ビットがすべて 0のビット列が生成されることに なる。このため、状態選択部 150によって状態ビットが「101」であることが検知され( ステップ S505Yes)、 0エラーチェック処理が完了する。
[0076] 次に、図 7を参照して、 1書込処理 (ステップ S600)について説明する。上述した 0 エラーチェック処理完了時には、ビット生成部 110によって、上位 3ビットが「101」か つこれより下位ビットがすべて 0のビット列が生成される。このビット列は、状態ビット出 力部 120、アドレスビット出力部 130、および完了判定部 190へ出力される。ここでは 、ビット列のすべてのビットが 1ではないので、完了判定部 190によって初期化完了と 判定されることはない。
[0077] ビット列が状態ビット出力部 120へ出力されると、上位 3ビット「101」が状態ビット出 力部 120から状態選択部 150へ出力され、それぞれのビットまたはインバータ 151に よって反転されたビットが ANDゲート 152〜 156へ入力される。ここでは状態ビット「 1 01」のうち 2番目のビットのみがインバータ 151によって反転されることにより、 AND ゲートへの入力がすべて 1となるため、 ANDゲート 153のみから 1が出力され、 AND ゲート 152、 154〜156から 0が出力される。したがって、 ORゲート 157から書込制御 部 160へタグ RAM200aへの書き込みが指示されるとともに、 ANDゲート 153から 書込制御部 160へ 1が出力されることから、タグ RAM200aへ 1が書き込まれることに
なる。
[0078] 一方で、インクリメント部 140からは生成するビットを 1インクリメントするよう指示が出 され、ビット生成部 110によって、上位 3ビットが「101」かつ最下位ビットが 1で残りの ビットがすべて 0のビット列が生成される(ステップ S602)。そして、上述したのと同様 に、状態ビットが状態選択部 150へ出力され、アドレスビットが書込制御部 160およ び読出制御部 170へ出力される。このとき、状態選択部 150によって、状態ビットが「 110」となったことが検知され (ステップ S603)、状態ビットが「110」となると 1書込処 理が終了するが、ここでは、状態ビットが「101」であるため(ステップ S603No)、引き 続き 1書込処理が実行される。
[0079] すなわち、最下位ビットが 1で残りのビットがすべて 0のアドレスビットがアドレスビット 出力部 130から書込制御部 160へ出力され、書込制御部 160によって、タグ RAM2 00aのアドレスビットに対応するラインに 1が書き込まれる。
[0080] 以降、ビット生成部 110によって生成されるビット列が 1ずつインクリメントされながら 、上位 3ビットが「101」である間は、 1ずつ大きくなるアドレスビットが示すラインに 1が 書き込まれる。そして、上位 3ビットが「101」かっこれより下位ビットがすべて 1のビット 列がビット生成部 110によって生成され、全ビットが 1のアドレスビットに対応するライ ンに 1が書き込まれたときに、タグ RAM200aのすベてのラインに 1が書き込まれたこ とになる。
[0081] タグ RAM200aの全ビットが 1のアドレスビットに対応するラインに 1が書き込まれた 後、ビット生成部 110によって生成されるビット列が 1インクリメントされると、上位 3ビッ トが「110」かっこれより下位ビットがすべて 0のビット列が生成されることになる。この ため、状態選択部 150によって状態ビットが「110」であることが検知され (ステップ S6 03Yes)、 1書込処理が完了する。
[0082] 次に、図 8を参照して、 1エラーチェック処理 (ステップ S 700)について説明する。上 述した 1書込処理完了時には、ビット生成部 110によって、上位 3ビットが「110」かつ これより下位ビットがすべて 0のビット列が生成される。このビット列は、状態ビット出力 部 120、アドレスビット出力部 130、および完了判定部 190へ出力される。ここでは、 ビット列のすべてのビットが 1ではないので、完了判定部 190によって初期化完了と
判定されることはない。
[0083] ビット列が状態ビット出力部 120へ出力されると、上位 3ビット「110」が状態ビット出 力部 120から状態選択部 150へ出力され、それぞれのビットまたはインバータ 151に よって反転されたビットが ANDゲート 152〜 156へ入力される。ここでは状態ビット「 1 10」のうち 3番目のビットのみがインバータ 151によって反転されることにより、 AND ゲートへの入力がすべて 1となるため、 ANDゲート 156のみから 1が出力され、 AND ゲート 152〜155から 0が出力される。したがって、 ORゲート 158から読出制御部 17 0へタグ RAM200aからの読み出しが指示される。
[0084] また、ビット列がアドレスビット出力部 130へ出力されると、上位 3ビットを除いたビッ ト列(ここでは、全ビットが 0のビット列)がアドレスビット出力部 130から書込制御部 16 0および読出制御部 170へ出力される。そして、 ORゲート 158から読み出しを指示さ れた読出制御部 170によって、アドレスビット出力部 130から出力されたアドレスビッ トが示すタグ RAM200aのライン力もエラー検出部 180への情報の読み出しが実行 される。すなわち、ここでは、全ビットが 0のアドレスで示されるラインの情報がエラー 検出部 180へ出力される。
[0085] エラー検出部 180へ情報が出力されると、エラー検出部 180によってパリティビット が用いられることにより、ノ リツドビット、タイプビット、および物理アドレスビットのエラ 一チェックが行われる(ステップ S701)。そして、タグ RAM200aから出力されたライ ンの情報にエラーがある力否かが判定され (ステップ S 702)、エラーがあれば完了判 定部 190へその旨が通知される(ステップ S 703)。
[0086] 一方で、インクリメント部 140からは生成するビットを 1インクリメントするよう指示が出 され、ビット生成部 110によって、上位 3ビットが「110」かつ最下位ビットが 1で残りの ビットがすべて 0のビット列が生成される(ステップ S704)。そして、上述したのと同様 に、状態ビットが状態選択部 150へ出力され、アドレスビットが書込制御部 160およ び読出制御部 170へ出力される。このとき、状態選択部 150によって、状態ビットが「 111」となったことが検知され (ステップ S705)、状態ビットが「111」となると 1エラーチ エック処理が終了するが、ここでは、状態ビットが「110」であるため(ステップ S705N o)、引き続き 1エラーチェック処理が実行される。
[0087] すなわち、最下位ビットが 1で残りのビットがすべて 0のアドレスビットがアドレスビット 出力部 130から読出制御部 170へ出力され、読出制御部 170によって、タグ RAM2 OOaのアドレスビットに対応するライン力もエラー検出部 180への情報の読み出しが 実行される。そして、エラー検出部 180によって、読み出されたラインの情報のエラー チェックが行われる。
[0088] 以降、ビット生成部 110によって生成されるビット列が 1ずつインクリメントされながら 、上位 3ビットが「110」である間は、 1ずつ大きくなるアドレスビットが示すラインのエラ 一チェックが行われる。そして、上位 3ビットが「110」かっこれより下位ビットがすべて 1のビット列がビット生成部 110によって生成され、全ビットが 1のアドレスビットに対応 するラインのエラーチェックが行われたときに、タグ RAM200aのすベてのラインに 1 が書き込まれた場合のエラーチェックが行われたことになる。
[0089] タグ RAM200aの全ビットが 1のアドレスビットに対応するラインのエラーチェックが 行われた後、ビット生成部 110によって生成されるビット列が 1インクリメントされると、 上位 3ビットが「111」かっこれより下位ビットがすべて 0のビット列が生成されることに なる。このため、状態選択部 150によって状態ビットが「111」であることが検知され( ステップ S705Yes)、 1エラーチェック処理が完了する。
[0090] 次に、図 9を参照して、初期化処理 (ステップ S800)について説明する。上述した 1 エラーチェック処理完了時には、ビット生成部 110によって、上位 3ビットが「111」か つこれより下位ビットがすべて 0のビット列が生成される。このビット列は、状態ビット出 力部 120、アドレスビット出力部 130、および完了判定部 190へ出力される。ここでは 、ビット列のすべてのビットが 1ではないので、完了判定部 190によって初期化完了と 判定されることはない。
[0091] ビット列が状態ビット出力部 120へ出力されると、上位 3ビット「111」が状態ビット出 力部 120から状態選択部 150へ出力され、それぞれのビットまたはインバータ 151に よって反転されたビットが ANDゲート 152〜 156へ入力される。ここでは状態ビット「 1 11」のすベてのビットが反転されずにそのまま入力されることにより、 ANDゲートへの 入力がすべて 1となるため、 ANDゲート 154のみから 1が出力され、 ANDゲート 152 、 153、 155、 156から 0が出力される。したがって、 ORゲート 157から書込制御部 1
60へタグ RAM200aへの書き込みが指示されるとともに、 ANDゲート 153から書込 制御部 160へ 0が出力されることから、タグ RAM200aへ 0が書き込まれることになる 。このとき、上述したように、 ANDゲート 154から書込制御部 160へ直接 1が出力され るようにしておき、 0書込処理と初期化処理を区別した書き込みを行うようにしても良 い。
[0092] また、ビット列がアドレスビット出力部 130へ出力されると、上位 3ビットを除いたビッ ト列(ここでは、全ビットが 0のビット列)がアドレスビット出力部 130から書込制御部 16 0および読出制御部 170へ出力される。そして、 ORゲート 157から書き込みを指示さ れた書込制御部 160によって、アドレスビット出力部 130から出力されたアドレスビッ トが示すタグ RAM200aのラインが無効化される(ステップ S801)。すなわち、ここで は、全ビットが 0のアドレスで示されるラインのバリッドビットに 0が書き込まれる。なお、 ノ リツドビット以外のタイプビットおよび物理アドレスビットにも 0が書き込まれるようにし ても良い。
[0093] この初期化処理の過程においては、完了判定部 190によって、状態ビットがビット 生成部 110によって生成されるビット列の全ビットが 1となったことが検知され (ステツ プ S802)、ビット列の全ビットが 1となると最終的な故障の有無が判断されるが、ここ では、状態ビットは「111」であるがアドレスビットの全ビットが 1ではな 、ため(ステップ S802No)、引き続きラインの無効化が行われる。
[0094] すなわち、インクリメント部 140からは生成するビットを 1インクリメントするよう指示が 出され、ビット生成部 110によって、上位 3ビットが「111」かつ最下位ビットが 1で残り のビットがすべて 0のビット列が生成される(ステップ S803)。そして、上述したのと同 様に、状態ビットが状態選択部 150へ出力され、アドレスビットが書込制御部 160お よび読出制御部 170へ出力される。そして、書込制御部 160によって、タグ RAM20 0aのアドレスビットに対応するラインが無効化される。
[0095] 以降、ビット生成部 110によって生成されるビット列が 1ずつインクリメントされながら 、上位 3ビットが「111」である間は、 1ずつ大きくなるアドレスビットが示すラインに 1が 書き込まれる。そして、上位 3ビットが「111」かっこれより下位ビットがすべて 1のビット 列がビット生成部 110によって生成され、全ビットが 1のアドレスビットに対応するライ
ンが無効化されたときに、タグ RAM200aのすベてのラインが無効化され初期化され たことになる。
[0096] さらに、この時点で、ビット生成部 110によって生成されたビット列の全ビットが 1とな るため、完了判定部 190によってタグ RAM200aの初期化が完了したか否かが判定 される。すなわち、上述の 0エラーチェック処理 (ステップ S500)および 1エラーチエツ ク処理 (ステップ S700)において、エラー検出部 180からエラーがあった旨が通知さ れたか否かが判断され (ステップ S804)、エラーの通知がなければ (ステップ S804N o)、タグ RAM200aの初期化が完了したと判定され (ステップ S805)、完了判定部 1 90から SVP300へ初期化完了が通知される。また、エラーの通知があれば (ステップ S804Yes)、タグ RAM200aに故障があると判定され (ステップ S806)、完了判定部 190から SVP300へタグ RAM200aに故障がある旨が通知される。そして、タグ RA M200aに故障がある場合は、 SVP300によって、故障がある旨のメッセージがユー ザへ通知されるなどの処理が行われる。
[0097] 以上のように、本実施の形態によれば、プログラムによる診断やメインメモリへのァク セスを行うことなぐハードウェアによって、タグ RAMの全ラインへの 0の書き込みと全 ラインの読み出しおよびエラーチェックとを行い、その後、タグ RAMの全ラインへの 1 の書き込みと全ラインの読み出しおよびエラーチェックとを行う。このため、搭載される メインメモリのサイズに関わらず、キャッシュ内の RAMの全ビットをより容易かつ高速 に診断することができる。
[0098] なお、上記実施の形態にお!、て、パイプライン制御が行われて 、る場合は、 0書込 処理、 0エラーチェック処理、 1書込処理、 1エラーチェック処理、および初期化処理 のそれぞれの処理に先立って、例えば図示しな 、パイプライン制御部へ従来の RA M初期化時と同様の無効化要求を行い、この無効化要求がパイプラインのプライオリ ティを獲得した際に処理を実行するようにすれば良 、。
[0099] また、上記実施の形態においては、 1書込処理よりも 0書込処理を先に実行するも のとしたが、 1書込処理を先に実行するようにしても良い。この場合、 0書込処理が後 に実行されることから、初期化処理が不要となり、処理の状態が 4つとなって状態ビッ トを 2ビットにすることもできる。なお、上記実施の形態における 1書込処理および 0書
込処理は、従来 RAMの初期化のみに使用されていた初期化回路を流用して実行 が可能な処理であるため、 RAMの診断を行うために追加される回路の規模は小さく て済む。このため、本発明の RAM診断装置による回路規模の増大は最低限に抑制 される。
[0100] さらに、上記実施の形態においては、 0書込処理および 1書込処理として、タグ RA Mのすベてのラインに 0または 1を一斉に書き込むものとした力 タグ RAMのすベて のラインのすべてのビットを診断するためには、診断動作全体の間に全ビットのそれ ぞれにつ 、て 0と 1の両方が書き込まれれば良 、ため、 1回目の書込処理と 2回目の 書込処理で反転した任意のデータパターンを書き込み、それぞれの書込処理後に エラーチェック処理を行うようにしても良 、。
[0101] また、タグ RAMのみの診断を行うのではなぐ TLB— RAMおよびデータ RAMに も同様の診断を行い、 RAMによってエラーを通知する信号を変えることにより、どの RAMが故障して 、る力特定することができる。
産業上の利用可能性
[0102] 本発明は、搭載されるメインメモリのサイズに関わらず、 RAMの全ビットをより容易 かつ高速に診断する場合に適用できる。
Claims
[1] RAMに故障があるカゝ否かを診断する RAM診断装置であって、
複数の処理の状態のいずれかを示す状態ビットを順次発生させる発生手段と、 前記発生手段によって発生した状態ビットを参照して処理を選択する選択手段と、 前記選択手段によって書込処理が選択されると、 RAMの全領域に 2値の第 1デー タパターンを書き込み、次に前記選択手段によって書込処理が選択されると、 RAM の全領域に前記第 1データパターンを反転した第 2データパターンを書き込む書込 手段と、
前記書込手段による書込処理それぞれの後に前記選択手段によってエラーチエツ ク処理が選択されると、前記第 1データパターンまたは前記第 2データパターンを RA Mの全領域力 読み出してエラーを検出する検出手段と
を有することを特徴とする RAM診断装置。
[2] 前記発生手段は、
状態ビットの下位に RAMの開始アドレスを示すアドレスビットが付加されたビット列 を生成する生成手段と、
前記生成手段によって生成されたビット列を 1ずつインクリメントするインクリメント手 段と
を含むことを特徴とする請求項 1記載の RAM診断装置。
[3] 前記インクリメント手段によって得られたビット列が所定のビット列と等しくなつた場 合に、状態ビットが示すすべての処理が完了したと判定する判定手段をさらに有する ことを特徴とする請求項 2記載の RAM診断装置。
[4] 前記選択手段は、
前記インクリメント手段によって得られたビット列のうち状態ビット部分力 処理を選 択し、
前記書込手段は、
前記インクリメント手段によって得られたビット列のうちアドレスビット部分が示す RA Mの領域に第 1データパターンまたは第 2データパターンを書き込むことを特徴とす る請求項 2記載の RAM診断装置。
[5] 前記選択手段は、
前記インクリメント手段によって得られたビット列のうち状態ビット部分力 処理を選 択し、
前記検出手段は、
前記インクリメント手段によって得られたビット列のうちアドレスビット部分が示す RA Mの領域の第 1データパターンまたは第 2データパターンを読み出してエラーを検出 することを特徴とする請求項 2記載の RAM診断装置。
[6] 前記発生手段は、
RAMの全領域に 0のみ力 なる第 1データパターンを書き込む 0書込処理の状態 を示す状態ビット、 0書込処理後のエラーチェックを行う 0エラーチェック処理の状態 を示す状態ビット、 RAMの全領域に 1のみ力 なる第 2データパターンを書き込む 1 書込処理の状態を示す状態ビット、および 1書込処理後のエラーチェックを行う 1エラ 一チェック処理の状態を示す状態ビットを順次発生させることを特徴とする請求項 1 記載の RAM診断装置。
[7] 前記発生手段は、
前記 1エラーチェック処理後に RAMの全領域を無効化する初期化処理の状態を 示す状態ビットをさらに発生させ、
前記書込手段は、
前記選択手段によって初期化処理が選択されると、 RAMの全領域を無効化する ことを特徴とする請求項 6記載の RAM診断装置。
[8] 前記発生手段は、
前記 1書込処理、前記 1エラーチェック処理、前記 0書込処理、および前記 0エラー チェック処理の順に状態ビットを発生させることを特徴とする請求項 6記載の RAM診 断装置。
[9] 前記検出手段は、
RAMに登録されるパリティビットを用いて前記第 1データパターンおよび前記第 2 データパターンのエラーを検出することを特徴とする請求項 1記載の RAM診断装置
[10] 前記選択手段は、
状態ビットが前記第 1データパターンの書込処理を示しているときに 1を出力する第 1論理積回路と、
状態ビットが前記第 2データパターンの書込処理を示しているときに 1を出力する第 2論理積回路と、
状態ビットが前記第 1データパターンのエラーチェック処理を示しているときに 1を出 力する第 3論理積回路と、
状態ビットが前記第 2データパターンのエラーチェック処理を示しているときに 1を出 力する第 4論理積回路と、
前記第 1論理積回路および前記第 2論理積回路のいずれか 1つから 1が出力され た場合に RAMへの書き込みを指示する信号を出力する第 1論理和回路と、 前記第 3論理積回路および前記第 4論理積回路のいずれか 1つから 1が出力され た場合に RAM力 の読み出しを指示する信号を出力する第 2論理和回路と を含むことを特徴とする請求項 1記載の RAM診断装置。
[11] RAMに故障があるカゝ否かを診断する RAM診断方法であって、
複数の処理の状態のいずれかを示す状態ビットを順次発生させる発生工程と、 前記発生工程にて発生した状態ビットを参照して処理を選択する選択工程と、 前記選択工程にて書込処理が選択されると、 RAMの全領域に 2値の第 1データパ ターンを書き込む第 1書込工程と、
前記第 1書込工程にて書き込まれた前記第 1データパターンを RAMの全領域から 読み出してエラーを検出する第 1検出工程と、
前記第 1検出工程の後に RAMの全領域に前記第 1データパターンを反転した第 2 データパターンを書き込む第 2書込工程と、
前記第 2書込工程にて書き込まれた前記第 2データパターンを RAMの全領域から 読み出してエラーを検出する第 2検出工程と
を有することを特徴とする RAM診断方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP06714624A EP1988468A4 (en) | 2006-02-24 | 2006-02-24 | RAM DIAGNOSTIC APPARATUS AND METHOD |
PCT/JP2006/303485 WO2007097001A1 (ja) | 2006-02-24 | 2006-02-24 | Ram診断装置およびram診断方法 |
JP2008501554A JPWO2007097001A1 (ja) | 2006-02-24 | 2006-02-24 | Ram診断装置およびram診断方法 |
US12/222,305 US20090055687A1 (en) | 2006-02-24 | 2008-08-06 | RAM diagnosis device and RAM diagnosis method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2006/303485 WO2007097001A1 (ja) | 2006-02-24 | 2006-02-24 | Ram診断装置およびram診断方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/222,305 Continuation US20090055687A1 (en) | 2006-02-24 | 2008-08-06 | RAM diagnosis device and RAM diagnosis method |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2007097001A1 true WO2007097001A1 (ja) | 2007-08-30 |
Family
ID=38437062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2006/303485 WO2007097001A1 (ja) | 2006-02-24 | 2006-02-24 | Ram診断装置およびram診断方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20090055687A1 (ja) |
EP (1) | EP1988468A4 (ja) |
JP (1) | JPWO2007097001A1 (ja) |
WO (1) | WO2007097001A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018130616A (ja) * | 2007-10-24 | 2018-08-23 | 株式会社三洋物産 | 遊技機 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001134629A (ja) * | 1999-11-05 | 2001-05-18 | Toshiba Corp | シミュレーション方法およびシミュレーション装置 |
US20020184578A1 (en) | 2001-05-31 | 2002-12-05 | Yutaka Yoshizawa | Semiconductor integrated circuit |
US6519725B1 (en) | 1997-03-04 | 2003-02-11 | International Business Machines Corporation | Diagnosis of RAMS using functional patterns |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4195770A (en) * | 1978-10-24 | 1980-04-01 | Burroughs Corporation | Test generator for random access memories |
-
2006
- 2006-02-24 EP EP06714624A patent/EP1988468A4/en not_active Withdrawn
- 2006-02-24 WO PCT/JP2006/303485 patent/WO2007097001A1/ja active Application Filing
- 2006-02-24 JP JP2008501554A patent/JPWO2007097001A1/ja not_active Withdrawn
-
2008
- 2008-08-06 US US12/222,305 patent/US20090055687A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6519725B1 (en) | 1997-03-04 | 2003-02-11 | International Business Machines Corporation | Diagnosis of RAMS using functional patterns |
JP2001134629A (ja) * | 1999-11-05 | 2001-05-18 | Toshiba Corp | シミュレーション方法およびシミュレーション装置 |
US20020184578A1 (en) | 2001-05-31 | 2002-12-05 | Yutaka Yoshizawa | Semiconductor integrated circuit |
JP2002358797A (ja) * | 2001-05-31 | 2002-12-13 | Nec Corp | 半導体集積回路 |
Non-Patent Citations (1)
Title |
---|
See also references of EP1988468A4 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018130616A (ja) * | 2007-10-24 | 2018-08-23 | 株式会社三洋物産 | 遊技機 |
Also Published As
Publication number | Publication date |
---|---|
EP1988468A4 (en) | 2009-06-24 |
US20090055687A1 (en) | 2009-02-26 |
JPWO2007097001A1 (ja) | 2009-07-09 |
EP1988468A1 (en) | 2008-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5832250A (en) | Multi set cache structure having parity RAMs holding parity bits for tag data and for status data utilizing prediction circuitry that predicts and generates the needed parity bits | |
US4357656A (en) | Method and apparatus for disabling and diagnosing cache memory storage locations | |
US9477550B2 (en) | ECC bypass using low latency CE correction with retry select signal | |
US5875201A (en) | Second level cache having instruction cache parity error control | |
EP0227749A1 (en) | ERROR-TOLERANT DATA PROCESSING SYSTEM AND METHOD THEREFOR. | |
KR102131337B1 (ko) | 고장 제어 기능을 구비한 캐시 메모리 | |
EP0463573B1 (en) | Efficient error detection in a VLSI central processing unit | |
CN101692351A (zh) | 存储器测试方法及装置 | |
US8739012B2 (en) | Co-hosted cyclical redundancy check calculation | |
JPH0524540B2 (ja) | ||
JPH10320280A (ja) | キャッシュに値を格納する方法及びコンピュータ・システム | |
JPH10320279A (ja) | 回復可能な高速ディレクトリ・アクセス方法 | |
KR20230119650A (ko) | 메모리 공격 완화를 위한 방법 및 시스템 | |
WO2007097001A1 (ja) | Ram診断装置およびram診断方法 | |
EP1278123B9 (en) | High integrity cache directory | |
JP2842809B2 (ja) | キャッシュ索引の障害訂正装置 | |
US5515507A (en) | Multiple width data bus for a microsequencer bus controller system | |
JP3129224B2 (ja) | キャッシュメモリ装置 | |
US5581730A (en) | Condition detector and prioritizer with associativity determination logic | |
US4349874A (en) | Buffer system for supply procedure words to a central processor unit | |
JP3655768B2 (ja) | 2次キャッシュ診断機能を有する情報処理装置 | |
JPH07160587A (ja) | 多重化メモリ装置 | |
JP2000066964A (ja) | キャッシュメモリ診断方式 | |
JPH0520200A (ja) | アドレス変換バツフアエラー処理方式 | |
JPH08272683A (ja) | キャッシュメモリの動作試験方法および動作試験システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
ENP | Entry into the national phase |
Ref document number: 2008501554 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2006714624 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |