SE456051B - Digital processoranordning anordnad for pipeline-databehandlingsoperationer - Google Patents
Digital processoranordning anordnad for pipeline-databehandlingsoperationerInfo
- 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
Links
- 238000012545 processing Methods 0.000 title claims description 15
- 230000015654 memory Effects 0.000 claims description 75
- 230000014509 gene expression Effects 0.000 claims description 25
- 238000000034 method Methods 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 12
- 230000006870 function Effects 0.000 description 21
- 238000009825 accumulation Methods 0.000 description 10
- 238000012360 testing method Methods 0.000 description 10
- 238000011282 treatment Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000012546 transfer Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 7
- 238000011156 evaluation Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000001356 surgical procedure Methods 0.000 description 2
- PQVHMOLNSYFXIJ-UHFFFAOYSA-N 4-[2-(2,3-dihydro-1H-inden-2-ylamino)pyrimidin-5-yl]-1-[2-oxo-2-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)ethyl]pyrazole-3-carboxylic acid Chemical compound C1C(CC2=CC=CC=C12)NC1=NC=C(C=N1)C=1C(=NN(C=1)CC(N1CC2=C(CC1)NN=N2)=O)C(=O)O PQVHMOLNSYFXIJ-UHFFFAOYSA-N 0.000 description 1
- 241000751119 Mila <angiosperm> Species 0.000 description 1
- 101100154785 Mus musculus Tulp2 gene Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 206010003119 arrhythmia Diseases 0.000 description 1
- 230000006793 arrhythmia Effects 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012854 evaluation process Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 150000002500 ions Chemical class 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 239000002574 poison Substances 0.000 description 1
- 231100000614 poison Toxicity 0.000 description 1
- 230000009469 supplementation Effects 0.000 description 1
- 238000010977 unit operation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01G—CAPACITORS; CAPACITORS, RECTIFIERS, DETECTORS, SWITCHING DEVICES, LIGHT-SENSITIVE OR TEMPERATURE-SENSITIVE DEVICES OF THE ELECTROLYTIC TYPE
- H01G9/00—Electrolytic capacitors, rectifiers, detectors, switching devices, light-sensitive or temperature-sensitive devices; Processes of their manufacture
- H01G9/20—Light-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)
- 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.
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)
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)
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 |
-
1981
- 1981-01-30 SE SE8100735A patent/SE456051B/sv not_active IP Right Cessation
- 1981-02-07 DE DE3104256A patent/DE3104256A1/de active Granted
- 1981-02-09 FR FR8102496A patent/FR2475763A1/fr active Granted
- 1981-02-10 JP JP1758681A patent/JPS56149648A/ja active Granted
- 1981-02-10 BE BE0/203750A patent/BE887451A/fr unknown
- 1981-02-10 NL NL8100631A patent/NL8100631A/nl not_active Application Discontinuation
- 1981-02-10 ES ES499277A patent/ES8201745A1/es not_active Expired
- 1981-02-10 CA CA000370508A patent/CA1155231A/en not_active Expired
- 1981-02-10 IT IT19634/81A patent/IT1135394B/it active
- 1981-02-11 GB GB8104139A patent/GB2069733B/en not_active Expired
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 |