SE517214C2 - Metod och anordning för automatisk rättning av ECC-fel i ett minne med hjälp av hårdvara - Google Patents
Metod och anordning för automatisk rättning av ECC-fel i ett minne med hjälp av hårdvaraInfo
- Publication number
- SE517214C2 SE517214C2 SE9501925A SE9501925A SE517214C2 SE 517214 C2 SE517214 C2 SE 517214C2 SE 9501925 A SE9501925 A SE 9501925A SE 9501925 A SE9501925 A SE 9501925A SE 517214 C2 SE517214 C2 SE 517214C2
- Authority
- SE
- Sweden
- Prior art keywords
- memory
- data
- read
- request
- read data
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
- G06F11/106—Correcting systematically all correctable errors, i.e. scrubbing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
- G06F11/1056—Updating check bits on partial write, i.e. read/modify/write
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
Description
25 30 35 40 517 214 2 data. Efter det att dessa data har rättats, sänder avbrottsrutinen ut instruktioner till mikro- processorn för att åstadkomma att dessa data skrivs tillbaka till samma cell i minnet, när de har placerats pâ systembussen och lämpliga "requests", dvs anrop om att begärda operatio- ner skall utföras, har gjorts till mikroprocessorn.
Det är uppenbart, att en större nackdel med ett sådant förfarande är, att det kräver en avsevärd tid varje gång det skall utföras jämte en avsevärd mängd programunderstöd för att kunna utföra även mindre rättningsoperationer. På grund av att detta förfarande innefattar ett förfarande, som är helt skilt från det förfarande, vilket tidigare användes för att kontrol- lera och rätta fel i data, när dessa från början lästes från minnet, kräver det, att en relativt komplicerad avbrottsrutin programmeras som i makrokod för att åter beräkna den fysiska adressen för minnescellen och för att sända ut de läs- och skrivinstruktioner, som styr rättningsoperationen. Således erfordrar ett sådant mjukvarubaserat förfarande inte bara en betydande modifiering av hela systemets konstruktion utan det minskar också systemets prestanda beroende på att rutinen erfordrar en ytterligare tidsperiod för att på nytt beräkna den riktiga adressen, för att skapa lämpliga instruktioner och för att upprepa många av de steg, som redan har utförts under den första läsningen i minnet.
Som altemativ används i ett annat konventionellt mjukvarubaserat rättningsfórfarande ett program för att periodiskt återkommande men dock hela tiden avsöka minnet för att leta efter och rätta fel, som det hittar. Detta åstadkoms genom att sekventiellt avläsa varje min- nescell i minnet, kontrollera lästa data med avseende på felaktigheter och sedan rätta alla korrigerbara fel, som upptäcks, och till sist skriva rättade data tillbaka till samma cell.
Lästa data, som inte har några fel, kastas helt enkelt bort, efter det att de har kontrollerats, eftersom motsvarande minnescell ju innehåller dessa korrekta data. Eftersom detta förfaran- de i vart fall liknar det ovan beskrivna förloppet, uppstår problem med den tidsåtgång och det programstöd, som behövs för att utföra förfarandet. Dessutom detta förfarande också en avsevärd minnesbandbredd i anspråk, vilket hindrar den mest effektiva användningen av minnets bandbredd och inverkar på systemets totala prestanda.
SAMMANFATTNING AV UPPFINNINGEN Det är ett syfte med föreliggande uppfinning att anvisa ett sätt och en anordning för automatisk rättning av ECC-fel hos data lagrade i ett elektroniskt minne eller datorminne, efter det att korrigerbara fel har detekterats i data lästa från minnet genom användning av en mekanism, som är utförd i hård- eller maskinvara och är transparent för mjuk- eller programvara.
Ett annat syfte med föreliggande uppfinning är att anvisa ett sätt och en anordning för automatisk rättning av ECC-fel hos data lagrade i ett minne via en återskrivningsväg, som är inkopplad mellan utgångarna från en buffert för lästa data och en buffert för data, vilka skall inskrivas i minnet, efter detektering av korrigerbara fel i data, som har lästs från minnet.
Ytterligare ett syfte med föreliggande uppfinning är att anvisa ett sätt och en anord- ning för automatisk rättning av ECC-fel hos data lagrade i ett minne, som väsentligt ökar .ïïilï 20 25 30 35 40 517 214 3 systemets prestanda, genom att undvika användning av resurskrävande avbrottsrutiner, och som endast kräver en liten del av minnets bandbredd för att rätta specifikt identifierade fel i data lästa från minnet.
Ytterligare ett annat syfte med föreliggande uppfinning är att anvisa ett sätt och en anordning för automatisk rättning av ECC-fel hos data lagrade i minnet, som ökar syste- mets pålitlighet, genom att enkelbitsfel hos data lagrade i mirmet omedelbart rättas, innan ett andra enkelbitsfel för data lagrade i samma cell kan orsaka fullständig förlust av data lagrade i minnet.
Sålunda anvisas en effektiv och transparent mekanism utförd i en minneshanterare för att skriva data, som har rättats av ECC-hård- eller maskinvara, dvs av ECC-kretsar, tillba- ka in i minnet och på så sätt rätta den felaktiga minnescellen. Minneshanteraren, i vilken rättningsmekanismen är utformad, innefattar åtminstone minneshanteringskretsar för styr- ning av dataflödet till och från minnet jämte en databuffert, fastän i en föredragen utfö- ringsform separata databuffertar fmns anordnade för lästa data och för de data, som skall skrivas.
Kontroll av huruvida data, som läses från minnet, har några fel utförs av ECC-hård- varan och dessa data lagras sedan i bufferten för lästa data. Om minneshanteraren upptäc- ker ett korrigerbart ECC-fel i lästa data, rättar den dessa data, när dessa skrivs in i läsbuf- ferten. Som vanligen utförs i minneshanteringssystem, placeras lästa data därefter på en systembuss för att en mikroprocessor eller andra bussagenter, som är förbundna med där- med, skall kunna använda dessa. För att rätta felaktiga data lagrade i minnet anordnas emellertid en återinskrivningsväg från utgången från bufferten för lästa data till utgången för bufferten för de data, som skall skrivas in i minnet.
När detta är klart, sänder minneshanteringskretsarna ut en minnesrättningsinstruktion till en tillståndsmaskin för dataväg, vilken styr dataflödet till och från minnet för att medde- la, att rättade data befmtliga i läsbufferten skall skrivas tillbaka in i den mirmescell, från vilken de hämtades. Efter att ha avkodat instruktionen sänder tillståndsmaskinen först ut en signal för val av läskälla för läsning till en multiplexor, som styr bufferten eller buffertarna för lästa data, för att välja ut den styrkälla, vilken skall sända ut kommandon för access av den speciella bufferten och för igångsättning av en läsningsoperation därifrån.
T illståndsmaskinen skickar också ut en buffertvalsignal till en utmatande multiplexor, vilken som ingångssignaler har både data, som skall skrivas in, och data lästa från respektive buffert och vilkens utgång är förbunden med minnet via minnesinmatning- och minnesut- matningsbuffertar och minnesgränssnittskomponenter.
När detta har utförts, sänder den utvalda styrkällan ut en läspuls till bufferten för lästa data för att läsa av data från bufferten. Dessa data går genom den utmatande multiplexorn och in i en enhet för bildande av ECC-kodade ord, där ett kodat ord, som svarar mot de lästa data, bildas och lagras i buffertama för inmatning till och utmatning från minnet.
Styrkretsama sänder sedan den riktiga adressen och requestattributsignalerna till minnes- gränssnittskomponentema, vilka i sin tur skapar lämpliga RAS#- och CAS#-sigrlaler (Row “l lllšlïI lšš flllllällllšïšl iii E-Ilf 20 25 30 35 40 517 214 4 Address Strobe, Column Address Strobe, sigiialpulser för att ange att radadressignaler och kolumnadresssignaler fmns tillgängliga), så att rättade data skrivs in på den plats eller i den cell i minnet, som specificerades av den ursprungliga läsinstruktionen.
Enligt en första alternativ utföringsform kan detta förlopp användas för att med hjälp av programvara på periodiskt återkommande sätt rätta data lagrade i minnesmatrisen. Efter- som varje minnescells felaktiga data automatiskt rättas, när de utsätts för en läsoperation, kan hela minnet rättas på ett enkelt sätt genom att en läsning av alla minnesceller i hela minnet utförs sekventiellt.
Enligt en andra alternativ utföringsform kan samma förlopp användas för att skapa ett nytt ECC-kodat ord, när en instruktion för läsning, modifiering och inskrivning utförs.
Detta åstadkoms genom att först lagra delar av data för inskrivning i skrivbufferten och sedan läsa de data, som skall modifieras, från minnet och lagra dem i bufferten för lästa data. När lämpliga styrsignaler sänds ut från styrkretsarria, sammanställs både lästa data och data i den utmatande multiplexorn, när de skall skrivas in i minnet. ' F IGURBESKRIV NING Uppfinningen skall nu beskrivas som ej begränsande utföringsexempel i samband med de bifogade ritningarna, i vilka Figur l visar ett blockschema över ett allmänt datorsystem innefattande ett flertal mikroprocessorer och ett minne i form av ett delsystem, vari en minneshanterare är förbun- den med en minnesmatris via minnesgränssnittskomponenter, Figur 2 visar ett blockschema över den i fig 1 visade minneshanteraren, Figur 3 visar ett blockschema över de enskilda komponenterna i minneshanteraren och dessas inbördes förbindelser, vilka tillsammans åstadkommer en automatisk rättningsfunk- tion.
BESKRIVNING AV FÖREDRAGNA UTFÖRINGSFORMER Enligt föreliggande uppfinning anvisas ett sätt och en anordning för automatisk rätt- ning av ECC-fel i ett elektroniskt minne eller datorminne efter detektering av korrigerbara fel i data, som läses från minnet, genom användning av en âterskrivningsväg inkopplad mellan utgångarna från läs- och skrivbuffertar hos en minnesstyranordning eller minneshan- terare. I förklarande syfte skall enskilda utföringsformer beskrivas detaljerat för att ge läsaren en noggrann förståelse av föreliggande uppfinning. Emellertid kommer det att fram- gå för en fackman, att uppfinningen kan användas i andra utföranden och utan alla de be- skrivna detaljerna. För övrigt kommer inte välkända konstruktionselement, anordningar, kretsar, arbetssteg e dyl att beskrivas i detalj för att undvika att i onödan bortskymma väsentliga drag hos föreliggande uppfinning. 1. ÖVERSH(T AV MINNESHANTERAREN Enligt en utföringsfonn finns en rättningsfiniktion utformad i ett multiprocessorsystem utfört» med "pipelining", som allmänt visas i fig 1 och som innefattar upp till fyra mikropro- cessorer, en systembuss och ett minne eller ett minnesdelsystem, vilket företrädesvis inne- fattar en DRAM-minnesmatris (= Dynamic Random Access Memory, dynamiskt direktât- (Išlï lllflšï Išš illNill-lå! iii 20 25 30 35 40 517 214 5 komstminne), en minneshanterare MC (= Memory Controller) för hantering av requests, dvs anrop om att begärd operation skall utföras, för minnesaccess och gränssnittskompo- nenter MIC för minnet (= Memory Interface Components) för anslutning av minneshante- raren MC till minnesmatrisen genom att multiplexera data lästa från och mellanlagra eller buffra data för skrivning till minnet, som är utfört med "interleave".
På de olika ledningarna ingående i systembussen tillhandahålls 36 adressbitar, 64 databitar och de olika styrsignaler, som behövs för att upprätthålla dataintegritet, för att utföra busstransaktioner och för att bibehålla ett sammanhängande, av flera använt minne, i närvaro av flera fickrninnne (cacheminnen). Systemet kan bära åtta fysikaliska laster vid 66,7 MHz (fler vid lägre frekvenser), så att ytterligare en I/O-bussbrygga, minneshanterare MC eller någon annan bussagent (dvs anordning som kan anslutas till bussen och som utför minnesaccesser) såsom någon vanlig datortillsatsanordning eller extrakort kan förbindas med bussen.
Med avseende på minnesmatrisen understöds tre olika slag av minneskonfigurationer: En 4:1 DRAM-konfiguration med “interleave" med en minneskapacitet av upp till 4 Gbytes, där minnesteknologi av typ 64 Mbit används, en 2:1 DRAM-konfiguration med "interleave" med minne upp till 2 Gbytes och en DRAM-konfiguration utan "interleave" med minne upp till 1 Gbytes. I denna speciella utföringsform kan upp till fyra minneshante- rare MC förbindas med systembussen, så ett fullständigt konfigurerat system skulle ha maximalt 16 Gbytes av adresserbart minne.
Det minne, som understöds av minneshanteraren, är företrädesvis anordnat i 8 rader med 1, 2 eller 4 "interleaves". Även om alla slag av RAM-anordningar kan användas som minne, innefattar de, som företrädesvis används, antingen diskreta minnesanordningar, enkelsidiga SIMMar (Single In Line Memory Module, minnesmoduler av standardtyp med alla anslutningar längs en kant) eller dubbelsidiga SIMMar. För alla tre slagen av minnes- konñguration tillhandahåller minneshanteraren 8 logiska RAS#-sigrialer (se ovan), en per rad medan tvâ kopior av RASáf-sigrialerna tillhandahålls för tillsatskretsar. För utföranden, som använder diskreta minnesanordningar eller enkelsidiga SIMMar, avger minneshantera- ren 8 logiska CAS#-signaler, en per rad, medan två kopior återigen tillhandahålls för till- satskretsar. I fallet med dubbelsidiga SIMMar finns endast 4 logiska CAS#-signaler (se ovan) (en per radpar) och inladdningen per CAS#-signal är dubblerad.
Såsom visas i figurerna 1 och 2, är minneshanteraren MC uppdelad i tvâ ASICs (= Application Specific Integrated Circuits, för den resp tillämpningen skräddarsydda integre- rade kretsar), en benämnd DC (= DRAM Controller), som bildar en DRAM-hanterings- komponent, och en annan benämnd DP (= Data Path), som bildar en datavägskomponent, varigenom adress- och dataflödena genom minneshanteraren MC åtskiljs för att öka hastig- heten och effektiviteten hos systemet, som är utfört med "pipelining". Komponenten DC för DRAM-hanteringen ansvarar för styrningen av alla minnesaccessrequests och minnesaccess- kommandon förutom adressavkodning för minnesaccesserna medan datavägskomponenten DP ansvarar för dataflödet till och från minnet. li llEši-l 'lllïlïf 20 25 30 35 40 517 214 6 Dessa komponenter förbinds funktionellt med varandra via interchipförbindelser ICIC (= InterChip InterConnect), som innefattar de kommunikationsvägar och buffertar, vilka behövs för att sända data och styrmeddelanden mellan de båda komponenterna inbördes.
Båda dessa ASIC-element DC och DP är konstruerade för förbindning direkt med system- bussen utan yttre anpassningselement och utgör tillsammans endast en last på systembussen.
Det kan observeras, att fastän minneshanteraren MC i denna speciella utföringsform före- trädesvis är uppdelad i två enskilda ASIC-komponenter för att öka effektivitet, hastighet och lönsamhet, kan den givetvis utformas som en enkel hel minneshanterarenhet eller -kap- sel och den kan vidare användas både i multiprocessorsystem och enprocessorsystem såväl som i system med och utan "pipelining".
Med hänvisning nu till figur 2 visas, att DRAM-hanteringskomponenten DC hos minneshanteraren MC funktionellt är uppdelad i tre huvudavsnitt: en bussmaskjn BEC, en köhanteringsenhet QMUC och ett minnesgränssnitt MMIC. Bussmaskinen BEC tillhanda- håller gränssnittet mot systembussen medan köhanteringsenheten QMUC förbinder bussmaskinen BEC med minnesgränssnittet MMIC. Bussmaskinen BEC innefattar en ord- nad kö för systembussrequests förutom de tillståndsmaskiner, ej visade, som behövs för att styra bussen och för att åstadkomma dataöverföringar mellan bussen och minneshanterarens MC databuffertar, ej visade. Bussmaskinen BEC ansvarar också för bufferttilldelningen i datavägskomponenten DP och styrningen av systemsidans gränssnitt SYSIDP mot den interchipförbindningsenhet ICIC, som är placerad inuti datavägskomponenten DP. Köhante- ringsenheten QMUC är det huvudsakliga gränssnittet mellan bussmaskinen BEC och min- nesgränssnittet MMIC och innefattar en kö ORQ för utåtgående requests för buffring av systembussrequests och motsvarande adresser, som mottas från bussmaskinen BEC för användning av minnesgränssnittet MMIC, när requests skall avkodas och minnesaccesser utföras.
Minnesgränssnittet MMIC tillhandahåller alla de specifika funktionerna hos minnes- hanteraren MC. De primära funktionerna för minnesgränssnittet MMIC är att styra köhan- terarens QMUC sida mot minnesgränssnittet MMIC, att styra det yttre minnet och att styra interchipgränssnittet mot datavägskomponenten DP. Denna enhet omvandlar också system- requests till både minnescykler för DRAM-minnet och cykler för interchipförbindningen.
Med avseende på gränssnittet mellan minnesgränssnittet MMIC och kön ORQ för utåtgåen- de requests hos QMUC använder minnesgränssnittet MMIC kön ORQ 1) för att tillhanda- hålla den effektiva adressen för den aktuella request till kön ORQ, 2) för att avläsa nästa request från kön ORQ och 3) att avläsa status eller tillståndet hos nästa request. I detta avseende tillhandahåller minnesgränssnittet MMIC också svarsinformation tillbaka till bussmaskinen BEC via köhanteringsenheten QMUC.
Huvudenheterna hos minnesgränssnittet MMIC innefattar företrädesvis 1) en adressav- kodningsenhet, ej visad, för att bestämma om den registrerade bussfrågan är avsedd för minneshanteraren MC och för att beräkna en effektiv adress för accesser av DRAM-min- nesmatrisen, 2) en enhet för requestadress, ej visad, för att bestämma vart i minnesmatrisen IE ~ 'lllliëll 'Åååi Ei i ïšlš i E I IIFIÉEÉ 20 25 30 35 40 517 214 7 en request skall sändas och för att upprätthålla en tabell över öppna sidor (pages) i minnes- matrisen, 3) minneshanteringskretsar MCL (= Memory Control Logic) för styrning av de andra enheterna baserat på aktuell request från köhanteringsenheten QMUC och för skapan- de av styrsignaler för minnet som kan vara ett minnesdelsystem, förbindningssignaler på minnessidan mot interchipförbindningen, minnesgränssnittskomponenternas MIC signaler och nollställnings- och felsignaler för minnet, 4) en konfigurationsregisterenhet, ej visad, som innefattar alla konfigurationsregister, logiska kretsar och tillståndsmaskiner, vilka behövs för att i förväg beräkna inre parametrar och styra avläsningen av och inskrivningen till konfigurationsområdet via interchipförbindningen ICIC och 5) en enhet, ej visad, för minnesrefresh för styrning av minnets refreshtakt.
Vad beträffar datavägen, upprätthåller minneshanterarens MC datavägskomponent DP dataflödet från systembussen till minnesmatrisen och den är åtskild från minneshanterings- gränssnitten, eftersom alla styrsignaler för bussen och minnesgränssnittet alstras av DRAM- hanteringskomponenten DC. De huvudsakliga funktionerna hos komponenten DP för data- väg är att tillhandahålla en 64-bitars dataväg från bussen till minnet, att ge ECC-understöd för data både på bussen och i minnet, att ta bort eller rätta alla korrigerbara fel hos data lagrade i minnesmatrisen och att ge understöd för dataöverföringar under en enda klock- cykel.
I likhet med DRAM-hanteringskomponenten DC är datavägskomponenten DP funk- tionsmässigt uppdelad i tre huvudavsnitt: en bussmaskin BED, en köhanteringsenhet QMUD och ett minnesgränssnitt MMID. Bussmaskinen BED tillhandahåller gränssnittet mot systemdatabussen medan köhanteringsenheten QMUD förbinder bussmaskinen BED och minnesgränssnittet MMID via flera databuffertar. Såsom visas i figur 2, irmefattar nämligen köhanteringsenheten QMUD ett antal buffertar för lästa data eller läsdatabuffertar avsedda att temporärt buffra data, som lästs från minnet, innan de placeras på systembus- sen, och en uppsättning skrivdatabuffertar för att temporärt buffra eller lagra lästa data, innan de skrivs in i minnet. Minneshanteringskretsarna MCL hos den DRAM-hanterings- komponent DC, varifrån transaktionsinstruktionerna alstras, håller reda på status för varje request. För att maximera systemets prestanda i ett system med "pipelining" innefattar varje uppsättning databuffertar företrädesvis fyra buffertar, så att totalt åtta olika minnesaccesser kan vara igång i varje ögonblick. Det oaktat kan antalet läs- och skrivdatabuffertar väljas fritt för användning i ett system antingen med eller utan "pipelining" utan att man avlägsnar sig från idén enligt föreliggande uppfinning.
Såsom också visas i figur 2, innefattar minnesgränssnittet MMID ett flertal data- och styrgränssnitt mot köhanteringsenheten QMUD, bussmaskinen BED och den yttre minnes- matrisen. De huvudsakliga funktionsenheterna hos minnesgränssnittet MMID innefattar 1) ingångs-/utgångsbuffertar MIO för minnet, vilka buffrar eller mellanlagrar de signaler, som används för att utföra access av minnesmatrisen, 2) operationsregister för datavägskompo- nenten DP, som kan programmeras via DRAM-hanteringskomponenten DC för funktions- styrning av datavägskomponenten DP, 3) en datavägsenhet DPU, som överför och omvand- 'fill lšš ' ïlllïšiïl 'flší ii i f. 'íII-flïl 20 25 30 35 40 517 214 8 lar data från buffertarna i köhanteringsenheten QMUD till de utvalda minnescellerna och vice versa, 4) interchipförbindningsenheten ICIC, som innefattar interchip- eller ICIC-buf- fertarna, systemsidans gränssnitt SYSIDP mot datavägskomponenten DP och minnessidans MEMIDP gränssnitt mot datavägskomponenten DP för buffring av data och kommandon, som mottas från minneshanteringskretsama MCL hos DRAM-hanteringskomponenten DC, och för omvandling av kommandona till styrsignaler för dataöverföring och 5) tillståndsmaskiner DPSMs för dataväg, som tillhandahåller styrning för alla andra enheter baserat på aktuellt kommando från minneshanteringskretsarna MCL via interchipförbind- ningsenheten ICIC.
Interchipförbindningsenheten ICIC är försedd med ett gränssnitt SYSIDP på systemsi- dan för hantering av alla instruktioner avseende datatrafik förknippad med bussmaskinen BED och köhanteringsenheten QMUD på datavägskomponentens sida och ett gränssnitt MEMIDP på minnessidan, som hanterar alla kommandon avseende köhanteringsenheten QMUD, datatrafiken avseende minnet och konfigurationsprogrammeringen av datavägskom- ponenten DP. Bussrequests, som riktas till minneshanteraren MC, ger som resultat, att åtminstone ett kommando skapas av minneshanteringskretsarna MCL och överförs till gränssnittsenheten SYSIDP mot systemsidan, där kommandona bearbetas och omvandlas till styrsignaler, vilka sedan styr dataflödet från bussmaskinen BED till köhanteringsenheten QMUD eller vice versa. De instruktioner, som bearbetas av gränssnittet SYSIDP mot sys- temsidan, kommer också att sändas till gränssnittet MEMIDP mot minnessidan för att sätta igång dataöverföringar till eller från minnet.
Tillståndsmaskinerria DPSMs på datavägskomponentsidan bearbetar minnesinstruktio- ner mottagna från DRAM-hanteringskomponenten DC och styr dataflödet mellan köhante- ringsenheten QMUD på datavägskomponentens sida och minnesmatrisen. De rapporterar också fel med avseende på typ till DRAM-hanteringskomponenten DC via interchipför- bindningsenheten ICIC vid slutet av varje minneskommando. Registren i datavägskompo- nenten DP innefattar bland annat ett konfigurerbart ECC-register, vilket används för att möjliggöra ECC-kontroll av både systemdata och minnesdata.
Med avseende på datavägsenheten DPU, som visas i figurerna 2 och 3, finns en läsda- tabuss och en skrivdatabuss anordnade inom datavägsenheten DPU för överföring av data från minnet till buffertarna för lästa data hos köhanteringsenheten QMUD resp från buffer- tarna med data för inskrivning hos köhanteringsenheten QMUD till minnet. Såsom figur 3 visar, innefattar datavägsenheten DPU vidare en ECC-enhet för kontroll och rättning och en enhet för skapande av ECC-kodade ord. I utåtgående riktning utmatas först ursprungliga skrivdata, nämligen ett 64 bitars DWORD i den föredragna utföringsformen, från en skriv- databuffert och matas sedan in i enheten för skapande av ECC-kodade ord, där 8 paritetsbi- tar beräknas och läggs till de ursprungliga skrivdata DWORD för att skapa ett 72 bitars kodat ord, som därefter skrivs in i minnet via ingångs-/utgångsbuffertarna MIO för minnet.
Omvänt kommer i inâtgående riktning lästa data i form av ett 72-bitars kodat ord att först buffras i ingångs-/utgångsbuffertarria MIO för minnet och sedan styras in i ECC-enhe- Išš ífllíšššï! Åšš Eí liÉí §llï Illšlíï 10 20 25 30 35 40 517 214 9 ten för kontroll och rättning för avkodning av det kodade ordet, för kontroll av om data har några fel och rättning av alla korrigerbara fel, innan de lagras inom en buffert för lästa data hos köhanteringsenheten QMUD på datavägskomponentens sida. I detta fall avkodas det kodade ordet omfattande 72 bitar till det ursprungliga ordet DWORD av 64 bitar och an- vänds vidare för beräkning av ett syndrom för det kodade ordet. Syndromet matas in i en krets för felklassifikation, ej visad, för att avgöra, huruvida något fel finns. Om det fmns ett fel, meddelas motsvarande feltillstånd till minneshanteringskretsarna MCL hos DRAM- hanteringskomponenten DC via en felbuss som antingen ett korrigerbart fel eller som ett fel som ej kan rättas. Om det är korrigerbart, matas syndromet för det kodade ordet in i en felkorrigeringskrets, ej visad, för att åstadkomma utmatning av ett rättat ursprungligt ord DWORD till databuffertarna för lästa data hos köhanteringsenheten QMUD.
Fastän alla slag av ECC-koder teoretiskt kan användas med föreliggande uppfinning, innefattar den ECC-kod, som företrädesvis används vid denna utföringsforrn, en (72,64)- SEC-DED-S4ED roterbar felkontrollkod, vilken detaljerat beskrivs i den samtidiga US patentansökningen US med serienr 08/ 176,351, inlämnad 30 december 1993 och överlåten till Intel Corporation of Santa Clara. H-matrisen för koden är konstruerad för understöd av paritetskontroll över en 72-bitars dataväg. Alla kolumner hos H-matrisen är linjärt oberoen- de och har udda viktning, där alla kolumner med en bredd av fyra bitar är anordnade för att tillåta detektering av fel av upp till fyra bitar i en byte. En- och tvåbitars fel klaras av SEC-DED-egenskapen medan trippelfel skapar ett udda syndrom med vikt 5, som inte är lika med någon av kolumnerna i H med vikt 5. Dessutom ger fyrfaldiga fel ett syndrom som inte är lika med noll och har jämn viktning. Således kan denna speciella ECC-kod (1) detektera och rätta enkelfel, eftersom varje kolumn är unik, (2) detektera dubbelfel, efter- som alla kolumner har udda viktning, (3) detektera trebitarsfel belägna inom en bytehälft, eftersom sådana fel kommer att ge ett syndrom, som för en bytehälft har vikten 2 och för den andra hälften vikten 3, och (4) detektera fyrabitarsfel inom en bytehälft, eftersom såda- na fel kommer att ge ett syndrom, som inte kan ge summan noll. 2. AUTOMATISK RÄTTNINGSMEKANISM Vid den utföringsform av minneshanteraren MC, som beskrivits ovan, åstadkoms automatisk rättning i minnet vid eller efter läsningar i minnet med hjälp av en återskriv- ningsväg för rättade data, som är inkopplad mellan utgångarna från läs- och skrivbuffertar- na hos köhanteringsenheten QMUD inom datavägskomponenten och som styrs av minnes- hanteringskretsarna MCL via tillståndsmaskinerna DPSMs. När ECC-enheten för kontroll och rättning, se figur 3, har detekterat ett korrigerbart fel i ett kodat ord, som lästs från minnet, signalerar den detta förhållande till minneshanteringskretsarna MCL via felbussen, rättar felaktiga data och skickar dem sedan till nästa tilldelade läsbuffert i köhanteringsenhe- ten QMUD. Under styrning av minnesgränssnittet MMIC placerar bussmaskinen BED hos datavägskomponenten slutligen data från läsbufferten på systembussen tillgängliga för an- vändning av mikroprocessorerna eller andra bussagenter. En kopia av dessa data bibehålles emellertid i den tilldelade läsbufferten, tills motsvarande request i kön av requests hos g W a: ll lill: 10 15 20 25 30 35 40 517 214 10 DRAM-hanteringskomponenten DC tas bort.
Minneshanteringskretsarna MCL häller reda på bufferttilldelningen och i synnerhet den buffert, vari de nu rättade data lagras, och förser motsvarande bussrequest i kön av requests med en felmarkering. Därefter sänder minneshanteringskretsama MCL ut en rätt- ningsinstruktion för minnet till tillståndsmaskinema DPSMs på en buss MEMCMD (via interchipfórbindningsenheten ICIC) för att meddela att rättade data i läsbufferten skall skrivas in tillbaka i den minnescell, varifrån de kom. På grund av minneshanterarens MC struktur med "pipelining" behöver inte rättningsinstruktionen skickas ut omedelbart, efter- som minneshanteringskretsarna MCL kan välja att utföra eller slutföra transaktioner med högre prioritet med användning av de andra databuffertama hos köhanteringsenheten QMUD. Om endast en buffert för lästa data fimis anordnad, måste emellertid rättningen i minnet utföras, innan rättade data tas bort från bufferten eller skrivs över genom påföljande läsningar i minnet.
När tillständsmaskinenhetema DPMS har mottagit den rättningsinstruktion, som sär- skiljer den speciella buffert, där rättade data lagras jämte längden på data, avkodas rätt- ningsinstruktionen och en tillståndsmaskin SPSM för rättningsbearbetning väljs för att sätta igång rättningsbearbetningen. Under rättningsförfarandet sänder rättningstillståndsmaskinen SPSM först ut en valsignal för läskällor till en multiplexor CTL MUX för styrning av läsdatabuffertar för att välja den styrkälla, som skall utsända instruktioner för att få access till den särskilda bufferten och sätta igång en läsoperation därifrån. Efter att ha mottagit valsignalen för läskälla ändras utgången från multiplexorn CTL MUX från en första styr- ingång för "bussagenter" (via systembussen) till en andra styringång från mirmeshanterings- kretsama MCL (via bussen MEMCMD), så att minneshanteringskretsarna MCL nu styr adresseringen och utsändning av styrpulser för buffertama för lästa data.
Tillståndsmaskinen SPSM skickar också ut en buffertvalsignal till en utmatande multi- plexor OUT MUX, till vilken inmatas både data för inskrivning och läsning från dessas respektive buffertar och vilken har sin utgång förbunden med minnet via ingângs-/utgångs- bufferterna MIO för minnet och minnesgränssnittsenheterna MIC. När detta har skett, avger tillståndsmaskinen SPSM en signal för att möjliggöra läsning till multiplexorn CTL MUX för val av läsdatabuffert för att läsa av data från läsdatabufferten. Dessa data går genom denna multiplexor OUT MUX och in i ECC-enheten för skapande av kodade ord, där ett kodat ord framställs och lagras i ingângs-/utgångsbuffertema MIO för minnet hos gränssnittet MMID. Minneshanteringskretsarna MCL sänder sedan ut den rätta adressen och requestattributsignaler till både minnesgränssnittsenheterna MIC och minnesmatrisen via en minnesstyrbuss, så att rättade data sedan skrivs in på den plats i minnet, som specifi- cerades av den ursprungliga läsrequest, vilken fortfarande finns kvar i requestkön hos DRAM-hangeringskomponenten DC. När rättade data har skrivits tillbaka till samma min- nesplats, tas den markerade request i requestkön hos DRAM-hanteringskomponenten DC bort och motsvarande buffert för lästa data frigörs för ny användning.
I en annan utföringsforrn används ovan beskriven rättningsmekanism för att utföra 15 20 25 30 517 214 11 periodisk, dvs regelbundet återkommande, rättning av minnesmatrisen via den i hårdvara utformade återskrivningsvägen. Eftersom alla felaktiga minnesceller automatiskt blir rättade genom rättningsförfarandet, som alltid utförs av felaktiga lästa data, kan hela minnet enkelt rättas genom att varje cell i minnet läses i följd. Eftersom vidare minneshanteringskretsarna- MCL hos minneshanteraren MC alstrar de styrsignaler, som är lämpliga för att styra åter- skrivningen av rättade data efter detektering av korrigerbara fel, är det enda mjukvarustöd, som krävs från mikroprocessom, det stöd, som behövs för att ställa in konfigurationsregist- ren för denna speciella operation.
Enligt en andra alternativ utföringsform kan samma mekanism användas för att skapa ett nytt ECC-kodat ord, när en läs-modiflera-skriva-operation utförs. Detta åstadkoms ge- nom att först lagra delar av data för inskrivning i skrivbufferten och sedan från minnet läsa data, som skall modifieras och lagra dem i bufferten för lästa data. Genom att anbringa lämpliga signaler för buffertval och signaler för utmatning av bytes till den utrnatande multiplexom kommer tillståndsmaskinen för datavägen att sammanställa både lästa data och data för inskrivning via den utmatande multiplexom samtidigt som de skrivs in i minnet.
Detta utgör inte endast ett enkelt och effektivt medel för åstadkommande av felkorrektion med ECC-koder, för en läs-ändra-skriv-operation utan garanterar också, att ett dubbelbits- fel, som inte kan rättas, inte kommer att genereras under bearbetningen, varigenom syste- mets pålitlighet ökas.
Således kan föreliggande uppfmning genom användning av en rättande mekanism utformad i hårdvara innefattande en återskrivningsväg till minnet för rättade data övervinna nackdelarna hos normala mjukvarubaserade råttande mekanismer. Genom användning av redan befintliga ECC-kretsar för kontroll och rättning och genom att dra fördel av deras arbetssätt kan uppfmningen förenkla tidigare rättande ECC-processer för att öka systemets totala prestanda och tillförlitlighet och samtidigt minska den minnesbandbredd, som krävs för de minnesrättande operationerna.
Man inser, att olika modifieringar och förändringar kan göras av fackmännen utan att man avlägsnar sig från föreliggande uppñnnings idé och omfång. Härav framgår, att upp- finningen inte är begränsad av de ovan beskrivna åskådliggörande detaljerna utan i stället definieras av de bifogade patentkraven. lšïf :lllílïflišll 'ÉTÉE I ilïlï?
Claims (19)
1. Förfarande för läsning av data innefattande stegen: - att läsa data från en adress i ett minne, vilken anges i minnesläsningsrequest, som är placerad i en requestkö i en mirmeshanterare, och - att därefter detektera huruvida lästa data har ett korrigerbart fel, k ä n n e t e c k n a t av de ytterligare därefter i följd utförda stegen: - att markera minnesläsningsrequesten för att ange, att de lästa data har ett korrigerbart fel, - att rätta det korrigerbara felet i de lästa data för att åstadkomma rättade data, och - att skriva de rättade data tillbaka till minnet vid den adress, som anges i den markerade minnesläsningsrequesten, innan den markerade minnesläsningsrequesten tas bort från re- questkön.
2. Förfarande enligt krav 1, k ä n n e t e c k n a t av att efter steget med att rätta det korrigerbara felet utförs ett ytterligare steg med att skriva de rättade data till en systembuss _ för att fullgöra minnesläsningsrequesten.
3. Förfarande enligt krav 1, k ä n n e t e c k n a t av det ytterligare steget att från styrlogik i minneshanteraren utsända ett minnesrättningskommando och att steget med att skriva de rättade data tillbaka till minnet utförs som svar minnesrättningskommandot.
4. Förfarande enligt krav 1, k ä n n e t e c k n a t av det ytterligare steget att lagra de rättade data i en läsdatabuffert i minneshanteraren och att steget med att skriva de rätta- de data tillbaka till minnet innefattar att upprätta en återskrivningsväg från läsdatabufferten till minnet.
5. Förfarande enligt krav 4, k ä n n e t e c k n a t av det ytterligare steget att från styrlogik i minneshanteraren utsända ett mirmesrättningskommando som svar på detektering av att lästa data har ett korrigerbart fel och att återskrivningsvägen från läsdatabufferten till minnet upprättas som svar på minnesrättningskommandot.
6. Förfarande enligt krav 5, k ä n n e t e c k n a t av steget att lagra de rättade data i en läsdatabuffert i minneshanteraren innefattar att lagra de rättade data i en av ett flertal poster i läsdatabufferten och att minnesrättningskommandot anger den av posterna i läsda- tabufferten, som innehåller de rättade data.
7. Förfarande enligt krav 1, k ä n n e t e c k n a t av att steget att skriva tillbaka de rättade data utförs efter minst en annan minnesaccess, som har högre prioritet.
8. Minneshanterare med automatisk rättning av fel hos data lagrade i ett dataminne, kännetecknad av - en requestkö för att lagra minnesaccessrequests, - ett minnesgränssnitt för att läsa data från en adress i ett minne, vilken anges av en min- nesläsrequest, som är placerad i requestkön, - en logisk enhet för felkontroll och felrättning ansluten att motta data, som läses från adressen i minnet, varvid den logiska enheten är anordnad att detektera, huruvida lästa data har ett korrigerbart fel, och att utsända en felsignal och att rätta det korrigerbara felet, om lästa data har ett korrigerbart fel, och Elli, lï 'Wim “si ' Ilïïfi 20 25 30 35 40 517 214 13 - styrlogik ansluten för att motta felsignalen från den logiska enheten och anordnad att - - markera minnesläsrequesten i requestkön som svar på felsignalen för att ange att lästa data har ett korrigerbart fel, och - - skriva de rättade data tillbaka till adressen i minnet, vilken anges av den markerade minnesläsrequesten, innan den markerade minnesläsningsrequesten tas bort från requestkön.
9. Minneshanterare enligt krav 8, k ä n n e t e c k n a d av en bussmaskin ansluten att motta de rättade data och att inge de rättade data till en systembuss för att fullgöra minnesläsningsrequesten.
10. Minneshanterare enligt krav 8, k ä n n e t e c k n a d av att styrlogiken är anord- nad att utsända ett minnesrättningskommando och att upprätta en återskrivningsväg för att skriva de rättade data tillbaka till adressen, vilken anges av den markerade minnesläsreques- ten.
11. ll. Minneshanterare enligt krav 10, k ä n n e t e c k n a d av en läsdatabuffert an- ordnad att motta de rättade data från den logiska enheten, varvid återskrivningsvägen upp- rättas mellan läsdatabufferten och minnet.
12. Minneshanterare enligt krav ll, k ä n n e t e c k n a d av att läsdatabufferten innefattar ett flertal poster, varvid minnesrättningskommandot, som utsänds av styrlogiken anger den av posterna i läsdatabufferten, som innehåller de rättade data.
13. Minneshanterare enligt krav 8, k ä n n e t e c k n a d av att styrlogiken är anord- nad att skriva tillbaka de rättade data efter minst en annan minnesaccess, som har högre prioritet.
14. Datorsystem innefattande: - en systembuss, - en eller flera processorer kopplade till systembussen, - ett minne, och - en minneshanterare ansluten mellan systembussen och minnet, k ä n n e t e c k n a d av att minneshanteraren innefattar: - en requestkö för att lagra minnesaccessrequests, som mottas via systembussen, - ett minnesgränssnitt för att läsa data från en adress i ett minne, vilken anges av en min- nesläsrequest, som är placerad i requestkön, - en logisk enhet för felkontroll och felrättning ansluten att motta data, som läses från adressen i minnet, varvid den logiska enheten är anordnad att detektera, huruvida lästa data har ett korrigerbart fel, och att utsända en felsignal och att rätta det korrigerbara felet, om lästa data har ett korrigerbart fel, och - styrlogik ansluten för att motta felsignalen från den logiska enheten och anordnad att - - markera minnesläsrequesten i requestkön som svar på felsignalen för att ange att lästa data har ett korrigerbart fel, och - - skriva de rättade data tillbaka till adressen i minnet, vilken anges av den markerade minnesläsrequesten, innan den markerade minnesläsningsrequesten tas bort från requestkön.
15. Datorsystem enligt krav 14, k ä n n e t e c k n a d av att minneshanteraren inne- llllišëïllišiïl Ei ' 'Elf 10 15 5171214 14 fattar en bussmaskin ansluten att motta de rättade data och att inge de rättade data till sys- tembussen för att fullgöra minnesläsningsrequesten.
16. Datorsystem enligt krav 14, k ä n n e t e c k n a d av att styrlogiken i min- neshanteraren är anordnad att utsända ett minnesrättningskommando och att upprätta en återskrivningsväg för att skriva de rättade data tillbaka till adressen, vilken anges av den markerade minnesläsrequesten.
17. Datorsystem enligt krav 16, k ä n n e t e c k n a d av att minneshanteraren inne- fattar en läsdatabuffert anordnad att motta de rättade data från den logiska enheten, varvid áterskrivningsvägen upprättas mellan läsdatabufferten och minnet.
18. Datorsystem enligt krav 17, k ä n n e t e c k n a d av att läsdatabufferten inne- fattar ett flertal poster, varvid minnesrättningskommandot, som utsänds av styrlogiken anger den av posterna i läsdatabufferten, som innehåller de rättade data.
19. Datorsystem enligt krav 14, k ä n n e t e c k n a d av att styrlogiken är anordnad att skriva tillbaka de rättade data efter minst en annan minnesaccess, som har högre priori- tet.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US24829894A | 1994-05-24 | 1994-05-24 |
Publications (3)
Publication Number | Publication Date |
---|---|
SE9501925D0 SE9501925D0 (sv) | 1995-05-23 |
SE9501925L SE9501925L (sv) | 1995-11-25 |
SE517214C2 true SE517214C2 (sv) | 2002-05-07 |
Family
ID=22938511
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
SE9501925A SE517214C2 (sv) | 1994-05-24 | 1995-05-23 | Metod och anordning för automatisk rättning av ECC-fel i ett minne med hjälp av hårdvara |
Country Status (9)
Country | Link |
---|---|
US (1) | US6101614A (sv) |
EP (1) | EP0775343B1 (sv) |
KR (1) | KR100379812B1 (sv) |
CN (1) | CN1146790C (sv) |
AU (1) | AU2647395A (sv) |
DE (1) | DE69522457T2 (sv) |
GB (1) | GB2289779B (sv) |
SE (1) | SE517214C2 (sv) |
WO (1) | WO1995032470A1 (sv) |
Families Citing this family (187)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5657332A (en) | 1992-05-20 | 1997-08-12 | Sandisk Corporation | Soft errors handling in EEPROM devices |
KR100462585B1 (ko) * | 1997-03-31 | 2005-04-06 | 삼성전자주식회사 | 다운 로드 정보 처리방법 |
KR100287018B1 (ko) * | 1998-08-07 | 2001-04-16 | 윤종용 | 에러 정정 회로를 구비한 반도체 메모리 장치 |
JP2000295253A (ja) * | 1999-04-01 | 2000-10-20 | Nec Corp | データ通信システムおよびデータ通信方法 |
US6772383B1 (en) * | 1999-05-27 | 2004-08-03 | Intel Corporation | Combined tag and data ECC for enhanced soft error recovery from cache tag errors |
US6560725B1 (en) * | 1999-06-18 | 2003-05-06 | Madrone Solutions, Inc. | Method for apparatus for tracking errors in a memory system |
US6596483B1 (en) * | 1999-11-12 | 2003-07-22 | Motorola, Inc. | System and method for detecting molecules using an active pixel sensor |
US6845472B2 (en) * | 2000-01-25 | 2005-01-18 | Hewlett-Packard Development Company, L.P. | Memory sub-system error cleansing |
US6832340B2 (en) * | 2000-01-26 | 2004-12-14 | Hewlett-Packard Development Company, L.P. | Real-time hardware memory scrubbing |
US6779128B1 (en) | 2000-02-18 | 2004-08-17 | Invensys Systems, Inc. | Fault-tolerant data transfer |
US6701480B1 (en) * | 2000-03-08 | 2004-03-02 | Rockwell Automation Technologies, Inc. | System and method for providing error check and correction in memory systems |
US6564306B2 (en) * | 2000-04-25 | 2003-05-13 | Hewlett-Packard Development Company, L.P. | Apparatus and method for performing speculative cache directory tag updates |
US6553536B1 (en) * | 2000-07-07 | 2003-04-22 | International Business Machines Corporation | Soft error correction algebraic decoder |
US6622268B2 (en) * | 2000-11-29 | 2003-09-16 | Intel Corp | Method and apparatus for propagating error status over an ECC protected channel |
JP4373615B2 (ja) * | 2001-01-25 | 2009-11-25 | 富士通マイクロエレクトロニクス株式会社 | 初期不良ブロックのマーキング方法 |
US6681340B2 (en) | 2001-02-23 | 2004-01-20 | International Business Machines Corporation | Efficient implementation of error correction code scheme |
US6449203B1 (en) * | 2001-03-08 | 2002-09-10 | Micron Technology, Inc. | Refresh controller and address remapping circuit and method for dual mode full/reduced density DRAMs |
US6792567B2 (en) | 2001-04-30 | 2004-09-14 | Stmicroelectronics, Inc. | System and method for correcting soft errors in random access memory devices |
US6571317B2 (en) * | 2001-05-01 | 2003-05-27 | Broadcom Corporation | Replacement data error detector |
US6859904B2 (en) * | 2001-05-11 | 2005-02-22 | Sun Microsystems, Inc. | Apparatus and method to facilitate self-correcting memory |
US6976204B1 (en) * | 2001-06-15 | 2005-12-13 | Advanced Micro Devices, Inc. | Circuit and method for correcting erroneous data in memory for pipelined reads |
JP4059472B2 (ja) * | 2001-08-09 | 2008-03-12 | 株式会社ルネサステクノロジ | メモリカード及びメモリコントローラ |
US6851070B1 (en) * | 2001-08-13 | 2005-02-01 | Network Appliance, Inc. | System and method for managing time-limited long-running operations in a data storage system |
US20030046630A1 (en) * | 2001-09-05 | 2003-03-06 | Mark Hilbert | Memory using error-correcting codes to correct stored data in background |
EP1438662A2 (en) * | 2001-10-11 | 2004-07-21 | Altera Corporation | Error detection on programmable logic resources |
US6751159B2 (en) * | 2001-10-26 | 2004-06-15 | Micron Technology, Inc. | Memory device operable in either a high-power, full-page size mode or a low-power, reduced-page size mode |
US7051264B2 (en) * | 2001-11-14 | 2006-05-23 | Monolithic System Technology, Inc. | Error correcting memory and method of operating same |
US6848063B2 (en) | 2001-11-20 | 2005-01-25 | Hewlett-Packard Development Company, L.P. | System and method for scrubbing errors in very large memories |
US6934903B1 (en) | 2001-12-17 | 2005-08-23 | Advanced Micro Devices, Inc. | Using microcode to correct ECC errors in a processor |
US6718444B1 (en) * | 2001-12-20 | 2004-04-06 | Advanced Micro Devices, Inc. | Read-modify-write for partial writes in a memory controller |
US20030163769A1 (en) * | 2002-02-27 | 2003-08-28 | Sun Microsystems, Inc. | Memory module including an error detection mechanism for address and control signals |
US6941493B2 (en) * | 2002-02-27 | 2005-09-06 | Sun Microsystems, Inc. | Memory subsystem including an error detection mechanism for address and control signals |
US6838331B2 (en) * | 2002-04-09 | 2005-01-04 | Micron Technology, Inc. | Method and system for dynamically operating memory in a power-saving error correction mode |
US6751143B2 (en) * | 2002-04-11 | 2004-06-15 | Micron Technology, Inc. | Method and system for low power refresh of dynamic random access memories |
US7171610B2 (en) * | 2002-06-12 | 2007-01-30 | International Business Machines Corporation | Method, system, and article of manufacture for preventing data loss |
US7043679B1 (en) | 2002-06-27 | 2006-05-09 | Advanced Micro Devices, Inc. | Piggybacking of ECC corrections behind loads |
US6976194B2 (en) * | 2002-06-28 | 2005-12-13 | Sun Microsystems, Inc. | Memory/Transmission medium failure handling controller and method |
US6973613B2 (en) * | 2002-06-28 | 2005-12-06 | Sun Microsystems, Inc. | Error detection/correction code which detects and corrects component failure and which provides single bit error correction subsequent to component failure |
US6996766B2 (en) * | 2002-06-28 | 2006-02-07 | Sun Microsystems, Inc. | Error detection/correction code which detects and corrects a first failing component and optionally a second failing component |
KR100465421B1 (ko) * | 2002-12-09 | 2005-01-13 | 한국항공우주연구원 | 하드웨어 메모리 스크러버 |
US6996686B2 (en) * | 2002-12-23 | 2006-02-07 | Sun Microsystems, Inc. | Memory subsystem including memory modules having multiple banks |
DE10305008A1 (de) * | 2003-02-07 | 2004-08-19 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Überwachung einer elektronischen Steuerung |
US7779285B2 (en) * | 2003-02-18 | 2010-08-17 | Oracle America, Inc. | Memory system including independent isolated power for each memory module |
US7496822B2 (en) * | 2003-05-15 | 2009-02-24 | Texas Instruments Incorporated | Apparatus and method for responding to data retention loss in a non-volatile memory unit using error checking and correction techniques |
CN100346296C (zh) * | 2003-07-16 | 2007-10-31 | 联想(北京)有限公司 | 一种避免误用非ecc内存的设计方法 |
US7058782B2 (en) * | 2003-07-31 | 2006-06-06 | International Business Machines Corporation | Method and apparatus for coordinating dynamic memory deallocation with a redundant bit line steering mechanism |
US7530008B2 (en) * | 2003-08-08 | 2009-05-05 | Sun Microsystems, Inc. | Scalable-chip-correct ECC scheme |
US7012835B2 (en) * | 2003-10-03 | 2006-03-14 | Sandisk Corporation | Flash memory data correction and scrub techniques |
US7188296B1 (en) | 2003-10-30 | 2007-03-06 | Sun Microsystems, Inc. | ECC for component failures using Galois fields |
FR2864321B1 (fr) | 2003-12-23 | 2007-01-19 | St Microelectronics Sa | Memoire dynamique a acces aleatoire ou dram comportant au moins deux registres tampons et procede de commande d'une telle memoire |
US7328377B1 (en) | 2004-01-27 | 2008-02-05 | Altera Corporation | Error correction for programmable logic integrated circuits |
DE102004005616A1 (de) * | 2004-02-04 | 2005-09-15 | Infineon Technologies Ag | Speichereinrichtung |
US7278067B1 (en) * | 2004-04-30 | 2007-10-02 | Network Appliance, Inc. | Method and an apparatus for aggressively detecting media errors on storage devices with negligible performance impact |
US7099221B2 (en) | 2004-05-06 | 2006-08-29 | Micron Technology, Inc. | Memory controller method and system compensating for memory cell data losses |
US20060010339A1 (en) * | 2004-06-24 | 2006-01-12 | Klein Dean A | Memory system and method having selective ECC during low power refresh |
US7340668B2 (en) * | 2004-06-25 | 2008-03-04 | Micron Technology, Inc. | Low power cost-effective ECC memory system and method |
US7116602B2 (en) | 2004-07-15 | 2006-10-03 | Micron Technology, Inc. | Method and system for controlling refresh to avoid memory cell data losses |
US6965537B1 (en) * | 2004-08-31 | 2005-11-15 | Micron Technology, Inc. | Memory system and method using ECC to achieve low power refresh |
US7346804B2 (en) * | 2004-09-23 | 2008-03-18 | International Business Machines Corporation | Hard disk drive data scrub methodology |
US7346806B2 (en) * | 2004-09-23 | 2008-03-18 | International Business Machines Corporation | Hard disk drive background scrub methodology |
US7272692B2 (en) * | 2004-11-12 | 2007-09-18 | International Business Machines Corporation | Arbitration scheme for memory command selectors |
US7363442B2 (en) * | 2004-11-12 | 2008-04-22 | International Business Machines Corporation | Separate handling of read and write of read-modify-write |
US7392456B2 (en) | 2004-11-23 | 2008-06-24 | Mosys, Inc. | Predictive error correction code generation facilitating high-speed byte-write in a semiconductor memory |
DE102004059392B4 (de) * | 2004-12-09 | 2015-09-10 | Infineon Technologies Ag | Verfahren zur Neubelegung eines Befehlsspeichers, Subsystem zur Durchführung eines derartigen Verfahrens, sowie Mikrokontroller |
FR2879337A1 (fr) | 2004-12-15 | 2006-06-16 | St Microelectronics Sa | Circuit memoire, tel que dram, comportant un mecanisme correcteur d'erreur |
US7386655B2 (en) | 2004-12-16 | 2008-06-10 | Sandisk Corporation | Non-volatile memory and method with improved indexing for scratch pad and update blocks |
US7366826B2 (en) | 2004-12-16 | 2008-04-29 | Sandisk Corporation | Non-volatile memory and method with multi-stream update tracking |
US7412560B2 (en) | 2004-12-16 | 2008-08-12 | Sandisk Corporation | Non-volatile memory and method with multi-stream updating |
US7496823B2 (en) * | 2005-03-16 | 2009-02-24 | Hewlett-Packard Development Company, L.P. | Hardware based memory scrubbing |
JP4734003B2 (ja) | 2005-03-17 | 2011-07-27 | 富士通株式会社 | ソフトエラー訂正方法、メモリ制御装置及びメモリシステム |
JP4723265B2 (ja) * | 2005-03-17 | 2011-07-13 | 富士通株式会社 | エラー検出訂正装置の制御方法、エラー検出訂正装置、情報処理システム、エラー検出訂正装置の制御プログラム、データ処理装置 |
US7797610B1 (en) * | 2005-07-19 | 2010-09-14 | Xilinx, Inc. | Method and apparatus for virtual quad-port random access memory |
US20070061669A1 (en) * | 2005-08-30 | 2007-03-15 | Major Karl L | Method, device and system for detecting error correction defects |
US7650557B2 (en) * | 2005-09-19 | 2010-01-19 | Network Appliance, Inc. | Memory scrubbing of expanded memory |
US7447948B2 (en) * | 2005-11-21 | 2008-11-04 | Intel Corporation | ECC coding for high speed implementation |
US20070168754A1 (en) * | 2005-12-19 | 2007-07-19 | Xiv Ltd. | Method and apparatus for ensuring writing integrity in mass storage systems |
CN103280239B (zh) | 2006-05-12 | 2016-04-06 | 苹果公司 | 存储设备中的失真估计和消除 |
US8239735B2 (en) | 2006-05-12 | 2012-08-07 | Apple Inc. | Memory Device with adaptive capacity |
KR101202537B1 (ko) | 2006-05-12 | 2012-11-19 | 애플 인크. | 메모리 디바이스를 위한 결합된 왜곡 추정 및 에러 보정 코딩 |
WO2007132452A2 (en) | 2006-05-12 | 2007-11-22 | Anobit Technologies | Reducing programming error in memory devices |
WO2008026203A2 (en) | 2006-08-27 | 2008-03-06 | Anobit Technologies | Estimation of non-linear distortion in memory devices |
US7716538B2 (en) | 2006-09-27 | 2010-05-11 | Sandisk Corporation | Memory with cell population distribution assisted read margining |
US7886204B2 (en) | 2006-09-27 | 2011-02-08 | Sandisk Corporation | Methods of cell population distribution assisted read margining |
US7894289B2 (en) | 2006-10-11 | 2011-02-22 | Micron Technology, Inc. | Memory system and method using partial ECC to achieve low power refresh and fast access to data |
US7900120B2 (en) | 2006-10-18 | 2011-03-01 | Micron Technology, Inc. | Memory system and method using ECC with flag bit to identify modified data |
WO2008053473A2 (en) | 2006-10-30 | 2008-05-08 | Anobit Technologies Ltd. | Memory cell readout using successive approximation |
US7975192B2 (en) | 2006-10-30 | 2011-07-05 | Anobit Technologies Ltd. | Reading memory cells using multiple thresholds |
US7924648B2 (en) | 2006-11-28 | 2011-04-12 | Anobit Technologies Ltd. | Memory power and performance management |
US8151163B2 (en) | 2006-12-03 | 2012-04-03 | Anobit Technologies Ltd. | Automatic defect management in memory devices |
US7900102B2 (en) | 2006-12-17 | 2011-03-01 | Anobit Technologies Ltd. | High-speed programming of memory devices |
US7593263B2 (en) | 2006-12-17 | 2009-09-22 | Anobit Technologies Ltd. | Memory device with reduced reading latency |
US20080168331A1 (en) * | 2007-01-05 | 2008-07-10 | Thomas Vogelsang | Memory including error correction code circuit |
US8151166B2 (en) | 2007-01-24 | 2012-04-03 | Anobit Technologies Ltd. | Reduction of back pattern dependency effects in memory devices |
US7751240B2 (en) | 2007-01-24 | 2010-07-06 | Anobit Technologies Ltd. | Memory device with negative thresholds |
US7945840B2 (en) * | 2007-02-12 | 2011-05-17 | Micron Technology, Inc. | Memory array error correction apparatus, systems, and methods |
WO2008111058A2 (en) | 2007-03-12 | 2008-09-18 | Anobit Technologies Ltd. | Adaptive estimation of memory cell read thresholds |
KR100882484B1 (ko) * | 2007-04-10 | 2009-02-09 | 삼성전자주식회사 | 에러 검출 기능을 가지는 반도체 메모리 장치, 이를 구비한메모리 시스템 및 반도체 메모리 장치의 데이터 출력 방법 |
US8001320B2 (en) | 2007-04-22 | 2011-08-16 | Anobit Technologies Ltd. | Command interface for memory devices |
WO2008139441A2 (en) | 2007-05-12 | 2008-11-20 | Anobit Technologies Ltd. | Memory device with internal signal processing unit |
US8234545B2 (en) | 2007-05-12 | 2012-07-31 | Apple Inc. | Data storage with incremental redundancy |
US8055975B2 (en) | 2007-06-05 | 2011-11-08 | Apple Inc. | Combined single error correction/device kill detection code |
US7925936B1 (en) | 2007-07-13 | 2011-04-12 | Anobit Technologies Ltd. | Memory device with non-uniform programming levels |
US8259497B2 (en) | 2007-08-06 | 2012-09-04 | Apple Inc. | Programming schemes for multi-level analog memory cells |
US8174905B2 (en) | 2007-09-19 | 2012-05-08 | Anobit Technologies Ltd. | Programming orders for reducing distortion in arrays of multi-level analog memory cells |
US20090083495A1 (en) * | 2007-09-26 | 2009-03-26 | Khellah Muhammad M | Memory circuit with ecc based writeback |
US7773413B2 (en) | 2007-10-08 | 2010-08-10 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells in the presence of temperature variations |
US8527819B2 (en) | 2007-10-19 | 2013-09-03 | Apple Inc. | Data storage in analog memory cell arrays having erase failures |
US8000141B1 (en) | 2007-10-19 | 2011-08-16 | Anobit Technologies Ltd. | Compensation for voltage drifts in analog memory cells |
US8068360B2 (en) | 2007-10-19 | 2011-11-29 | Anobit Technologies Ltd. | Reading analog memory cells using built-in multi-threshold commands |
US20090106513A1 (en) * | 2007-10-22 | 2009-04-23 | Chuang Cheng | Method for copying data in non-volatile memory system |
KR101509836B1 (ko) | 2007-11-13 | 2015-04-06 | 애플 인크. | 멀티 유닛 메모리 디바이스에서의 메모리 유닛의 최적화된 선택 |
US8225181B2 (en) | 2007-11-30 | 2012-07-17 | Apple Inc. | Efficient re-read operations from memory devices |
US8209588B2 (en) | 2007-12-12 | 2012-06-26 | Anobit Technologies Ltd. | Efficient interference cancellation in analog memory cell arrays |
US8456905B2 (en) | 2007-12-16 | 2013-06-04 | Apple Inc. | Efficient data storage in multi-plane memory devices |
US8085586B2 (en) | 2007-12-27 | 2011-12-27 | Anobit Technologies Ltd. | Wear level estimation in analog memory cells |
US8156398B2 (en) | 2008-02-05 | 2012-04-10 | Anobit Technologies Ltd. | Parameter estimation based on error correction code parity check equations |
US7924587B2 (en) | 2008-02-21 | 2011-04-12 | Anobit Technologies Ltd. | Programming of analog memory cells using a single programming pulse per state transition |
US7864573B2 (en) | 2008-02-24 | 2011-01-04 | Anobit Technologies Ltd. | Programming analog memory cells for reduced variance after retention |
US8230300B2 (en) | 2008-03-07 | 2012-07-24 | Apple Inc. | Efficient readout from analog memory cells using data compression |
US8059457B2 (en) | 2008-03-18 | 2011-11-15 | Anobit Technologies Ltd. | Memory device with multiple-accuracy read commands |
US8400858B2 (en) | 2008-03-18 | 2013-03-19 | Apple Inc. | Memory device with reduced sense time readout |
US7995388B1 (en) | 2008-08-05 | 2011-08-09 | Anobit Technologies Ltd. | Data storage using modified voltages |
US7924613B1 (en) | 2008-08-05 | 2011-04-12 | Anobit Technologies Ltd. | Data storage in analog memory cells with protection against programming interruption |
US8169825B1 (en) | 2008-09-02 | 2012-05-01 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells subjected to long retention periods |
US8949684B1 (en) | 2008-09-02 | 2015-02-03 | Apple Inc. | Segmented data storage |
US8000135B1 (en) | 2008-09-14 | 2011-08-16 | Anobit Technologies Ltd. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US8482978B1 (en) | 2008-09-14 | 2013-07-09 | Apple Inc. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US8239734B1 (en) | 2008-10-15 | 2012-08-07 | Apple Inc. | Efficient data storage in storage device arrays |
US8261159B1 (en) | 2008-10-30 | 2012-09-04 | Apple, Inc. | Data scrambling schemes for memory devices |
US8208304B2 (en) | 2008-11-16 | 2012-06-26 | Anobit Technologies Ltd. | Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N |
US8174857B1 (en) | 2008-12-31 | 2012-05-08 | Anobit Technologies Ltd. | Efficient readout schemes for analog memory cell devices using multiple read threshold sets |
US8248831B2 (en) | 2008-12-31 | 2012-08-21 | Apple Inc. | Rejuvenation of analog memory cells |
US8924661B1 (en) | 2009-01-18 | 2014-12-30 | Apple Inc. | Memory system including a controller and processors associated with memory devices |
US8228701B2 (en) | 2009-03-01 | 2012-07-24 | Apple Inc. | Selective activation of programming schemes in analog memory cell arrays |
US8259506B1 (en) | 2009-03-25 | 2012-09-04 | Apple Inc. | Database of memory read thresholds |
US8832354B2 (en) | 2009-03-25 | 2014-09-09 | Apple Inc. | Use of host system resources by memory controller |
US8238157B1 (en) | 2009-04-12 | 2012-08-07 | Apple Inc. | Selective re-programming of analog memory cells |
US8479080B1 (en) | 2009-07-12 | 2013-07-02 | Apple Inc. | Adaptive over-provisioning in memory systems |
US8495465B1 (en) | 2009-10-15 | 2013-07-23 | Apple Inc. | Error correction coding over multiple memory pages |
JP2011108306A (ja) * | 2009-11-16 | 2011-06-02 | Sony Corp | 不揮発性メモリおよびメモリシステム |
US8677054B1 (en) | 2009-12-16 | 2014-03-18 | Apple Inc. | Memory management schemes for non-volatile memory devices |
US8694814B1 (en) | 2010-01-10 | 2014-04-08 | Apple Inc. | Reuse of host hibernation storage space by memory controller |
US8572311B1 (en) | 2010-01-11 | 2013-10-29 | Apple Inc. | Redundant data storage in multi-die memory systems |
US8694853B1 (en) | 2010-05-04 | 2014-04-08 | Apple Inc. | Read commands for reading interfering memory cells |
US8572423B1 (en) | 2010-06-22 | 2013-10-29 | Apple Inc. | Reducing peak current in memory systems |
US8595591B1 (en) | 2010-07-11 | 2013-11-26 | Apple Inc. | Interference-aware assignment of programming levels in analog memory cells |
US9104580B1 (en) | 2010-07-27 | 2015-08-11 | Apple Inc. | Cache memory for hybrid disk drives |
US8767459B1 (en) | 2010-07-31 | 2014-07-01 | Apple Inc. | Data storage in analog memory cells across word lines using a non-integer number of bits per cell |
US8856475B1 (en) | 2010-08-01 | 2014-10-07 | Apple Inc. | Efficient selection of memory blocks for compaction |
US8694854B1 (en) | 2010-08-17 | 2014-04-08 | Apple Inc. | Read threshold setting based on soft readout statistics |
US9021181B1 (en) | 2010-09-27 | 2015-04-28 | Apple Inc. | Memory management for unifying memory cell conditions by using maximum time intervals |
US8640006B2 (en) | 2011-06-29 | 2014-01-28 | International Business Machines Corporation | Preemptive memory repair based on multi-symbol, multi-scrub cycle analysis |
US9003260B2 (en) * | 2011-06-29 | 2015-04-07 | Texas Instruments Incorporated | Partial-writes to ECC (error check code) enabled memories |
US8589726B2 (en) | 2011-09-01 | 2013-11-19 | Infinidat Ltd. | System and method for uncovering data errors |
US8788904B2 (en) * | 2011-10-31 | 2014-07-22 | Hewlett-Packard Development Company, L.P. | Methods and apparatus to perform error detection and correction |
US8687421B2 (en) | 2011-11-21 | 2014-04-01 | Sandisk Technologies Inc. | Scrub techniques for use with dynamic read |
US9454451B2 (en) | 2013-02-11 | 2016-09-27 | Arm Limited | Apparatus and method for performing data scrubbing on a memory device |
US11074169B2 (en) * | 2013-07-03 | 2021-07-27 | Micron Technology, Inc. | Programmed memory controlled data movement and timing within a main memory device |
US9230689B2 (en) | 2014-03-17 | 2016-01-05 | Sandisk Technologies Inc. | Finding read disturbs on non-volatile memories |
US10002044B2 (en) | 2014-08-19 | 2018-06-19 | Samsung Electronics Co., Ltd. | Memory devices and modules |
KR102214556B1 (ko) * | 2014-08-19 | 2021-02-09 | 삼성전자주식회사 | 메모리 장치 및 모듈 |
US9552171B2 (en) | 2014-10-29 | 2017-01-24 | Sandisk Technologies Llc | Read scrub with adaptive counter management |
US9978456B2 (en) | 2014-11-17 | 2018-05-22 | Sandisk Technologies Llc | Techniques for reducing read disturb in partially written blocks of non-volatile memory |
US9349479B1 (en) | 2014-11-18 | 2016-05-24 | Sandisk Technologies Inc. | Boundary word line operation in nonvolatile memory |
US9449700B2 (en) | 2015-02-13 | 2016-09-20 | Sandisk Technologies Llc | Boundary word line search and open block read methods with reduced read disturb |
US11232848B2 (en) | 2015-04-30 | 2022-01-25 | Hewlett Packard Enterprise Development Lp | Memory module error tracking |
US9653154B2 (en) | 2015-09-21 | 2017-05-16 | Sandisk Technologies Llc | Write abort detection for multi-state memories |
US10628248B2 (en) | 2016-03-15 | 2020-04-21 | International Business Machines Corporation | Autonomous dram scrub and error counting |
US20170324425A1 (en) * | 2016-05-06 | 2017-11-09 | Infineon Technologies Ag | Embedded parity matrix generator |
KR20180009076A (ko) * | 2016-07-18 | 2018-01-26 | 에스케이하이닉스 주식회사 | 반도체장치 및 반도체시스템 |
US10120749B2 (en) * | 2016-09-30 | 2018-11-06 | Intel Corporation | Extended application of error checking and correction code in memory |
US10423538B2 (en) | 2017-11-29 | 2019-09-24 | International Business Machines Corporation | Bandwidth efficient techniques for enabling tagged memories |
KR102045437B1 (ko) * | 2018-09-07 | 2019-12-02 | 고려대학교 산학협력단 | 저복잡도 신드롬 기반 복호 장치 및 그 방법 |
KR102092476B1 (ko) * | 2018-10-26 | 2020-03-23 | 고려대학교 산학협력단 | 블록 터보 부호의 신드롬 기반 복호 방법 및 장치 |
CN109669802A (zh) * | 2018-11-13 | 2019-04-23 | 北京时代民芯科技有限公司 | 一种用于edac验证的可配置存储器验证系统 |
US11334457B1 (en) | 2019-06-27 | 2022-05-17 | Samsung Electronics Co., Ltd. | Semiconductor memory device and memory system including the same |
US11036581B2 (en) * | 2019-08-08 | 2021-06-15 | Apple Inc. | Non-volatile memory control circuit with parallel error detection and correction |
US11475929B2 (en) * | 2020-02-27 | 2022-10-18 | Taiwan Semiconductor Manufacturing Company, Ltd. | Memory refresh |
DE102020133713A1 (de) | 2020-02-27 | 2021-09-02 | Taiwan Semiconductor Manufacturing Co., Ltd. | Speicheraktualisierung |
US11921578B2 (en) | 2020-03-31 | 2024-03-05 | SK Hynix Inc. | Error correction methods and semiconductor devices and semiconductor systems using the error correction methods and the semiconductor devices |
KR20210121893A (ko) | 2020-03-31 | 2021-10-08 | 에스케이하이닉스 주식회사 | 에러정정방법 및 이를 이용한 반도체장치 및 반도체시스템 |
KR20210138241A (ko) | 2020-05-12 | 2021-11-19 | 삼성전자주식회사 | 메모리 컨트롤러, 메모리 시스템 및 메모리 모듈 |
KR20220039432A (ko) | 2020-09-22 | 2022-03-29 | 삼성전자주식회사 | 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법 |
US11740973B2 (en) | 2020-11-23 | 2023-08-29 | Cadence Design Systems, Inc. | Instruction error handling |
US11556416B2 (en) | 2021-05-05 | 2023-01-17 | Apple Inc. | Controlling memory readout reliability and throughput by adjusting distance between read thresholds |
US11847342B2 (en) | 2021-07-28 | 2023-12-19 | Apple Inc. | Efficient transfer of hard data and confidence levels in reading a nonvolatile memory |
KR20230021949A (ko) * | 2021-08-06 | 2023-02-14 | 삼성전자주식회사 | 메모리 장치 및 이의 동작 방법 |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB529945A (en) * | 1938-06-20 | 1940-12-02 | Us Hat Machinery Corp | Improved method and machine for the blocking of felt hats |
US3735105A (en) * | 1971-06-11 | 1973-05-22 | Ibm | Error correcting system and method for monolithic memories |
US4005405A (en) * | 1975-05-07 | 1977-01-25 | Data General Corporation | Error detection and correction in data processing systems |
JPS5555499A (en) * | 1978-10-16 | 1980-04-23 | Nec Corp | Memory control unit |
US4506362A (en) * | 1978-12-22 | 1985-03-19 | Gould Inc. | Systematic memory error detection and correction apparatus and method |
US4336611A (en) * | 1979-12-03 | 1982-06-22 | Honeywell Information Systems Inc. | Error correction apparatus and method |
US4319356A (en) * | 1979-12-19 | 1982-03-09 | Ncr Corporation | Self-correcting memory system |
US4535455A (en) * | 1983-03-11 | 1985-08-13 | At&T Bell Laboratories | Correction and monitoring of transient errors in a memory system |
US4604750A (en) * | 1983-11-07 | 1986-08-05 | Digital Equipment Corporation | Pipeline error correction |
JPS6388920A (ja) * | 1986-10-02 | 1988-04-20 | Victor Co Of Japan Ltd | 符号エラ−訂正回路 |
US4899342A (en) * | 1988-02-01 | 1990-02-06 | Thinking Machines Corporation | Method and apparatus for operating multi-unit array of memories |
US4888773A (en) * | 1988-06-15 | 1989-12-19 | International Business Machines Corporation | Smart memory card architecture and interface |
US4920539A (en) * | 1988-06-20 | 1990-04-24 | Prime Computer, Inc. | Memory error correction system |
US4964129A (en) * | 1988-12-21 | 1990-10-16 | Bull Hn Information Systems Inc. | Memory controller with error logging |
US4964130A (en) * | 1988-12-21 | 1990-10-16 | Bull Hn Information Systems Inc. | System for determining status of errors in a memory subsystem |
US5127014A (en) * | 1990-02-13 | 1992-06-30 | Hewlett-Packard Company | Dram on-chip error correction/detection |
US5140592A (en) * | 1990-03-02 | 1992-08-18 | Sf2 Corporation | Disk array system |
US5233616A (en) * | 1990-10-01 | 1993-08-03 | Digital Equipment Corporation | Write-back cache with ECC protection |
US5392302A (en) * | 1991-03-13 | 1995-02-21 | Quantum Corp. | Address error detection technique for increasing the reliability of a storage subsystem |
US5274646A (en) * | 1991-04-17 | 1993-12-28 | International Business Machines Corporation | Excessive error correction control |
US5263032A (en) * | 1991-06-27 | 1993-11-16 | Digital Equipment Corporation | Computer system operation with corrected read data function |
US5325375A (en) * | 1991-06-28 | 1994-06-28 | Sun Microsystems, Inc. | Method and apparatus for non-atomic level parity protection for storing data in a random access memory |
US5311520A (en) * | 1991-08-29 | 1994-05-10 | At&T Bell Laboratories | Method and apparatus for programmable memory control with error regulation and test functions |
US5459839A (en) * | 1991-09-05 | 1995-10-17 | International Business Machines Corporation | System and method for managing queue read and write pointers |
US5267242A (en) * | 1991-09-05 | 1993-11-30 | International Business Machines Corporation | Method and apparatus for substituting spare memory chip for malfunctioning memory chip with scrubbing |
US5410545A (en) * | 1992-07-28 | 1995-04-25 | Digital Equipment Corporation | Long-term storage of controller performance |
US5644583A (en) * | 1992-09-22 | 1997-07-01 | International Business Machines Corporation | Soft error correction technique and system for odd weight row error correction codes |
US5367689A (en) * | 1992-10-02 | 1994-11-22 | Compaq Computer Corporation | Apparatus for strictly ordered input/output operations for interrupt system integrity |
US5490155A (en) * | 1992-10-02 | 1996-02-06 | Compaq Computer Corp. | Error correction system for n bits using error correcting code designed for fewer than n bits |
US5430742A (en) * | 1992-10-14 | 1995-07-04 | Ast Research, Inc. | Memory controller with ECC and data streaming control |
US5388108A (en) * | 1992-10-23 | 1995-02-07 | Ncr Corporation | Delayed initiation of read-modify-write parity operations in a raid level 5 disk array |
US5588112A (en) * | 1992-12-30 | 1996-12-24 | Digital Equipment Corporation | DMA controller for memory scrubbing |
US5367526A (en) * | 1993-06-22 | 1994-11-22 | Kong Edmund Y | Memory module, parity bit emulator, and associated method for parity bit emulation |
US5428630A (en) * | 1993-07-01 | 1995-06-27 | Quantum Corp. | System and method for verifying the integrity of data written to a memory |
-
1995
- 1995-03-01 GB GB9504087A patent/GB2289779B/en not_active Expired - Lifetime
- 1995-04-13 KR KR1019950008657A patent/KR100379812B1/ko not_active IP Right Cessation
- 1995-05-23 DE DE69522457T patent/DE69522457T2/de not_active Expired - Lifetime
- 1995-05-23 AU AU26473/95A patent/AU2647395A/en not_active Abandoned
- 1995-05-23 SE SE9501925A patent/SE517214C2/sv unknown
- 1995-05-23 CN CNB951932160A patent/CN1146790C/zh not_active Expired - Lifetime
- 1995-05-23 EP EP95921376A patent/EP0775343B1/en not_active Expired - Lifetime
- 1995-05-23 WO PCT/US1995/006548 patent/WO1995032470A1/en active IP Right Grant
-
1997
- 1997-10-21 US US08/955,023 patent/US6101614A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE69522457D1 (de) | 2001-10-04 |
US6101614A (en) | 2000-08-08 |
WO1995032470A1 (en) | 1995-11-30 |
KR950033824A (ko) | 1995-12-26 |
SE9501925D0 (sv) | 1995-05-23 |
KR100379812B1 (ko) | 2003-06-18 |
GB9504087D0 (en) | 1995-04-19 |
GB2289779A (en) | 1995-11-29 |
EP0775343B1 (en) | 2001-08-29 |
AU2647395A (en) | 1995-12-18 |
SE9501925L (sv) | 1995-11-25 |
GB2289779B (en) | 1999-04-28 |
EP0775343A1 (en) | 1997-05-28 |
EP0775343A4 (en) | 1997-10-22 |
CN1149344A (zh) | 1997-05-07 |
DE69522457T2 (de) | 2002-05-23 |
CN1146790C (zh) | 2004-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
SE517214C2 (sv) | Metod och anordning för automatisk rättning av ECC-fel i ett minne med hjälp av hårdvara | |
US7392337B2 (en) | System, method and storage medium for a memory subsystem command interface | |
JP5303477B2 (ja) | 非eccコンポーネントにおけるeccの実装 | |
US5701313A (en) | Method and apparatus for removing soft errors from a memory | |
US5586294A (en) | Method for increased performance from a memory stream buffer by eliminating read-modify-write streams from history buffer | |
EP0425550B1 (en) | Memory control unit | |
US5499346A (en) | Bus-to-bus bridge for a multiple bus information handling system that optimizes data transfers between a system bus and a peripheral bus | |
US7055054B2 (en) | Fail-over of multiple memory blocks in multiple memory modules in computer system | |
US5146607A (en) | Method and apparatus for sharing information between a plurality of processing units | |
EP0380855B1 (en) | Memory configuration for use with means for interfacing a system control unit for a multi-processor system with the system main memory | |
WO1994008296A1 (en) | Double buffering operations between the memory bus and the expansion bus of a computer system | |
EP1087296B1 (en) | Word width selection for SRAM cache | |
US4646237A (en) | Data handling system for handling data transfers between a cache memory and a main memory | |
US6195770B1 (en) | Data storage system | |
WO1998014880A1 (en) | Method and apparatus for changing data transfer widths in a computer system | |
JP2016045958A (ja) | メモリモジュール及びその動作方法 | |
JP6370528B2 (ja) | メモリデバイス群間でのチェックビットメモリデバイスの共有 | |
US5812803A (en) | Method and apparatus for controlling data transfers between a bus and a memory device using a multi-chip memory controller | |
JP3786418B2 (ja) | メモリバンド幅損失を低減するディレクトリベースのコヒーレンシ方式 | |
US5838892A (en) | Method and apparatus for calculating an error detecting code block in a disk drive controller | |
US6412060B2 (en) | Method and apparatus for supporting multiple overlapping address spaces on a shared bus | |
EP0251686A2 (en) | Method and apparatus for sharing information between a plurality of processing units | |
US6701398B1 (en) | Global bus synchronous transaction acknowledge with nonresponse detection | |
AU633898B2 (en) | Method and means for interfacing a system control unit for a multi-processor system with the system main memory | |
EP1257917A1 (en) | Global bus synchronous transaction acknowledge with nonresponse detection |