NO141105B - Databehandlingssystem som har en hoeyhastighets bufferlager - enhet for overfoering av data mellom et hovedlager og en sentral behandlingsenhet - Google Patents

Databehandlingssystem som har en hoeyhastighets bufferlager - enhet for overfoering av data mellom et hovedlager og en sentral behandlingsenhet Download PDF

Info

Publication number
NO141105B
NO141105B NO4169/73A NO416973A NO141105B NO 141105 B NO141105 B NO 141105B NO 4169/73 A NO4169/73 A NO 4169/73A NO 416973 A NO416973 A NO 416973A NO 141105 B NO141105 B NO 141105B
Authority
NO
Norway
Prior art keywords
data
bytes
byte
storage
unit
Prior art date
Application number
NO4169/73A
Other languages
English (en)
Other versions
NO141105C (no
Inventor
Gene Myron Amdahl
Richard Joseph Tobias
Original Assignee
Amdahl Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Amdahl Corp filed Critical Amdahl Corp
Publication of NO141105B publication Critical patent/NO141105B/no
Publication of NO141105C publication Critical patent/NO141105C/no

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/78Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Microcomputers (AREA)
  • Bus Control (AREA)

Description

Den foreliggende oppfinnelse vedrører et databehandlingssystem
som opererer under tidsbestemte systemsykluser og har en sentral behandlingsenhet for behandling av data, et hovedlager for lagring av data og et høyhastighets-bufferlager, hvor nevnte bufferlager er koblet til å overføre data mellom nevnte behandlingsenhet og nevnte hovedlager i forbindelse med behandlingen av data ved hjelp av nevnte sentrale behandlingsenhet.
I en stor datamaskin forbedres operasjonens virkningsgrad ved å tilveiebringe en oppbevaringshukommelse eller bufferlagerenhet mellom det relativt store hovedlager og den sentrale behandlingsenhet (CPU). De logiske parametre slik som linjestørrelse, bufferstørrelse, addererbredde etc. bestemmes ved yteevnen som ønskes for en gitt basiskostnad. Imidlertid er de kriterier som anvendes for de aktuelle fysiske bredder av både datalinjene og forskjellige registre innbefattet omkostninger, kompliserthet og syklustid.
Ideelt ville f.eks. en meget stor linjebredde gi maksimal hastighet av dataoverføring mellom havedlagret og bufferlagret. Imidlertid reduserer dette påliteligheten etter som det store antall av tråder og forbindelser øker muligheten for feil. Likele-des er en linje med smal bredde foretrukket ved kobling av bufferlagret til CPU-enheter ettersom dette reduserer størrelsen av registrene og styringen eller gatingen som kreves i CPU-enheten. Men, på den annen side krever en linje med smal bredde ytterligere buffersykluser for å fullføre den fulle linjelogiske overføringen.
I alt det som er omtalt tidligere, må tidsmengden for å over-føre data mellom hovedlagret og bufferlagret og CPU-enheten minskes. Enhver ytterligere styring som kreves ved kompliserthet ved mellomledd-dannelse mellom hovedlagret og CPU-enheten, vil normalt tilføye styring og således ytterligere syklustid. Dette er spesielt tilfelle hvor bredden av datalinjen som forbinder hovedlagret med bufferlagret, har en forskjellig størrelse fra datalinjen som kobler bufferlagret til CPU-enheten.
Det er derfor et formål ved den foreliggedne oppfinnelse å tilveiebringe et forbedret databehandlingssystem som anvender buffer-lagring, men som likevel opprettholder en lav syklustid.
Ifølge oppfinnelsen kjennetegnes databehandlingssystemet ved at nevnte behandlingsenhet innbefatter første parallelle linjer for overføring i en systemsyklus et forutbestemt antall (f.eks. 4) av bytes av data inn i eller ut fra nevnte behandlingsenhet, at nevnte hovedlager innbefatter andre parallelle linjer for å over-føre i en systemsyklus et andre forutbestemt antall (f. eks. 8) av bytes , ikke lik nevnte første forutbestemte antall av bytes, av data inn i eller ut fra nevnte hovedlager, at nevnte bufferlager innbefatter et antall (f.eks. 8), lik nevnte andre forutbestemte antall (f.eks. 8), av første parallelt anordnede lagerenheter innbefattende et grensesnitt som har velgbare styringsapparater for å koble nevnte første lagerenhetertil nevnte første parallelle linjer eller til nevnte andre parallelle linjer, hvor netfnte grensesnitt innbefatter åpningsmidler koblet til nBvnte styringsapparat for valg av et antall {f.eks. 4), lik nevnte forutbestemte antall (f. eks. 4) av nevnte første antall bytes av data mellom nevnte behandlingsenhet og nevnte bufferlager og for valg fra et antall (8), lik nevnte andre forutbestemte antall(8), av nevnte første lagerenheter for overføring i nevnte ene systemsyklus nevnte andre antall (8) av bytes av data mellom nevnte bufferlager og nevnte hovedlager.
Med byte(s) forstås her og i det etterfølgende bitgruppe(r).
Fig. 1 er et generelt blokkdiagram av databehandligssysternet ifølge den foreliggende oppfinnelse.
Fig. IA illustrerer formatet av bufferlageradressen.
Fig. 2 viser et mer detaljert diagram av bufferlagerenheten i fig. 1. Fig. 3 er et representativt perspektivbilde av de aktuelle lager-elementer i fig. 2. Fig. 4 er et representativt perspektivbilde av en del av fig. 3 i meget forstørret skala. Fig. 5A og 5B viser detaljerte logiske diagrammer av en del av fig. 2. Fig. 6A og 6B viser detaljerte logiske diagrammer av en del av fig. 2, og
fig. 7 er et kontrollkart som er nyttig ved forståelsen av den logiske kretsen i fig. 5A, 5B, 6A og 6B og for å forstå operasjonen av en blokk i fig. 2.
Fig. 1 illustrerer et blokkdiagram som er typisk for en stor datamaskin. Datamaskinen innbefatter hovedlager (MS) lo som er koblet til en hoyhastighetsbufferiager- (HSB) enhet 11 som har en primær del 12 og en alternativ del 13. Koblingen utfores på en 8 byte parallell linje, hvor utgangsdatalinjen er angitt med MS DO og inngangsdatalinjen til hovedlagret MS DI. Hoyhas-tighetsbuf f erenheten 11 vil lagre 512 linjer med data fra hovedlagret 10 med en linje som har en logisk bredde på 32 bytes. 32-bytelinjekonfigurasjonen er standart for mange store data-maskiner. Hoyhastighetsbufferenheten (HSB) 11 vil således lagre 256 linjer med data i sin primære del 12 og 256 linjer med data i den alternative delen 13.
En 32-bytelinje med data leses inn i og ut av hovedlagerenheten 10 i fire sykluser med hver 8 bytes. HSB 11 er satt tilknyttet hovedlagerenheten 10, dvs. en gitt adresse i hovedlagret har en forutbestemt lokasjon i hver av halvdelene 12 og 13 i HSB-enheten 11. Som vel kjent, kan slike lokasjoner i HSB 11, ikke være identiske i den primære og alternative halvdelen.
HSB 11 kobles til en sentral behandlingsenhet 14 som innbefatter utforelsesenheten 16 og instruksjonsenheten 17 og som også er koblet til en kanalenhet 18 ved hjelp av 4-bytelinjer 19 og 21 respektivt. Manipulasjonen av den opprinnelige 8-bytesenhet av data som lagres i bufferen 11, fullfores ved hjelp av datamani-pulasjonsenheten 22 (også en del av bufferen 11) som vil bli forklart i detalj nedenfor. Adressering tilveiebringes ved hjelp av en effektiv adressegenerator 23 som er koblet til instruksjonsenheten 17, og en adressekontrollenhet 24. Hovedlagermellomledd-eller interfaceenheten 26 som er koblet til hovedlagret 10, gjor også mulig utflyttingen og innflyttingen av data til hovedlagret.
Hele operasjonen av datamaskinen innbefattende CPU-enheten 14, kanalenheten 18, bufferen 11 og hovedlagret 10 er omtalt i norsk patentansokning nr. 4167/73.
Fig. IA illustrerer en typisk lageradresse for hovedlagret 10
som er 24 bits i lengde. Stykket fra 0 til 18 bits angir linjen for hovedlagret som onskes, bits 0 t.o.m. 10 er for indekstall-formål, og bits 11 t.o.m. 18 adresserer hoyhastighetsbufferen.
Bits 19 t.o.m. 23 er for kontrollformål som vil bli beskrevet nedenfor. Generelt er databehandlingssystemet som angitt i fig.
1 programmerbart med alle IBM 360-og IBM 370-programmer.
Fig. 2 illustrerer i storre detalj hoyhastighetsbufferen 11
sammen med det tilhorende kontrollapparatur for å flytte data mellom hovedlageret og bufferen. Tilknyttet primærlagerdelen 12 og en alternativ lagerdel 13 er en HSB-datainnregister 31 som har lager for 8 bytes A t.o.m. H. Datautlinjen, MS DO i hovedlagret, er koblet til registret 31 såvel som inngangene fra den sentrale behandlingsenheten. Imidlertid er disse koblet gjennom lagervalg- og innretningslogikkenheten 32. Utgangen fra denne logiske enhet er 4 bytes bred ettersom dette er mellomleddet mellom CPU-enheten og bufferenheten 11. Registret 31, for å oppta denne 4-bytebredde, kobler den samme byte av data fra lagervalg-og innretningsenheten 32 i et par av dens lagerenheter. Således fremkommer HSB-enheten overfor 4-byteinnmatningsdata som to 4-bytedataregistre med bytepar A/E, B/F, C/G og D/H lastet med den samme informasjon nedenfor. Åpnesignalene som er koblet til bufferdelene 12 og 13, velger de riktige bytes som skal skrives.
I korthet er datastrukturen som gis av bufferen 11 og dens re-gister 31 helt riktig en 8-bytestruktur for utgangslinjen MS DO
i hovedlagret og på samme tid en 4-bytestruktur for data fra CPU-enheten eller kanalen.
Imidlertid, når 4-bytedata skal flyttes inn i bufferen 11, må
en seleksjon av data foretas. Dette gjores ved hjelp av lager-valglogikkenheten 32. Etter seleksjonen, kreves det innretting som er den inverse av innrettingen som finner sted ved utgangene av bufferen 11 når 4 bytes er blitt utlest. Denne innretting må finne sted slik at innmatningsbytes innrettes korrekt på den måte som bufferen i seg selv er anordnet. Således må spesielt, hvor en byte skal lagres i 0, 8, 16 eller 24-posisjonene av 32-bytelinjen i primærlågret 12, plasseres i "A"-byten av registret 31.
Innretning er stort sett en enkel rotasjon. En slik innretting vil bli omtalt i detalj i forbindelse med innretningen av utgangen av bufferen 11, og således vil inngangslagerinnretningen utfores ved å anvende samme teknikk.
Datautmatningene fra de forskjellige lagereriheter i bufferen 11 kobles til primærinnretting og tegnutvidelsesenheten 34, og alternative-enheten 36. Disse utganger er også koblet tilbake i hovedlagret gjennom MS DI-linjene ved hjelp av HSB-datautregistret 33. Som indikert ved 30, er datautlinjene fra primær- og alter-nat i vbuf f erdel en 12 og 13 respektivt buntet eller "dot ored" ved inngangen av HSB DO-registret 33.
De primære innrettings- og tegnutvidelsesenhetene 34 og 36 i kombinasjon med ordregistret 37 er del av datamanipulasjonsen-heten 22 (fig. 1) som også innbefatter en skift- og innrettings-kontrollenhet 39 som muliggjor forskjellige kontrollinnganger til innrettingsenhetene 34 og 36 og som reagerer på forskjellige kontrollinnmatninger fra CPU-enheten 14.
Fig. 3 illustrerer den ekvivalente fysiske konfigurasjon av primærbufferlagerenheten 12. Den innbefatter en lav stabel 41
og en hoy stabel 42 som hver er 4 bytes bred. Disse er indikert i tilfellet med stabelen 41 av bytes A, B, C og D og i stabelen 42 ved bytes E, F, G og H. Således er det åtte rader med 4 bytes hver som kan angis i tilfellet med den lave stabelen begynnende med bytes 0, 8, 16 og 24, og i tilfellet med den hoye stabelen med bytes 4, 12, 20 og 28. Hver lagerenhet av en stabel vil lagre en byte, og det er 32 bytes som skal lagres. Fra et data-innmatningsstandpunkt, som illustrert, bindes bytes 0, 8, 16
og 24 sammen og mates data fra en A-inngangslinje fra dataregistret 31 i fig. 2. På tilsvarende måte bindes i den hoye stabelen 42 bytes 4, 12, 20 og 28 sammen og data innmates fra E-byte'n i registret 31. På samme måte blir datainnmatningene for de gjenværende bytes som indikert, bundet sammen slik det fremgår av nummereringsopplegget som er illustrert i fig. 2 for den primære lagerenheten 12.
Datautganger fra lagerenhetene korresponderer med inngangene
med eksemplet i den lave stabelen 41 av bytes 0, 8, 16 og 24 som
er bundet sammen for å danne A-datautgangslinjen. I praksis er denne linje selvfolgelig ni linjer, ettersom byte'n er ni bits, åtte datåbits og en paritetsbit. Når 8 bytes med data flyttes inn fra dataregistret 31 (som ble mottatt fra hovedlagret) fylles forst byte 0 t.o.m. 7 og deretter bytes 8 t.o.m. 15, 16 t.o.m.23 og 24 t.o.m. 31 i suksessive sykluser. Dette er tydelig fra studering av enheten 12 i fig. 2. Fig. 4 indikerer den aktuelle fysiske konfigurasjon av lagerenhetene for bytes 0, 8, 16 og 24 i fig. 3 og mer spesielt byte 0. Ettersom det i primærlagerenheten er 256 linjer med data som skal lagres (se fig. 1), innbefatter byte 0 to halviederlager-skiver 43 og 44 for bit 0 av den byte som utgjor 265 bits. Hver skive 43 og 44 har åpne-innganger som er angitt åpne 0 og åpne primær, sammen med en syvlinjeadresse (2 = 128). Åpneprimær-linjen innbefatter en OG-port for å romme åtteadressebiten, hvor-ved en utav 256 bits (2 skiver) kan adresseres. Dette korresponderer med en linje med 256 linjer av primærlagerenheten 12. For å tilveiebringe en hel byte, er det tilveiebragt en rad på ni skiver. En åttebitadresse tilveiebringes for å velge den de-kodede linjen som illustrert i fig. IA ved bits 11 t.o.m. 18 i lageradressen. Fig. 5A, 5B, 6A og 6B illustrerer i storre detalj hoyhastighets-buf feri agerenhet en 11 som innbefatter primær- og alternativen-hetene 12 og 13 og datainnrettingsenhetene 34, 35 som illustrert i fig. 2 i blokkdiagramform. I fig. 5A, 5B, 6A og 6B innbefatter datautgangene sammen linjene som er angitt med MS 0 t.o.m. MS 7 som gir 8-bytebreddedatainnmatningslinjen til hovedlagret som illustrert i fig. 1, angitt med MS DI og som illustrert i fig. 2. I tillegg gir ordregisterlinjene som er angitt med WRO t.o.m. WR3 både data og en paritetsbitinngang til ordregistret 37 i fig. 2. Fra et inngangsstandpunkt har lagerenheten 11 datainnganger som korresponderer med fig. 3 fra dataregistret 31 i fig. 2.
For klarhets skyld er disse datainnganger ikke illustrert og
kun åpnekontrollinngangene er illustrert i fig. 5A, 5B, 6A og 6B.
I fig. 5A, 5B, 6A og 6B er de folgende benevnelser anvendt:
G er en dataport.
A er en "OG"-funksjon.
I er en "IKKE"- eller "invertert" funksjon.
0 er en "ELLER"-funksj on.
En gruppe av omsirklede tråder er en bunt som gates eller styres, og et kontrollsignal i en port indikeres ved et pilhode.
Bytes A t.o.m. F i lagerenheten 11 er separat indikert, dvs.,i fig. 5A og 5B bytes A og E og deres alternativer og bytes B og F og deres alternativer. I fig. 6A og 6B er det illustrert bytes C og G og deres alternativer og bytes D og H og deres alternativer.
Den detaljerte logiske struktur av hele bufferlagret og dets data-manipulasjonsenheter forklares best i en typisk operasjonssekvens. En slik sekvens ville innbefatte en innforing av 8 byoes fra hovedlagret til bufferen 11, henting av 4 bytes fra hoyhastighetsbufferen 11 til CPU-enheten gjennom ordregistret, lagring av 4 bytes i hoyhastighetsbufferen fra CPU-enheten og utforing av 8 bytes tilbake til hovedlagret. Antar man at bufferen er tom og et anrop foretas av lageradressen, kanalenheten 18 som illustrert i fig. 1, eller CPU-enheten 14, vil en fullstendig linje av informasjon (32 bytes) som inneholder den anropte byte, bli innfort i bufferen, 8 bytes ad gangen. Således vil det kreves fire sykluser. De forste 8 bytes presenteres på de individuelle lagerenhetene i bufferen, og de innfores i byteposisjonene 0 t.o.m. 7, i en andre syklus innfores data i bytes 8 t.o.m. 15,
i en tredje syklus 16 t.o.m. 23, og i den fjerde syklus 24
t.o.m. 31. Ettersom inngangsdatalinjen i seg selv er kun 8
bytes bred, utskilles de fire sykluser ved hjelp av de forskjellige åpnelinjer som er koblet til de respektive bytes av korresponderende lagerenheter.
ISfeermere bestemt, med hensyn til åpningsfunksjonene for en 8-byte-bevegelse inn i bufferlagret 11, vil adressestrukturen indikere at denne bevegelse inn i lagret vil starte ved byte 0. Dette vil bevirke åpnelinjene O, 1, 2 og 3 til å bli aktive. Videre, det faktum at dette er 8-byteoverforing, vil også bevirke åpnelinjene 4, 5, 6 og 7 til å være aktive. Denne 8-byteoverforings-kontroll er en utmatring fra hovedlagerenheten 26 som er illustrert i fig. 1. Således vil kun byte 0 bli fylt, selv om, som illustrert i fig. 3, innmatningsdatalinjene er felles for byteposisjonene 0, 8, 16 og 24. For den andre overforingssyklus vil adresseringsstrukturen indikere at byte 8 ble overfort, hvilket vil åpne linjene 8, 9, 10 og 11 til å bli aktive, og ettersom det er en 8-byteoverforing, ville dette også bevirke åpnelinjene 12, 13, 14 og 15 til å bli aktive. Prosedyren med aktivering av åpnelinjene finner sted inntil den siste gruppen av 8 bytes er blitt overfort.
Generelt presenteres adresseringsstrukturen som er illustrert i fig. IA for adressekontrollenheten 24 (fig. 1) i lagerenheten og definerer hvilken byte som er blitt spesifisert. Imidlertid, for en 8-byteoverforing i det foreliggende eksempel, hvor det antas at den forste overforing ville spesifisere byte 0 ved å dekode
de fem bits med lav orden i adresseringsstrukturen, tilveiebringes disse bits av MS-mellomleddet 26. Således for den forste overforingssyklus vil de fem bits med lav orden alle være 0. Dernest vil en utvidelse bli bevirket fra 0 til 1, 2 og 3 og tilhorende åpnesignaler vil bli aktivert. Ettersom en O-byteoverforings indikeres, vil dette bevirke de neste fire åpnesignalene til å være aktive. De spesielle åpnesignalene vil åpne bytes 4, 5, 6 og 7 på grunn av alle nuller i de fem bits med lav orden. For den andre bevegelse i syklus vil adresseringsstrukturen og de fem bitposisjonene av lav orden indikere byte 8 med strukturen 01000, som når den dekodes indikerer 8. Denne struktur vil bevirke en utvidelse av de neste tre bytes 9, 10 og 11. På grunn av 8-byteoverforingen vil så åpnekontrollene for bytes 12, 13, 14 og 15 aktiveres. På tilsvarende måte er i den tredje syklusen bitstrukturen med lav orden lik 10000 og for den fjerde og siste syklusen er bitstrukturen 11000. Alle de foregående avgjdreiser er foretatt i adressekontrollenheten 24 som kontrollerer åpne-inngangene for de individuelle lagerenhetene.
I den neste normale operasjonssekvens, etter å ha innfort en linje (32 bytes) fra hovedlagret, hentes 4 bytes av disse 32 bytes ut og kobles til CPU-enheten via ordregistret.
Hvis data adresseres på en avordgrense, med ord som består av
4 bytes, er innretting nødvendig slik at byte'ene vil fremtre i en sekvensmessig orden. Når f.eks. en byte adresseres og inn-gangsadressen spesifiserer at den byte'n skal plasseres i den lengst til venstre eller "W"-posisjonen av ordregistret, kan denne adressen spesifisere enhver byte fra 0 til 31 ettersom en linje av bytes inneholder 32 bytes. Fra et programmerings-konfigurasjonssynspunkt når en inngangsbyte spesifiseres av programmereren, kan høyst kun tre ytterligere bytes foruten den byten overføres på en syklus ettersom datalinjebredden i forhold til CPU-enheten er 4 bytes. Således er innretting mellom buffer-ordregistret nødvendig for å holde de 4 bytes i deres sekvensmessige orden. Dette bør gjøres uten å straffes ved ytterligere sykluser på grunn av gjeninnretting. Hvis f.eks. byte 17 spesifiseres, vil de etterfølgende 3 bytes være 18, 19 og 20. Fra inspeksjon av fig. 3 er imidlertid byte 20 plassert i en separat stabel 42 og således må en viss innretting skje ettersom byte 20 også er i en forskjellig stabel, er bunting nødvendig.
Fra et totalt synspunkt organiseres datalagerskivene som inneholder byte'ene av en linje for å tillate bunting av tråder. Av de 8 bytes, 0, 8, 16, 24, 4, 12, 20 og 28 kan kun en av disse bytes eventuelt spesifiseres for overførsel ved ethvert adres-seringsanrop. Dette er fordi et maksimum på kum 4 bytes kan oveføres. Kun en av åtte åpne linjer for disse 8 bytes vil være aktive og de andre syv inaktive. Således kan, på datautgangslinjene av lagerenhetene, spesielt linjene A og E, kun en mulig byte være aktiv. Derfor kan linjene A og E buntes som indikert ved porten 51, og illustrert i fig. 5. Linjene A og E represente rer selvfølgelig ikke-sekvensmessige par av lagerenheten. I realiteten og i den foretrukkede utførelse, finner buntingen sted med par som er adskilt med 3 bytes fra hverandre, dvs. A/E, B/F, C/G, D/H. 3-byteseparasjonen er selvfølgelig en mindre enn an-tallet bytes i et ord. Denne bunting kan observeres repektivt ved både primær- og alternativ- W selektorregistret, hvilke er innbefattet i innrettingsenhetene 34, 35 hvor Wen har forbindelse med W-byte'en i ordregistret 37 i fig. 2. Det samme er tilfellet for X, Y og Z-selektorregistret.
I det foreliggende eksepel antas det at de fem bits med lav orden i adresseingsstrukturen (fig. IA) ble kodet som 10001 som dekodes til byte 17. Adressekontrollenheten 24 (fig. 1) utvider 17 tilogså å innbefatte 18, 19 og 20. Åpnelinjene for bytes 17 t.o.m. 24 i lagret 11 vil derfor være aktive, og byte 17 vil fremkomme på B-linjen, byte 18 på C-linjen, byte 19 på D-linjen og byte 20 på E-linjen. De foregående linjer buntes som A/E, B/F, C/G og D/H. Som diskutert ovenfor, vil data kun fremkomme på et av hvert på av datautgangslinjene. I tilfellet med byte 17 vil dette være E-linjen, hvor A-linjen er inaktiv. Således, ved anvendeles av åpningskontrollinngangene, åpnes kun en lagerenhet av hver av parene ved ethvert tidspunkt. Ettersom byte'n som opprinnelig ble adressert, var byte 17, må linjene B og F, som er i den andre posisjonen idet de forlater bufferen eller lagret 17, roteres til den første posisjonen før data fra disse linjer plasseres i ordregisteret. Således må hver av de buntede sett av tråder roteres opp med en'posisjon. Skift- og innrettingskontrollenheten 39 (fig. 2) avføler den adresserende strukturen av de to bits med lav orden for å tilveiebringe innretting. I særdeleshet vil gatingen eller styringen som indikert ved pilen, aktivere kontrollinngangen B/F for W-selektoren, C/G i X-selektoren, D/H i Y-selektoren og A/E i Z-selektoren. F.eks. innbefatter W-selektorregistret sammen med porten 51, som er aktivert av B/F-kontrollinngangen, tre ytterligere porter som mottat den gjenstående del av de buntede par av datautganger fra lagerenhetene 11. Kontrollinngangene åpner selektivt et av disse par for å gi innretting. Således kan f.eks. W-selektoren selektivt motta data fra parene A/E, B/F, C/G og/eller D/H.
Alt i det foregående kontrolleres av skift- og innrettingskontrollenheten 39 i fig. 2. I skift- og innrettingskontrollenheten 3 9 er det speiselt en mekanisme for å avgjøre hvilken byte av bufferen som må plasseres i hvilken byteposisjon i ordregistret. Inngangene'.til denne enhet er de to i. bits med lavere orden av fem-bitadressen som er illustrert i fig. IA som omtalt ovenfor. Med en kort henvisning til kartet i fig. 7 illustrerer det de forskjellige tilstander for disse to bits med lav orden, dvs.
00, 01, 10 og 11. Nærmere bestemt, adressebits 22 og 23. I tilfellet med byte 17, er de to bits med lavere orden 01. Den andre inngangen til skift- og inrettingskontrollregistret er venstre/hdyre, men dette har kun mening hvis anropet er på mindre enn 4 bytes som vil bli beskrevet nedenfor. Hvis man imidlertid, ettersom lengden er fire som indikert,går nedover kolonnen, de-koding 01 og lengde 4, indikerer X'ene at portsignalene er B/F til W, C/G til X, D/H til Y og A/E til Z. Kartet eller tabellen i fig. 7 vil bli anvendt i storre detalj for å illustrere en situasjon hvor lengden er mindre enn fire. Med bruken av kartet i fig. 7 vil konstruksjonen av den riktige kontroll-logikkanordning være innlysende for en ekspert.
I fig. 5 og 6 blir utgangene fra selektorportene W, X, Y og Z "DOT ORed" sammen, f.eks. i tilfellet med primærselektorporten W ved hjelp av "DOT 0R"-porten 52. Dette kan gjores ettersom
kun en av de fire portene vil være aktive på en gang på grunn av naturen av kontrollinnmatningene. Utgangen av DOT OR-porten 52 er koblet til innmatningsportmidlet 53 eller ordregistret 37 (fig. 2) for W-byte'n i ordregistret. Port- eller gating-midlene innbefatter også portmidlet 54 for paritetsbit av den byte'n i registret. De gjenværende innmatningsportmidler for ordregistret blir på tilsvarende måte koblet til korresponderende selektor, nærmere bestemt for X-selektoren datainnmatningsporten 55 og paritetsporten 66, for Y-selektorbyten datainnmatningsporten 54 og paritetsporten 58, og for Z-selektordata innmatnings-porten 69 og paritetsporten 70. Disse portene innbefatter hver to deler som er ORed sammen for å oppta de primære og alternative deler av bufferlagerenheten 11.
I tilfellet hvor CPU-enheten angir til bufferlagerenheten at mindre enn 4 bytes onskes i ordregistret, må da de ikke angitte byteposisjoner i ordregistret inneholde alle nuller for en data-byte. I tillegg må den riktige paritet som er en "1" for alle nuller tilveiebringes. Dette fullfores ved hjelp av kontrollinn-matningssignaler fra skift- og innrettingskontrollblokken 39
i fig. 2 som illustrert på kartet i fig. 7. Den angitte illu-
stråsjon er uthevet. Således antas det at byte 17 er den opprinnelig anropte byte med dekodebits 22 og 23 som er 0, 1 respektivt, en lengde på 3 og venstrejustering. Det er tydelig at de tre forste gatingsignalene som var aktive i tilfellet med byte 17 med en lengde på 4 bytes, ville være aktiv. Således vil bytes 17, 18 og 19 bli satt i den riktige posisjon med den samme prosedyre som tidligere. Imidlertid er byte 20 ikke blitt spesifisert, og kravet er at Z-posisjonen av ordregistret må inneholde alle nuller med god paritet. Dette vil bli gjennom-ført ettersom porten A/E til Z ikke vil bli aktivert. Når dette inntreffer, vil en paritetsbitgenerator 61 i fig. 6 som er sammensatt av fire inverte eller IKKE-porter koblet til de individuelle kontrollsignalinnganger med utgangen av IKKE-porten koblet til en OG-port, bevirke OG-porten, på grunn av overens-stemmelsestilstanden i alle inaktive kontrollsignaler, å gi en 1. Videre vil utgangen Z i valglogikkanordningen, ettersom ingen kontrollinngang aktiveres, være nuller.
Paritetslinjene 62 sammen med datalinjene 63 i primær- Z selektoren vil alle gi nuller. Når 1-utgangen i OG-porten 61 buntes i inngangsgatingen- eller styringen 60 for paritetsbiten i ordregistret, er resultatet av null og en bunt lik 1. Således lastes i paritetsposisjonen av byte'n Z i ordregistret en 1. Det foregående gjelder i tilfellet med andre lengder som illustrert i kartet i fig. 7.
Hvor et halvt ordoperand onskes, hvor programmererne onsker å bevare lagring, er lengden av ordanropet lik 2, men med hdyre-justering. Således forblir de to bytes lengst til venstre,
dvs. W og X i ordregistret, åpne. I denne situasjon, hvis tegnutvidelse ikke var spesifisert, ville de to bytes lengst til venstre være uutfylte nuller. Imidlertid, hvis tegnutvidelse er .spesifisert, vil de to bytes lengst til venstre i ordregistret bli innfoyet med tegnet for halvordoperanden. Dette tegn er biten med hbyeste orden og med datalengden som er blitt spesifisert.
I det spesielle eksempel lik 2 bytes.
Grunnen til nødvendigheten av tegnutvidelse med halvordoperanden er at utforelsesenheten kun vil operere på et fullt ord eller 4 bytes. Med tegnutvidelse stimuleres imidlertid en fullord-operand og således kan utforelsesenheten og alle funksjonelle enheter som er tilknyttet denne, fortsette uten noe kjennskap til den aktuelle halvordnatur for operanden.
En halvordoperand er positiv i natur hvis biten med hoy orden, tegnbiten, er en null. Tegnutvidelse i dette tilfelle ville forplante alle nuller. Dvs., hvis en null forplantes gjennom de to bytes av ordet med hoyere orden, og en full operand presenteres på utforelsesenheten, er resultatet et positivt tall av samme verdi i hele ordoperanden som tidligere ble holdt i halvordoperanden. Det samme er tilfellet for negative tall. Imidlertid er et negativt tall i den foreliggende datamaskin representert ved to<1>s komplement aritmetisk. Således vil en bit av et halvt ord med hoyere orden være en 1. Egenskapene ved to's komplement aritmetisk er at hvis verdien av tallet er negativt, kan en'eren utvides ubegrenset og verdien av det negative tallet for-andrer seg ikke. Det gjores bruk av denne egenskap ved to's komplement aritmetisk for å utvide negative tall, idet en'eren utvides inn i 2-byteposisjonene med hoyere orden, w og X, og den negative verdien av den resulterende ene ordoperanden på 4 bytes, er den samme som den negative verdien som ble representert av det halve ordet av informasjon.
Anvendelse igjen av det samme eksempel hvor fem-bitlageradressen med lav orden er 10001 og dekodes til byte 17, er lengden av anropet i tilfellet med et halvt ordoperand nå 2 bytes. Således er bytes av interesse 17 og 18. Den hoyere justeringsgangen til skift- og innrettingskontrollenheten 39 vil være anmerket, hvilket indikerer at bytes 17 og 18 bor tilsidesettes (byput) i de to bytes i ordregistret lengst til hoyre, nemlig bytes Y og Z. Med henvisning til kartet i fig. 7 er gatingkontrollsignalene
B/F til Y som vil bevirke byte 17 til å lastet inn i Y-posisjonen av ordregistret og gate eller styre C/G til Z som vil bevirke byte 18 til å bli plassert i Z-posisjonen i ordregistret. En ytterligere kontrollsignalinngang er utvide tegnsignalet som inntreffer på linjen 71 ved toppdelen av fig. 6. Dette kobles felles til fire OG-porter 72, og de andre overensstemmelsesinn-gangene av OG-portene kobles både til individuelle kontrollinnganger som er identiske med de i Y-selektoren. Dette er på grunn av at de fire kontrollsignalene som er av interesse for tegnutvidelsen, er de fire signalene som bevirker data til å bli gatet eller styrt til Y-byte<1>n i ordregistret. I det foreliggende eksempel er C/F til Y-signalet aktivt. Dette blir AND<1>ed med tegn-utvidelsessignalet for å påvirke bit 0 eller alternativ bit 0-seleksjonslogikkenheten 73, 74. De OR<1>ede utganger fra den logiske enheten 73, 74 kobles til hver databit av både W-byteposisjonen i ordregistret og X-byteposisjonen i ordregistret ved hjelp av inngangsgatingsenhetene 53 og 55.. Med andre ord blir utgangslinjene fra seleksjonslogikkenhetene 73 og 74 buntet med datainngangslinjene til gatingenhetene 53 og 55. Ettersom gating-signalet B/F til Y er blitt aktivert, vil den andre porten i se-lektorlogikkenheten 73 bli aktivert. Man vil kunne se at data-inngangslinjen 76 er koblet til datautgangene B/F av lagereriheten 11. Imidlertid innbefatter linjen 76 kun linjene som inneholder null-bits'ene av bytes B og F. Byte 17 vil inntreffe på B-data-linjeutgangen og i overensstemmelse med den foregående beskrivelse vil det ikke være noen utmatning på F-datalinjene. Bit 0 av byte 17 forplantes på linjen 77 til hver dataposisjon av X-byteposisjonen av ordregistret og W-byteposisjonen av ordregistret. Dette inntreffer ved buntingslinjen 77 i portene 55 og 53 med datautmatningene fra primær- eller alternativ-W og X valgenhetene. Imidlertid har <Jatablanking funnet sted i tilfellet med W og X-seleksjonsenhetene ettersom, på grunn av lengde 2 og hoyrejus-tering, ingen kontrollsignaler er aktive på noen av disse to seleksjonsporter. Derfor er utgangen fra X-seleksjons- og Y-seleksjonsgating- eller portenhetene alle null. Resultatet av buntingen av tegnbifen av utmatningen av seleksjonenhetene er at tegnbifen er den eneste som kan inneholde informasjon, og denne informasjon lastes i dataposisjonene for W- og X-bytepo-sis j onene i ordregistret.
I tillegg til data må tegnutvidelsen gi god paritet med den spesielle byte<4>n. Imidlertid vil pariteten bli en én uansett tegnet. Den riktige pariteten for en alle nuller-byte er én og den riktige pariteten for alle en'ere-byte er en. Paritetsbiten for W- og X-bytes av ordregistret lastes identisk til paritetsbit-s'ene når en datablanking finner sted. Paritetsbits vil bli
lastet med en'ere.
Den siste delen av en typisk operasjonssekvens i hoyhastighetsbufferen, dvs. utforingen av 8 bytes av data til hovedlagerenheten fra hoyhastighetsbufferen, er prosessen som anvendes esen-sielt den samme som ved innforingen av bytes. Med andre ord, med hensyn til adressekontrollenheten 24, er 8-byteoverforingen transparent med hensyn til hvorvidt den innfores eller utfores.
Ved utforingen vil imidlertid, på den forste syklusen, bytes 0 t.o.m. 7 bli åpnet. På A-utgangslinjen for lagret 12 vil det således være byte 0, og på E-linjen byte 4. Ettersom begge disse linjer har gyldige data, kan de ikke være bunter. Således blir linjene behandlet separat. Imidlertid er det en egenskap ved en utforing at utforingen enten er i primæren eller den alternative, og derfor kan A-trådene i den alternative A og den primære A buntes som f.eks. illustrert ved ELLER-porten 81. Dette muliggjor 0-utgangsbyte<1>n for hovedlagret. På tilsvarende måte kan B-linjen buntes eller bli DOT ORed. Hovedlagret er klar over
at dette er den forste syklus av utforing og vil tolke data på den utgangslinjen, dvs. MS 0 til å være byte 0. Det samme er tilfellet for linjene MS 1 t.o.m. MS 7.
På den andre syklus av utforing er åpnesignalene 8 t.o.m. 15 aktive og datautgangslinjen A er byte 8 og datautgangslinjen B er
byte 12. Disse vil imidlertid fremkomme på linjene MS 0 og MS 4. Imidlertid er hovedlagret på dette tidspunkt klar over at det er den andre syklus av utforingen, og vil tolke data på disse datalinjene på riktig måte, dvs. byte 8 for MS 0 og byte 12 for MS 4. Således er utforingen på 8 bytes derved fullfort.
Fra den foregående diskusjon er det klart at selv om det med 4-byte/8-bytekonfigurasjon er tilveiebragt forbedret okonomi og virkningsgrad, er syklustiden fremdeles ikke oket på grunn av behovet for ytterligere gating. Dette oppnås delvis ved det faktum at hvorvidt 4 bytes eller 8 bytes utfores fra lagerenheten 11, kan de samme tråder fra lagerenhetén anvendes. Et separat mellomledd kreves ikke. På tilsvarende måte vil tegnutvidelse og blanking som tillater bruken av halvordoperander, fullføres med den samme gating.

Claims (1)

  1. Databehandlingssystem som opererer under tidsbestemte systemsykluser og har en sentral behandlingsenhet (14) for behandling av data, et hovedlager (10) for lagring av data og et høyhastig-hets-bufferlager (11), hvor nevnte bufferlager er koblet til å overføre data mellom nevnte behandlingsenhet og nevnte hovedlager i forbindelse med behandlingen av data ved hjelp av nevnte sentrale behandlingsenhet,"karakterisert ved at nevnte behandlingsenhet (14) innbefatter første parallelle linjer (132, 134) for overføring i en systemsyklus et forutbestemt antall (f.eks. 4) av bytes av data inn i eller ut fra nevnte behandlingsenhet (14), at nevnte hovedlager (10) innbefatter andre parallelle linjer (131, 133) for å overføre i en systemsyklus et andre forutbestemt antall (f.eks. 8) av bytes ,'.ikke .lik. nevnte første forutbesterftte antall av bytes, av data inn i eller ut fra nevnte hovedlager (10), at nevnte bufferlager (11) innbefatter et antall (f.eks. 8), lik nevnte andre forutbestemte antall (f.eks. 8), av første parallelt anordnede lagerenheter (41, 42) innbefattende et grensesnitt som har velgbare styringsapparater (150, 151) for å koble nevnte første lagerenheter (41, 42) til nevnte første parallelle linjer (132, 134) eller til nevnte andre parallelle linjer (131, 133), hvor nevnte grensesnitt innbefatter åpningsmidler (153) koblet til nevnte styringsapparat (150) for valg av et antall (f.eks. 4), lik nevnte forutbestemte antall (f.eks. 4) av nevnte første lagerenheter for overføring i nevnte ene systemsyklus nevnte første antall bytes av data mellom nevnte behandlingsenhet (14) og nevnte bufferlager (11) og for valg fra et antall (8), lik nevnte andre forutbestemte antall (8), av nevnte første lagerenheter (41, 42) for overføring i nevnte ene systemsyklus nevnte andre antall(8) av bytes av data mellom nevnte bufferlager (11) og nevnte hovedlager (10).
NO4169/73A 1972-10-30 1973-10-29 Databehandlingssystem som har en hoeyhastighets bufferlager - enhet for overfoering av data mellom et hovedlager og en sentral behandlingsenhet NO141105C (no)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US00302229A US3858183A (en) 1972-10-30 1972-10-30 Data processing system and method therefor

Publications (2)

Publication Number Publication Date
NO141105B true NO141105B (no) 1979-10-01
NO141105C NO141105C (no) 1980-01-09

Family

ID=23166861

Family Applications (1)

Application Number Title Priority Date Filing Date
NO4169/73A NO141105C (no) 1972-10-30 1973-10-29 Databehandlingssystem som har en hoeyhastighets bufferlager - enhet for overfoering av data mellom et hovedlager og en sentral behandlingsenhet

Country Status (16)

Country Link
US (1) US3858183A (no)
JP (1) JPS5437793B2 (no)
AT (1) AT347151B (no)
AU (1) AU6167873A (no)
BE (1) BE806697A (no)
BR (1) BR7308466D0 (no)
CA (1) CA1007757A (no)
CH (1) CH588757A5 (no)
DE (1) DE2353635C2 (no)
DK (1) DK152233C (no)
ES (1) ES420344A1 (no)
FR (1) FR2205230A5 (no)
GB (1) GB1449229A (no)
IT (1) IT999054B (no)
NL (1) NL7314823A (no)
NO (1) NO141105C (no)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL7317545A (nl) * 1973-12-21 1975-06-24 Philips Nv Geheugensysteem met hoofd- en buffergeheugen.
JPS547245A (en) * 1977-06-20 1979-01-19 Toshiba Corp Memory control device
US4169284A (en) * 1978-03-07 1979-09-25 International Business Machines Corporation Cache control for concurrent access
GB2016752B (en) * 1978-03-16 1982-03-10 Ibm Data processing apparatus
JPS6041768B2 (ja) * 1979-01-19 1985-09-18 株式会社日立製作所 デ−タ処理装置
US4298954A (en) * 1979-04-30 1981-11-03 International Business Machines Corporation Alternating data buffers when one buffer is empty and another buffer is variably full of data
JPS5847053B2 (ja) * 1979-11-19 1983-10-20 株式会社日立製作所 デ−タ処理装置
JPS6019809B2 (ja) * 1979-12-26 1985-05-18 株式会社日立製作所 デ−タ処理装置
US4342097A (en) * 1980-02-28 1982-07-27 Raytheon Company Memory buffer
US4371928A (en) * 1980-04-15 1983-02-01 Honeywell Information Systems Inc. Interface for controlling information transfers between main data processing systems units and a central subsystem
DE3048417A1 (de) * 1980-12-22 1982-07-08 Computer Gesellschaft Konstanz Mbh, 7750 Konstanz Datenverarbeitungsanlage
US4519030A (en) * 1981-05-22 1985-05-21 Data General Corporation Unique memory for use in a digital data system
US4654781A (en) * 1981-10-02 1987-03-31 Raytheon Company Byte addressable memory for variable length instructions and data
JPS58149548A (ja) * 1982-03-02 1983-09-05 Hitachi Ltd メモリ制御方式
GB2117945A (en) * 1982-04-01 1983-10-19 Raytheon Co Memory data transfer
US4507731A (en) * 1982-11-01 1985-03-26 Raytheon Company Bidirectional data byte aligner
JPS6428752A (en) * 1987-07-24 1989-01-31 Toshiba Corp Data processor
US5327542A (en) * 1987-09-30 1994-07-05 Mitsubishi Denki Kabushiki Kaisha Data processor implementing a two's complement addressing technique
GB8820237D0 (en) * 1988-08-25 1988-09-28 Amt Holdings Processor array systems

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3401375A (en) * 1965-10-01 1968-09-10 Digital Equipment Corp Apparatus for performing character operations
US3401376A (en) * 1965-11-26 1968-09-10 Burroughs Corp Central processor
US3543245A (en) * 1968-02-29 1970-11-24 Ferranti Ltd Computer systems
US3676846A (en) * 1968-10-08 1972-07-11 Call A Computer Inc Message buffering communication system
JPS5021821B1 (no) * 1968-10-31 1975-07-25
US3629845A (en) * 1970-06-03 1971-12-21 Hewlett Packard Co Digital adjustment apparatus for electronic instrumentation
FR10582E (fr) * 1970-06-29 1909-07-30 Paul Alexis Victor Lerolle Jeu de serrures avec passe-partout
US3662348A (en) * 1970-06-30 1972-05-09 Ibm Message assembly and response system
US3699530A (en) * 1970-12-30 1972-10-17 Ibm Input/output system with dedicated channel buffering
US3739352A (en) * 1971-06-28 1973-06-12 Burroughs Corp Variable word width processor control

Also Published As

Publication number Publication date
DK152233B (da) 1988-02-08
JPS5437793B2 (no) 1979-11-16
US3858183A (en) 1974-12-31
NO141105C (no) 1980-01-09
FR2205230A5 (no) 1974-05-24
DE2353635A1 (de) 1974-05-09
NL7314823A (no) 1974-05-02
AT347151B (de) 1978-12-11
ATA910473A (de) 1978-04-15
BE806697A (fr) 1974-02-15
BR7308466D0 (pt) 1974-08-29
ES420344A1 (es) 1976-07-01
GB1449229A (en) 1976-09-15
AU6167873A (en) 1975-04-24
DE2353635C2 (de) 1986-01-30
CH588757A5 (no) 1977-06-15
JPS4995546A (no) 1974-09-10
IT999054B (it) 1976-02-20
DK152233C (da) 1988-07-04
CA1007757A (en) 1977-03-29

Similar Documents

Publication Publication Date Title
NO141105B (no) Databehandlingssystem som har en hoeyhastighets bufferlager - enhet for overfoering av data mellom et hovedlager og en sentral behandlingsenhet
US3537074A (en) Parallel operating array computer
US4814976A (en) RISC computer with unaligned reference handling and method for the same
US4761755A (en) Data processing system and method having an improved arithmetic unit
US4131940A (en) Channel data buffer apparatus for a digital data processing system
KR0125623B1 (ko) 데이타 프로세서 및 데이타 처리방법
US4187539A (en) Pipelined data processing system with centralized microprogram control
KR100346515B1 (ko) 수퍼파이프라인된수퍼스칼라프로세서를위한임시파이프라인레지스터파일
US4467419A (en) Data processing system with access to a buffer store during data block transfers
US5809274A (en) Purge control for ON-chip cache memory
US3585605A (en) Associative memory data processor
JPS6240740B2 (no)
NO873911L (no) Parallelldrevet dataprosessorsystem med stor datakraft.
NO750339L (no)
US10768899B2 (en) Matrix normal/transpose read and a reconfigurable data processor including same
JPS59117666A (ja) ベクトル処理装置
NO137165B (no) Programmerbar anordning.
US3748649A (en) Translator memory decoding arrangement for a microprogram controlled processor
US3440615A (en) Overlapping boundary storage
US4348724A (en) Address pairing apparatus for a control store of a data processing system
JPS60129840A (ja) 情報処理装置
US4467415A (en) High-speed microprogram control apparatus with decreased control storage requirements
JP4955149B2 (ja) ビットfifoを有するディジタル信号プロセッサ
US4360869A (en) Control store organization for a data processing system
US5710932A (en) Parallel computer comprised of processor elements having a local memory and an enhanced data transfer mechanism