NO810079L - Transittmaskin - en datamaskin for universalbruk - Google Patents
Transittmaskin - en datamaskin for universalbrukInfo
- Publication number
- NO810079L NO810079L NO810079A NO810079A NO810079L NO 810079 L NO810079 L NO 810079L NO 810079 A NO810079 A NO 810079A NO 810079 A NO810079 A NO 810079A NO 810079 L NO810079 L NO 810079L
- Authority
- NO
- Norway
- Prior art keywords
- data
- programs
- status
- indications
- program
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Multi Processors (AREA)
- Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
- Nitrogen Condensed Heterocyclic Rings (AREA)
- Hardware Redundancy (AREA)
- Preparation Of Compounds By Using Micro-Organisms (AREA)
- Debugging And Monitoring (AREA)
- Image Processing (AREA)
- Lighting Device Outwards From Vehicle And Optical Signal (AREA)
- Saccharide Compounds (AREA)
Description
OPPFINNELSENS BAKGRUNN
1. Oppfinnelsens område
Oppfinnelsens område er datamaskinkonstruksjon og næermere bestemt det område som gjelder parallelle datamaskiner og multiprosessor-systerner. Foreliggende oppfinnelse oker datagjennomlopet ved hjelp av maskin-utstyr for parallell databehandling og mer effektiv arbeidsfunksjon. Programmer-produktiviteten okes også
ved å anvende en særegen maskinunderstottet programstruktur.
2. Beskrivelse av kjent teknikk
A. Oket gjennomlop.
Parallell databehandling har vært betraktet som en verdifull mekanisme for å oke databehandlingshastigheter ved å utfore samtidige eller parallelle beregninger. Forskjellige grader av parallellitet har blitt oppnådd i datamaskiner både med en enkelt og flere prosessor-enheter. Disse tidligere forsok på å oppnå samtidighet kan kategoriseres i tre brede områder: (1) komponentoppbygning på multifunksjonell basis i en rekkefolge-prosessor, hvor samtidige databehandlingsbaner er gitt prioriteter og konkurrerer om dataresurser i en enkelt strom, (2) maskinutrustning som benytter seg av komponenter beregnet for spesielle formål og er utstyrt med flere prosessorer basert på samtidighetsbehovet for det foreliggende problem, og (3) en komponentoppbygning som benytter seg av en multi-prosessor for universalbruk med et multiprosessor-system for å styre denne.
I den losning som omfatter en enkelt prosessor med flere arbeidsfunksjoner, tidsdeles en enkelt prosessor og dens tilordnede resurser av programmer som loper "samtidig" under sbyring av et operativsystem med flere arbeidsfunksjoner. Det kreves av prosessoren at den skal frembringe (over en hvilken-som helst vesentlig tids-periode) tilstrekkelig databehandlingskapasitet til å oppfylle behovene langs alle databaner pluss program-bakgrunn for multipleks-veksling mellom banene. I tillegg til å sikre at alle databaner kan betjenes innenfor ethvert vesentlig tidsinterval, må det foreligge sikring for at reaksjonstiden for hver bane kan tilfredsstilles i det værste tenkbare tilfelle. Problemene med å oppfylle disse betingelser sammenholdes ved vurdering av operativsystemets effektivitet. Som en folge av dette må prosessorene dimensjoneres for det spesielle foreliggende problem med den folge at mulig-heten for modulære utvidelser typisk ikke kan tilfredsstilles på annen måte enn ved å overdimensjonere prosessoren til å begynne med.
Når det gjelder utforelsen med multiprosessor for spesielt formål, utfores en datamaskin på grunnlag av en spesifisert samtidighets-fordring. Eksempler på parallelle regnemaskiner for spesielle formål som tidligere er bygget, er rekkeprosessorer slik som ILLIAC IV, STÅRAN I, SOLOMON II. Disse datamaskiner krever store mengder av spesialbygde maskinkomponenter, spesielle programstrukturer og er særlig egnet for problemer som innbefatter store mengder homogen parallellitet, således at identiske arbeidsfunksjoner skal utfores på tallrike dataenheter. Rekkeprosessorer tillater flere identiske arbeidsoperasjoner å utfores i parallell, således at samtidighetskravet oppfylles. Homogen parallellitet representerer imidlertid en meget liten del av den parallellitet som foreligger i regne-maskinprogrammer, og disse regnemaskiner for spesielle formål er således i sin alminnelighet ikke egnet for å danne grunnlag for den mer universelle heterogene parallellitet som foreligger i typiske datamaskin-programmer .
Multiprosessoren med multiprosessor-styring er et forsok på en universal losning som er tilpasset heterogen parallellitet i modulære incrementer. Disse losninger gir imidlertid stadig avtagende utbytte etter som antallet prosessorer okes. Grunnen til denne reduksjon i databehandlingsvinning i et multiprosessor-system er av dobbelt art: for det forste foreligger en stor overbygning i forbindelse med programoppbygningen av den eneste foreliggende, enhetlige styremekanisme i operativsystemet, og for det annet er det vanskelig å effektivt utnytte den hoye grad (arbeide eller oppgave) av parallellitet i brukerprogrammer.
Disse to problemer forsterket hverandre fra den store programoverbygning er blitt tatt som en berettigelse for modelleringen av parallellitet på hoyt nivå, men ved å utnytte parallellitet på arbeids- eller oppgave-nivået, går meget av den potensielle vinning ved multiprosessingen tapt, da det typisk foreligger en viss grad av parallellitet innenfor vedkommende arbeidsoinksjon eller oppgave, og denne indre parallellitet kan ikke utnyttes.
B. Programmer-produktivitet.
Programmer-produktivitet er blitt angitt som et viktig omkostningsproblem ved automatiserte databehandlingssystemer (ADP). Utvikling av programteknikken og vedlikeholdsomkostningene har fortsatt å utvikle seg i samme område for drastisk reduksjon av maskinbare-omkostninger. Strukturert programmering og andre disipliner har blitt fastlagt for å redusere dette problem. Enighet mellom representanter for disse disipliner synes å foreligge i fire vurderingsområder som angår sådanne programstrukturer og de maskinoppbygninger som de gjelder:
1) en behovs-orientert struktur,
2) en struktur hvor bare de vesentlige aspekter for programstyringen må spesifiseres av programmereren, 3) en struktur som eliminerer overforing av styring (GO TO, CALL, ko-instruksjoner etc), og 4) en programstruktur som forenkler de mest feil-beheftede aspekter av avgjorelseslogikken.
Betydningen av hver av disse fordringsområder er
nærmere omtalt nedenfor.
Behovsorientert programmering.
Spesifiseringen av programfordringene og overforingen av disse fordringer til programutformningsdata er en hovedaktivitet ved programutviklingen. En grunn til at disse utviklingsaktiviteter krever en så dor andel av den totale utviklingsprosess, er den manglende samstemmighet mellom den typiske situasjon/reaksjon-art av programfordringene og prosessutforelsen av disse fordringer i den endelige programoppbygning. Det foreligger således en hovedomforming fra fordring til utforelse som utgjor en tidskrevende prosess som lett kan medfore feil. Så snart programoppbygningen er fastlagt og utfort ligner den ikke lenger på behovsstrukturen. Gapet mellom behov og programoppbygning i de vanlige tilfeller hemmer programmets forståelighet og derfor dokumentering, vedlikeholds-muligheter etc. Det er således som oftest umulig å bekrefte at et program av noen vesentlig storrelse faktisk er i samsvar med dets bakgrunnsfordringer.
Eliminering av degenerasjon.
Innenfor den vanlige programmeringsramme oversetter programmereren typisk databehandlingsfordringene i en noe vilkårlig rekke av handlinger som skal utfores av maskinen. I mange tilfeller er det imidlertid ingenRekkefolge av handlinger som fremgår av fordringene, således at en handlingsrekkefolge kunstig frembringes av programmereren. Forskjellige "korrekte" programversjoner kan således foreligge med helt forskjellig programstruktur. Disse programmer er degenererte losninger av det problem som er fastlagt ved de opprinnelig spesifiserte fordringer. I det vesentlige har programmereren muligheter for å innfore sine egne utforelses-ideer og personlige vurderinger i det som ideelt skulle være en objektiv oversettelse av en databehandlingsfordring som derved kunne vært direkte sammenlignet med andre programversjoner. Denne ubestemthet i en programoppbygning har den virkning at den gjor programstrukturen mindre direkte forbundet med den oppgave som stilles, således at en verifisering bare kan utfores på laveste nivå for å fastslå om det endelige resultat faktisk oppfyller den stilte oppgave.
Utnyttelse av den parallellitet som er iboende i databehandling hindres således ved vilkårlig bestemmelse av rekkefolgen i utforelsen. Denne vilkårlige bestemmelse nedsetter effektiviteten av programutfdrelsen når det gjelder parallell databehandling. Den iboende likhet mellom visse programdeler blir også skjult således at senere programvedlikehold lettere kan frembringe feil.
Ved således bare å kreve den mest vesentlige aspekt ved programstyringen, vil oversettelsen av den stilte oppgave bli forenklet, mange av de tidligere vilkårlige avgjorelser med hensyn til rekkefolgen elimineres, og muligheter for å utnytte parallellitet fremmes.
Eliminering av direkte overforing av styring.
Den direkte overforing av styring betraktes som hoved-kilden til kodirigsfeil som gjores av en programmerer. Mange utviklinger i programteknikken har hatt som formål å eliminere disse programavsnitt fra programmene. Resultatet har medfort okning av program-produktiviteten, men da vedkommende ^.programstrukturer fremdeles har varierende grunnlag i kompillatorer, og ensidig på maskinnivå, kan fremdeles mange feil tilskrives disse. Konvensjonelle operativkrav til å utfore et spesifisert program er også "GÅ TJL"-instruksjoner (GO TO), og den eneste forskjell er at de utfores på et hoyere nivå. Problemet med operativ fordring er et interessant problem, idet et program kan være helt korrekt, men likevel ikke bli utfort under de rette forhold, på grunn av at det ble ukorrekt krevet utfort. Det er således en intrikat kobling mellom programmer. Det foreligger også mulighet for en helt uventet programfordring som krevet utfbrelse av et program i en helt feilaktig situasjon. For et program således kan fullstendig fastlegges slik at det oppfyller de grunnleggende fordringer, må man således kjenne alle fordringer hvorunder programmet kan bli forlangt utfort.
Forenkling av avgjorelseslogikken.
Eliminering av "GÅ TIL"-instruksjoner (GO TO) er av vesentlig betydning ut i fra det synspunkt at alle feilmuligheter bor unngås, men logiske avgjorelses-strukturer er også meget viktige feilkilder. Avgjbrelses-diagrammer har vært anvendt for å adressere noen av de feiltendenser som foreligger i disse logiske strukturer, men sådanne diagrammer er et overvåknings- og vurderings-verktoy som ikke inngår som en del av strukturen i programoppbygningen, og deres anvendelse utgjor en divergens (ytterligere tiltak) fra den sentrale utviklingsverdi.
De typiske logiske avgjorelsesutformninger omfatter en overforing av styring, som således tillater en omgåelse av dogmer fri for "GÅ TIL"-tendenser (GO TO) når det gjelder detaljert utforming. De har også det trekk at program-aktiveringsbetingelser behandles separat, uten total erkjennelse. En spesiell prove for a< b kan f.eks. bare utfores hvis a > c, d < e .... Men denne totale situasjon vil ikke umiddelbart være åpenbar for den programmerer som skriver eller går igjennom koden. Meget komplisert sammenvevet logikk kan derfor være nodvendig for å sikre de spesielle utforelsesbetingelser som på grunn av en avgjorelse hoyere opp i programstrukturen, hindrer at et program noensinne blir utfort.
KORT DEFINISJON AV OPPFINNELSEN
Det er et formål for foreliggende oppfinnelse å overvinne ulemper ved tidligere kjent teknikk ved å frembringe et maskinvare-operativt apparat med en hendelses-drevet apparatstruktur for anvendelse sammen med et uni-prosessor-system eller et multi-prosessor-system.
Det er et annet formål for oppfinnelsen å oppnå forbedret datagjennomlop i et databehandlingssystem ved å eliminere overbygde programfunksjoner og oppta disse i en maskinvare-oppbygning. Maskinvare-oppbygningen omfatter anvendelse av en systemstatus-vektor og en relevans-matrise. Status-vektoren og relevans-matrisen anvendes for å tillate dataoverføringer i multi-prosessor-omgivelser for å oppnå en hoyere grad av samtidige arbeidsoperasjoner.
I henhold til et annet trekk ved oppfinnelsen er det vist en beregningsstruktur hvorfra man kan finne direkte tilbake til de stilte oppgaver. Som en folge av dette medforer foreliggende oppfinnelse en kraftig okning av programmer-produktiviteten. De stilte oppgaver foreligger typisk i folgende form: "Når en viss situasjon opptrer, utfor en tilordnet arbeidsfunksjon". Sådanne "situasjoner" kan typisk beskrives ved hjelp av sett av betingelser eller parametre som er representert i databasis. De nevnte "tilordnede funksjoner" tilsvarer programmer som forandrer parameterverdier.
Det er enda et annet formål for oppfinnelsen å frembringe en databehandlingsoppbygning med et dataoverforingstrekk og et sentralt styringstrekk som derved gir et strukturert databehandlingsmiljo for å oke programanvendelsen, utvikling, dokumentasjon og verifisering. Det sentrale styretrekk ved databehandlingsstrukturen erkarakterisert ved"NÅR-setninger" (WHEN) som omfatter et antall databetingelser i form av enhetlige påstander med hensyn til datasettet. Når disse betingelser oppfylles,
er en databehandling klar for utforelse i dataprosessoren.
I et multiprosessor-system, kan flere dataomformninger utloses for samtidig utforelse, således at det oppnås et system med en hoy grad av parallelle arbeidsoperasjoner. Når en struktur av WHEN-blokker bygges opp i maskinvare, forer dette til lav programoverbygning på oppbygningsnivået.
I henhold til oppfinnelsen er det frembragt et maskinvare-operativt apparat for anvendelse i et multiprosessor-system for samtidig opptredende arbeidsfunksjoner i flere dataprosessorer for losning av en algoritme definert ved flere brukerprogrammer og et styreprogram. Disse dataprosessorer har tilgang til lagringsutstyr for brukerprogram samt datalagringsutstyr som i det minste omfatter et felles datalagringsområde som er tilgjengelig for nevnte flere dataprosessorer. Det maskinvare-operative apparat utforer nevnte styreprogram og omfatter en statuslagringsinnretning for lagring av altomfattende binære statusangivelser Sj for et datasett som danner grunnlag for å lose algoritmen. Apparatet omfatter videre en relevans-lagringsinnretning for lagring av grupper av binære relevansangivelser Rjj/idet hver sådan gruppe tilsvarer relevansen av nevnte statusangivelser med hensyn til det i-te nevnte brukerprogram hvor i er et helt tall som angir en av disse grupper og tilsvarer et av brukerprogrammene, og j er et helt tall som angir en av de binære statusangivelser. Det maskinvare-operative apparat omfatter i tillegg utstyr for oppdatering av de statusangivelser som er lagret i statuslagringsinnretningen ved fullfort utforelse av hvert brukerprogram, utstyr som påvirkes av relevans-lagringsinnretningen og statuslagringsinnretningen til å bestemme brukerprogrammenes egnethet for å utfores av nevnte flere prosessorer, således at brukerprogrammer som er funnet egnet kan utfores samtidig.
Oppfinnelsen kan også betegnes som en datamaskin som er i stand til overgang eller transitt mellom tilstander for losning av en algoritme og som omfatter et antall data prosessorer som hver omfatter databehandlingsutstyr for databehandling i samsvar med et brukerprogram, en data-lagringsinnretning med minst et område som deles av nevnte flere dataprosessorer, en programlagrings-innretning for lagring av brukerprogram, en styreenhet for maskinsystemet og innrettet for å bestemme i hvilken grad hver av brukerprogrammene er egnet samt for å sette forskjellige dataprosessorer. i arbeide for samtidig utforelse av de valgte egnede programmer, idet system-styreenheten er innrettet for å bestemme programmenes egnethet på grunnlag av flere enhetlige påstander med hensyn til anvendbarheten av overgang mellom tilstander for vedkommende maskin med det formål å lose den foreliggende algoritme.
I samsvar med et annet trekk ved foreliggende oppfinnelse, er det angitt en fremgangsmåte for å oke program-gjennomgangen i flere dataprosessorer som danner et databehandlingssystem, og som omfatter folgende prosess-trinn: a) oppbygning av programstrukturen med losning av en algoritme og for å utfores av databehandlingssystemet i et antall dataomformingsprogrammer og et styreprogram, idet nevnte dataomformingsprogrammer utforer hendelses-drevne databehandlingstrinn uten overforing av styring til andre omformingsprogrammer, og styreprogrammet fastlegger utforelsen av databehandlingstrinnene, b) valg av et antall enhetlige påstander som kollektivt representerer alle datatilstander som er relevante for å tillate utforelse av alle dataomformningsprogrammene, idet de enhetlige påstander danner statusangivelser for nevnte databetingelser, c) fastleggelse av alle enhetlige påstander som er relevante for å tillate utforelse av hvert av dataomformingsprogrammene, idet de fastlagte enhetlige påstander danner en gruppe av relevante angivelser som tilsvarer hvert dataomformingsprogram, d) lagring av dataomformingsprogrammene i lagringsinnretninger som er tilgjengelige for nevnte flere dataprosessorer, og e) lagring av styreprogrammet i et maskinvare-operativt apparat. Dette maskinvare-operative apparat sorger for å planlegge dataomformingsprogrammene ved hjelp av folgende prosesstrinn: 1) opprettholdelse av et lager for statusangivelsene, 2) opprettholdelse av et lager for hver gruppe relevans-angivelser, 3) bestemmelse av egnetheten av dataomformingsprogrammene ved logiske maskinvare-operasjoner utfort på status- og relevans-lagrene, idet et dataomformingsprogram fastlegges som egnet for utforelse hvis alle de statusangivelser er sanne som er relevante i
den gruppe relevans-angivelser som tilsvarer vedkommende dataomformingsprogram, 4) igangsetning av de valgbare
programmer, hvori samtidig fastlagte egnede data-omf ormingsprogram utfores samtidig, 5) oppdatering av lageret for statusangivelser etter fullfort utforelse av hvert dataomformingsprogram, og 6) gjentagelse av de ovenfor angitte prosesstrinn 3) - 5) inntil data-omf ormingsprogrammene ikke lenger fastlegges som egnede, hvorved algoritmen er fullstendig gjennomfort av data-behandl i ng s s y s terne t.
KORT BESKRIVELSE AV TEGNINGENE
De ovenfor angitte og andre formål for oppfinnelsen vil fremtre klarere ved den etterfølgende beskrivelse under henvisning til de vedfoyde tegninger, hvorpå:FIGUR 1 er et blokkskjema av transittmaskinen i henhold til oppfinnelsen, FIGUR 2 anskueliggjor de primære datasammenstillinger som utnyttes i system-styreenheten i henhold til oppfinnelsen, FIGUR 3 viser et programeksempel for å forklare programmeringsforholdene ved transittmaskinen i henhold til foreliggende oppfinnelse, FIGUR 4 viser et vanlig oppgave-drevet program for losning av problemeksemplet i figur 3, FIGUR 5A og 5B viser et oppgave-og hendelses-drevet program for losning av problemet i figur 3, FIGUR 6 viser en oppstilling av et hendelses-drevet program for losning av det problem som er vist i fig. 3, FIGUR 7 viser en programoppstilling for et hendelses-drevet program med bare tilordningssetninger for losning av det program som er vist i fig. 3, FIGUR 8 er en programoppstilling for programmering av transittmaskinen i henhold til foreliggende oppfinnelse, med det formål å lose det viste problem i fig. 3, FIGUR 9 viser et eksempel på en programoppstilling tilsvarende i fig. 8 og som anskueliggjor oppgave-orientert programmeringsteknikk, FIGUR 10 er en tabelloppstilling av styre- og data-omf ormingsprogrammer tilsvarende den oppgave-orienterte programteknikk som er angitt i fig. 9, FIGUR 11 er en matematisk fremstilling av hovedkomponent-ene og arbeidsfunksjonen for en transittmaskin oppbygget i samsvar med oppfinnelsen, FIGUR 12 viser de R, T og F-matriser som tilsvarer losning av programeksemplet i samsvar med oppfinnelsen, FIGUR 13 er et flytdiagram som viser de forskjellige systemtilstander for datasammenstillingene under utforelse av programeksemplet, FIGUR 14 er et blokkskjema som viser datasammenstillingene i transitt-maskinen sammen med de grunnleggende elementer av grenseflaten i samsvar med foreliggende oppfinnelse, FIGUR 15 viser et blokkdiagram for lese-, skrive- og utfdrelses-funksjonene i samsvar med oppfinnelsen, FIGUR 16 viser et flytdiagram for arbeidsfunksjonene i en dataprosessor og systemets styreenhet under de forskjellige driftsmodi for transittmaskinen, FIGUR 17 er et flytdiagram som viser avbrytelsesfunksjonen i henhold til oppfinnelsen, FIGUR 18 er et fullstendig blokkdiagram av hovedkomponent-ene i transittmaskinens oppbygning i henhold til oppfinnelsen, FIGUR 19 er et blokkskjema av en systemstyring med flere porter som utgjor en utforelse av foreliggende transittmaskin, FIGUR 20 er et flytdiagram av arbeidsfunksjonen i styre-systemet med flere porter som er angitt i fig. 19, FIGUR 21 er et flytdiagram som viser prosessorenes inngangs- og utgangs-funksjoner i henhold til oppfinnelsen, FIGUR 22 er et flytdiagram som viser prosessorenes ladefunksjoner i samsvar med oppfinnelsen, FIGUR 23 er et flytdiagram som viser system-styreenhetens inngangs-, utgangs- og lade-funksjoner i samsvar med oppfinnelsen, FIGUR 24 er et blokkskjema av datasammenstillingsseksjonen av system-styreenheten, FIGUR 25 er et skjematisk diagram av den logiske krets i system-styreenheten som bestemmer programmenes egnethet, FIGUR 26 viser skjematisk den forenklede fremstilling av logiske kretser som er benyttet på tegningene, FIGUR 27 er et skjematisk diagram av den logiske krets i system-styreenheten som sorger for status-oppdatering av systemet, FIGUR 28 er et blokkskjema av de inngangs- og utgangslinjer som er tilordnet i logiske kretser for synkronisering og styring i system-styreenheten, FIGURENE 29A og 29B danner tilsammen et detaljert koblingsskjema for de logiske kretser for synkronisering og styring som er vist i fig. 28, FIGUR 30 viser det tilstandsdiagram som anvendes ved oppbygning av de logiske kretser for synkronisering og styring, FIGUR 31 og 32 er tidsdiagrammer som viser inngangs-overganger i samsvar med oppfinnelsen, FIGUR 33 er et tidsdiagram som viser en utgangs-overgang i samsvar med oppfinnelsen, FIGUR 34 er et diagram som viser en lade-overgang i samsvar med oppfinnelsen, FIGUR 35 er et blokkdiagram som viser transittmaskinens oppbygning ved en uni-prosessor i samsvar med et annet trekk ved foreliggende oppfinnelse, FIGUR36A og 36B viser konstruksjonssprogets syntax ved beskrivelse av arbeidsfunksjonen for uni-prosessoren i fig. 35, FIGUR 37 er et blokkskjema av en spesiell system-styreenhet som muliggjor et driftssystem i et uni-prosessor-miljo, FIGUR 38 er et flytdiagram av den prosessor-logikk som er påkrevet for å aktivere inngangs-overforingen i den system-styreenhet som er vist i fig. 37, FIGUR 39 er et flytdiagram av den prosessor-logikk som er påkrevet for å aktivere lade-overforingen i den system-styreenhet som er vist i fig. 37, og FIGUR 40 er et flytdiagram av den styreenhet-logikk som er påkrevet for å frembringe lade- og inngangs-overforingene i det operative system i fig. 37.
DETALJERT BESKRIVELSE AV FORETRUKKEDE UTFORELSER
SYSTEMOVERSIKT
Definisjon av transittmaskiner
Den familie av datamaskinoppbygninger som er beskrevet her danner en helt generell parallellitetsmodell. Et fullstendig blokkskjema av et databehandlingssystem, eller en transittmaskin som det kalles her, og utfort i samsvar med foreliggende oppfinnelse er vist i fig. 1. Denne transittmaskin er vist å omfatte flere prosessorer 2a, 2b, 2c som hver står i forbindelse med en felles hukommelse 4. Skjont bare tre prosessorer er vist, vil det forstås at et storre antall prosessorer kan anvendes, innbefattet l/U styreenheter og andre prosessorer for spesielle formål. (Utforelse med bare en enkelt prosessor er også omtalt i denne tekst). Den felles hukommelse eller lagringsinnretning 4 er typisk sammen-satt av et antall hukommelsesmoduler 6a, 6b, 6c, 6d, hvorav bare fire er vist. Hver hukommelsesmodul kan danne et lager for data såvel som for brukerprogrammer, eller det kan være anordnet ytterligere hukommelsesmoduler for sådanne formål etter onske. Ved en multiprosessor-utforelse må imidlertid i det minste noen datalagrings-områder være felles tilgjengelige for samtlige dataprosessorer. Det bor også forstås at noen av prosessorene faktisk kan være i/U-prosessorer eller styreenheter som på vanlig måte er koblet til en eller flere I/U-innretninger.
En system-styreenhet er vist koblet til prosessorene 2
over en prosessor/styreenhet-grenseflate 12. System-styreenheten 10 utgjor kjernen av foreliggende oppfinnelse og vil bli mer fullstendig beskrevet i det folgende. I praksis kan prosessorene 2 og den felles hukommelse 4 være av vanlig maskinvare-utfbrelse. System-styreenheten 10 anvendes sammen med grenseflaten 12 for å meddelehandlingsordre til prosessorene 2 samt å
oppnå samtidig arbeidsfunksjon for prosessorene 2 i et multiprosessor-system. System-styreenheten 10 har således en lignende arbeidsfunksjon som en overordnet operator i et multiprosessor-programvaresystem, men har fordelen av ytterst lav programoverbygning.
Modell for parallelle programmer
Den abstrakte begrepsmodell for parallell databehandling er angitt f.eks. i et antall artikler av Robert M. Keller, f.eks. "Formal Verification of Parallel Programs",
Comm. ACM 19, 7 (juli 1976) sidene 371-384, "Parallel Program Schemata and Maximal Parallelism", J. ACM 20,
3 (juli 1973), sidene 514-537, samt J. ACM 20, 4
(oktober 1973), sidene 696-710.
Denne begrepsmodell er blitt betegnet som et transittsystem og er antatt som et grunnlag for den mer detaljerte konstruksjonsmodell som er angitt i denne tekst. Et transittsystem er en modell av den lopende tidsstruktur for databehandlingsprogrammer. Det er en form hvori et hvilket som helst "strukturert" program kan omformes direkte ved hjelp av kompilator-prosess. Transittmaskinen gir en maskinoppbygning hvori overgangs-systemer kan utfores.
Modellen for overgangssystemet er definert som (Q,-> ), hvor Q er settet av mulige systemtilstander og -9- er settet av overganger mellom tilstandene, slik som beskrevet av Keller. Et navangitt overgangssystem er en trippel
(Q, Komponentene tilsvarer henhv. settet av alle mulige systemtilstander (q^,q2,q2...), et sett av alle overganger mellom tilstander - > ^' ••••) > samt et sett av navn (o-^,o-2'tr3 • • • • ) ti]ordnet grupper av enkeltvis programmerte overganger mellom tilstander. Da det foreligger et en-til-en sammenheng mellom indeksene på sigma og selve navnene, kan disse indekser anvendes som navnangivelse: i betegner <j—^, og I = -£ijjbetegner
Indekset i£I er forbundet med en gruppe systemoverganger som er beskrevet ved setningen:
Symbolene i denne setning er definert på folgende måter:
i = indeks for den gruppe overganger hvis
fellestrekk er at de alle forer til den dataomforming som angis ved funksjonen f^
d = er settet av alle dataelementer i
systemet.
R^(d) = det underordnede sett av tilfredsstilte fordringer til datasettet d som er av vesentlig betydning for å definere korrektheten av overgangen bestemt ved utforelse av dataomformningen t|) ^ (d).
ip^(d) = den programmerte funksjonelle dataomforming (ovenfor betegnet som et underordnet system) som er tilordnet den gruppe systemoverganger som er angitt ved i, og som arbeider på datasettet d og forer til et revidert datasett d'.
Settet i representerer prosesser (inkludert utlosning av predikat) som kan skrives av en programmerer for å frembringe dataomformingene 4J ^ av datasettet d, når det foreskrevne sett av tilstander Ri er tilfredsstilt i vedkommende datasett.^er de individuelle underordnede programsystemer som utgjor et datamaskinprogram. I et parallelt databehandlingstrinn er flere sett av tilstander samtidig tilfredsstilt, således at flere undersystemer kan utfores parallelt. R^ er et utlosende predikat som angir den påkrevede status av datasettet som på korrekt måte tillater utovelse av det undersystem som utforer dataomformingen ^^. Hver av de utlosende predikater utgjores av et sett | Rijj J J av enhetlige predikater, hvor J er det totale antall av enhetlige predikater som kreves av hele den foreliggende algoritme eller databehandlingsproblem. Et enhetlig predikat kan defineres som en enkelt fordring til datasettet og representerer således en enkelt datatilstand, hvis verdi kan spesifiseres i eller av en binær angivelse, f.eks. sann eller usann. Fordringer som utgjor eksempler på enhetlige predikater på dataelementene e. f d er de folgende: 1) dataelementet e^ er tilgjengelig (ikke tilgjengelig)for anvendelse ved påfolgende databehandling, 2) dataelementet e. tilfredsstiller Ji(tilfredsstiller ikke) et spesielt forhold til en viss konstant eller annet data-element e. (f.eks. e. < e. ), og J2 Jl J2 3) dataelementet e^ kan/kan ikke oppdateres.
Utforelsen av begrepsmodellen utfores ved å redusere styringen av tilstandsoverganger til en mekarisk arbeidsfunksjon. For å oppnå sådan styring er settet av tilstander Q avgrenset på sådan måte at bare de tilstander som kan angi et forskjellig sett av valgbare egnede undersystemer antas å være enestående. Ved å gjore denne avgrensning kan en hvilken som helst bestemt tilstand q betegnes av et sett binære statusangivelser innenfor et altomfattende sett av enhetlige predikater. Det altomfattende sett av enhetlige predikater avgrenses til bare å omfatte de som er relevante med hensyn til valg av egnede definerte undersystemer, hvilket vil si at status for databetingelsen a > b vil være en vesentlig del av q, hvis og bare hvis betingelsen a> b er relevant med hensyn til egnetheten av et eller annet undersystem i.
Bestemmelse av egnetheten for en prosess
Egnetheten av et hvilket som helst bestemt undersystem i kan således bestemmes ved å velge det sett av universelle enhetlige predikater som er relevant med hensyn til å sette.igang utforelsen av datatransformasjonen d' = ^(d), samt ved å bestemme status for disse relevante enhetlige predikater. Overgangsvirkningen kan således oppnås ved: 1) å opprettholde en variabel systems ta tus vektor, hvis komponenter er binære statusangivelser, en for hvert enhetlig predikat i det universelle sett, og 2) å opprette for hvert undersystem en relevans-vektor av faste angivelser for å angi hvilken av de universelle sett av enhetlige predikater er relevant for utlosning av et spesielt undersystem.
Så snart retningen av angivelsene i R. og S er blitt definert, vil det foreligge en logisk algebraisk operasjon med operatoren ".", som kan defineres slik at Ei .=Ri..S, hvor E^er en binær statusangivelse med hensyn til egnetheten av undersystemet i. Settet av vektorer R^kan anordnes som en matrise R, hvis i-te rekke er lik R^. Den vektor-algebraiske operator "." er således utvidet til å omfatte sådanne matriser at:
hvor E er en vektor som angir egnethet-statusen for hvert definert undersystem i det overordnede system. Dette forhold i data-sammenstillingene er vist i fig. 2. Et spesielt sett av definisjoner og teoremer angående betydningen av angivelsene R, S og E samt operatoren "." er angitt som tillegg A.
i
Oppdatering av systemstatus
Det foreligger nu en forskrift for bestemmelse av undersystemers egnethet (E-vektor) på grunnlag av systemstatus (S-vektor) samt undersystemers betingede datafordringer (R-vektor). Det skal nå angis en prosess for beregning Vav en ny systemstatus-vektor som skal utfores etter fullfort utforelse av et visst undersystem.
Det er flere mulige påvirkninger av status for en datatilstand ved fullfort utforelse av et undersystem. Disse er som folger: 1) Datatilstanden forblir upåvirket av at undersystemet loper til fullfort utforelse. 2) Datatilstanden er alltid tilfredsstilt når undersystemet loper til fullfort utforelse, 3) Datatilstanden oversees når undersystemet loper til fullforelse, og 4) Datatilstanden bestemmes dynamisk ved utovelse av undersystemet.
Det bor også bemerkes at det inngår modifikasjoner av systemstatus ved inngangen til et undersystem i den foretrukkede utforelse som vil bli beskrevet. Disse modifikasjoner hindrer samme overgang fra å bli forsokt i flere prosessorer ved å nekte påfolgende oppdaterings-tilgang til d', når datatransformasjonen d'=¥^(d) igangsettes.
Påvirkningen av systemstatus ved ferdig utfort undersystem frembringes lett ved tre datasammenstillinger. To av disse er faste vektorer (F og T) som henhv. angir den alltid sanne (punkt 2 ovenfor) og den alltid usanne (punkt 3 ovenfor) situasjon. Utforelsen av et undersystem som er ansvarlig for å beregne verdien av en variabel A vil f.eks. alltid resultere i at tilstanden "A tilgjengelig" angis som sann. En tredje vektor V innstilles dynamisk (punkt 4 ovenfor) av undersystemet på grunnlag av forholdet mellom datavariable beregnet ved undersystemene. Det undersystem som er ansvarlig for beregning av enten en variabel A eller B, må f.eks. angi status for tilstanden "A > B" etter den ferdige utforelse. Det vil være klart at den oppdaterte statusvektor S kan beregnes som en funksjon av T, F og V. Denne klasse av funksjoner kan begrenses ved å overlappe de definerte betydninger av de faste vektorer T og F, for således å danne en skjerm mot uautoriserte dynamiske forandringer av S gjennom V-vektoren. Tillegg B gir en spesiell definisjon av betydningen av T, F og V for en spesiell utovelse.
En enkelt vektordannelse A er påkrevet for å beskytte en prosess som utfores i en viss prosessor fra å bli aktivert i en annen prosessor til å utfore samme dataomforming i tilfeller hvor dette ikke er tilsiktet. En spesiell utforelse av denne vektordannelse er beskrevet i tillegg C.
Proqrameksempel
For man går over til å beskrive maskinutfdreisen av transittmaskinens databehandlingsstruktur, skal et programeksempel bli beskrevet. Dette program beskriver hvorledes programutstyret faktisk arbeider i en transittmaskin samt en spesiell utforelse av vektordannelsene S, R, T, F, A og V ( i samsvar med det som er beskrevet ovenfor og i tilleggene A, B og C) for det foreliggende programeksempel. Det vil også bli vist hvorledes de fordringer som er omtalt under programmerings-produktivitet ved angivelse av oppfinnelsens bakgrunn faktisk understottes av denne databehandlingsstruktur.
Fig. 3 er et flytdiagram for det programeksempel som skal anvendes. For hver blokk i dette diagram er en prosess nedskrevet i et sprog av hoy orden for å utfore den påkrevede arbeidsfunksjon. En sådan enkel beregning vil vanligvis ikke bli oppdelt i så mange små undersystemer, men dette er blitt gjort forst og fremst for å gi et klart eksempel på hvorledes styring kan frembringes ved en spesiell beregningsstruktur. Den arbeidsfunksjon som utfores ved det angitte programsett i utforelseseksemplet beregner ganske enkelt summen av de forste 20 hele tall dividert med produktet av disse tall. Denne funksjon er ikke av betydning for selve behandlingsprosessen og er bare angitt for å anskueliggjore for senere bruk hvorledes de tilstander som utover styringen står i forbindelse med den oppstilte beregningsoppgave. Det er viktig å legge merke til at den parallellitet som kan utnyttes ved denne beregning er at produktet (blokk 3) kan beregnes parallelt med summen (blokk 4).
I fig. 4 er programeksemplet oppstilt for utforelse i et konvensjonelt oppgave-drevet system. I denne programstruktur ligger styringen av datastrommen i sin helhet i aktive programordre. På grunn av dette kan et hvilket som helst undersystem (program) bli aktivert av et annet undersystem ved direkte styringsoverforing, uavhengig av de databehandlingsordre som skal utfores. Det bor også bemerkes at parallellitet ikke på enkel måte kan utnyttes på grunn av det problem som det innebærer å prove på å synkronisere samtidige undersystemer. Sluttresultatet av dette er at programstrukturen ikke gir grunnlag for noen av de angitte fordringer som er omtalt ovenfor på bakgrunn av foreliggende oppfinnelse.
Fig. 5A og 5B viser neste trinn i utviklingen av det foreliggende programeksempel utfort i et system som både gir grunnlag for ordre og hendelser. I dette system kan et undersystem aktiveres på grunnlag av en ordre fra et annet undersystem eller dets aktivering kan fastlegges på grunnlag av et sett av hendelses-flagg som innstilles på hensiktsmessig måte. (Det bor bemerkes at disse flagg angir status for enhetlige predikater.) Dette utgjor et middel for å lose det synkroniseringsproblem som tidligere har hindret utnyttelsen av parallellitet. Et hvilket som helst undersystem kan fremdeles beordre et hvilket som helst annet undersystem, og en direkte overforing av kontroll er fremdeles mulig innenfor denne programstruktur. Hendelses-basert styringsstruktur tillater lett utnyttelse av den tilgjengelige parallellitet og under-støtter derfor den fordring at bare vesentlige trekk av programstyringen behover å spesifiseres av programmereren. Et system som gir grunnlag for både oppgaveordre og hendelser representerer den nåværende teknikkens tilstand i operative systemer.
Fig. 6 viser det neste utviklingstrinn som er et
fullstendig hendelses-drevet fdatatilstand-drevet) versjon av programmet, hvor aktiveringen av hvert undersystem har sitt grunnlag i status for et sett av beordrede hendelses-flagg. Flyt-diagram for systemet som helhet er i dette og etterfølgende eksempler det samme som angitt i fig. 5B. Denne fremgangsmåte innlemmes vanligvis ikke i nåværende systemer på grunn av den hoye programoverbygning som inngår i behandlingen av det store antall hendelses-flagg i programoppsettet. Fordelen ved denne programstruktur er at undersystem-ordrene (direkte overforing av styringssetninger innenfor programmet) kan elimineres. Styringen frembringes i dette system ved innstilling av de riktige hendelses-flagg ved ferdig utforelse av hver databehandling. Resultatet av dette er en mer oppgave-orientert styringsstruktur, idet de databetingelser som er påkrevet for å sette igang hvert undersystem er spesifisert som en iboende del av undersystemet.
Skjont "FLAGG 0", "FLAGG 1" etc. ikke er oppgaveorientert, sees dette forst og fremst som et hukommelsesproblem, hvor identitetsangivelser direkte tilordnet spesielle fordringer kunne ha blitt tildelt hendelses-flaggene. Tabell I viser f.eks. en mulig tildeling av hukommelses- spesifikasjon til hendelses-flaggene, hvilket forer til en lett leselig oppgave-orientert programstruktur.
De hendelses-baserte programs truktur er tillater lett utnyttelse av den tilgjengelige parallellitet. Det foreligger imidlertid fremdeles ikke noen fullstendig eliminering av den direkte overforing av styringssetninger, idet "hvis ellers"-setningen i undersystemet PGM2 innebærer en overforing av styring innenfor programmet, slik det ble tidligere omtalt med hensyn til beslutningslogikken.
Fig. 7 viser et fullstendig hendelses-drevet program med bare en tildelingssetning selv for utforelse av det som tidligere var beslutningslogikk. Dette ble gjort lettere ved å anvende logiske operatorer for tildeling til hendelses-flaggene den status som er dynamisk bestemt under utforelser av undersystemene. Som et resultat oppnås fullstendig eliminering av den direkte overforing av styringsstrukturer. ,En meget oppgave-orientert styrings -struktur har derved fremkommet, og bare de viktigste trekk ved programstyringen er påkrevet, mens parallellitet lett kan utnyttes.
Den programmeringsstruktur som anvendes for transitt-maskinen i henhold til foreliggende oppfinnelse er vist i fig. 8. Et eksempel på kildesetninger for denne programstruktur er vist i fig. 9, hvilket anskueliggjor strukturens oppgave-orienterte trekk. I denne programstruktur er hvert undersystem oppdelt i to komponenter, nemlig: 1) en fullstendig spesifisering av de totale betingelser som er påkrevet for igangsetning av undersystemet (NÅR)-liste av betingelser, samt en spesifisering av de samlede betingelser oppdatert etter fullfort undersystem (DERPij-liste av betingelser), samt II en rekkefolge-angivelse av dataomformingssetninger. Fig. 10 viser den fullstendige todeling i styringsinformasjon og dataomforming, og det er denne databehandlingsstruktur som er utfort i praksis i oppbygningen av transittmaskinen.
Modell av transittmaskinens oppbygning
Fig. 11 viser en almen fremstilling av modellen for transittmaskinens oppbygning, som gjenspeiler den onskede datamaskinoppbygning. Maskinen omfatter to hoved-komponenter. Den forste hovedkomponent kan kalles en styringskomponent, og den opprettholder statusangivelser for alle de relevante totalbetingelser (tidligere betegnet som flagg) i systemet. Den inneholder også angivelser i forbindelse med hvert undersystem og som spesifiserer det underordnede sett av de totale betingelser■som er påkrevet for å aktivere det spesifiserte undersystem, samt angivelser som spesifiserer den modifikasjon av de totale betingelser som foreligger ved ferdig utforelse av undersystemet. Den annen hovedkomponent er en databehandlingskomponent som utforer den kode som gjelder dataomformningen innenfor hvert undersystem.
I drift bestemmer styringskomponenten forst et egnet undersystem ved å undersoke den lopende status for de samlede betingelser som spesifiseres av hver relevans-angivelse som er tilordnet hvert igangsetningspredikat for undersystemet. Det valgte egnede undersystem . identifiser-es overfor databehandlingskomponenten som så utforer i rekkefolge de spesifiserte aritmetiske regneoperasjoner som er tilordnet vedkommende undersystem, og oppviser så status-angivelser som spesifiserer de tilstander som er blitt dynamisk modifisert av undersystemet. Styringskomponenten oppdaterer de samlede tilstandsangivelser som fremkommer etter at undersystemet er fullfort. Denne arbeidssyklus gjentas så inntil systemet som helhet er f erdijkjort.
Utforelse av programeksemplet
Fig. 12 anskueliggjor fremgangsmåten ved den operative utforelse av den databehandlingsstruktur som er angitt som et eksempel ved den foreliggende oppbygningsmodell, idet det er angitt korrekte verdier for de definerte datasammenstiIlinger i programeksemplet i henhold til fig. 8. Anordningene av undersystemer og enhetlige predikater i rekker og kolonner av sammenstilte data i samsvar med foreliggende eksempel, er som folger:
A. Komponentene av systemets stator-vektor S, slik den er definert i tillegg A, utgjores av binære status-angivelser for de enhetlige predikater som er representert ved flagg i programeksemplet. For dette programeksempel kan således anordningen av enhetlige predikater som komponenter av S utfores på folgende måte: Sx, "Innledning"; S2, "Fakultet.Klar"; S3, "Sum.Klar"; S4, "Fortsett.Fakultet"; Sg, "Fortsett.Sum"; og Sg, "Beregn.Forhold". B. Relevans-matrisen R er også definert i tillegg A. Hver rekke i R-matrisen er tilordnet et undersystem. Tilordningene i programeksemplet er som folger: Rekke 1, PGM 1; Rekke 2, PGM 2; Rekke 3, PGM 3; Rekke 4, PGM 4;
og Rekke 5, PGM 5. Hver kolonne i matrisen er tilordnet et enhetlig predikat på tilsvarende måte som for S. C. T-matrisen og F-matrisen er definert i tillegg B. Hver rekke i disse matriser er tilordnet et undersystem på samme måte som for R. På lignende måte er kolonnene tilordnet enhetlige predikater likesom de er for R. D. V-vektoren er definert i tillegg B. De binære statusangivelser som utgjor komponenter av V er tilordnet på samme måte som komponentene av S.
E. A-matrisen er definert i tillegg C. Tilordningene i rekkene og kolonnene tilsvarer tilordningene for komponentene av R. De verdier som anvendes for A tilsvarer således f.eks. R", hvilket ikke er nodvendig, men tilstrekkelig for å gi den onskede beskyttelse for en multiprosessor-utforelse.
Fig. 13 er et flyt-diagram som viser tilstandene for de forskjellige datasammenstillinger under utfdreisen av programeksemplet. De dataoperasjoner som frembringer de forskjellige tilstandsoverganger er angitt over overgangs-pilene. Hver innledningstilstand er angitt ved et tall.
Innledningsvektoren S er i programeksemplet S = (1,0,0,0, 0), hvilket angir at "innledning" er den eneste datatilstand som for oyeblikket er sann. Ved å frembringe prikk-produktet av den R-matrise som er vist i fig. 12 og den foreliggende S-vektor (som beskrevet i tillegg A), vil det innsees at bare E^er forskjellig fra 0 ved dette tidspunkt, således at det eneste egnede undersystem er PGM 1. En inngangsovergang frembringes for PGM 1 som overfores til en prosessor. Denne inngangsovergang frembringer en oppdatering av S-vektoren (innbefattet A-vektoren), hvilket gjor PGM 1 ikke lenger egnet for valg etter inngangen, hvilket hindrer utilsiktet samtidig utforelse av PGM 1 i mer enn en prosessor. Systemet forblir i denne tilstand (tilstand 2) inntil PGM 1 er ferdig utfort og den korrekte utgangsoverforing er innledet, og ved dette tidspunkt går systemet over til tilstand 3. I tilstand 3 er bare PGM 2 valgbar. PGM 2 overfores til den neste prosessor som forlanger en aktivitet. Den tilsvarende inngangsoverforing utfores når PGM 2 er avgitt, vhilket bringer systemet i tilstand 4, hvor atter intet undersystem kan velges som egnet. Systemet forblir i tilstand 4 inntil PGM 2 er fullfort, og ved dette tidspunkt innledes utgangsoverforingen for PGM 2. Ved fullforelse av utgangsoverforingen for PGM 2 vil systemet befinne seg enten i tilstand 5 eller tilstand 10. i
Dette er to mulige tilstander på grunn av den variable oppdatering (dataverdiavhengig) som returneres av PGM 2, slik som vist i fig. 8. Hvis systemet befinner seg i tilstand 5, vil både PGM 3 og PGM 4 bli egnet for valg samtidig. Disse to undersystemer kan utfores i parallell av forégellige prosessorer. Tilstands-flyt-diagrammet i fig. 13 viser at PGM 3 avgis til en prosessor og at systemet overfores til tilstand 6.
PGM 4, som fremdeles kan velges i tilstand 6, avgis da til en annen prosessor og en inngangsoverforing til PGM 4 finner sted, hvilket bringer systemet i tilstand 7. pen rekkefolge hvormed disse to undersystemer avgis, kunne vært ombyttet, men sluttresultatet ville forbli det samme.) Systemet vil forbli i tilstand 7 inntil enten PGM 3 eller PGM 4 sluttkjores og vedkommende utgangs-overforing finner sted. Den rekkefolge hvori disse undersystemer fullfores er også likegyldig, idet sluttresultatet vil bli det samme i begge tilfeller. Tilstands-flyt-diagrammet i fig. 13 viser at PGM 3 fullfores forst, hvilket medforer at systemet overfores fra tilstand 7 til tilstand 8, hvorpå PGM 4 fullfores og får systemet til å gå over fra tilstand 8 til tilstand 9. I tilstand 9 blir PGM 2 atter egnet for valg og rekkefolgen gjentas. Hvis systemet etter at PGM 2 er fullfort befinner seg i tilstand 10, blir PGM 5 egnet for valg. Når PGM 5 avgis, vil inngangsoverfbringen bringe systemet til tilstand 11, og det vil forbli i denne tilstand inntil PGM 5 er fullfort. Etter at PGM 5 er fullfort vil systemet gå over til tilstand 12, hvilket representerer avslutningen av programeksemplet. Ingen ytterligere overforing vil finne sted for et annet sett dataelementer innfores i system-styreenheten.
ALMINNELIGE KONSTRUKSJQNSBETRAKTNINGER
For å gjennomfore den maskinutfdreise som er beskrevet i systemoversikten, er det et annet tema som må tas i betraktning for detaljerte konstruksjonsdata får noen mening.
I forbindelse med fig. 1 vil det være åpenbart at grenseflaten 12 mellom prosessor og styreenhet må frembringe en eller annen synkroniseringsmekanisme for å hindre at flere prosessorer samtidig kommer i vekselvirkning med system-styreenheten 10. I tillegg må det også anordnes en komunikasjonsprotokoll mellom prosessor-systemet og evne til å spesifisere den overgangstype (inngang, utgang eller lading) som forlanges av den enkelte prosessor. Muligheter må også foreligge for ytre I/U og avbrytelses-grenseflater.
Ideelt vil de prosessorer som anvendes i en transittmaskin for universalbruk ikke være begrenset til en enkelt type. Disse betraktninger er blitt inkludert i en enkelt samordnet fremstilling ved å betrakte l/U-styreenheter som prosessorer av en spesiell type. Vedkommende behandlingsprosesser betegnes da som prosesser som krever en prosessor av spesiell type (eller typekategori). Prosessorer som fordrer egnede undersystemer vil da bare bli tillagt aktiviteter som stemmer overens med den type den fordrende prosessor tilborer.
Utnevnelse av et tilordnet undersystem må gis til prosessoren. Dette kan finne sted på forskjellige måter, men en indeks til vedkommende matriserekke er alt som er absolutt nodvendig. Fortrinnsvis avgis de lese-, skrive- og utfdrelses-autorisasjoner som er tilordnet et egnet undersystem til prosessoren av systemstyreenheten heller enn at de oppnås ved indeks-tilgang av prosessoren til hovedhukommelsen. Denne sistnevnte fremgangsmåte er imidlertid også mulig.
Oppdatering av systemets statusvektor krever en dynamisk oppdatert statusvektor-tilstand (V) som returneres av prosessoren etter et undersystem er fullfort. T og F kunne også være lagret i prosessorens hovedhukommelse sammen med tilgangs-autorisasjoner, men i den foretrukkede utforelse bibeholdes disse i system-styreenheten .
Fig. 14 viser et blokkdiagram av den foretrukkede anordning av dataenhetene som adresserer de utovelses-betraktninger som er beskrevet ovenfor og opprettholdes i system-styreenheten 10. Registerne som omfatter prosessor/styreenhet-grenseflaten 12 er også vist. Denne grenseflate 12 inneholder alle de data- og styrings-registre som er tilgjengelig for vedkommende prosessorer. Utforelsesstrukturen og bruken av disse registre er angitt i folgende tabell II.
Det bor bemerkes at med hensyn til den detaljerte konstruksjon av multiprosessor-utfdreisen, kan det benyttes en maskinoppbygning hvori en styreenhet med flere porter anvendes for å hindre samtidig tilgang til styreenheten. I dette tilfelle forlanges det ikke at prosessorene skal utfore synkroniseringsfunksjoner, da disse funksjoner frembringes av styreenheten med flere porter. Kravet om en binær semafor foreligger derfor ikke for prosessorene ved denne detaljutforelse.
Det skal videre bemerkes at A-vektoren vanligvis antar form av en A-matrise for den spesielle oppbygning som er vist i fig. 14, og er definert i tillegg C.
Systemstyringens arbeidsfunksjon - alminnelig beskrivelse
En funksjonsbeskrivelse av samvirke mellom system-styreenheten 10, grenseflaten 12 og prosessorene 2 vil nå bli gitt under henvisning til fig. 14 - 16.
Prosessorens funksjoner er begrenset til:
1) beordring av styreenheten til å frembringe et undersystem som skal utfores,
2) utforelse av undersystemet,
3) gi beskjed til styreenheten om at undersystemet er ferdig utfort, 4) oppdatering av åtatusangivelser for variable datatilstander som prosessoren er autorisert til å avgi, og
\ 5) ladning av styreenhetens datarekker.
Videre styres all indre komunikasjon mellom undersystemene av styreenheten.
Når en prosessor i ledig tilstand forlanger en aktivitet, utforer den en prosess som går ut på prove og innstilling av P/P-semaforen. Denne semafor anvendes for å synkronisere prosessorene slik at bare en prosessor av gangen får tilgang til styreenhetens registre. Etter å ha fått tilgang til styreenheten venter prosessoren inntil det logiske segment av styreenheten ikke er opptatt. Ved dette tidspunkt lagrer prosessoren sin type-angivelse i TYPE-registeret. Registeret X innstilles til "usann" for å angi at det er forlangt innforing av et undersystem. L-indikatoren innstilles til "sann" for å gi signal til styreenhetens logikk-del til å innlede en overgang. Prosessoren vil så vente inntil styreenhetens logikk-del har fullfort sin arbeidsfunksjon (angitt ved at L-indikatoren tilbakestilles).
Når systemets styreenhet oppdager at en overgang skal utfores (ved at L-indikatoren er innstilt på "sann"), vil den avgjbre om en inngangsovergang eller en utgangs-overgang er blitt spesifisert. Hvis en inngangsovergang er spesifisert (angitt ved X="usann"), frembringes det logiske punkt-produkt for matrisen for å gi anvisning om det neste egnede undersystem av en type som er i samsvar med TYPE-registeret for prosessoren. Hvis et sådant egnet undersystem foreligger, lagres dets indeks INDEX - registeret, undersystemet aksess-anvisning lagres i UTFOR-registeret, og dataaksess-anvisninger lagres i LES-og SKRIV-registrene. Den aktive beskyttelses-spesifika-sjon for undersystemet (A-vektoren) anvendes for å oppdatere systemets statusvektor for å forhindre utilsiktet samtidig utforelse av samme undersystem ved hjelp av en annen prosessor. (Hvis intet egnet undersystem foreligger for prosessoren, vil dette bli angitt ved å returnere en O-angivelse til INDEX-registeret.) Aksess-autorisasjon returneres så til prosessoren ved å tilbakestille L-indikatoren til "usann".
Når prosessoren oppdager at en overgangs-autorisasjon er blitt gitt (ved at L-indikatoren er tilbakestilt til "usann" og INDEX-registeret inneholder en verdi som ikke er 0), vil den folgende prosess-rekkefolge bli utfort: INDEX-registeret spares, LES- og SKRIV-registrene bringes til å sette opp dataksess-bindeleddene, mens UTFOR-registeret bringes til å sette opp styre-bindeleddene. P/P-semaforen tilbakestilles for å tillate andre prosessorers tilgang til styreenhetens grenseflateregistre. Styringen overfores til det spesifiserte undersystem. Dette undersystem kan i tillegg til de data-behandlingsaktiviteten som den er tildelt, også modifisere et V-register i prosessoren.
Når et undersystem foreligger, utforer prosessoren en utproving og innstilling av P/P-semaforen. Etter å ha fått tilgang til styreenheten venter den inntil logikk-delen av systemets styreenhet ikke er opptatt. Ved dette tidspunkt lades det foreliggende undersystem identifi-sering i INDEX-registeret, prosessoren kopierer sitt eget V-register inn i V-registeret for styreenhetens grenseflate, og innstiller X-registeret til "sann" for å angi at et undersystem er utlost. Prosessoren vil så aktivere styreenhetens logikk-del ved å innstille L-indikator-registeret til "sann", innstille seg selv til en inngangs-forlangende tilstand, samt endelig tilbakestille P/P-semaforen til å tillate andre prosessorers tilgang til styreenhetens grenseflateregistre.
Når systemets styreenhet oppdager at en overgang skal innledes (ved at L-registeret er innstilt til "sann"), avgjor den om en inngangs- eller utgangs-overgang er blitt spesifisert. Hvis en utgangsovergang er spesifisert, anvendes verdien INDEX-registeret til indekspåvirkning av dataoppstillingene, idet verdier for A, T og F frembringes for å oppta den forandring i systems statusvektor som er forårsaket av det utloste undersystem. Kontakt opprettes også med V-registeret for å utfore denne oppdatering. Når oppdateringen av status er fullfort angir systemets styreenhet sin beredskap til å utfore ytterligere fordringer ved at L-indikatoren tilbakestilles til "usann".
Det bor bemerkes at TYPE-registeret kan anvendes for å identifisere de forskjellige prosessortyper som forlanger tilgang til styreenheten, således at et undersystem i ikke vil kunne velges som egnet for utforelse av den forlangende prosessor, hvis ikke prosessoren er av den riktige type for utforelse av det i-te undersystem. På denne måte kan spesielle prosessorer som ikke har særegne egenskaper inngå i systemet, f.eks. prosessorer med flytende punkt, prosessorer for innstilling av vektorinstruksjoner, byte- eller ord-orienterte prosessorer, I/U-prosessorer eller prosessorer av spesiell modell etter onske.
Funks - j onsavbrudd
Som i de fleste nåværende databehandlingssystemer kan en avbruddsfunksjon inngå i transittmaskinen 1. En mulighet for å innlemme en avbruddsfunksjon er å tildele en rekke i styreenhetens dataoppsett en O-funksjon, som har en R-vektor med bare nuller (dette vil si at rekken aldri vil kunne velges som egnet på grunnlag av indre tilstander), samt T-^ og F-vektorer som avskjermer alle bit som ikke gjelder avbrudd i V-registerets oppdatering. Alle elementer av S-vektoren som har med avbrudd å gjore kan med andre ord innstilles variable av avbruddsprosessen.
Når avbruddet inntrer vil prosessoren forst spare den lopende prosessortilstand (programteller, prosessor-statusord etc), således at prosessoren etter opphor av avbruddsfunksjonen kan vende tilbake til sin tidligere oppgave. Etter bibehold av prosessortilstanden, vil den vente inntil logikk-delen av system-styreinnretningen ikke er opptatt (angitt ved at L-indikatoren innstilles "usann"). Ved dette tidspunkt vil avbruddsprosessen i prosessoren bibeholde de lopende verdier i INDEX-registeret og V-registeret og overlade INDEX-registeret med indeks for styreenhetens rekke av avbruddsdata. Avbruddsprosessen i prosessoren vil så lade verdier som angår det spesielle avbrudd som har inntruffet, inn i V-registeret, og innlede en utgangsovergang ved å innstille styreenhetens utgangsmodus (hvilket vil si X= "sann", 1= "usann" og L= "sann"). Avbruddsprosessen i prosessoren vil da vente inntil utgangsoverforingen er fullfort av styreenheten (angitt ved at L-indikatoren tilbakestilles), vil så gjenopprette de tidligere bevarte verdier i INDEX- og V-registerne, gjenopprette den tidligere prosessortilstand (programteller etc.) og vil vende tilbake til den avbrudte aktivitet. Hele denne prosessrekkefolge påvirker på ingen måte det avbrudte program. Anvendelse av undersystemer med kort utforelsestid vil i alminnelighet tillate tilstrekkelig tid for avbruddsbehandling. Et flyt-diagram for avbruddsprosessen er vist i fig. 17.
Oppbygning av avbruddsprosessen slik som beskrevet ovenfor tilsvarer vanlige fremgangsmåter, og benytter til og med vanlige avbruddsgrenseflater for vanlige prosessorer for å oppnå stabling, prioritering etc. En mer direkte fremgangsmåte er å knytte avbruddslinjene direkte til system-styreenheten. En særegen tilstand i systemets statusregister S er da tildelt avbruddsfunksjonen. Et forut tommende avbruddssignal frembragt av prosessor/styreenhet-grenseflaten benyttes da for å skyve prosessorenes lopende tilstand inn i et magasin-lager og tillate undersystemer med lavere indeks (hoyere prioritert) å overta styringen av de prosessorer som er opptatt med utforelse av undersystemer med lavere prioritet.
QETALJERT OPPBYGNING
Fig. 18 viser den samlede oppbygning av en spesiell utforelse av system-styreenheten 10 og grenseflaten 12
for transittmaskinen 1 i henhold til foreliggende oppfinnelse. Styreenheten 1 er vist å omfatte en synkroniserende og styrende logisk krets 14, et dataoppsett 16 (tilsvarende fig. 14), en logisk krets 18 for bestemmelse av en prosess egnethet samt en logisk krets 20 for oppdatering av systemstatus. Fig. 18 viser også forbindelsen mellom disse hovedkretsblokker innbyrdes og med prosessor/styreenhet-grenseflaten 12.
Organiseringen og virkemåten for det logiske utstyr som kreves for å lade styreenhetens hukommelse (dataoppsett) bestemmer konstruksjonen og virkemåten for resten av systemets styreenhet. Ladefunksjonen kan innlemmes i styreenhetens konstruksjon på mange forskjellige måter. Ikke flyktige hukommelser (ROM, PROM, etc.) kan anvendes
i dataoppsettenheten, som da må lades mens den ikke har noen fysisk forbindelse med styreenheten, eller DMA-funksjoner kan konstrueres inn i styreenheten for å tillate denne å lade sin hukommelse fra hovedhukommelsen for multiprosessor-systemet. I betraktning av disse forskjellige konstruksjonsalternativer, vil det innsees
at den maskinoppbygning som er angitt her bare må betraktes som et utforelseseksempel og ikke som en konstruksjonsbegrensning.
Organiseringen og virkemåten for det logiske utstyr som
er påkrevet for å frembringe "punkt"-produktet av R-matrisen og S-vektoren har en vesentlig virkning på konstruksjonen og arbeidsfunksjonen for systemets styre-, enhet 10. Det er mange forskjellige måter å frembringe
et sådant "punkt"-produkt på. Hvert element av R-matrisen kan f.eks. lagres i et separat hukommelsesregister. Tilgang til hver av disse registre kan så finne sted i parallell, således at ved hjelp av tilstrekkelig
kombinasjonslogikk kan hvert element av vektoren for egnethet beregnes i parallell. En sådan oppbygning vil kreve et stort antall maskinvare-komponenter, men vil fore til en system-styreenhet med meget stor hastighet. En annen alternativ oppbygning vil være.å anvende innholdsadresserbare hukommelser (assosierende hukommelser), hvori det er lagret R-matrisen og TYPE-rekken. Assosierende hukommelser vil tillate hver komponent av egnethet-vektoren å bli beregnet i parallell, hvilket atter vil fore til en styreenhet med hby hastighet, men som vil kreve store mengder av maskinkompbnenter. I betraktning av disse forskjellige konstruksjonsalternativer, skal det atter minnes om at den ombygning som er beskrevet her bare er gitt som et utfbrelses-eksempel og ikke innebærer noen som helst begrensninger.
Grenseflateprosessor/ systemstyring
Som vist i fig. 18, består prosessor/styreenhet-grenseflaten 12 av et antall data- og styrings-registre som er tilgjengelige både for prosessoren og styreenheten. Oppbygningsstrukturen og anvendelsen av disse registre er angitt i folgende tabell III. Noen av disse registre er tidligere omtalt i den alminnelige beskrivelse og også opptatt i tabell II. Beskrivelsen i tabell III gir imidlertid en mer detaljert forklaring av registernes oppbygning og bruk.
For hver system-styreenhet er det et sett grenseflate-data og styreregistre som beskrevet ovenfor. For å sikre riktig arbeidsfunksjon for systemets styreenhet, tillates ingen prosessor å modifisere disse registre mens styreenheten er aktiv (hvilket vil si hvis L-bit i STATUS-registeret er "sann"). Prosessorene må også synkroniseres slik at bare en prosessor modifiserer disse registre av gangen. Dette kan oppnås på forskjellige måter, idet f.eks. en binær semafor kan anvendes for å unngå det kritiske seksjonsproblem og for å synkronisere prosessorene (som beskrevet i alminnelige konstruksjonsbetraktninger). Alternativt kan en utforelses organisert med flere porter anvendes idet tilfelle hver prosessor har et tilordnet sett av grenseflateregistre, og en sådan styreenhet med flere porter loser tilgangsproblemet ved flere prosessorer. Styreenheten med flere porter utforer den faktiske dataoverforing mellom de tildelte prosessor-grenseflate4 registre og de faktiske styreenhet-registre (tilsvarer arbeidsfunksjonen for en hukommelses-styreenhet med flere porter). På grunn av dette krever prosessene i prosessorgrenseflaten ikke synkroniseringstiltak. En oppbygning av styreenheten med flere porter tillater en enklere grenseflatebeskrivelse, og dette vil bli utnyttet i den folgende beskrivelse.
En styreenhet 26 utnyttes som prosessor/étyreenhet-grenseflate 12, slik som vist i fig. 19. Hver prosessor 2 er tildelt et sett av grenseflateregistre 24. Styreenheten 26 med flere porter velger og synkroniserer den faktiske dataoverforing mellom systemets styreenhet 10 og de tildelte prosessor-grenseflateregistre 24. Et funksjonelt logisk stromningsdiagram for styreenheten 26 med flere porter er vist i fig. 20. Den faktiske grense-flateoppbygning er gjennomsiktig for både prosessoren og systemets styreenhet, således at prosessoren og styreenheten har direkte innbyrdes grenseflateforbindelse, uten at det foreligger behov for en P/P-semafor.
Systemstyringens arbeidsfunksjon - detaljert beskrivelse
Det er tre grunnleggende typer av tillatte veksel-virkninger mellom prosessor og styreenhet, nemlig inngangsoverforinger, utgangsoverforinger og ladeoverforinger. For hver sådan type vekselvirkning er spesifiserte prosessorhandlinger og styreenheetaksjoner beskrevet i det folgende:
Inngangsoverforing
Når en prosessor befinner seg i ledig tilstand og begjærer en aktivitet, vil den forst vente inntil den logiske del av systemets styreenhet ikke er opptatt, hvilket angis ved at L-bit i STATUS-registeret innstilles "usann". Ved dette tidspunkt vil den lagre sin prosessortype-identifisering inn i TYPE-registeret (hvis ikke tidligere innledet). X-bit i STATUS-registeret vil bli innstilt "usann" for å angi at en prosessinngang er begjært, mens L-indikatoren i STATUS-registeret vil bli innstilt "sann" for å gi signal til systemets styreenhet om å innlede en overforing. Prosessoren vil så vente inntil styreenheten har fullfort sin arbeidsoperasbn, hvilket angis ved at L-indikatoren i STATUS-registeret tilbakestilles til "sann" av styreenheten.
Når systemets styreenhet oppdager en overgang skal innledes (ved at L-bit i STATUS-registeret er blitt innstilt), vil den avgjore om det spesifisert en inngangsoverfbring, en utgangsoverfbring eller en ladeoverfbring. Hvis en inngangsoverfbring er spesifisert, frembringes matrise-punktproduktet av S-vektoren og R-matrisen for å oppnå den neste egnede prosess av en type som er i samsvar med TYPE-registeret for prosessorene. Hvis en sådan egnet prosess er fastlagt? lagres dens indeks i INDEX-registeret, prosessens aksessanvisning er lagret i UTFOR-registeret, og dataaksessanvisningen lagres i registrene LES og SKRIV. Den aktive beskyttelses-spesifikasjon for prosessen (A-vektoren) anvendes for oppdatering av systemets statorvektor for å hindre utilsiktet samtidig utforelse av samme prosess i en annen prosessor. Hvis det ikke foreligger noen egnet prosess for prosessoren, vil systemets styreenhet innstille O-bit i STATUS-registeret "sann". I dette tilfelle vil systemets statusvektor forbli uforandret. Tilgangsautorisasjon til grenseflateregistrene returneres til prosessoren ved å tilbakestille L-indikatoren i STATUS-registeret.
Når prosessoren oppdager at tilgangsautorisasjon er blitt gitt ved at L-bit i STATUS-registeret er innstilt "usann", undersbker den forst om noen prosesser idet hele tatt er egnet. Dette finner sted ved å betrakte O-bit i status-registeret. Hvis O-bit er "sann", hvilket angir at ingen prosess for byeblikket er egnet, setter prosessoren seg selv i prosess-inngangsmodus og innleder inngangs-rekkefblgen på nytt. Hvis O-bit er "usann", hvilket angir at en prosess er egnet, bringes LES- og SKRIV-registrene til å sette opp dataaksess-bindeleddene, mens UTFOR-registeret bringes til å sette opp styre-bindeleddene. Styringen overfores til den spesifiserte prosess ved å benytte verdien i UTFOR-registeret. Denne prosess kan beregne en verdi for V-registeret (i tillegg til de databehandlingsaktiviteter som den forovrig er tildelt).
Utgangsoverforing
Når en prosess er ferdigkjbrt, vil prosessoren kopiere sin V-registerverdi inn i V-registeret for systemets styreenhet, samt innstille utgangs-indikatoren X i STATUS-registeret "sann" for å angi at en prosess er fullfort. Prosessoren vil så aktivere styreenheten ved å sette L-indikatoren i STATUS-registeret "sann", samt bringe seg selv i en tilstand som begjærer inngang.
Når styreenheten oppdager at en overgang skal finne sted (ved at L-indikatoren i STATUS-registeret er innstilt), vil den avgjore om en inngangsoverfbring, en utgangsoverfbring eller en ladeoverfbring er spesifisert. Hvis en utgangsoverfbring er spesifisert, benyttes verdien i INDEX-registeret til indeksoverfbring inn i dataoppsettet, hvorved data frembringes for å innlemme den forandring i systemets statusvektor som er frembragt av utgangs-prosessen. V-registeret bringes til å utfore denne oppdatering. Systemets styreenhet angir så sin beredskap til å motta ytterligere ordre ved at L-indikatoren i STATUS-registeret tilbakestilles.
Ladeoverfbring
Når en ladeovergang innledes under programstyring, vil prosessoren fbrste vente inntil den logiske del av systemets styreenhet ikke er opptatt (angitt ved at L-indikatoren i STATUS er innstilt "usann".) Ved dette tidspunkt vil prosessoren lagre i INDEX-registeret nummeret på den rekke i styreenhetens matriser som skal lades. De data som skal lades i hver av matrisene UTFOR, LES, SKRIV, TYPE, R, T, F og A vil bi anbragt i de tilsvarende grenseflateregistre og den innledende S-vektor vil bli plassert i V-registeret. Ladeprosessen er hovedsakelig et brukerprogram som overforer styreenhetens dataoppsett fra prosessorenes hovedhukommelse til systemets styreenhet. Prosessoren innstilles I-indikatoren i STATUS-registeret "sann" for å angi at en ladeoverforing er innledet, og aktiverer så styreenhetens logiske del ved å innstille L-indikatoren "sann" i STATUS-registeret. Prosessoren tilbakestiller så seg selv til en hvilken som helst overforingsmodus, nemlig enten inngangsoverfbring, utgangsoverfbring eller ladeoverforing, alt etter den overforingstype som er begjært. (Det bor bemerkes at ladeprosessen forutsetter at ingen inngangs- eller utgangs-overforing finner sted i noen annen prosessor. Dette kan garanteres ved å forutsette at en ladeprosess innfores som den siste egnede aktivitet i dataoppsettene, når alle prosessorer er ledige. En innledning med S=0vil garantere denne status inntil ladeprosessen er fullfort, hvoretter den innledende S-vektor viderefores.) Fig. 21 viser et flyt-diagram for prosessorens arbeidsfunksjon både ved inngangsoverfbring og utgangs-overf br ing, mens fig. 22 viser flyt-diagram for prosessorens arbeidsfunksjon ved en ladeoverfbring. Fig. 23 viser flyt-diagrammet for systemets styreenhet ved såvel inngangsoverfbring som utgangsoverfbring og ladeoverfbring.
SYSTEMSTYRING - DETALJERT KOMPONENTUTFORELSE
Som vist i fig. 18, består systemets styreenhet 10 av
en synkroniserende og styrende logisk krets 14, en dataoppsett-del 16, en logisk krets 18 som bestemmer en prosess egnethet, samt en logisk krets 20 for oppdatering av systemstatus. En spesifisert detaljert utforelse er beskrevet i det folgende for hver av disse fire komponenter.
Dataoppsett
Som vist i fig. 24 omfatter dataoppsett-delen'16 av styreenheten 10 denne enhets hukommelse. Denne hukommelse kan omfatte åtte lagre med direkte aksess, en for hver av datasettene R, A, F, T, TYPE, UTFOR, LES og SKRIV. Hver av disse sett inneholder samme antall elementer og adresseres samtidig. Hvert element (rekke)
i datasettene R, A, F, T inneholder samme antall bit, hvilket er lik antallet i systemstatus-registeret. Avhengig av maskinens anvendelse og hvorledes styreenhetens logiske ladehukommelse er organisert, kan disse hukommelser være enten faste leselagre (ROM, PROM, etc.) eller kombinerte lese/skrive-lagre. For anskuelighetens skyld anvendes her kombinerte lese/skrive-lagre som lades av prosessoren. I tillegg til de datasett som er beskrevet ovenfor, omfatter dataoppsett-delen 16 også et lese/skrive-register som er kalt S-register, hvor systemets statusvektor S er lagret.
Det er tilsammen 14 innganger og utganger for den viste dataoppsett-del 16, og hver av disse vil bli beskrevet i den folgende tabell IV.
Logisk prosess ved bestemmelse av egnethet
Den logiske krets som bestemmer en prosess egnethet inneholdes i styreenheten 10 og omfatter den kombinasjonslogikk som er nodvendig for å bestemme prosessens egnethet under inngangsoverforinger. Et undersystem er egnet, hvis den type prosessor som fremsetter fordringen (innholdet i TYPE-grenseflateregisteret) tilsvarer den prosessortype som er påkrevet for det valgte undersystem (innholdet av datasamleskinnen TYPE^) og alle datatilstander i S-vektoren som er relevante for å utlose undersystemet er "sanne" (hvilket vil si at den vektor som fremkommer ved dannelse av den logiske "ELLER"-funksjon for den i-te rekke av R-datasettet og den lopende S-vektor bare inneholder enere).
Fig. 2 5 er et blokkdiagram for den logiske krets som bestemmer prosessens egnethet. Under henvisning til fig. 18 og fig. 25 representerer linjen 30 en flerbits datasamleskinne som forer det lopende innhold av TYPE-registeret i prosessor/styreenhets-grenseflaten 12. Linjen 32 er en flerbits datasamleskinne som angir den prosessortype som er tilordnet det undersystem som for oyeblikket indeksbehandles, nemlig TYPE^. Linje 34 representerer en flerbits datasamleskinne som forer den R-vektor som er tilordnet det undersystem som for oyeblikket indeksbehandles, nemlig R^. Linjen 36 er en flerbits datasamleskinne fra det S-register i dataoppsett-delen 16 (fig. 24) som overforer det lopende innhold av S-registeret til den logiske krets 18 som bestemmer prosessens egnethet. Utgangssignalet fra kretsen 18 utgjores av et enkelt databit som representerer en enkelt komponent av egnethet-vektoren E langs utgangslinjen 38. E er en logisk "1"-verdi når det indeksangitte undersystem er egnet og ellers en logisk "0"-verdi. Det logiske uttrykk for E kan skrives på folgende måte:
Hvor symbolet 9 anvendes for å angi logisk ekvivalens, og angir den logiske "OG"-funksjon for hvert element som vektoren opererer på, hvilket forer til et enkelt signal som vil være "sant" (logisk "l"-verdi) hvis alle elementene i vektoren er "sanne", f.eks.:
De logiske kretser i fig. 25 utforer den ovenfor
angitte ligning. Under henvisning til fig. 25 overfores signalets langs samleskinnene 30 og 32 til en flerbits komparator 40 som frembringer en enkelt utgangsbit langs linjen 42. Denne utgangsbit er en logisk 1 bare hvis data på TYPE-datasamleskinnen (linje 30) er identisk med data på den datasamleskinne (linje 32) som tilsvarer TYPE. (alle bit ekvivalente), og ellers er utgangssignalet l<l>angs linjen 42 en logisk 0-verdi. Databit langs samle-
skinnene 34 og 36 utgjor inngangssignal til en ELLER-port som er vist i fig. 25 ved et enkelt vanlig ELLER-symbol. Det vil imidlertid fprstås at hver av de tilsvarende bit langs linjene 34 og 36 er forsynt med separate ELLER-kretser på lignende måte som i den krets som er vist i fig. 26. De streker som er angitt på tvers av inngangs-og utgangs-linjene for den logiske ELLER-krets angir således samtlige ELLER-kretser i fig. 26. OG-kretser er på lignende måte representert på tegningene, f.eks. ved porten 48. Den definisjon som benyttes i krets-utforelsen er slik at Sj=l, hvis den j-te datatilstand er "sann", og Rjj=0hvis den j-te datatilstand er relevant med hensyn til prosessen i. Folgelig vil rekkefolge-logikken ELLER, OG være korrekt. Under henvisning til fig. 25 vil således flerlinjers utgang fra ELLER-porten 46 bli overfort til en tilsvarende OG-port 48 med flere innganger, som frembringer et enkelt utgangssignal langs linjen 50 til OG-porten 52. Et annet inngangssignal for OG-porten 50 utledes fra utgangssiden av komparatoren 40 langs linjen 42.
Logisk krets for oppdatering av systemstatus
Den logiske krets 20 for oppdatering av systemstatus inneholder den kombinasjonslogikk som kreves for å utfore oppdateringen av systemets statusvektor S i samsvar med den overforing som innledes. Under en inngangsoverforing vil det logiske uttrykk for den frembragte vektor SNVvære:
Under en utgangsoverforing vil det logiske uttrykk for den frembragte vektor S y være:
Dette uttrykk er sammenfattet i tabell B.2 som er angitt i tillegg B. Under en ladeoverforing er det logiske uttrykk for SNy:
Fig. 27 er et blokkdiagram av den logiske krets 20 for oppdatering av systemets status. Som vist i fig. 27 omfatter denne logiske oppdateringskrets 20 et antall logiske ELLER- og OG-kretser (se f.eks. fig. 26) som er angitt ved henvisningstallene 60, 62, 64, 66, 68 og 70. OG-porten 64, 66 og 68 har en gruppe inverterende inngangsklemmer og en gruppe ikke-inverterende inngangsklemmer. Elementet 70 er en ELLER-port med flere innganger og utganger (se fig. 26), hvor hver inngangs-og utgangslinje utgjores av en flerbits datasamleskinne. Utgangssignalene fra ELLER-porten 40 tilfores en inngangskiemme for en 3-til-l multiplekser 72 langs linjen 74. En annen gruppe inngangssignaler til multiplekseren 72 tilfores langs linjen 76 fra utgangssiden av OG-porten 60. Et tredje inngangssignal tilfores til multiplekseren 72 langs linjene 78. Utgangen for multiplekseren 72 er en datasamleskinne 80 som representerer den nye statusvektor SNy, som tilfores S-registeret i dataoppsett-delen 16 (se fig. 18 og 24).
Inngangslinjene (vanligvis datasamleskinner) til opp-dateringskretsen 20 er fort langs linjene 82, 84, 86, 88, 90, 92 og 94. Linjen 82 forer den enkle bit I som indi-katorverdi fra systemets STATUS-register i grenseflaten 12. Linjen 84 forer den eneste X-bit fra STATUS-registeret. Disse to signaler bestemmer den valgte kode ved klemmene SEL 1 og SEL 2 for multiplekseren 72. Hvis I er "sann" (SEL 1= 1) anvises en ladeoverforing (uavhengig av X) og multiplekseren 72 forer den foreliggende V-vektor fra linjene 94 og 78 til samleskinnen 80 for utgangsdata. Hvis I er "usann" (SEL 1=0) bestemmes utgangssignalet SNYav verdien av X-bit i STATUS-registeret. Hvis X er "sann" er SNy bestemt ved det logiske uttrykk som er angitt ovenfor. Denne logiske ligning er tilordnet en utgangsprosess og oppnås ved anvendelse av tilstandskoden 01 for SELI, SEL 2=01. Tilordnede logiske kretser omfatter inngangslinjer 86, 88, 90, 92 og 94 samt OG-porter 60, 62, 64, 66, 68 og ELLER-porten 70.
Når både X og I er "usann", SEL 1, SEL 2=0,0, er den nye statusvektor ganske enkelt gitt ved xGMLAAjsamt tilsvarer en inngangsoverfbring ved anvendelse av OG-porten 60 og linjene 76.
Logisk krets for synkronisering og styring
Den logiske krets 14 for synkronisering og styring inneholder den klokkede rekkefolgebestemmende logikkenhet som kreves for å styre arbeidsfunksjonen og de indre sammenkoblinger for alle komponenter i system-styreenheten. De forskjellige inngangs- og utgangslinjer som står i forbindelse med den logiske krets 14 er alminnelig vist i fig. 18 og 26 med et detaljert skjematisk diagram angitt i fig. 29. Arbeidsfunksjonen for L-bit, I-bit og X-bit for STATUS-registeret og INDEX-registeret i grenseflaten 12 er angitt ovenfor (se f.eks. tabell III). På lignende måte er ADRESS, CE, R/ M og Sjj^ s allerede blitt definert (se f.eks. tabell IV). Disse sistenevnte signaler frembringes alle av den logiske krets 14 for synkronisering og styring og tilfores forst og fremst
til dataoppsett-delen 16. Samleskinnen ADRESS låses også inn i INDEX-registeret i grenseflaten 12 under inngangs-overf bringene, når et egnet undersystem er påvist. Ytterligere signaler som avgis fra den logiske krets 14 for synkronisering og styring, er angitt i den folgende tabell V.
En spesiell utforelse av den logiske synkroniserings- og styre-krets er vist i fig. 29. Andre kombinasjoner av logiske enheter er mulig, idet konstruksjonskriteriet ganske enkelt er å reprodusere de forskjellige utganger i fig. 24 med de forskjellige mulig kombinasjoner av de inngangsvariable L, I, X, E og INDEX. Det tilstandsdiagram som er vist i fig. 30, folger av flyt-diagrammet i fig. 23. I fig. 30 angir symbolet 0 en "likeglad"-tilstand. Konstruksjonen av den logiske krets ut i fra tilstandsdiagrammet kan utfores i samsvar med velkjent teknikk, slik den f.eks. er beskrevet av M. M. Mano, Computer Logic Design, Prentice-Hall, Inc. (1972), sidene 200-236. De tilstandstildelinger som anvendes i denne logikk-konstruksjon er som folger:
For utforelse av tilstandsdiagrammet anvendes fire
JK bistabile vipper 120, 122, 124 og 126 sammen en klokkegenerator 128 og en ladbar teller 130. Med hensyn til tilstandsfordelingene ovenfor, tilsvarer den mest signifikante bit vippen 120, den nest mest signifikante bit vippen 122, etc. Telleren 130 lades av INDEX-registeret fra grenseflaten 12. De detaljerte tidsdiagrammer er vist i fig. 31 - 34 i sammenheng med folgende konstruksjonsbeskrivelse.
Den indre arbeidsfunksjon for systemets styreenhet
Systems styreenhet har tre indre arbeidsmodus, nemlig henhv. tilsvarende inngangsoverforing, utgangsoverforing og ladeoverforing. Under en inngangsoverforing (frembragt ved at L-indikatorén for grenseflatens STATUS-register innstilles "sann") får den logiske synkroniserings- og styre-krets 14 etterhvert tilgang til påfolgende rekker
(hvert påfolgende element av de åtte hukommelsesmoduler)
i dataoppsettets matrisesett, hvilket får disse rekker til å avgi utgangssignaler over sine respektive datasamleskinner. Etterhvert som elementene fores ut, bestemmer den logiske krets egnetheten av det tilordnede undersystem, og den logiske krets 20 for oppdatering av systemets status frembringer vektoren SNYbasert på den foreliggende statusvektor og den A-vektor som er tilordnet det frembragte undersystem. Det bor errindres at A-vektoren anvendes for å forhindre utilsiktet samtidig utfoielse av samme undersystem i en annen prosessor. Hvis undersystemet er funnet egnet, sorger den logiske synkroniserings- og styre-krets 14 for at S-registeret låser vektoren SNY, overforer tilgangs- og styreinformasjon (hvilket vil si UTFOR^, LESi, SKRIV^ ADRESS) fra de tilordnede datasamleskinner til prosessor-grenseflateregistrene, og returnerer tilgangs-autorisasjon til prosessoren ved å tilbakestille opptattanvisningen L i grenseflatens STATUS-register. Hvis intet undersystem er funnet egnet, underretter den logiske synkronisering- og styrekrets 14 prosessoren om
dette ved å innstille O-indikatoren i grenseflatens STATUS-register, mens tilgangs-autorisasjonen returneres til prosessoren. I dette tilfelle finner det ikke sted noen oppdatering av systemets statusvektor.
Ved tilgang til påfolgende rekker av R-matrisen og tilbakeforing til i=0 for hver ny inngangsoverforing
(se fig-. 23), gjor det mulig for dataprogrammereren å opprette en prioritert rekkefolge for brukerprogrammer. Undersystemer med hoyere prioritet er således plassert tidligere i rekkefolgen av datarekker. Det bor imidlertid bemerkes at tilgang i sådan rekkefolge ikke er påkrevet, og at en vilkårlig tilgangsteknikk faktisk også er mulig. En alternativ fremgangsmåte som omfatter beregning av matrise-punkt-produktet i parallell i motsetning til den rekkefolgemetode som er beskrevet ovenfor, er også mulig.
Fig. 31 viser tidsdiagrammet for styre- og datasignalene i systemets styreenhet under en inngangsoverforing som forer til at det påvises et egnet undersystem i forbindelse med den tredje datarekke i dataoppsettet. For anskuelighetens skyld antas det at hvert hukommelsessett i dataoppsettet bare inneholder fire rekker. Fig. 32 viser et tilsvarende tidsdiagram for en inngangsoverforing hvor det ikke er funnet noe egnet undersystem.
Under en utgangsoverforing tar den logiske synkroniserings-og styre-krets 14 kontakt med en rekke (hvilket vil si et element fra hver av de åtte hukommelsesmoduler) i dataoppsett-delen 16. Den verdi som er lagret i INDEX-registeret anvendes som adresse for å velge den riktige rekke. Etter som hvert element fores ut som utgangssignal på sin tilordnede dataskinne, vil den logiske oppdateringskrets 20 for systemstatus frembringe vektoren SVT„ ut i fra den foreliggende S-vektor, T-, F-NY
og A-vektoren som er tilordnet den valgte rekke, samt den V-vektor som er returnert av prosessoren i V-registeret for grenseflaten 12. Den logiske synkroniserings- og styre-krets 14 får S-registeret til å låse vektoren SNY
og returnere tilgangs-autorisasjon til prosessoren ved å tilbakestille L-indikatoren i STATUS-registeret. Fig. 33 viser tidsdiagrammet for styre- og data-signalene i systemets styreenhet under hver utgangsoverforing.
Under en ladeoverforing sorger synkroniserings- og styre-kretsen 14 forst for at innholdet i hver av grenseflateregistrene R, A, T, F, UTFOR, LES, SKRIV, V og TYPE overfores til sine tilordnede datasamleskinner. Derpå opprettes kontakt med en rekke (et element fra hver av de åtte hukommelsesmoduler) i dataoppsett-delen 16 i en skrivemodus. Den verdi som lagres- i INDEX-registeret i grenseflaten 12 anvendes for å velge den rekke som det skal dannes tilgang til. Dette får inneholdet av hver datasamleskinne til å bli skrevet inn i det adresserte element av den tilordnede hukommelsesmodul. Synkroniserings- og styre-kretsen 14 låser vektoren SNYsom kommer inn fra grenseflaten 12 i V-registeret (se multiplekseren i fig. 27) og returnerer tilgangs-autorisasjon til prosessoren ved å tilbakestille L-indikatoren i STATUS-registeret. Fig. 34 representerer tidsdiagrammet for styre- og data-signalene i systemets styreenhet under en ladeovergang.
OPPBYGNING AV TRANSITTMASKIN MED ENKELTPROSESSOR
Den oppbygning av transittmaskiner som er beskrevet ovenfor kan også benyttes i en enkelt prosessorutfbrelse. Som angitt i fig. 35 har en enkelt prosessor P tilgang til alle hukommelser M som inneholder alle brukerprogrammer og databasis-elementer som er definert som en del av databehandlingssystemet. Systemets styreenhet 100 er av samme alminnelige utforelse som vist i fig. 14 og kan vanligis betraktes som omfattende en logisk synkroniserings- og styre-krets 14', en dataoppsett-del 16', en logisk krets 18' for bestemmelse av en prosess egnethet, samt en logisk krets 20' for oppdatering av systemstatus.
Dataoppsett-delen inneholder alle de faste forhånds-informasjoner som gjelder undersystemene og databasis så vel som dynamiske systemstatusinformasjoner. Likesom tidligere er en rekke i i matrisene R, T og F samt i datasettene UTFOR, LES og SKRIV tilordnet et tilsvarende undersystem i. UTFOR er et datasett av igangsettings-adresser for undersystemet, og LES og SKRIV er sett av anvisninger til datanvisningspakker tilordnet data-tilgangsfordringene for undersystem i. Hver kolonne i matrisene R, T og F og vektorene S og V er tilordnet en datatilstand j. Den j-te kolonne er tilordnet samme tilstand i alle tilfeller. A-matrisen og TYPE-vektoren i fig. 14 foreligger ikke da disse oppsett bare gjelder multiprosessor-utforelser. Den detaljerte oppbygning av de forskjellige komponenter 14', 16', 18' og 20' er således direkte modifisert ut i fra de utforelser som er vist i fig. 24, 25, 27 og 29 på sådan måte at dataoppsettene A og TYPE kan utelates. Videre kan prosessor/styreenhet-grenseflaten utgjores av registre i enkeltprosessor-en P som er tildelt utforelse av de forskjellige funksjoner som hittil er omtalt, f.eks. i forbindelse med fig. 14-18 og tabell III. Disse registre er både tilgjengelig for prosessoren P og systemets styreenhet 100. Som en folge av dette er det ikke påkrevet med et separat grenseflateapparat. Fig. 35 viser det tilfelle hvor grenseflaten 12' er en del av prosessoren P.
Inngangsovergang
Når prosessoren befinner seg i ledig tilstand og begjærer en aktivitet, vil den forste vente inntil den logiske del av systemets styreenhet ikke er opptatt (L-indikatoren innstilt "usann"). Ved dette tidspunkt vil den undersoke om et hvilket som helst av undersystemene er egnet. Dette utfores ved å undersoke O-bit i STATUS-registeret. Hvis denne O-bit er "sann" (hvilket angir at intet undersystem er egnet), har systemet fullfort sin program-utforelse. Prosessoren vil derfor gå i rundgang og vente på et egnet undersystem, som imidlertid bare kan settes i gang som en folge av et ytre avbrudd. Hvis O-bit er "usann", hvilket angir at et undersystem for oyeblikket er egnet, påvirkes LES- og SKRIV-registrene til å sette opp dataaksess-bindeledd, og UTFOR-registeret påvirkes til å sette opp styre-bindeledd. Styringen overfores til det spesifiserte undersystem ved anvendelse av verdien i UTFOR-registeret. Dette undersystem kan (i tillegg til hvilke databehandlingsaktiviteter det ellers må være innrettet for) beregne en V-registerverdi. Den inngangs-overf bringsprosess som utfores av prosessoren er den samme som de prosesser som ble utfort i multiprosessor-tilfellet, slik som vist i fig. 21. Håndteringen av disse prosesser utenfor prosessorene er modifisert i sådan grad at styreenheten kan tre direkte i forbindelse med prosessoren i stedet for ved hjelp av den synkronisering som frembringes av styreenheten med flere porter.
Utgang sover for ing
Når det foreligger et undersystem, vil prosessoren kopiere dets V-registerverdi inn i W-registeret for systemets styreenhet, samt sette utgangsanvisningen X i STATUS-registeret "sann" for å angi at en prosess er ferdigkjbrt. Prosessoren vil da aktivere styreenheten ved å sette L-anvisningen i statusregisteret "sann", samt bringe seg selv i en utgangskrevende modus.
Når systemets styreenhet oppdager at en overgang skal innledes (ved at L-indikatoren i STATUS-registeret er innstilt), vil den avgjbre om det er spesifisert en inngangsoverforing, en utgangsoverforing eller en ladeoverforing. Hvis en utgangsoverforing er spesifisert, anvendes verdien i INDEX-registeret for indeksoverfbring inn i dataoppsettene, for å innlemme i dataene den forandring i systemets statusvektor som er frembragt av det ferdigkjbrte undersystem. V-registeret kontaktes for a utfore denne oppdatering. Styreenheten angir så sin beredskap til å motta ytterligere ordre ved å tilbakestille L-indikatoren i statusregisteret. Disse arbeidsoperasjoner som utfores av prosessoren og styreenheten' er anskueligjort henhv. i fig. 21 og 23.
(Datasettene TYPE og A i fig. 23 er ikke på sin plass i dette tilfelle).
Avbrudd håndteres av avbruddprosessoren ved at prosessortilstanden bevares, en spesiell tildelt verdi lades inn i INDEX, mens det lades en spesiell V-registerverdi som angir avbruddstatus. En utgangsoverforing innledes så av prosessoren. Når utgangsoverforingen er ferdig, vil den bevarte tilstand av avbruddprosessoren bli gjenopprettet. Denne prosess er vist i fig. 17.
Ladeoverforing
Når en ladeoverforing innledes under programstyring, vil prosessoren forst vente inntil den logiske del av systemets styreenhet ikke er opptatt (angitt ved at L-indikatoren i STATUS innstilles "usann"). Ved dette tidspunkt vil prosessoren lagre i INDEX-registeret det antall rekker i styreenhetens matriser som skal lades. De data som skal lades inn i hver av matrisene UTFOR, LES, SKRIV, R, T, og F vil bli anbragt i de tilsvarende grenseflateregistre, mens den opprinnelige S-vektor vil bli plassert i V-registeret. Ladeprosessen er hovedsakelig et brukerprogram som overforer styreenhetens dataoppsett fra prosessorens hovedhukommelse til styreenheten.
Prosessoren innstiller L-indikatoren i STATUS-registeret "sann" for å angi at en ladeoverforing er innledet, og aktiverer derpå logikk-delen i styreenheten ved å innstille L-indikatoren "sann" i STATUS-registeret. Prosessoren tilbakestiller da seg selv i en av overforings-tilstandene, nemlig inngangsoverforing, utgangsoverforing eller ladeoverforing, alt avhengig av hvilken overforings-prosess som forlanges.
Algoritmene for prosessor-logikken og styreenhet-logikken i enkeltprosessorutforelsen er vist henhv. i fig. 36A og 36B. Et utforelsessprog med selvforklarende syntaks anvendes for å lette forklaringen.
VALGT ALTERNATIV OPPBYGNING AV SYSTEMETS STYREENHET
System-styreenhetens spesielle oppbyggelse og arbeidsfunksjon er avhengig av de spesielle formål for databehandlingssystemet som helhet. Tre spesielle konstruksjonsformål er f.eks.: 1) å bygge opp en styreenhet som tillater utnyttelse av iboende fordeler med hensyn til programmer-produktLvitet, selv i et vanlig databehandlingssystem med en eller flere prosessorer. 2) å bygge opp en meget effektiv sentral styremekanisme for styring av et multiprosessor-system. Konstruksjonen av denne anordning vil være avhengig av typen av de prosessorer som skal styres (hovedrammer, minidatamaskiner eller mikrodatamaskiner). 3) å bygge opp en meget effektiv sentral styremekanisme for en konvensjonell enkeltprosessor som effektivt reduserer systemets driftsoverbygning. Konstruksjon av denne anordning vil atter være avhengig av den prosessortype som anvendes.
De fordeler som ligger i det forste konstruksjonsformål er alerede blitt omtalt.
De fordeler som ligger i det annet og det tredje konstruksjonsformål er resultatet av meget effektiv maskinoppbygning med en arbeidsfunksjon, som tilsvarer en analog funksjon som vanligvis utformes på programsiden.
I
For visse anvendelser behover ikke alle trekk ved en sådan system-styreenhet inngå. Mange fordeler ved det forhold at det benyttes en separat sentral styreenhet kan oppnås med bare en del av den apparatoppbygning som er
beskrevet ovenfor. For å oppnå det tredje formål angitt ovenfor kan det defineres en styreanordning som omfatter bare en underordnet del av den fullstendige styreenhet som tidligere er beskrevet. En utforelseversjon av en sådan begrenset system-styreenhet vil bli beskrevet i detalj som et eksempel på en alternativ utforelse for en styreanordning som er utfort på grunnlag av samme grunnleggende konstruksjonsbegreper, men bare krever en viss del av styreenhetens komponenter.
Styreenhet som grunnlag for et konvensjonelt operativt system
Konvensjonelle operative systemer for storre data-behandlingsanlegg er vanligvis bygget opp for å behandle et arbeidsstyrende sprog. For således å kjore et data-behandlingsarbeide, legger en programmerer inn arbeidsstyrende setninger gjennom hele programmet, og som utforer anrop, til det operative system til å utfore arbeidsfunksjoner med hensyn til resurs- eller oppgave-styring. Utforelsen av disse funksjoner av operativsystemet bridrar i hoy grad til den programoperative overbygning (av størrelsesorden 30%), og utgjor en meget kostbar utrustning, særlig ved anvendelse av hovedramme-systerner i stor skala.
Ved den alternative oppbygning som er beskrevet her er programmer som omfatter operativsystemets resurs- og oppgave-styring skrevet som transittmaskinprogrammer.Programmererens frembragte arbeidsstyrende setninger forblir uforandret såvel som formen av brukerprogrammene. En spesialisert systemstyreenhet med færre dataoppsett står i grenseflateforbindelse med eller er innarbeidet i prosessoroppbygningen. Den primære arbeidsfunksjon som skal utfores av denne spesielle styreenhet er å effektivt utfore oppgaveoverforingsfunksjonen for den konvensjonelle prosessor. Denne funksjon utfores vanligvis i programvare, hvilket forer til en betraktelig mengde programoverbygning.
Fig. 37 viser i sin helhet den spesielle utforelse av styreenheten 210 for et enkeltprosessorsystem. Det vil innsees at denne utforelsesvariant av styreenheten omfatter en logisk synkronisering- og styre-krets 214,
en dataoppsett-del 216 samt en logisk krets 218 for å bestemme en prosess valgbarhet. Dataoppsett-delen 218 omfatter i dette tilfelle bare R-matrisen og er således en forenklet utforelse av den dataoppsett-del 16 som er vist i fig. 24. På lignende måte er synkroniserings- og styrekretsen 214 og den logiske krets 218 for bestemmelse av en prosessegnethet forenklede utforelsesvariasjoner av de tilsvarende kretser som er vist i fig. 25 og 29, således at bare de innganger og utganger som er vist i fig. 37 behbver å benyttes.
Fig. 37 viser også den innbyrdes forbindelse mellom disse hovedkretsblokker samt deres forbindelse med et antall prosessor/styre-enhet-registre 212. Disse registre kan være uspesialiserte registre for den prosessor som er vist som en konvensjonell datamaskin 220. Den konvensjonelle datamaskin 220 er vist å omfatte et operativt system 222 som sorger for styring ved utforelse av de forskjellige undersystemer og av en logisk ladekrets 224 samt en logisk krets 226 for oppdatering av S-vektoren. Den logiske prosess ved oppdatering av S-vektoren utfores således som deler av en operativ programrutine. Det bor også bemerkes at denne utforelse av oppfinnelsen ikke krever en fullstendig programadskillelse mellom dataoverforing og programstyring, slik som antydet i det programeksempel som er angitt ovenfor. Selv ved direkte overforing av styring (forgrening eller lignende) i brukerprogrammene, er det maskinbare-operative utstyr i styreenheten virksomt med et formål å nedsette den program-operative overbygning
som ellers ville være påkrevet.
Utforelsen og anvendelsen av disse prosessor/styreenhet-registre 212 er av lignende art som de grenseflateregistre som tidligere er omtalt og er sammenfattet i den folgende tabell VI.
ladeoverforinger.
Arbeidsfunks i oner
Det er to grunnleggende typer tillatte innbyrdes påvirkninger mellom prosessor og styreenhet, nemlig inngangsoverforing og ladeoverforing. For hver type sådan innbyrdes påvirkning er den spesielle prosessor-aktivitet og styreenhetens reaksjon beskrevet nedenfor.
Inngang sover fdr ing
Når en prosessor er i ledig tilstand og forlanger en aktivitet, vil den fdrste vente inntil den logiske del av styreenheten ikke er opptatt, hvilket angis ved at L-bit i STATUS-registeret er innstilt "usann". Ved dette tidspunkt vil I-bit i STATUS-registeret bli innstilt "usann" for å angi at en prosessinngang kreves og L-indikatoren i STATUS-registeret vil da bli innstilt "sann" for å avgi signal til systemets styreenhet om å innlede en overforing. Prosessoren vil da vente inntil styreenheten har fullfort sin arbeidsoperasjon, hvilket angis ved at L-indikatoren i STATUS-registeret er innstilt "usann" av styreenheten. (Denne prosess kan utfores som en makro-instruksjon, hvis utforelsestid er tilpasset styreenhetens forsinkelse.)
Når styreenheten finner at en overforing skal settes i gang (ved at L-bit i STATUS-registeret er blitt innstilt) vil den avgjore om det er en inngangsovergang eller en ladeovergang som er spesifisert. Hvis en inngangsovergang er spesifisert, utfores punktproduktet mellom S— vektoren og R-matrisen for å oppnå den nye egnethet-vektor som lagres i E-registeret. Tilgangs-autorisasjon til registrene 212 returneres til prosessoren ved tilbake-stilling av L-indikatoren i STATUS-registeret.
Når prosessoren finner ut at tilgangs-autorisasjonen er gitt (ved at L-bit for et STATUS-registeret er innstilt "usann"), undersoker den forst orn noen av undersystemene er egnede. Dette finner sted ved å undersoke den E-vektor som inneholdes i E-registeret. Hvis E-vektoren i sin helhet er 0, hvilket angir at intet undersystem for nærværende er egnet, blokkeres enten systemet inntil et ytre avbrudd frigir resurser eller det tilordnede arbeide er fullfort. I det sistenevnte tilfelle må prosessoren sette igang en styreenhets-ladeovergang for å bringe inn det neste arbeide som skal utfores.
Hvis E-registeret ikke er 0, anvendes bitposisjons-indeks for det forste ledd som ikke er 0 i E-vektoren for å oppnå den oppgavestyrende informasjon som er forbundet med det egnede undersystem. Denne bit i E-vektoren tilbakestilles da ikke. Styringen overfores da til det spesifiserte undersystem. Dette undersystem kan ( i tillegg til de databehandlingsaktiviteter som det skal utfore) modifisere S-registeret på en måte som er analogt med de tidligere omtalte oppdateringsbehov. Ved fullforelse av undersystemet undersoker prosessoren atter E-registeret for å bestemme det neste egnede undersystem. Denne arbeidssyklus fortsetter inntil alle de egnede undersystemer er blitt utfort og de tilsvarende bit i E-registeret er blitt tilbakestilt. Ved dette tidspunkt aktiverer prosessoren systemets styreenhet til å utfore en annen inngangsoverforing.
Ladeoverforing
Når en ladeoverforing innledes under programstyring, vil prosessoren forst vente til den logiske del av systemets styreenhet ikke er opptatt (angitt ved at L-indikatoren i STATUS innstilles "usann"). Ved dette tidspunkt vil prosessoren lade inn i INDEX-registeret nummeret på den rekke i styreenhetens R-matrise som skal lades. De data som skal lades inn i den indeksangitte rekke av R-matrisen vil bli anbragt i R-registeret i grenseflaten. Ladeprosessen er vesentlig et brukerprogram som overforer styreenhetens dataoppsett fra prosessorens hovedhukommelse til styreenheten. Prosessoren innstiller I-indikatoren i STATUS-registeret "sann" for å angi at en ladeoverforing er satt igang og aktiverer så styreenhetens logikkdel ved å sette L-indikatoren "sann" i STATUS-registeret. Prosessoren tilbakestiller da seg selv til vedkommende korrekte overforingsmodus, enten dette er en inngangsoverforing eller en ladeoverforing. Fig. 38 representerer et operativt flyt-diagram i prosessoren for en inngangsoverforing, mens fig. 39 angir prosessorens operative flyt-diagram for en ladeoverforing. Fig. 40 angir det operative flyt-diagram for systemets styreenhet, innbefattet inngangsoverforing og ladeoverforing.
Skjont oppfinnelsen er blitt beskrevet ved hjelp av foretrukkede utfdreiser, vil det være åpenbart at modifikasjoner og forbedringer kan utfores av fagfolk på området, idet oppfinnelsen er ment å omfatte alle sådanne modifikasjoner og forbedringer som faller innenfor oppfinnelsens grunnleggende ide og ramme.
-Al-
TILLEGG A
Ved oppbygning av modellen for parallell databehandling, er spesielle definisjoner tillagt det sett av dataoppsett R, S og E samt den algebraiske matriseoperasjon, nemlig punktproduktet, på disse dataoppsett, for å opprette et overgang s sys tem.
Definisjon A.l. Systemets statusvektor S utgjores av et sett av binære statusangivelser for datasettet d, således at det for hver datatilstand foreligger en tilordnet statusangivelse S^i S-vektoren hvis og bare hvis Sj er relevant med hensyn til å opprette en viss prosess i systemet. Sj = 1 hvis den tilordnede datatilstand er oppfylt, Sj = 0 i annet tilfelle.
Definisjon A.2. Systemets egnethet-vektor E utgjores av et sett binære statusangivelser angående settet av enhetlige predikater R^, og som angir om R^er lopende tilfredsstilt for derved å utlose den tilordnede prosess. E^= 1 angir at de tilordnede enhetlige predikater er tilfredsstilt, mens ellers E^= 0.
Definisjon A.3. Et systems statustilstand S^er relevant med hensyn til igangsetting av en prosess i hvis og bare hvis den datatilstand hvis status er angitt ved S^ inngår i de enhetlige predikater R^.
Proposisjon A.l. De enhetlige predikater R^kan angis som et sett av binære relevansangivelser tilordnet (og i sammenheng) med hver av de tilstander hvis status er fastlagt i S. Denne proposisjon folger direkte fra de tidligere angitte definisjoner.
Definisjon A.4. Relevansmatrisen R består av binære relevansangivelser r^ som angir relevansen av systemets statustilstand j for å kunne utfore prosessen i. Relevans er angitt ved r..=0, irrelevans ved r..=1. Definisjon A.5. Det logiske punktprodukt av en matirse M og en vektor V med tilsvarende dimensjoner er definert som vektoren P = M *V, hvor ; ;
Proposisjon A.2. Systemets egnethet-vektor E kan beregnes med hensyn på en gitt tilstand av systemet ved å ta det logiske punktprodukt av relevansmatrisen R og systemets statusvektor S. ;Bevis: Fra definisjon A.5 folger at:; ;
Av definisjonene A.4 og A.l folger at r.. vs. =1 hvis og bare hvis betingelsen j enten er oppfylt eller irrelevant for utforelse av prosessen i. Av proposisjon A.l folger da at (r = 1 hvis og bare hvis alle betingelser for de enhetlige predikater R. er oppfylt. ;{r'S^ = E, ut i fra definisjon A.2, og det er således bevist at E = R*S slik som ovenfor angitt.
TILLEGG B
Spesielle definisjoner gjelder for dataoppsettene T, F, V og deres funksjonelle forhold. De folgende definisjoner anvendes for aksess-begrensning for brukerprogrammer.
Definisjon B.l. Det j-te element t^ av den "sanne" tilstandsvektor T^er en binær statusangivelse i sammenheng med prosessen i og systemets statustilstand j, således at tj_j=l betyr at tilstanden j enten er tilfredsstillet eller uforandret ved fullforelse av prosessen i.
Definisjon B.2. Det j-te element f^^av den'usanne" tilstands vektor F^er en binær statusangivelse i sammenheng med prosessen i og systemets statustilstand j. Elementet f^j =1 betyr at tilstanden j enten er ikke tilfredsstillet ellet uforandret ved fullforelsen av prosessen i.
Definisjon B.3. Den variable vektor V for oppdatering av tilstanden er et sett av binære statusangivelser som kan innstilles dynamisk av den prosess som kjores i en sekvensprosessor. Komponenten V\. innstilles til 1-verdi av prosessen for å angi at systemets statustilstand j er tilfredsstillet, eller V., innstilles til 0 for å angi at tilstanden j ikke er tilfredsstillet.
Proposisjon B.l. De fire mulige folger av forandringer i systemet etter fullforelse av prosess i kan beregnes i samsvar med formelen:
hvor streken over symbolene angir den logiske IKKE-operasjon.
S
Bevis: Beviset folger direkte av definisjonene for de tilordnede vektorer, slik som vist i den etterfolgende sannhets tabel1 B.l.
Det bor bemerkes at proposisjonen B.l kan anta mange former. Det uttrykk som er anvendt har den fordel at området for begrenses i sådan grad at prosessen i bare kan modifisere de tilstander som den er autorisert for.
Proposisjon B.2. Området for V er begrenset slik at V bare modifiserer et spesifisert undersett av systemets statustilstander j. Dette undersett bestemmes av 1\ og F^for prosessen i, således at S . er bestemt ved V. hvis og bare hvis t^j=0.
Bevis: De frembragte nye verdier av S. for de forskjellige verdier av t^jog f^.. ut i fra proposisjon B.l er vist i tabell B.2 som er avledet av tabell B.l, hvorav proposisjonen folger direkte.
TABELL B.lSANNHETSTABELL FOR SYSTEMETS STATUSTILSTANDS-OVERFORINGER
TABELL B.2 BEGRENSNINGER AV OMRÅDET FOR V
TILLEGG C
For å frembringe eksklusiv data-aksess såvel som å forhindre samtidig kjoring av samme prosess i mer enn en prosessor, er den eneste aktiveringsvektor utvidet for å nekte tilgang til data som skal oppdateres av en prosess. Dette vil gi en ekvivalent til en enkelt trinnfunksjon som er meget nyttig i utprovningsfaser av parallelle programmer. Dette kan gjores ved å definere en matrise hvis rekkevektorer er tilordnet prosesser. Hver A^defineres som et logisk undersett av den rekke i R som er tilordnet i. Dens definisjon folger således av definisjonen av R (tillegg A) for en hver gitt utforelse.
Definisjon C.l. Vektoren A^ er et sett av binære statustilstander A^^, hvor indeks j har sammenheng med de tilstander hvis status opprettholdes i S. Aij=l hvis 0<3 bare hvis den j-te tilstand er en tilstand av gjensidig eksklusiv data-aksess, som kreves for inngang til prosessen i. Ellers er A^j=0. Hvis A\ er identisk med 1-te rekke i R, må alle sådanne prosesser med noen som helst inngangstilstander felles utfores etter hverandre i rekkefolge.
Proposisjon C.l. Systemets statusvektor modifiseres i samsvar med formelen S=SA A\ for inngangen er tilstrekkelig til å oppnå aksess-beskyttelse for prosessen i.
Beviset for denne proposisjon folger umiddelbart av definisjonene C.l, A.l og A.4.
Proposisjon C.2. Modifisering av systemets statusvektor i samsvar med formelen S=S V A^tilbakefores S til sin opprinnelige verdi.
Bevis: Beviset for denne proposisjon folger direkte av definisjon C.l og proposisjon C.l hvis det ikke er noen forandring av S mellom inngang og utgang for den i-te prosess. Hvis det ikke innledes eller avsluttes noen annen prosess innenfor vedkommende tidsinterval gjelder dette bevis fordi ingen prosesser kan forlope i parallell hvis de er frembragt av eller frembringer den samme data-aksess-tilstand som dekkes av . For hver tilstand hvori 0 vil det derfor ikke ha oppstått noen mellomliggende forandring av S, og beviset er derved fullstendig.
Proposisjon C.3. Forandringen av systemets status som folge av at prosessen i er fullfort kan beregnes ved hjelp av formelen:
Beviset folger direkte av bevisene for proposisjonene BJ. og C.2.
Claims (15)
1. Maskinvare-operativ apparat for anvendelse i et multiprosessor-system bestående av flere samtidig arbeidende dataprosessorer for losning av en algoritme definert ved flere bruker-prorgrammer og et styre-program, idet nevnte dataprosessorer har tilgang til lagringsutstyr for brukerprogrammer samt datalagringsutstyr som i det minste omfatter et felles datalagringsområde som er tilgjengelig for nevnte flere dataprosessorer, og nevnte maskinvare-operative apparat er innrettet for å utfore nevnte styreprogram og omfatter:
a) en statuslagringsinnretning for lagring av totale binære statusangivelser S . tilsvarende datatilstander i et datasett som grunnlag for å bestemme brukerprogrammenes egnethet for å lose nevnte algoritme, idet nevnte lagrede statusangivelser tilsvarer datatilstander som er relevante for å kunne utfore brukerprogrammer ved hjelp av nevnte flere prosessorer som benyttes ved losning av nevnte algoritme,
b) relevans-lagringsinnretninger for lagring av grupper i av binære relevansangivelser R.., idet hver gruppe tilsvarer relevansen av nevnte statusangivelser med hensyn til det i-te nevnte brukerprogram, hvor i ei-et helt tall som angir en av nevnte grupper og tilsvarer et av brukerprogrammene og j er et helt tall som angir en av nevnte binære statusangivelser,
c) utstyr for oppdatering av nevnte statusangivelse som er lagret i statuslagringsinnretningen ved fullforelse av hvert brukerprogram,
d) utstyr som påvirkes av nevnte relevans-lagringsinnretning for å bestemme brukerprogrammenes egnethet for å utfores av nevnte flere prosessorer, og
e) utstyr for å tillate utforelse av egnede brukerprogrammer av nevnte flere prosessorer, hvorunder i det minste noen av de brukerprogrammer som er funnet egnet kan utfores samtidig.
2. Apparat som angitt i krav 1, hvor nevnte innretning for å bestemme egnetheten av brukerprogram i omfatter organer for dannelse av en logisk operasjon med hver binær statusangivelse Sj og hver tilsvarende binær relevans-angivelse R^j , således at brukerprogrammet i er egnet hvis alle statusangivelser S.. tilsvarende relevante angivelser R^^ er sanne.
3. Apparat som angitt i krav 2, hvor nevnte utstyr for oppdatering av statusangivelser omfatter:
a) organ for avfoling av fullfort utforelse av hvert brukerprogram,
b) organ for lagring av faste statusangivelser (T,F) tilordnet hvert brukerprogram i, nevnte faste status-angivelser bestemt av algoritmen uavhengig av verdier tilordnet nevnte datasett,
c) organ for lagring av variable statusangivelser (V) tilordnet fullforelsen av brukerprogrammet i, nevnte variable statusangivelser bestemt av algoritmen i avhengighet av beregninger utfort av nevnte dataprosessorer på nevnte datasett-verdier, og
d) logisk kretsinnretning for kombinasjon av nevnte lagrede faste statusangivelser og nevnte variable status-angivelser for å frembringe oppdaterte statusangivelser for lagring i statuslagringsinnretningen.
4. Datamaskin som er innrettet for overgang mellom forskjellige tilstander for losning av en algoritme og som omfatter:
a) en databehandlingsenhet som omfatter organer for databeregning i samsvar med brukerprogrammer,
b) en lagrings-hukommelsesenhet som er tilgjengelig for databehandlingsenheten for lagring av nevnte brukerprogrammer og for lagring av data for anvendelse ved og som er resultat av utforelse av brukerprogrammene,
c) maskinvare-operativt utstyr innrettet for oppstilling av brukerprogrammene og som omfatter:
i) en innretning for lagring av angivelser av status for et antall datatilstander som tilsammen tillater utforelse av nevnte brukerprogrammer som anvendes ved losning av algoritmen,
ii) en innretning for lagring av angivelser av relevansen for hver av nevnte statusangivelser tilsvarende hvert av brukerprogrammene,
r
iii) utstyr for oppdatering av nevnte status-angivelser etter utforelse av nevnte brukerprogrammer, og
iv) utstyr som tillater utforelse av brukerprogrammene som reaksjon på nevnte statusangivelser og de tilsvarende relevansangivelser.
5. Datamaskin som angitt i krav 4, hvor nevnte brukerprogrammer er hendelses-drevne programmer uten direkte overforing av styring innenfor programmet eller til andre brukerprogrammer, og nevnte status- og relevans-angivelser utelukkende fastlegge forutsetningene for å tilil late utforelse av vedkommende brukerprogram.
6. Datamaskin som angitt i krav 4, hvor nevnte utstyr for å tillate utforelse av brukerprogrammer er innrettet for å tillate programmer som har "sanne"-statusangivelser av datatilstandene for alle relevante relevans-angivelser som tilsvarer brukerprogrammene.
7. Fremgangsmåte for å oke prograrngjennomlopet i et databehandlingssystem og som omfatter folgende prosess-trinn:
a) utforming av programmeringen av en algoritme som skal utfores av databehandlingssystemet i et antall data-omf ormingsprogrammer og et styreprogram, idet data-omf ormingsprogrammene utforer hendelses-drevne databehandlingstrinn uten overforing av styring til andre omformingsprogrammer, mens nevnte styreprogram ordner utforelsen av nevnte databehandlingstrinn,
b) det velges et antall enhetlige predikater som kollektivt representerer alle datatilstander som er relevante med hensyn til å tillate utforelse av alle nevnte dataomformingsprogrammer, idet de enhetlige predikater danner statusangivelser av nevnte datatilstander,
c) fastleggelse av alle nevnte enhetlige predikater som er relevante med hensyn til å tillate utforelse av hvert av dataomformingsprogrammene, således at de fastlagte enhetlige predikater danner en gruppe av relevans-angivelser tilsvarende hvert dataomformingsprogram,
d) nevnte dataomformingsprogrammer lagres i hukommelses-lagringsinnretningen,
e) styreprogrammet lagres i et maskinvare-operativt apparat og nevnte dataomformingsprogrammer styres ved at:
i) det opprettholdes et hukommelseslager av nevnte statusangivelser,
ii) det opprettholdes et hukommelses-lager for hver gruppe relevans-angivelser,
iii) egnetheten av dataomformingsprogrammene bestemmes av logiske maskinvare-operasjoner på nevnte status- og relevans-hukommelseslagre, idet et dataomformingsprogram bestemmes som egnet for utforelse hvis alle de statusangivelser er "sanne" som er relevante i den gruppe relevansangivelser som tilsvarer vedkommende dataomformingsprogram,
iv) nevnte egnede programmer tillater utfort, hvorunder samtidig egnede dataomformingsprogrammer også kan utfores samtidig,
v) nevnte hukommelseslager av statusangivelser oppdateres etter fullfort utforelse av hvert data-omf ormingsprogram,
vi) nevnte prosesstrinn iii) til v) gjentas inntil ingen av dataomformingsprogrammene lenger bestemmes som egnet, hvorved nevnte algoritme er fullfort av databehandlingssystemet.
8. Fremgangsmåte som angitt i krav 7, hvor nevnte prosesstrinn for igangsetting av nevnte egnede data-omf ormingsprogrammer omfatter folgende deltrinn:
a) lagring i lagringsinnretninger av inngangs-punkter for bestemmelsesadresser tilsvarende alle nevnte dataomformingsprogrammer,
b) frembringelse av inngangspunkt-bestemmelsesadresser ut i fra nevnte lagringsinnretninger, tilsvarende egnede omformingsprogrammer, og
c) overforing av nevnte frembragte inngangspunkt-bestemmelsesadresser til en ikke opptatt dataprosessor for utforelse.
9. Fremgangsmåte ved oppbygging av et databehandlingssystem for losning av databehandlingsproblemer ved anvendelse av en maskinvare-operativ og oppgaveorientert programmering som omfatter folgende prosesstrinn:
a) oppdeling av programmeringen av det databehandlingsproblem som skal utfores av databehandlingssystemet i flere dataomformingsprogrammer og et styre-program, idet nevnte dataomformingsprogrammer utforer hendelses-drevne databehandlingstrinn uten overforing av styring til andre omformingsprogrammer, mens nevnte styreprogram regulerer utforelsen av nevnte databehandlingstrinn,
b) det velges et antall enhetlige predikater som tilsammen representerer alle datatilstander som er relevante for å tillate utforelse av alle nevnte data-omf ormingsprogrammer, idet nevnte enhetlige predikater utgjor .statusangivelser for nevnte datatilstander,
c) bestemmelse av alle nevnte enhetlige predikater som er relevante for å tillate utforelse av hver av data-omf ormingsprogrammene, idet de bestemte enhetlige predikater danner en gruppe relevans-angivelser som tilsvarer hvert dataomformingsprogram,
d) dataomformingsprogrammene lagres i hukommelses-lagringsorganer,
e) nevnte styreprogram lagres i et maskinvare-operativt apparat og dataomformingsprogrammene reguleres ved at:
i) det opprettholdes et hukommelseslager for nevnte statusangivelser,
ii) det opprettholdes et hukommelseslager for hver gruppe relevans-angivelser,
iii) dataomformingsprogrammenes egnethet bestemmes ved hjelp av logiske maskinvare-operasjoner på nevnte status- og relevans-hukommelseslagre, idet dataomformingsprogrammene bedommes som egnet for utforelse hvis alle de statusangivelser er "sanne" som er relevante i den gruppe relevans-angivelser som tilsvarer vedkommende dataomformingsprogram,
iv) nevnte egnede programmer tillates utfort,
v) nevnte hukommelseslager for statusangivelsene oppdateres etter fullforelse av hvert data-omf ormingsprogram,
vi) prosesstrinnene iii) til og med v) gjentas inntil dataomformingsprogrammene ikke lenger bedommes som egnede, hvorved losningen av nevnte databehandlingsproblem er fullfort.
10. Maskinvare-operativ styreenhet for universalbruk og anvendelse i et multiprosessor-datasystem med flere dataprosessorer innrettet for utforelse av et antall brukerprogrammer i parallell driftsmodus, idet nevnte maskinvare-operative styreenhet omfatter:
a) en dataoppsett-del for lagring av:
i) statusangivelser tilsarende binære datatilstander som utgjor forutsetninger for å tillate utforelse av nevnte brukerprogrammer;
ii) relevans-angivelser som tilsvarer binære angivelser av relevansen av hver av nevnte datatilstander med hensyn på hvert av brukerprogrammene, og
iii) binære oppdateringsangivelser for oppdatering av statusangivelsene etter utforelse av nevnte
brukerprogrammer,
b) en logisk krets for statusoppdatering og forbundet med nevnte dataoppsett-del for mottagelse av status-,angivelsene og de binære oppdateringsangivelser, samt forbundet med nevnte dataprosessorer for mottagelse av ytterligere binære oppdateringsangivelser som er variable og avhengig av dataomforminger utfort ved nevnte brukerprogrammer, idet nevnte logiske krets for status-oppdatering frembringer oppdaterte statusangivelser for nevnte dataoppsett-del,
c) en krets for bestemmelse av egnethet og forbundet med dataoppsett-delen og dataprosessorene for å bestemme egnetheten av nevnte brukerprogrammer for å bli utfort i vedkommende dataprosessorer, nevnte krets for bestemmelse av egnethet og som reagerer på nevnte statusangivelser og nevnte relevans-angivelser for å tillate utforelse av brukerprogrammene, og
d) en logisk synkroniserings- og styre-krets for å velge grupper av nevnte relevans-angivelse tilsvarende brukerprogrammene for overforing til nevnte krets for bestemmelse av egnetheten.
11. Et databehandlingssystem som omfatter:
a) et antall dataprosessorer som har tilgang til lagringsutstyr for brukerprogrammer samt datalagringsutstyr som i det minste omfatter et felles datalagringsområde som er felles tilgjengelig for nevnte antall dataprosessorer,
b) en system-styreenhet som omfatter:
1) et statusregister for lagring av binære status-angivelser Sj for et antall enhetlige predikater av i datatilstander som danner grunnlag for et data
behandlingsproblem som skal loses av databehandlingssystemet, som er innrettet for å lose dette databehandlingsproblem ved å utfore et antall brukerprogrammer som er lagret i lagringsutstyret for sådanne programmer,
2) et relevans-matriselager for lagring av binære angivelser R^ . av relevansen av hvert enhetlig predikat j med hensyn til hvert brukerprogram i,
3) utstyr for oppdatering av nevnte binære status-angivelser i statusregisteret som reaksjon på forandringer i den binære status av nevnte enhetlige predikater etter utforelse av nevnte brukerprogrammer,
4) utstyr for lagring av flere brukerprogram-bestemmelsesadresser tilsvarende nevnte antall brukerprogrammer,
5) en innretning for å bestemme egnetheten av nevnte flere brukerprogrammer for å utfores av nevnte antall dataprosessorer samt for å frembringe bestemmelsesadresser fra lagringsutstyret for brukerprogrammenes adresser for de brukerprogrammer som er bedomt som egnede, idet sådanne egnede programmer utfores samtidig i nevnte flare dataprosessorer og nevnte valgbarhets-bestemmende innretning som reaksjon på de binære status-angivelser i statusregisteret samt de tilsvarende binære relevans-angivelser i nevnte relevans-matriselager, og
6) logisk synkroniserings- og styre-organer for synkronisering og regulering av arbeidsfunksjonen for nevnte system-styreenhet,
således at styreenheten utgjor et maskinvare-operativt apparat for databehandlingssystemet, og
c) grenseflateutstyr innkoblet mellom nevnte flere dataprosessorer og systemets styreenhet.
12. Databehandlingssystem som angitt i krav 11, og hvori:
a) nevnte grenseflateutstyr omfatter et typeregister for lagring av angivelser av den prosessortype som krever tilgang til system-styreenheten,
b) nevnte system-styreenhet omfatter videre flere prosessortype-lagre tilsvarende nevnte antall brukerprogrammer, idet disse prosessortype-lagre lagrer angivelser av den type dataprosessor som er anvendbar for utforelse av tilsvarende brukerprogrammer, og
c) nevnte innretning for å bestemme egnetheten av nevnte brukerprogrammer, omfatter utstyr for å sammen-ligne angivelser av den dataprosessortype som er lagret i grenseflate-typeregisteret med nevnte angivelser av dataprosessortype som er lagret i nevnte prosessortype-lagre,
således at nevnte antall brukerprogrammer kan utfores av spesifiserte typer av nevnte flere dataprosessorer.
13. Databehandlingssystem som angitt i krav 11, hvor nevnte relevans-matriselager omfatter grupper i av binære relevansangivelser R^.. lagret i rekkefolge, og nevnte logiske synkroniserings- og styre-organer er innrettet for i rekkefolge å velge grupper av sådanne relevansangivelser i nevnte relevans-matriselager for overforing av disse til nevnte egnethets-bestemmende innretning.
14. Databehandlingssystem som angitt i krav 11, og som videre omfatter utstyr for å hindre samtidig utforelse av samme brukerprogram i mer enn en av nevnte flere dataprosessorer.
15. Databehandlingssystem som angitt i krav 14, hvori nevnte utstyr for å hindre samtidig utforelse omfatter et organ for å frembringe en 'usann" statusangivelse Sj tilsvarende de statusangivelser som anvendes av et brukerprogram som for oyeblikket utfores, idet brukerprogrammer som anvender nevnte "usanne" statusangivelser ikke bedommes som egnet av den egnethet-bestemmende innretning under utforelse av vedkommende brukerprogram.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US06/038,292 US4319321A (en) | 1979-05-11 | 1979-05-11 | Transition machine--a general purpose computer |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| NO810079L true NO810079L (no) | 1981-01-12 |
Family
ID=21899105
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| NO810079A NO810079L (no) | 1979-05-11 | 1981-01-12 | Transittmaskin - en datamaskin for universalbruk |
Country Status (10)
| Country | Link |
|---|---|
| US (1) | US4319321A (no) |
| EP (1) | EP0019246B1 (no) |
| JP (1) | JPS56500554A (no) |
| AT (1) | ATE10686T1 (no) |
| BR (1) | BR8008678A (no) |
| CA (1) | CA1139889A (no) |
| DE (1) | DE3069739D1 (no) |
| DK (1) | DK9981A (no) |
| NO (1) | NO810079L (no) |
| WO (1) | WO1980002609A1 (no) |
Families Citing this family (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4328542A (en) * | 1979-11-07 | 1982-05-04 | The Boeing Company | Secure implementation of transition machine computer |
| US4379326A (en) * | 1980-03-10 | 1983-04-05 | The Boeing Company | Modular system controller for a transition machine |
| DE3070320D1 (en) | 1980-09-27 | 1985-04-25 | Ibm Deutschland | Priority stage controlled interruption device |
| US4591967A (en) * | 1982-06-29 | 1986-05-27 | Andover Controls Corporation | Distributed drum emulating programmable controller system |
| US4860203A (en) * | 1986-09-17 | 1989-08-22 | International Business Machines Corporation | Apparatus and method for extracting documentation text from a source code program |
| US4922413A (en) * | 1987-03-24 | 1990-05-01 | Center For Innovative Technology | Method for concurrent execution of primitive operations by dynamically assigning operations based upon computational marked graph and availability of data |
| JP2580592B2 (ja) * | 1987-04-17 | 1997-02-12 | 株式会社日立製作所 | データ構造駆動型処理装置とその制御方法 |
| US5133074A (en) * | 1989-02-08 | 1992-07-21 | Acer Incorporated | Deadlock resolution with cache snooping |
| US5168572A (en) * | 1989-03-10 | 1992-12-01 | The Boeing Company | System for dynamic selection of globally-determined optimal data path |
| JP3265131B2 (ja) * | 1994-08-29 | 2002-03-11 | 日本電気株式会社 | イベント生成分配方式 |
| JPH08286932A (ja) | 1995-04-11 | 1996-11-01 | Hitachi Ltd | ジョブの並列実行制御方法 |
| US5875328A (en) * | 1996-09-24 | 1999-02-23 | Pearson; Martin Thomas | Fault identifying control system |
| JP3825572B2 (ja) * | 1999-01-18 | 2006-09-27 | 株式会社東芝 | 半導体集積回路の設計検証装置、方法及び記憶媒体 |
| US6795868B1 (en) * | 2000-08-31 | 2004-09-21 | Data Junction Corp. | System and method for event-driven data transformation |
| US20040187108A1 (en) * | 2003-02-21 | 2004-09-23 | Knowles W. Jeffrey | Method of scheduling and event processing in computer operating system |
| US7313576B2 (en) | 2004-07-30 | 2007-12-25 | Sbc Knowledge Ventures, L.P. | System and method for flexible data transfer |
| US8230144B1 (en) * | 2004-10-19 | 2012-07-24 | Broadcom Corporation | High speed multi-threaded reduced instruction set computer (RISC) processor |
| EP3525087B1 (en) | 2010-08-06 | 2025-03-19 | Frederick Furtek | A method and apparatus for a compiler and related components for stream-based computations for a general-purpose, multiple-core system |
Family Cites Families (33)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3274554A (en) * | 1961-02-15 | 1966-09-20 | Burroughs Corp | Computer system |
| USRE26171E (en) | 1962-03-02 | 1967-03-07 | Multiprocessing computer system | |
| US3274561A (en) * | 1962-11-30 | 1966-09-20 | Burroughs Corp | Data processor input/output control system |
| US3349375A (en) * | 1963-11-07 | 1967-10-24 | Ibm | Associative logic for highly parallel computer and data processing systems |
| US3343135A (en) * | 1964-08-13 | 1967-09-19 | Ibm | Compiling circuitry for a highly-parallel computing system |
| US3348210A (en) * | 1964-12-07 | 1967-10-17 | Bell Telephone Labor Inc | Digital computer employing plural processors |
| US3411139A (en) * | 1965-11-26 | 1968-11-12 | Burroughs Corp | Modular multi-computing data processing system |
| US3530438A (en) * | 1965-12-13 | 1970-09-22 | Sperry Rand Corp | Task control |
| US3444525A (en) * | 1966-04-15 | 1969-05-13 | Gen Electric | Centrally controlled multicomputer system |
| US3449722A (en) * | 1966-05-02 | 1969-06-10 | Honeywell Inc | Electronic multiprocessing apparatus including common queueing technique |
| US3462741A (en) * | 1966-07-25 | 1969-08-19 | Ibm | Automatic control of peripheral processors |
| US3421150A (en) * | 1966-08-26 | 1969-01-07 | Sperry Rand Corp | Multiprocessor interrupt directory |
| US3496551A (en) * | 1967-07-13 | 1970-02-17 | Ibm | Task selection in a multi-processor computing system |
| US3445822A (en) * | 1967-07-14 | 1969-05-20 | Ibm | Communication arrangement in data processing system |
| US3593300A (en) * | 1967-11-13 | 1971-07-13 | Ibm | Arrangement for automatically selecting units for task executions in data processing systems |
| US3544973A (en) * | 1968-03-13 | 1970-12-01 | Westinghouse Electric Corp | Variable structure computer |
| US3665487A (en) * | 1969-06-05 | 1972-05-23 | Honeywell Inf Systems | Storage structure for management control subsystem in multiprogrammed data processing system |
| US3634830A (en) * | 1969-06-13 | 1972-01-11 | Ibm | Modular computer sharing system with intercomputer communication control apparatus |
| US3614745A (en) * | 1969-09-15 | 1971-10-19 | Ibm | Apparatus and method in a multiple operand stream computing system for identifying the specification of multitasks situations and controlling the execution thereof |
| US3643227A (en) * | 1969-09-15 | 1972-02-15 | Fairchild Camera Instr Co | Job flow and multiprocessor operation control system |
| US3648253A (en) * | 1969-12-10 | 1972-03-07 | Ibm | Program scheduler for processing systems |
| US4156909A (en) * | 1974-02-28 | 1979-05-29 | Burroughs Corporation | Structured data files in a data driven digital data processor |
| US4149240A (en) * | 1974-03-29 | 1979-04-10 | Massachusetts Institute Of Technology | Data processing apparatus for highly parallel execution of data structure operations |
| US4153932A (en) * | 1974-03-29 | 1979-05-08 | Massachusetts Institute Of Technology | Data processing apparatus for highly parallel execution of stored programs |
| US3962706A (en) * | 1974-03-29 | 1976-06-08 | Massachusetts Institute Of Technology | Data processing apparatus for highly parallel execution of stored programs |
| JPS5178643A (en) * | 1974-12-29 | 1976-07-08 | Fujitsu Ltd | Sabuchaneru memori akusesuseigyohoshiki |
| US4024508A (en) * | 1975-06-19 | 1977-05-17 | Honeywell Information Systems, Inc. | Database instruction find serial |
| DE2555963C2 (de) * | 1975-12-12 | 1982-10-28 | Ibm Deutschland Gmbh, 7000 Stuttgart | Einrichtung zur Funktionsmodifizierung |
| US4047161A (en) * | 1976-04-30 | 1977-09-06 | International Business Machines Corporation | Task management apparatus |
| US4128882A (en) * | 1976-08-19 | 1978-12-05 | Massachusetts Institute Of Technology | Packet memory system with hierarchical structure |
| US4130885A (en) * | 1976-08-19 | 1978-12-19 | Massachusetts Institute Of Technology | Packet memory system for processing many independent memory transactions concurrently |
| US4096571A (en) * | 1976-09-08 | 1978-06-20 | Codex Corporation | System for resolving memory access conflicts among processors and minimizing processor waiting times for access to memory by comparing waiting times and breaking ties by an arbitrary priority ranking |
| US4197589A (en) * | 1977-12-05 | 1980-04-08 | Texas Instruments Incorporated | Operation sequencing mechanism |
-
1979
- 1979-05-11 US US06/038,292 patent/US4319321A/en not_active Expired - Lifetime
-
1980
- 1980-05-07 CA CA000351395A patent/CA1139889A/en not_active Expired
- 1980-05-10 DE DE8080102598T patent/DE3069739D1/de not_active Expired
- 1980-05-10 AT AT80102598T patent/ATE10686T1/de not_active IP Right Cessation
- 1980-05-10 EP EP80102598A patent/EP0019246B1/en not_active Expired
- 1980-05-12 JP JP50138980A patent/JPS56500554A/ja active Pending
- 1980-05-12 WO PCT/US1980/000586 patent/WO1980002609A1/en not_active Ceased
- 1980-05-12 BR BR8008678A patent/BR8008678A/pt unknown
-
1981
- 1981-01-09 DK DK9981A patent/DK9981A/da not_active Application Discontinuation
- 1981-01-12 NO NO810079A patent/NO810079L/no unknown
Also Published As
| Publication number | Publication date |
|---|---|
| DE3069739D1 (en) | 1985-01-17 |
| EP0019246B1 (en) | 1984-12-05 |
| CA1139889A (en) | 1983-01-18 |
| WO1980002609A1 (en) | 1980-11-27 |
| JPS56500554A (no) | 1981-04-23 |
| US4319321A (en) | 1982-03-09 |
| EP0019246A1 (en) | 1980-11-26 |
| BR8008678A (pt) | 1981-04-14 |
| DK9981A (da) | 1981-01-09 |
| ATE10686T1 (de) | 1984-12-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| NO810079L (no) | Transittmaskin - en datamaskin for universalbruk | |
| US11221877B2 (en) | Task parallel processing method, apparatus and system, storage medium and computer device | |
| US11550591B2 (en) | Scheduling tasks in a multi-threaded processor | |
| Campbell et al. | The specification of process synchronization by path expressions | |
| Bauer et al. | Singe: Leveraging warp specialization for high performance on gpus | |
| Meng et al. | Scalable large‐scale fluid–structure interaction solvers in the Uintah framework via hybrid task‐based parallelism algorithms | |
| KR20140014090A (ko) | 기민 통신 오퍼레이터 | |
| Osama et al. | Parallel SAT simplification on GPU architectures | |
| Czech | Introduction to parallel computing | |
| Wu et al. | GPU accelerated on-the-fly reachability checking | |
| US10838768B2 (en) | Method for optimizing memory access in a microprocessor including several logic cores upon resumption of executing an application, and computer implementing such a method | |
| Chu et al. | MD simulation of hundred-billion-metal-atom cascade collision on Sunway Taihulight | |
| Tsuchiya et al. | Toward optimization of horizontal microprograms | |
| Osama et al. | Parallel equivalence checking of stabilizer quantum circuits on gpus | |
| JPH05101141A (ja) | 高位合成装置 | |
| Cascado-Caballero et al. | A new approach for software-simulation of membrane systems using a multi-thread programming model | |
| William | C. mmp-A multi-mini-processor | |
| MacKinnon | Advanced function extended with tightly-coupled multiprocessing | |
| Sayre | Staran: An associative approach to multiprocessor architecture | |
| Mirenkov | The Siberian approach for an open-system high-performance computing architecture | |
| US20230129676A1 (en) | Compiler, generation method, chip, and execution method | |
| AU6054580A (en) | Transition machine - general purpose computer013 | |
| RU1839261C (ru) | Ортогональна многопроцессорна система | |
| JPH0769896B2 (ja) | ベクトル処理システム | |
| Khan et al. | Using Fixed Memory Blocks in GPUs to Accelerate SpMV Multiplication in Probabilistic Model Checkers |