DK168415B1 - Fremgangsmåde og indretning til udøvelse af to instruktionssekvenser i en på forhånd fastlagt rækkefølge. - Google Patents

Fremgangsmåde og indretning til udøvelse af to instruktionssekvenser i en på forhånd fastlagt rækkefølge. Download PDF

Info

Publication number
DK168415B1
DK168415B1 DK300888A DK300888A DK168415B1 DK 168415 B1 DK168415 B1 DK 168415B1 DK 300888 A DK300888 A DK 300888A DK 300888 A DK300888 A DK 300888A DK 168415 B1 DK168415 B1 DK 168415B1
Authority
DK
Denmark
Prior art keywords
sequence
instruction
execution
write
address
Prior art date
Application number
DK300888A
Other languages
English (en)
Other versions
DK300888D0 (da
DK300888A (da
Inventor
Bjoern Erik Rutger Jonsson
Sten Edward Johnson
Lars-Oerjan Kling
Oleg Avsan
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
Publication of DK300888D0 publication Critical patent/DK300888D0/da
Publication of DK300888A publication Critical patent/DK300888A/da
Application granted granted Critical
Publication of DK168415B1 publication Critical patent/DK168415B1/da

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Advance Control (AREA)
  • Complex Calculations (AREA)
  • Communication Control (AREA)
  • Image Input (AREA)
  • Electrotherapy Devices (AREA)
  • Ultra Sonic Daignosis Equipment (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Multi Processors (AREA)

Description

DK 168415 B1
Opfindelsen angår en fremgangsmåde og en indretning til udøvelse af to instruktionssekvenser i en på forhånd fastlagt rækkefølge, idet udøvelsen af den første, henholdsvis den anden sekvens indbefatter udpegning af læseinstruk-5 tioner, som indeholder hver sin læseadresse, til tilvejebringelse af datainformation, som er lagret i et ud af et antal gennem hver sin adresse tilgængelige datalagerpladser i et første henholdsvis et andet særskilt datalager, samt udpegning af skriveinstruktioner, som indeholder hver sin 10 skriveadresse og datainformation til overføring af denne datainformation til en særskilt datalagerplads, som er gjort tilgængelig ved skriveadressen og som er tilknyttet den enkelte sekvens, idet sekvensernes særskilte datalagerpladser opdateres indbyrdes i tilknytning til rækkefølgen og de 15 udpegede skriveinstruktioner, og idet der i tilknytning til udøvelsen af den anden sekvens i rækkefølgen anvendes datainformation, for hvilken det ikke på forhånd er sikret, at den er uafhængig af den datainformation, som er tilvejebragt i tilknytning til udøvelsen af den i rækkefølgen første 2 0 sekvens.
En kendt løsning af ovenstående informationsbehandlingsproblem består i, at man ikke påbegynder udøvelsen af den sekvens, som ifølge det tidligere nævnte og i det følgende benævnes den anden sekvens, før afslutningen af udøvel-25 sen af den sekvens, som ifølge det tidligere nævnte og i det følgende benævnes den første sekvens, er afsluttet. Denne trivielle løsning tilvejebringes naturligsvis i et databehandlingssystem, som er styret af en enkelt processor, således at sekvenserne udøves en ad gangen under anvendelse 30 af for begge sekvenser fælles pladser i hoveddatalageret.
Det er kendt at forøge databehandlingskapaciteten ved at udøve instruktionssekvenser i parallel. Så længe det på forhånd er sikret, at sekvenserne er indbyrdes uafhængige, tilvejebringes fejlfrit parallelarbejde ved hjælp af en 35 såkaldt "pre-processing" eller "multi-processing", (en sådan fremgangsmåde er omtalt i GB-A-1 441 458) eller også ved DK 168415 B1 2 hjælp af et system med en processor, som indbefatter mindst to databehandlingsenheder til udøvelse af hver sin instruktionssekvens. Det er kendt at tilvejebringe informationsbehandling både ved et hoveddatalager, som er fælles for et 5 antal databehandlingsenheder, og gennem et antal adskilte datalagre, som er tilknyttet hver sin databehandlingsenhed, og som tid efter anden opdateres fælles.
Ved forekomst af følsomme instruktionssekvenser, som påvirker hinanden, og som derfor må udøves i en på forhånd 10 fastlagt rækkefølge, anvendes eksempelvis, som nævnt i tidsskriftet Computer Design, August 15, 1985, side 76-81 eller i overensstemmelse med Sequent Computer Systems, Inc., "Balance 8000 System Technical Summary", programsprog, oversættere og sekvensmaskinel til parallelbehandling af indbyrdes 15 uafhængige sekvenser, medens parallelbehandling af de følsomme sekvenser forhindres.
En sådan fremgangsmåde er kendt fra US-A-4 626 989, hvori omtales en dataprocessor, som tillader parallel behandling af instruktionerne. Behandlingssystemet indbefatter et 20 fordelingskredsløb, som fordeler den dekodede information fra de følgende instruktioner, som operationsmæssigt er i modstrid med fortsatte instruktioner, til instruktionsudøvelsesenheden, som styrer udøvelsen af de fortsatte instruktioner.
25 Som det blev nævnt indledningsvis angår den forelig gende opfindelse den datainformationsbehandling og anvendelse af to til hver sin sekvens knyttede særskilte datalagre.
Ved den foreslåede informationsbehandling udøves begge sekvenser parallelt, uden at der indledningsvis tages hensyn 30 til den på forhånd fastlagte rækkefølge. Den anden sekvens afhængighed af den første sekvens overvåges, og den fastlagte rækkefølge tilvejebringes ved en mellemliggende lagerenhed, som indbefatter et hjælpedatalager og i det mindste én sammenligningskreds .
35 I hjælpedatalageret mellemlagres adresser, som til vejebringes på grund af læseinstruktioner, som udpeges under DK 168415 B1 3 udøvelse af den anden sekvens. Hver skriveadresse, som er udpeget under udøvelsen af den første sekvens, sammenlignes med hver af beskriveadresserne, som er lagrede i hjælpedata-lageret. Så længe der ikke registreres nogen lighed mellem 5 adresserne, anvendes under udøvelsen af den anden sekvens ingen datainformation, som er afhængighed af den under udøvelsen af den første sekvens tilvejebragte datainformation.
Men hvis der under udøvelse af den anden sekvens er tilvejebragt information fra en til den anden sekvens knyttet 10 særskilt datalagerplads, hvilken information herefter er blevet korrigeret i tilknytning til opdatering som følge af en til den første sekvens knyttet skriveoperation, dvs. hvis de to sekvenser ikke længere er indbyrdes uafhængige, slettes hjælpelageret, og den anden sekvens instruktionsud-15 pegninger påbegyndes igen. Påbegyndelsen af den anden sekvensudøvelse sker på et tidspunkt, hvor en første del af den første sekvens allerede er udøvet, og hvor der som følge heraf foreligger mindre risiko for, at den anden sekvens er afhængig af den resterende del af den første sekvens.
20 I hjælpedatalageret mellemlagres også skriveadresser og datainformation, som er tilvejebragt ved skrive instruktioner, som er blevet udpeget under udøvelsen af den anden sekvens, for at fremme opdateringen af det særskilte datalager, som er knyttet til den første sekvens.
25 Ved anvendelse af den her foreslåede informationsbe handling tilvejebringes der en forøgelse af databehandlingskapaciteten, hvis udøvelse af den anden sekvens er uafhængig af i det mindste de instruktioner, som udpeges ved afslutningen af udøvelsen af den første sekvens. Kapacitetsfor-30 øgeisen bliver yderligere større, hvis man i hjælpedatalageret kun mellemlagrer en udpeget adresse som læseadresse, hvis denne adresse ikke tidligere har været tilvejebragt som en skriveadresse under udøvelsen af den anden sekvens, og der sker en yderligere forhøjelse, hvis det særskilte 35 datalager, som er knyttet til den anden sekvens, opdateres trinvist i tilknytning til hver skriveinstruktion, som ud- DK 168415 B1 4 peges under udøvelse af den første sekvens.
Fremgangsmåde og apparat fremgår af henholdsvis krav 1 og krav 3. Ifølge opfindelsen er fremgangsmåden og appara-tet ejendommelig ved henholdsvis den i krav 1 og krav 3's 5 kendetegnende del angivne udformning.
Opfindelsen forklares i det følgende nærmere under henvisning til tegningen, hvorpå:
Fig. 1 anskueliggør to databehandlingsenheder, som er forbundne med hvert sit særskilte datalager, og en op-10 dateringsenhed, fig. 2 anskueliggør mere detaljeret aktiveringen af et særskilt datalager til læsning, skrivning og opdatering samt tillige en instruktionslagerindretning og en start- og identifikationskreds, som indgår i en databehandlingsenhed, 15 fig. 3 anskueliggør en i en databehandlingsenhed indgående mellemlagerenhed.
Det i fig. 1 viste databehandlingssystem indbefatter to særskilte datalagre 1 til oplagring af datainformation, som behandles af mindst to databehandlingsenheder 2, som er 20 forbundet med hvert sit særskilte datalager. Databehandlingsenhederne udøver hver sin instruktionssekvens til styring af dertil knyttede, i fig. 1 ikke viste funktionsenheder under udøvelse af dertil knyttede systemfunktioner. I afhængighed af, om databehandlingsenhederne styres ved en fælles 25 processor, eller om hver databehandlingsenhed indbefatter et antal processorer, tilvejebringes et i princippet konventionelt en- eller multiprocessorsystem, hvori instruktionssekvenserne til en begyndelse udøves gennem de til sekvenserne knyttede særskilte datalagre, hvis tilknyttede data-30 behandlingsenhed imidlertid beordrer en opdateringsenhed 3 til at opdatere systemets øvrige særskilte datalagre i tilknytning til rækkefølgen og til de udøvede skriveinstruktioner. Et sådant databehandlingssystem med et antal databehandlingsenheder og dertil knyttede særskilte datalagre, 35 som opdateres fælles tid efter anden, er eksempelvis omtalt i Infotech International Ltd., 1976, Nicholson House, Maiden- DK 168415 B1 5 head, Bershire, England, S-E Granberg, "APZ 150: A Multiprocessor system for the control of transit telephone exchanges" .
I fig. 1 vises stærkt forenklet to databehandlingsen-5 heder 2 til udøvelse i en på forhånd fastlagt rækkefølge af den tidligere nævnte første og anden instruktionssekvens. Udover en kendt instruktionslagerindretning 4 til enkeltvis udpegning af instruktioner, som er lagrede i et instruktionsdatalager, indbefatter hver databehandlingsenhed en 10 start- og identifikationskreds 5 til angivelse af, om den dertil knyttede sekvens er den første uafhængige, eller eventuelt den anden afhængige sekvens, og en mellemlagerenhed 6. Ved mellemlagerenhederne styres opdateringen af de særskilte datalagre og dermed sekvensernes udøvelse i den på 15 forhånd fastsatte rækkefølge. Den mellemlagerenhed, hvis databehandlingsenhed udøver den anden sekvens, mellemlagrer de instruktionerne indgående adresser og overvåger således den anden sekvens afhængighed af den første sekvens.
Det er anført, at datainformationen overføres dels 20 på grund af skriveinstruktioner fra instruktionslagerindretningerne til de tilhørende særskilte datalagre, og dels ved læseinstruktioner fra de særskilte datalagre til de dertil knyttede databehandlingsenheder.
Databehandlingsenhedernes start- og identifikations-25 kredse 5 er udformet med hver sin startsignalindgang 7, som er forbundet med den anden startkreds's startsignalindgang 8. Hermed er den senere forklarede og ved den foreslåede informationsbehandling anvendte mulighed for at udøve begge sekvenser parallelt berørt.
30 Identifikationskredsen 5 er udformet med hver sin identifikationssignaludgang 9, som er forbundet med en første identifikationssignalindgang 10 på den anden databehandlingsenheds mellemlagerenhed 6. Den ene databehandlingsenheds mellemlagerenhed er udformet med en adresseindgang 11 og en 35 skrivemarkeringsindgang 12 til modtagelse af skriveadresser, som udpeges fra den anden databehandlingsenheds instruk- DK 168415 B1 6 tionslagerindretning 4. Mellemlagerenhederne 6 er indbyrdes forbundne ved en opdateringsudgang 13 og en opdaterings indgang 14.
Fig. 2 anskueliggør mere detaljeret end fig. 1 visse 5 databehandlingsenhedsdetaljer, hvortil kendskab er nødvendig for forståelsen af den her omhandlede informationsbehandling.
Instruktionslagerindretningen 4 indbefatter et instruktionslager 15 til lagring af en instruktionssekvens, som ved en udpegningsindretning 16 udlæses fra instruktions-10 lageret, en instruktion ad gangen, som følge af aktivering af en af udpegningsindretningens udgange.
Sekvensen indbefatter tre instruktionstyper. Den første typer som i fortsættelse heraf vil blive benævnt "læseinstruktion", som identificeres ved et binært "1" i 15 læseposition 17, anvendes til at beordre afhentning af data fra en plads i det med instruktionslageret forbundne særskilte datalager 1, hvortil tilvejebringes tilgang ved hjælp af en i et antal adressebitpositioner 18 lagrede adresse, f.eks.
Al, som indgår i den læsebitmarkerede instruktion. Læsebit-20 positionerne 17 henholdsvis adressebitpositionerne 18 er forbundne med det særskilte datalagers læseaktiveringsindgang 19, henholdsvis adresseringskreds 20.
Den anden instruktionsart, i fortsættelse herefter kaldet "skriveinstruktion", som identificeres med et "1" i 25 skrivebitposition 21, anvendes til at beordre indskrivning af data i en udpeget datalagerplads, f.eks. D2, som indgår i den skrivebitmarkerede instruktion og lagres i et antal databitpositioner 22, under anvendelse af en adresse, f.eks.
A2, som også indgår i den skrivebitmarkede instruktion og 30 lagres i adressebitpositionerne 18. Skrivepositionerne 21 er forbundne med det særskilte datalagers skriveaktiveringsindgang 23.
Den tredje instruktionstype, som identificeres ved "O" i bitpositionerne 17 og 21, anvendes til at beordre en 35 informationsbehandling uden læsning fra eller skrivning i det særskilte datalager. Anvendelsen af den information, DK 168415 B1 7 f.eks. SI, som lagres i bitpositionerne 18 og 22, som tilhører en tredje type instruktion, ligger uden for opfindelsens ramme, men fig. 2 viser en første ELLER port 24, hvis indgange er forbundne med bitpositionerne 17 og 21, og hvis 5 udgange er forbundne med en inverterende aktiveringsindgang på en første OG portindretning 25, som i aktiveret tilstand overfører indholdet, f.eks. SI, fra bitpositionerne 8 og 22 direkte til databehandlingsenheden.
Databehandlingsenhedernes start- og identifikations-10 kredse 5 indbefatter ifølge fig. 2 hver sin anden og tredje ELLER port 26 og 27. Porten 26 har sin ene indgang forbundet med udgangen på porten 27, hvis indgange er forbundne med ovennævnte startsignalindgang 8 og med en genstartsignaludgang 28 i den samme databehandlingsenhed tilvejebragte mel-15 lemlagerenhed 6. Databehandlingsenhederne indbefatter hver sin på fig. 2 ikke viste startsignalgenerator, hvis udgang over en startkredsklemme 29 er forbundet med den anden indgang på porten 26, med ovennævnte startsignaludgang 7 og med indstillingsindgangen på en første flipflop 30, som er 20 tilvejebragt med en udgang, som udgør den ovenfor nævnte identifikationssignaludgang 9, som er forbundet med en anden identifikationssignalindgang 31 på den dertil knyttede mellemlagerenhed 6. En anden flipflop 32 har sin indstillingsindgang forbundet med udgangen på porten 27 og sin udgang 25 forbundet med en tredje identifikationssignalindgang 33 på den dertil knyttede mellemlagerenhed 6. Porten 26 udpeger i aktiveret tilstand en instruktion af tredje art, som er en startinstruktion med indhold SI, hvorved databehandlingsenheden påbegynder udøvelse af den dertil knyttede instruk-30 tionssekvens ved hjælp af udpegningsindretningen 16. Det forudsættes, at den i instruktionslageret 15 lagrede sekvens afsluttes i tilknytning til aktiveringen af udpegningsindretningsudgangen 34, som er forbundet med nulstillingsindgangene på flipflop'erne 30 og 32.
35 Udøvelsen af den første sekvens iværksættes af den dertil knyttede startsignalgenerator. Som følge deraf angiver DK 168415 B1 8 et binært "l" på udgangen på den første flipflop 30, at instruktionsudpegningerne knyttede til den dertil hørende sekvens pågår, og at egensekvensen er den første sekvens.
Et binært "l" på udgangen på den anden flipflop 32 angiver, 5 at instruktionsudpegningerne til den dertil knyttede egne sekvens pågår, og at egensekvensen er den anden sekvens. Ifølge opfindelsen udpeges instruktionerne i begge sekvenser parallelt, hvilket f.eks. kan tilvejebringes ved en startsignaloverføring fra startsignaludgang 7, som hører til 10 den første sekvens, til startsignalindgang 8, som er knyttet til den anden sekvens.
De fra instruktionslageret 15 udpegede læse- og skriveadresser overføres via klemmerne 35-37 til databehandlingsenhedens mellemlagerenhed 6. Fig. 2 viser mellemlagerenheder-15 nes ovennævnte identifikationssignal- og skriveadresseind-gange 10-12, samt en første styreklemme 38, som er forbundet med udgangen på den første ELLER port 24.
Endelig anskueliggøres i fig. 2 med punkterede linier konventionelle opdateringsfunktioner. Opdateringsenheden 3 20 er udformet med or dr ekl emmer 39 og 40. Ordreklemmerne 39 henholdsvis 40 sender parallelt opdateringsordresignaler henholdsvis opdateringsadresser. Ud fra en fra det ene mellemlager modtagen opdateringsordre overfører opdateringsenheden ordresignalet til læseaktiveringsindgangen 19 på eget 25 særskilte datalager, og til det andet særskilte datalagers skriveaktiveringsindgang 23, samt den til ordren hørende adresse til de særskilte datalagres adresseringskredse 20.
Der tilvejebringes en dataoverføring fra eget særskilte datalager over opdateringsenheden til det andet særskilte 30 datalager.
Fig. 3 viser en mellemlagerenhed, som indbefatter et hjælpelager 41, som er tilvejebragt med søjler til mellemlagring af læseadresser og skriveadresser overført over klemmerne 35-37, hvilke søjler er udpeget til skrivning, 35 læsning og sletning ved hjælp af en afsøgningsindretning 42. Det vil senere blive forklaret, at hjælpelageret slettes, DK 168415 B1 9 når den dertil knyttede opdatering er gennemført.
Forkanten af en afsøgningimpuls, som udsendes fra en fjerde ELLER port 43, nulstiller afsøgningsindretningen. Tilgang til hjælpedatalagerets søjler tilvejebringes ved 5 forkanterne på trappeimpulser, som frembringes i en trappegenerator 44, og overføres over en aktiveret trappe OG port 45 til afsøgningsindretningens trinklemme 46. Trappeimpulserne sendes også til en læseaktiveringsklemme 47, hvorved søjlernes indhold læses for en søjle ad gangen.
10 Mellemlagerenheden ifølge fig. 3 indbefatter en første ELLER port 48, hvis indgange modtager de i hjælpelagerets skrive- og læsebitpositioner 49 og 50 mellemlagrede skrive-og læsemarkeringer, og hvis inverterende udgang over en stop ELLER port 51 er forbundet med en inverterende indgang 15 på trin OG porten 45 og med de første indgangen på en første og en anden OG styreport 52 og 53, hvis udgange er forbundne med ELLER porten 43. Styreporten 52 har sin anden indgang forbundet med en tredje OG styreport 54, hvis indgange er forbundne med den tidligere nævnte identifikationssignalind-20 gang 33 og styreklemme 38.
I overensstemmelse hermed tilvejebringes afsøgningsimpulser kun i den mellemlagringsenhed, som indgår i den databehandlingsenhed, som udøver den anden sekvens. En afsøgningsoperation beordres ved udpegning af en læse- eller 25 skriveinstruktion. Der tilvejebringes standsning af optrapningen, når der læses en ledig søjle, dvs. en søjle, som hverken er skrive- eller læsemarkeret. Forudsætningen for at iværksætte en afsøgning er, at den forudgående optrapning er blevet standset.
30 Den nævnte første ELLER port 48 er forbundet med afsøgningsindretningens skriveaktiveringsindgang 55. Det antages, at en skriveinstruktion med tilhørende adresse A3 samt en læseinstruktion med tilhørende adresse A4 udgør den anden sekvens første og anden mod det dertil knyttede sær-35 skilte datalager rettede instruktioner, hvis skrive-/læse-adresser på den forklarede vis mellemlagres i hjælpedatalag- DK 168415 B1 10 rets første og anden søjle, hvis bitpositioner 49 og 50 var nulstillede forud.
Styreporten 53 er med sin anden indgang forbundet med en fjerde OG styreport 56, hvis første indgang er for-5 bundet med den tidligere nævnte første identifikationsindgang 10 og hvis anden indgang over den tidligere nævnte skrivemarkeringsindgang 12 er forbundet med skrivebitpositionerne 21 i det instruktionslager 15, som oplagrer den første sekvens. En afsøgningsoperation beordres således i den anden 10 sekvens mellemlagringsenhed ved udpegning af en skriveinstruktion, som hører til den første sekvens. Taktfrekvensen fra trappegeneratoren 44 antages at være så tilpas høj i forhold til instruktionsudpegningshastigheden, at samtlige over styreportene 54 og 56 beordrede afsøgningsoperationer 15 kan gennemføres.
Mellemlagringsenheden indbefatter en første sammenligningskreds 57 hvis udgang aktiveres ved overensstemmelse med den over klemme 37 fra instruktionslageret 15 modtagne adresse og en af de under afsøgningsoperationen fra hjæl-20 pelagerets adressebitpositioner 58 læste adresser. En femte OG styreport 59 har sin udgang forbundet med stop OG porten 51, sin ene indgang forbundet med udgangen på den første sammenligningskreds 57 og modtager på sin anden indgang de i hjælpelagerets skrivebitpositioner 49 mellemlagrede skri-25 vemarkeringer. Det er således opnået, at en afsøgningsoperation standses, hvis en fra instruktionslageret udpeget læse-eller skriveadresse er i overensstemmelse med en mellemlagret skriveadresse.
Det antages, at udpegningen af læseinstruktionen med 30 dertil knyttet adresse A4 gentages en første gang efter udpegningen af et antal i fig. 3 ikke viste instruktioner med andre adresser end A3 og A4. Herved opnås, at den en første gang gentagne læseinstruktion mellemlagres en anden gang i en søjle, hvis bitpositioner 49 og 50 forinden har 35 været nulstillede. Den anden sekvens's læseinstruktioner med dertil knyttet adresse Ax kaldes første kategoris in- DK 168415 B1 11 struktioner, hvis de er udpeget før den samme adresse Ax forekommer i den anden sekvens i tilknytning til udpegning af en skriveinstruktion.
Det antages, at en skriveinstruktion med tilhørende 5 adresse A4 udpeges efter udpegningen af den tidligere nævnte førstegangsgentagende læseinstruktion og udpegningen af et antal i fig. 3 ikke viste instruktioner med andre adresser, end A3 og A4. Herved opnås, at denne skriveinstruktion mellemlagres i en forud ledig søjle. Det forudsættes endvidere, 10 at udpegningen af læseinstruktionen med dertil knyttet adresse A4 gentages en anden gang efter udpegningen af den nævnte skriveinstruktion med adressen A4. Herved tilvejebringes en afsøgningsstandsning i tilknytning til læsning af den mellemlagrede skriveinstruktion med adressen A4, men der til-15 vejebringes ingen læsemarkering i bitposition 50. Den en anden gang gentagne læseinstruktion med dertil knyttet adresse A4 udgør en anden kategoris instruktion, hvis dertil knyttede adresse ikke mellemlagres i hjælpelageret.
Den ene databehandlingsenheds mellemlagringsenhed 20 indbefatter en anden sammenligningskreds 60, hvis udgang aktiveres ved overensstemmelse mellem den over den tidligere nævnte adresseindgang 11 overførte adresse, som udpeges fra de adressebitpositioner 18, som indgår i den anden databehandlingsenheds instruktionslager 15, og en af de under en 25 afsøgningsoperation fra hjælpelagerets adressebitpositioner 58 læste adresser. Den anden sammenligningskreds er forbundet med den første indgang på en sjette OG port 61, hvis anden indgang er forbundet med den tidligere nævnte styreport 56, og hvis udgang er forbundet med den første indgang på en 30 syvende OG styreport 62. Udgangen på styreporten 62, som på sin anden indgang modtager de i hjælpelagerets bitpositioner 50 mellemlagrede læsemarkeringer, udgør den tidligere nævnte genstartsignaludgang 28 og er forbundet med en slette ELLER
63. Fra en aktiveret styreport 62 modtager den i fig. 2 35 viste ELLER port 27 et genstartsignal. Fra en aktiveret slette ELLER port 63 modtager afsøgningsindretningen 42 en DK 168415 B1 12 sletteordreimpuls, hvorved umiddelbart samtlige i hjælpelagerets mellemlagrede adresseinformationer slettes.
Herved opnås, at en sletning af hjælpelageret og en genstart af udøvelsen af den anden sekvens tilvejebringes, 5 hvis en mellemlagret første kategori læseinstruktion mødes, hvor den til denne instruktion knyttede adresse overensstemmer med den adresse, som er knyttet til en skriveinstruktion, som er udpeget under udøvelsen af den første sekvens. Sletningen skal tilvejebringes, idet den dertil knyttede data-10 behandlingsenhed har modtaget datainformation fra sit særskilte datalager på grund af den påtrukne første kategoris instruktion, som lageret ikke ville have modtaget, hvis der til stadighed havde været taget hensyn til den på forhånd fastlagte rækkefølge, dvs. hvis instruktionerne i den første 15 og den anden sekvens ikke var blevet udpeget parallelt.
Mellemlagerenheden omfatter en anden IKKE ELLER port 64, hvis indgang er forbundne med de tidligere nævnte identifikationssignalindgange 10 og 33, og hvis inverterende udgang er forbundet med ELLER porten 43. Når udpegningerne 20 i den første og den anden sekvens er afsluttede, beordres i overensstemmelse hermed en afsøgningsoperation, som imidlertid er resultatløs i den mellemlagerenhed, som indgår i den databehandlingsenhed, som har udøvet den første sekvens. En ottende OG styreport 65 er med sine indgange forbundne med 25 IKKE ELLER portene 48 og 64, og dens udgang er forbundet med slette ELLER porten 63. Der tilvejebringes en sletteor-dreimpuls, når den ved IKKE ELLER porten 64 aktiverede afsøgningsoperation er afsluttet.
Under denne afsøgnings operation frembringer mellem-30 lagerenheden for den anden sekvens opdateringsinformation, som udgøres af samtlige under udøvelsen af den anden sekvens udpegede og mellemlagrede skriveadresser. De fra hjælpelagerets bitpositioner 49 læste skrivemarkeringer modtages af en niende OG styreport 66, som har sin anden indgang forbun-35 det IKKE ELLER porten 64, og hvis udgang over en opdaterings ELLER port 67 er forbundet med den tidligere omtalte ordre- DK 168415 B1 13 klemme 39 på opdateringsenheden 3. Ved en anden OG portindretning 68, hvis aktiveringsindgang er forbundet med udgangen på styreporten 66, overføres de fra hjælpelagerets adres-sebitpositioner 58 læste opdateringsadresser over en ELLER 5 portindretning 69 til ordreklemmen 40 på opdateringsenheden 3.
En tiende OG styreport 70, hvis første indgang modtager de i hjælpelagerets bitpositioner 49 mellemlagrede skrivemarkeringer, er med sin anden indgang forbundet med 10 udgangen på styreporten 61, og dens udgang udgør den tidligere nævnte opdateringsudgang 13, som er forbundet med en tredje indgang på stop OG porten 51. Herved opnås, at den som følge af aktiveringen af styreporten 56 iværksatte afsøgningsoperation standses ifald der ved den anden sammen-15 ligningskreds 60 fastlåst lighed mellem én under udøvelsen af den første sekvens udpeget skriveadresse og en af de i hjælpelagerets under udøvelsen af den anden sekvens mellemlagrede skriveadresser.
Den i fig. 3 viste mellemlagerenhed indbefatter en-20 delig en ellevte OG styreport 71, hvis første indgang er forbundet med den tidligere nævnte identifikationssignalindgang 31, og hvis anden indgang, som aktiveres ved bagkanten af en impuls, er forbundet med klemmen 36, og hvis tredje indgang er inverterende og udgår den tidligere nævnte op-25 dateringsindgang 14, og hvis udgang er forbundet med opdaterings ELLER porten 67 og med aktiveringsindgangen på en tredje OG portindretning 72, som har sin indgang forbundet med mellemlagerenhedens klemme 37, og sin udgang forbundet med ELLER portindretningen 69. I overensstemmelse hermed 30 overfører ELLER porten 67 og ELLER portindretningen 69 i den mellemlagerenhed, som er tilknyttet den første sekvens, som opdateringsinformation én under udøvelse af den første sekvens udpeget og i denne sekvens indbefattet skriveadresse, hvis ikke denne skriveadresse er mellemlagret i det til den 35 anden sekvens knyttede hjælpelager.
Hvis der f.eks. indskrives data i en til den første DK 168415 B1 14 sekvens tilknyttet og ved adressen A3 tilgængelig plads i det særskilte datalager, ville det være fejlagtigt at opdatere det særskilte datalager for den anden sekvens, eftersom denne skriveadresse A3, i overensstemmelse med hvad der 5 tidligere er blevet antaget, på et tidligere tidspunkt har været mellemlagret i hjælpelageret knyttet til den anden sekvens. Hvis det derimod angår en opdatering på grund af en i den første sekvens indbefattet skriveinstruktion med adressen A4, og hvis det i overensstemmelse med hvad der 10 tidligere har været antaget gælder, at denne adresse A4 forinden har været mellemlagret i hjælpelageret knyttet til den anden sekvens, dels som hørende til en første kategoris læseinstruktion, og dels som hørende til en skriveinstruktion, slettes hjælpelagerets indhold, når læseadressen A4 15 mødes. Derfor sker der ingen aktivering af styreporten 70 i den anden sekvens’s mellemlagerenhed, således at der på den tidligere forklarede vis gennemføres en korrekt opdatering af det særskilte datalager, som er knyttet til den anden sekvens, ved styreporten 71 i mellemlagerenheden knyttet 20 til den første sekvens og under anvendelse af adressen A4.
Ifølge en fremgangsmåde til mellemlagring og opdatering, som ikke er anskueliggjort til tegningen, mellemlagres skriveadresserne i den første sekvens og skrive instruktionerne i den anden sekvens, dvs. skriveadresser og dertil knyttet 25 datainformation i det pågældende hjælpedatalager. Sammenligningen mellem hver af de mellemlagrede skriveadresser knyttede til den første sekvens og hver af de mellemlagrede læseadresser knyttet til den anden sekvens udøves i parallel med opdatering af det særskilte datalager knyttet til den 30 anden sekvens, når instruktionsindpegningerne i den første sekvens er afsluttet, idet en genstart af udøvelsen af den anden sekvens beordres på grund af en ved sammenligningen registeret adresselighed. Opdatering af det særskilte datalager knyttet til den første sekvens gennemføres ved hjælp 35 af de mellemlagrede skriveinstruktioner, som er knyttet til den anden sekvens, når instruktionsudpegningerne i den anden DK 168415 B1 15 sekvens er afsluttede.
Ved hjælp af denne sidstnævnte mellemlagrings- og opdateringsfremgangsmåde tilvejebringes en forøgelse af databehandlingskapaciteten gennem den forestående paral-5 leludøvelse af begge sekvenser, hvis ikke udøvelsen af den anden sekvens skal genstartes.
Som en samlet virkning opnås det gennem databehandlingsenhedernes mellemlagerenheder, at den første og den anden sekvens defenitivt udøves fejlfrit i den på forhånd 10 udpegede rækkefølge, på trods af, at udøvelsen af begge sekvenser indledningsvis er beordret i parallel.

Claims (3)

1. Fremgangsmåde til udøvelse af to instruktionssekvenser som om de blev udøvede i en på forhånd fastlagt rækkefølge den ene sekvens efter den anden idet den første, 5 henholdsvis den anden sekvens indbefatter læseinstruktioner, som indeholder hver sin læseadresse til indhentning af data, som er lejret i den tilsvarende datalagerplads i et første eller et andet datalager, som er tildelt sekvensen, samt skriveinstruktioner, som indbefatter hver sin skriveadresse 10 og data til indskrivning i den tilsvarende datalagerplads i det datalager, som er tildelt den pågældende sekvens, idet de særlige datalagerpladser tildelt sekvenserne opdateres indbyrdes i tilknytning til rækkefølge og tilknytning til de udpegede skriveinstruktioner, hvori data, som anvendes 15 ved udøvelsen af den anden sekvens ikke nødvendigvis er uafhængige af de data, som tilvejebringes i tilknytning til udøvelsen af den første sekvens, kendetegnet ved følgende trin: a) udøvelse af instruktionerne i begge sekvenser, den ene 20 efter den anden, men udøvelse af sekvenserne som en helhed, uden hensyn til den forud fastsatte rækkefølge, b) mellemlagring af en adresse, som tilvejebringes ved en læseinstruktion, som udpeges under udøvelse af den anden sekvens hvis denne adresse ikke tidligere er blevet udpeget 25. tilknytning til udøvelsen af skriveinstruktioner i den anden sekvens, c) udøvelse af en sammenligning mellem den mellemlagrede læseadresse og hver af de skriveadresser, som tilvejebringes ved udøvelse af skriveinstruktionerne i den første sekvens, 30 d) fjernelse af de mellemlagrede adresser og genstart af udøvelsen af den anden sekvens, hvis en adresselighed registreres ved nævnte afhængighedssammenligning.
2. Fremgangsmåde ifølge krav 1, kendetegnet ved, at indbefatte følgende trin: 35 a) mellemlagring af en skriveadresse, som er tilvejebragt ved en skriveinstruktion, som udpeges under udøvelsen af DK 168415 Bl 17 den anden sekvens, b) udøvelse af en opdateringssammenligning mellem den mellemlagrede skriveadresse og hver af de skriveadresser, som udpeget under udøvelsen af den første sekvens, 5 c) opdatering af det andet særskilte datalager i tilknytning til hver udøvelse af en skriveinstruktion knyttet til den første sekvens, hvis der ikke registeres nogen adresselighed ved opdateringssammenligningen, d) udelukkelse af en opdatering af det andet særskilte data-10 lager, hvis der registreres adresselighed ved den nævnte opdateringssammenligning.
3. Indretning til udøvelse af to instruktionssekvenser, som om de var blevet udøvet i en forud fastlagt rækkefølge, den ene sekvens efter den anden, indbefattende 15 en første startkreds (5,7,26,29) til iværksættelse af udøvelsen af den første sekvens og yderligere indbefattende en første henholdsvis en anden instruktionslagerenhed (4) til oplagring af den pågældende sekvens og til en ad gangen at udpege de oplagrede instruktioner, yderligere indbefattende 20 en første og en anden særskilt datalagerenhed (1,20), som er forbundet med henholdsvis den første og den anden instruktionslagerenhed, hvis lagerpladser er tilgængelige for data-læsning/skrivning ved fra de dertil knyttede instruktions-lagerenhedslæse/skriveadressebitpositioner (17,18,21) ud-25 pegede læse/skriveadresser i det dertil knyttede instruktionslager, og apparatet indbefatter yderligere en opdateringsenhed (3) til fælles opdatering af de enkelte datalagre med hensyn til den forud fastlagte rækkefølge af sekvenserne, og med hensyn til de udøvede skriveinstruktioner, hvori 30 data anvendt i forbindelse med udøvelse af den anden sekvens ikke nødvendigvis er uafhængige af data anvendt i forbindelse med udøvelse af den første sekvens, k endetegnet ved, at indretningen indbefatter a) en anden startkreds (5,8,26,27) til igangsætning af den 35 anden sekvens, hvis første aktiveringsindgang (8) er forbundet med den nævnte første startkreds, DK 168415 B1 18 b) en hjælpelagerenhed (41,42), som på indgangssiden er forbundet med den anden instruktionslagerenhed, og som indbefatter læseadressebitpositioner (50,58) til mellemlagring af en adresse, som er tilvejebragt ved en læseinstruktion 5 som udpeges under udøvelsen af den anden sekvens, hvis denne adresse forinden ikke har været udpeget i tilknytning til udøvelsen af skriveinstruktionerne i den anden sekvens, c) en sammenligningskreds (56,60,61,62), hvis første sammenligningsklemmer (11,12) er forbundne med den første instruk- 10 tionslagerenheds skriveadressebitpositioner (18,21), hvis andet sæt sammenligningsklemmer er forbundne med hjælpelagerenhedens nævnte læseadressebitpositioner (50,58), og hvis med en anden aktiverings indgang i den nævnte anden startkreds forbundne udgang (28) aktiveres ved overensstemmelse mellem 15 de på jævnføringsklemmerne modtagne adresser, til genigangsætning af udøvelsen af den anden sekvens.
DK300888A 1986-10-03 1988-06-02 Fremgangsmåde og indretning til udøvelse af to instruktionssekvenser i en på forhånd fastlagt rækkefølge. DK168415B1 (da)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
SE8604222 1986-10-03
SE8604222A SE454920B (sv) 1986-10-03 1986-10-03 Sett och anordning for att i en pa forhand avgjord ordningsfoljd exekvera tva instruktionssekvenser medelst separatminnen
PCT/SE1987/000438 WO1988002514A1 (en) 1986-10-03 1987-09-28 Method and device to execute two instruction sequences in an order determined in advance
SE8700438 1987-09-28

