SE445269B - Dator med indexerat lokalt direktminne - Google Patents

Dator med indexerat lokalt direktminne

Info

Publication number
SE445269B
SE445269B SE8107831A SE8107831A SE445269B SE 445269 B SE445269 B SE 445269B SE 8107831 A SE8107831 A SE 8107831A SE 8107831 A SE8107831 A SE 8107831A SE 445269 B SE445269 B SE 445269B
Authority
SE
Sweden
Prior art keywords
signals
memory
address
register
central processor
Prior art date
Application number
SE8107831A
Other languages
English (en)
Other versions
SE8107831L (sv
Inventor
A B Barrow
H H Tsiang
Original Assignee
Wang Laboratories
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 Wang Laboratories filed Critical Wang Laboratories
Publication of SE8107831L publication Critical patent/SE8107831L/sv
Publication of SE445269B publication Critical patent/SE445269B/sv

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

15 20 25 30 35 8107831-3 2 i huvudminnet, anordnas ytterligare minnesutrymme i sekundärmin- net. Före utvecklingen av s.k. virtuella minnen, uppdelade pro- grammeraren data i delar, benämnda överlagringssegment, som vartoch ett inrymdes i huvudminnet. Överlagringssegmenten inlagrades i huvudminnet ett i taget under datorns drift; vissa data som inmatats vid en senare tidpunkt skrevs därvid över tidigare i huvudminnet inlagrade datasegment. Programmeraren var ansvarig för uppdelningen av data i överlagringssegment, varvid denne måste bestämma var i sekundärminnet varje överlagringssegment skulle lagras och hålla reda på behovet att inmata varje nytt överlagringssegment samt ombesörja överföring av överlagrings- segment mellan huvudminnet och sekundärminnet, varvid i allmän- het hela denna överlagringsprocess måste hanteras utan hjälp från själva datorn.
Utvecklingen av virtuella minnen har gjort det möjligt att över- låta denna hantering till själva datorn, utan att programmeraren behöver styra eller ens vara medveten om denna process. Enligt denna utveckling definieras ett stort adressutrymme, som är adresserbart av datorns centrala processor och som benämnes det virtuella adressutrymmet. Det virtuella adressutrymmet kan vara mycket större än det fysiska lagringsutrymme som är till- gängligt i huvudminnet. Data lagras i sekundärminnet i block vanligen av sama storlek, benämnda sidor, och överförs en sida i taget till huvudminnet. Huvudminnet är uppdelat i block be- nämnda sidramar av samma storlek som sidorna. En datasida lag- ras i en sidram, under inriktning av dess början och slut.
Under datorns drift, alltefter behovet av minnesâtkomst uppkom- mer, alstras signaler representerande en virtuell minnesadress av den centrala processorn. Den virtuella adressen omfattar ett sidnummer, som anger vilken sida som innehåller ifrågavarande dataelement, och en ytterligare adressdel, benämnd “offset"- del, vilken anger dataelementets läge inom sidan. För att åstad- koma minnesåtkomst måste den virtuella adressens sidnumer översättas till den fysiska adressens sidramnummer, som hänvisar 10 15 20 25 30 35 8107831-3 3 till det fysiska utrymmet i huvudminnet. Om ifrågavarande data redan finns i huvudminnet, erhålles de från det fysiska läget, och behandlingen fortsätter. (Ibland förekommer ett ytterligare kontrollsteg för fastställande av huruvida ifrågavarande data befinner sig i det med hög hastighet arbetande fickminnet, och om så är fallet erhålles det direkt från fickminnet; förelig- gande uppfinning hänför sig emellertid ej till detta ytterligare steg.) Om nämnda data ej befinner sig i huvudminnet, måste datorn erhålla uppgift om den sida, som innehåller nödvändiga dataele- ment, från sekundärminnet och överföra dataelementet till huvud- minnet, varefter dataelementet erhålles från ifrågavarande sida och behandlingen fortsätter.
En dylik utformning är praktisk i det att det logiska arbets- flödet i de flesta program är sådant att hela programmet ej be- höver lagras vid varje tidpunkt i huvudminnet under programmets exekvering. Exempelvis utföres start- och avslutningsrutiner endast en gång under genomförandet av ett program. En procedur av undantagskaraktär, såsom en felrutin, krävs endast om undan- tagsförhållandet inträffar. Vid en given tidpunkt under exekve- ringen av ett program krävs hänvisning endast till en delmängd av hela programmet, och delmängdens element är i allmänhet be- lägna nära varandra. Detta betecknas ibland som ett särskilt kän- netecken “locality of reference" hos dylika program.
Inrättandet av ett virtuellt minne ger stora fördelargiminnes- hanteringen, varvid programmeraren befrias från hanteringen av överlagringssegment och hänsyn till överskridande av datorns tillgängliga huvudminneskapacitet. Dessutom kan en dator med virtuellt minne arbeta med relativt stora, tämligen billiga (ehuru långsama) sekundärminnen, och ett relativt litet,täm1igen dyrt (men snabbt) huvudminne, varigenom datorns totalkostnad kan nedbringas.
Emellertid kräver användningen av ett virtullt minne att opera- tionstid måste användas för utförande av lämpliga instruktioner för erhållande av den fysiska adressen från den virtuella adressen. 10 15 20 25 30 35 8107831-3 4 översättningen av den virtuella adressen till den fysiska adres- sen kräver tillgång till en sidtabell, som identifieras av seg- mentnumer och lagras i huvudminnet och som innehåller informa- tion avseende läget i huvudminnet för samtliga sidor i ifråga- varande segment av det aktuella virtuella adressutrymmet. Sid- tabellen adresseras av ett virtuellt sidnummer för lokalisering av önskad ingång i sidtabellen. Varje elementü.sidtabellen in- nefattar en felbit, som indikerar huruvida sidan har överförts till huvudminnet. Vidare innefattar elementet i sidtabellen skyddsbitar och det sidramnumer (hänvisande till det fysiska huvudminnet) där sidan finns, om den finns i huvudminnet. Översättningsprocessen omfattar därför följande steg, vilka måste utföras av processorn (under exekvering av ett mikro- program) eller av motsvarandenuskinvarai processorn: ange seg- mentnumret för lokalisering av sidtabellen, ange det virtuella sidnumret för adressering avett elementisidtabellen, erhâll elementet i sidtabellen, kontrollera felbitens status och (om sidan finns i huvudminnet).kombinera sidramnumret med den vir- tuella adressens "offset"-del för bildande av den fysiska adres- Sen . Översättningsprocessen tar därför en viss tid i anspråk varje gång processen genomföras. Om processen måste utföras vid varje minnesâtkomst, kommer datorns minnesoperation att fördröjas av- sevärt. Det är således önskvärt att nedbringa den nödvändiga översättningstiden.
Ett sätt att lösa detta problem är att utanför den centrala pro- cessorn (i minnesstyrenheten) anordna ett litet buffertregister för lagring av signaler som representerar nyligen översatta adres- ser. Exempelvis har ett dylikt buffertregister utformats som en uppsättning av åtta till trettiotvå associerade register, som vart och ett innehåller två fält. Det ena fältet innehåller signaler som representerar sidnumret för en nyligen översatt virtuell minnesadress. Det andra fältet innehåller signaler som representerar den sidram som för tillfället hör till den virtuella lO 15 20 25 30 35 8107831-3 5 minnessidan. Varje gång en virtuell minnesadress översättes under exekvering av en instruktion placeras signaler represen- terande det virtuella minnets adressidnummer och det resulte- rande verkliga minnesadressidramnumret i denna buffert. En tidigast-föregående-använd-regel användes för val av det re- gister, i vilket den nya översättningen skall placeras (för ersättning av en äldre översättning).
Då en minnesreferens, angiven av en virtuell adress, begäres under datorns arbete, avsökes de åtta registren samtidigt (parallellt). De signaler, som representerar det virtuella sid- numret i varje register, jämföres med de signaler, som represen- rerar det virtuella sidnumret hos den virtuella adressen för ifrågavarande minnesoperation. Om överensstämmelse påträffas, uttages sidramnummersignalerna från ifrågavarande register och kombineras med ”offset”-signalerna för bildande av den fysiska adressen. Om någon överensstämmelse ej påvisas, utföres den re- guljära översättningsprocessen.
En dylik uppbyggnad innebär flera olägenheter. För det första är kretslösningen för en dylik avsökning dyrbar, ehuru parallell avsökning (associativ adressering) är snabb. Vidare är adresse- ringskretsarna fysiskt komplicerade, och komplekiteten ökar snabbt med ökande antal register som skall avsökas. I praktiken finns därför en stark begränsning av buffertregistrets möjliga storlek, som betingas av såväl kostnad som komplexitet. Följ- aktligen kan endast en mycket begränsad delmängd av nyligen över- satta adresser bibehållas.
I en fleruppgiftsdator måste vidare innehållet i hela bufferten- heten (åtta till trettiotvâ register) tömmas då datorn byter uppgift. Detta händer mycket ofta. Detta krav medför tvâ nack- delar. För det första åtgår tid för tömning av buffertenheten.
För det andra finns ej några översatta adresser tillgängliga se- dan buffertenheten har tömts , varför bufferten måste avsökas för varje efterföljande minnesåtkomst och därefter den nyöver- satta adressen inskrivas i buffertenheten tills dess att denna 10 is 20 25 30 35 8107831-3 6 blivit fylld. För detta åtgår ytterligare tid.
Det är därför ett syfte med föreliggande uppfinning att åstad- komma en anordning för förbättring av effektiviteten och arbets- hastigheten hos en dator, som använder ett virtuellt minne, ge- nom reduktion av den totala tid som krävs för adressöversätt- ning.
Uppfinningen avser således en anordning vid en fleruppgiftsdator med virtuellt minne omfattande ett flertal segment. Datorn har en central processor innefattande en spärr, ett minnesadressre- gister och ett minnesdataregister. Ett styrregister är anslutet till den centrala processorn. En till den centrala processorn ansluten buss omfattar adressignalledningar som mottager adress- signaler från minnesadressregistret och datasignalledningar som mottager datasignaler från minnesdataregistret samt överför datasignaler till minnesdataregistret. Datorn har ett fysiskt minne inrättat för lagring av datasignaler som representerar data och makroinstruktioner.
Det fysiska minnet omfattar ett till bussen anslutet sekundär- minne med relativt långsam åtkomst och som rymmer ett flertal sidor av likformig storlek (antal bytes), varvid varje sida innehåller ett flertal datasignaler, samt ett till bussen anslu- tet huvudminne med relativt snabb åtkomst för mottagande och av- givande av datasignaler och mottagande av adressignaler. Huvud- minnet rymmer ett flertal sidramar, som var och en innehåller samma flertal datasignaler som inrymmes på en sekundärminnes- sida och är adresserbar av fysiska adressignaler innefattande sidramnumersignaler och "offset”-signaler. Den centrala pro- cessorn, styrregistret och bussen utgör tillsammans organ för styrning av kopieringen av ett mot en sida svarande flertal av datasignaler 1 sekundärminnet till vissa huvudminnessidramar adresserade av fysiska adressignaler, och tvärtom.
Datorn är inrättad att arbeta i beroende av vissa datasignaler som representerar makroinstruktioner lagrade i.detfysiska minnet; 10 15 20 25 30 35 8107831-3 den centrala processorn och styrregistret arbetar tillsammans i beroende av signaler som representerar läs- och skrivminnesåt- komstmakrointruktioner för alstring av virtuella adressignaler omfattande segmentnummersignaler, sidnummersignaler och “offset"- signaler och för avgivande av de virtuella adressignalerna till spärren. Den centrala processorn och styrregistret arbetar vi- dare i beroende av minnesåtkomstmakroinstruktionerna för utfö- rande av en översättning av de virtuella adressignalerna till motsvarande fysiska adressignaler. översättningen omfattar överföring av segmentnummer- och sidnummersignalerna till huvud- minnet för adressering av vissa delar av huvudminnet som inne- håller sidramnummersignalerna, samt överföring av sidramnummer- signaler från huvudminnet, tillsammans med "offset"-signalerna från spärren, till minnesadressregistret.
Den centrala processorn och styrregistret arbetar vidare i be- roende av läsminnesåtkomstmakroinstruktionerna för överföring av datasignaler från de adresserade huvudminnessidramarna till minnesdataregistret, och i beroende av skrivminnesåtkomstmakro- instruktionerna för överföring av sidramsignalerna från minnes- dataregistret till de adresserade huvudminnets sidramarna.
Enligt uppfinningen omfattar datorn ett indexerat direktminne ("random access memory", här betecknat T/RAM eller “Translation- RAM”) i den centrala processorn med indexeringsorgan anslutna till vissa av spärrens utgångar. Vidare är multiplexororgan an- ordnade med sina utgångar anslutna till minnesadressregistrets ingångar samt försedda med två uppsättningar ingångar, varvid direktminnets utgångar är anslutna till den första uppsättningen ingångar, och spärrens utgångar är anslutna till den andra upp- sättningen ingångar. Den centrala processorn och styrregistret arbetar till en början beroende av en minnesâtkomstmakroinstruk- tion för överföring av signaler representerande det virtuella adressidnumret från spärren till direktminnets indexeringsorgan för att på dess utgångar avge uppsättningen signaler lagrade vid det indexerade stället, innefattande signaler som represen- terar sidramnumret och en felsignal med ett av två tillstånd. lO 15 20 25 30 Å 35 8107831-3 8 Multiplexororganen arbetar i beroende av ett första tillstånd hos felsignalen för överföring av de indexerade sidramnummer- signalerna frân direktminnet till minnesadressregistret för adressering av huvudminnet, och arbetar i beroende av ett andra tillstånd hos felbiten för överföring av den virtuella adress- utsignalen från spärren till minnesadressregistret för över- sättning. Den centrala processorn och styrregistret arbetar vida- re i beroende av felsignalens andra tillstånd för utförande av översättningen av de virtuella adressignalerna och pålägg- ning av signaler som representerar det översatta sidramnumret tillidirektminnets indexerade ställe tillsammans med en felsig- nal som har nämnda första tillstånd.
Enligt ytterligare en aspekt av uppfinningen har datorns centrala processor ett statusregister omfattande ett flertal inställbara statusbitar för indikering av datorns operationsstatus samt in- dexsignallagringsorgan omfattande en referens- och ändringstabell, som ger en inställbar referensbit och en inställbar ändringsbit för varje sidram i huvudminnet. Referens- och ändringstabellen är ansluten till det indexerade direktminnets1nxfing för indexering av tabellen med avseendepâ sidramnummer. Den centrala processorn och styrregistret arbetar tillsammans i beroende av en minnesåt- komstmakroinstruktion för inställning av den indexerade referens- biten, och i beroende av en skrivminnesåtkomstmakroinstruktion förkinställning av den indexerade ändringsbiten. Referens- och ändringstabellens utgång är ansluten till statusregistret för in- ställning av vissa statusbitar i beroende av tillståndet hos de indexerade referens- och ändringsbitarna.
Enligt ytterligare en aspekt av uppfinningen omfattar datorn en övervakningsbit i huvudminnet svarande mot varje virtuell minnes- segment och som intar ettdera av två tillstånd, samt en stack- signallagringsanordning i den centrala processorn. Den centrala processorn och styrenheten arbetar tillsammans i beroende av felsignalens andra tillstånd och de virtuella adressegmentnummer- signalerna under översättning av den virtuella adressen för adres- sering av ifrågavarande segments övervakningsbit och för kontroll 10 15 20 25 30 35 '8107831-3 av dess tillstånd. Den centrala processorn och styrenheten arbe- tar i beroende av ett första tillstånd hos övervakningsbiten för överföring av de virtuella adressidnummersignalerna till stacksignallagringsanordningen för lagring.
Den centrala processorn och styrenheten arbetar i beroende av en uppgiftsomkopplare under datorns arbete för återvinning av de lagrade virtuella adressidnummersignalerna från stacksignal- lagringsanordningen och för överföring av de lagrade signalerna för indexering av direktminnet och inställning av felsignalen i dess andra tillstånd.
Ytterligare syften, särdrag och fördelar med uppfinningen kommer att framgå av nedanstående detaljbeskrivning, varvid hänvisas till bifogade ritningar.
Fig. l visar schematiskt en dator i enlighet med uppfinningen; Fig. 2 visar ett förenklat blockdiagram av den centrala proces- sorn i datorn enligt fig. 1; Fig. 3 visar schematiskt det virtuella adressutrymmet hos datorn enligt fig. 1; Fig. 4 visar formatet hos en inmatning i översättnings-RAM-minnet enligt uppfinningen; Fig. 5 visar formatet hos en virtuell adress; Fig. 6 visar formatet hos en sidtabellinmatning; Fig. 7 visar formatet hos ett segmentstyrregister; Fig. 8 visar formatet hos en fysiskt adress; Fig. 9 visar schematiskt styrregistret och dess utgångar; 10 15 20 25 30 35 8107831-3 10 Fig. 10 visar en krets för härledning av vissa styrsignaler från vissa av styrregistrets utgångar; Fig. ll visar i detalj kretsen för T/RAM-adresspärren; Fig. 12 visar T/RAM-kretsen i detalj; Fig. 13, 14 och 15 visar kretsar för härledning av vissa styr- signaler; Fig. 16 visar kretsen för T/RAM-multiplexorn i detalj; Fig. l7 visar kretsen för referens/ändringstabellen i detalj; Fig. l8 visar klocksignaler som används för styrning av datorns operationer; Fig. 19 visar i detalj olika element hos den centrala processorn som hänför sig till övervakningsfunktionen; Fig. 20 visar schematiskt hur övervakade inmatningar tömmes i T/RAM-enheten; Fig. 21 visar kretsen för minnesadressregistermultiplexorn i detalj; och Fig. 22 och 23 visar tidsförloppet vid åtkomst av T/RAM-enheten och laddning av en inmatning i T/RAM-enheten enligt uppfinningen.
På ritningarna, i synnerhet i fig. l, visas schematiskt en dator som utnyttjar ett virtuellt minne. Datorn 10 har en central pro- cessor (CPU) 12, som har direkt åtkomst till ett styrregister 14, vilket innehåller grupper av styrsignaler för styrning av opera- tionerna i datornsnaskinvara.Vissa grupper av styrsignaler är åt- komliga i beroende av instruktioner som inmatas via yttre en- heter eller i beroende av aktuella operationsbetingelser i den centrala processorn, på i och för sig välkänt sätt. 10 15 20 25 30 35 81-07831-3 ll Datorn 10 har vidare ett huvudminne 16 och en minnesstyrenhet 18, vars funktion är att åstadkomma minnesåtkomst i den centrala processorn och de enheterna. Bland de perifiera en- heterna finns ett sekundärminne 20 samt andra enheter, såsom ett tangentbord, en bildskärm, en skrivare, gränssnitt för tele- Huvudminnet adresseras av den centra- yttre kommunikation och liknande. la processorn via en buss 15 (omfattande data- och adressled- ningar) samt minnesstyrenheten 18.
Huvudminnet 16 har en kapacitet på åtta megabytes (8.388.608 bytes) med en ordstorlek på 32 bitar (fyra bytes). Huvudminnet 16 adresseras av 24 ledningar, som en 24-bit fysisk adress. In- nehållet i huvudminnet 16 betraktas som uppdelat i sidramar.
Storleken på en sidram är 2 K bytes. Med hänvisning till fig. 8 omfattar det 24-bit fysiska adressformatet ett sidramnummer på 13 bitar och en ll-bit "offset" som anger en byte inom sidramen.
(Den (högre ordningens)extra biten i sidramnumret tillåter fram- tida utvidgning av minnet med en faktor två.) Innehållet i sekundärminnet Zoelkmfilerna betraktas som uppde- lat på sidor, varvid varje sida är av samma storlek som en sid- ram i huvudminnet 16, d.v.s. 2 K bytes. Data överföres mellan sekundärminnet och huvudminnet i block, i synnerhet i sidenhe- ter. Det särskilda sätt på vilket detta åstadkommas utgör ej någon del av föreliggande uppfinning.
Med hänvisning till fig. 2 visas vissa element i den centrala pro- cessorn 12 som är väsentliga för uppfinningen, i blockdiagram mer detaljerat än fig. l. I synnerhet omfattar den centrala pro- cessorn l2 en aritmetisk enhet (ALU) 22 av känt utförande, vilken har två 32-bit ingângsbussar, en A-buss 21 och en B-buss 23, och vars utgång är ansluten till en 32-bit destinationsbuss, nämligen en C-buss 24. C-bussen 24 är bland andra destinationer ansluten till ingången på en stack 30 omfattande 256 32-bit register, till en C-buss/minnesmultiplexor 32, till en T/RAM-adresspärr 38(”lauflf)0ch till ett 24-bit virtuellt adressregister 26. En del av stacken 30 är utformad som övervakningsomräde 34, omfattande register 10 15 20 25 30 35 8107831-3 12 innehållande 128 ord om vardera 32 bitar. Såsom kommer att fram- gå nedan användes övervakningsområdet 34 för lagring av en lista över nyligen översatta virtuella adresser. Övervakningsområdets funktion kommer att framgå nedan, i synnerhet i anslutning till beskrivningen av fig. 19.
Ytterligare en del 36 av stacken 30 användes för lagring av en uppsättning signaler benämnda segmentangivartabell. Det finns åtta segmentangivare i tabellen, en för varje segment hos det virtuella adressutrymmet som vid varje tidpunkt understödjes av ma- skflfififlfifl- Formatet för en segmentangivare visas i fig. 7, och dess användning kommer att förklaras i anslutning till beskriv- ningen av fig. 19.
C-buss/minnemultiplexorn 32 omkopplas av minnesstyrsignaler, som ej har med föreliggande uppfinning att göra, för överföring an- tingen av data från huvudminnet 16 eller data från C-bussen 24, och utsignalerna från multiplexorn 32 tillföres en uppsättning med fem minnesdataregister (0 - 4) 40. Utsignalerna från minnes- dataregistren 40 överföres antingen till en databuffert 44 och därefter till huvudminnet 16, eller till en uppsättning arbets- register samt skift- och multiplikationslogik, ej visadei.detalj, eftersom arrangemanget ej utgör någon del av föreliggande upp- finning.
Ett statusregister 46 med 32 bitar är ej anslutet till A-, B- eller C-bussen; dess bitar inställes individuellt och avkännes av den centrala processorns 12 maskinvara under operationen. De speciella statusbitar, som berör föreliggande uppfinning, är 'M2H' och "M2B", vilka inställes.av kretsen i fig. 17, på ett sätt som kommer att beskrivas nedan, samt 'STATE', som inmatas till kretsen i fig. 14. “STATE”-biten indikerar antingen 'system- status” (STATE = 0) eller “användarstatus“ (STATE = 1); ope- rativsystemet körs i systemstatus, medan samtliga program körs i användarstatus. Vissa maskinfunktioner kan vara oåtkomliga i det ena eller andra tillståndet; detaljerna för detta berör emellertid ej föreliggande uppfinning. 10 15 20 25 30 35 8107831-3 13 Huvudminnet 16 adresseras via en uppsättning av tre minnes- adressregister (MAR 0 - 2) tillsammans betecknade med hänvis- ningssiffran 28. MAR-registren 28 laddas via en MAR-multiplexor 52, som visas i detalj i fig. 21. De tre enskilda MAR-registren.har 24, 32 resp. 32 bitar. Vart och ett av de tre minnesadress- registren väljes för utförande av olika funktioner hos den cen- trala processorn 21, men dylika val berör ej föreliggande upp- finning och kommer ej att beskrivas i det följande.
MAR-registrens 28 utgångar är anslutna till B-buss 23 och till en minnesadresspärr (icke visad), från vilken de (fysiska) adressignalerna utmatas för adressering av huvudminnet 16 på konventionellt sätt (och således ej utgör någon del av före- liggande uppfinning).
För att åstadkomma ett fördelaktigt minnesarrangemang i enlighet med föreliggande uppfinning omfattar den centrala processorn 10 vidare ett lokalt direktminne 42 (random access memory), benämnt översättnings-RAM eller T/RAM, omfattande 4K (4096) celler om 16 bitar. T/RAM 42 indexeras av tolv ledningar som ger ett 12- bit index. T/RAM 42 har en ingång per sida (varje sida innehåller 2K bytes) för hela det virtuella adressutrymmet på åtta megabytes som understödja; av maskinvaran vid en given tidpunkt.
I en fleruppgiftsdator kan det virtuella adressutrymmet betraktas som uppdelat i segment. I den här beskrivna datorn är det virtu- ella adressutrymmet uppdelat i åtta segment, vart och ett omfattan- de en megabyte. Med hänvisning till fig. 3, i vilken det av maskin- varan vid en given tidpunkt understödda virtuella adressutrymmet visas schematiskt, innehåller segmentet 0 datorns operativsystem, segmentet l användarprogrammet, segmentet 2 användardata,och ytter- ligare segment är tillgängliga för utvidgning. Varje användare av maskinen ser ett virtuellt adressutrymme med åtta segment, varvid operativsystemet befinner sig i segmentet 0 i varje sådant utrymme, ehuru det egna programmet och motsvarande data befinner sig i de återstående segmenten. 10 20 25 30 35 8107831-3 14 Det virtuella adressformatet om 24 bitar visas i fig. 5. Den första biten V0 (av högre ordning) i de virtuella adress- signalerna utgör en ogiltighetsbit, vilken i en giltig 23-bit adress är lika med noll; om denna bit är lika med ett, är adres- sen större än vad som är tillåtet. (Det virtuella adressformatet på 24 bitar tillåter framtida utvidgning av det understödda vir- tuella adressutrymmet). Status hos den högre ordningens bit V0 kontrolleras av maskinens nasküuara,såsom kommer att beskrivas nedan. Bitarna V1 - V12 omfattar en enhet benämnd T/RAM-index.
Denna del av adressen är logiskt uppdelad i två delar, ett seg- mentnummer och ett sidnummer, under den centrala processorns arbete. Emellertid göres ej någon åtskillnad i naskünnman T-RAM- index översättes under avbildningen av den virtuella adressen till en fysisk adress, såsom kommer att beskrivas. Den återstå- ende delen av den virtuella adressen (Vl3 - V23) är en ll-bit "offset" eller bitgruppens läge på sidan. Denna del av adressen översättas ej, eftersom den är densamma för de virtuella och fysiska adresserna.
För lagring av signaler i T/RAM eller återvinning av signaler därifrån, indexeras T/RAM av de tolv "T/RAM-index"-signalerna som avges från T/RAM-adresspärren 38, vilken mottager de tjugo- fyra virtuella adressignalerna (såsom visas i fig. S) från C- bussen 24. Under datorns arbete laddas T/RAM, med en ingång i taget från det virtuella adressregistret 26 pâ ett sätt som kom- mer att beskrivas i det följande.
Formatet hos en T/RAMfinmatning visas i fig. 4. Hela inmatningen omfattar 16 bitar; biten 0 är en felbit, biten l är en lässkydds- bit (Read Proteot,RP), biten 2 är en skrivskyddsbit (Write Protect, WP) och bitarna 3 - 15 omfattar ett sidramnummer. För att återgå till fig. 2 läses sidramnumersignalerna hos en adressinmatning från T/RAM 42 till T/RAM-multiplexorn 54, vilken även mottager en insignal från T/RAM-adresspärren 38. T/RAM-multiplexorns 54 arbete komer att diskuterasi anslutning till fig. 16.
Sidramnummerdelen (bitarna 3 - l5) av utsignalen från T/RAM 42 10 15 20 25 30 35 8107831-3 15 överförs även för indexering av en referens- och ändringstabell 50, som innehåller en 2-bit-ingång per sidramnummer. Användningen av en referens- och ändringstabell är i sig själv välkänd och kommer ej att beskrivas i detalj i detta sammanhang. De tvâ bitar- _na omfattar en referensbit och en ändringsbit för varje sidram; referensbiten inställes "hög" för indikering av en referens till ifrågavarande sidram i huvudminnet; ändringsbiten inställes "hög" för indikering av att motsvarande ingång i huvudminnet har ändrats.
Operativsystemet hänvisar som en del av'städningsarbetet" till ändringsbiten och âterinskriver motsvarande del av sekundärminnet i syfte att hålla det uppdaterat med huvudminnet. Referens- eller ändringsbitarna inställes endast då en översättning utföres, så- ledes ej vid varje minnesreferens. (Förekomsten av minnesreferen- ser som ej avser översättning kommer att diskuteras i det följande.) Referens- och ändringsbitarna återställes då sidramen återanvän- des, d.v.s. då en annan del av sekundärminnet inläses i ifråga- varande sidram i huvudminnet, normalt vid en tidpunkt då datorn byter uppgift.
Vad avser föreliggande uppfinning mottager minnesadressregistren 28 insignaler på två sätt. För det första, vid förkomsten av ett "T/RAM-fel", vilket kommer att beskrivas i det följande, mottages de (virtuella) sidnummersignalerna från T/RAM-adress- spärren 38. Alternativt, då T/RAM-fel ej föreligger, mottages de (fysiska) sidramnumren från T/RAM-multiplexorn 54. I båda fallen mottages ”offset"-signalerna (ll bitar av lägre ordning) från T/RAM-adresspärren 38.
Med hänvisning till fig. 9 innehåller styrregistret 14 styrsig- naler, som är åtkomliga i grupper om fyrtioåtta utsignaler pâ fyrtioåtta parallella ledningar. Signalen på varje ledning kanvara antingen hög ( 1 ) eller låg (0) och överföres direkt till den centrala processorns 12 maskinvara för styrning av dennas arbete. Av signalerna på dessa ledningar har endast vissa be- röring med föreliggande uppfinning. Dessa utgörs av signalerna O - 6, vilka överföres som en grupp till en avkodningskrets (fig. 10) för härledning av endera av styrsignalerna som 10 15 20 25 30 35 8107831-3 16 betecknas med ¶LT/RAM" (load entry into T/RAM), "TRCT" (test reference/change table) och “RRCT“ (reset reference/change table); signalerna 22 och 23, vilka utväljer ett av de tre MAR-registren 28 och vars funktion kommer att framgå nedan; samt signalerna 7 - 29, vilka överförs som en grupp till en avkodningskrets (fig.lO) för härledning av en eller båda av översättningsstyrsignalerna som betecknas med "WT" (write-type översättningsoperation) och “TRAN" (translate). överföringen av de härledda styrsignalerna kommer att beskrivas nedan.
Det allmänna sättet att âtkoma vissa grupper av styrsignaler som svar pâ makroinstruktioner och maskinbetingelser utgör ej någon del av föreliggande uppfinning, utan är välkänd teknik i samband med styrning av datorer. Atkomsten av vissa grupper, som har beröring med föreliggande uppfinning, kommer däremot att beskrivas nedan.
Med hänvisning till fig. ll visas kretsen för T/RAM-adress- spärren 38 i detalj. Bitarna 8 - 31 från 32-bit C-bussen 24, som omfattar den virtuella adressen om 24 bitar, inmatas till spärren 38. Spärren 38 styrs av en vid "CK" inmatad signal, som omfattar en styrsignal och en klocksignal; styrsignalen utgöres av någon av signalerna TRAN, LT/RAM, TRCT och RRCT, vilkas härledning visas i fig. 10, medan klocksignalen är “T2“ (fig. 18). vid mottagande av en klocksignal överför spärren bitarna 0 - 13, vilka omfattar V0-biten ("IVA“) och 12-bit T/RAM-index (se fig.5) hos den virtuella adressen. De återstående utsignalerna från spärren 38 omfattar ll-bib“bffSGt"(se fig.5)och överföres till MAR-multiplexorn S2.
I fig. 12 visas kretsen för T/RAM 42 i detalj. De tolv T/RAM- indexbitarna från spärren 38 (fig. ll) pâlägges för indexering av T/RAM för antingen ingångar eller utgångar. Signaler represen- terande en inmatning till T/RAM kan tillföras T/RAM på datain- gångarna (“DI') från det virtuella adressregistret 26 efter pâ- läggning av styrsignalen "LT/RAM" (från kretsen i fig. 10) till- samans med klocksignalen T2 (fig. 18). Signalerna lagras i det 10 15 20 25 30 35 8107831-5 17 indexerade läget. Signaler representerande den indexerade in- matningen utmatas på datautgångarna (“DO“), och bitarna 3 -15 (representerande sidramnumret) överföres till T/RAM-multiplexorn 54 (Pig. l6), vars arbete skall beskrivas nedan.
Med hänvisning till fig. 4 omfattar de signaler, som lagrats som en inmatning i T/RAM, nämnda felbit (F), lässkyddsbit (RP) och skrivskyddsbit (WP) samt ett 13-bit sidramnummer. Såsom framgår av fig. 12 utmatas dessa 16 signaler på datautgångarna (DO) hos T/RAM 42. Med hänvisning till fig. l3 överföres felbiten, till- sammans med "IVA"-biten från T/RAM-adresspärren 38 (fig. ll), styrsignalerna CM 22 och 23 från styrregistret 14 (MAR-väljar- signaler) och TRAN (från fig. 10) till en översättningsfellogik- krets 56, som alstrar endera av två möjliga felsignaler TTO och TTl. Dessa utgör båda översättningsfelsignaler; skillnaden dem emellan beror av vilket av minnesadressregistren som skall mot- taga adressignalerna och har ej med föreliggande uppfinning att göra.
Med hänvisning till fig. 14 överföres WP- och RP-bitarna från T/RAM 42, tillsammans med STATE-statusbiten (fig. 2) och WT- och TRAN-styrsignalerna (från fig. 10) till en skyddsfellogik- krets 58. Denna krets alstrar en felsignal TT2. Användningen av skyddsbitar är välkänd och behöver ej beskrivas närmare i detta sammanhang. to De tre felsignalerna överföres till kretsen 60 i fig. 15, vilken om någon felsignal ej alstras (d.v.s. om det varken föreligger något T/RAM-fel eller ett skyddsfel) alstrar en "inget fel“-styr- signal TT. De tre felsignalernas ytterligare funktioner kommer att beskrivas i det följande.
Med hänvisning till fig. 16 överföres styrsignalen TT, tillsammans med klocksignalen Tl, till T/RAM-multiplexorn 54 för val av endera av dess två ingångar (varje ingång utgörs av en uppsättning led- ningar). Om det ej finns nâgra felsignaler, överföres 13-bit sidramnummerdelen av den från T/RAM 42 (fysisk adress) utlästa lO 15 20 25 30 '35 8107831-3 18 inmatningen medelst multiplexorn 54 via ledningarna TR 0 - 12 till MAR-multiplexorn 52 (Fig. 2). Alternativt, i händelse av en felsignal, överföres C-bussbitarna 8 - 20 (virtuell adress) på ledningarna TR O - 12 till MAR-multiplexorn 52.
I fig. 17 visas referens/ändringstabellen SO i detalj. De styr- signaler, som styr operationerna i denna tabell, utgörs av WT (write-type translation operation), RRCT (reset reference/ change table), RF (set reference bit) och TRCT (test reference/ change table), samtliga från fig. 10; TRAN (translate), från fig. 13; TT (inga fel) från fig. l5; CM 22 (en av MAR-väljarstyr- signalerna) från fig. 9; och CL 9 och CL 10, vilka utgör utsig- naler från T/RAM-spärren 38 (fig. ll). Klocksignalerna Tl och TA (fig. l8) styr vidare referens/ändringstabellens arbete. Signa- len RRCT återställer en 2-bit inmatning, indexerad av T/RAM- bitarna 3 - 15, till "OO" (båda bitarna inställes låga). Sig- nalen RF inställer "referens"-biten hos den indexerade inmat- ningen till högt värde. Signalerna WT och TT inställer "ändrings“- biten hos den indexerade inmatningen till högt värde.Användningen av sidramnummer från T/RAM 42 för indexering av referens-ändrings- tabellen 50 ger ökad hastighet och effektivitet i datorns arbete.
Signalen TRCT förorsakar att statusbitarna "MZH" och MZB" i sta- tusregister 46 (fig. 2) inställes till värdena för referens- och ändringsbitarna hos den adresserade inmatningen. Statusbitarna kontrolleras senare av operativsystemet 1 syfte att bestämma vilka delar av sekundärminnet som måste omskrivas för överens- stämmelse med innehållet i huvudminnet. Denna procedur är väl- känd inom datortekniken och utgör ej någon del av föreliggande uppfinning.
Av fig. 9 framgår att felsignalerna ttO, ttl och tt2 åtkommer vissa grupper av styrsignaler som lagras i styrregistret. Hur vissa styrsignaler utför de antydda funktionerna i detalj beror på detaljstrukturen i den maskin, i vilken de användes, och det ligger inom datorkonstruktörens ordinära kunnande att ut- välja dylika signaler. Således kommer denna aspekt av maskinens lO 15 20 25 30 35 8107831-3 19 arbete att beskrivas i allmänhet utan detaljer beträffande styr- signaler, med undantag av de signaler som krävs för laddning av T/RAM.
I huvudsak styr den T/RAM-felbehandlande gruppen av styrsignaler den centrala processorn CPU för kopiering,från stackens 30 del 36 (segmentangivartabellen) till ett av minnesdataregistren 40, av signaler, vilka representerar en viss segmentangivare som in- dikeras av segmentdelen (tre bitar av högre ordning) av de vir- tuella adressignalernas T/RAM-index, som har överförts till ett arbetsregister från minnesadressregistren 28 via B-bussen 23.
Såsom framgår av fig. 7 omfattar varje segmentangivare 32 bitar, av vilka biten 0 benämnes "övervakningsbiten", vars användning kommer att förklaras nedan; bitarna l - 10 representerar längden av sidtabellen för segmentet; bitarna ll - 30 representerar adres- sen i sidtabellen för segmentet; och biten 31 är en "virtuell/ fysisk" bit, som anger huruvida adressen är virtuell eller fysisk.
Om sidtabelladressen är fysisk, behöver adressen ej översättas; om den är virtuell, måste den översättas innan man går vidare.
Sidtabelladressdelen av segmentangivarsignalerna användes för adressering av sidtabellen i huvudminnet 16. Formatet för en sidtabellinmatning visas i fig. 6, och det framgår att den är likadan som en T/RAM-inmatning. Ifrågavarande sidtabellinmatning i sidtabellen adresseras genom användning av siddelen av T/RAM- indexdelen (bitarna Vl - Vl3)av de virtuella adressignalerna (nu i ett arbetsregister). De signaler som representerar den adres- serade sidtabellinmatningen överförs från huvudminnet till det virtuella adressregistret 26. Sidtabellinmatningens PTE felbit kontrolleras. Om denna felbit = l, finns sidan ej i minnet utan måste överföras på konventionellt sätt, varpå felbiten återstäl- les till O. Om felbiten = 0, laddar styrsignalen LT/RAM (fig.10) sidtabellinmatningssignalerna i T/RAM i det indexerade läget 10 15 20 25 30 35 8107831-5 20 tillsammans med en felbit inställd till O, samt skyddsbitar, vars tillstånd bestämmes på ett sätt som ej berör föreliggande upp- finning.
Med hänvisning till fig. 19 kontrolleras segmentangivarsignaler- nas "övervakningsbit“ i kretsen 62. Om övervakningsbiten befinnes vara låg âterstartas tolkningen av makroinstruktionen. Om över- vakningsbiten befinnes vara hög, utmatas en styrsignal "MOVE VA", som medför att de virtuella adressignalerna överföres från arbets- registret till stacken 30. En stackadresslogikkrets 64 adresserar ett läge i stackens övervakningsomrâde 34; de virtuella adress- signalerna lagras i övervakningsomrâdet. Upp till 128 virtuella adresser kan lagras i övervakningsomrâdet. Räkning genomföres och användes av stackadresslogiken 64 vid laddning av ytterligare virtuella adresser. Sedan de virtuella adressignalerna har lag- rats i övervakningsområdet 34 omstartas tolkningen av makroin- struktionen.
De i övervakningsområdet 34 lagrade virtuella adressignalerna är tillgängliga för användning vid tömning av vissa inmatningar i T/RAM 42. Detta kan åstadkommas på olika sätt, beroende på arbetsbetingelser som ej har med föreliggande uppfinning att göra. Då datorn omställes från en uppgift till en annan tömmes således övervakade inmatningar av operativsystemet i samband med andra “städnings"-operationer som utföres i samband med omställningen och som i övrigt ej har med uppfinningen att göra.
Med hänvisning till fig. 9 utlöser uppgiftsomkopplingssignalen (från operativsystemet) vissa styrsignaler i styrregistret för tömning av de övervakade inmatningarna.
Vid tömning av en T/RAM-inmatning som framgår schematiskt av fig. 20 överföras de i stackens 30 övervakningsområdet 34 lagra- de virtuella adressignalerna till T/RAM-adresspärren 38 för indexering av den speciella inmatning som skall tömmas. Inmat- ningens bit av högsta ordning (felbit) omställes till hög nivå, och de återstående bitarna omställes till låg nivå i det indexe- rade läget för tömning av inmatningen. Vid användning av adresser 10 15 20 25 30 35 8107831-3 21 från övervakningsområdet kan vissa övervakade inmatningar snabbt tömmas utan att nödvändigvis hela T/RAM tömmes. Samtidigt kvar- står icke övervakade inmatningar (såsom signaler representerande adresser till operativsystemsegment) i T/RAM och behöver ej tömmas eller återladdas vid nästa minnesätkomst. Härigenom spa- ras ytterligare operationstid.
Betrakta exempelvis användningen av segmentet l i det virtuella adressutrymmet (fig. 3). Då datorn börjar arbeta finns ej några giltiga inmatningar i T/RAM för segmentet l i det virtuella adressutrymmet. Operativsystemet laddar inledningsvis S99' mentangivaren för segmentet l med M = 1 (som indikerar övervak- ning; se fig. 7). Den uppgift som hänför sig till segmentet l påbörjas därefter.
Antag att exekveringen av en uppgift medför minnesreferenser till nio sidor i segment l innan uppgiften avbrytes. Då var och en av dessa sidor åtkommes översättas dess virtuella adress genom hänvisning till segmentangivare och sidtabellen; vid varje hän- visning noteras övervakningsbitens status, och då varje fysisk ' adress lagras i T/RAM lagras den virtuella adressen i övervak- ningsomrâdet 34. Då uppgiften avbrytes, måste segment l T/RAM-in- matningarna tömmas. I detta exempel kommer vid detta tillfälle nio virtuella adresser att vara lagrade i stackens 30 övervak- ningsområde 34. Därför behöver endast dessa nio T/RAM-inmatningar tömmas. Under drift initieras översättningsfunktionen under den centrala processorns CPU 12 arbete i beroende av en makroinstruk- tion, d.v.s. en instruktion som utgör en del av det program som exekveras av datorn. CPU 12 tolkar varje makroinstruktion, och den centrala processorns 12 maskinvaruelement arbetar i enlighet med tolkningen för utförande av den angivna operationen. Dylik maskinvarutolkning av makroinstruktioner är välkänd inom dator- tekniken och utgör ej någon del av föreliggande uppfinning, utom med avseende på vad som nedan beskrives.
Under tolkningen av makroinstruktionen kommer den centrala proces- sorn CPU 12, om denna noterar att en minnesâtkomstoperation 10 15 20 25 30 35 8107831-3 22 specificeras, som svar härpâ att utläsa vissa styrsignaler från styrregistret 14, innefattande vissa signaler på ledningarna CM 27 - 29 (fig. 10).
Det är ej varje minnesâtkomst som behöver en översättningsopera- tion. Ofta förekommer successiva minnesoperationer till intill- liggande lägen i minnet, och i stället för att alstra en hel 23-bit adress för varje sådan minnesoperation är det möjligt att genom uppräkning eller nedräkning av en redan alstrad adress (som redan föreligger i minnesadressregistren 28) specificera läget för efterföljande minnesoperation. Dylika uppräknings- eller nedräkningsâtgärder betecknas som "krusnings"-operationer ("ripple" operation), och i den här beskrivna datorn specifi- ceras krusningsfunktionen av kombinationer av styrsignaler på ledningarna CM 27 - 29, andra än de som visas i fig. 10. Valet av krusning- eller översättningsgruppen av styrsignaler i styrregistret bestäms av andra aspekter av tolkningen av makro- instruktionerna från den centrala processenheten CPU 12, vilka ej berör föreliggande uppfinning.
Om nästföljande fysiska adress skall bestämmas genom översätt- ning, snarare än genom upp- eller nedräkning, så styr, beroende på huruvida en läs- eller skrivoperation skall genomföras, ut- signalerna pâ de tre ledningarna CM 27-29 antingen en operation "läs huvudminnet med översättning” (RTRAN) eller en operation "skriv huvudminnet med översättning" (WTRAN}. Två typer av läs- operationer "RTRAN"förekommer beroende på vissa arbetsbetingelser som ej berör föreliggande uppfinning.
Den grupp av styrsignaler som innefattar RTRAN- eller WTRAN-kom- binationen av signaler på ledningarna CM 27-29 omfattar även C- buss-destinationsstyrsignaler, vilka ger upphov till signaler som representerar den virtuella adress, vid vilken minnesåtkomst skall genomföras, till C-bussen 24 och överföring från C-bussen 24 till det virtuella adressregistret 26 och till T7RAMfadress- spärren 38. Styrsignalen TRAN frigör T/RAM-indexdelen av de virtuella adressignalerna från T/RAM-adresspärren 28 till T/RAM 42. 10 15 20 25 30 35 8107831-3 23 De indexerade TjRAM-inmatningssignalerna utmatas på dataut- gångarna hos T/RAM 42. Fel- och skyddsbitarna (TR O - TR 2) överföres till felkretsarna i fig. 13 och l4, medan sidram- nummerbitarna (TR 3- 15) överföres till T/RAM-multiplexorn 54 (fig. 16). I frånvaro av fel, omkopplar “inget fel"-signalen TT multiplexorn 54 för överföring av sidramnummersignalerna till MAR-multiplexorn 52 (fig. 2), vilken överför dessa signa- ler tillsammans med"offseÜ-signalerna (V14 - 23) till minnes- adressregistren MAR 28, vilka bildar den uppsättning signaler som representerar den fysiska adressen. Den indexerade inmat- ningen i referens/ändringstabellen 50 uppdateras vid denna tid- punkt.
Alternativt, om ett T/RAM~fel föreligger, förorsakar en felbit (TR O) på ingången till kretsen 56 i fig. 13 att en översättnings- felsignal ttO eller ttl alstras. Kretsens 60 (fig. 15) utsignal omkopplar multiplexorn 54 för utmatning av T/RAM-adressignaler- na från C-bussen 24 till MAR multiplexorn 52. Översättningsfel- signalen utlöserenxdss grupp av styrsignaler i styrregistret 14, vilka åstadkommer att en segmentangivare i stackens 30 tabell 36 användes för att i huvudminnet 16 lokalisera sidtabellen för seg- mentet ifråga. Sidtabellingången hittas i segmentsidtabellen, och ifrågavarande avkodade styrsignal LT/RAM (fig. 10) medför att sidtabellinmatningssignalerna laddas i T/RAM 42 (fig. 12), från V MAR 26, i det läge som bestämmas av T/RAM-indexsignalerna från T/RAM-adresspärren 38. övervakningsbiten i segmentangivaren kontrolleras av kretsen 62 och om den är hög lagras de virtuella adressignalerna i stackens 30 övervakningsomrâde 34 för användning vid selektiv tömning av T/RAM-inmatningen vid ett senare tillfälle.
Tolkningen av makroinstruktionen omstartas därefter. WTRAN eller RTRAN-styrsignalerna överföras återigen till kretsen i fig. 10, och de indexerade inmatningssignalerna utläses från T/RAM 42. Vid denna tidpunkt är felbiten = 0, varigenom de översatta sidram- nummersignalerna kan placeras i minnesadressregistren MAR 28 för utförande av den läs- eller skrivoperationen, som anges av makro- instruktionen. Referens/ändringstabellen 50 uppdateras i det läge lO 15 20 25 30 35 8107831-3 24 som vid denna tidpunkt indexeras av sidramnummersignalerna (fig.l7).
Om ett skyddsfel förekommer och upptäckes av kretsen 58 i fig. 14, utlöser skyddsfelsignalen tt2 vissa styrsignaler i styrregistret 14 (fig. 9), vilka förorsakar lämpliga åtgärder i den centrala processorn CPU 12 på ett sätt som ej berör föreliggande uppfinning.
Tidsstyrningen av indexeringen av T/RAM 42 visas i fig. 22. Såsom framgår av denna figur omfattar en cykel för den centrala proces- sorn (CP) fyra tidsintervall TA, TO, Tl och T2 (dessa signaler alstras i enlighet med fig. 18). Varje översättningsoperation kräver tvâ CP-cykler, en "MOVE" och en “TRAN". Tidsstyrningen är densamma oavsett om det föreligger något T-RAM-fel.
Tidssignalen T2 utgör en signal till T/RAM-adresspärren 38 (fig.ll) för överföring av de virtuella adressignalerna från C-bussen 24 för indexering av T/RAM 42. Bitarna F, WP och RP i utsignalen från T/RAM pålägges kretsarna i fig. 13 och l4 för alstring av felsignaler, och kretsens 60 (fig.l5) utsignal överföres tillsam- mans med tidssignalen Tl till T/RAM-multiplexorn 54. I händelse av ett T/RAM-fel överföres de virtuella adressignaler till MAR-mul- tiplexorn 52; annars överföres sidramnummersignalerna (de fysiska adresserna). Utsignalen från MAR-multiplexorn 52 (fig. 23) laddas i minnesadressregistren 28 vid T2. Slutligen uppdateras referens- och ändringstabellen 50 vid nästa Tl (om något T/RAM-fel ej föreligger).
Såsom har beskrivits ovan överföresi.händelse av ett T/RAM-fel en felsignal till styrregistret 14 för utlösning av lämpliga styr- signaler för felets åtgärdande. En av de sålunda utlösta signalerna är LT/RAM (ladda T/RAM, fig. 10) som i enlighet med vad som be- skrivits ovan medför att sidramnummersignalerna laddas i T/RAM.
Tidsförloppet vid laddning av en inmatning i T/RAM 42 efter ett T/RAMrfel visas i fig. 23.
Sedan datorn har utfört en del av en första användares program omkopplas maskinen för utförande av en annan användares program. lO 15 20 25 30 35 8107831-3 25 Detta innebär normalt att nya data måste överföras från filerna (sekundärminnet 20, fig. l) till huvudminnet. En sidtabell (för varje segment i den andre användarens virtuella adressutrymme) konstrueras av operativsystemet för införing av de speciella sidramarna i huvudminnet,i vilka sekundärminnets sidor inskrives.
Dessa sidtabeller användes för översättning av virtuella adresser till fysiska adresser för det virtuella minnet, sådant det ses av den andre användaren. Sidtabellen för denförreanvändarens system är ej längre giltig (eftersom den andre användarens pro- gram eller data nu är placerade i de sidramar som tidigare an- vänts av den första användaren), och inmatningar i T/RAM som avser de första sidtabellerna måste ogiltigförklaras.
Operativsystemet svarar på denna uppgiftsomkoppling genom ut- förande av ett antal “städnings"-operationer, innefattande ak- tivering av de nya sidtabellerna genom införande av nya seg- mentangivare från huvudminnet till stackens 30 parti 36 för an- visning till sidtabellerna. Under genomförandet av dylika opera- tioner tömmer operativsystemet de övervakade inmatningarna från T/RAM, såsom visas i fig. 20, under användning av de i stackens 30 övervakningsområde 34 lagrade virtuella adresserna på det ovan beskrivna sättet. Emellertid är ej samtliga inmatningar i T/RAM ogiltiga; de som avser operativsystemsegementet (segment 0) kvarstår såsom giltiga. Dylika operativsystemdelar är exempelvis en schematiseringsmodul, en sidframställningsmodul, filhanterings- åtgärder och databashanteringsåtgärder. I dylika fall har seg- mentangivaren för det segment, som innehåller ifrågavarande modul en övervakningsbit inställd på låg nivå,och som resultat härav lagras ej nâgra virtuella adresser i detta segment i över- vakningsområdet 34. Således tömmes ej några T/RAM-inmatningar för detta segment i samband med en uppgiftsomkoppling. Enligt uppfinningen ogiltigförklaras endast inmatningarna från sid- tabellen för ett övervakat segment då en ny uppgift skall genomföras.
Olika modifikationer av uppfinningen kan genomföras av fackmannen inom ramen för den i patentkraven angivna uppfinningstanken.

Claims (3)

1. 8107831-3 26 PATENTKRAV l. Anordning vid en fleruppgiftsdator arbetande med virtuellt minne bestående av ett flertal segment, vilken dator omfattar - en central processor (12) med en spärr (38), ett minnesadressregister (28) och ett minnesdataregister (40); - ett till den centrala processorn (12) anslutet styrregister (l4); - en till den centrala processorn (12 ansluten buss (15) med adressignalledningar för mottagande av adressignaler från minnes- adressregistret (28) och datasignalledningar för mottagande av datasignaler från minnesdataregistret (40) och angivande av datasignaler till minnesdataregistret (40); - ett fysiskt minne inrättat för lagring av datasignaler represen- terande data och makroinstruktioner, innefattande - ett till nämnda buss (15) anslutet sekundärminne (20) med rela- tivt långsam åtkomst och som inrymmer ett flertal sidor, vilka var och en innehåller ett flertal av nämnda datasignaler, och - ett till nämnda buss (15) anslutet huvudminne (16) med relativt snabb åtkomst för mottagande och avgivande av datasignaler samt mottagande av adressignaler, vilket huvudminne inrymmer ett fler- tal sidramar, vilka var och en är inrättad att innehålla samma flertal datasignaler som innehålles av en av nämnda sekundärmin- nessidor och är adresserbar av fysiska adressignaler (fig. 8) omfattande sidramnummersignaler och "offset“-signaler; varvid den centrala processorn (12), styrregistret (14) och bussen (15) tillsammans utgör styrorgan (l2,l4,l5) för styrning av kopie- ringen av ett mot en sida svarande flertal av datasignaler i sekun- därminnet (20) till adresserade huvudminnessidramar och tvärtom, och varvid datorn är inrättad att arbeta i beroende av vissa av datasignalerna, som representerar makroinstruktioner lagrade i det fysiska minnet, och den centrala processorn (12) och styrre- gistret (l4)arbetar tillsammans i beroende av signaler, som re- presenterar vissa läs- och skrivminnesâtkomstmakroinstruktioner 8107831-3 27 för alstring av virtuellaadressignaler (fig. 5) omfattande segment- nummersignaler, sidnummersignaler och "offset"-signaler och för avgivande av dessa virtuella adressignaler till nämnda spärr (38), och den centrala processorn (12) och styrregistret (l4) vidare arbetar i beroende av nämnda minnesåtkomstmakroinstruktioner för utförande av en översättning av de virtuella adressignalerna till motsvarande fysiska adressignaler, vilken översättning omfattar överföring av segmentnummer- och sidnummersignalerna till huvud- minnet (16) för adressering av vissa delar av huvudminnet som in- nehâller sidramnummersignalerna samt överföring av sidramnummersig- nalerna från huvudminnet (16), tillsammans med "offset"-signa- lerna från nämnda spärr (38), till nämnda minnesadressregister (28), och den centrala processorn (12) och styrregistret (14) dessutom arbetar i beroende av läsminnesåtkomstmakroinstruktionerna för över- föring av datasignaler till minnesdataregistret (28) från nämnda adresserade huvudminnessidramar (i l6), och i beroende av skriv- minnesåtkomstmakroinstruktionerna för överföring av sidramsignaler- na från minnesdataregistret (28) till de adresserade huvudminnes- sidramarna (i 16), k ä_n n e t e c k n a d a v - ett indexerat direktåtkomstminne (42) i den centrala processorn (12) med indexeringsorgan anslutna till vissa av spärrens (38) utgångar; - multiplexorgan (54) anordnade med sina utgångar anslutna till minnesadressregistrets (28) ingångar samt försedda med två upp- sättningar ingångar, varvid direktåtkomstminnets (42) utgångar är anslutna till den första uppsättningen ingångar, och spärrens (38) utgångar är anslutna till den andra uppsättningen ingångar; varvid den centrala processorn (12) och styrregistret (14) till en början tillsammans arbetar i beroende av minnesâtkomstmakroinstruk- tionerna för överföring av signaler representerande det virtuella adressidnumret från spärren (38) till direktâtkomstminnets (42) 8107831-3 28 indexeringsorgan för att på dess utgångar avge den vid det indexe- rade stället lagrade uppsättningen signaler, innefattande signaler som representerar sidramnumret och en felsignal med ett av två tillstånd; vilka multiplexorgan (54) i beroende av ett första tillstånd hos felsignalen åstadkommer överföring av de indexerade sidramnummer- signalerna från direktåtkomstminnet (42) till minnesadressregistret (28) för adressering av huvudminnet (16) och i beroende av ett andra tillstånd hos felsignalen åstadkommer överföring av de virtuella adressutsignalerna från spärren (38) till minnesadress- registret (28) för översättning; och varvid den centrala processorn (12) och styrregistret (14) vidare i beroende av felsignalens andra tillstånd utför över- sättning av de virtuella adressignalerna och överför signaler representerande det översatta sidramnumret till direktâtkomst- minnets indexerade läge tillsammans med felsignalen i nämnda första tillstånd.
2. Anordning enligt krav 1, k ä n n e t e c k n a d a v att den centrala processorn (12) vidare omfattar - ett statusregister (46) med ett flertal inställbara statusbitar för indikering av datorns operationsstatus; - en indexerad referens- och ändringstabell (50) med en inställ- bar referensbit och en inställbar ändringsbit för varje sidram i huvudminnet (l6); vilket referens- och ändringstabell är ansluten till det indexe- rade direktåtkomstminnets utgång för indexering av tabeller med avseende på nämnda sidramnummer; varvid den centrala processorn (12) och styrregistret (14) till- 8107831-3 29 sammans 1 beroende av en minnesåtkomstmakroinstruktion ombesörjer inställning av den indexerade referensbiten och i beroende av en skrivminnesåtkomstmakroinstruktion ombesörjer inställning av den indexerade ändringsbiten; och varvid referens- och ändringstabellens (SO) utgång är anslu- ten till statusregistret (46) för inställning av vissa statusbi- tar i beroende av de indexerade referens- och ändringsbitarnas tillstånd.
3. Anordning enligt krav l, k ä n n e t e c k n a d a v att - en övervakningsbit i huvudminnet (16) svarar mot varje virtuellt minnessegment och har ettdera av tvâ tillstånd; - en stacksignallagringsanordning (30) är anordnad i den centrala processorn (l2); - den centrala processorn (12) och nämnda styrorgan arbetar tillsammans i beroende av felsignalens andra tillstånd och av de virtuella adressegmentnummersignalerna, under översättningen av den virtuella adressen, för adressering av ifrågavarande seg- ments övervakningsbit och för avkänning av dennas tillstånd; - den centrala processorn (12) och nämnda styrorgan arbetar i be- roende av ett första tillstånd hos övervakningsbiten för över- föring av de virtuella adressidnummersignalerna till stacksignal- lagringsanordningen (30) för lagring; och - den centrala processorn (12) och nämnda styrorgan arbetar i beroende av en uppgiftsomkopplare under datorns arbete för åter- vinning av de lagrade virtuella adressidnummersignalerna från stacksignallagringsanordningen (30) och för överföring av de lagrade signalerna för indexering av direktâtkomstminnet för in- ställning av felsignalen i dennas andra tillstånd.
SE8107831A 1980-12-29 1981-12-29 Dator med indexerat lokalt direktminne SE445269B (sv)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/220,902 US4410941A (en) 1980-12-29 1980-12-29 Computer having an indexed local ram to store previously translated virtual addresses

Publications (2)

Publication Number Publication Date
SE8107831L SE8107831L (sv) 1982-06-30
SE445269B true SE445269B (sv) 1986-06-09

Family

ID=22825488

Family Applications (1)

Application Number Title Priority Date Filing Date
SE8107831A SE445269B (sv) 1980-12-29 1981-12-29 Dator med indexerat lokalt direktminne

Country Status (11)

Country Link
US (1) US4410941A (sv)
JP (1) JPS57135493A (sv)
BE (1) BE891653A (sv)
CA (1) CA1165898A (sv)
CH (1) CH657218A5 (sv)
DE (1) DE3151745A1 (sv)
FR (1) FR2497374B1 (sv)
GB (1) GB2090448B (sv)
IT (1) IT1145635B (sv)
NL (1) NL192144C (sv)
SE (1) SE445269B (sv)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4464713A (en) * 1981-08-17 1984-08-07 International Business Machines Corporation Method and apparatus for converting addresses of a backing store having addressable data storage devices for accessing a cache attached to the backing store
US4525778A (en) * 1982-05-25 1985-06-25 Massachusetts Computer Corporation Computer memory control
JPS6047624B2 (ja) * 1982-06-30 1985-10-22 富士通株式会社 アドレス変換制御方式
US4513371A (en) * 1982-07-29 1985-04-23 Ncr Corporation Computer interface apparatus using split-cycle lookahead addressing for faster access to paged memory
US4926316A (en) * 1982-09-29 1990-05-15 Apple Computer, Inc. Memory management unit with overlapping control for accessing main memory of a digital computer
US4524415A (en) * 1982-12-07 1985-06-18 Motorola, Inc. Virtual machine data processor
WO1984002784A1 (en) * 1982-12-30 1984-07-19 Ibm Virtual memory address translation mechanism with controlled data persistence
DE3300223A1 (de) * 1983-01-05 1984-07-05 Siemens AG, 1000 Berlin und 8000 München Anordnung zur umwandlung einer virtuellen adresse in eine physikalische adresse fuer einen in seiten organisierten arbeitsspeicher einer datenverarbeitungsanlage
US4580217A (en) * 1983-06-22 1986-04-01 Ncr Corporation High speed memory management system and method
US4538241A (en) * 1983-07-14 1985-08-27 Burroughs Corporation Address translation buffer
US4747043A (en) * 1984-02-10 1988-05-24 Prime Computer, Inc. Multiprocessor cache coherence system
US4669043A (en) * 1984-02-17 1987-05-26 Signetics Corporation Memory access controller
US4873629A (en) * 1984-06-20 1989-10-10 Convex Computer Corporation Instruction processing unit for computer
US4757438A (en) * 1984-07-12 1988-07-12 Texas Instruments Incorporated Computer system enabling automatic memory management operations
EP0182501A3 (en) * 1984-11-20 1988-01-20 Tektronix, Inc. Memory mapping method and apparatus
US4835686A (en) * 1985-05-29 1989-05-30 Kabushiki Kaisha Toshiba Cache system adopting an LRU system, and magnetic disk controller incorporating it
US4972338A (en) * 1985-06-13 1990-11-20 Intel Corporation Memory management for microprocessor system
US4698749A (en) * 1985-10-18 1987-10-06 Gte Communication Systems Corporation RAM memory overlay gate array circuit
JPH0814803B2 (ja) * 1986-05-23 1996-02-14 株式会社日立製作所 アドレス変換方式
US4930065A (en) * 1987-08-20 1990-05-29 David Computer Corporation Automatic data channels for a computer system
US4937736A (en) * 1987-11-30 1990-06-26 International Business Machines Corporation Memory controller for protected memory with automatic access granting capability
US5155834A (en) * 1988-03-18 1992-10-13 Wang Laboratories, Inc. Reference and change table storage system for virtual memory data processing system having a plurality of processors accessing common memory
US5155826A (en) * 1988-12-05 1992-10-13 Fadem Richard J Memory paging method and apparatus
US5099415A (en) * 1989-02-15 1992-03-24 International Business Machines Guess mechanism for virtual address translation
US5644787A (en) * 1993-08-03 1997-07-01 Seiko Epson Corporation Apparatus for controlling data transfer between external interfaces through buffer memory using table data having transfer start address transfer count and unit selection parameter
US5479628A (en) * 1993-10-12 1995-12-26 Wang Laboratories, Inc. Virtual address translation hardware assist circuit and method
US5842225A (en) * 1995-02-27 1998-11-24 Sun Microsystems, Inc. Method and apparatus for implementing non-faulting load instruction
US5838893A (en) * 1996-12-26 1998-11-17 Microsoft Corporation Method and system for remapping physical memory
US5956754A (en) * 1997-03-03 1999-09-21 Data General Corporation Dynamic shared user-mode mapping of shared memory
KR100546403B1 (ko) * 2004-02-19 2006-01-26 삼성전자주식회사 감소된 메모리 버스 점유 시간을 가지는 시리얼 플레쉬메모리 컨트롤러
US7506009B2 (en) * 2005-01-28 2009-03-17 Dell Products Lp Systems and methods for accessing a shared storage network using multiple system nodes configured as server nodes
GB0505289D0 (en) * 2005-03-15 2005-04-20 Symbian Software Ltd Computing device with automated page based rem shadowing and method of operation
US20070039060A1 (en) * 2005-08-12 2007-02-15 Jamieson Georges E Methods and systems for programming secure data into programmable and irreversible cells
US9588902B2 (en) * 2012-12-04 2017-03-07 Advanced Micro Devices, Inc. Flexible page sizes for virtual memory

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3829840A (en) * 1972-07-24 1974-08-13 Ibm Virtual memory system
JPS51115737A (en) * 1975-03-24 1976-10-12 Hitachi Ltd Adress conversion versus control system
US3976978A (en) * 1975-03-26 1976-08-24 Honeywell Information Systems, Inc. Method of generating addresses to a paged memory
JPS52149444A (en) * 1976-06-08 1977-12-12 Fujitsu Ltd Multiplex virtual space processing data processing system
DE2641722C3 (de) * 1976-09-16 1981-10-08 Siemens AG, 1000 Berlin und 8000 München Hierarchisch geordnetes Speichersystem für eine datenverarbeitende Anlage mit virtueller Adressierung
JPS53121538A (en) * 1977-03-31 1978-10-24 Fujitsu Ltd Information processor

Also Published As

Publication number Publication date
GB2090448B (en) 1984-11-28
JPH0425579B2 (sv) 1992-05-01
NL192144B (nl) 1996-10-01
DE3151745C2 (sv) 1991-05-16
GB2090448A (en) 1982-07-07
FR2497374B1 (fr) 1988-05-06
DE3151745A1 (de) 1982-08-19
JPS57135493A (en) 1982-08-21
US4410941A (en) 1983-10-18
SE8107831L (sv) 1982-06-30
FR2497374A1 (fr) 1982-07-02
CA1165898A (en) 1984-04-17
NL8105849A (nl) 1982-07-16
CH657218A5 (de) 1986-08-15
IT8168706A0 (it) 1981-12-29
BE891653A (fr) 1982-04-16
NL192144C (nl) 1997-02-04
IT1145635B (it) 1986-11-05

Similar Documents

Publication Publication Date Title
SE445269B (sv) Dator med indexerat lokalt direktminne
US3979726A (en) Apparatus for selectively clearing a cache store in a processor having segmentation and paging
US5123101A (en) Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss
US4577274A (en) Demand paging scheme for a multi-ATB shared memory processing system
US5826057A (en) Method for managing virtual address space at improved space utilization efficiency
US5230045A (en) Multiple address space system including address translator for receiving virtual addresses from bus and providing real addresses on the bus
US3898624A (en) Data processing system with variable prefetch and replacement algorithms
US3735360A (en) High speed buffer operation in a multi-processing system
EP0348495B1 (en) Method and digital computer for prefetching vector data from memory in a memory system designed for scalar processing
US5526509A (en) Method and apparatus for controlling one or more hierarchical memories using a virtual storage scheme and physical to virtual address translation
EP0175091B1 (en) Fast two-level dynamic address translation method and means
US4277826A (en) Synchronizing mechanism for page replacement control
KR950007448B1 (ko) 집적회로 메모리 시스템
EP0072179A2 (en) Clearing invalid addresses in cache memory
EP0377970B1 (en) I/O caching
EP0243724A2 (en) Multilevel storage hierarchy with a variable address mode
US20070094450A1 (en) Multi-level cache architecture having a selective victim cache
EP0095033A2 (en) Set associative sector cache
US4323968A (en) Multilevel storage system having unitary control of data transfers
GB2068155A (en) Cache memory system
JPH0318211B2 (sv)
JPS589277A (ja) デ−タ処理装置
EP0081822B1 (en) A method for operating a virtual storage management system
US3911401A (en) Hierarchial memory/storage system for an electronic computer
JPS5821308B2 (ja) ルツクアヘツド・コントロ−ル装置

Legal Events

Date Code Title Description
NUG Patent has lapsed

Ref document number: 8107831-3

Effective date: 19940710

Format of ref document f/p: F