SE515461C2 - Metod och arrangemang för minneshantering - Google Patents

Metod och arrangemang för minneshantering

Info

Publication number
SE515461C2
SE515461C2 SE9803370A SE9803370A SE515461C2 SE 515461 C2 SE515461 C2 SE 515461C2 SE 9803370 A SE9803370 A SE 9803370A SE 9803370 A SE9803370 A SE 9803370A SE 515461 C2 SE515461 C2 SE 515461C2
Authority
SE
Sweden
Prior art keywords
memory
during
processor
time slot
time slots
Prior art date
Application number
SE9803370A
Other languages
English (en)
Other versions
SE9803370L (sv
SE9803370D0 (sv
Inventor
Bjoern Axel Mattsson
Per Tobias Hofverberg
Kari Anders Hintukainen
Original Assignee
Ericsson Telefon Ab L M
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 Ericsson Telefon Ab L M filed Critical Ericsson Telefon Ab L M
Priority to SE9803370A priority Critical patent/SE515461C2/sv
Publication of SE9803370D0 publication Critical patent/SE9803370D0/sv
Priority to AU11953/00A priority patent/AU1195300A/en
Priority to PCT/SE1999/001760 priority patent/WO2000020973A2/en
Priority to EP99970185A priority patent/EP1208441A2/en
Priority to US09/412,635 priority patent/US6425063B1/en
Publication of SE9803370L publication Critical patent/SE9803370L/sv
Publication of SE515461C2 publication Critical patent/SE515461C2/sv

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1647Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • G06F11/167Error detection by comparing the memory output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2043Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share a common memory address space

Description

20 25 30 515 461 z I samband med krav på hög tillförlitlighet i ett system är det även känt att låta två olika processorer utföra samma uppgifter parallellt med varandra för att på så sett erhålla en redundans i systemet. Man kan i dessa sammanhang tala om en exekverande processor och en stand-by processor.
I dessa sammanhang är det även känt att det minne eller de minnen som samverkar med den ena processorn skall innehålla samma information som det minne eller de minnen som samverkar med den andra processorn. Då såväl inskrivning till minnena som utläsning från minnena kan bli fel så är det även känt att kontinuerligt, under drift, kontrollera delar av eller hela rninnesirmehållet i minnena exempelvis genom att järn- föra rninnesinnehållet på den exekverande sidan med rninnesinnehållet på stand-by sidan.
Vid stora minnen utgör detta ett relativt kapacitetskrävande arbete varför det är vanligt att endast kontrollera minnesinnehåll som är extra viktigt för processoremas arbete.
Det är även känt att vid en uppstart av den ena processorn, såsom efter ett bortfall, en service eller en uppgradering av den ena processorn, så genomgås en uppstartningsfas vilken bland annat ornfattar ett överförande av minnesinnehållet i rninnena hörande till den fortfarande verkande processom till minnena hörande till den uppstartande proces- som.
En sådan läsning från det ena minnet och en skrivning till det andra minnet är i sig en kapacitetskrävande process som innebär att processom under en period inte är tillgäng- lig för ordinarie arbetsuppgifter.
Det är vidare känt att vissa typer av arbetsuppgifter kräver en avbrottsfri hantering, såsom vissa telekommunikationsapplikationer.
Det år även känt att vid telekommunikationsapplikationer varierar belastningen med 10 l5 20 25 30 515 461 3 tiden varför applikationer som kräver en avbrottsfii hantering ofta tilldelas en proces- sorkapacitet som är anpassad till att hantera den högst förekommande belastningen.
Vidare kan kapacitetskraven från en viss applikation ändras, antingen öka eller minska, och det är i dessa sammanhang känt att uppgradera processorkapaciteten enligt de nya kapacitetskraven.
REDoGÖRELsE FÖR FÖRELIGGANDE UPPFINNING TEKNISKA PROBLEM Under beaktande av teknikens tidigare ståndpunkt, såsom den beskrivits ovan, torde det få anses vara ett tekniskt problem att, i samband med parallellt verkande proces- sorer och därtill hörande primärmiimen, kunna erbjuda en möjlighet att genomföra en viss minneshantering utan att därför ta kapacitet från för processom ordinarie arbets- uppgifter.
Det är ett tekniskt problem att erbjuda en möjlighet att genomföra en uppstartningsfas, såsom i samband med service, uppgradering, eller en omstart efter ett bortfall av den ena processom med tillhörande minnen, under det att den andra processorn fortsätter att verka med oförminskad kapacitet för ordinarie arbetsuppgifter.
Det är således ett tekniskt problem att kunna erbjuda en möjlighet att överföra minnes- innehållet från ett minne hörande till den arbetande processom till ett armat minne hö- rande till den uppstartande processorn med en ofömiinskad kapacitet för den arbetande processom att hantera sina ordinarie arbetsuppgifter.
Det är även ett tekniskt problem att kunna hantera förändringar som sker i minnet hö- rande till den alltjämt arbetande processom på ett sätt så att även minnet hörande till den uppstartande processom omfattar det förändrade minnesinnehållet. 10 15 20 25 515 461 = ß - - 4 Det är ett tekniskt problem att kunna erbjuda en, vid normal parallelldrift mellan de två processorerna, kontinuerlig kontroll av att niinnesinnehållet i de parallellt verkande minnena är lika utan att för denna sak ta kapacitet från processoms ordinarie arbets- uppgifter.
Det är ett tekniskt problem att kunna anvisa de åtgärder och medel som krävs för att kunna använda lediga tidsluckor på en minnesbuss verkande mellan en processor och ett minne för andra uppgifter än en processors ordinarie arbetsuppgifter.
LösNiNGEN För att kunna lösa ett eller flera av de ovan angivna tekniska problemen utgår förelig- gande uppfinning från en metod för niinneshantering, där ett första och ett andra minne verkar parallellt, såsom två minnen hörande till en första och en andra parallellt ver- kande processor, där respektive minne accessas för läsning och/eller skrivning via en här benämnd minnesbuss och i tidsluckor korrelerade med instruktionscykler hörande till processoremas exekveiingsarbete, och där det andra minnet skall innehålla samma information som det första minnet.
Med utgångspunkt från en sådan metod, samt med avsikten att erbjuda en minneshan- teiing som inte tar kapacitet från processoremas ordinarie arbetsuppgifter, anvisar före- liggande uppfinning att minneshanteringen omfattar ett detekterande av, för minnes- bussen, lediga tidsluckor, och att erforderlig minneshantering endast utförs i dessa de- tekterade lediga tidsluckor.
Detta medför att under en uppstaitningsfas, vilken omfattar en inskrivning av minnes- innehållet i det första minne till det andra minnet i samband med en nystait eller om- staxt av den andra processorn och därmed det andra minnet, så läses, enligt förelig- gande uppfinning, ett minnesinneliåll hörande till en första miiuiesadress inom det 10 15 20 25 515 461 _š=IÛg;“f;. ' 5 första minnet från det första minnet och skrivs till motsvarande minnesadress inom det andra minnet i en första detekterad ledig tidslucka.
Därefter läses ininnesinnehåll hörande till en andra minnesadress inom det första min- net från det första minnet och skrivs till motsvarande minnesadress inom det andra minnet i en andra detekterad ledig tidslucka, och så vidare till dess att minnesinnehållet i det andra minnet är lika med rninnesinnehållet i nämnda första minne.
För att erbjuda en möjlighet att låta uppstartningsfasen ske under en kontinuerlig drift av den första processorn, och för att under sådana förhållanden kunna hantera eventu- ella skrivningar till det första minnet under uppstartningsfasen, anvisar föreliggande uppfinning att all skrivning till redan lästa minnesadresser hörande till det första min- net även sker till det andra minnet under uppstanningsfasen.
Med avsikten att ytterligare förenkla denna hantering anvisar föreliggande uppfinning även att all skrivning till någon minnesadress inom det första minnet även sker till mot- svarande minnesadress inom det andra minnet under uppstartningsfasen.
I de fall där minneshanteringen även omfattar en, under normal parallelldrift av den första och andra processom, kontinuerlig kontroll av att hela eller delar av innehållet av det andra minnet är lika med motsvarande delar av det första minnet anvisar före- liggande uppfinning att för att kunna erbjuda en sådan kontroll utan att därför använda tidsluckor från minnesbussens ordinarie arbetsuppgifter så omfattar även normal drift ett detekterande av, för minnesbussen, lediga tidsluckor och att kontrollen av minnesin- nehållet endast genomförs under detekterade lediga tidsluckor.
Det finns till respektive minne medel relaterade som under innevarande tidslucka visar huruvida nästkommande tidslucka är ledig eller ej. Med avsikten att erbjuda en möjlig- het att detektera kommande lediga tidsluckor anvisar föreliggande uppfinning detekte- ringen av lediga tidsluckor sker genom en kontroll av dessa medel. 10 15 20 25 fi. .i . . -p ,= f - v ==~ , ., .. .. .. v _. i u . »i . .. -, ., r - . i i l t»- .;. i.. . u i. n. :a s.. - ~ , . . .~ ,§ » =i s i , u 6 Föreliggande uppfirming omfattar även ett arrangemang för minneshantering anpassat till att verka enligt den angivna metoden.
Ett sådan arrangemang omfattande ett första och ett andra minne vilka är anpassade till att verka parallellt, såsom två minnen hörande till en första och en andra processor an- passade att verka parallellt med varandra, och en minneshanterande enhet, anpassad att hantera de två minnena, och där respektive minne är anpassade till en tillgänglighet för läsning och/eller skrivning via en här benämnd rninnesbuss och i tidsluckor korrelerade med instmktionscykler hörande till ett för processorema anpassat exekveringsarbete.
Det andra minnet är anpassat till att innehålla samma information som det första min- nöt.
Enligt föreliggande uppfinning omfattar arrangemanget en detekterande enhet vilken är anpassad att detektera för minnesbussen lediga tidsluckor. Vidare är den minneshante- rande enheten anpassat till att endast utföra minneshanteringen i dessa detekterade le- diga tidsluckor.
Under en uppstanningsfas i samband med en nystart eller omstart av den andra proces- som och därmed det andra minnet, är den minneshanterande enheten anpassad till en inskiivning av minnesinnehållet i det första minnet till det andra minnet, genom att läsa ett minnesinnehåll hörande till en första rninnesadress inom det första minnet och skriva minnesinnehållet till motsvarande minnesadress inom det andra minnet i en av den detekterande enheten första detekterad ledig tidslucka.
På samma sätt är den minneshanterande enheten anpassad till att läsa ett minnesinne- håll hörande till en andra minnesadress inom det första minnet och skriva minnesinne- hållet till motsvarande minnesadress inom det andra minnet i en av den detekterande 10 15 20 25 515 461§fif{jfi§;--= 7 enheten andra detekterad ledig tidslucka, och så vidare till dess att rninnesinnehållet i nämnda andra minne är lika med rninnesinnehållet i nämnda första minne.
I det fall som den första processorn är anpassad till en kontinuerlig drift under upp- starmingsfasen, är den rninneshanterande enheten anpassad till att skriva allt som skrivs till redan lästa niinnesadresser inom det första minne till motsvarande minnes- adresser inom det andra minne.
Detta kräver en kontroll av vilka adresser som är lästa och vilka som inte är lästa. Med avsikten att förenkla minneshanteringen och slippa en kontroll av vilka adresser som är lästa så kan den minneshanterande enheten enligt föreliggande uppfinning vara an- passat till att skriva allt som skrivs till någon minnesadress inom det första minnet till motsvarande niinnesadress inom det andra minnet under en uppstartningsfas.
I det fall som den rninneshanterande enheten omfattar en kontrollerande enhet vilken är anpassad att, under nonnal parallelldrift av den första och andra processorn, genom- föra en kontinuerlig kontroll av att hela eller delar av minnesinnehållet av det andra minnet är lika med motsvarande delar av det första minnet anvisar föreliggande uppfm- ning att den kontrollerande enheten är anpassad att endast verka under av de av den detekterande enheten detekterade lediga tidsluckorna.
Föreliggande uppfinning kan bygga på ett arrangemang som omfattar första medel, relaterade till det första minnet, och andra medel, relaterade till det andra minnet, vilka under drift är anpassade att under innevarande tidslucka visar huruvida nästkommande tidslucka är ledig eller ej.
Vid ett sådant arrangemang anvisar föreliggande uppfinning att den detekterande en- heten anpassad att detektera lediga tidsluckor genom att kontrollera huruvida näst- kommande tidslucka är ledig eller ej via dessa medel, vilket erbjuder en möjlighet att under innevarande tidslucka känna till huruvida nästkommande tidslucka är ledig eller 10 15 20 25 515 461 8 ej.
Ett sådant medel kan omfatta en första vippa, anpassad till att visa huruvida en skriv- ning till medlet relaterat minne kommer att ske under nästkommande tidslucka, samt en andra vippa, anpassad till att visa huruvida en läsning från medlet relaterat minne kommer att ske under nästkommande tidslucka, och enligt föreliggande uppfinning är statusen för dessa vippor är läsbar för den detekterande enheten.
FÖRDELAR De fördelar som främst kan få anses vara kännetecknande för en metod och ett arrange- mang enligt föreliggande uppfinning är att härigenom erbjuds en möjlighet att, i sam- band med två parallellt verkande minnen, hörande till två parallellt verkande proces- sorer, och vid en uppstart av den ena processorn och dess minne, uppdatera minnet hörande till den uppstartande processom utan att därför behöva stoppa den arbetande processom och med fullständig tillgång till minnesbussen för ordinarie arbetsuppgifter för den arbetande processom.
Det är genom föreliggande uppfmning även möjligt att, vid normal parallelldrift av de två processorema, erbjuda en kontinuerlig kontroll av allt ininnesinnehåll, eller utvalda delar av minnesirmehållet, i de två parallellt verkande minnena med en fullständig till- gång till minnesbussen för ordinarie arbetsuppgifter för de parallellt arbetande proces- SOfCfIla.
Det som främst kan få anses vara kärinetecknande för en metod i enlighet med före- liggande uppfinning anges i det efterföljande patentkravets l kännetecknande del och det som främst kan få anses vara kännetecknande för ett airangernang i enlighet med föreliggande uppfinning, anges i det efterföljande patentkravets 6 kännetecknande del. 10 15 20 25 515 46§1=f¿t;ë,%^§rí;- är: KORT FIGURBESKRIVNING En metod och ett arrangemang, uppvisande de med föreliggande uppfinning förknip- pade egenhetema, skall i exemplifierande syfte nu närmare beskrivas med hänvisning fiii bifogad fimmg, där; figur 1 visar schematiskt och mycket förenklat ett arrangemang med två pa- rallellt verkande processorer anpassade att verka enligt föreliggande uppfinning, figur 2 visar schematiskt ett antal konsekutivt på varandra följande tids- luckor varigenom en processor kan ges tillgång till ett minne, och figur 3 visar schematiskt medel anpassade att, under innevarande tidslucka, visa huruvida nästkommande tidslucka är ledig eller ej.
BESKRIVNING ÖVER NU FöREsLAGNA UTFÖRINGSFORMER Med hänvisning till figur l visas således ett processorarrangemang som omfattar två parallellt verkande processorer. Dessa utgör en exekverande processor och en stand-by processor som utför samma uppgifter och varigenom redundans kan erhållas.
Eftersom de utföringsexempel som kommer att visas inte är beroende av huruvida det är stand-by processorn eller den exekverande processom som avses så kommer i den följande beskrivningen dessa processorer att benämnas en första processor l och en andra processor 2. 10 15 20 25 . . V « . s 515 461 10 Figuren visar även ett första minne 3 och ett andra rninne 4 som verkar parallellt, där det första minnet 3 hör till den första processorn 1 och det andra minnet 4 hör till den andra processorn 2.
Dessa minnen 3, 4 utgöres normalt av primärminnen, vilket betyder att deras minnes- innehåll endast finns i minnet under spänningsmatiiing och där minnesinnehållet för- svinner vid borttagen spämiingsmatning. Det finns dock inget som hindrar att förelig- gande uppfinning även används i samband med andra typer av minnen.
Respektive minne accessas för läsning och/eller skrivning via en rninnesbuss 13, 24 och i tidsluckor korrelerade med instruktionscykler hörande till processoremas 1, 2 exekveringsarbete, där några konsekutivt på varandra följande tidsluckor T1, T2, ..., Tp är schematiskt visade i figur 2.
Då parallellt verkande processorer används i syftet att erhålla redundans i ett system utför de två processorema identiskt samma arbete. Detta medför att det andra minnet 4 skall innehålla samma information som det första minnet 3 eftersom de två processo- reina 1, 2 exekverar samma instruktioner och bör lämna samma resultat.
Om det vid en kontroll av minnesinnehållet i de två minnena 3, 4 skulle visa sig att innehållet skiljer sig från varandra så betyder detta att den ena eller båda processorema utfört en felaktig bearbetning, att ett skrivfel har skett till det ena eller båda minnena, att ett läsfel har skett från det ena eller båda minnena eller att ett eller båda minnena är behäftade med någon typ av fel, såsom ett fysiskt minnesfel.
En sådan skillnad resulterar i diverse åtgärder varigenom orsaken till skillnaden efter- söks och i vissa fall måste den ena processom startas om för att felet skall kunna åt- gärdas. Vidare kontrolleras normalt även resultatet från de två processorema för att säkerställa en korrekt bearbetning av inlästa instruktioner, där även en skillnad resul- terar i vissa åtgärder. Då föreliggande uppfinning inte specifikt avser denna hantering, 10 15 20 25 30 515 461 _ g 11 och då det för fackmarmen är känt hur en sådan hantering kan utföras, kommer detta inte att beskrivas närmare här.
Det skall även nämnas att en processor kan accessa ett flertal olika minnen, av såväl primänninnestyp som skivrninnestyp, men i förenklande syfte så visas i denna beskriv- ning endast ett primärminne verkande med respektive processor. Det är dock för fack- mannen uppenbart hur föreliggande uppfinning skall appliceras i det fall som ett fleital minnen hörande till respektive processor skall hanteras enligt föreliggande uppfinning.
Minnena hanteras av en rninneshanterande enhet 5. Med minneshantering avses i denna beskrivning den rninneshantering som har att göra med kontroll av att minnena uppfyller de speciella krav som ställs på minnen verkande i en parallellprocessor.
Denna minneshantering kommer här att beskrivas som en kontroll av att innehållet i de två mirmena är identiskt lika, med varandra, såväl under nonnal parallelldrift som vid OIIISIEIIT aV den C118 pfOCCSSOfIL Det skall förstås att det även finns en rriinneshantering som hanterar en processors och andra enheters access av ett nrinne. Denna minneshantering utförs av en här visad för respektive processor intern enhet ll, 21. En avsikt med föreliggande uppfinning är att erbjuda en möjlighet att utföra den specifika iiiinneshantering som rör minnenas sam- verkan i en parallellprocessor skild från den minneshantering som utförs av den intema enheten ll, 21 och med en fullständig tillgång till minnesbussen för processorn och dess interna minneshantering.
Det skall även nänmas att begreppet processor kan ha olika betydelse. 1 denna beskriv- ning avses med processor mer än endast en ALU (Arithinetic Logical Unit). Således avses i denna beskrivning, förutom den i processorn ingående ALU'n, även andra en- heter verkande omkring ALU'n, såsom den interna enheten 1 l, 21 för minneshantering, vissa interna minnen, register, buffertar med mera. Förenklat kan det sägas att proces- sor i denna beskrivning avser allt som har en direkt eller indirekt sarnverkan med aktu- 10 15 20 25 515 461 j f* 12 ell ALU och som kan accessa ett rninne 3, 4 via den för processorn interna enheten för rninneshantering 1 l, 21.
Då den rninneshantering som utförs av den interna enheten 11, 21 inte berörs av före- liggande uppfinning, och då denna får anses vara känd för fackmanen, kommer denna hantering inte att behandlas vidare i denna beskrivning. Med minneshantering kommer i det följande endast att avses den specifika hantering som rör minnenas samverkan i en parallellprocessor.
Enligt föreliggande uppfinning omfattar rninneshanteringen ett detekterande av på minnesbussen 13, 24 lediga tidsluckor. Figur 2 visar att tidsluckor som är upptagna T1, T2, T3, Tp år markerade med ett "X" och att lediga tidsluckor T4, T5, T8 är tomma.
Om en ledig tidslucka T4 detekteras utförs en instruktion enligt aktuell minneshante- ring i denna tidslucka.
På detta sätt så utförs instruktioner enligt minneshanteringen endast i detekterade le- diga tidsluckor, vilket betyder att minnesbussen ll, 21 är helt tillgänglig för processo- rernas 1, 2, ordinarie arbetsuppgifter.
Vid en uppstartningsfas i samband med en nystart eller omstart av den andra proces- som 2 och därmed det andra minnet 4, omfattar minneshanteringen en inskrivning av minnesinnehållet i det första minnet 3 till det andra minnet 4. l detta fall skall minnesinnehållet hörande till en första minnesadress 31 inom det första minnet 3 läsas från det första minnet och skrivas till motsvarande minnesadress 41 inom det andra minnet 4. Detta görs i en första detekterad ledig tidslucka T4.
Därefter skall minnesinnehållet hörande till en andra minnesadress 32, inom det första minnet 3 läsas från det första minnet och skrivas till motsvarande minnesadress 42 lO 15 25 515 461 13 inom det andra minnet 4 i en andra detekterad ledig tidslucka T5.
Detta fortsätter till dess att rrrinnesinnehållet i det andra minnet 4 är lika med minnes- innehållet i det första minnet 3.
Eftersom endast lediga tidsluckor används så är det möjligt att utföra denna uppdate- ring av det andra minnet 4, det vill säga uppstartningsfasen, under en kontinuerlig drift av den första processorn 1. Detta medför dock att diverse förändringar kan ske i det första minnet 3 under uppdateringen av det andra minnet 4. Således anvisar förelig- gande uppfinning att all skrivning till redan lästa minnesadresser hörande till det första minnet 3 även sker till det andra minnet 4 under uppstarmingsfasen.
Det är även möjligt att låta all skrivning till någon rninnesadress inom det första minnet 3 ske till motsvarande minnesadress inom det andra minnet 4 under uppstarmingsfasen, oavsett till vilken minnesadress inom det första minnet 3 som skrivningen sker. Detta resulterar i något fler skrivningar till det andra minnet 4 med det kräver dock ingen korrelation mellan vilka niinnesadresser i det första minnet 3 som redan är lästa från och skrivna till det andra minnet 4 i förhållande till vilken minnesadress inom det första minnet 3 en skrivning sker.
Under' normal parallelldrift av den första och den andra processorn l, 2, omfattar min- neshanteringen en kontinuerlig kontroll av att hela eller delar av innehållet av det andra minnet 4 är lika med motsvarande delar av det första minnet 3. Enligt föreliggande uppfinning skall en sådan kontroll endast genomföras under detekterade lediga tids- luckor T4, TS, T8.
I figur' 1 visas att första medel 8 är relaterade till det första minnel 3, och att andra medel 9 är relaterade till det andra minne 4. Dessa medel visar, under innevarande tidslucka, huruvida nästkommande tidslucka är ledig eller ej. 10 15 20 515 461 _ . 14 Enligt föreliggande uppfinning utgöres detekteringen av på minnesbussen lediga tids- luckor av en kontroll av dessa medel 8, 9.
Föreliggande uppfinning avser även ett arrangemang för rninneshantering. Med för- nyad hänvisning till figur 1 beskrivs ett sådant arrangemang omfattande ett första minne 3 och ett andra minne 4 vilka är anpassade till att verka parallellt, såsom två minnen hörande till en första processor 1 och en andra processor 2 anpassade att verka parallellt med varandra, och en minneshanterande enhet 5, anpassad att hantera det första och det andra minnet 3, 4.
Respektive första och andra minne kan utgöras av ett primärminne, och respektive minne är anpassade till en tillgänglighet för läsning och/eller skrivning via en minnes- buss 13, 24 och i tidsluckor korrelerade med instruktionscykler hörande till ett för pro- cessorema anpassat exekveringsarbete.
Det andra minnet 3 är anpassat till att innehålla samma information som det första minnet 4.
Föreliggande uppfinning anvisar specifikt att den minneshanterande enheten 5 omfattar en detekterande enhet 6 anpassad att detektera lediga tidsluckor T4, TS, T8, och att den minneshanterande enheten 5 är anpassat till att endast utföra erforderlig minneshante- ring i dessa detekterade lediga tidsluckor.
Under en uppstartningsfas i samband med en nystart eller omstart av den andra proces- som 2 och därmed det andra minnet 4, är den minneshanterande enheten 5 anpassad till en inskrivning av minnesinnehållet i det första minnet 3 till det andra minnet 4.
Vid en sådan uppstartningsfas är den minneshanterande enheten 5 anpassad till att läsa ett minnesinnehåll hörande till en första minnesadress 31 inom det första minnet 3 och skriva minnesinnehållet till motsvarande minnesadress 41 inom det andra minnet 4 i en 10 15 20 25 515 461 15 av den detekterande enheten 6 första detekterad ledig tidslucka T4.
Vidare är den minneshanterande enheten 5 anpassad till att läsa ett rninnesinnehåll hö- rande till en andra minnesadress 32 inom det första minnet 3 och skriva minnesinne- hållet till motsvarande minnesadress 42 inom det andra minnet 4 i en av den detekte- rande enheten 6 andra detekterad ledig tidslucka T5, och så vidare till dess att minnes- innehållet i det andra minnet 4 är lika med niinnesinnehållet i det första minnet 3.
Den första processorn 1 är anpassad till en kontinuerlig drift under uppstartningsfasen, och den minneshanterande enheten kan 5, under uppstaitningsfasen, vara anpassad till att skriva allt som skrivs till redan lästa minnesadresser inom det första minnet 3 till motsvarande minnesadresser inom det andra minnet 4.
Den rninneshanterande enheten 5 kan, under uppstartningsfasen, även vara anpassad till att skriva allt som skrivs till någon minnesadress inom det första minnet 3 till mot- svarande minnesadress inom det andra minnet 4, oavsett om minnesinnehållet i denna adress hörande till det första minnet 3 blivit överfört till motsvarande adress inom det andra minnet 4 eller ej.
Enligt föreliggande uppfmning kan den minneshanterande enheten 5 även omfatta en kontrollerande enhet 7 vilken är anpassad att, under normal parallelldrift av den första och andra processom l, 2, genomföra en kontinuerlig kontroll av att hela eller delar av minnesinnehållet av det andra minnet 4 är lika med motsvarande delar av det första minnet 3. Enligt föreliggande uppfinning är en sådan kontrollerande enhet 7 anpassad att endast verka under av den detekterande enheten 6 detekterade lediga tidsluckor T4, T5, T8.
Enligt figur l omfattar arrangemanget första medel 8, relaterade till det första minnet 3, och andra medel 9, relaterade till det andra minnet 4, vilka är anpassade att under innevarande tidslucka visar humvida nästkommande tidslucka är ledig eller ej. 10 15 20 25 > - . . n 515 461 se* - - 16 Enligt föreliggande uppfinning är den detekterande enheten 6 är anpassad att detektera på minnesbussen 13, 24 lediga tidsluckor genom att, under innevarande tidslucka, kon- trollera huruvida nästkommande tidslucka är ledig eller ej via medlen 8, 9.
Figur 3 avser att visa att det första medlet 8 omfattar en första vippa 81, vilken är an- passad till att, under innevarande tidslucka, visa huruvida en skrivning till det första minnet 3 kommer att ske under nästkommande tidslucka. Vidare omfattar det första medlet 8 en andra vippa 82, vilken är anpassad till att, under innevarande tidslucka, visa huruvida en läsning 'från det första minnet 3 kommer att ske under nästkommande tidslucka.
Den detekterande enheten 6 är anpassad till att kunna läsa statusen för dessa vippor 81, 82, vilket möjliggör för den detekterande enheten att, under innevarande tidslucka, känna till huruvida nästkommande tidslucka på minnesbussen 13, 24 kommer att vara ledig eller ej.
I figur 3 visas schematiskt hur det första medlet 8, som är relaterat till det första minnet 3, är uppbyggt och verkar. Det skall förstås att det andra medlet 9, som är relaterat till det andra minnet 4, är uppbyggt och verkar på samma sätt, även om detta inte visas explicit i figurema.
Det skall förstås att trots att denna beskrivning i olika utföringsforrner visar en minnes- hantering som avser uppdatering av det ena minnet vid uppstart av en processor eller kontinuerlig kontroll av minnesinnehållet i de två minnena vid parallelldrift så erbjuder föreliggande uppfirming även en möjlighet att utföra annan minneshantering i detek- terade lediga tidsluckor, varigenom fördelarna med föreliggande uppfinning erhållas även för denna hantering.
Det skall även förstås att en minneshantering kan omfatta en hantering som inte kan 515 = . 17 vänta på lediga tidsluckor enligt föreliggande uppfinning, varför det även är möjligt att utföra viss hantering i lediga tidsluckor enligt föreliggande uppfinning och annan han- tering direkt då detta krävs.
Uppfinningen är givetvis inte begränsad till den ovan såsom exempel angivna utfö- ringsformen utan kan genomgå modifikationer inom ramen för uppfinningstanken il- lustrerad i efterföljande patentkrav.

Claims (13)

10 30 s ...- 515 461 ~ Éš - É-í. 18 PATENTKRAV
1. Metod för minneshantering, där ett första och ett andra minne verkar parallellt, såsom två minnen hörande till en första och en andra parallellt verkande processor, där respektive minne accessas för läsning och/eller skrivning via en här benämnd minnes- buss och i tidsluckor korrelerade med instruktionscykler hörande till nämnda processo- rers exekveringsarbete, där nämnda andra minne skall innehålla samma information som nämnda första minne, där nämnda minneshantering, under en uppstartningsfas i samband med en nystart eller omstart av nämnda andra processor och därmed nämnda andra minne, omfattar en inskrivning av minnesinnehållet i nämnda första minne till nämnda andra minne, och där nämnda minneshantering, under normal parallelldrift av nämnda första och andra processor, omfattar en kontinuerlig kontroll av att hela eller delar av innehållet av nämnda andra minne är lika med motsvarande delar av nämnda första minne, k ä n n e t e c k n a d därav, att nämnda iiiinneshantering omfattar ett detekterande av på nämnda ininnesbuss lediga tidsluckor, och att nämnda minneshantering endast utförs i nämnda detekterade lediga tidsluckor.
2. Metod enligt patentkravet l, k ä n n e t e c k n a d därav, att, under en uppstartningsfas, ett niinnesinnehåll hörande till en första minnesadress inom nämnda första minne läses från nämnda första minne och skrivs till motsvarande ininnesadress inom nämnda andra minne i en första detekterad ledig tidslucka, att ett ininnesinriehåll hörande till en andra minnesadress inom nämnda första minne läses från nämnda första minne och skrivs till motsvarande minnesadress inom nämnda andra minne i en andra detekterad ledig tidslucka, och så vidare till dess att minnes- innehållet i nämnda andra minne är lika med minnesinnehållet i nämnda lörsta minne. k ä n n c t e c
3. Metod enligt patentkravet 2, k n a d därav, att nämnda uppstartningsfas sker under en kontinuerlig drift av nämnda första proces- l0 u» " 515 4 6 1 §ïï= 1:11: .j - zj: “ l9 sor, och att all skrivning till redan lästa minnesadresser hörande till nämnda första minne även sker till nämnda andra minne under nämnda uppstartningsfas.
4. Metod enligt patentkravet 2. k ä n n e t e e k n a d därav, att nämnda uppstartningsfas sker under en kontinuerlig drift av nämnda första proces- sor, och att all skrivning till någon minnesadress inom nämnda första minne även sker till motsvarande niinnesadress inom nämnda andra minne under iiämnda uppstartnings- fas.
5. Metodenligtpatentkravetleller2, k ä n n e t e c k n a d därav, att. under normal parallelldrift. nämnda kontroll endast genomförs under detekterade lediga tidsluckor.
6. Metod enligt patentkravet l, där första medel, relaterade till nämnda första minne, och andra medel. relaterade till nämnda andra minne. under innevarande tidslucka vi- sar huruvida nästkommande tidslueka är ledig eller ej. k n n e - t e e k n a d därav. att nämnda detektering utgöres av en kontroll av iiämnda medel.
7. Arrangemang för minneshantering, omfattande ett första och ett andra minne vilka är anpassade till att verka parallellt, såsom två minnen hörande till en första och en andra processor anpassade att verka parallellt med varandra, och en ininneshante- rande enhet, anpassad att hantera nämnda första och andra minne. där respektive minne ar anpassade till en tillgänglighet för läsning och/eller skrivning via en här benämnd minnesbuss och i tidsluckor korrelerade med instruktionscykler hörande till ett för iiäniiida processorer anpassat exekveringsarbete, där nämnda andra ininne är anpassat till att innehålla samma information som nämnda första minne, där iiäniiida inimies- liaiiteraiide enhet. under en uppstartningsfas i saniband med en iiystart eller oinstart av iiäniiida andra processor och därmed nämnda andra minne, är anpassad till en inskriv- ll) IQ 'Ji 515 46ïïlïfiïïiš-.fi tfïíiiï-šriš 20 ning av niinnesinnehållet i nämnda första minne till nämnda andra minne, och där nämnda minneshanterande enhet omfattar en kontrollerande enhet vilken är anpassad att, under normal parallelldrift av nämnda första och andra processor, genomföra en kontinuerlig kontroll av att hela eller delar av niinnesinnehållet av nämnda andra k ä n n e - minne är lika med motsvarande delar av nämnda första minne, t e c k n a t därav, att iiämnda minneshanterande enhet onifattar en detek- tcrande enhet anpassad att detektera på nämnda minnesbuss lediga tidsluckor, och att nämnda arrangemang är anpassat till att endast utföra nämnda minneshantering i iiäinnda detekterade lediga tidsluckor.
8. Arrangemang enligt patentkravet 7, k ä n n e t e c k n a t därav, att nämnda ininneslianterande enhet, under en uppstartningsfas, är anpassad till att läsa ett niinnesinnehåll hörande till en första minnesadress inom nämnda första minne och skriva nämnda niinnesinnehåll till motsvarande minnesadress inom nämnda andra minne i en av nämnda detekterande enhet första detekterad ledig tidslucka, att iiäinnda niinneshanterande enhet är anpassad till att läsa ett iiiiiinesinneliåll hörande till en andra niinnesadress inom nämnda första minne och skriva nämnda ininnesinneliåll till niotsvarande minnesadress inom nämnda andra minne i en av nämnda detekterande enhet andra detekterad ledig tidslucka, och så vidare till dess att ininnesinneliållet i nämnda andra minne är lika med niinnesinnehållet i nämnda första minne.
9. Arrangemang enligt patentkravet 8, k ä n n e t e c k n a t därav, att nämnda första processor är anpassad till en kontinuerlig drift under nämnda uppstartningsfas, och att nämnda minneshanterande enhet, under iiäiiindzi uppstart- ningsfas, är anpassad till att skriva allt som skrivs till redan lästa iiiinnesadresser inom nämnda första minne till motsvarande minnesadresser inom iiäninda andra minne. kännetecknat
10. IO. Arrangemang enligt patentkravet 8, därav, att näinnda första processor är anpassad till en kontinuerlig drift under iiämiida 20 515 461 21 uppstartningsfas, och att nämnda minneshanterande enhet, under nämnda uppstart- ningstas, är anpassad till att skriva allt som skrivs till någon minnesadress inom nämnda första minne till motsvarande minnesadress inom nämnda andra minne. k _
11. ll. Arrangemang enligt patentkravet7eller 8, k ä n n c t e c n a t därav, att nämnda kontrollerande enhet är anpassad att, under normal parallelldrift, endast verka under av nämnda detekterande enhet detekterade lediga tidsluckor.
12. Arrangemang enligt patentkravet 7, där nämnda arrangemang omfattar första medel, relaterade till itämnda första minne, och andra medel, relaterade till nämnda andra minne, vilka är anpassade att under innevarande tidslucka visar huruvida nästkominande tidslucka är ledig eller ej, k ä n n e t e c k n a d därav, att nämnda detekterande enhet är anpassad att detektera lediga tidsluckor genom att kontrollera huruvida nästkommande tidslucka är ledig eller ej via nämnda medel.
13. Arrangemang enligt patentkravet 12, k ä n n e t e c k n a d därav, att respektive medel omfattar en forsta vippa, anpassad till att visa huruvida en skrivning till medlet relaterat minne kommer att ske under nästkommande tidslucka, samt en andra vippa, anpassad till att visa huruvida en läsning från medlet relaterat ininne kommer att ske under nästkommande tidslucka, och att statusen för nämnda vippor är läsbar för nämnda detekterande enhet.
SE9803370A 1998-10-05 1998-10-05 Metod och arrangemang för minneshantering SE515461C2 (sv)

Priority Applications (5)

Application Number Priority Date Filing Date Title
SE9803370A SE515461C2 (sv) 1998-10-05 1998-10-05 Metod och arrangemang för minneshantering
AU11953/00A AU1195300A (en) 1998-10-05 1999-10-04 Method and arrangement for memory management
PCT/SE1999/001760 WO2000020973A2 (en) 1998-10-05 1999-10-04 Method and arrangement for memory management
EP99970185A EP1208441A2 (en) 1998-10-05 1999-10-04 Method and arrangement for memory management
US09/412,635 US6425063B1 (en) 1998-10-05 1999-10-05 Method and arrangement for memory management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE9803370A SE515461C2 (sv) 1998-10-05 1998-10-05 Metod och arrangemang för minneshantering

Publications (3)

Publication Number Publication Date
SE9803370D0 SE9803370D0 (sv) 1998-10-05
SE9803370L SE9803370L (sv) 2000-04-06
SE515461C2 true SE515461C2 (sv) 2001-08-06

Family

ID=20412821

Family Applications (1)

Application Number Title Priority Date Filing Date
SE9803370A SE515461C2 (sv) 1998-10-05 1998-10-05 Metod och arrangemang för minneshantering

Country Status (5)

Country Link
US (1) US6425063B1 (sv)
EP (1) EP1208441A2 (sv)
AU (1) AU1195300A (sv)
SE (1) SE515461C2 (sv)
WO (1) WO2000020973A2 (sv)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8255435B2 (en) * 2004-10-07 2012-08-28 International Business Machines Corporation Detecting memory management anti-patterns
US7733854B2 (en) * 2004-11-30 2010-06-08 Broadcom Corporation Forced bubble insertion scheme
DE102006019426B4 (de) * 2006-04-26 2008-03-13 Qimonda Ag Speichermodulsteuerung, Speichersteuerung und entsprechende Speicheranordnung sowie Verfahren zur Fehlerkorrektur
KR101131376B1 (ko) * 2008-03-31 2012-04-04 인텔 코오퍼레이션 파션-프리 멀티-소켓 메모리 시스템 아키텍쳐

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3970993A (en) * 1974-01-02 1976-07-20 Hughes Aircraft Company Cooperative-word linear array parallel processor
US5155807A (en) * 1986-02-24 1992-10-13 International Business Machines Corporation Multi-processor communications channel utilizing random access/sequential access memories
CA1293819C (en) * 1986-08-29 1991-12-31 Thinking Machines Corporation Very large scale computer
US4965717A (en) * 1988-12-09 1990-10-23 Tandem Computers Incorporated Multiple processor system having shared memory with private-write capability
JP2584113B2 (ja) * 1989-07-21 1997-02-19 松下電器産業株式会社 データ転送方法及びデータ転送装置
US5283886A (en) * 1989-08-11 1994-02-01 Hitachi, Ltd. Multiprocessor cache system having three states for generating invalidating signals upon write accesses
US5175847A (en) * 1990-09-20 1992-12-29 Logicon Incorporated Computer system capable of program execution recovery
US5313625A (en) * 1991-07-30 1994-05-17 Honeywell Inc. Fault recoverable computer system
JP2974526B2 (ja) * 1992-12-18 1999-11-10 富士通株式会社 データ転送処理方法及びデータ転送処理装置
AU1270497A (en) * 1995-12-18 1997-07-14 Elsag International N.V. Processor independent error checking arrangement
JP3269967B2 (ja) * 1996-04-24 2002-04-02 株式会社日立製作所 キャッシュコヒーレンシ制御方法、および、これを用いたマルチプロセッサシステム
US6134673A (en) * 1997-05-13 2000-10-17 Micron Electronics, Inc. Method for clustering software applications
US6061750A (en) * 1998-02-20 2000-05-09 International Business Machines Corporation Failover system for a DASD storage controller reconfiguring a first processor, a bridge, a second host adaptor, and a second device adaptor upon a second processor failure

Also Published As

Publication number Publication date
SE9803370L (sv) 2000-04-06
SE9803370D0 (sv) 1998-10-05
WO2000020973A3 (en) 2000-07-20
WO2000020973A2 (en) 2000-04-13
AU1195300A (en) 2000-04-26
EP1208441A2 (en) 2002-05-29
US6425063B1 (en) 2002-07-23

Similar Documents

Publication Publication Date Title
US8190864B1 (en) APIC implementation for a highly-threaded x86 processor
US8386822B2 (en) Wake-and-go mechanism with data monitoring
US6253320B1 (en) Operating system rebooting method
US8230201B2 (en) Migrating sleeping and waking threads between wake-and-go mechanisms in a multiple processor data processing system
US8612977B2 (en) Wake-and-go mechanism with software save of thread state
EP2210153B1 (en) Industrial controller using shared memory multicore architecture
US8171476B2 (en) Wake-and-go mechanism with prioritization of threads
US8732683B2 (en) Compiler providing idiom to idiom accelerator
US8312458B2 (en) Central repository for wake-and-go mechanism
US8516484B2 (en) Wake-and-go mechanism for a data processing system
US8250396B2 (en) Hardware wake-and-go mechanism for a data processing system
US8640142B2 (en) Wake-and-go mechanism with dynamic allocation in hardware private array
FI78993C (sv) Övervakningsarrangemang för fuktionssystem.
US8452947B2 (en) Hardware wake-and-go mechanism and content addressable memory with instruction pre-fetch look-ahead to detect programming idioms
EP0677188B1 (en) System and method for assigning tags to instructions to control instruction execution
US20110173632A1 (en) Hardware Wake-and-Go Mechanism with Look-Ahead Polling
US20110173417A1 (en) Programming Idiom Accelerators
US20090199189A1 (en) Parallel Lock Spinning Using Wake-and-Go Mechanism
US8694827B2 (en) Job migration in response to loss or degradation of a semi-redundant component
JPH06236275A (ja) スーパースカラ・プロセッサ・システムにおける非逐次命令ディスパッチおよび実行のための方法およびシステム
SE515461C2 (sv) Metod och arrangemang för minneshantering
EP4034994B1 (en) Retire queue compression
EP0297892B1 (en) Apparatus and method for control of asynchronous program interrupt events in a data processing system
US8725992B2 (en) Programming language exposing idiom calls to a programming idiom accelerator
SE516171C2 (sv) Processorarkitektur anpassas för programspråk med sekventiellt instruktionsflöde

Legal Events

Date Code Title Description
NUG Patent has lapsed