Publications (3)

Publication Number Publication Date
DK300888D0 DK300888D0 (da) 1988-06-02
DK300888A DK300888A (da) 1988-06-02
DK168415B1 true DK168415B1 (da) 1994-03-21

Family

ID=20365823

Family Applications (1)

Application Number Title Priority Date Filing Date
DK300888A DK168415B1 (da) 1986-10-03 1988-06-02 Fremgangsmåde og indretning til udøvelse af to instruktionssekvenser i en på forhånd fastlagt rækkefølge.

Country Status (17)

Country Link
US (1) US4985826A (da)
EP (1) EP0287600B1 (da)
JP (1) JPH01500936A (da)
KR (1) KR920006768B1 (da)
AU (1) AU589047B2 (da)
BR (1) BR8707481A (da)
DE (1) DE3774119D1 (da)
DK (1) DK168415B1 (da)
ES (1) ES2005371A6 (da)
FI (1) FI93908C (da)
GR (1) GR871512B (da)
MX (1) MX168943B (da)
NO (1) NO173718C (da)
PT (1) PT85810B (da)
SE (1) SE454920B (da)
TN (1) TNSN87107A1 (da)
WO (1) WO1988002514A1 (da)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE454921B (sv) * 1986-10-03 1988-06-06 Ellemtel Utvecklings Ab Sett och anordning for att i en pa forhand avgjord ordningsfoljd exekvera tva instuktionssekvenser
US5280615A (en) * 1990-03-23 1994-01-18 Unisys Corporation Out of order job processing method and apparatus
JP2786574B2 (ja) * 1992-05-06 1998-08-13 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータ・システムにおける順不同ロード動作の性能を改善する方法と装置
GB9305263D0 (en) * 1993-03-15 1993-05-05 Univ Westminster Parrallel computation
JPH07334372A (ja) * 1993-12-24 1995-12-22 Seiko Epson Corp エミュレートシステム及びエミュレート方法
JP4160705B2 (ja) * 1999-10-15 2008-10-08 富士通株式会社 プロセッサ及びプロセッサシステム
FI114428B (fi) * 2001-12-13 2004-10-15 Nokia Corp Menetelmä ja järjestelmä laskuridatan keräämiseksi verkkoelementissä
US20060036826A1 (en) * 2004-07-30 2006-02-16 International Business Machines Corporation System, method and storage medium for providing a bus speed multiplier

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1218656A (en) * 1968-03-27 1971-01-06 Int Computers Ltd Improvements in or relating to computer system
US3787673A (en) * 1972-04-28 1974-01-22 Texas Instruments Inc Pipelined high speed arithmetic unit
GB1441458A (en) * 1972-06-28 1976-06-30 Texas Instruments Inc Stored programme data processing for parallel processing of programme segment
IT991096B (it) * 1973-07-10 1975-07-30 Honeywell Inf Systems Calcolatore elettronico con reti funzionali indipendenti per l esecuzione simultanea di opera zioni diverse sugli stessi dati
SE378690B (da) * 1973-12-13 1975-09-08 Ellemtel Utvecklings Ab
SE387763B (sv) * 1975-10-23 1976-09-13 Ellemtel Utvecklings Ab Anordning vid ett datorminne for att mojliggora en successiv forflyttning under drift av ett ledigt minnesfelt
JPS57162165A (en) * 1981-03-30 1982-10-05 Fanuc Ltd Re-editing system for storage area
US4466061A (en) * 1982-06-08 1984-08-14 Burroughs Corporation Concurrent processing elements for using dependency free code
JPS5932045A (ja) * 1982-08-16 1984-02-21 Hitachi Ltd 情報処理装置
US4720779A (en) * 1984-06-28 1988-01-19 Burroughs Corporation Stored logic program scanner for a data processor having internal plural data and instruction streams
US4703481A (en) * 1985-08-16 1987-10-27 Hewlett-Packard Company Method and apparatus for fault recovery within a computing system

Also Published As

Publication number Publication date
SE8604222L (sv) 1988-04-04
US4985826A (en) 1991-01-15
NO882196D0 (no) 1988-05-19
FI882469A (fi) 1988-05-25
FI93908C (fi) 1995-06-12
PT85810B (pt) 1993-08-31
NO173718C (no) 1994-01-19
KR880701912A (ko) 1988-11-07
DK300888D0 (da) 1988-06-02
AU8037087A (en) 1988-04-21
NO173718B (no) 1993-10-11
SE454920B (sv) 1988-06-06
BR8707481A (pt) 1988-12-06
GR871512B (en) 1987-10-01
PT85810A (pt) 1988-11-30
MX168943B (es) 1993-06-15
JPH01500936A (ja) 1989-03-30
KR920006768B1 (ko) 1992-08-17
FI882469A0 (fi) 1988-05-25
DE3774119D1 (de) 1991-11-28
DK300888A (da) 1988-06-02
EP0287600A1 (en) 1988-10-26
EP0287600B1 (en) 1991-10-23
TNSN87107A1 (fr) 1990-01-01
SE8604222D0 (sv) 1986-10-03
AU589047B2 (en) 1989-09-28
ES2005371A6 (es) 1989-03-01
FI93908B (sv) 1995-02-28
WO1988002514A1 (en) 1988-04-07
NO882196L (no) 1988-05-19

