CN101894062B - Microprocessor and operation method thereof - Google Patents

Microprocessor and operation method thereof Download PDF

Info

Publication number
CN101894062B
CN101894062B CN 201010243753 CN201010243753A CN101894062B CN 101894062 B CN101894062 B CN 101894062B CN 201010243753 CN201010243753 CN 201010243753 CN 201010243753 A CN201010243753 A CN 201010243753A CN 101894062 B CN101894062 B CN 101894062B
Authority
CN
China
Prior art keywords
fuse
mentioned
microprocessor
square
microcode
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN 201010243753
Other languages
Chinese (zh)
Other versions
CN101894062A (en
Inventor
G·葛兰·亨利
达鲁斯·D·嘉斯金斯
史蒂芬·嘉斯金斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Via Technologies Inc
Original Assignee
Via Technologies Inc
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
Priority claimed from US12/719,260 external-priority patent/US8276032B2/en
Application filed by Via Technologies Inc filed Critical Via Technologies Inc
Publication of CN101894062A publication Critical patent/CN101894062A/en
Application granted granted Critical
Publication of CN101894062B publication Critical patent/CN101894062B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

A microprocessor has first fuses and second fuses. A prescribed quantity of the first fuses are selectively fused, and the first fuses provide a first control value to a first circuit of the microprocessor to control the operation of the microprocessor. The second fuse is fused according to the fused fuses of prescribed quantity. The microprocessor performs the following steps for resetting: reading the first fuse and counting the fused fuses; reading a prescribed quantity from the second fuse; comparing the counting quantity and the prescribed quantity reading from the second fuse; and preventing from reading when the counting quantity is different from the prescribed quantity reading from the second fuse, and performing a user program instruction.

Description

Microprocessor with and the method for operating that is suitable for
Technical field
The present invention relates generally to the technical field of microprocessor, particularly about the fuse operation technique in the microprocessor.
Background technology
The fuse that comprised is can be by optionally scorification in the manufacture process of microprocessor in the microprocessor in the present age, and fuse can be according to reading from wherein controlling value and by scorification optionally with the running of control microprocessor.Usually, when non-fusing fuse is read, can return Binary Zero (binary zero), and return binary one (binary one) (perhaps can oppositely set) when the fusing fuse is read Shi Zehui.Yet; The fusing fuse that microprocessor had that inventor of the present invention observes this field but can change its value; That is to say; The fusing fuse can return Binary Zero improperly, even if it can correctly return binary one in the test phase of microprocessor, this situation is called as fuse and heavily grows (re-growing) or fuse regrowth (re-growth); The meaning fuse that promptly fuses can be changed in the lasting operation of microprocessor substantially, make it when being read, return non-fusing value rather than passback fusing value.Its value is then looked in the fuse regrowth can cause catastrophic result to the follow-up running of microprocessor, in addition, also is difficult in the failure analysis by the caused problem of fuse regrowth and is detected out.
Patent application 12/609; 207 narrations propose a kind of error detection and correction (Error Detection And Correction of having used to this problem; The solution of fuse EDAC); Fuse in this solution is amendable; Just most fuse is to be arranged in the control hardware that is write by microcode, and particularly, this microcode is from the fuse reading numerical values, use the fuse of error detection and correction to remove to revise this numerical value, then revised numerical value (for example: particular module buffer (Model Specific Register is write hardware when needed; MSR), characteristic control buffer (Feature Control Register, FCR), repair hardware (patch hardware) etc.).Yet still some fuse is to be revised by microcode, anticipates promptly, and when chip enable, the numerical value in the fuse that can not revise is directly scanned (scan) to hardware register, and uses error detection and correction technique to remove to revise this numerical value through microcode.For instance, the fuse that can not revise has high-speed cache correction fuse and phase-locked loop (Phase Lock Loop, PLL) correction fuse.In an embodiment of microprocessor, microcode can't read the fuse that can not revise.
Therefore, need a kind of method badly and can determine whether the fuse that can not revise fuse regrowth situation has taken place.
Summary of the invention
One embodiment of the invention provide a kind of microprocessor.This microprocessor has comprised a plurality of first fuses and a plurality of second fuse.The above-mentioned first fuse wherein fuse of a predetermined quantity and is provided a plurality of first controlling values to first circuit of above-mentioned microprocessor to control the running of above-mentioned microprocessor by above-mentioned first fuse by optionally fusing.Above-mentioned second fuse is fused according to the fusing fuse of above-mentioned predetermined quantity.Wherein above-mentioned microprocessor is carried out following steps when reseting: read the fuse quantity that above-mentioned first fuse and counting have wherein fused; Read above-mentioned predetermined quantity from above-mentioned second fuse; More above-mentioned count number with read above-mentioned predetermined quantity from above-mentioned second fuse; And when above-mentioned count number is different from the above-mentioned above-mentioned predetermined quantity that reads from above-mentioned second fuse, avoid extracting and carry out user's programmed instruction.
Another embodiment of the present invention provides a kind of method of operating, is applicable to operation one microprocessor.The operation of aforesaid operations method may further comprise the steps: read a plurality of first fuses; Wherein the fuse of a predetermined quantity is optionally fused, and wherein a plurality of first controlling value is provided to a microprocessor from above-mentioned first fuse first circuit is to control the running of above-mentioned microprocessor; Count the quantity of the fuse that has fused in above-mentioned first fuse; Read above-mentioned predetermined quantity from a plurality of second fuses, wherein above-mentioned second fuse is fused according to the fuse of fusing of above-mentioned predetermined quantity; The fuse quantity of more above-mentioned counting and the above-mentioned predetermined quantity that reads; And when the fuse quantity of above-mentioned counting is different from the above-mentioned predetermined quantity that reads, avoid above-mentioned microprocessor to extract and carry out user's programmed instruction.
Description of drawings
Fig. 1 is the synoptic diagram according to microprocessor of the present invention.
Fig. 2 is the operation workflow figure according to the microprocessor 100 of shop drawings 1 according to the invention.
Fig. 3 is the operation workflow figure of the microprocessor 100 of displayed map 1.
Fig. 4 is the synoptic diagram according to the described microprocessor 100 of another embodiment of the present invention.
Fig. 5 is the operation workflow figure that shows the microprocessor 100 of shop drawings 4.
Fig. 6 is the operation workflow figure of the microprocessor 100 of displayed map 4.
Fig. 7 is the synoptic diagram according to the described microprocessor 100 of another embodiment of the present invention.
Fig. 8 is the operation workflow figure that shows the microprocessor 100 of shop drawings 7.
Fig. 9 is the operation workflow figure of the microprocessor 100 of displayed map 7.
Figure 10 is that the microprocessor 100 of displayed map 7 is carried out the operation workflow figure that the particular module buffer writes instruction.
Figure 11 is the operation workflow figure that the microprocessor 100 of displayed map 7 is carried out particular module buffer reading command.
Figure 12 is the synoptic diagram according to the described microprocessor 100 of another embodiment of the present invention.
Figure 13 is the operation workflow figure according to the microprocessor 100 of manufacturing Figure 12 according to the invention.
Figure 14 is the operation workflow figure that shows the microprocessor 100 of Figure 12.
[primary clustering symbol description]
100~microprocessor;
102~instruction cache;
104~instruction transfer interpreter;
106~instruction dispensing device;
108~command decoder;
114~performance element;
116~microcode unit;
118,158~correction data assurance silk numerical value;
122~reset microcode;
124,198~control hardware;
126,166~data assurance silk numerical value;
128,168~error detection and correction fuse numerical value;
132,193~error detection and correction fuse;
134~controlling value;
The input of 136~fuse scorification voltage;
144~apparatus for temporary storage;
152~can revise the data assurance silk;
164~controlling value;
172~fuse;
174~particular module buffer;
181~fuse the numerical value of fuse test option when reseting;
182,184,188~stamped signature;
183~correction stamped signature value;
185,186~stamped signature complement code;
191~scanning buffer;
192~can not revise the data assurance silk;
194~count number;
195~data assurance silk;
The buffer that 196~microcode can read;
The writeable buffer of 197~microcode;
199~state machine.
Embodiment
Embodiments of the invention are to make the microcode of microprocessor can read the fuse that can not revise.When the part of microprocessor during fabrication; Just determined the fuse quantity that can not revise that wherein will be fused, for instance, supposed that certain some of a microprocessor has 1000 fuses that can not revise; And wherein 147 will be fused; Then, this fusing quantity is taken as stamped signature (signature) fusing in a set of amendable fuse, and the fuse of this set can see through above-mentioned error detection and correction technique is revised by microcode.When microprocessor is reseted (reset) and carried out when reseting microcode; Microprocessor reads all fuses that can not revise and counts the fuse quantity that is wherein fused, and compares the quantity of counting then and reads the above-mentioned stamped signature (after amendable fuse is revised when needed) from amendable fuse.If the quantity of counting is different from above-mentioned stamped signature, does not then allow this partly to leave reconfiguration procedure or export this mistake to buffer that a software readable is got.
Fig. 1 is the synoptic diagram according to microprocessor of the present invention.Microprocessor 100 comprises a plurality of fuses 172, and in one embodiment, fuse 172 is polysilicon (polysilicon) fuse, but other fuse technology, for example the metal fuse also can be applicable in the embodiments of the invention.Though the fuse 172 identical structure that is essence; But then can be divided into two groups in logic; Be error detection and correction fuse 132 and data assurance silk; And the data assurance silk can be further divided into and can revise data assurance silk 152 and can not revise data assurance silk 192, and whether a certain specific fuse 172 is configured to data assurance silk or error detection and correction fuse 132 is to decide according to the employed error detection of fabricator (manufacturer) of microprocessor 100 and correction algorithm.
Fuse 172 is set the fabricator who makes microprocessor 100 can provide assigned voltage (prescribed voltage) optionally to remove the fuse 172 that fuses individually in input 136.In one embodiment, the fabricator sees through combined testing action group (Joint Test Action Group, JTAG) scan interface is specified (specify) which fuse 172 that will fuse.In one embodiment, the one side of each fuse 172 then is connected to active (active) device for the ground connection another side, for example: the transistor that microprocessor 100 can read.Therefore, if when a fuse 172 be non-fusing, then have conduction and may be read into a low-voltage (then being Binary Zero after the conversion); Otherwise, if a fuse 172 when fusing, does not then have conduction and may be read into a high voltage (then being binary one after the conversion).In other embodiments, can use opposite binary value transformation approach.
Though can be in manufacture process being constituted by indivedual fusing and each fuse 172, fuse 172 (constitute) single binary digit (position); But in logic; Can revise 152 of data assurance silks and be regarded as single entities (entity) and have single common (collective) numerical value that is fused, error detection and correction fuse 132 then are regarded as another single entities and have the single common numerical value that is fused.The fabricator uses an error detection and correction algorithm to go to calculate and fuses to error detection and the single common numerical value of revising fuse 132; This error detection and correction algorithm are that this single common numerical value fusing extremely can be revised data assurance silk 152 as its input, and the correlation step details further describes in follow-up.
Microprocessor 100 also comprises control hardware 124, and control hardware 124 is in order to receive and to store controlling value 134 and controlling value 134 is provided to the running with control microprocessor 100 of the circuit of microprocessor 100.Control hardware 124 can comprise following assembly: in order to repair the microcode patching hardware of microcode; The characteristic control buffer of microprocessor 100; In order to the function that enables or end microprocessor 100 or functional unit, with and/or have which function or functional unit in order to indication microprocessor 100; Wherein the feature or function unit of microprocessor 100 can be floating point unit (Floating Point Unit; FPU), matrix mathematics expansion (Matrix Math eXtension; MMX) unit, single-instruction multiple-data stream (SIMD) expansion (Streaming SIMD Extensions; SSE) unit, high-speed cache and translate lookaside buffer (Translation Lookaside Buffer; TLB), call out/return (call/return) storehouse, tandom number generator, crypto engine, mixing take advantage of add (fused-multiply-add) command function, microcode patching correlation function, virtual machine expansion (Virtual Machine eXtension, VMX), usefulness monitoring function, processor stepping (stepping) with series information, (prefetch) function of looking ahead, branch prediction function, paging (table-walking) relevant function and power management functions of tabling look-up; The setting buffer of microprocessor 100 is in order to the voltage level of the frequency of the one or more clock signals in the control microprocessor 100, control microprocessor 100 or other.Be noted that except said modules, the assembly that control hardware 124 of the present invention can comprise is not in this restriction.
In conventional microprocessor, controlling value is to read from fuse and be written into control hardware, and the advantage of error detection and correction not.As stated, if the situation of a fusing fuse generation fuse regrowth and have conduction and be wrongly read as 0 but not 1, then this conventional microprocessor very likely incorrectly is worth control hardware and can't normal operation because write.Yet; Microprocessor 100 of the present invention also comprises that error detection and correction fuse 132 can read from the improper value that can revise data assurance silk 152 in order to detecting; Thereby and revise this improper value and make correct numerical value can be written into control hardware, wherein this improper value is that 172 of fuses by a regrowth cause.
Microprocessor 100 more comprises instruction cache 102, and by 100 programmed instruction that extract and carry out of microprocessor, this programmed instruction can comprise such as user's programmed instruction such as system software or application programs in order to high-speed cache.
Microprocessor 100 also comprises instruction transfer interpreter 104; In order to receive instruction from instruction cache 102; And in instruction during, will instruct (also can be described as macro instruction) to be translated into reality by the performed one or more micro-orders of the performance element of microprocessor 100 114 for the instruction of the macroinstruction set of microprocessor 100.Yet when instruction during for the instruction of the macroinstruction set of microprocessor 100, instruction transfer interpreter 104 will control the micro-code sequence of transfers (transfer) to micro-order, and wherein this micro-code sequence is to be stored in the microcode ROM (read-only memory) of microcode unit 116.
The microcode ROM (read-only memory) of microcode unit 116 also stores the sequence of the micro-order of reseting microcode 122.When microprocessor 100 was reseted, microcode unit 116 began to extract and carry out the micro-order of reseting microcode 122, reseted the various computing of microcode 122 execution and removed to prepare to begin to extract and carry out user's programmed instruction with initialization microprocessor 100.Particularly, reset the control hardware 124 of microcode 122 according to controlling value 134 programming (program) microprocessors 100.Microprocessor 100 produces controlling value 134 according to the numerical value that reads from fuse 172, and wherein fuse 172 fuses in manufacture process.Yet; As stated; The situation of regrowth still might take place and make its value change into not fusing value from the fusing value in fuse 172 after being fused; Microprocessor 100 also comprises error detection and revises fuse 132, reads the mistake in the numerical value that can revise data assurance silk 152 in order to enabled microprocessor 100 with correction, below will specify.In order to specify the stamped signature 188 that can not revise data assurance silk 192 quantity that quilt is fused in manufacture process is in the time can revising data assurance silk 152 by fusing, to be stored in can revise in the data assurance silk 152.Advantageously; Reset microcode 122 counting and can not revise the fuse quantity that is fused in the data assurance silk 192, and the quilt that can revise in the data assurance silk 152 of comparison count number and stamped signature 188 or in manufacture process, be stored in fuse can not revise data assurance silk 192 quantity.This mechanism makes to be reseted microcode 122 and can detect the regrowth fuse that can not revise in the data assurance silk 192, follow-up will elaborating.
Microprocessor 100 also comprises instruction dispensing device (dispatcher) 106, in order to instructing transfer interpreter 104 or microcode unit 116 to receive micro-orders certainly, and the instruction of for example reseting microcode 122, and micro-order is distributed to performance element 114.Performance element 114 comprises one or more integer unit; This integer unit comprises in order to carry out the arithmetic and the logical block of arithmetic logical operation; Particularly; Performance element 114 comprises in order to carry out boolean's XOR (Boolean XOR) computing to input operand, wherein resets microcode 122 and is to use boolean's XOR to go execution error detection and correction algorithm to read the mistake from the numerical value of fuse 172 with detecting and correction.In addition; Performance element 114 is more in order to carry out arithmetical operation to input operand; The quantity of wherein reseting fusing fuse quantity that microcode 122 is to use this arithmetical operation to go to count can not to revise in the data assurance silk 192 and comparison counting be stored in the stamped signature 188 that can revise data assurance silk 152, can not revise the fuse regrowth mistake that takes place in the data assurance silk 192 with detecting.Performance element 114 also executes instruction with Self Control hardware 124 reading of data and writes data to control hardware 124.
Performance element 114 more execute instruction with from apparatus for temporary storage 144 reading of data with write data to apparatus for temporary storage 144.In one embodiment, apparatus for temporary storage 144 can be a RAS (Random Access Memory, RAM).Particularly; According to shown in Figure 3; Reset microcode 122 and read to revise data assurance silk 152 and the numerical value that reads is write apparatus for temporary storage 144 and revise data assurance silk numerical value 118 with revising fuse numerical value 128 to produce with error detection with revising fuse numerical value 128 and reading of data fuse numerical value 126 as error detection with revising fuse 132 and the numerical value that reads is write apparatus for temporary storage 144, wherein reset microcode 122 and will revise data assurance silk numerical value 118 and write apparatus for temporary storage 144 and also then it is read out for the usefulness that writes control hardware 124 as the detecting of data assurance silk numerical value 126, read error.Revise data assurance silk numerical value 118 and comprise the correction stamped signature value 183 that reads from revising the stamped signature 188 of data assurance silk 152.At last, be stored in apparatus for temporary storage 144, follow-up will elaborating by reseting the fusing fuse quantity that can not revise in the data assurance silk 192 that microcode 122 counted.
After having read fuse 172, having revised data assurance silk numerical value 126 during in needs, write to control hardware 124 and begin to extract and carry out user's programmed instruction; Microprocessor 100 reads or writes control hardware 124 for response user program instruction request, and reads or write the control hardware 124 of part.In one embodiment; User's programmed instruction is that the particular module buffer of x86 framework reads (ReaD from Model-Specific Register; RDMSR) instruction and particular module buffer write (Write to Model-Specific Register, WRMSR) instruction.
As stated; The difference that can revise data assurance silk 152 and can not revise between the data assurance silk 192 is directly to be provided to circuit for the numerical value 164 that can not revise data assurance silk 192, and resets microcode 122 and use error detections and revise fuse 132 and go to revise without crossing.Use about revising data assurance silk 192 may further comprise the steps, but the invention is not restricted to this.When if the fabricator of microprocessor 100 determines that delegation (column) bit location (bitcell) in the cache memory damages, he can be with revising the fusing of one in the data assurance silk 192 so that cache memory uses another row redundant digit unit but not that delegation's bit location of service failure.Cache memory can comprise following assembly, but the present invention is not limited to this: a L1 cache data array, a L2 cache tag array and a branch target address caching array.Some is set below can not revising 192 controls of data assurance silk: be directed against work period (duty cycle) or other control of the various phase-locked loop of microprocessor 100; Charge pump (charge pump) is set; The clock frequency of phase-locked loop; The setting of I/O pad (input/output pad) comprises the function that allows the multitask debug; Select clock whether in microprocessor 100, to be moved to increase frequency; Used redundant fuse when avoiding fuse to lose efficacy; The fuse that only is used for the identification purposes of manufacture process; The pin of setting voltage identification number (pin); And in order to control bus selection (Bus SELect, BSEL) pin of voltage and clock multiplier (multiplier).
Fig. 2 is in order to make the operational flowchart of microprocessor as shown in Figure 1 100 according to according to the invention.Flow process starts from square 201.
In square 201, the fabricator of microprocessor 100 determines stamped signature 188, and meaning promptly can not be revised the fuse quantity that will be fused in the data assurance silk 192.Flow process continues to square 202.
In square 202; Fabricator's decision of processor 100 will fuse to the controlling value that can revise in the data assurance silk 152; Each can be revised data assurance silk 152 and constitute single position, and binary value of this single position then is made as 0 or 1 according to corresponding fuse for fusing or non-fusing.From each can revise place value that data assurance silk 152 read do not write direct one of control hardware 124, be exactly one the place value that will be written into control hardware 124 in order to produce, can contrast shown in the square 132 and 316 of Fig. 3.Therefore; In square 202; This fabricator determines which fuse 172 will be configured to revise data assurance silk 152, which fuse 172 will be configured to error detection and revise fuse 132; Each can be revised data assurance silk 152 be associated in of control hardware 124, and the decision place value to revising data assurance silk 152 of wanting to fuse.For instance; This fabricator can determine to go to store in order to switch one preset microcode value optionally with the specific data assurance a revised silk 152; Whether a specific branch forecast function that should preset microcode value be control microprocessor 100 is opened, and this fabricator this specific data assurance revised silk 152 that also can determine whether to fuse goes switch to preset the microcode value so that this place value to be provided.This fabricator can revise data assurance silk 152 to each and carry out above step.Fuse to the angle (ask for an interview narration with lower block 204) of error detection with generation with the place value of revising fuse 132; Though can revising data assurance silk 152, each all constitutes single position; But whole data assurances revised silk 152 is regarded as single entities and has the single common numerical value that is fused or be regarded as a plurality of words (word) that have single common numerical value separately, below will do further narration in square 204.Thus, single common numerical value just preestablishes before making microprocessor 100 and before having made the back running.In addition, this controlling value is included in the stamped signature 188 that determines in the square 201 and will extremely can be revised data assurance silk 152 in square 206 by fusing.Flow process continues to square 204.
In square 204, the fabricator is directed to the controlling value that is determined in the square 202 and uses error detection and correction algorithm, fuses to error detection and error detection and the modified value of revising fuse 132 to calculate desire.What in one embodiment, error detection and correction algorithm can be that this field for example knows single wrongly revises two wrong detecting (Signel Error Correction Double Error Detection, (72,64) Hamming code (Hamming code) algorithms SECDED); Yet other embodiments of the invention also can be used other error detection and correction algorithm.What below will explain is vertical codes (vertical code) algorithm.
In the embodiment shown in fig. 3, in square 306, Fig. 1 reset microcode 122 with software executing error detection and correction algorithm to read fuse 172 and detecting and correction mistake wherein.Therefore, in this embodiment, the fabricator has used the vertical codes algorithm with miscount detecting and modified value at square 204, and resets microcode 122 and used the vertical codes algorithm at square 306.In one embodiment, be used as the fuse 172 that can revise data assurance silk 152 and error detection and revise fuse 132 and be set to 58 data bases (bank), each data base has 64 fuses, and meaning is that each data base is 64 bit wides.Preceding 50 data bases logically are to be configured to error detection and the data base of revising fuse 132; Therefore; Logically, the controlling value that square 202 is determined is 50 control words, and each control word is 64; And error detection and correction algorithm have produced 8 error detections and have revised word, and each error detection is 64 with revising word.The fabricator cuts sheet (bit slices) to the position of 50 control words and uses this error detection and correction algorithm; That is to say; The fabricator to the 0th position of 50 control words use this error detection and correction algorithm with produce 8 error detections and the 0th position revising word, to the 1st position of 50 control words use this error detection and correction algorithm with produce 8 error detections with the 1st position revising word, (because this error detection and correction algorithm hypothesis have 64 input positions producing 8 error detections with the correction character but 50 control words are only arranged altogether, so the fabricator supposes that all are all 0 in " (missing) of vacancy " 14 control words) by that analogy.
In addition, like Fig. 4 in the patent application 12/609,207 and shown in Figure 5, another embodiment has then used the horizontal codes algorithm.In this another embodiment; Detecting of one hard error and amending unit can be revised data assurance silk 152 and error detection and the fuse 172 of revising fuse 132 with hardware execution error detection and correction algorithm to read to be used as, and detecting and correction mistake wherein.Therefore, in this embodiment, manufacturer uses a horizontal codes algorithm with miscount detecting and modified value, and error detection and amending unit have used this horizontal codes algorithm.In one embodiment, can revise data assurance silk 152 and be set to 50 data bases with error detection with revising fuse 132, each data base has 72 fuses, and meaning is that each data base is 72 bit wides.Logically, preceding 64 positions in each data base are configured to revise data assurance silk 15, and therefore, in the described embodiment of last paragraph, the controlling value that square 202 is determined logically is 50 control words, and each control word is 64; Yet in this embodiment, error detection and correction algorithm have produced 50 error detections and word is drilled in correction, and each error detection is 8 with revising word.Manufacturer is directed against one by one, and data base uses this error detection and correction algorithm; That is to say that the fabricator uses this error detection and correction algorithm be associated with data base 0 with generation 8 bit error detection and revises word, uses this error detection and correction algorithm to be associated with 8 bit error detection and the correction word of data base 1, by that analogy with generation to 64 control words that are associated with data base 1 to 64 control words that are associated with data base 0.
Be noted that; Error detection and modified value are that basis has comprised that the controlling value of the stamped signature 188 that square 201 is determined calculates in the embodiment of above-mentioned vertical codes algorithm and horizontal codes algorithm, and this controlling value will extremely can be revised data assurance silk 152 by scorification in square 206.Flow process continues to square 206.
In square 206, the controlling value scorification that the fabricator is determined square 202 be to can revising data assurance silk 152, and error detection and modified value scorification to error detection and correction fuse 132 that square 204 is calculated.What in addition, manufacturer can not revise that data assurance silk 192 scorifications, particularly scorification fall in square 201 decision quantity can not revise data assurance silk 192.Flow process ends at square 206.
Fig. 3 is the operation workflow figure of the microprocessor 100 of displayed map 1.Flow process starts from square 302.
In square 302, microprocessor begins to extract and carry out the instruction of reseting microcode 122 because of reseting.Flow process continues to square 304.
In square 304, reset microcode 122 and read and to revise data assurance silk 152 and error detection and correction fuse 132, and data assurance silk numerical value 126 and error detection and correction fuse numerical value 128 are write apparatus for temporary storage 144.Comprise stamped signature 188 from revising the numerical value that data assurance silk 152 and error detection and correction fuse 132 read out, stamped signature 188 is can not be revised in the data assurance silk 192 by the fuse quantity of scorification.In one embodiment, the microinstruction set of microprocessor 100 comprises that an instruction is used for a general caching device (not illustrating) and another instruction that a data base with fuse 172 moves to microprocessor 100 and is used for a numerical value is moved to apparatus for temporary storage 144 from the general caching device.Moreover wherein a performance element 114 is in order to carry out above-mentioned instruction.Reset the sequence (a sequence) that microcode 122 uses each data base that is associated with fuse 172, this sequence comprises that an instruction is used for data assurance silk numerical value 126 and error detection and correction fuse numerical value 128 are write apparatus for temporary storage 144 in order to the data base that reads each fuse 172 and another instruction.Flow process continues to square 306.
In square 306; Reset microcode 122 to the data assurance silk numerical value 126 in the apparatus for temporary storage 144 and error detection and correction fuse numerical value 128 use error detection and correction algorithms; With whether wrong in the determination data fuse numerical value 126; If have, then then whether decision should mistake can be revised.In one embodiment, the microinstruction set of microprocessor 100 comprises that an instruction is used for a numerical value is moved to a general caching device, a plurality of instruction in order to be used for a numerical value is moved to apparatus for temporary storage 144 from the general caching device to the execution of the numerical value general caching device arithmetic logical operation (for example: XOR, displacement (shift) or rotation (rotate)) and another instruction from apparatus for temporary storage 144.Moreover; Wherein a performance element 114 is in order to carry out above-mentioned instruction; Reseting a sequence of the above-mentioned instruction of microcode 122 uses goes to the data assurance silk numerical value 126 in the apparatus for temporary storage 144 and error detection and correction fuse numerical value 128 use error detection and correction algorithms; Whether with wrong in the determination data fuse numerical value 126, if having, then then whether decision should mistake can be revised.In one embodiment, reseting microcode 122 uses like the described vertical codes algorithm of Fig. 2.Flow process continues to square 308.
In decision-making square 308, reset microcode 122 according to whether wrong in the performed computing determination data fuse numerical value 126 of square 306, if having, flow process continues to square 314; If not, then flow process continues to square 312.
In square 312, reset microcode 122 and use data assurance silk numerical value 126 that controlling value 134 is write control hardware 124.In one embodiment, reset microcode 122 with data assurance silk numerical value 126 control hardware 124 that writes direct.In another embodiment, reset microcode 122 modification data assurance silk numerical value 126 and supply to write control hardware 124 to produce controlling value 134.For instance; In one embodiment; Reset microcode 122 a data assurance silk numerical value 126 and a preset control value are made XOR, wherein this preset control value is to be stored in a constant of reseting in the microcode 122, resets microcode 122 then the result of gained is write control hardware 124; Thus, make data assurance silk numerical value 126 become a switching mechanism with switch microcode preset control value.In addition; Because control hardware 124 can be any one (for example: microcode patching hardware, characteristic control buffer and setting buffer) in the above-mentioned various hardware; And data assurance silk numerical value 126 can have the controlling value of the different piece (portion) corresponding to above-mentioned various hardware; So reseting microcode 122 can be with the write direct control hardware 124 of some part of some partial data fuse numerical value 126, and can other partial data fuse numerical value 126 be made amendment before writing control hardware 124.Moreover, should understand and reset instruction that microcode 122 can carry out a sequence with from apparatus for temporary storage 144 reading of data fuse numerical value 126, and the data assurance silk numerical value 126 of above-mentioned part (or part of above-mentioned modification) is write control hardware 124.Flow process continues to square 322.
In decision-making square 314, reset microcode 122 and use whether error detection is amendable with revising fuse numerical value 128 with the mistake that decision square 306 or square 308 are detected, if flow process continues to square 316; If not, then flow process continues to square 318.
In decision-making square 316; Reseting microcode 122 uses error detection and correction algorithm to remove the data assurance silk numerical value 126 that corrects mistakes; Revise data assurance silk numerical value 118 to produce, use correction data assurance silk numerical value 118 that controlling value 134 is write control hardware 124 then.Be noted that; Whether will revise data assurance silk numerical value 118 and be used as controlling value 134 and write control hardware 124 no matter reset microcode 122, and reset the data assurance silk numerical value 126 that microcode 122 all can use error detection and correction algorithm to go to correct mistakes and revise data assurance silk numerical value 118 to produce.That is to say; No matter whether decision-making square 308 finds mistake; Reset microcode 122 and all can produce and revise data assurance silk numerical value 118, make in the apparatus for temporary storage 144 correction stamped signature value 183 can in order to the square 324 of making a strategic decision in count number 194 (will be described further) in follow-up compare.Like the explanation of above-mentioned square 312, reseting microcode 122 can make an amendment a part of revising data assurance silk numerical value 118 or correction data assurance silk numerical value 118 before writing control hardware 124.Described in above-mentioned square 304; Since comprise stamped signature 188 from revising the numerical value that data assurance silk 152 and error detection and correction fuse 132 read, so advantageously, in square 316; Can stamped signature 188 be revised when needing with the some as the correction of data assurance silk numerical value; If stamped signature 188 is for what can not revise, this condition will be detected in decision-making square 314, make square 318 can suitably handle the mistake that this can not revise.Flow process continues to square 322.
In square 318, reset microcode 122 and avoid microprocessor 100 to leave reconfiguration procedure.If flow process proceeds to square 318 by decision-making square 314; Be that microprocessor 100 can't use error detection and correction fuse numerical value 128 to go to revise because the bit quantity in the mistake of data assurance silk numerical value 126 is too much; That is to say, reset microcode 122 and avoid microprocessor 100 to extract and carry out user's programmed instruction.In another embodiment, reset microcode 122 and allow microprocessors 100 to leave reconfiguration procedure, meaning promptly allows microprocessor 100 to extract and carry out user's programmed instruction of basic input/output system (BIOS) for example or other system software; Yet, reset microcode 122 and transmit an error condition to system software to inform the mistake that can not revise about in the data assurance silk numerical value 126.If flow process is to proceed to square 318 (will be described further in follow-up) by decision-making square 324; Reset 122 of microcodes and avoid microprocessor 100 to leave reconfiguration procedure, because reset stamped signature 188 and the count number 194 in the square 322 and inequality that microcode 122 has determined that the correction data assurance silk numerical value 118 from apparatus for temporary storage 144 is read.Flow process ends at square 318.
In square 322; Reset microcode 122 and read and can not revise data assurance silk 192, the fuse quantity that wherein fused of counting and count number 194 is write apparatus for temporary storage 144, above-mentioned count number 194 can not be revised the quantity 194 of fuse for the scorification of the numeration shown in Fig. 1.Flow process continues to decision-making square 324.
In decision-making square 324; Reset the correction data assurance silk numerical value 118 of microcode 122 in apparatus for temporary storage 144 and read correction stamped signature value 183; And comparison revises count number 194 in stamped signature value 183 and the square 322 to determine whether both are identical, and as if difference, flow process continues to square 318; If identical, then flow process continues to square 326.In another embodiment; Reset the data assurance silk numerical value 126 of microcode 122 in apparatus for temporary storage 144 and read this stamped signature; Whether and it is identical with count number 194 in the square 322 to compare this stamped signature; That is to say that reseting microcode 122 employed is the stamped signature that in square 306, possibly not use error detection and correction algorithm to revise.
In square 326, reset microcode 122 and make microprocessor 100 begin to carry out user's programmed instruction.Flow process ends at square 326.
About the described regrowth way to solve the problem that can not revise data assurance silk 192 of Fig. 1 to Fig. 3, note that stamped signature 188 is fused to fuse 172, and fuse 172 may regrowth.Some makes moderate progress the problem of stamped signature 188 regrowths according to one embodiment of the invention; Because stamped signature 188 can be through above-mentioned error detection and the performed error detection of amendment scheme (scheme) and can revise data assurance silk 152 by fusing to revising data assurance silk 152.Yet there are restriction in error detection and amendment scheme in the error bit that can detect, therefore, in the time of might working as the 152 generation regrowths of the too much data assurance revised silk, can make to detect the mistake in the stamped signature 188.To this problem, below will be described further according to Fig. 4 to Fig. 6.
More specifically explanation, this problem are to see through boolean's complement code 186 (asking for an interview Fig. 4) scorification of stamped signature 188 and this stamped signature extremely can be revised data assurance silk 152.And then from can revising boolean's complement code 186 that data assurance silk 152 reads stamped signature 188 and this stamped signature, carry out boolean's complement arithmetics producing a result to stamped signature 188, and compare this result and read from the boolean's complement code 186 that can revise data assurance silk 152.If comparison result is inequality, expression detects mistake.Because in order not detect the mistake of stamped signature 188; Stamped signature 188 in the fuse 172 need be with the state reverse (invert) of oneself with its complement code 186; So this solution maybe be more more reliable to error detection and amendment scheme shown in Figure 3 than Fig. 1; This then need make the fuse 172 in the stamped signature 188 change not blown state (like the fuse regrowth) into from blown state, and the fuse 172 that makes in the complement code 186 corresponding position never blown state change blown state into, vice versa.Yet,, do not comment the situation that changes blown state about fuse 172 by blown state not into as yet although aforementioned clear the commentary about fuse 172 changes the problem of blown state not (being the mainly problem that solves of desire of the present invention) into by blown state.Therefore, the complement code scheme of stamped signature scheme/stamped signature does not unlikely go to detect the mistake in the stamped signature 188 that can not revise data assurance silk 192.
Fig. 4 is the synoptic diagram according to the described microprocessor 100 of another embodiment of the present invention.The microprocessor 100 of Fig. 4 is similar to the microprocessor 100 of Fig. 1, thus this only to newly-increased with and/or different assemblies explain.One of them difference is can revise data assurance silk 152 to comprise that not only representative can not revise the stamped signature 188 of the fusing fuse quantity in the data assurance silk 192, has also comprised the stamped signature complement code 186 of boolean's reverse value of representing stamped signature 188.In addition, be read to the data assurance silk numerical value 126 of apparatus for temporary storage 144 and not only comprise stamped signature 184, also comprised stamped signature complement code 185 from revising data assurance silk 152.Moreover, reset complement code that microcode 122 calculates stamped signature 184 with complement code as stamped signature 182.
Fig. 5 is the operation workflow figure that shows the microprocessor 100 of shop drawings 4.Flow process starts from square 201.
In square 201, the fabricator of microprocessor 100 confirms a stamped signature, and this stamped signature is for can not revise the fuse quantity that will be fused in the data assurance silk 192.And the fabricator of microprocessor 100 confirms the complement code of this stamped signature.Flow process continues to square 202.
In square 202, the fabricator of microprocessor 100 confirms to desire scorification to the controlling value that can revise data assurance silk 152.The square 202 of Fig. 5 is similar to the square 202 of Fig. 2, yet what note is that this controlling value not only comprises the stamped signature that square 201 is determined, also comprises the complement code of this stamped signature.Flow process continues to square 204.
In square 204, this fabricator uses error detection and correction algorithm to square 202 determined controlling values, to calculate scorification to error detection and error detection and the modified value of revising fuse 132.The square 204 of Fig. 5 is similar to the square 204 of Fig. 2, yet what note is that this error detection and modified value are to calculate according to the controlling values that the square of Fig. 5 201 is confirmed, and this error detection and modified value comprise the complement code of this stamped signature and this stamped signature.Flow process continues to square 206.
In square 206, this fabricator extremely can revise data assurance silk 152 with square 202 determined controlling value scorifications, and with error detection and modified value scorification to error detection and correction fuse 132 that square 204 is calculated, is similar to the square 206 of Fig. 2.Flow process ends at square 206.
Fig. 6 is the operation workflow figure of the microprocessor 100 of displayed map 4.The performed step of Fig. 6 is except the following difference place that particularly points out, and other step then is similar to the step of Fig. 3.
In square 304, stamped signature 184 and stamped signature complement code 185 have been comprised from revising the data assurance silk numerical value 126 that data assurance silk 152 read out and write to apparatus for temporary storage 144 by reseting microcode 122.Flow process continues down to proceed to new square 652 from square 304.
In square 652, reset microcode 122 and will make complement arithmetic to produce a result from the stamped signature 184 of apparatus for temporary storage 144, compare then this result with from the stamped signature complement code 182 of apparatus for temporary storage 144.Flow process continues to new decision-making square 654.
In decision-making square 654, whether the comparison of reseting microcode 122 decision squares 652 is identical, if flow process continues down to carry out square 306; If not, then flow process continues down to carry out square 318 because microprocessor 100 determined stamped signature 188 with and/or stamped signature complement code 186 in mistake has taken place.
The advantage that the embodiment of Fig. 4 to Fig. 6 has is need (Error Checking and Correction ECC) revise stamped signature 188 in the fuse 172, but stamped signature complement code 186 does not provide the integrity checking of stamped signature 188 by bug check and correction.
About the solution of the illustrated regrowth problem that can not revise data assurance silk 192 of the embodiment of Fig. 1 to Fig. 6, its test is reseting of answer processor and carrying out.If when reseting, detect the mistake of fuse regrowth, one of solution is exactly the partial cancellation (kill) that makes a mistake, and meaning is promptly reseted microcode 122 and avoided microprocessor to leave reconfiguration procedure.Yet; If the partially self that makes a mistake cancellation; A then whole computing machine is exactly the state when machine as far as basic input/output system; Therefore also can be when the machine state as far as the user, meaning promptly this computing machine can't carry out any program code, can't send the serge serge signal sound, can't the switching signal lamp or produce any signal of video signal and inform the wrong generation of user.Thus, then be difficult to collect significant fault on the spot (field failure) information for fault analysis and solution.
Two of solution is exactly to let the part that makes a mistake continue to carry out and the trial repayment mistake of trying one's best.Yet; The returning error mechanism that processor itself can get (i.e. stripping (absent) any executory external program code) is very limited; Particularly because the sign indicating number of reseting of processor is not freely in the write store; Even reset sign indicating number freely in the write store, basic input/output system also rewrites it possibly.If the processor fuse test errors state when reseting will be retained; Then basic input/output system must read this error condition immediately as early as possible when beginning to carry out; And this needs system manufacturer to be ready to let the fabricator of microprocessor 100 increase program code, the error condition of particularly repaying in order to read processor newly at the basic input/output system of ordering work for processor.Yet the fabricator of microprocessor 100 possibly can't so do in its applied all systems.
It is to let the fuse test become the user initiate (user-initiated) that individual method is arranged, rather than only can initiate by reseting.So; Increased a particular module buffer in the microprocessor 100 newly; When letting user's software that one particular module buffer is write instruction and carries out to this particular module buffer, microprocessor 100 is carried out above-mentioned any or carry out the mistake that above-mentioned fuse test and report detect simultaneously.This makes user's software can the mistake that detect be and offers the user that in addition, this makes that also the user can select to continue to use this system maybe with this system closing.
Moreover; Whether when reseting, carry out the fuse test and be an available option when making, wherein be during fabrication by scorification one fuse optionally to indicate this option (for example: the indication of scorification fuse is not carried out the fuse test when reseting, the fuse test is carried out in the indication of non-scorification fuse when reseting).Yet fuse is not certain reliable, thus with the single fuse of its scorification to select this option, not as a plurality of fuses of scorification (like four fuses in the fuse 187 of Fig. 7) and to having selected which option with decision by a plurality of fuses execution exclusive disjunctions.Even if be chosen in and carry out the fuse test when reseting, still can see through the particular module buffer and write the fuse test that the Instruction Selection user initiates.
Fig. 7 is the synoptic diagram according to the described microprocessor 100 of another embodiment of the present invention.The microprocessor 100 of Fig. 7 is similar to the microprocessor 100 of Fig. 1, thus this only to newly-increased with and/or different assemblies explain.One of them difference is that scorification to the fuse that can revise data assurance silk 152 187 is an option of whether when reseting, carrying out the fuse test; Another difference then is to reset microcode 122 not only to comprise the fuse test microcode routine (microcode routines) when reseting, and also comprises the fuse test microcode routine that the user initiates.Live part in the fuse test microcode routine that fuse test microcode routine when reseting in one embodiment, and user initiate is the same program code.In addition, from revising the fuse numerical value 181 that data assurance silk numerical value 126 that data assurance silk 152 reads to apparatus for temporary storage 144 comprises the fuse test option when reseting.Moreover; Microprocessor 100 comprises a particular module buffer 174 that can be write by user's program (for example basic input/output system or other system software); Wherein, Particular module buffer 174 is to be write so that microprocessor 100 is carried out the fuse test and returned an error status value to particular module buffer 174 by user's program, lets user's program see through particular module buffer reading command and goes to read.At last; Other correlation function of microprocessor 100; Such as: instruction transfer interpreter 104, command decoder 108, performance element 114 and reset microcode 122; Then be modified the particular module buffer that is directed in the particular module buffer 174 with decoding and execution and write instruction and particular module buffer reading command, will be described further according to Figure 10 and Figure 11 in follow-up.
Fig. 8 is the operation workflow figure that shows the microprocessor 100 of shop drawings 7.Flow process starts from square 800.
In square 800, the fuse 187 of fuse test option when the fabricator of microprocessor 100 determines reseting among scorification Fig. 7 whether.Flow process continues to square 201.
In square 201, the fabricator of microprocessor 100 determines a stamped signature, and this stamped signature will be by the fuse quantity of scorification in the data assurance silk 192 for revising.Flow process continues to square 202.
In square 202; The fabricator of microprocessor 100 determines to desire scorification to the controlling value that can revise data assurance silk 152; The square 202 of Fig. 8 is similar to the square 202 of Fig. 2; Yet, be noted that this controlling value also comprises the fuse 187 that square 800 is determined, and this controlling value will extremely can be revised data assurance silk 152 by scorification in square 206.Flow process continues to square 204.
In square 204, the fabricator of microprocessor 100 uses error detection and correction algorithm to the controlling value that square 202 is determined, to calculate scorification to error detection and error detection and the modified value of revising fuse 132.The square 204 of Fig. 8 is similar to the square 204 of Fig. 2, yet, be noted that this error detection and modified value are to calculate according to the controlling value that square 202 is determined.Flow process continues to square 206.
In square 206; The fabricator of microprocessor 100 extremely can revise data assurance silk 152 with the controlling value scorification that square 202 is determined; And, be similar to the square 206 among Fig. 2 with error detection and modified value scorification to error detection and correction fuse 132 that square 204 is calculated.In addition, this fabricator's scorification can not be revised data assurance silk 192, and particularly can not revise in the data assurance silk 192 by the fuse quantity of scorification is to determine at square 201.Flow process continues to square 206.
Fig. 9 is the operation workflow figure of the microprocessor 100 of displayed map 7.Step performed among Fig. 9 is except following difference with explanation, and all the other steps then are similar to step performed among Fig. 3.Fuse numerical value in the square 304 fuse test option in the time can revising numerical value that data assurance silk 152 read and also comprise like above-mentioned reseting.
In addition, flow process down proceeds to new square 903 from square 304.In square 903, reset microcode 122 and carry out exclusive disjunctions to produce an option place value to the fuse numerical value 181 that reads fuse test option when the reseting of apparatus for temporary storage 144.Flow process continues to new decision-making square 905.
In decision-making square 905, reset the option place value that microcode 122 decision squares 903 are produced and whether indicate the fuse test when reseting, if flow process continues to square 306; If not, then flow process finishes.
At last, flow process proceeds to new decision-making square 917 from " denying " branch of decision-making square 314.
In decision-making square 917, reset fault that microcode 122 decision can not revise and be fuse test when reseting detects or initiated by the user fuse test and detect.If the fuse test detection when reseting to, flow process continues to square 318; If the fuse test detection of initiating by the user to, then flow process continues to new square 919.
In square 919, the microcode 122 of reseting of the fuse test that the user initiates is loaded on the particular module buffer 174 that fuse is tested among Fig. 7 with error status value.Flow process ends at square 919.
Figure 10 is that the microprocessor 100 of displayed map 7 is carried out the operation workflow figure that the particular module buffer writes instruction, and wherein, this particular module buffer writes the particular module buffer 174 that instruction is directed to Fig. 7.Flow process starts from square 1002.
In square 1002, user's program is carried out a particular module buffer that is directed to particular module buffer 174 and is write instruction.Flow process continues to square 1004.
In square 1004; Instruction transfer interpreter 104 these particular module buffers of decoding write instruction; And control is transferred to the particular module buffer of reseting in the microcode 122 writes handling procedure (WRMSR hanlder), this particular module buffer writes handling procedure can call the fuse test microcode routine that the user initiates.Flow process continues to square 1006.
In square 1006; The fuse test microcode routine execution graph 3 that the user initiates, Fig. 6, with and/or Fig. 9 in the 326 described fuses tests of square 306 to square; Particularly, reset microcode 122 is inserted the test of (populate) fuse according to the error condition of square 919 particular module buffer 174.Flow process ends at square 1006.
Figure 11 is the operation workflow figure that the microprocessor 100 of displayed map 7 is carried out particular module buffer reading command, and wherein, this particular module buffer reading command is directed to the particular module buffer 174 of Fig. 7.Flow process starts from square 1102.
In square 1102, user's program is carried out a particular module buffer reading command that is directed to particular module buffer 174.Flow process continues to square 1104.
In square 1104; Instruction transfer interpreter 104 these particular module buffer reading command of decoding; And control is transferred to the particular module buffer of reseting in the microcode 122 reads handling procedure (RDMSR hanlder); This particular module buffer reads handling procedure can copy to general general caching device with the numerical value in the particular module buffer 174 of fuse test, and for example in the EDX-EAX buffer, and the EDX-EAX buffer can be read by user's program.Flow process ends at square 1104.
Though the foregoing description is to use the x86 framework, works as and can the embodiment that fuse of being initiated by the user according to the invention is tested be made an amendment to be applied to the processor of other framework slightly according to the content that embodiments of the invention disclosed.The wide application that fuse had in the microprocessor can realize many important function, therefore needs reliable method to learn when the fuse regrowth takes place.Fig. 7 to embodiment shown in Figure 11 promptly by letting the fabricator can collect more how useful error data on the spot, assist to accomplish this target, in addition, the user also can be provided the error indication than the tool meaning, and just not present a system that works as machine.
Of above embodiment, when microprocessor started, some controlling value (controlling value in the fuse that promptly can not revise) directly was scanned up to hardware register, rather than let and reset microcode and use error detection and correction technique to go to revise this controlling value.In an embodiment of microprocessor, microcode even can't read the fuse that can not revise.Whether above-mentioned other embodiment then makes the fuse that can not revise can be read with detecting controlling value wherein wrong.Yet the above embodiments do not make the mistake that detects revised.
To be to make microcode can revise the fuse that can not revise in Figure 12 to Figure 14 illustrated example below, clear and definite, the said here fuse that can not revise have comprised error detection and has revised fuse and data assurance silk.When reseting, the fuse numerical value that can not revise is read to the scanning buffer of each auto correlation one fuse data base.Then, the data that can not revise of a state machine and error detection and be scanned up to the buffer that a microcode can read with revising fuse numerical value self-scanning buffer sequence.This microcode is revised data assurance silk numerical value when needs, and will revise numerical value and write the writeable buffer of a microcode, makes the correction numerical value in the writeable buffer of microcode got back to the scanning buffer in the fuse data base by the scanning of sequence ground.This microcode then makes the correction numerical value of scanning in the buffer be scanned up to control hardware (controlling buffer such as high-speed cache Correction and Control buffer and phase-locked loop adjustment) by sequence ground.
Figure 12 is the synoptic diagram according to the described microprocessor 100 of another embodiment of the present invention.The microprocessor 100 of Figure 12 is similar to the microprocessor 100 of Fig. 1, has comprised an instruction cache 102, instruction transfer interpreter 104, instruction dispensing device 106, performance element 114, microcode unit 116, has reseted microcode 122, fuse scorification voltage input 136 and apparatus for temporary storage 144.
The microprocessor 100 of Figure 12 also comprises control hardware 124, and control hardware 124 provides controlling value 164 to the running with control microprocessor 100 of the circuit (circuits) of microprocessor 100 in order to receive and to store a controlling value 164 and use.Control hardware 124 may command following steps (but being not limited thereto): the redundant row of selecting bit location is to replace the delegation that damages in the cache memory bit cell; Work period or other control to the various phase-locked loop of microprocessor 100; Charge pump is set; The clock frequency of phase-locked loop; The setting of I/O pad comprises the function that allows the multitask debug; Select clock whether in microprocessor 100, to be moved to increase frequency; Used redundant fuse when avoiding fuse to lose efficacy; The fuse that only is used for the identification purposes of manufacture process; The pin of setting voltage identification number; And in order to control the bus selection pin of voltage and clock multiplier.
Processor 100 also comprises can not revise data assurance silk 192; The data assurance silk 192 of can not revising of Figure 12 comprises data assurance silk 195 and error detection and correction fuse 193; Error detection is to provide to reset microcode 122 to revise the mistake in the data assurance silk 195 with revising fuse 193; The mistake that is for example caused by the fuse regrowth below will be described further.
Processor 100 also comprises the scanning buffer 191 that is coupled to data assurance silk 195 and error detection and correction fuse 193 through a parallel interface; Microprocessor 100 also comprises buffer 196 and the writeable buffer 197 of a microcode that a microcode can read, and the buffer 196 that microcode can read all is coupled to performance element 114 with the writeable buffer 197 of microcode.In one embodiment, the buffer that can read of microcode 196 is all 64 bit wides with the writeable buffer 197 of microcode.Microprocessor 100 also comprises state machine 199, and state machine 199 is to be coupled to by individual other bi-directional serial interface: writeable buffer 197 of buffer 196, microcode and control hardware 124 that scanning buffer 191, microcode can read.In one embodiment, state machine 199 is that (Common On-chip Processor is COP) in order to use known combined testing action group mechanism to remove to scan the sequence bit crossfire between the storage assembly for general on-chip processor.In one embodiment, this serial line interface is a part that operates on the core clock frequency of microprocessor 100; This part is 1/8th in an embodiment.This has an advantage, and the distance that promptly can not revise between data assurance silk 192, state machine 199 and the control hardware 124 relatively is far away; In addition; The buffer 196 that microcode can read is to be situated between to be connected to the parallel territory (like performance element 114) of microprocessor 100 and the serial domain of microprocessor 100 (for example: can not revise data assurance silk 192, state machine 199 and control hardware 124) with the writeable buffer 197 of microcode; And parallel territory with this relatively be near but with this serial domain relatively for far away; Wherein this parallel territory operates with full core clock frequency, and this serial domain is the part running with above-mentioned core clock frequency.
Moreover reset microcode 122 in order to carry out following steps: reading of data fuse 195 also writes apparatus for temporary storage 144 as data assurance silk numerical value 166 with the numerical value that reads; The read error detecting writes apparatus for temporary storage 144 as error detection and correction fuse numerical value 168 with correction fuse 193 and with the numerical value that reads; And reading of data fuse numerical value 166 revises data assurance silk numerical value 158 with revising fuse numerical value 168 to produce one with error detection, wherein revises data assurance silk numerical value 158 and writes apparatus for temporary storage 144 and then read for the usefulness that writes the writeable buffer 197 of microcode from apparatus for temporary storage 144.
Figure 13 is the operation workflow figure according to the microprocessor 100 of manufacturing Figure 12 according to the invention.Step shown in Figure 12 is similar to the described step of Fig. 2 of patent application 12/609,207; Yet the step of Figure 12 is to can not the revising data assurance silk 192 (just data assurance silk 195 and error detection and correction fuse 193) of Figure 12 and carrying out, rather than is directed against the fuse 172 of Fig. 1 and carries out.Flow process starts from square 202.
In square 202; The fabricator of microprocessor 100 determines desire to fuse to the controlling value of data assurance silk 195; Each data assurance silk 195 constitutes the single position with a binary value, and its binary value is looked corresponding data assurance silk 195 and is made as 0 or 1 for fusing or not fusing.Read from the place value of data assurance silk 195 and will be scanned up to of control hardware 124, below will in Figure 14, further specify.Therefore; In square 202; Which this fabricator determines to revise that data assurance silk 192 will be configured to data assurance silk 195 and which can not be revised data assurance silk 192 and will be configured to error detection and revise fuse 193, and this fabricator is associated to one of control hardware 124 and decision desire with each data assurance silk 195 and fuses to the place value of data assurance silk 195.This fabricator carries out above step to each data assurance silk 195.Fuse to the angle (further specify the narration of asking for an interview with lower block 204) of error detection with generation with the numerical value of revising fuse 193; Though each data assurance silk 195 all constitutes single position; But whole data assurance silks 195 can be considered single entities and has the single common numerical value that is fused or be regarded as a plurality of words that have single common numerical value separately, below will be described further in square 204.Thus, single common numerical value is before making microprocessor 100 and after having made, just to preestablish before the running.Flow process proceeds to square 204 by square 202.
In square 204; The manufacturer of microprocessor 100 uses error detection and correction algorithm to the controlling value that square 202 is determined; To calculate with scorification to error detection and error detection and the modified value of revising fuse 193; This error detection and correction algorithm can be one of aforementioned algorithm, comprise the described vertical and horizontal code calculation of Fig. 2 and Fig. 3.Flow process continues to square 206.
In square 206, controlling value scorification to the data assurance silk 195 that this manufacturer is determined square 202, and the error detection that square 204 is calculated and modified value scorification to error detection with revise fuse 193.Flow process ends at square 206.
Figure 14 is the operation workflow figure that shows the microprocessor 100 of Figure 12.Some step square indicates with the numbering of picture 1 to 6 in Figure 12 among Figure 14, and contrast is illustrated in following recitation of steps 1 to step 6.Flow process starts from square 1402.
In square 1402, microprocessor 100 begins to extract and carry out the instruction of reseting microcode 122 in response to reseting.Flow process continues to square 1404.
In square 1404, shown in the step 1 of Figure 12, can not revise data assurance silk 192 numerical value (just data assurance silk 195 numerical value and error detection and correction fuse 193 numerical value) and be loaded on scanning buffer 191.Flow process continues to square 1406.
In square 1406; Shown in the step 2 of Figure 12; State machine 199 with 1404 loaded data fuse 195 sequence of values of square be scanned up to control hardware 124; Regrowth make microprocessor 100 to operate, even possibly take place the one or more fuses in the data assurance silk 195 according to initial value from data assurance silk 195.This is a necessary programs, because microprocessor 100 can't normally not operate when control hardware 124 loads any numerical value.In one embodiment, there are 1000 can not revise data assurance silk 192 and with its effective scanning buffer 191 that reads in (each scanning buffer 191 be 32); Scanning buffer 191 couples together to sequence in a continuous manner; Make value got into or to leave scanning buffer 191 by the scanning of sequence ground; Effectively write hardware thereby save, write hardware and need use a parallel bus each scanning buffer 191 to be connected to other assembly of state machine 199 or microprocessor 100.Flow process continues to square 1408.
In square 1408, shown in the step 3 of Figure 12, reset microcode 122 execution command and make state machine 199 that data assurance silk 195 numerical value and error detection and correction fuse 193 numerical value self-scanning buffers 191 are read to the buffer 196 that microcode can read.Flow process continues to square 1412.
In square 1412, shown in the step 4 of Figure 12, reset microcode 122 and read the buffer 196 that microcode can read, and data assurance silk numerical value 166 and error detection and correction fuse numerical value 168 are write apparatus for temporary storage 144.Then; Be similar to the square 306 of Fig. 3; Reset microcode 122 and use error detections and correction algorithm whether wrong, if then determine mistake whether can revise with determination data fuse numerical value 166 to data assurance silk numerical value 166 and error detection and correction fuse numerical value 168.Flow process continues to square 1414.
In square 1414, reset microcode 122 according in the performed operation determination data fuse numerical value 166 of square 1412 whether the mistake that can not revise being arranged, if flow process continues to square 1416; If not, then flow process continues to decision-making square 1418.
In square 1416, can't use microprocessor 100 error detections to go to revise with revising fuse numerical value 168 because the bit quantity of the mistake in the data assurance silk numerical value 166 is too much, avoid microprocessor 100 to leave reconfiguration procedure so reset microcode 122.That is to say, reset microcode 122 and avoid microprocessor 100 to remove to extract and carry out user's programmed instruction.In another embodiment, reset microcode 122 and can allow microprocessor 100 to leave reconfiguration procedure, meaning promptly removes to extract and carry out the user's programmed instruction like basic input/output system or other system software; Yet, be similar to the square 318 of above-mentioned Fig. 3, reset microcode 122 and can transmit an error condition to system softwares and the mistake that can not revise is arranged in the data assurance silk numerical value 166 to inform.Flow process ends at square 1416.
In square 1418; Reset the data assurance silk numerical value 166 that microcode 122 uses error detection and correction algorithm to go to correct mistakes and revise data assurance silk numerical value 158 when needing to produce; And shown in the step 5 of Figure 12; To revise data assurance silk numerical value 158 and write the writeable buffer 197 of microcode, and make state machine 199 will write to the correction data assurance silk numerical value 158 sequences ground scanning flyback retrace buffer 191 of the writeable buffer 197 of microcode.In one embodiment, the microinstruction set of microprocessor 100 has comprised an instruction that makes state machine 199 carry out above-mentioned operation.Flow process continues to square 1422.
In square 1422; Shown in the step 6 of Figure 12; Reseting microcode 122 makes state machine 199 from scanning buffer 191 numerical value of revising is scanned up to control hardware 124; With the running of use correction data assurance silk numerical value 158 control microprocessor 100, but not the initial value that use square 1406 is scanned goes the running of control microprocessor 100.Advantageously, if any amendable mistake is arranged in initial value, this mistake also can be revised in this in the lump.Flow process continues to square 1424.
In square 1424, reset the initialization that microcode 122 has been accomplished microprocessor 100, let microprocessor 100 begin to extract and carry out user's programmed instruction then.Flow process ends at square 1424.
In one embodiment; The part of data assurance silk 195 numerical value that state machine 199 self-scanning buffers 191 are received comprises an address information; This address information be directed against the destination locations in the related data specified control hardware register 124; That is to say, the address information in this part of state machine 199 deal with data fuses 195 numerical value, and this part write the specified control hardware buffer 124 of this address information.In this embodiment; Of Figure 12 to Figure 14; Reset microcode 122 and revise data assurance silk numerical value 166 and mean and reset the data division that microcode 122 has not only been revised data assurance silk numerical value 166, also advantageously revised the address portion of data assurance silk numerical value 166 to produce the step of revising data assurance silk numerical value 158 and the step that makes state machine 199 be scanned up to control hardware 124 with will revising data assurance silk numerical value 158 sequences.In other embodiment; Microcode is from purpose control hardware buffer reading numerical values and use error detection and revise fuse numerical value with to the numerical value execution error detection and the correction of being read from purpose control hardware buffer; The advantage that this embodiment has other is for example: the calculating by reseting performed error detection of microcode 122 and correction is more uncomplicated, and the position that when detecting mistake, need revise is also fewer.Illustrate, suppose to revise data assurance silk 192 and be a redundant row with bit location and reach one in the generation one cache memory bit cell and damage row.Suppose that cache memory has 1024 row bit locations, each row has 6 buffers and damages row in order to one of to specify in 64 redundant rows to replace one in control hardware 124.That is to say that the 6 bit data amounts that have 1024 possible destination locations can supply to revise data assurance silk numerical value 158 in the control hardware 124 write, replace one and damage row one of to use in 64 redundant rows.Therefore; Suppose that one sets the address/data fuse set have in the data assurance silk 195 64 16; More particularly; Preceding 10 positions are an address, and which data buffer of 1024 6 bit data buffers need make an amendment (altered) from 0 preset value in the control hardware 124 of indication purpose, and last 6 positions then are new value data.In this example, Figure 12 extremely embodiment shown in Figure 14 needs enough error detections and revises fuse 193 with 1024 (64*16) in detecting and the correction data assurance silk numerical value 166.Yet; In another embodiment; Microcode is in order to from purpose control hardware buffer reading numerical values and use error detection to go execution error detection and correction with revising fuse, because this microcode can not know that which buffer in the control hardware makes a mistake, so in order to detect and revise a mistake; This microcode then must read whole 1024 control buffers; Meaning i.e. the individual position of 6144 (1024*6), and therefore, this embodiment embodiment extremely more shown in Figure 14 than Figure 12 needs more to many error detection and revise fuse.
Can find by above-mentioned explanation; The described apparatus and method of Figure 12 to Figure 14 are superior to the described apparatus and method of Fig. 1 to Figure 11; Because Figure 12 extremely embodiment shown in Figure 14 can detect and revise the mistake that can not revise in the data assurance silk 192 simultaneously, and Fig. 1 embodiment extremely shown in Figure 11 only can be in order to the detecting mistake.
The test that Figure 12 to Figure 14 is described when reseting also can be implemented as the test that the user initiates, and is similar to Fig. 7 to embodiment shown in Figure 11.
The advantage that the described apparatus and method of Figure 12 to Figure 14 have is that it has used universal serial bus to remove to connect scanning buffer 191 and control hardware 198 can to reduce in essence and will revise fuse numerical value and pass to the required number of, lines of control hardware 124; This is because can not revise data assurance silk 192 and spatially can place the place away from control hardware 124, with and/or need to be written into the quantity of the control hardware 124 of revising numerical value very huge.In addition; Provide a mechanism confession to reset microcode 122 execution error detections and revise the state machine 199 of having simplified a solution widely; In this solution; State machine 199 execution error detections and correction, perhaps in this solution, error detection and correction are to be executed in fuse numerical value to be loaded in the scanning buffer 191.
Though the present invention discloses as above with various embodiment, however its be merely example with reference to but not in order to limiting scope of the present invention, anyly have the knack of this art, do not breaking away from the spirit and scope of the present invention, when doing a little change and retouching.For instance, software can realize being relevant to apparatus and method of the present invention function, manufacturing, modularization (modeling), simulation (simulation), describe (description), with and/or test or the like.This software can use general procedure design language (as: C, C++), hardware description language, and (Hardware Description Language, HDL) (as: Verilog HDL, VHDL or the like) or other program that can get are come real the work.And this software is configurable can be used in the medium in any known computing machine; For example: semiconductor, disk or CD are (like a reading memory CD (Compact Disc Read-0nly Memory; CD-ROM), digital versatile disc (Digital Versatile Disc Read-Only Memory, DVD-ROM) or the like).The embodiment of apparatus and method of the present invention can be included in the semiconductor intellecture property core (semiconductor intellectual property core); For example: microcontroller core (as: being embedded in the hardware description language) further converts the IC products of hardware again into.In addition, apparatus and method of the present invention can hardware and an array mode of software embed.Therefore, the foregoing description is not in order to limiting scope of the present invention, and protection scope of the present invention is as the criterion when looking accompanying the claim person of defining.Particularly, the present invention can be implemented in a micro processor, apparatus, and this micro processor, apparatus can be used in general purpose computing machine.At last, have the knack of this art and should understand and do not breaking away from the spirit and scope of the present invention, go out other framework with the identical purpose of the present invention with the above-mentioned embodiment that is disclosed and conceptual design.

Claims (10)

1. microprocessor comprises:
More than first fuse, wherein the fuse of a predetermined quantity is by optionally fusing, and provides more than first controlling value to first circuit of above-mentioned microprocessor to control the running of above-mentioned microprocessor by above-mentioned more than first fuse; And
More than second fuse fused according to the fusing fuse of above-mentioned predetermined quantity,
Wherein above-mentioned microprocessor is carried out following steps when reseting:
Read the fuse quantity that above-mentioned more than first fuse and counting have wherein fused;
Read above-mentioned predetermined quantity from above-mentioned more than second fuse;
More above-mentioned count number with read above-mentioned predetermined quantity from above-mentioned more than second fuse; And
When above-mentioned count number is different from the above-mentioned above-mentioned predetermined quantity that reads from above-mentioned more than second fuse, avoid extracting and carry out user's programmed instruction.
2. microprocessor as claimed in claim 1, wherein the fusing of above-mentioned more than second fuse is further carried out according to an error correction value, and above-mentioned error correction value is in order to revise a mistake of the above-mentioned predetermined quantity that reads.
3. microprocessor as claimed in claim 2; Wherein above-mentioned more than first controlling value be from above-mentioned more than first fuse directly and without provide with crossing error correction to above-mentioned first circuit to control the running of above-mentioned microprocessor; Wherein the fusing of above-mentioned more than second fuse is further carried out according to more than second controlling value, and above-mentioned microprocessor is also revised a mistake of above-mentioned more than second controlling value that reads from above-mentioned more than second fuse and above-mentioned more than second controlling value that will revise provides second circuit to above-mentioned microprocessor to control the running of above-mentioned microprocessor.
4. when microprocessor as claimed in claim 1, wherein above-mentioned microprocessor are different from the above-mentioned predetermined quantity that reads in the fuse quantity of above-mentioned counting, to a system software reporting errors.
5. microprocessor as claimed in claim 1 also comprises:
One microcode unit in order to read the fuse quantity that above-mentioned more than first fuse and counting have wherein fused, reads above-mentioned predetermined quantity from above-mentioned more than second fuse, and the fuse quantity of more above-mentioned counting and the above-mentioned predetermined quantity that reads.
6. method that detects and revise the mistake of the fuse in the microprocessor comprises:
Read more than first fuse, wherein the fuse of a predetermined quantity is by optionally fusing, and wherein more than first controlling value be provided to a microprocessor from above-mentioned more than first fuse first circuit to control the running of above-mentioned microprocessor;
Count the quantity of the fuse that has fused in above-mentioned more than first fuse;
Read above-mentioned predetermined quantity from more than second fuse, wherein above-mentioned more than second fuse fused according to the fuse of fusing of above-mentioned predetermined quantity;
The fuse quantity of more above-mentioned counting and the above-mentioned predetermined quantity that reads; And
When the fuse quantity of above-mentioned counting is different from the above-mentioned predetermined quantity that reads, avoid above-mentioned microprocessor to extract and carry out user's programmed instruction.
7. method as claimed in claim 6, wherein the fusing of above-mentioned more than second fuse is further carried out according to an error correction value, and above-mentioned error correction value is in order to revise a mistake of the above-mentioned predetermined quantity that reads.
8. method as claimed in claim 7 also comprises:
From above-mentioned more than first fuse directly and without cross error correction ground with above-mentioned more than first controlling value provide to above-mentioned first circuit to control the running of above-mentioned microprocessor; Wherein the fusing of above-mentioned more than second fuse is further carried out according to more than second controlling value, and said method also comprises:
Correction is from a mistake of above-mentioned more than second controlling value that above-mentioned more than second fuse read; And
Provide second circuit to above-mentioned microprocessor to control the running of above-mentioned microprocessor above-mentioned more than second controlling value of revising.
9. method as claimed in claim 6 also comprises:
When the fuse quantity of above-mentioned counting is different from the above-mentioned predetermined quantity that reads, to a system software reporting errors.
10. the step that method as claimed in claim 6, the step of the fuse quantity that has fused in more than first fuse of wherein above-mentioned counting, the above-mentioned step and above-mentioned that reads the step of above-mentioned predetermined quantity, above-mentioned comparison from more than second fuse avoid extracting and carry out user's programmed instruction is to be executed in above-mentioned microprocessor resets.
CN 201010243753 2009-08-07 2010-07-30 Microprocessor and operation method thereof Active CN101894062B (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US23224709P 2009-08-07 2009-08-07
US61/232,247 2009-08-07
US12/719,260 2010-03-08
US12/719,260 US8276032B2 (en) 2009-08-07 2010-03-08 Detection of uncorrectable re-grown fuses in a microprocessor

Publications (2)

Publication Number Publication Date
CN101894062A CN101894062A (en) 2010-11-24
CN101894062B true CN101894062B (en) 2012-12-12

Family

ID=43103257

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010243753 Active CN101894062B (en) 2009-08-07 2010-07-30 Microprocessor and operation method thereof

Country Status (1)

Country Link
CN (1) CN101894062B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10382013B2 (en) * 2015-10-23 2019-08-13 Altera Corporation Pulse-width modulation voltage identification interface

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101299184A (en) * 2007-07-24 2008-11-05 威盛电子股份有限公司 Repairing device and method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7487397B2 (en) * 2005-10-27 2009-02-03 International Business Machines Corporation Method for cache correction using functional tests translated to fuse repair

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101299184A (en) * 2007-07-24 2008-11-05 威盛电子股份有限公司 Repairing device and method

Also Published As

Publication number Publication date
CN101894062A (en) 2010-11-24

Similar Documents

Publication Publication Date Title
CN103123597B (en) Microprocessor and the method for testing that is suitable for
CN100578462C (en) Device, method and system for reducing the error rate in clock synchronization dual-modular redundancy system
US7487397B2 (en) Method for cache correction using functional tests translated to fuse repair
US8234543B2 (en) Detection and correction of fuse re-growth in a microprocessor
CN105630732A (en) Hot switching method for dual-mode redundant microprocessor
CN101246443A (en) Method, apparatus for repairing memory failures
CN102609320B (en) Microprocessor and the method configuring debug logic in microprocessor
CN102346688A (en) System and method for automatic hardware interrupt handling
CN101156137A (en) Selecting subroutine return mechanisms
TW201732589A (en) Systems, methods, and apparatuses for fault tolerance and detection
CN101894062B (en) Microprocessor and operation method thereof
JPH10500517A (en) Data processing apparatus and method for correcting faulty microcode
CN101930390B (en) Microprocessor and operating method applicable for the same
CN101930386B (en) Microprocessor and initialization method applicable for the same
CN101930391B (en) Microprocessor and test method applicable for same
Lee et al. Evaluation of error detection coverage and fault-tolerance of digital plant protection system in nuclear power plants
CN101286117A (en) Microcode repairing and expanding mechanism, device and method for expanding microcode repaiing mechanism
CN101794249B (en) Microprocessor and method for initializing microprocessor
Aleksandrowicz et al. Designing reliable cyber-physical systems
KR100313712B1 (en) Fault-Based Software Fault Tolerance for Redundant Processors
TWI789983B (en) Power management method and power management device
Chandrasekar et al. Fault tolerance in OpenSPARC multicore architecture using core virtualization
Neumann et al. A Study of Fault-Tolerant Computing
JPS60221829A (en) Data processor
Castano et al. Hardware Support of Resilience

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant