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årdvara

Info

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
Application number
SE9501925A
Other languages
English (en)
Other versions
SE9501925D0 (sv
SE9501925L (sv
Inventor
Mark A Gonzales
Thomas J Holman
Patrick F Stolt
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of SE9501925D0 publication Critical patent/SE9501925D0/sv
Publication of SE9501925L publication Critical patent/SE9501925L/sv
Publication of SE517214C2 publication Critical patent/SE517214C2/sv

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding 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/106Correcting systematically all correctable errors, i.e. scrubbing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding 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/1056Updating 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)

10 20 25 30 35 40 517 214 12 PATENTKRAV
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.
SE9501925A 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 SE517214C2 (sv)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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