Similar Documents

Publication Publication Date Title
US3736566A (en) Central processing unit with hardware controlled checkpoint and retry facilities
EP0444544B1 (en) Updating or restoring method for stored data groups and system executing same
US2968027A (en) Data processing system memory controls
JPS61250738A (ja) 分岐活動記録テ−ブル
DK168415B1 (da) Fremgangsmåde og indretning til udøvelse af to instruktionssekvenser i en på forhånd fastlagt rækkefølge.
US3286236A (en) Electronic digital computer with automatic interrupt control
US4074229A (en) Method for monitoring the sequential order of successive code signal groups
US3676851A (en) Information retrieval system and method
DK168135B1 (da) Fremgangsmaade til udoevelse af to instruktionssekvenser i en paa forhaand fastlagt raekkefoelge
NO147086B (no) Anordning i en styredatamaskin for forkortning av eksekveringstiden for instruksjoner ved indirekte adressering av en datahukommelse
US3568158A (en) Program and subroutine data storage and retrieval equipment
US5168558A (en) Apparatus and method for providing distributed control in a main memory unit of a data processing system
US4410988A (en) Out of cycle error correction apparatus
KR910001114B1 (ko) 디스크 캣슈 시스템
NO173207B (no) Fremgangsmaate og innretning for utfoerelse av to instruksjonssekvenser i en orden som er bestemt paa forhaand
US2568158A (en) Garment bag
US4499537A (en) Apparatus for rapid execution of interrupts after the recognition of an interrupt request
JP2559416B2 (ja) 情報処理装置
JPS6252333B2 (da)
JPH04181331A (ja) 命令リトライ方式
CN116150277A (zh) 数据批处理脚本的处理方法、装置、设备及存储介质
JPH0148571B2 (da)
JPS6035692B2 (ja) バッファ管理方式
JPS5916190A (ja) 磁気バブルメモリの制御方法
GB2008817A (en) Data processing system including a cache store

Legal Events

Date Code Title Description
B1 Patent granted (law 1993)
PBP Patent lapsed