SE456051B - Digital processoranordning anordnad for pipeline-databehandlingsoperationer - Google Patents

Digital processoranordning anordnad for pipeline-databehandlingsoperationer

Info

Publication number
SE456051B
SE456051B SE8100735A SE8100735A SE456051B SE 456051 B SE456051 B SE 456051B SE 8100735 A SE8100735 A SE 8100735A SE 8100735 A SE8100735 A SE 8100735A SE 456051 B SE456051 B SE 456051B
Authority
SE
Sweden
Prior art keywords
processor
during
instruction
register
word
Prior art date
Application number
SE8100735A
Other languages
English (en)
Other versions
SE8100735L (sv
Inventor
J R Boddie
J S Thompson
Original Assignee
Western Electric Co
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 Western Electric Co filed Critical Western Electric Co
Publication of SE8100735L publication Critical patent/SE8100735L/sv
Publication of SE456051B publication Critical patent/SE456051B/sv

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01GCAPACITORS; CAPACITORS, RECTIFIERS, DETECTORS, SWITCHING DEVICES, LIGHT-SENSITIVE OR TEMPERATURE-SENSITIVE DEVICES OF THE ELECTROLYTIC TYPE
    • H01G9/00Electrolytic capacitors, rectifiers, detectors, switching devices, light-sensitive or temperature-sensitive devices; Processes of their manufacture
    • H01G9/20Light-sensitive devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

10 15 20 25 30 35 40 456 051 Ingángs/utgàngs-kretsarna innefattar organ för att överföra information mellan kalkylatorn och yttre organ. En del opera- tioner i kalkylatorn kan vara betingade av förekomst av flaggor, tillstànd eller förhållanden som anger ett resultat av föregående operationer eller andra händelser.
I och för ökning av beräkningshastigheten är vissa digi- tala kalkylatorer anordnade för "pipeline-drift". Vid en pipe- line-operation innehåller den artimetiska enheten eller sek- tionen en samling specialliserade kretsar vilka kan arbeta samtidigt men som tillsammans bildar en organisation för all- mânbruk. Dessa specialiserade kretsar arbetar oberoende av varandra, varvid var och en utför en särskild uppgift i ett allmänbruk-förfarande. Pipeline-operationen indelar en process i ett flertal underprocesser vilka exekveras av de individuel- la specialiserade kretsarna. Pa varandra följande underproces- ser genomföras pa ett överlappande arbetssätt, analogt med ett löpande band inom industrin. Nya operander tillföres till in- gangen av den aritmetiska sektionen under varje cykel. Olika undersektioner i den aritmetiska sektionen genomför sina upp- gifter i en given ordningsföljd under på varandra följande cykler. En resultant alstras under varje cykel. Varje specia- liserad krets genomför sin egen uppgift i cykel-takten.
Styrning av en pipeline-arbetande kalkylator eller pro- cessor erbjuder speciellt överraskande problem när opera- tionerna skall utföras villkorligt, ty instruktioner staplas i "pipeline“ vid drift i fortfarighetstillstand.
Hittills har en enligt pipeline-principen arbetande digital kalkylator konstruerats för att överföra dataord och instruktioner från minnet till den aritmetiska sektionen och en styrsektion i respektive pipeline-strömmar. Dessa strömmar av dataord och instruktionsord fyller krets-pipelines inom processorn. Sa länge processorn arbetar normalt, kommer infor- mations-pipelines att behandlas steg för steg genom proces- sorns sektioner i en cyklisk operation.
Ett problem uppstår emellertid när en operation maste exekveras villkorligt. I typiska fall förverkligas denna ope- ration genom en villkorlig överföring som medför exekvering av den ena av tva alternativa sekvenser av en eller flera instruktioner. Eftersom en av dessa instruktionssekvenser be- finner sig i processorns pipeline när villkoret testas, kan 10 15 20 25 30 456 051 det bli nödvändigt att avbryta exekveringen av denna sekvens och att börja fylla pipeline för exekvering av den alternativa sekvensen. Behandlingstid gar förlorad så snart denna alterna- tiva sekvens inkallas.
Ovan angivna problem löses enligt uppfinningen i en digital processoranordning av det i inledningsstycket nämnda slaget genom de i kravets 1 kännetecknande del angivna sär- dragen.
Uppfinningen skall i det följande närmare beskrivas i anslutning till pa bifogade ritning med fig. 1-8 áskadliggjor- da utföringsexemplen.
Pig. 1 och fig. 2 bildar tillsammans när de läggs inom enligt fig. 3 ett blockschema över en enligt pipeline-princi- pen arbetande digital signalprocessor.
Fig. 4 är ett tidsdiagram.
Pig. 5 och 6 bildar tillsammans när de läggs ihop enligt' fig. 7, vilken återfinnas vid. fig. 5, ett processorfunktions- schema, och Pig. 8 är ett processorfunktionsschema för en villkorlig opearation.
I fig. 1 och 2 visas den totala uppbyggnaden av en enligt pipeline-principen arbetande digital signalproces- 801.' .
Ett enbart för läsning anordnat minne 100, i det följande även kallat läsminne, lagrar instruktioner och fasta dataord. Instruktioner överföras fran läsminnet via en gemensam data* och styrbuss 101 till instruktione- IR-L,M,N; resp. IR-S,T 131, 133 och 134. Delar av instruktionerna distribueras till instruktionsregistren. registren IR-C; Fasta dataord, eller koefficientord, överföras från läs- minnet via den gemensamma data~ och styrbussen 101 till ett koefficientregister 102. Registret 102 är märkt REG X eftersom koefficienterna i det följande identifieras med symbolen 5. Ett för slumpmässig åtkomst anordnat minne 105, i det följande även kallat direktaccessminne, lagrar variabla dataord som kan tillföras till detsamma antingen från en yttre 10 20 30 35 HO -456 051 U källa eller från utgången hos den ifrågavarande processorns De variabla dataorden överföres från direktaccessminnet via den gemensamma data- och styrbussen 101 till ett register 106 för variabla data. Registret 106 är märkt EEG Y eftersom variabla dataord 1 det följande identifieras med aritmetiska sektion. symbolen 1. Efter användarens val kan direktaceessminnet lagra koefficienter som används istället för fasta dataord lika väl som de variabla dataorden.
Registren 102 och 106 lagrar en sekventiell ström av koeffi- cientord och variabla dataord som är operander vilka tillföres såsom ingàngsvärden till en aritmetisk sektion 110. Dessa ope- randsekvenser behandlas pipeline-mässigt genom en multiplice- rare-undersektion 112, en ackumulator-undersektion 115 oeh en avrundnings- och spillkrets-undersektion 116. Ett avrundat utgångsord alstras i ett register 118 som är märkt REG W eftersom avrundade utgångsord i det följande är identifierade med symbolen E.
En valutgångskrets 120 ingår i den aritmetiska sektionen för att såsom utgångsord från den aritmetiska sektionen till databus- sen 101 välja antingen det variabla dataord 1 som är lagrat i registret 106 eller det avrundade utgângsordet 3 som är lagrat i registret 118. Det avrundade utgàngsordet E är resultatet av en iDet valda utgångsordet kan överföras från antingen registret 106 eller operation som genomförts av den aritmetiska sektionen. registret 118 via den gemensamma data- och styrbussen 101 till en skrivbar destination, exempelvis i direktaccessminnet 105.
Som ovan nämnts är instruktioner för den digitala signalpro- cessorn lagrade i läsminnet 100. Under varje processoroykel, visad i fig. U, utläses en enkel instruktion automatiskt från adress som alstras av en adress- -aritmetik-enhet eller -sektion 12k. räknare-register PC i adress-aritmetiksektionen tillföres via en läsminnet från en plats med en Adressen från ett program- adressbuss 128 till läsminnets adresskretsar. Läsminnet svarar under varje prooessorcykel genom att sända den enkla instruktion som sålunda hämtats via den gemensamma data- och styrbussen till de olika styrfält- eller instruktionsregister IR-C, IR-L,M,N, och IR-S,T som är förknippade med olika sektioner i processorn.
Varje instruktion eller operationskod som används i den digitala signalprocessorn innehåller ett flertal styrfält- eller styrmeddelanden, av vilka vartdera ges en beteckning, exempelvis 10 15 20 30 35 HO 456 051 _ 5 l, m, Q, 3 och t, som kommer att användas i det följande. Det styrfältregister IR-L,M,N som är förknippat med aritmetiksektio- nen 110 tar emot vissa av de fält, exempelvis instruktionsfälten l, m, resp. 5, som är förknippade med styrning av operationerna multiplikation, ackumulering och avrundning. Det styrfältregis- ter IR-S,T som är förknippat med adress-aritmetiksektionen 12U tar emot de instruktionsfält 5 och t'som hänför sig till styrning av adressregístermodifiering för styrning av hämtningen av ope- randerna 5 och X samt lagring av det utgångsord som är valt av valkretsen 120. _ Adress-aritmetiksektionen 12ü innehåller två satser register 1ü1 och 1U2, en adressbuss-låskrets 1H5, en adderare 147 och en adderings-låskrets 150 vilka är förbundna med varandra genom ett flertal bussar. En regístersats 1H1, innehållande registren RX, RY, RD och PC är anordnad att lagra minnesadresser. En adress som är lagrad i registret RX kan användas för att komma åt ett koefficientord som är lagrat på en plats antingen i direktaccess- minnet eller i läsminnet. En adress som är lagrad i registret BY kan användas endast för att komma åt ett variabelt dataord som är lagrat på en plats i direktaccessminnet. En adress som är lagrad i registret RD kan användas för att skriva ett resulterande dataord i en destination, exempelvis en plats i direktaccessmin- net. En adress som är lagrad i programräknare-registret PC används för att komma åt nästa instruktion eller fasta dataord från läsminnet.
Den andra registersatsen 1U2 är anordnad att lagra varíabla ínkrement-värden som skall användas för automatisk framstegning av adresser som är lagrade i registren RX, RX och RD. Alterna- tivt kan de lagrade adresserna framstegas ett visst av en upp- sättning fastvärde-inkrement.
Operationer i den digitala signalprocessorn styrs av tvâ typer av instruktioner. Normala instruktioner används under den De styr genomförandet av aritmetiska En annan typ av instruktio- En speciell övervägande delen av tiden. operationer under signalbehandling. ner, som ibland används, kallas hjälpinstruktioner. hjälpinstruktion styr laddningen av ett adressregister eller ett adressinkrementregister i adressaritmetiksektionen.
Det antas att en igángsättningssekvens av instruktioner är lagrad i läsminnet med början på en initialadress och att en àterställningskrets ställer in programräknare-registret PC på 10 15 20 30 35 HO 456 051 6 begynnelseadressen. Efter återställningsoperationen finns i typiska fall en serie instruktioner för att lagra ytterligare adresser i adressregistren RX, BY och RD och inkrementvärden i inkrementregistren RI, RJ och RK. Dessa register inställes medelst hjälpinstruktioner. I vanliga fall kommer de värden som är lagrade i registren RI, RJ och RK att bibehállas där under ett helt program, under det att värdena i registren RX, RY och RD då och då modifieras under exekveringen av en sats normala instruk- tioner.
Efter det att processorn har âterställts och adress- och inkrementvärden har lagrats kan processorn köra ett giltigt program för behandling av digitala signaler. Flertalet av de instruktioner som används för signalbehandling är normala aritme- tiska instruktioner.
Information i vart och ett av registren RX, RY, RD, PC, RI, RJ och RK kan inställas på godtyckligt speciellt värde genom en hjälpinstruktion. Exempelvis anger en första instruktion att ladda adressregistret RY att ett processorregister skall laddas eller inställas.
I denna första instruktion innehåller styrfältet 3 den erforderliga informationen. Detta styrfält 3 lagras i ett inst- ruktionsregister IR-C under instruktionshämtningscykeln Ett fast dataord som är förknippat med den första instruk- tionen och laddas i adressaritmetiksektionen 12H under den pro- cessorcykel i vilken denna instruktion avkodas avger information som identifierar vilket adressregister som skall laddas och som Styrfältet och värdefältet överföres från minnet via den gemensamma data- och styrbussen 101 till styrfältregistret XSR 185 och värdefältre- gistret XSL 186.
Under det att den första instruktionen är under exekvering avkodas styrfältet i registret XSR i en avkodare 157 för val av Från registret XSL tillföres det värde som skall laddas i adressregistret RY till registren 141 fastställer det inkrementvärde som skall laddas. tillämpligt adressregister. och 1U2 genom en valkrets 158 och en buss 160 i exekveringscykeln för den första instruktionen. , En andra instruktion att ladda ínkrementregistret RI anger att ett processorregister skall laddas eller inställas. Liksom i det nyss beskrivna exemplet med inställning av adressregistret RY ger ett fast dataord som på liknande sätt är förknippat med den 10 20 30 35 HO 456 051 7 andra instruktionen ett styrfält för att identifiera det register som skall inställas och ett värdefält för att ange det värde som skall laddas. Det fasta dataordets fält tillföres från registret XSR genom avkodaren 157 och bussen 137 för att bestämma det inkrementregister som är valt i uppsättningen register 1Ä2 och från registret XSL genom väljaren 158 och bussen 160 för att bestämma det värde som skall laddas i det valda inkrementregist- ret under exekveringscykeln för den andra instruktionen.
Under behandlingen av såväl normala instruktioner som hjälp- instruktioner lagras styrfälten § och 3 av instruktionen i inst- ruktionsregistret IR-S,T när denna instruktion hämtas. fält avkodas i en avkodare 152 under nästa prooessorcykel, varvid Dessa den avkodade informationen kvarhålles i en AAU-styrkrets 15U.
Denna avkodade information tillföres via en buss 135 till regis- teruppsättningarna 1H1 och 142 under instruktions-exekverings- cykeln eller den andra processorcykeln efter hämtningen. Både ett adressregister och ett inkrementregister eller ett fast ínkrement väljes av informationen på bussen 135. Adressen till- föres till adressbuss-låskretsen 1U5 och till ingången hos en adderare 1ü7. Inkrementvärdet tillföres samtidigt till addera- rens 1U7 andra ingång, och värdet ifråga stegar fram adressen och lagrar den för ett maskintillstànd i en adderar-låskrets 150.
Under det följande maskintillståndet tillföras den framstegade adressen via en buss 136 till adressregisteruppsättningen 141.
Samtidigt under behandlingen av en normal instruktion till- föres en del av informationen i fälten s och t via en enkel maskintillstàndsfördröjning i en fördröjningskrets 155. Denna fördröjda information anger valinformation för att bestämma vilket av adressregistren 1N1 som skall skrivas efter den just beskrivna adresseringsoperationen. I det följande maskintíll- ståndet avkodas den fördröjda informationen i en avkodare 157 och tíllföres via en buss 137 till adressregistren 1U1. Nu skrivs den framstegade adress som är lagrad i adderare-låskretsen 150 in i det valda adressregistret och modifierar därvid adressen efter adresseringsoperationen.
Under behandlingen av en hjälp-registerinställningsoperation kan det inträffa att den ovan beskrivna operationen för skrivning av en efter-modifierad adress tillbaka till ett adressregister måste lämna företräde åt registerinställningsoperationen. Före- trädesrätten åstadkommes genom avkodaren 157 som svar på till 10 20 h.) H1 30 35 H0 456 051 . _ 8 densamma tillförd information från logikkretsen 122 via vägen 138, AAU-styrkretsen 15% och fördröjningskretsen 155.
När registerinställningsinstruktionen tar prioritet över skrivningen av ett adressregister, tillföres informationen för val av adressregistret från registret XSR via avkodaren 157 och bussen 137 till adressregisteruppsättningen 1H1. 'Från registret XSR tillföras samtidigt information via avkodaren 157 och bussen 137 för val av information på bussen 160 istället för information på bussen 137.
Adressaritmetiksektionen 12Ä sänder adresser genom adress- buss-kvarhâllningskretsen (låskretsen) 1Ä5 för åtkomst av platser i minnena 100 och 105, alstrar nya adresser i adderaren 137 och ställer in adressregistren RX, RY, RD och PC.
Diagrammet i fig. U visar att adresserna sänds till minnet såsom en serie om fyra adresser vilka sänds under varje proces- sorcykel. En av adresserna sänds under vart och ett av fyra maskintillstánd under varje processorcykel. Den första adressen som sänds under det första maskintillstàndet är den adress som är lagrad i programräknare-registret PC. Som framgår av fig. U sänds denna adress automatiskt under varje processorcykels första maskintillstånd. Den under det andra maskintillstândet sända andra adressen är den adress som är lagrad i registret RD eller i registret RX. Den under det tredje maskintillstàndet sända tredje adressen är den adress som är lagrad i registret RX eller i programräknare-registret PC. Den under det fjärde maskintill- ståndet sända fjärde adressen är den i registret RY lagrade adressen.
Varje adress som sänds av adressaritmetiksektionen kvarhål- les i adressbuss-låskretsen 1ü5 under de nämnda maskintillstånden Under dessa maskintillstånd uppstegas dess- utom adresserna i adressaritmetikenhetens adderare 1U7 med ett i processorcykeln. uppstegningsvärde som utläses ur ett av uppstegningsregístren RI, RJ och RK, eller också, när det gäller adressen från registret PC, uppstegas adressen med +1. åstadkommas under samma maskintillstånd som det i vilket adressen Dessa uppstegningsoperatíoner är kvarhållen.
Identifiering av den valda adressen och de valda uppsteg- ningsregistren àstadkommes genom att man tillför tillämpliga styrfält till instruktionsregistret IR-S, T före adresseringsope- rationen, så att tillämplig kodning tillämpas på àtkomstkretsarna 10 15 20 25 30 35 H0 Q i ett instruktionsregister IR-L,M,N. 456 051 . 9 för både adressen och uppstegningsregistren under det maskintill- stånd i vilket adressen skall sändas. ningsvärdet utläses och adderas i adderaren 1H7.' Den som resul- tat erhållna uppstegade adressen lagras i adderare-lâskretsen 150 medan adressen sänds från adressbuss-lâskretsen 145.
Kodning för att identifiera vilket adressregister som valts överföres genom fördröjningskretsen 155 till avkodningsregister- kretsen 157. Fördröjning och avkodning är så avpassade att den uppstegade adress som är lagrad i adderare-låskretsen 150 kan skrivas in i det adressregister från vilket den sända adressen hämtades. gas sålunda under den processorcykel då den överföres till minne- na 101 och 105.
För att nu övergå till fíg. 2 är den aritmetiska sektionen Koefficientorden Både adressen och uppsteg- Den sända adressen eftermodifieras eller efteruppste- 110 organiserad för att drivas i pipeline-mod. å och variabeldataorden I är operander som tillföres från minnena via den gemensamma data- och styrbussen 101 till koefficientord- registret 102 och variabeldataordregistret 106. De avrundade utgångsorden 1 är även operander för vissa operationer och är lagrade i registret 118. av dessa register under varje processorcykel i en normal instruk- En ny operand mottages i vart och ett tion.
Den aritmetiska sektionen 110 innefattar tre undersektioner som är oberoende styrbara som svar på olika styrfält l, m och 5.
Under inkallningscykeln för en instruktion lagras fälten l, m och I nästa processorcykel avkodas dessa fält i en avkodarkrets 113, och resultatet lagras i registret BEG F 188. res denna information till en AU-styrkrets 11ü för att tillföra Under den följande processorcykeln överfö- styrsignaler till olika undersektioner i den aritmetiska sektio- nen. Den sistnämnda processorcykeln är instruktionens exekve- ringscykel. Styrsignalerna ger information i förhållande till vilken val skall göras bland behandlingsalternativ som är till- gängliga i var och en av undersektionerna. Multiplicerare-under- sektionen 112 alstrar i typiska fall en produkt av två operander under varje processorcykel. I en typisk multiplikation är den ena operanden koefficientordet 5 och den andra operanden antingen variabeldataordet X eller det avrundade utgångsordet E.
Koefficientordet å är ett 16-bits ord. Dessa sexton bitar tas i registret 102 från de mest signifikanta bitledningarna hos 10 15 20 25 30 LU Uï HO 456 051 _ 10 den gemensamma data- och styrbussen. En valkrets 162 avsöker de sexton bitarna i koefficientordet, från den minst signifikanta biten till den mest signifikanta biten, fyra bitar i taget, under vart och ett av de fyra maskintillstånden i varje processor- cykel. En annan valkrets 163 väljer samtidigt antingen ett 20-bits variabeldataord 1 eller ett 20-bits avrundat utgângsord 3.
Multiplikation på basis av den för fackmannen välkända Booth's algoritm genomföres. Sålunda alstrar en Booth-logikkrets 165 som svar på de på varandra följande 4-bit-nibbles styrsigna- ler för alstring av partialprodukter.
Utgångsstorheten från Booth-logikkretsen 165 under varje maskintillstånd kvarhålles i ett register 166. Denna utgångs- storhet tillföres till en krets 168 som alstrar partialprodukter- na genom dataval.
Dessa partíalprodukter ackumuleras genom att adderas till En adderare 170 adde- rar partialprodukterna till föregående summa- och överföringssif- ferinformation och lagrar en/ett som resultat erhållen/t 36-bit- -operand eller produktord R i ett produktregister P 191. De föregående summor och överföringssiffror. tillhörande registren S 190 resp. C 189 lagrar den summa- och överföringssifferinformation som alstras under varje processor- cykel.
Eftersom den aritmetiska sektionen är arrangerad för pipe- line-arbetssätt, mottar produktregistret P 191 en ny mellanope- rand eller ett nytt produktord R under varje processoroykel med normala instruktioner. Detta produktord 2 tillföres genom en buss 172 som en mellanoperand till ingången hos ackumulator- -undersektionen 115.
I ackumulator-undersektionen adderas produktordet R till ett UD-bits resulterande utgângsord a som kan vara skíftat i en krets 17ü före tillförandet såsom ingàngsstorhet till en adderingskrets 175. -information vilken lagras i registret 177.
Adderingskretsen 175 alstrar summa- och överföríngssiffer- Summa och överfö- ringssiffer-informationen lagras i registret 177 under varje processorcykel. Överföringssiffror upplöses av överföringssif- fer-förhandsläsningslogiken i adderaren 178. från adderaren 178 tíllföres till en ingång hos en logikkrets 180 tillsammans med det resulterande utgângsordet 3 för alstring av Utgângsstorheten det nästföljande värdet av det 40-bits resulterande utgângsordet 3 som skall lagras i registret A. Ett sådant resulterande ut- 10 15 20 25 35 BO 456 051 11 gångsord alstras och lagras 1 registret A 192 under varje proces- sorcykel i en normal instruktion. à En del av det resulterande utgångsordet 3 tillföres såsom en íngångsstorhet till avrundnings- och spillkrets-undersektionen Dessa portioner ("skivor") klockas igenom en avrundningskrets 182 och en spill-logikkrets 18H till 20-bits registret W för avrundad utgångsstorhet i tre på varandra följande maskintillstând i varje processorcykel. I det fjärde maskintillståndet kan värdet i registret W korrigeras för spill om värdet i registret A är för stort för att representeras i 20-bits-registret W 118. Sedan kan det avrundade utgàngsordet överföras genom den gemensamma data- och styrningsbussen 101 till en destination, exempelvis en plats i direktaccessminnet 105 där det lagras. 116 i 10-bits-portioner.
De tre undersektionerna (multiplicerare, ackumulator och avrundare) av den aritmetiska sektionen genomför sina grundläg- gande operationer i var sin processorcykel. Utgångsstorheter från undersektionerna lagras i register i varje processorcykel så att nästa undersektion i tur har en stabil ingång för att påbörja nästföljande processorcykel.
Styrning av aritmetiksektionen 110 och av adressaritmetik- sektionen 12H åstadkommes genom en pipeline-ström av instruktio- ner som tillföres från minnet 100 genom den gemensamma data- och styrningsbussen 101. Som ovan nämnts i anslutning till fig. Ä utläses en enda instruktion under varje processorcykel av en En sådan instruktion innehåller ett flertal instruk- Fälten l, m och n överföres via den gemensamma bussen 101 till registret operation. tionsfält eller styrmeddelanden, l, m, Q, s och 3.
IR-L,M,N för att styra undersektionerna av den aritmetiska sek- tionen 110. 101 till registret IR-S,T för styrning av val och uppstegning av Fälten s och t överföres via den gemensamma bussen adresser som är lagrade i registren RX, RY, RD och PC.
En bättre förståelse för arrangemanget och arbetssättet vid pipeline-styrning av behandlingen möjliggöres genom följande diskussion av ett speciellt operationsexempel.
Normal operation En fullständig normal instruktion i assembleringssprâk innehåller all den information som erfordras för genomförande av en önskad aritmetisk operation. Assembleringsspråk-instruktioner för den digitala signalprocessorn är arrangerade för att repre- 10 15 20 25 Lv) C) 35 H0 456 051 12 sentera styrning för åtkomst i minnet och styrning för drift av den aritmetiska undersektionen och av adressaritmetik-undersek- tionen. multiplikations- och additionsoperationer.
Den aritmetiska undersektionen genomför fortlöpande De normala aritmetik- sektion-operationerna kännetecknas av följande allmänna uttryck: la IN I: IH: x.f(y) + fa(a) __9 af» “k X-f(w) + fa(a) -9 a {-e> w}, där är ett 16 bitar brett koefficientord som vanligen hämtas från läsminne (ROM). Koeffioientordet 3 kan även hämtas från direktaccessmínne (RAM) eller från en in/ut-krets 200 och har vanligen ett värde för samtliga aritmetiska opera- tioner. är ett 20 bitar brett dataord som normalt hämtas från direktaccessminne. Ett sådant dataord kan även hämtas från in/ut-kretsen 200. representerar det H0 bitar breda innehållet i ett ackumula- torregister A 192. I ackumulatorregistret A 192 används de minst signifikanta trettiosex bitarna för att ackumulera produkten av en 16-bits gånger 20-bits multiplikation. De fyra mest signifikanta bitarna ger spillskydd för ackumule- ringsoperationen. är en 20-bits avrundad eller trunkerad utgångsstorhet från ackumulatorn. Den minst signifikanta biten av den avrundade utgângsstorheten 3 motsvarar den bit som är nummer fjorton från den minst signifikanta biten av innehållet 5 i ackumu- latorn. Denna bit-motsvarighet är i konsekvens med ett antagande att dataordet X och den avrundade utgångsstorheten 3 är heltal och att koefficientordet 5 vanligen ligger inom gränserna -2 å 2. beskriver en funktion av antingen dataordet X eller den avrundade utgångsstorheten E. Sådana funktioner kan vara det aktuella värdet av, tecknet för eller absoluta beloppet av endera av variablerna 1 och 3. beskriver allmänt en funktion av innehållet 3 i ackumula- torn, exempelvis a, -3, 0, 2a etc.
Variablerna Ä, X, E och B är lagrade i arítmetiksektions- registren X 102, Y 106, W 118 resp. P 191.
De ovannämnda allmänna uttrycken visar att tre operationer skall genomföras av processorn. 10 15 20 35 MO - 456 051 . 13 (1) En av produkterna p = x.f(y) eller p = x.f(w) bildas och lagras i produktregistret P som befinner sig på en multipli- cerares utgång. (2) Ackumulering av ett resultat-ord a = p + fa(a) åsgad- kommes i ackumulatorn. (3) Om så behövs avrundas sedan resultat-ordet 5 i ackumula- torn, och det avrundade utgångsordet E skrivs in i registret W för avrundat utgångsord.
Var och en av dessa tre operationer fullbordas under en processorcykel i den digitala signalprocessorn. I typiska fall har under dessa operationer koeffioientordet 5 ett värde, och en multiplicering bildar produkten p. I typiska fall genomföres dessutom under varje cykel alla tre typerna av operationer sam- tidigt av olika undersektioner i den aritmetiska sektionen. För vissa instruktioner kan en eller flera av de tre operationerna vara utelämnad. Den operation som genomföras av en undersektion under en processorcykel är en partiell utvärdering av ett annat allmänt uttryck än de uttryck som samtidigt utvärderas i de övriga undersektionerna.
Instruktioner i assembleringsspråk omvandlas till maskin- språkinstruktioner som lagras i minnet för själva styrningen av den digitala signalprocessorn. Eftersom operationerna är beroen- de av varandra och eftersom samtliga operationer sker samtidigt inom processorn, är det viktigt att vid varje tidpunkt veta vad som är lagrat i de olika registren och vilka operationer som skall utföras med denna lagrade information.
För att undvika osäkerhet ifråga om vilka värden i produkt- ordet p och vilka värden av innehållet 3 i ackumulatorn som är berörda av varje processoroperation rekommenderas följande opera- tionsordningsföljd vid skrivning av assembleringsspråkuttryck som representerar dem.
P-é- x.f(y) eller P<- x.f(w> När sedan läsaren går från vänster till höger kommer de rätta {w <- a} a <-- p + fat-n värdena på produktordet p och innehållet 3 i ackumulatorn att De rätta värdena är resultaten från den senas- Sålunda är värdet av innehållet 5 i ackumulatorn, som skall avrundas till framgå tydligare. te föregående operation som bestämde dessa värden. den avrundade utgángsstorheten E eller som skall användas i någon 15 20 30 35 30 456 051 1U f“flktï°U fa(a), innehållet a i ackumulatorn vid slutet av den senaste föregående ackumuleringen. Analogt har värdet av ett produktord B som skall användas i en aktuell ackumulering en storlek som är bestämd i den närmast föregående multiplicerings- operationen. _ Av de skäl som i den föregående diskussionen angetts för processoroperationernas ordningsföljd är det viktigt att den information som förefinns i assembleringssprák-instruktionen tillföres till processorn i korrekt ordningsföljd. Information som tillföres i följande ordningsföljd kan godtas av processorn. (1) Destination väljs. 'Det ord som skall skrivas till destinationen väljs såsom antingen det avrundade utgångsor- det E eller dataordet 1. Det valda ordet kan skrivas in i direktaccessminnet eller i in/ut-kretsen. destinationen för det valda ordet anges.
Den speciella (2) I enlighet med vad instruktionen kräver väljs huruvida det som resultat erhållna ordet a skall flyttas till den avrundade utgången E. (3) En ackumuleringsoperation väljs ur en grupp av operatio- ner som har det allmänna uttrycket a = p + fa(a)_ _ (H) Ange en multiplikationsoperation som ger produkten p = x.f(y) genom att ange källan xsnc för køefficientordec Ä, arten av funktionen Å samt valet av dataord X tillsammans med källan YSRC för dataordet X. multiplikationsoperation som ger produkten p = x.f(w) genom Alternativt anges en angivande av källan XSRC för koefficientordet ä, arten av funktionen f samt valet av avrundad utgång E i stället för dataordet X.
Följande undantag göres från den ovannämnda regeln “från vänster till höger". När den avrundade utgången E väljes för multíplikationen, är värdet av den avrundade utgången 5 bestämt av den senaste avrundningen av resultatordet 5 som är genomförd i en föregående instruktion. källa för dataordet X är angiven, kommer det första steget vid exekveringen av instruktionen att flytta ifrågavarande data från den angivna källan till dataregistret Y. Därefter kan eventuell skrivning av detta nya värde för dataordet 1 ske.
I nedanstående Tabell I sammanfattas de normala assemble- ringsspràk-instruktioner som en programmerare skulle använda för Om dataordet I skall skrivas och en att uppställa ett assembleringsspråk-program. Syntaxen för ett 10 20 30 35 b: (D *í 456 051 15 språk benämnt C används som assembleringssprâk; detta språk är beskrivet i en skrift med rubriken The C Programming Language av B.W. Kerninghan et al, Prentioe-Hall, Inc., 1978.
Varje full- ständig instruktion bildas genom att man väljer fyra programsat- ser, en programsats från varje kolumn i Tabell I med början med den vänstra kolumnen och med fortsättning åt höger.
I de båda längst till vänster befintliga kolumnerna är ordet "NOTHING" angivet som ett giltigt val.
När ordet NOTHING är valt som del av en fullständig instruktion, lämnas motsvarande utrymme i instruktionen tom. Varje fullständig assembleringsspråk-instruk- tion avslutas med ett semikolon.
TABELL I - NORMALA ASSEMBLERINGSSPRÅK-INSTRUKTIONER NOTHING NOTHING DEST=y w=a DEST=YSRC DEST:W a=p+8Xa a=p p=xsRcXYsRc a=p+& p=XSRCxW a=p-a p=XSRCxc a=p+2xa p=XSRCXabs(YSRC) p=xsRcX(w> a=p+a/2 p=XSRCxcXsgn(YSRC) a=p+a/8 p=XSRCxoxsgn(w) a=p&a I Tabell I betyder symbolen DEST en destinationssats och skall i assembleringsspråk-instruktionen ersättas med en av följande satser.
QÉÉI Xrd++í Xrd++j Xrd++k obuf där exempelvis Xrd++i betyder att rd, som är adressen till den plats i direktaccessminnet som utpekas av innehållet i registret RD, efter-ökas med registrets RI innehåll 1. destinationssatser enligt i det följande.
Likaledes i Tabell I Innebörden av olika ovan kommer att förklaras mera i detalj betyder symbolen XSRC en sats för källan till dataordet 5, och symbolen YSRC innebär en sats för källan till dataordet X.
Var och en av dessa två symboler i D ...A UI LU (J kx) UI 456 051 . 16 Tabell I skall i varje assembleringsspråk-instruktion ersättas med en av satserna i följande två kolumner: 25.332 XÉEQ x(gamla x) Xry++i VALUE (omedelbar x) xry++j xrx++i Xry++j xrx++i Xry++k xrx++j ibufy Xrx++k xrx x-ï ibufx X(rom+rx++í) X(rom+rx++j) X(rom+rx++k) &LABEL I de föregående kolumnerna med rubriken XSRC representerar symbolen VALUE ett tal som uppträder såsom argument (matematiskt) till en instruktion, d.v.s. det 16-bits ord som följer omedelbart efter operationskoden i läsminnet (ROM). Detta argument adresse- ras av den adress som är lagrad i programräknare-registret PC.
Vid andra inkallningar från minnet adresseras koefficientordet 3 av innehållet rå i registret RX. Beteckningen X(rom+rx) an- vänds för att ange att registrets RX innehåll rå utpekar läsmin- Symbolen &LABEL anger att det värde som läses från minneskällan 5 är en adress som är förknip- pad med en etikett (ett läge) i programmet. Andra beteckningar som återfinnes i de föregående två kolumnerna för källorna till net och ej direktaccessminnet. koefficientordet å och dataordet 1 kommer att behandlas mera i detalj i det följande.
Med avseende på bildandet av fullständiga assemblerings- språk-instruktioner av den information som förefínnes i Tabell I är viss försiktighet nödvändig. Om uttrycket DEST = YSRC önskas i en instruktion som innehåller YSRC från kolumnen längst till höger, så måste uttrycket DEST = y användas istället för uttryc- ket DEST = YSRC. kolumnen längst till höger, kan uttrycket DEST = YSRC ej väljas Dessutom bör NOTHING väljas ur Om den avrundade utgången E skall användas i ur kolumnen längst till vänster. 10 20 30 ÄO 456 051 17 kolumnen längst till vänster när assembleringssprák-instruktionen är en normal instruktion i vilken källan till koefficientordet 3 befinner sig i direktaccessminnet. ' Vid utarbetandet av ett program skall programmeraren först skriva ut en serie allmänna matematiska uttryck eller operationer som skall utföras. Dessa kan exempelvis ha formen x.f(w) + fa(a) _¿> a{#.¿> w} Ett sådant allmänt matematiskt uttryo översättas av programmera- ren till en assembleringsspråk-sats som får följande form: s g . m l, t xrd++j=w w=a a=p+a p=PX++íx xry++k; där IH betyder ett instruktionsfält för att styra bildandet av en produkt. betyder instruktionsfältet för att genomföra en ackumulering. betyder ett instruktionsfält för att styra en överförings- operation från registret A till ett register W med erforder- lig avrundning.
ISIB representerar ett instruktionsfält som identifierar en I detta exempel är destinationen en lm skrivdestination. minnesplats som anges av den i registret RD lagrade adres- sen. Denna adress uppstegas i efterhand och resultatet lagras i registret RD. betyder ett instruktionsfält för hämtning av information in från en adress som är lagrad i ett adressaritmetikenhet-re- gister, efter-uppstegning av denna adress och tillbakalag- ring i samma register.
Nästa steg som genomföres av programmeraren är att tidsmäs- sigt "skeva" (sprida eller distribuera) assembleringsspràk-satsen enligt följande: 10 15 20 25 35 H0 456 051 18 Tid å. E E lvl-f: Å D=Xrx++iX Xry++k; i+1 ' a=p+a i+2 w=a i+3 Xrd++j=w Den som resultat erhållna "skevade" assembleringsspráksat- sen, som återfinnes díagonalt på tidsraden i kolumnen längst till vänster, avges tillsammans med "skevade" assembleringsspråksatser som representerar andra allmänna matematiska operationer. När dessa "skevade" assembleringsspråksatser avges tillsammans, kommer de resulterande delarna av olika satser som uppträder i samma rad eller under samma intervall, exempelvis intervallet i, att bilda en assembleringsspråk-instruktion. I assemblerings- språk-instruktionen är de olika delarna av informationen i samma intervall särskilda fält av denna assembleringsspråk-instruk- Vart och ett av dessa fält styr en särskild undersektion av processorn för genomförande av ett steg i utvärderingsproces- tion. sen såsom denna beskrives av en del av en av de allmänna matema- tiska uttrycken.
Ett assembleringsprogram som körs på en för allmänbruk utförd kalkylator utför operationer som svar på varje assembleå ringsspràk-instruktion genom att flytta källfälten tvâ processor- -cykler tidigare i programmet än återstoden av fälten i samma Denna flyttning av källfälten utföres på varje assembleringsspràk-instruktion i programmet. assembleringssprák-instruktion.
Den resulterande tídlinjen för den föregående assembler-satsen, såsom den är "skevad" av programmeraren och assembleraren, kommer att bli följande: 10 20 25 HO 456 051 19 ______-_------...~-__--------------___-_.___......--..-.._-___-_--- ______-...___-----_------__---...._-----_------_---~------__.._ X=xrx++i y=Xry++k pzxxy í+1 &=p+â i+2 i+3 Xrd++j=w hur data behandlas i den digitala signalprocessorn.
I fíg. 5 och 6. återfinnes ett tidlinjediagram som visar Allmänt sett presenterar diagrammet dataflödet genom olika undersektioner av processorn under utvärderingen av ett allmänt matematiskt uttryck tillsammans med delar av andra matematiska uttryck.
Innan något försök göres att beskriva de representerade operationerna skall definition först lämnas på de symboler som använts i tídlinjediagrammet i fig. 5 och 6.
I. 1 Ii(t) Ii(l) är en maskinspråkinstruktíon som hämtas från läsminnet under en processorcykel eller ett processoríntervall Å och avkodas i processorn under en processor-cykel eller ett processor-intervall i+1. I allmänhet påverkar ïnStTUktï°flen Ii operationen i sektioner av proces- sorn under en processorcykel eller ett processorinter- vall i+2. fälten eller styrmeddelandena l, m. E, § och E.
Som ovan nämnts innehåller varje instruktion representerar fältet E i maskinspråkinstruktíonen Ii för att styra inkallningen av operanderna xi+3 och Yi+3. Dessa inkallningar äger rum under intervallet í+3. representerar fältet t i maskinspråkinstruktionen Ii för att styra beräkningen av en produkt eller mellan- -øperand pi+2 under intervallet i+2. Produkten 10 20 30 U) Lfø UG 456 051 Ií(m) Ií(n) Ii(s) I1(S,t) Xi och í+1 20 Pi+2 är en funktion av operanderna xi+1 och y1+1. representerar fältet t i maskinsprâkinstruktionen Ii för att styra ackumuleringen av utgången från eller Önskat Pesultat-OPÖ ai+2 under intervallet i+2. Det resulterande ordet är en funktion av det närmast före- gående resultatordet ai+1 och en pp0¿ukg pí+1 som tidigare beräknats. är ett fält 3 i maskinspråkinstruktionen för att styra överföringen av ett avrundat utgângsord wi+2 under intervallet i+2. Den avrundade utgången w¿+2 är en funktion av den senaste föregående avrundade utgången W¿+1 och det resulterande ordet aí+1 i ackumulatorn. är ett fält i maskinspråkinstruktionen för att styra lagringen av det avrundade utgångsordet wí+1 och modifieringen av i register lagrade adresser ui+2 De modifierade adresserna är en funktion av den föregående adressen ui+1 och det föregående fältet Ii(5)_ under intervallet i+2.
Det uppdaterade minnestill- ståndet Miig är en funktion av fältet Ii(s), det föregående minnestillstândet Mí+1, de 1 pegísgep laåfade adresserna ui+1 och det avrundade utgångs- ordet w. 1+1' är en kombination av fälten § och E i maskinspråkinst- ruktionen. Fälten styr modifieringen av de i register lagrade adresserna Ui+2 under intervallet i+2. De lflOdlfiefadê EÖPSSSGPHE. Ui+2 är även en funktign av adressen ui+1_ är operander som hämtas från minnet under intervallet i under styrning av fältet 3 i instruktionen ií_3 som hämtas från minnet under intervallet i-3. Instruktio- “en Ií+3 avkodas under intervallet i-2 och styr behandlingen under intervallet i-1 där adresserna till GPGPHHÛGPHH Xi och yi alstras. Som ovan nämnts hämtas dessa operander från minnet under intervallet i. De behandlas i multipliceraren under intervallet i+1 under styrning av fältet l i instruktionen Ií_1, som hämtas under intervallet i+1. Därigenom alstras' mellanoperanden eller -produkten pi+1_ representerar den produkt som bildas av multipliceraren 10 20 25 35 HO 456 051 21 under intervallet i+1. Denna produkt är en mellanope- rand vilken används såsom ingång till aokumulatorn för dess operation under intervallet i+2. Produkten pi+1 bildas i registret P under styrning av fältet I¿_1(l). Multiplikatorn och multiplikanden är ope- randerna xi och yí_ i+2 representerar innehållet i ackumulatorn under interval- let i+2. Detta är det önskade resulterande ordet 31+; för det uttryck som är under utvärdering. Ordet ailg utgör ingång för avrundnings- och utgângskrets- -undersektionen för intervallet i+3. Avrundnigsopera- tionen sker under styrning från fältet Ii+1(n)_ i+3 representerar det avrundade utgângsordet E som finns tillgängligt i registret W och som kan lagras i skriv- bart minne under intervallet i+N under styrning från fältet Ii+2(s), I diagrammet i fig. 5 och 6 visas samtliga behandlingsåtgär- der i de olika processor-undersektionerna av den digitala signal- processorn tillsammans med tiden i processor-cykler. kolumn i uppställningen representerar en särskild processor-cykel Varje eller ett särskilt tidsintervall i processorn. Informationen i varje kolumn är nära sammanhörande med en viss maskinspråk-ínst- ruktion. Varje rad representerar aktiviteter i en särskild processor-undersektion, som genomför sina tilldelade funktioner under den digitala signalprocessorns arbete.
Eftersom varje rad i diagrammet representerar en särskild aktivitet, skall dessa aktiviteter nu definieras. Den första raden under processorcykel-rubrikerna anger lagringsaktiviteter, d.v.s. hämtning från och inskrivning i minne. Den andra raden visar de tider under vilka instruktioner avkodas inom den digita- la signalprocessorn. Den tredje raden visar beräkning av produk- ten E i prooessorns multiplicerings-undersektion. Den fjärde raden visar ackumulering av resultat-ordet a i processorns acku- mulerings-undersektion. Den femte raden visar aktiviteter i prooessorns avrundnings- och spill-undersektion, vilken alstrar det avrundade utgàngsordet 3. Den sjätte raden visar aktiviteter som är förknippade med modifiering av adresser som används för att hämta data för de aritmetiska operationerna.
Behandlingen av de ovannämnda allmänna aritmetiska uttrycken kan följas genom de olika sektionerna och undersektionerna av den 10 15 20 30 35 HO 456 051 . 22 digitala signalprocessorn med hjälp av fig. 5 och 6. _ Ett första steg vid behandlingen av ett allmänt aritmetiskt uttryck är att hämta operander för en multiplikation. Som ovan nämnts kommer information som hänför sig till denna hämtningsope- ration att av assembleringsprogrammet placeras i ett intervall som uppträder före den information som är förknippad med styr- ningen av multipliceringsoperationen. Som resultat av denna assembleringsprogramfunktion innefattar alla maskinspråkinstruk- tioner ett styrfält för en hämtningsoperation som inkallar infor- mation fràn minnet för behandling som skall styras av en efter- följande maskinspràkinstruktion.
Som exempel på exekvering av en instruktion skall vi betrak- ta behandlingen av ett allmänt uttryck vid vilken information som hänför sig till hämtningsoperationer för dess operander ingår i en instruktion vilken hämtas under intervallet i-3 i fig. 5.
Denna ín$tPUktï°fl Ii_3 är visad i en särskilt utmärkt ruta och är markerad med ett index som identifierar instruktionen när Varje instruktion som visas i processorfunktionsschemat är angiven på liknande sätt i överensstämmelse med det intervall under vilket instruktionen hämtas från minnet. instruktionen hämtas under intervallet i-3.
Varje instruktion som visas i fig. 5 och 6 innehåller dessutom ett flertal fält med styrinformation. Vart och ett av dessa fält l, E, E, s och t visas inom parenteser som är förknippade med de instruktioner i den första raden som ' att eller flera särskilda fält av en instruktion visas i andra rader i Schemafi, eXemPelVíS ïí(l) i raden för beräkning av produkter °°h Iï(s,t) i raden för modifiering av adresser.
Under intervallet i-2 avkodas den nyss hämtade instruktionen representerar hämtnings- och lagringsoperationer.
Ií_3 av processorn i enlighet med vad som visas i den särskilt utmärkta rutan i den andra raden som representerar avkodning av instruktioner.
En hämtningsoperation för operanderna Ä och 1, vilken iden- tïfïeras av ínStPUktí°nen Ií_3, börjar under intervallet i-1.
Hämtningsoperationen börjar med användning av en adress som är angiven i instruktionsfältet Ii_3(t)_ När denna adress har använts, modifieras den och lagras tillbaka i adress-aritmetik- sektionen såsom en funktion av instruktionsfältet Ií_3(S,t) och det föregående tillståndet uí_2 för registren i adressarítme- tiksektionen. Denna modifiering av adresserna visas i den sär- 10 15 20 25 35 H0 456 051 . 23 skilt utmärkta rutan under intervallet i-1. Hämtningen av dessa operander E och 1 fullbordas under intervallet i när de speciella °PePandePUa Xi och yi, identifierade genom instruktionen I1_3, utläses ur minnet och överföres via den gemensamma da- ta- och styrningsbussen till respektive register REG X 102 och BEG Y 106. Dessa hämtningsoperationer visas i den särskilt utmärkta rutan under intervallet i. Operanden xi utläsas 1 typiska fall från ett läsminne, under det att operanden yi 1 typiska fall utläses från ett direktaccessminne.
Adresspekarna, eller de adresser som är lagrade i registren RX och RY, som uppdaterades i det föregående intervallet i-1, används för åtkomst av operanderna från minnet under interval- let i.
Den första aritmetiska operation som skall genomföras på °PefandeFna Xi och yi sker under intervallet i+1. Då kommer multiplicerings-undersektionen att som svar på instruktionsfältet Ií+1(l) beräkna en mellan-operand eller produkt p¿+1, såsom framgår av den särskilt utmärkta rutan under intervallet i+1.
Denna PP0àUkt P¿+1 är visad som en funktion av operanderna xi °°h Yi och av instruktionsfältet Ii_1(l). ïflStPUkfï°fl@n Ii_1, som innehåller fältet 1i_1(1), hämtas från minnet under intervallet i-1. Den avkodas under intervallet i och styr processorns sektioner under intervallet i+1.
Nästa steg vid utvärderingen av det allmänna uttrycket behandlas i ackumulatorn under intervallet i+2. Detta visas i fig. 6 i den fjärde raden som representerar ackumuleringen av resultat-ordet a i en särskilt utmärkt ruta under den kolumn som avser intervallet i+2. Ett resultat-ord ai+2 visas vara en funktion av det föregående resultat-ordet aí+1 som är lagrat 1 ackumulatorn, den nyss beskrivna mellan-operanden eller produkten Pí+1 och instruktionsfältet Ii(m).
Om så har föreskrivits av programmeraren och efter det att resultatet har ackumulerats under intervallet i+2 avrundas detta resultat och lagras i registret W för avrundad utgång. Denna avrundningsoperation är visad under intervallet i+3 i en särskilt utmärkt ruta i den femte raden vilken representerar avrundning av utgången. Den speciella avrundningsoperationen sker under inter- D vallet i+3 där den avrundade utgången wi+3 visas som en funk- tion av den närmast föregående avrundade utgången wí+2 1 re- 10 15 20 30 H0 456 051 . 2H gistret W 118 för avrundad utgång, av det nyss beskrivna resul- tat?°Pdet aí+2 1 ackumulatorn, och av instruktionsfältet Ii+1(n)- Ett slutligt steg vid behandlingen av det allmänna uttrycket är att skriva in den avrundade utgången wi+3 1 minnet under intervallet i+H. Detta framgår av den särskilt utmärkta rutan i den första raden av schemat under intervallet i+U. ett nytt mïnnestíllstând Mila är en funktion av minnestillstån- det Mi+3 för intervallet i+3 i det närmast föregående adress- Pegísteftïllståndet “i+3 för den senaste avrundade utgången “i+3 som nyss beskrivits och'av det instruktionsfält I¿+2(s) som hämtades under intervallet i+2 och avkodades under interval- let i+3.
Den avfufldadë Utšånšen Wi+3, som har lagrats i registret för avrundad utgång vid slutet av intervallet i+3, överföres via Skrivning av den gemensamma data- och styrningsbussen antingen till direktac- cessminnet eller till en buffert 1 in/ut-kretsarna under inter- vallet i+H.
Samtidigt som minnesinskrivningsoperationen sker under intervallet i+ü uppdateras adressaritmetiksektíonen på grundval av information i den instruktion som hämtades under intervallet i+2. Den använda informationen ingår i fälten Ii+2(S,t) 1 ïnSÜF“ktï°nen ïi+2 som hämtats under intervallet i+2 och avko- dats under intervallet i+3.
Under intervallet i+2 ser man att den instruktion Ii som hämtades under intervallet'i styr multiplicerare-undersektionen, ackumulator-undersektionen samt avrundnings- och spill-undersek- tionen i den aritmetíska sektionen. Detta är resultat av den ïn$ÜPuktí°U Ii som hämtas i intervallet i, avkodas i interval- let i+1 och används för styrning under intervallet i+2. Inga delar återstår för att styra undersektioner av den aritmetíska sektionen under därefter följande intervall såsom vid tidigare kända "pipeline-styrda" anordningar. Den övervägande delen av det kolumn-representerade intervallet i+2 är speciellt utmärkt med grova linjer så att läsaren lätt kan återfinna flera fält i í“StFUktí°nen Ii för styrning av undersektioner i den aritme- tíska sektionen under intervallet i+2.
Operander för multipliceringsoperationen hämtades under det intervall i+1 som följer efter intervallet i. Den som resultat erhållna produkten p-HZ biidee under den därpå följande inter- 10 15 20 HO Å 456 051 25 vallet i+2.
. Ett Pesfllfiflt-OPÜ 81+; som bildas under samma intervall i+2 är en funktion av ett tidigare resultat-ord aí+1 och en tídi¿a_ fe PPOÖUKÜ P¿+1. Detta resultat-ord a¿+2 är ett resultat-ord som är utvärderat för ett annat allmänt uttryck än det allmänna uttryck som är under utvärdering genom bildandet av produkten Pílg. Detta begrepp är kanske lättare att förstå om man gör klart för sig att de speciellt utmärkta rutor som bildar en diagonal från den översta raden i den kolumn som är benämnd processoroykel i ned till den femte raden i den kolumn som är benämnd processorcykel i+3 hänför sig till utvärderingen av ett allmänt uttryck. steg àt höger i varje kolumn, hänför sig till utvärderingen av ytterligare ett annat allmänt uttryck.
I typiska fall i ett signalbehandlingsprogram exekveras En liknande diagonal, som är förskjuten ett instruktíoer i tur och ordning fram till en punkt där programräk- naren PC är inställd på det adressvärde i programminnet vilket är platsen för instruktionen i början av sekvensen. Programmet kommer sålunda att fortgå oavbrutet i en slinga som iterativt exekverar samma instruktionssekvens. Dessutom kommer fasta dataord att lagras på minnesplatser där adresserna är interfolie- rade med platser för instruktioner i programsekvensen. Som visas í fig. H används sålunda adresserna i programräknar-registret PC för att adressera ett fast dataord under processorcykelns i+1 tinstànd 2. i ökningssteget +1 eller också används den för adressering av en ïU$tFUktï°n Ii+2 i processorcykelns i+2 tillstànd 0. Återigen framstegas programräknaren det fasta ökningssteget, +1, och Programräknaren framstegas därefter det fasta används för adressering av nästa fasta dataord i processoroykelns i+2 tillstånd 2. steget +1 och används för adressering av instruktionen Ií+3 1 I fortsättningen framstegas programräknaren prooessoroykelns i+3 tillstànd 0 etc. fram till slutet av inst- ruktíonssekvensen. Vid denna tidpunkt inställes programräknaren medelst en hjälp-registerínställningsinstruktion för adressering av den första instruktionen i sekvensen.
I beskrivningen har hittills endast normala operationer av Andra operationer, exempelvis villkorliga operationer, kan genomföras rutinkaraktär för den digitala signalprocessorn nämnts. av den för pipeline-arbetssätt utförda digitala signalprocessorn.
Villkorliga operationer skall nu beskrivas. I många fall 10 20 25 30 35 40 456 051 26 kan den algoritm som förverkligas genom tillståndsprov och exek- vering av alternativa operationer, som beror på resultatet av provet även genomföras medelst en sekvens av en eller flera instruktioner som antingen är exekverade eller ej exekverade. Om denna sekvens är kort kan man totalt sett uppnå stora behand- lingstid-besparíngar i jämförelse med användning av den konven- tionella tekniken för Villkorlig programöverföring för att uppnå samma resultat. Vi har upptäckt att villkorliga operationer som utföres vid digital signalbehandling ofta kan åstadkommas med användning av en sekvens av en eller flera instruktioner vilka antingen exekveras eller ej exekveras. Den digitala signalpro- cessorn har därför utförts för effektiva villkorliga operationer på detta sätt. Den tillämpade idén har emellertid vidsträcktare tillämpbarhet för digitala processorer i allmänhet.
Betrakta exempelvis problemet att finna maximivärdet av en i minne lagrad sampelsekvens. Värdet av varje sampel i sekvensen kan jämföras med värdet av ett ord på en annan minnesplats genom användning av tillvägagångssättet med Villkorlig överföring som kräver alternativa sekventiella behandlingsvägar.
Om (x I>:x max) xmax = X3 eljest (xgör ingentingx) Så att Påståefldeï Xmax = x; förbigàs eller krínggås genom villkorlig ändring av programräknarens innehåll. I vår digitala signalprooessor kommer instruktionen xmax = X att behandlas (d.v.s. inkallas och avkodas) i sin turordningsföljd oberoende av provet, varvid den aktuella överföringen av data till xmax inhiberas om provet ger svaret "nej".
En villkorlig instruktion medför att processorn genomför en tillståndsprov-operation som är en icke-aritmetisk hjälpopera- tion. Som vid normala aritmetiska operationer, vilka ovan be- skrivits, finns det en korrekt ordningföljd för skrivning av en' assembleringssprâk-instruktion för villkorliga operationer. 10 15 20 35 HO 456 051: _ 27 Följande presenteras i den korrekta ordningsföljden. (1) Val av destination sker. Det ord som skall skrivas på den valda destinationen väljs antingen såsom det avrundade utgångsordet 3 eller dataordet 1. Det valda ordet kan skrivas i direktaccessminnet eller i in/ut-kretsen. Den speciella destinationen för det valda ordet är given. (2) Ange det villkor med avseende på vilket prov skall utföras och den processoroperation som skall genomföras om provet ger resultatet "ja".
I följande tabell sammanfattas de villkorliga instruktioner som bildas genom val av en sats från vardera av de båda kolum- nerna .
TABELL II _ vILLKoRLIGA INSTRUKTIONER NOTHING om (VILLKOR) doset( ) DEST = ysnc om (VILLKOR) d0au( ) ossw = w om_(vILLKon) dowt< > Innebörderna av DEST och YSRC är desamma som de i TABELL I.
Termen VILLKOR skall utbytas mot en av följande: VILLKOR Beskrivning a==0 Ackumulatorns innehåll 3 är noll a. 2>-O Ackumulatorns innehåll 3 är större än noll a lg 0 Ackumulatorns innehåll 3 är mindre än noll.
Varje villkorlig instruktion assembleras såsom en 16-bits operationskod följd av ett 16-bits argument. Strukturen för en villkorlig instruktion är där Q, § och t är styrningsfält liksom vid de normala aritmetiska instruktionerna. Styrninge- fältet 3 ger styrningsínformation för den villkorliga operatio- Denna information innefattar vilken operation som skall Fälten § och t har samma innebörd.
Den . 10 15 20 25' 30 35 . 456 Û51 . 28 utföras samt det villkor med avseende på vilket prov skall ske. _ Man har möjlighet att välja mellan tre olika operationer.
Ett processoradress- eller framstegningsregister inställes om det angivna villkoret är uppfyllt. Nästa aritmetiksektion-operation genomföres om villkoret är uppfyllt. Nästa skrivoperation utfö- res om villkoret är uppfyllt. För varje villkorlig instruktion gäller att de nämnda operationerna ej genomföras om villkoret ej är uppfyllt.
Operationer som skall underkastas villkorsprov är de opera- tioner som är angivna i instruktionen närmast efter den villkor- liga instruktionen i pipeline.
Varje villkorlig instruktion som behandlas av den digitala signalprocessorn hämtas från läsminnet 100 och överföres via databussen till instruktionsregístren. Styrfälten s och 3 lagras i instruktionsregistret IR-S,T i enlighet med vad som ovan be- skrivits. Styrfältet 9 lagras i instruktionsregistret IR-C.
I anslutning till fig. 8 skall nu arbetssättet för arrange- manget enligt fig. 1 och 2 beskrivas för genomförandet av en villkorlig operation. Den övervägande delen av den villkorliga operationen sker i stor utsträckning såsom en rutinmässig normal operation. Därför kommer särskilt de delar av operationen att framhållas vilka skiljer sig från en rutinmässig normal opera- tion. Läsaren hänvisas till den ovan lämnade beskrivningen för komplettering av redogörelsen.
I fig. 8 visas en villkorlig instruktion Ii(Q,S,g) som inkallas under processorcykeln i och avkodas i prooessorcykeln i+1. I detta exempel placeras den villkorliga instruktionen Ii(c,s,t) i pipeline för exekvering av en normal arítmetisk ínStruktí°n I1+1(l,m,n,s,t) som inkallas under processorcykeln i+1, avkodas under processorcykeln i+2 och villkorlígt exekveras under processorcykeln i+3.
Fälten s och E av instruktionens Ií(c,S,t) styr data1n_ kallning och en skrivoperation under intervallet i+2. Tillstån- det “i+2 för registren i adressaritmetiksektionen uppdateras under intervallet i+2 som en funktion av styrfälten Ii(s,t) och av dessa registers föregående tillstånd ui+1_ °PePatï°n Mí+2 som äger rum under cykeln i+2 liknar den opera- tion som ovan beskrivits med avseende på den normala aritmetik- En skrivminnes- -instruktionen. Eftersom den villkorliga instruktionen är en hjälpinstruktíon, är den aritmetiska sektionen 110 overksam under 10 15 20 25 35 NO 456 051 _ 29 intervallet i+2 som är den vanliga exekveringscykeln för denna instruktion. Multiplikatorregistret P, ackumulatorregistret A och registret W för avrundad utgång kvarhåller sina respektive Mellan-operanden pi+2 är' lika med pin, resultatet anz är lika med ein och det avrundade utgångsordet wí+2'äp lika med wi+1_ " 5tYPfä1tet Ií(c), som har lagrats i instruktionsregistret IR-C under intervallet i, innefattar en del som identifierar vilket villkor som skall provas och en annan del som identifierar data från den närmast föregående cykeln. vilken operations som skall styras beroende på resultatet av villkorsprovet. Under intervallet i+1 avkodas de båda delarna av $tYPfä1tet ïi(c) i kretsarna 211 och 212 och lagras i registren 213 och 214.
Under intervallet i+2 tillföras den första avkodade delen av styrfältet Ii(c), som är lagrad i registret 213, till en jäm- förare 215 vilken bestämmer vilket villkor som är under prov- ning. Samtidigt tillföres villkorstillstânden eller flaggorna V¿+2 från aritmetiksektion-styrorganet 11H via en väg 225 till jämföraren 215. Sålunda provas villkorstillstånden i den arítme- tiska sektionen. Jämföraren 215 alstrar en signal "villkoret uppfyllt" eller "villkoret ej uppfyllt" på ledningen 221 genom vilken den som resultat alstrade signalen tillföres som en vill- korlig styrning till logikkretsen 122. Även under intervallet i+2 kommer logikkretsen 122, som arbetar under styrning från villkorssignalen på ledningen 221 att alstra ytterligare styrsignaler som sprids till kretsen AVKODNING F 113, adressaritmetiksektion-styrorganet 15H, direktaccessminnet 105 och in/ut-kretsen 200. Resultatet av den villkorliga opera- tionen kvarhålles på utgången hos logikkretsen 122 för att styra processorns olika sektioner under intervallet i+3.
Normala aritmetiska instruktioner Ii+1(1,m,n,s,t), som skall pâverkas av den villkorliga instruktionen Ií(c,S,t) inkallas under intervallet i+1 och avkodas under cykeln i+2. I frånvaro av den föregående villkorliga instruktionen skulle denna instruktion styra processorn under intervallet i+3. Datainkall- ningar för intervallet i+3 sker på vanligt sätt.
Därefter, under intervallet i+3, beror de exekverade opera- tionerna på de vanliga operanderna jämte tillståndet på styrled- ningarna från logikkretsen 122, vilka ger villkor efter resultat av jämförelser som är utförda under intervallet i+2. 10 15 20 35 H0 456 051 - 30 När den villkorliga instruktionen Ií(C,S,g) är en v111k0p_ lig aritmetiksektion-exekvering kommer endast aritmetikenhet-ope- rationer att villkorligt exekveras under intervallet i+3. In- skrivning i minne spärras ej vid denna tidpunkt. Om villkoret är uppfyllt för den villkorliga aritmetiksektion-exekveringsinstruk- tionen alstras en ny produkt pi+3, resultatordet aí+3 och det avrvndade utsånssordet wlß. om villkoret ej är uppfyllt, spärras styrningen av aritmetiksektionen, och ingen ny produkt, inget resultatord och inget avrundat utgångsord alstras. Regist- ren P, A och W bibehåller värdena från det närmast föregående intervallet. Samtliga övriga normala processoroperationer sker under intervallet i+3.
Om den villkorliga instruktionen Ií(c,S,g) är en villkor- lig skrivinstruktion, pâverkas endast minnesskriv- och utgångs- skriv-operationerna under intervallet 1+3. Operationerna i den Om villkoret är uppfyllt för den villkorliga skrivinstruktionen, sker minnesskrivoperationen aritmetiska sektionen spärras ej.
Mí+3 eller utgångsskrivoperationen. Om villkoret ej är upp- fyllt, förhindras styrningen av skrivoperationen, och minnet bibehåller Sitt tillstånd Mí+2 från det föregående interval- let. Skrivning till minnet eller utgången styrs av styrfältet Il i enlighet med vad som beskrivits för normala instruktio- ner. Oavsett om villkoret är uppfyllt eller ej sker alla övriga processoroperationer normalt under intervallet i+3. Om den villkorliga instruktionen Ií(c,s,t) är en Villkorlig register- inställningsinstruktion, påverkas endast en registerinställnings- operation under intervallet ií+3, Det bör observeras att eftersom registerinställningsinstruktionen är en hjälpinstruk- tion, så kommer ingen aktivitet att försíggä i den aritmetiska sektionen. Minnesskrivning eller utgångsskrivning kan fortgå utan störning i enlighet med vad som är föreskrivet i styrfältet Il(s). Om villkoret är uppfyllt, kommer det register som är utpekat av registervalfältet i det fasta dataord som är förknip- pat med regísterinställningsinstruktíonen att laddas med värdet i värdefältet i detta dataord i enlighet med vad som ovan beskri- vits. Om villkoret ej är uppfyllt, spärras styrningen av regis- terinställningsoperationen, och registrets innehåll ändras ej av registerinställningsinstruktionen.
Den ovan lämnade beskrivningen av arrangemang och arbetssätt hänför sig till en utföringsform av uppfinningen. Uppfinningen 10 20 30 35 H0 456 051 . 31 innefattar denna utföringsform jämte andra för en fackman uppen- bara utföringsformer som faller inom ramen för patentkraven.

Claims (1)

  1. 456 051 . 53. Patentkrav Digital proceesoranordning, anordnad för pipeline-data- behandlingeoperaticner, varvid ett dataord behandlas aritme- tiskt till ett resulterande dataord, samt en statueeignal under varje processorcykel, varvid det resulterande dataordet skrivas till en destination, k E n n e t e c k n a d av att den innefattar; ett flertal processorsektioner, såsom aritmetiska, register-inetällnings- och ekrivminneeeektioner, varvid varje processorsektion är anordnad att behandla ett dataord under det att de andra proceeeoreektionerna samtidigt behandlar olika dataord under varje proceeeorcykel; källorgan för astadkommande av en sekvens av villkorliga och ovillkorliga operationskodord, varvid ett särskilt opera- ticnskodord styr behandlingen för varje processorcykel, varvid varje operationskodord innefattar ett flertal etyrfält, varvid ett villkorligt operationekodord är betecknat Ii(c,s,t) och ett ovillkorligt operationskodord är betecknat Ii+1(l,m,..~ .s,t), varvid i = 0,1,2... representerar konsekutiva procee- eorcykler och (i+1), (i+2)... representerar en konsekutiv sek- vens av proceesorcykler, varvid I¿(c) är ett villkorligt styr- fält, varvid I¿(e,t) är etyrfält, varvid I¿+1(l) är ett ovill- korligt multiplikatoretyrord och varvid I¿+1(m) är ett ovill- korligt ackumulatorstyrord, varvid varje ovillkorligt etyrfält betecknat (i+1) innefattar information för att bestämma samti- diga steg vid behandling av ett valt uttryck för en operand Yi+2ï organ (IR-C,, IR-S, T, 211, 212, 213, 214, 215, 122 och AVKODARE F) för att avkoda det villkorliga operationskodordet Ii(c,s,t) under en första processorcykel (i+1) i den konseku- tiva sekvensen av processorcykler samt det ovillkorliga opera- tionskodordet Ii+1(l,m,...e,t) under en andra och efterföljan- de konsekutiv processorcykel (i+2) i den konsekutiva sekvensen av processorcykler; organ för att motta och lagra en operand yi+2 under den andra proceseorcykeln i den kcnsekutiva eekvenaen av proces- sorcykler; och organ för att i de aritmetiska, register-inställnings- och skrivminnesproceesorsektionerna exekvera den behandling, - 35 456 051 som definieras av det ovillkorlíga operationskodordet I¿+1_ (l,m,...s,t) under en tredje processorcykel (i+3) i den kon- sekutiva sekvensen av processorcykler med undantag för den aritmetiska sektionen, som reagerar för vissa av de avkodade fälten Ii+1(1,m,...s,t) under den tredje processorcykeln för att behandla operanden yi+2 under den tredje processorcykeln om det av det villkorliga styrfältet Ii(c) definierade vill- koret uppfyllas av statuesignalen och inaktiverae för behand- ling av operanden yilz under den tredje processorcykeln om det av det villkorliga styrfältet Ii(c) definierade villkoret inte uppfyllas av statussignelen.
SE8100735A 1980-02-11 1981-01-30 Digital processoranordning anordnad for pipeline-databehandlingsoperationer SE456051B (sv)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12005980A 1980-02-11 1980-02-11

Publications (2)

Publication Number Publication Date
SE8100735L SE8100735L (sv) 1981-08-12
SE456051B true SE456051B (sv) 1988-08-29

Family

ID=22388030

Family Applications (1)

Application Number Title Priority Date Filing Date
SE8100735A SE456051B (sv) 1980-02-11 1981-01-30 Digital processoranordning anordnad for pipeline-databehandlingsoperationer

Country Status (10)

Country Link
JP (1) JPS56149648A (sv)
BE (1) BE887451A (sv)
CA (1) CA1155231A (sv)
DE (1) DE3104256A1 (sv)
ES (1) ES8201745A1 (sv)
FR (1) FR2475763A1 (sv)
GB (1) GB2069733B (sv)
IT (1) IT1135394B (sv)
NL (1) NL8100631A (sv)
SE (1) SE456051B (sv)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4589065A (en) * 1983-06-30 1986-05-13 International Business Machines Corporation Mechanism for implementing one machine cycle executable trap instructions in a primitive instruction set computing system
GB8401807D0 (en) * 1984-01-24 1984-02-29 Int Computers Ltd Pipelined data processing apparatus
US4755966A (en) * 1985-06-28 1988-07-05 Hewlett-Packard Company Bidirectional branch prediction and optimization
JP3881763B2 (ja) 1998-02-09 2007-02-14 株式会社ルネサステクノロジ データ処理装置
GB2343973B (en) * 1998-02-09 2000-07-12 Mitsubishi Electric Corp Data processing device for scheduling conditional operation instructions in a program sequence
CN113485748B (zh) * 2021-05-31 2022-08-12 上海卫星工程研究所 卫星条件指令系统及其执行方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3728692A (en) * 1971-08-31 1973-04-17 Ibm Instruction selection in a two-program counter instruction unit
BE789583A (fr) * 1971-10-01 1973-02-01 Sanders Associates Inc Appareil de controle de programme pour machine de traitement del'information

Also Published As

Publication number Publication date
FR2475763B1 (sv) 1984-05-04
JPS56149648A (en) 1981-11-19
SE8100735L (sv) 1981-08-12
BE887451A (fr) 1981-06-01
NL8100631A (nl) 1981-09-01
GB2069733A (en) 1981-08-26
FR2475763A1 (fr) 1981-08-14
DE3104256C2 (sv) 1991-06-27
IT1135394B (it) 1986-08-20
CA1155231A (en) 1983-10-11
ES499277A0 (es) 1982-01-16
ES8201745A1 (es) 1982-01-16
DE3104256A1 (de) 1982-03-18
IT8119634A0 (it) 1981-02-10
JPS619648B2 (sv) 1986-03-25
GB2069733B (en) 1984-09-12

Similar Documents

Publication Publication Date Title
US3304418A (en) Binary-coded decimal adder with radix correction
US4604695A (en) Nibble and word addressable memory arrangement
US4099229A (en) Variable architecture digital computer
US3462741A (en) Automatic control of peripheral processors
US5706460A (en) Variable architecture computer with vector parallel processor and using instructions with variable length fields
US4228498A (en) Multibus processor for increasing execution speed using a pipeline effect
EP0689128A1 (en) Computer instruction compression
US4539635A (en) Pipelined digital processor arranged for conditional operation
US4943915A (en) Apparatus and method for synchronization of a coprocessor unit in a pipelined central processing unit
Carpenter et al. The other Turing machine
KR860001433B1 (ko) Rom을 사용하여 10진 승산을 수행하는 데이터 프로세서
US4462102A (en) Method and apparatus for checking the parity of disassociated bit groups
CA1223664A (en) Address computation system for digital processing apparatus
EP0173040B1 (en) Vector processing system
US6092183A (en) Data processor for processing a complex instruction by dividing it into executing units
SE456051B (sv) Digital processoranordning anordnad for pipeline-databehandlingsoperationer
US4598358A (en) Pipelined digital signal processor using a common data and control bus
US3001708A (en) Central control circuit for computers
EP0725336A2 (en) Information processor
JPS60103482A (ja) ベクトル処理能力を有するデ−タ処理装置
GB933066A (en) Computer indexing system
US4947358A (en) Normalizer for determining the positions of bits that are set in a mask
US4615016A (en) Apparatus for performing simplified decimal multiplication by stripping leading zeroes
US3293420A (en) Computer with compatible multiplication and division
CA1233905A (en) Decimal digit processing apparatus and method

Legal Events

Date Code Title Description
NUG Patent has lapsed

Ref document number: 8100735-3

Effective date: 19910805

Format of ref document f/p: F