NL8304442A - Geintegreerde en programmeerbare processor voor woordsgewijze digitale signaalbewerking. - Google Patents

Geintegreerde en programmeerbare processor voor woordsgewijze digitale signaalbewerking. Download PDF

Info

Publication number
NL8304442A
NL8304442A NL8304442A NL8304442A NL8304442A NL 8304442 A NL8304442 A NL 8304442A NL 8304442 A NL8304442 A NL 8304442A NL 8304442 A NL8304442 A NL 8304442A NL 8304442 A NL8304442 A NL 8304442A
Authority
NL
Netherlands
Prior art keywords
bus
register
memory
input
address
Prior art date
Application number
NL8304442A
Other languages
English (en)
Inventor
Robert Johannes Sluijter
Franciscus Johannes A Van Wijk
Jozef Louis Van Meerbergen
Fransiscus Peter Johann Welten
Original Assignee
Koninkl Philips Electronics Nv
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 Koninkl Philips Electronics Nv filed Critical Koninkl Philips Electronics Nv
Priority to NL8304442A priority Critical patent/NL8304442A/nl
Priority to US06/663,730 priority patent/US4689738A/en
Priority to EP84201831A priority patent/EP0154051B1/en
Priority to EP89201327A priority patent/EP0333306B1/en
Priority to DE8484201831T priority patent/DE3484308D1/de
Priority to DE3486457T priority patent/DE3486457T2/de
Priority to CA000470632A priority patent/CA1221175A/en
Priority to KR1019840008313A priority patent/KR920008280B1/ko
Priority to JP59282137A priority patent/JPH0760379B2/ja
Publication of NL8304442A publication Critical patent/NL8304442A/nl
Priority to JP4103118A priority patent/JP2501711B2/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • G06F7/575Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry
    • 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/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49905Exception handling
    • G06F7/4991Overflow or underflow

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)

Description

> 'i •vff·..·' Ή EHN 10.886 1 - ‘ ' N.v. Philips' Gloeilampenfabrieken te Eindhoven. _ - --
Geïntegreerde en prograraneerbare processor voor woardsgewij ze digitale signaalbewerking.
Achtergrond van de uitvinding: ___
De uitvinding betreft een geïntegreerde en prograraneerbare processor voor woardsgewijze digitale signaalbewerking, bevattende: a. een vermenigvuldigingselement (58) met een eerste ingang en een 5 tweede ingang om twee operandi ter vermenigvuldiging te ontvangen, en een eerste uitgang cm een produkt te presenteren; b. een arithmetiscbe en logische eenheid (122) met een derde ingang en een vierde ingang cm twee verdere operandi te ontvangen, een tweede uitgang cm een resultaatcperand te presenteren en eerste accuraolator- 10 middelen (116) die tussen de tweede uitgang en de derde ingang geschakeld zijn,* c. een eerste lees-schrijfgeheugen (36, 102) voor het opslaan van data-gegevens; d. aansluitmiddelen voor het aansluiten van een besturingsgeheugen (28) 15 voor het opslaan van besturingsinformatie voor de overige onderdelen; e. konroonikatiemiddelen, waaronder busverbindingsmiddelen voor het verbinden van genoemde onderdelen met elkaar en met de buitenwereld.
Zo'n dataprocessar is bekend uit de Europese Octrooiaanvrage 0086307-A2, geassigneerd aan Texas Instruments Corporation. De bekende inrichting 2o betreft een geïntegreerde microcomputer, waarbij op de chip een programmabas en een databas zijn voorzien, terwijl voorts programma-infarmatie net de buitenwereld kan uitgewisseld worden. Verder is de uitgang van het vermenigvuldigingselement direkt aangesloten op een der ingangen van de arithmetische en logische eenheid. Het is bij de onderhavige uit-25 vinding gebleken dat onder andere door zo een zeer direkte koppeling de flexibiliteit van zo een processor niet groot kan zijn. Bovendien is het gebleken dat de voorziening van slechts één databas al evenzeer de flexibiliteit van de processor vermindert.
30 Samenvatting van de uitvinding;
Het is een. doelstelling van de uitvinding cm een geïntegreerde dataprocessar met zeer vele gebruiksmogelijkheden te verschaffen waarin met grote snelheid signaalbewerkingen mogelijk zijn. Onder signaalbewer- 8304442 _.. . i $ * Η, S, ΡΗΝ 10.886 2 - - '-· . 7 klngen worden in de literatuur zulke verstaan die volgens "echte-tijd" worden uitgevoerd, zodat met name elke bewerking in een vast tijdsinterval gereed moet zijn. Zulke signaalbewerkingen worden dikwijls als vektorbewerking uitgevoerd, dat wil zeggen dat een som gevormd moet 5 worden van een reeks produkten, waarin telkens opvolgende s ignaalwaarden één der faktoren vormen. Met name worden steeds dezelfde bewerkingen herhaald op opeenvolgende signaalwoorden uit een blok of reeks van signaalwoorden. Evenwel zijn ook andere typen bewerkingen veelal noodzakelijk, zulke als gewoonlijk in een arithmetische en logische (ALU) eenheid 10 worden uitgevoerd, bijvoorbeeld bitsgewijzeK)F-funktievorming noteren of schuiven.
Samenvatting van de uitvinding:
De doelstelling wordt gerealiseerd doordat de uitvinding het 15 kenmerk heeft, dat f. genoemde eerste ingang verbonden is met een afzonderlijke eerste bus (22) en genoemde tweede ingang en vierde ingang verbonden zijn met een afzonderlijke tweede bus (20) van genoemde busverbindings-middelen; 20 g. genoemde derde ingang koppelbaar is met de eerste bus; h. genoemde eerste accumulatormiddelen een derde uitgang bezitten met een eerste selektor om een selekteerbare aansluiting te vormen op genoemde eerste en tweede bus; i. genoemde eerste uitgang een tweede selektor (76) bevat cm een selek- 25 teer bare aansluiting te vormen op genoemde eerste en tweede bus; j. en dat genoemd eerste lees-schr ij f geheugen een adres ingang en een data-ingang bezit die op genoemde eerste en tweede bus zijn aangesloten en een vierde uitgang met een derde selektor (46, 104) cm een selekteerbare aansluiting te vormen op genoemde eerste en tweede bus.
30 Deze struktuur berust op het inzicht dat bij het uitvoeren van vektor-en andere bewerkingen door elkaar in één programma een nauwe koppeling tussen vermenigvuldigingselement en arithmetische en logische eenheid veelal bezwaarlijk is. Enerzijds is bij veel vektor bewerkingen alleen het vermenigvuldigingselement nodig. Tussenschakeling van de arithme-35 tische en logische eenheid zou dan alleen vertragend werken. Bij het uitvoeren van veel andere bewerkingen is alleen de arithmetische en logische eenheid nodig. Dan zou tussenschakeling van het vermenigvuldigingselement juist vertragend werken. Het is daarom beter de twee be- 8304442
1L
' # ♦ PHN ΊΟ.886 3 werkingen gescheiden te houden zodat cp zichzelf de arithmetische en logische eenheid en het vermenigvuldigingselernent naar funktiespektrum en verwerkingssnelheid kunnen warden geoptimaliseerd. Daarbij biedt de struktuur net de twee bossen die pp de beschreven manier met de respek-5 tievelijke in- en uitgangen zijn verbonden een verdere verhoging van flexibiliteit en verwerkingssnelheid. Daarbij zal bijvoorbeeld bij het ontwikkelen van een bepaald programna een extern besturingsgeheugen kunnen warden gebruikt dat bijvoorbeeld als elektrisch veranderbaar geheugen (NVRAM, RAM, PROM, EPROM, of EEPROM) is uitgevoerd. Voor een 10 serieprcduktie zal dit daarentegen meestal geïntegreerd worden als programmeerbaar dood geheugen (EEPROM, EPROM) of alleen-leesgeheugen (ROM).
Deze laatste zijn goedkoper; zo neemt bijvoorbeeld een ROM-geheugen relatief weinig plaats in.
Het is gunstig als genoemd eerste lees-schrij fgeheugen bevat 15 een eerste geheugenmodule (36) waarvan de adresingang is aangesloten op de eerste bus en de data-ingang is aangesloten cp de tweede bus, en een tweede geheugenmodule (102) waarvan de adresingang is aangesloten op de tweede bus en de data-ingang is aangesloten op de eerste bus, en dat de derde selektor voor elke geheugenmodule een respektievelijke selektie-20 module (46, 104) bevat die qp elk van beide bussen aangesloten is, en dat de aansluiting voor het besturingsgeheugen een instruktieregister bevat an bes turings informatie ter besturing van verdere onderdelen cp te nemen, welk instruktieregister (26) voorts een data-uitgang aangesloten heeft cp genoemde busverbindingsmiddelen. Zo kunnen datagegevens voor 25 de respektievelijke bewerkingen en na de respektievelijke bewerkingen steeds op velerlei manieren worden gerouteerd.
Het is gunstig als genoemde eerste en tweede geheugenmodule elk van een eigen adresberekeningseenheid (38, 114) zijn voorzien. Zo is een grotere flexibiliteit realiseerbaar.
30
Verdere details van de uitvinding;
Het is gunstig als genoemde eerste uitgang voorzien is van teruggekcppelde tweede accumulatarmiddelen inclusief accumulataroptel-middelen (64, 68) en daarop aangesloten een schuif eenheid (62) cm selek-35 teerbare schuif- en her formatter ingsbewerkingen uit te voeren cp aan de busverbindingsmiddelen toe te voeren informatie. Zo zijn bij het ver-menigvuldigingselement een groot aantal verschillende operaties realiseerbaar zender dat de busverbindingsmiddelen hiervoor nodig zijn: deze ______._____ 8304442 ί ' % ΡΗΝ 10.886 4 · * \ laatste kunnen dan werkzaam zijn ten behoeve van een vorige of een volgende verwerkingsqperatie.
Het is gunstig als genoemde eerste accumulatormiddelen voorzien zijn van een tweede lees-schrijfgeheugen dat plaats biedt aan 5 meerdere operandi en voorzien is van drievoudige adresseringsmiddelen om tegelijkertijd een schrijfaktie vanuit de arithmetische en logische eenheid alsook twee onafhankelijke leesakties naartoe respektievelijk de eerste bus en de tweede bus uitvoerbaar de maken. Zo is een lokaal, en dus vrijelijk toegankelijk werkgeheugen voor de ALU-eenheid beschik- 10 baar waardoor een grote verscheidenheid van bewerkingen vergemakkelijkt % wordt.
Het is gunstig als verdere aansluitmiddelen aanwezig zijn voor een als een dood geheugen uit te voeren verder datageheugen (90), voorzien van een adresaansluiting op genoemde busverbindingsmiddelen en een 15 selekteerbare data-aansluiting (88) op genoemde eerste en tweede bus. Zo'n dood (data)-geheugen kan met name voordelig gebruikt worden voor de opslag van coëfficientinfcrmatie voor de opgemelde vektorbewerkingen, en ten aanzien van het al dan niet mee-integreren geldt, hetzelfde wat eerder voor het besturingsgeheugen is gesteld.
20 Het is gunstig als genoemde derde ingang selektormiddelen be vat om een selekteerbare aansluiting te vormen op genoemde eerste en tweede bus. De arithmetische en logische eenheid kan bewerkingen op 1 dan wel twee operanden uitvoeren. Door deze laatste voorziening is het dan mogelijk cm deze enkele operand steeds op dezelfde ingang van de 25 arithmetische en logische eenheid te presenteren, zodat deze laatste eenvoudiger gekonfigureerd kan worden.
Het is gunstig als tijdsbesturingsmiddelen voorzien zijn cm een eerste instruktiecylcus te besturen dewelke coincident bevat: - adresberekening voor een datageheugen inclusief bijbehorende geheugen-30 toegang on in de naastvolgende instruktiecyclus een operand voor de busverbindingsmiddelen beschikbaar te stellen; - een informatietransport over tenminste één bus van de busverbindingsmiddelen; - en een informatiebewerking in tenminste één der twee elementen arith-35 metische en logische eenheid en vermenigvuldigingselement op een in die instruktiecylus over de busverbindingsmiddelen getransporteerde operand cm in die instruktiecyclus een resultaatoperand te vormen ter beschikbaarstelling van deze resultaatoperand voor transport over de 8304442 ' # i EHN 10.886 5 - · " .
busverbindingsmiddelen in de eerstvolgende of een latere instruktiecyclus. Zo is tijdens één instruktiecyclus een zekere mate van parallellisme te realiseren.
Het is gunstig als een cyclusselektor (FQR) aanwezig is met 5 een eerste en een öreede stand om in de eerste stand genoemde eerste instruktiecyclus te besturen en in de tweede stand een tweede instruktie-cyclus met een lengte die de helft is van die van de eerste instruktiecyclus, welke tweede instruktiecyclus coincident bevat: - adresberekening voor een datageheugen voer het vormen van een adres 10 voor de naastvolgende instruktiecyclus; - geheugentoegang in een datageheugen middels een in de naastvarige instruktiecyclus berekend adres cm in de naastvolgende instruktiecyclus een operand voer de busverbindingsmiddelen beschikbaar te stellen; - een informatietransport over tenminste één bus van de busverbindings- 15 middelen; - een informatiebewerking in tenminste één der twee elementen arithme-tische en logisch eenheid en vermenigvuldigingselement op tenminste één in die instruktiecyclus of in een eerdere instruktiecyclus over de busverbindingsmiddelen getransparteerde^pif’in liet interval van 20 diezelfde instruktiecyclus plus de eerste naastvolgende een resul-taateperand te vormen ter beschikbaarstelling voor transport daarvan over de busverbindingsmiddelen van deze resultaatqperand in de tweede naastvolgende of in een latere instruktiecyclus, dat daartoe uitgangs-registers voorzien zijn aan het vermenigvuldigingselement, het eerste 25 lees-schrij fgeheugen, welke uitgangsregisters in genoemde eerste stand van de cyclusselektor transparant aanstuur baar zijn, en dat ingangsregisters van arithmetisebe en logische eenheid en vermenigvuldigingselement voorzien zijn, die in beide standen van de cyclusse-lektcr transparant aanstuurbaar zijn. Door de extra registers tussen 30 te schakelen vindt een ontkoppeling plaats, zodat de signalen aan de ingang daarvan (resultaat van een bewerking) ontkoppeld zijn van de signalen aan de uitgang van deze registers (resultaat van een voorgaande operatie). Door deze ontkoppeling kan een versnelling bereikt worden zonder dat een snellere technologie gebruikt hoeft te warden of een 35 hogere klokpulsfrekwentie opgewerkt. De verwerkingssnelheid wordt verder verhoogd door uitbreiding van het parallel-pijplijnen, zoals nader zal worden uitgelegd. Als klein nadeel staat daar tegenover dat het programmeren wat gekcmpliceerder wordt omdat elk instruktiewoerd elementen moet 8304442 - ---— PHN 10.886 6 i ' % bevatten van operaties waarvan de verdere afloop pas door latere in-struktiewoorden wordt bestuurd.
Enkele verdere voordelige details zijn in verdere ondercon-clusies vermeld.
5
Korte beschrijving van de figuren:
De uitvinding wordt hierna uitgelegd aan de hand van enkele figuren. Eerst wordt daarbij een algemeen blokschema van een voorkeursuitvoering besproken, daarna enkele detailschema's en werkingen.
10 Figuur 1 geeft een globaar blokschema van een dataprocessar volgens de uitvinding; figuur 2 illustreert de vier types uitvoerbare instrukties; figuur 3 geeft een tijdsdiagram van de uitvoering van een standaardinstruktié in een normale cyclus; 15 figuur 4 geeft een tijdsdiagram van de uitvoering van een standaardinstruktié in een versnelde cyclus; figuur 5 geeft een blokdiagram van een adresberekeningseenheid; figuur 6 illustreert de instruktieverzameling van een adresberekeningseenheid; 20 figuur 7 illustreert de schuif/herformatteringseenheid; figuur 7a geeft de daarbij te realiseren funkties; figuur 8 illustreert de arithmetische en logische eenheid; figuur 9 illustreert het lokale werkgeheugen daarbij; figuur 10 illustreert de seriële data-uitvoer; 25 figuur 11 illustreert de seriële data-invoer; figuur 11a illustreert de parallelsgewijze data in/uitvoer; figuur 12 illustreert het programnastatusregister; figuren 13 a, b, c, d illustreren een deel van de instruktiecode; figuur 14 illustreert het vermenigvuldigingselement.
30
Beschrijving van een voorkeursuitvoerinq:
Figuur 1 geeft een globaal blokschema van de dataprocessar volgens de uitvinding. De interne verbinding wordt geëffektueerd door een eerste 16-bits ïnformatiebus 22 en een tweede 16-bits informatie-35 bus 20. De schakeling bevat een aantal registers, waarvan er een deel rechtstreeks op één of beide bussen is aangesloten, namelijk de elementen 24, 26, 34, 46, 48, 50, 56 (deze laatste twee via een selektie-element), 70, 72, 74, 88, 100, 104, 106, 118, 120, 124, 126. Element 30 8 3 0 4 £ * ? * * * * \ PHN 10.886 7 - - -·" * * is een prograitmateller, en adresseert een progranmageheugen 28 met een kapaciteit van 512 woorden a 40 bits, die in het uitgangsregister 26 kunnen worden geladen. Van deze instrukties wordt de werking nader uitgelegd: de meeste bits besturen verdere funkties in de rest van de scha-5 keling via eenvhoudshalve niet nader aangegeven verbindingen/dekodeurs.
Een 16-bits deel kan bij 1 type instruktie aan beide databussen paral-lelsgewijze toegevoerd warden. Erogrammateller 30 is laadbaar ofwel door 9 bits uit het instruktieregister 26, ofwel door een adres uit selekterend register 24, ofwel door een adres uit 8-woards-stapelregis-10 ter 158. Register 24 werkt als interruptsadresregister en is onsymne-trisch tussen beide bussen geschakeld (namelijk op dezelfde manier als later te bespreken elementen 34, 70 , 78: unidirektioneel met bus 22, bidirektioneel met bus 20). Deze beperking is niet essentieel, bij een langer instruktiewoord zou het aantal verschillende te besturen funkties 15 groter en dus een universeler aansluitpatrocn mogelijk zijn. Bij behoefte wordt geheugen 28 niet mede geïntegreerd, maar als "los" geheugen uitgevoerd, cm prograitmeer baarheid te vergemakkelijken: dan worden veertig extra pinnen aan de geïntegreerde schakeling voorzien cm instruktieregister 26 van informatie te voorzien. Van deze 40 zijn er min-20 stens 9 bij voorkeur bidirektioneel werkzaam om een adres aan het externe geheugen toe te voeren. In een voorkeursuitvoering (niet getoond) is dit laatste aantal gelijk aan 16 gekozen, dus even breed als de databussen. De operatie van deze veertig aansluitpinnen is dan in tijdnulti-plex: afwisselend adres en data.
25 Element 90 is een datageheugen dat in dit uitvoeringsvoorbeeld is gerealiseerd als een alleen-leesgeheugen van 512 woorden a 16 bits.
Bij behoefte wordt geheugen 90 niet mede geïntegreerd, maar als "los" geheugen uitgevoerd, cm de prograitmeer baarheid te vergemakkelijken: dan worden zestien extra pinnen aan de geïntegreerde schakeling voorzien 30 cm element 88 van informatie te voorzien. Van deze 16 zijn er 9 bidi- =·.
rektioneel werkzaam cm een adres aan het externe geheugen toe te voeren.
Deze worden weer tijdgemultiplext bedreven. Voorts zijn elementen 36, 102 datageheugenmodules, elementen 38, 92, 114 adresberekeningseenheden, elementen 66, 78 selektors voor de twee bussen. De registers 48, 100, 106 35 behoren bij de adresberekeningseenheden die nader zullen warden uitgelegd aan de hand van figuur 5. Verder hebben sormige registers als getoond (bijvoorbeeld 88, 104, 46, 72, 74, 34) selekterende aansluitingen naar de twee bussen. Registers 50, 56 zijn als al dan niet transparante 8304442 i ' % PHN 10.886 8 - - -·" “ · registers werkzaam. Element 58 is een 16 x 16 bits verrrenigvuldigings-element met bijbehorend besturingsregister 70. Elenent 64 is een 40-bits accumulatoropteller. Element 68 is een 40-bits accuirulatorregister. Element 78 een bidirektioneel werkende selektor. Elenent 122 is een 5 arithmetische en logische eenheid. Element 116 is een geheugen net 3 aansluitingen (ports) dat gebruikt wordt als een verzameling kladblok- of werkgeheugens. Voorts zijn elenent 128 een invoer/uitvoerbesturingsele-ment, en de elementen 80, 82, 84, 86, 130, 132 invoer/uitvoereenheden voor koirmunikatie met de buitenwereld.
10 De registers hebben de volgende funkties: 24 : instantaan-adresregister voor RAM 36 (ARA) 46 i dataregister op de uitgang van RAM 36 (DRA) 106 ; instantaan-adres voor RAM 102 (ARB) 104 : dataregister op uitgang RAM 102 (DRB) 15 50, 56 i twee al dan niet transparant werkende registers aan de in gangen van het vermenigvuldigingselement. Gedurende een machinecyclus verschijnt op de uitgang van het betreffende register ófwel dat wat op de ingang arriveert (transparant), ófwel dat wat in het register zelf staat (niet-transparant). 20 Aan het einde van zo een cyclus wordt altijd in het re gister opgeslagen wat op dat moment op de uitgang van het register staat (MXL, MXL) 60 : produktregister (PR) 68 : accumulatorregister (ACR) 25 72/74 s registerdelen voor respektievelijk het meest-signifikante em het minst-signifikante produktgedeelte (MSP, LSP) 70 s register voor het besturen van het verschuivingselement 62 wat betreft de verschuiving en de formaatselektie; en eventuele bitreversie (BSR) 30 118, 120 : twee al dan niet transparant werkende registers aan de ingang van ALU 122 (AXL, AYL) 116 : vijftien kladblokregisters (R0 ... R14), fysiek werkt dit als een geheugen met drie onafhankelijke toegangsmogelijkheden met evenzovele onafhankelijke adressen, en voorzien 35 van twee data-uitgangen en één data-ingang 40, 94, 108 : basisadresregisters (AA, RA, BA) 42, 96, 110 : verschuivingsadresregisters (AS, RS, BS) 44, 98, 112 : adresmaskeringsregisters (AM, RM, BM) 8304442 * „4 Ίΐί ΡΗΝ 10.886 9 - .. · 84, 130 : seriële uitgangsregisters voor de twee bassen (SOX, SOY) 82, 132 : seriële ingangsregisters voer de twee bassen (SIX, SIY) 86 : gemltiplext parallel in/uitgangsregister (PO, PI) 80 : additioneel parallel uitgangsregister (ADO).
5
Fonktionele beschrijving;
De dataprocesscr kan aider synchronisatie door een niet separaat aangegeven klok tot 10 miljoen instrukties per sekende uitvoeren.
Dit wardt gerealiseerd door dat meerdere instrukties parallel kunnen 10 vrorden uitgevoerd middels een pijplijnarganisatie. Daarbij zijn de twee parallel funktionerende databussen werkzaam om het transport snel te maken. De kamunikatie met de buitenwereld wordt verzorgd door krachtige I/O-aanpaseenheden zowel voer seriële als parallele kommunikatie. Er zijn drie datageheugens voorzien, namelijk twee lees-schrijfgeheugens 15 en één alleen-leesgeheugen die alle voorzien zijn van een eigen adres-fcerekeningseenheid. De arithmetische en logische eenheid 122 heeft een nader te bespreken instruktieverzameling. Het vermenigvuldigingselement 58 is gekembineerd net een 40-bit accumulator 64/68 en schuif eenheid 62 voor algemene doeleinden.
20
Uittreksel van het instruktiebestand:
Figuur 2 illustreert de vier types uitvoerbare instrukties. De eerste twee bits geven het type aan. De eerste arithmetische instruktie bestuurt parallel een bewerking in de arithmetische en logische eenheid, 25 een bustransport over ten hoogste twee bussen, en ten hoogste drie adresberekeningen. De tweede arithmetische instruktie is van de eerste de tegenhanger en bestuurt een bewerking in het vermenigvuldigingselement. Daarbij bestuurt het veld AINS/OPS, respektievelijk MINS de bewerking, SX/DX, respektievelijk SY/DY de bronelementen, respektievelijk 30 bestenmingselementen op de beide bussen, RFHE wenkt als adres voor lokaal geheugen 116, terwijl ACUA, A3DB, ACUR als besturing voor de adresbewerkingselementen werken.
In de derde, de aftakinstruktie, bevatten de bits 3 tot en met 18 een adres, waarheen de aftakking gericht is. BR geeft het type 35 van aftakinstrukite aan en CCND de voorwaarde. De bitposities 2 en 27 tot en met 39 zijn loos.
In de vierde, direkt-laden instruktie, geeft het veld DATA de op de bus te transporteren informatie aan, en de overige velden werken 8304442 PHN 10.886 . 10 - - i ' * als in de arithmetische instrukties. De details van deze instrukties worden nader besproken.
Onder standaardinstrukties kan elke éénwoords instruktie in 200 nsek worden uitgevoerd. Onder zekere prograinrnabesturlng kan dit 5 gehalveerd worden tot 100 nsek. Dit wordt gedaan door het pijplijnprincipe verder uit te werken, hetgeen nader zal warden geëxpliceerd. In • dit verband geeft figuur 3 een tijdsdiagram van een standaar 200 nsek-instruktiecyclus. Het tijdsdiagram van een versnelde instruktiecyclus in figuur 4 zal later worden besproken. In figuur 3 geeft regel 200 de 10 volgorde van instruktietijdsintervallen ter lengte van 200 ns. Door scharende lijnen zijn de aansluitingen met vorige/volgende intervallen aangegeven. Regel 202 geeft de operaties voor het ophalen van operanden. Blok 1 biedt tijdsruimte voor het eventueel berekenen van een leesadres. Door de organisatie der afzonderlijke geheugens 36, 102 en 90 kan dit 15 in een willekeurige kombinatie van deze drie geheugens plaatsvinden (eventueel zelfs in alle drie tegelijk). Voorts wordt het desbetreffende geheugen uitgelezen. Voor zover een geheugen een operand moet leveren, is in blok 2 op deze regel de informatie van het betreffende adres dat geheugen geldig qp de uitgang. Cp regel 204 wordt de verwerking van de 20 data gesymboliseerd. Blok 1 biedt tijdsruimte voor het transport van de data qp een der beide (of beide) transportbussen, alsmede, voor zover van toepassing, voor de eigenlijke bewerking in vermenigvuldigingsele-ment en/of arithmetische en logische eenheid. Onder omstandigheden zal zo'n bewerking echter niet worden geaktiveerd, bijvoorbeeld wanneer 25 slechts een register-naar-register overdracht wordt uitgevoerd. Gedurende blok 2 qp deze regel is de eventueel zo verkregen informatie geldig qp de uitgang van het betreffende verwerkingselement. Regel 204 geeft aan de verdere af voer van de zo gevormde informatie. Hier biedt blok 1 ruimte voor berekenen van een adres in een der beide (of beide) lees-30 schrijf geheugens. Blok 2 biedt tijdsruimte voor het transport over één of beide tussen 20, 22, eventueel naar een lees-schrij fgeheugen, waartoe dan in blok 1 van regel 206 een adres is berekend. Van begin tot eind van een instruktie zijn er aldus drie blokken van 200 nsek. Gedurende het tweede van deze blokken kan er evenwel al weer een adresberekening 35 voor de eerstvolgende instruktie plaatsvinden. Gedurende het derde blok van deze cyclus kan al weer de verwerking (vermenigvuldigingselement cum accumulator en/of arithmetische en logische eenheid) voor de eerstvolgende instruktie plaatsvinden. Bij het uitvoeren van een instruktie, 8304442 ' # i PHN 10.886 11 - als beschreven/ heeft de bit FQR in het progranmastatusregister PST in element 34 de waarde "0".
Nadere beschrijving- van de subsystemen: 5 1) Erogranmageheugen 28
Dit wordt geadresseerd door progranmateller 30. Deze bezit de incrementsfunktie (adres +1) en de "constant"-funktie (adres ongewijzigd) . Voorts zijn de volgende funkties uitvoerbaar: - een aanroep (CALL) -instruktie ; 10 - een spreng (JUMP)-instruktie; - een terugkeer (RETURN)-instruktie.
De progranmateller 30 staat onder besturing van besturingseenheid 31 welke een terugstelingang 33 bezit ai een onderbrekeingsingang 35. De toestand wordt mee bestuurd door: 15 - register 32, dat een instruktieherhaling aangeeft; - registerbank 34, dit bevat in register PST conditie-infarmatie voor de genoemde instruktiekategariëen, ai verder instruktiecyclus informatie (ïQR) en informatie betreffende de toelaatbaarheid van onderbrekingen.
20 Deze registers 32, 34 kunnen worden geladen (34 kan ode als informatiebron dienen) vanuit bus 20: ze zijn dus onsynmetrisch met de beide bussen verbonden.
De eigenlijke progranmateller 30 (9 bits) vertegenwoordigt de volgende funkties: 25 - bij het ophalen (fetch) van elke instruktie uit geheugen 28 naar het instruktieregister 26 wordt de progranmateller opgehoogd. Bij het uitvoeren van één van de volgende, qp zichzelf elk conventionele instrukties wordt de waarde van het adresveld daar als nieuw adres naar de progranmateller overgevoerd: 30 sprenginstrukties '(indien uitvoerbaar) aanroepinstrukties (indien uitvoerbaar).
Bij laatstgenoemde (call)-instrukties wordt de stand van de progranmateller na incrementering met +1 cp het bovenste register van de stapel (8) registers 158 geschreven. Als een terugkeer instruktie wordt uitge-35 voerd, wordt de inhoud van het bovenste register van de stapel naar de progranmateller overgevoerd. Het onderbrekingsadres uit register 24 wordt naar de progranmateller cvergevoerd als de anderbreekbits (BIT) cp ingang 35 de waarde 0 krijgt, terwijl de onderbreking is toegestaan 8304442 PHN 10.886 12 - -
ï ' V
doordat de desbetreffende toesternmingsbit IE van het register PST de waarde ”1" heeft en de met 1 geïncrementeerde waarde van de programna-tellerinhoud op het bovenste stapelregister wordt geschreven.
De registerstapel bevat 8 registers van 9 bits in een laatst-5 in-eerst-uit organisatie zodat een neststruktuur van ten hoogste acht niveaus toelaatbaar is aider de sutroutines/onderbrekingen.
2) De datageheugenmodules 36, 102, 90.
Het alleen-leesgeheugen 90 heeft een kapaciteit van 512 woorden van elk 16 bits, de andere twee modules elk van 256 woorden van elk 10 16 bits. De adreslengte is 9, respektievelijk 8 bits. De data-ingangen van de geheugens 36, 102 zijn onsymmetrisch op de bussen 20, 22 aangesloten. De data-uitgangen zijn middels selektors symmetrisch op de bussen aangesloten, waarbij de data naar keuze over 1 of over beide kan warden getransporteerd. Bij aktivering van de hier besproken langzame 15 instruktiecyclus zijn de uitgangsregisters 46, 88, 104 voortdurend transparant.
3) Adresberekeningseenheden.
De adresberekeningseenheden 38, 92, 114 zijn In dit uitvoe-ringsvoorbeeld identiek, afgezien van hun woordlengte van 8, respektie-20 velijk 9 bits. De adresberekening kan worden uitgevoerd coëxistent met twee arithmetische/transporteer (move)-instrukties en de laad-direkt (load immediate)-instruktie: daardoor zijn de adresberekeningen snel uitvoerbaar.
Het blokschema van zo een adresberekeningseenheid in figuur 5 25 toont de fcus 208 (één van de twee bussen 20, 22 in figuur 1), en verder alle elementen tot aan de aansluiting 232 voor de eigenlijke geheugen-matrix cum adresdekodeur. Aan de ingangszijde zijn er drie registers 210: voor het adresmasker; 212: voor het eigenlijke adres van waar de berekening begint; ' 30 =213: voor de verschuiving (offset).
De inhoud van deze drie registers kan bij het begin van een onderbreekoperatie behouden blijven voor het latere gebruik bij een verdere operatie. Element 214 is een arithmetische en logische eenheid van beperkte (ten opzichte van element 122 in figuur 1) bitbreedte en 35 oper at ierepertoire. Het element 206 is een maskeer element, waarin door de inhoud van maskeerregister 210 bitsgewijze al dan niet het bereke-ningsresultaat van element 214 kan warden doorgelaten of geblokkeerd.
De uitgang van maskeerelement 216 is verbonden met A-register 212. Ver- 8304442 * » FHN 10.886 13 · der kan in reverseerelement 218 de bitvolgarde achterstevoren gekeerd warden. Het resultaat van element 218 kan opgeslagen worden in het eigenlijke adresregister 230. Dit laatste kan ook direkt door een informatie op (een deel van) de lijnen van de 16-bits biis worden gevuld.
5 Het gébruik van maskering in element 216 kan gebruikt worden cm adressen volgens een bepaalde mcdulewaarde cyclisch te doen dóórlqpen, het ankeren van de bitvolgarde wordt in bepaalde versies van het berekenen van fouriertransformaties aangewend. Bij het ontvangen van een gemaskeerde waarde ("0") in adresregister 230 blijft de betreffende bit-10 positie in register 230 ongewijzigd. Als daarentegen een doorgelaten bit de waarde "0” heeft, wordt deze wel op de ter zake dienende bitpositie cpgeslagen. Onder omstandigheden kan de desbetreffende positie aan een reversie-cperatie onderhevig zijn geweest. De besturing van register 230 is ten deze aangegeven door een gestippelde verbinding. In feite is 15 er een besturingseenheid die hierna verder beschouwde operaties bestuurt.
In dit verband illustreert figuur 6 de instruktieverzameling van de adresberekeningseenheden. Ze warden bestuurd, door respéktievelijke velden in het instruktiewoard: C31-33 vaar element 38, C34-36 voor element 114, C37-39 voor element 92 (dit woord staat in register 26, waar-20 over eerder gesproken is). Figuur 6 is verdeeld in twee helften; de bovenhelft geldt als de betreffende eenheid niet als informatiebestem-ming geselekteerd is onder besturing van de later de bespreken DX en/of DY velden van het micro-instruktiewoord. In het tegenovergestelde geval geldt de onderste helft van de figuur. De eerste kolom geeft de half-25 afkorting (mnemonics), de tweede kolom het bitpatroan, de derde tot zesde kolomen voor elk van de vier registers 230, 212, 213, 210 de nieuwe inhcud, waarbij "BUS" betekent dat het register met nieuwe informatie vanuit de bus wordt gevuld. Daarbij betekent (A+1)mM dat het adres (A+1) door de inhcud van het maskeerregister M wordt gemaskeerd; ' 30 en overeenkomstig voor bijvoorbeeld A-1, A+S, en zo Verder. "BR" he te kent dat de bitvolgarde wordt gereverteerd. Bij de instruktie LALL wordt de inhcud van de bus (voor zover toegevoerd) bitsgewijze geïnverteerd. Tijdens het laden van de betreffende adres terekeningseenheid, al dan niet in een "direkt-laad,,-instruktie beïnvloedt de inhcud van 35 het M-register 210 niet het eigenlijke laden van het AR-register 230.
Ook het reverseren van de bitposities wordt dan niet gehruikt.
4) Het vermenigvuldigingselement 58.
Het vermenigvuldigen wordt geheel parallel uitgevoerd volgens Q 1 n i. /, /. o y v y ^ t * % PHN 10.886 14 - het Booth algorithme, beschreven in "A signed binary multiplier technique"/ door A.D. Booth/ Q.J. Mach. Appl. Math/ 4 (1951) 236-240/ en gewijzigd als aider meer gepulbiceerd in "A proof of the modified Booth's algorithm far multiplication"/ door L.P. Ribinfeld, IEEE Trans.
! 5 Computers, (oktober 1976) p. 1014-1015. Uit twee 16-bits qperandi aan de uitgangen van registers 50/ 56 wordt in één machinecyclus een 32-bits produktwoord gevormd. Het vermenigvuldigingselement is daarbij zo uitge-voerd dat de meest-signifikante bit werkt als hebbende een negatieve waarde (tekenbit). Bij het verwerken van qperandi in meervoudige preci-10 sie bevatten de minder-signif ikante onderdelen daarvan dus geen tekenbit en moet de leidende bitpositie dus altijd met een nul worden gevuld. Op zichzelf is die suppleren beschreven in de oudere, niet vóórgepubliceerde Nederlandse Octrooiaanvrage 8304186 (PHN 10.865) van dezelfde aanvrager die hierin is geïncorporeerd bij wijze van referentie.
15 Aan de uitgang van element 58 is voorzien van een accumulator- opteller 64 en een accumulatorregister 68, beide met een breedte van 40 bits. Indien noodzakelijk wordt de tekenbit in register 60 (meest-signifikante bit van een produkt) gekopieerd op meer-signifikante bits tot een aantal van 40 bits in totaal is bereikt. Verder zijn er twee 20 vlagbits voorzien in het programnastatusregister PST in element 34: a) als de toelaatbare grenzen van het waardebereik worden overschreden, wordt een overstroombit OVFL = 1 gemaakt. De desbetreffende logische funktie is een EXCLüSIEF-OF-funktie tussen de twee meest-signifikante bits van het veertig-bits accumilatie-optelresultaat.
25 b) een tweede statusbit SGNM geeft het teken aan van het accumulatie-resultaat. De desbetreffende logische funktie is een EXCHJSIEF-OF-funktie tussen OVFL en de op één na meest-signifikante bit van het accumulatie-optelresultaat.
Als OVFL de waarde "1" krijgt tengevolge van een arithmetische instruk-30 tie worden de bits OVFL, SGNM vastgezet. Ze kunnen dan slechts onder programmatische besturing worden gewijzigd, bijvoorbeeld doordat de in-houd van het prograirmastatusregister in de arithmetische en logische eenheid aan een wijzigingsoperatie wordt onderworpen. Zolang als de bit OVFL de waarde "0" houdt, worden deze beide statusbits af gevraagd na 35 elke arithmetische instruktie die de accumulator gebruikt. Het accumu-latieresultaat wordt opgeslagen in register 66 en voorts toegevoerd aan een element 62 voor schuif-, extraktie-, en herformatteringsbewerkingen. De uitgang van accumulatorregister 68 is teruggekoppeld naar de accumu- 33 0 4 4 4 2 Λ » EHN 10.886 15 -- latie-opteller 64.
5) Schuif element 62.
Figuur 7 illustreert schuif element 62, waarin mede herfonnat-teringsoperaties worden uitgevoerd. Bovenin de figuur arriveren de 5 40 bits vanuit accumilatoropteller 64. De "sign-extension"-operatie werd daarbij voorzien cm zo mogelijk de overstrocmkonditie te vermijden.
Deze kant voor als door optelling van een aantal opvolgende getallen met hetzelfde teken de som te groot zou warden. Dit. gevaar is nu verkleind. Aan de ingang van extractor 400 wordt de meest-signifikante bit 10 AOC39 nog eens vijftien maal op hoger-signifikante bitposities geëxten-deerd, weer voor het detekteren van eventuele overstroomkcndities. In schuif element 400 wordt uit de zo ontvangen 55 bits een 32-bits (dubbel-lengte) woord geëxtraheerd. links in de figuur is aangegeven een register (70) BSR, waarin een vier-bits code (bit 0 ... 3) staat. Deze 15 wordt door dekodeur 402 gedekodeerd. In dit verband geeft figuur 7a de zestien verschillende extr aktieraogel ij kheden; de accumlatorbits worden nog aangevuld door een minst-signifikante "0". Door de bits BSR ¢)...3 met codes 0000..1111 worden zo zestien gestaffelde extrakten van elk 32 bits gevormd. Het vullen van register 70 moet wel minstens een in-20 struktiecyolus vóór het eigenlijke extraheren gebeuren. De bits BSR 4, 5 worden gedekodeerd door dekodeur 404 die de herformatteerinrichting 406 aanstuurt. De 32 geëxtraheerde bits heten E31 ... EO. De waarden van de bits BSR 4, 5 besturen de volgende her formatter ing: 00 : het geëxtraheerde 32-bits woord is als twee halfwoorden voor een 25 gebruiker beschikbaar.
10 ï de meest-signifikante bit van het minst-signifikante halfwoord wordt "0" en de rest één positie naar de minder-signifikante zijde geschoven, de laatste bit van het extraktieresuitaat wordt dan onderdrukt.
30 01 ï als 00, maar de bits van het minst-signifikante halfwoord zijn ge- reverteerd. De elementen 72, 74 zijn registers, de selektie aan de uitgang daarvan naar de twee bussen is hier (niet in figuur 1) door afzonderlijke selektors 73, 75 aangegeven. De extraktor 400 geeft naast de aan element 406 af te geven 32 bits nog 9 hoger-signifikante bits 35 E31 ... E40 af aan detektor 408 die een overstrocmdetektor vormt (en ook bit E31 ontvangt). Als er bij deze 9 bits een ontoelaatbare (van bit E31 verschillende) bitwaarde optreedt, wordt bit OOR in het programma-statusregister op "1" gesteld: de desbetreffende meer-signifikante bits --—— 8304442 PHN 10.886 16 moeten irrmers herhalingen zijn van de teken-indicerende bit E31. Het MINS-veld in de instruktie, dat de funkties bestuurt, wordt nader uitgelegd.
6) De ALU-eenheid 122.
5 Figuur 8 geeft een blokschema van de arithmetische en logische eenheid 122 en omgeving. De blokken 66, 118, 120, 122 zijn in figuur 1 getoond. Blok 119 stelt voor een dekodeur voor het veld OPS van de instruktie. Blok 121 stelt voor een dekodeur voor het blok AINS van de instruktie. Blok 125 stelt voor een dekodeur voor de terzake dienende 10 SY, SY, DX velden van de instruktie. Aan de uitgang van ALU-element 122 is opgenamen blok 123 voor de schuif- en noteringsfunkties die nader worden besproken. Het progranmastatusregister PST is middels niet aangegeven dekodeerelementen aangesloten op de ALCJ 122 en de schuif/note-ringsfunkties in blok 123.
15 De eenheid 122 werkt in 2-ccmplementnotatie. Er zijn vier vormbare vlagbits: Z: resultaat van de ALU-bewerking is "nul"; N: resultaat (als 2-ccmplementgetal geïnterpreteerd) is negatief; C: er is een overdrachtssignaal, wat in tekenloze arithmetische bewer-20 kingen voorkomt bij de minder-signifikante delen van multiprecisie-woorden; O; overstrocmkonditie, hetgeen in geval van 2-cdrplementnotatie een fout inpliceert. De bit "Z" wordt dus door detekteren van alle bits tesa-men van de operand gevormd; de bits C en N door detektie van één 25 enkele bit, terwijl de overstroamkonditie op overeenkomstige wijze wordt gedetekteerd als eerder beschreven voor het vermenigvuldigings-element.
De volgende operaties zijn gedefinieerd: 1. 031 logisch complement.
30 2. AND logische EN-funktie.
3. OR logische OF-funktie.
4. EXOR logische EXCLUSIEF-OF-funktie.
5. ADD optellen.
6. XADD uitgebreid (dit is multiprecisie) optellen; dit betekent dat 35 bij eerdere behandeling van een minder-sign if ikant deel van de operand een eventueel overdrachtssignaal wordt opgeslagen ter latere behandeling bij een meer-s ign if ikant deel van de operand.
8304442 PHN 10.886 17 - r * 7. SUB aftrekken.
8. XSUB uitgebreid (dit is nultiprecisie) aftrekken; ook hier wordt onder omstandigheden een bitsignaal doorgegeven tussen achtereenvolgens behandelde delen van een operand.
5 9. NEG arithmetisch inverteren.
10. XNEG uitgeireid (dit is nultiprecisie) inverteren.
11. CNEG conditioneel inverteren.
12. - 13.INC incrementeren.
10 14.XENC uitgebreid (dit is nultiprecisie) incrementeren.
15. DEC decrementeren.
16. XDEC uitgeireid (dit is nultiprecisie) decrementeren.
17. NGP geen aktie, vlagbits behouden.
18. PASS operand ongewijzigd doorlaten.
15 19.SWAP meer-signifikante ei minder-signifikante byte werden cmgewis- seld.
20. CSUB konditieneel aftrekken.
21. - - 22.ADDM meest-signifikante bit van operand B optellen bij operand A.
20 23.XSGN N-vlag bit (die het teken aangeeft) kopiëren over 16 bits; dit is dus een "sign extensie" zoals bij het vermenigvuldigings-element werd bespraken.
24. ASL arithmetische verschuiving naar links (meer-signifikante zijde).
25. XASL uitgebreide verschuiving idem.
25 26.1SL logische verschuiving naar links.
27. LRQL logische rotatie naar links.
28. ASR arithmetische verschuiving naar rechts.
29. XASR uitgebreide verschuiving volgens 28.
30. LR logische verschuiving naar rechts.
30 31.LROR logische rotatie naar rechts.
32.NULL genereer uitgang "0".
In bovenstaande lijst warden logische operaties pp bitniveau uitgevoerd. Bij arithmetische operaties wordt de tekenbit, respektieve-lijk -bits, onder omstandigheden qp specifieke manier behandeld. Bij de 35 roteercperaties wordt de uitgeseboven bit aan de tegenovergestelde zijde weer aan de operand toegevoegd. Voor details over de deelvelden van de instruktie wordt verwezen naar figuren 13 (a-d). De aansluiting van progranomastatusregister PST (via een selektor) (¾) de tusverbindings- 8304442
V
EHN 10.886 18 · middelen is hier vereenvoudigd weergegeven.
Figuur 9 geeft details over de struktuur van de tweede accumulatarmiddelen. De accumulatorqpteller 122 is uiteraard gelokali-seerd in de ALU. Het geheugen MEM bestaat uit een geheugenbank van 2n 5 woorden elk van m = 16 bits. Het heeft een data-ingang Y en twee data-uitgangen OUT1 en OUT 2, telkens van mrbits breed. Er zijn drie afzonderlijke adresingangen ADRY, ADRÖUT1 en ADKCÜT2, elk van n-(hier n = 4) bits breed. Daarvan is het eerste een schrijf adres, de andere twse zijn leesadressen, elk voor de bijbehorende data-aansluiting. De drie aan-10 sluitingen kunnen tegelijkertijd en onafhankelijk in eenzelfde instruk-tiecyclus werkzaam zijn.
Interrupt adresregister 24:
Register 24 is vanuit één der bussen te laden en bevat een 15 adres, dat bij het begin van een interruptafhandeling naar de prograirma-teller.30 wordt overgevoerd.
7) Rrograirmastatusregister.
In dit verband wordt verwezen naar figuur 12 die de bitsge-wijze onderverdeling van het zestien-bits prograirmastatusregister (in 20 element 34 in figuur 1). De bits hebben de volgende betekenissen: φ : OVEL, en 1 s SGNM, de twee bij vermenigvuldigingselement en omgeving behan delde bits.
2 ï OOR, overstrocmkonditie van de extraktor 25 3-6 : Z.CNO, die vierbits die bij de ALU-eenheid zijn besproken, 7-9 s drie vlaggen, gereserveerd voor de adresberekeningseenheden; 10 : IE onderbreking wel/niet toegestaand 11 : PQR instruktiecyclusselektiebit, de laatste twee kunnen onder programmabesturing worden gewijzigd.
30 12-15 : niet gebruikt.
8) Invoer/uitvoerstatusregister (IOF).
Dit register is een deel van registerbank 34, die drie registers telt. Het bevat statusinformatie en vlagbits voor de kannunika-tie met de buitenwereld. De bits hebben volgende betekenissen: 35 SIXACK geeft de vuil ings toes tand aan van register 82 met geldige infar-madie. SIYACK doet dit met betrekking tot register 132. SOXACK geeft aan of register 84 geladen is met data. SOYACK overeenkomstig. PIACK: een overgang van laag-naar-hoog op de WR pin zet deze vlagbit qp "1" 8304442 EHN 10.886 19 · - onder synchronisatie door de niet aangegeven separate klok van de processor. Als de data uit het PI-register (86) gelezen wordt, wordt deze vlag weer op φ gezet. KffiCK: een overgang van laag-naar-hoog op de RD-pin zet deze vlagbit op "1” onder synchronisatie van de interne klok.
5 Als data in het PO (86)-register geschreven wordt, wordt deze vlag weer op φ gezet. Twee bits XFA, IEB in dit register bevatten door een gebruiker te definiëren vlagbits, die middels daartoe gereserveerde aan-sluitpinnen op de geïntegreerde schakeling kunnen worden afgevraagd tijdens het testen van sprcngkcndities.
10 9) Instruktieherhalingsregister 32.
Dit register 32 werkt als een hardware instruktieteller; als het met de waarde N geladen is, wordt de eerstvolgende instruktie N-maal herhaald. Bij elke uitvoering van (enige) instruktie wordt dit register gedecrsneuteerd, terwijl de programnateller in element 30 15 alleen geïncrementeerd kan werden als register 32 op nul staat. Het herhalen kan met name voordelig getruüct worden bij vektcrbewerkingen.
10) Beschrijving van de invoer/uitvoerstruktuur.
De SOX (84) en SOY (132)-aansluitingen kunnen data van de respektievelijke databassen afgeven naar de buitenwereld. Daartoe be-20 vatten ze elk een 16-bits register dat door een externe klakaansluiting synchroniseer baar is. Voorts ontvangen deze registers interne verzoek-, respektievelijk toestenmingssignalen als synchronisatievertanding voor een vulcperatie. Verder is telkens een voer instelbare teller aanwezig cm het aantal af te geven bits te signaleren.
25 De SIX (82) en SIY (130)-aansluitingen kunnen data van de buitenwereld ontvangen om deze aan de respektievelijke databussen af te geven. Daartoe bevatten ze elk een serieel ingangsschuifregister dat door een externe klokaansluiting synchroniseer baar is. Het ingangsschuifregister is parallel aangesloten cp een bufferregister cm de bus 30 te voeden. Tenslotte ontvangen deze registers interne verzoek-, respektievelijk toestenmingssignalen als synchronisatievertanding bij een leeseperatie uit het parallel register. Verder is telkens een voor instelbare teller aanwezig om het aantal bits te besturen dat parallels-gewijze in de bussen zal werden geladen.
35 De PI/PO (86)-aansluiting verzorgt paralleltranspcrt respek tievelijk naar en van de processor. Daartoe is telkens een 16-bits register voorzien.
De additionele uitgangsaansluiting ADO (80) verzorgt externe 8304442 PHN 10.886 20 - - ’ " ' « * overdracht van data of adressen, de laatste berekend in een adresbere-keningseenheid of in de arithmetische en logische eenheid. Hier is een selektief door beide tussen te vullen register voorzien. Deze struktu-ren worden nader beschreven aan de hand van enkele figuren.
5
Serie-aansluiting - statusregister (SIOST);
Dit is het laatste register van registerbahk 34 en bevat status informatie betreffende de seriële aansluitingen. Van de 16 bits bevatten de eerste vier bits SILK 3 ... 0 (in feite is bit SHX 0 de 10 eerste bit van dit statuswocrd) de woordlengte voor het serie-ingangs-schuifregister (van aansluiting SIX) -code 0000 betekent woordlengte 16 bits en zo verder totdat de code 1111 betekent woordlengte 1 bit. De volgordebits SOLX3 ... 0 geval dit zelfde aan voor de aansluiting SOX, de bits SILY3 ... 0 voor de aansluiting SIY, de bits SOLY3 ... 0 voor 15 de aansluiting SOY.
Het onderbrekingsmechanisme:
Externe onderbreeks ignalen worden gerepresenteerd door een laag signaal qp de pin INT gedurende tenminste 200 nsek. Deze pin wordt 20 elke instruktiecyclus afgevraagd, evenals de bit EI (toesteraningsbit) in het programmastatusregister. Als EI = 1 en INT = 0 wordt nog in dezelfde cyclus afgetakt naar het onderbrekingsadres (IAR-register), en bit IE qp "0" gesteld, terwijl het terugkeer adres (inhoud van programr mateller +1) qp de registerstapel wordt opgeslagen. Het omstellen van 25 bit IE qp "1" gebeurt onder prograimabesturing, waarna onder omstandigheden het afhandelen van een volgende onderbreking kan beginnen. Als daarna INT = 1 gedurende een hele instruktiecyclus, blijkt dat alle onderbreekverzoeken zijn behandeld. Daarna wordt het meest recente terugkeer adres van de stapelregisters teruggeroepen.
30 Door de omvang van de stapelregisters kunnen 8 opvolgende cnderbrekingsniveau's concurrent worden bijgehouden (nested). Dit zelfde geldt voor opvolgende onderbrekingsroutines.
Tenslotte is nog een terugstelpin voorzien on de (RST) -processor terug te stellen, als deze pin gedurende minstens 200 nsek een 35 laag signaal voert. Het signaal wordt in een vlagflipflqp qpgeslagen.
Invoer/uitvoerstruktuur:
Figuur 11a geeft een schematisch beeld van de invoer/uitvoer- 8304442 % > * PHN 10.886 21 - - -- ' - struktuur (parallel gedeelte). De tussen 20/22, een 16-bits selektar-struktuur SEL, tsree parallele registers Pl/PO, een drietoestandsboffer TRISTBUEF, de externe 16-bits bus D15 ... DO, een besturingseenheid PIOGCNTR, en de stuurbits PISCK, FOACK zijn getoond. De signalen RD 5 en WR, docar een externe inrichting af te geven, zijn reeds genoemd. De bits PIEQ/PORQ zijn verzoekbits naar buiten.
Figuur 10 geeft een schematisch beeld van één der twee seriële uitgangsaansluitingen. Het uitgangsregister (hier SOK) is dirékt aangesloten op de bus en voedt het uitgangsschuifregister SOXS. De voor in-10 stelbare teller CCÜNT als laadbaar door het SIQST-register, is mede aangegeven. Uitgangsinfoonatie mag pas in SQKS worden overgencmen als dit laatste geheel leeg is (bepaald door de tellerstand): daarop wordt SQXACR op "1" gesteld en mag nieuwe data worden toegevoerd, terwijl SOXRQ = 1 aangeeft een verzoek aan de buitenwereld, en de teller geladen 15 wordt. Het afsturen van de informatie naar buiten begint als de SOXEN-pin "1" wordt, terwijl synchronisatie plaatsvindt door klokpulsen op pin COX. Het drietoestandsbuffer TRIST wordt mede bestuurd door de SOXEN-waarde. Als de teller uitgeteld is, en er staat geen verdere data te wachten (SQftCK = 1) dan wordt bit SCKRQ op "0" gezet waardoor SOXS 20 en de teller in de "houd"-stand komen, zodat de laatst af gegeven bit op de pin DOX blijft. Als SOXEN naar "0" gaat, komt de uitgangsschakeling DOX veer in de hooginpedante uitgangsstand.
Figuur 11 geeft de seriële ingangsstruktuur (hier getoond voor de X-bus), met register SIX, ingangsschuifregister SIXS, voorinstel-25 bare teller CCÜN, besturings- en vlagbitposities. Als SIX intern als gegevensbron wordt geadresseerd, wordt de vlag SIXftCK qp "0" gezet in register IOF; hij is geldig in de eerstvolgende processarcyclus. In schuifregister SUS ontvangen data wordt overgencmen in register SIX als de tellerstand aangeeft dat de inschuif operatie is voltooid: dan wordt 30 ook de vlag SIXftCK hoog gemaakt cm aan de processor de beschikbaarheid van data te signaleren. Ter zelfdert ij d wordt de vlagbit SIXRQ hoog genaakt au aan de buitenwereld te signaleren dat schuifregister SIXS nieuwe informatie vermag te ontvangen, terwijl de teller weer wordt geladen net de lengte-aangevende bits SILX3 ... SILXp: als deze teller 35 weer is teruggesteld, is de volgende informatie kanpleet in schuifregister SIXS. De seriële inname begint zo gauw als de ingangsbit SIXEN hoog wordt na het hoog worden van SIXRQ. De synchronisatie wordt verzorgd door de seriële klok CIX. Als de teller geheel is teruggesteld en er is 8 3 Ö 4 £ / 9 * '-n <f 4 PHN 10.886 22 · nog informatie in register SIX niet over genomen, dan wordt de vlagbit SIXRQ op "p" gesteld zodat de teller en schuifregister SIXS direkt in de "HOUD"rmode komen.
5 Beschrijving van de versnelde warkmode:
Tot nu toe is de operatie van de processor met een 200 ns in-struktiecyclus beschreven. De processor kan door een verhoogd gebruik van pijplijnbewerking ook een instruktiecyclus van slechts 100 nsek implementeren. In dit verband wordt terugverwezen naar figuur 1: met 10 name nemen nu ook de registers 60 (aan de uitgang van het vermenigvul-digingselement 46, 104, 88 aan de uitgang der datageheugens) deel aan deze pijplijnstruktuur.
Figuur 4 geeft een tijdsdiagram van de operatie. Daarbij heeft de bit FQR in het prograirmastatusregister PST voortdurend de 15 waarde "1".
In de "MU"-instruktie kunnen de volgende operaties parallels-gewijze worden uitgevoerd: - een arithmetische/logische operatie - ten hoogste drie adresberekeningen voer de geheugens 20 - aanspreken van ten hoogste drie geheugenuitgangsregisters - datatransport qp één of beide bussen.
In de "vermenigvuldigings"-instruktie kunnen parallelsgewijze de volgende operaties warden uitgevoerdï - een vermenigvuldigingsqperatie 25 - een accumulatie/schuifqperatie (elementen 62, 64) - ten hoogste drie adresberekeningen voor de geheugens - aanspreken van ten hoogste drie geheugenuitgangsregisters - datatransport qp één of beide bussen.
In de "direkt-laden"-instruktie kunnen parallelsgewijze de 30 volgende operaties worden uitgevoerd: - transporteren van data uit het dataveld van de instruktie (in IR) naar een bestemming qp de X-en/of Y-bus - ten hoogste drie adresberekeningen voor de geheugens - aanspreken van ten hoogste drie geheugenuitgangsregisters.
35 In figuur 4 geeft regel 300 de achtereenvolgende cycli aan. Op regel 302 geeft blok 1 de adresberekening. Op regel 304 geeft blok 1 de "lees"-toegang middels het eerder berekende adres. Het opvolgende blok 2 geeft de tijd aan waarin de informatie geldig is in het uitgangs- 8304442 PHN 10.886 23 - register van het aldus aangesproken geheugen. Op regel 306 geeft blok 1 aan dat het transport over de bus (sen) plaatsvindt en eventueel de verwerking in fltCJ en/of vermenigvuldigingselement. Op regel 308 geeft blok 2 (dit is twéé blokken later dan het blok 1 op regel 306 waarin 5 de verwerking wordt geëntameerd) dat het bewerkingsresultaat geldig is in het uitgangsregister van het vermenigvuldigingselement, indien aangesproken. Anderzijds kan op overeenkomstige manier een bewerking in de ALÜ-eenheid worden uitgevoerd. Op regel 310 geeft blok 1 (in tijd vóór blok 2 op regel 308) dat de adresberekening voer de naastvolgende 10 schrijf operatie (voor het ber ekeningsresultaat) kan plaatsvinden. (in tijd vóór blok 2 cp regel 308). Op regel 312 geeft blok 1 aan dat een bus-transport en eventueel een schrijftoegang in een geheugen werden uitgevoerd.
Het instruktieregister moet nu elke 100 ns (dus 2x sneller 15 dan eerst) nieuwe informatie ontvangen. Het register BSR moet nu ook 1 * instruktiecyclus vóór de eigenlijke schuif/herformatteringsoperatie worden gevuld en moet dan minstens één instruktiecyclus geldig blijven.
De vlagbits EI (voor de onderbreking) en RESET (voor het terugstellen) werden nu elke 100 ns afgevraagd.
20 Een klein verschil met de operaties in de "lange" instruktie cyclus is dat nu de uitgangsregisters van de geheugens als branelementen voor de databus (sen) verken, in plaats van deze geheugens zelf. Verder moeten alle aftakinstrukties en anderireekaanroepen steeds gevolgd worden door een instruktie die geen operatie (NOP) impliceert: daarbij 25 worden de inhouden der registers dus behouden.
Nadere beschrijving van de instruktiestruktuur:
Terugverwijzend naar figuur 2, die de hoofdtypen instruktie-woorden geeft, warden hierna specifieke instruktievelden uitgelegd.
30 Figuur 13a geeft een tabel van het instruktieveld AINS van de arith-metische instrukties. De eerste kolom geeft de half afkorting. De tweede kolom geeft de binaire code. De laatste kolom geeft de werking op de vlagbits Z, N, C, O. Daarbij betékent in de eerste kolom een ster, dat hier slechts één operand wordt verwerkt, die dus noodzakelijkerwijze 35 via selektor 66 bij de arithmetische en logische eenheid moet arriveren.
In de vierde kolom geeft een kruisje aan, dat het vullen van de desbetreffende vlagbits wordt bepaald door het resultaat van de bewerking.
Een "nul" φ geeft aan dat de desbetreffende vlagbit op nul moet warden 8304442 PHN 10.886 24 · - "·.·- « < teruggesteld. Een horizontaal streepje geeft aan dat de vlagbit onder alle omstandigheden ongewijzigd blijft.
Het veld OPS selekteert de operanden voor de twee ingangen A (via register 120) en B (via register 118). Voor de twee operands in-5 strukties geeft bit C7 de sturing voor de B-ingang: "0" laat een operand van de bus 22 toe, "1" laat de in register 118 staande operand toe. Bit C8 geeft de sturing voor de A-ingang: "O” laat de operand van bus 20 toe, "1" laat de al in register 120 staande operand toe. Voor de één-qperandsinstrukties (door 'n ster in figuur 13a aangegeven) is register 10 118 in de "houd"-stand, terwijl de codes 00, 01, 10 achtereenvolgens register 120, bus 22 en bus 20 selekteren, om (¾) een desbetreffende operand de bewerking uit te voeren. Voor de operatie SWAP is register 118 in de houd-mode; code 01 selekteert bus 22, code 10 bus 20 voor de operatie; register 120 is transparant.
15 Figuur 13b geeft een tabel van het veld MINS van de arithme- tische instruktie. Er zijn zeven codebits voor 45 codes, zodat een zekere mate van vrijheid van definitie ontstaat om een gemakkelijker dekodering te kunnen realiseren. De codes vallen in vijf groepen uiteen, waarvan alleen de eerste geheel is gegeven. De eerste kolom biedt ruimte 20 voor de codebits. De tweede kolom geeft aan de selektiefunktie voor elementen 50/52. Hier kan dus een transparantie bestuurd warden (X) naar de bus, respektievelijk kan de inhoud van het register worden gebruikt (MXL). Tenslotte kan een faktor "-1" warden ingevoerd. De derde kolom geeft aan de selektiefunktie voor elementen 54/56. Hier kan een trans-25 parantie (Y) bestuurd warden naar de bus, respektievelijk kan de inhoud van het register worden gebruikt. (MXL); voorts kan de transparantie met geïnverteerd teken worden bestuurd. Voor een vermenigvuldigingsoperatie is steeds 200 nsek nodig. De vierde kolom geeft het zo gevormde produkt.
De tweede groep codes is identiek aan de eerste, terwijl 30 bovendien de accumulatoropteller 64 wordt geaktiveerd om de inhoud van register 68 met positief voorteken bij het produkt der twee faktoren op te tellen. De derde groep is identiek aan de tweede, behalve dat hier de inhoud van register 68 een negatief voorteken krijgt. De vierde groep is identiek aan de tweede, behalve dat hier de inhoud van register 68 35 over 15 bitplaatsen naar rechts wordt verschoven (vermenigvuldiging -15 met 2 ). De vijfde groep is identiek met de vierde behalve dat hier de (verschoven) inhoud van register 68 een negatief voorteken krijgt.
Figuur 13c geeft twee tabellen voor de bus 20, respektievelijk 8304442 EHN 10.886 25 - * 22 om aan te gevel, welke elementen als iron voer de bus mogen optreden. Hierin is RCM-element 90, ADO-element 80, RAMA-elemsnt 36, AKB-element 106, RAMB-element 102, IAR-element 24, SIX, SOC, PO, PI de elementen der in/uitvoerstruktuur, SIOST, PST, IOF de registers van bank 34, 5 BSR-element 70, MSP/LSP-elementen 72/74, Rp ... R14 de registers van bank 116, PINR hetzelfde als PI zander behandeling van pin PIQR.
Verder zijn ARR-element 100, ARA-element 48.
Figuur 13d geeft twee tabellen voor de velden DX, DY. Hier zijn elemental ACÜA, ACUB, ACftR, de adresberekeningseenheden van ge-10 heugens 36, 102, 90 achtereenvolgens. Daiarbij bepaalt het instruktie-veld voor deze adresberekeningseenheid welk lokaal register wordt gela den. Voor element 116 selekteert het veld R-file welk van de registers wordt geladen.
Tenslotte worden de aansluitpennen voor signalen beschreven.
15 CEK ï klok voor het synchroniseren van intern afgeleide kloksig- nalen.
RST : terugstelpin.
Dp ... D15 : bidiréktionelel/Odatapennen INT ; pen voor externe onderbreking.
20 IFA, IFB ï twee door de gebruiker te definiëren vlaggen.
A15 .. Ap i extra data-uitgangen (parallel).
DIX, DIY : seriële data-ingangen.
DOX, DOY ï seriële data-uitgangen.
SOXRQ s serieel ingangsverzoek.
25 SOYRQ : idem.
SOXEN, SOYEN : seriële toestemmingssignalen.
COX, COY : externe asynchrone klok voor seriële data-uitvoer.
SIXRQ, SIYRQ : verzoeksignalen seriële data-invoer.
SIXEN, SIYEN : toestemmingssignalen seriële data-invoer.
30 CIX, SIY : externe asynchrone klok voor seriële data-invoer.
RD, WR : lees-schr ij fbestur ing voor par allele I/O registers.
PORQ, PIRQ : verzoeksignalen par allele in/uitvoer.
SYNC : uitgangskloksignalen (synchroon met instruktiecyclus) cm externe inrichting te synchroniseren.
35 Figuur 14 illustreert nader het vermenigvuldigingselement; allereerst wordt de schakeling gegeven. Overeenkomstige elementen dragen dezelfde nurtitering als in figuur 1. Bus 20 is verbonden met de X-selek-tor 54. Onderbesturing van bit SELX laat de selektar door of wel de bus- 8304442 PHN 10.886 26 · - ' . · 9 , « « operand, ofwel een waarde "-1" die door een niet getekende signaalgene-ratcsr wordt gevormd. Register 56 is onder besturing van bit ENX al dan niet transparant. Bus 22 is verbonden net de Y-selektor 52. Onder besturing van bit SELY laat de selektar door ofwel de busoperand, ofwel 5 de aritbmetisch geïnverteerde waarde daarvan. Door de gebruikte 2-comr plementnotatie is deze conversie heel eenvoudig. Register 50 is onder besturing van bit ENY al dan niet transparant. Door de twee stuur bits zijn aldus voor elke ingang van het vermenigvuldigingselement drie mogelijkheden kiesbaar zoals eerder werd aangegeven. Het vermenigvul-10 digingselement 58 ontvangt daarenboven nog een overdrachtsingangssignaal: CARR. Aan de uitgang van vermenigvuldigingselement 58 is een register PR aangesloten, dat eventueel kan worden weggelaten. Accuirulatoropteller 64 ontvangt geen speciale funktieselektiesignalen. Accuirulatarregister 68 ontvangt een toestemmingssignaal ENA. De uitgang van register 68 is 15 verbanden met een selektor 69 cm de in register 68 opgeslagen operand onveranderd en ook over 15 bitposities naar de minder-signifikante zijde te kunnen doorgeven. Dit laatste gebeurt weer door verstaffeling van de aansluitingen. Voorts ontvangt selektor 69 nog een operand "0". Tussen selektor 69 en accuirulatoropteller 64 is nog opgenomen inverteur 71 die 20 door een signaal PM selektief aanstuurbaar is.
De uitgang van accuirulatoropteller 64 is verder nog verbonden met schuif element 62 dat hier niet meer besproken is. De figuur geeft bovendien een besturingstabel met de zes voor element 64 te besturen funkties in de eerste kolom. De rechterkolommen, van de figuur geven de 25 vereiste stuursignalen. In regel 1 behouden de signalen PM en SELA1, 2 hun oude waarde: aldan blijft de inhoud van register 68 onveranderd.
30 35 8304442

Claims (19)

1. Geïntegreerde en programmeerbare processor voor woordsgewijze digitale signaaltsrerking, bevattende: a. een vermenigvuldigingselement (58) met een eerste ingang en een tweede ingang om twee operandi ter vermenigvuldiging te ontvangen, 5 en een eerste uitgang cm een produkt te presenteren; b. een arithmetische en logische eenheid (122) met een derde ingang en een vierde ingang cm twee verdere operandi te ontvangen, een tweede uitgang cm een resultaatqperand te presenteren en eerste accumulator-middelen (116) die tussen de tweede uitgang en de derde ingang ge- 10 schakeld zijn; c. een eerste lees-schrijfgeheugen (36, 102) voor het opslaan van data-gegevens; d. aansluitmiddelen voor het aansluiten van een besturingsgebeugen (28) voor het opslaan van besturingsinfcrmatie voor de overige onderdelen; 15 e. katmanikatietniddelen, waaronder busverbindingsmiddelen voor het verbinden van genoemde onderdelen met elkaar en met de buitenwereld, met het kenmerk, dat f. genoemde eerste ingang verbonden is met een afzonderlijke eerste bus (22) en genoemde tweede ingang en vierde ingang verbonden zijn 20 met een afzonderlijke tweede bus (20) van genoemde busverbindings-middelen; g. genoemde derde ingang kqppelbaar is met de eerste bus; h. genoemde eerste accunulatcnoiddelen een derde uitgang bezitten met een eerste selektor cm een selekteerbare aansluiting te vormen qp 25 genoemde eerste en tweede bus; i. genoemde eerste uitgang een tweede selektor (76) bevat om een selekteerbare aansluiting te vormen cp genoemde eerste en tweede bus; j. en dat genoemd eerste lees-schr ij f geheugen een adresingang en een data-ingang bezit die qp genoemde eerste en tweede bus zijn aange- 30 sloten en een vierde uitgang met een derde selektor (46, 104) on een selekteerbare aansluiting te vormen cp genoemde eerste en tweede bus.
2. Geïntegreerde processor volgens conclusie 1, met het kenmerk, dat genoemd eerste lees-schrij f geheugen bevat een eerste geheugenmodu- 35 le (36) waarvan de adresingang is aangesloten op de eerste bus en de data-ingang is aangesloten op de tweede bus, en een tweede geheugenmo-dule (102) waarvan de adresingang is aangesloten qp de tweede bus en de data-ingang is aangesloten op de eerste bus, en dat de derde selektor ''04442 PHN 10.886 ' 28-- -. voor elke geheugenmodule een respektievelijke selektiemodule (46, 104) bevat die op elk van beide bassen aangesloten is, en dat de aansluiting voor het besturingsgeheugen een instruktieregister bevat cm besturings-informatie ter besturing van verdere onderdelen op te nemen, welk in-5 struktieregister (26) voorts een data-uitgang aangesloten heeft op genoemde busverbindingsmiddelen.
3. Geïntegreerde processor volgens conclusie 2, net het kenmerk, dat genoemde eerste en tweede geheugenmodule elk van een eigen adrester ekeningseenheid (38, 114) zijn voorzien. ;
4. Geïntegreerde processor volgens conclusie 1, 2 of 3, met het kenmerk, dat genoemde eerste uitgang voorzien is van teruggekoppelde, tweede accumulatormiddelen inclusief accunulatoroptelmiddelen (64, 68) en daarop aangesloten een schuif eenheid (62) om selekteerbare schuif-en herfarmatteringsbewerkingen uit te voeren qp aan de busverbindings-15 middelen toe te voeren informatie.
5. Geïntegreerde processor volgens één der conclusies 1 tot en met 4, met het kenmerk, dat genoemde eerste accumulatormiddelen voorzien zijn van een tweede lees-schrijfgeheugen dat plaats biedt aan meerdere qperandi en voorzien is van drievoudige adresseringsmiddelen cm tege-' 20 lijkertijd een schrijfaktie vanuit de arithmetische en logische eenheid alsook twee onafhankelijke leesakties naartoe respektdevelijk de eerste bus en de tweede bus uitvoerbaar te maken.
6. Geïntegreerde processor volgens één der conclusies 1 tot en met 5, met het kenmerk, dat genoemd besturingsgeheugen is mede geïnte- 25 greerd.
7. Geïntegreerde processor volgens één der conclusies 1 tot en met 6, met het kenmerk, dat verdere aansluitmiddelen aanwezig zijn voor een als een dood geheugen uit te voeren verder datageheugen (90), voorzien van een adresaansluiting op genoemde busverbindingsmiddelen en 30 een selekteerbare data-aansluiting (88) op genoemde eerste en tweede bus.
8. Geïntegreerde processor volgens conclusie 7, met het kenmerk, dat genoemd verder datageheugen is voorzien van een eigen adresberekeningseenheid (92).
9. Geïntegreerde processor volgens conclusie 7 of 8, met het ken- i 35 merk, dat genoemd verder datageheugen als dood geheugen is mede geïntegreerd.
10. Geïntegreerde processor volgens één der conclusies 1 tot en met 9, met het kenmerk, dat genoemde derde Ingang selektormiddelen bevat 0'4 4 4 2 ΕΉΝ 10.886 29 - V m on een selekteerbare aansluiting te vannen op genoemde eerste en tweede bus.
11. Geïntegreerde processor volgens één der conclusies 1 tot en met 10, met het kenmerk, dat tijdbesturingsraiddelen voorzien zijn om een 5 eerste instruktiecyclus te besturen dewelke coincident bevat: - adresberekening voor een datageheugen inclusief bijbehorende geheugentoegang om in de naastvolgende instruktiecyclus een operand voor de busverbindingsmiddelen beschikbaar te stellen; - een informatietransport over tenminste één bus van de bdsverbindings- 10 middelen; - en een informatiebewerking in tenminste één der twee elementen arith-metische en logische eenheid en vermenigvuldigingselement op een in die instruktiecyclus over de busverbindingsmiddelen getransporteerde operand om in die instruktiecyclus een resultaatoperand te vormen ter 15 beschikbaarstelling van deze resultaatoperand voor transport over de busverbindingsmiddelen in de eerstvolgende of een latere instruktiecyclus.
12. Geïntegreerde processor volgens conclusie 11, met het kenmerk, dat een cyclusselektor (PQR) aanwezig is met een eerste en een tweede 20 stand cm in de eerste stand genoemde eerste instruktiecyclus te besturen en in de tweede stand een tweede instruktiecyclus iret een lengte die de helft is van die van de eerste instruktiecyclus, welke tweede instruktiecyclus coincident bevat: - adresberekening voor een datageheugen voor het vormen van een adres 25 voor de naastvolgende instruktiecyclus; - geheugentoegang in een datageheugen middels een in de naastvorige in struktiecyclus berekend adres cm in de naastvolgende instruktiecyclus een operand voor de busverbindingsmiddelen beschikbaar te stellen; - een informatietransport over tenminste één bus van de busverbindings- 30 middelen; - een informatiebewerking in tenminste één der twee elementen arithme-tische en logische eenheid en vermenigvuldigingselement op tenminste één in die instruktiecyclus of in een eerdere instruktiecyclus over de busverbindingsmiddelen getransporteerde cm in het interval van dier 35 zelfde instruktiecyclus plus de eerste naastvolgende een resultaat operand te vormen ter beschikbaarstelling voor transport daarvan over de busverbindingsmiddelen van deze resultaatoperand in de tweede naastvolgende of in een latere instruktiecyclus, dat daartoe uitgangs- 8304442 - -----— —---1 * \ * ! PHN 10.886 30 · · " registers voorzien zijn aan het vermenigvuldigingselement, het eerste lees-schr ij fgeheugen, welke uitgangsregisters in genoemde eerste stand van de cyclusselektor transparant aanstuurbaar zijn, en dat in-gangsregisters van arithnetische en logische eenheid en vermenigvul-5 digingselement voorzien zijn, die in beide standen van de cyclusselektor transparant aanstuurbaar zijn.
13. Geïntegreerde processor, waarbij genoemde eerste uitgang voor zien is van teruggekoppelde tweede acam^atormiddelen inclusief accumu-latoroptelmiddelen en daarop aangesloten een schuif eenheid can selekteer-10 bare schuif- en herformtteringsbewerkingen uit te voeren qp aan de busverbindingsmiddelen toe te voeren informatie, volgens één der conclusies 1 tot en met 12, met het kenmerk, dat tussen de ingangen van het vermenigvuldigingselement en de busverbindingsmiddelen selektief transparant aanstuurbare ingangsregisters zijn geschakeld.
14. Geïntegreerde processor volgens conclusie 13, met het kenmerk, dat tussen tenminste één der transparant aanstuur bare registers selektor-middelen zijn geschakeld om selektief een operandinversie te effektueren, respektievelijk een vaste-waarde-grootheid toevoer baar te maken aan het vermenigvuldigingselement.
15. Geïntegreerde processor waarbij genoemde eerste uitgang voor zien is van teruggekoppelde tweede accumulatormiddelen inclusief accuiru-latoroptelmiddelen en daarop aangesloten een. schuif eenheid om selekteer-bare schuif- en herformatteringsbewerkingen uit te voeren op aan de busverbindingsmiddelen toe te voeren informatie, met het kenmerk, dat de 25 terugkoppeling gebeurt middels een accumulatorregister om selekteerbaar een al dan niet geïnverteerd, en/of over een irultiprecisiebitverschui-vingsafstand accumulatorresultaat aan'de accunulatoroptelmiddelen te herpresenteren.
16. Geïntegreerde processor volgens conclusie 4, met het kenmerk, 30 dat de accumulatoroptelmiddelen tekenexfcensiebits aan het vermenigvuldigingselement plaats bieden.
17. Geïntegreerde processor volgens conclusie 16, met het kenmerk, dat de schuifeenheid verdere extens iebits plaats biedt om onder gekodeer-de besturing een aantal verschillende extrakties uit het accumulatie- 35 optelresultaat voor de busverbindingsmiddelen beschikbaar te stellen.
18. Geïntegreerde processor volgens één der conclusies 1 tot en met 17, met het kenmerk, dat voor een datageheugen tenminste één adres-bërekeningseenheid is voorzien met een optelelement cm adresaccumulatie 8304442 EHN 10.886 31 · - " 4 V uit te voeren die onder besturing van een maskerregister bitsgewijze maskeerbaar is.
19. Geïntegreerde processor volgens conclusie 18, met het kenmerk, dat de adresberekeningseenheid een eerste register voor een absoluut 5 adres, een tweede register voor een relatief adres, en een maskerregister bevat die alle op de busverbindingsmiddelen zijn aangesloten. 10 15 20 25 30 35 8304^*2 I i.
NL8304442A 1983-12-27 1983-12-27 Geintegreerde en programmeerbare processor voor woordsgewijze digitale signaalbewerking. NL8304442A (nl)

Priority Applications (10)

Application Number Priority Date Filing Date Title
NL8304442A NL8304442A (nl) 1983-12-27 1983-12-27 Geintegreerde en programmeerbare processor voor woordsgewijze digitale signaalbewerking.
US06/663,730 US4689738A (en) 1983-12-27 1984-10-22 Integrated and programmable processor for word-wise digital signal processing
EP84201831A EP0154051B1 (en) 1983-12-27 1984-12-11 Integrated and programmable processor for word-wise digital signal processing
EP89201327A EP0333306B1 (en) 1983-12-27 1984-12-11 Single chip integrated circuit digital signal processor with a slow or fast mode of operation
DE8484201831T DE3484308D1 (de) 1983-12-27 1984-12-11 Integrierter programmierbarer prozessor fuer die wortweise verarbeitung von digitalen signalen.
DE3486457T DE3486457T2 (de) 1983-12-27 1984-12-11 Integrierter Einchip-Prozessor für die Verarbeitung von digitalen Signalen entweder in einem schnellen oder einem langsamen Betrieb
CA000470632A CA1221175A (en) 1983-12-27 1984-12-20 Integrated and programmable processor for word-wise digital signal processing
KR1019840008313A KR920008280B1 (ko) 1983-12-27 1984-12-24 집적 프로세서
JP59282137A JPH0760379B2 (ja) 1983-12-27 1984-12-27 ワンチップディジタル信号プロセッサ
JP4103118A JP2501711B2 (ja) 1983-12-27 1992-04-22 ワンチップディジタル信号プロセッサ

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
NL8304442 1983-12-27
NL8304442A NL8304442A (nl) 1983-12-27 1983-12-27 Geintegreerde en programmeerbare processor voor woordsgewijze digitale signaalbewerking.

Publications (1)

Publication Number Publication Date
NL8304442A true NL8304442A (nl) 1985-07-16

Family

ID=19842928

Family Applications (1)

Application Number Title Priority Date Filing Date
NL8304442A NL8304442A (nl) 1983-12-27 1983-12-27 Geintegreerde en programmeerbare processor voor woordsgewijze digitale signaalbewerking.

Country Status (7)

Country Link
US (1) US4689738A (nl)
EP (1) EP0154051B1 (nl)
JP (2) JPH0760379B2 (nl)
KR (1) KR920008280B1 (nl)
CA (1) CA1221175A (nl)
DE (2) DE3484308D1 (nl)
NL (1) NL8304442A (nl)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4577282A (en) 1982-02-22 1986-03-18 Texas Instruments Incorporated Microcomputer system for digital signal processing
NL8500526A (nl) * 1985-02-25 1986-09-16 Philips Nv Werkwijze voor het als vertragingslijn adresseren van een geheugen met willekeurige toegankelijkheid en signaalverwerkingsinrichting voorzien van zo een vertragingslijn.
US4641247A (en) * 1985-08-30 1987-02-03 Advanced Micro Devices, Inc. Bit-sliced, dual-bus design of integrated circuits
NL8502848A (nl) * 1985-10-18 1987-05-18 Philips Nv Dataverwerkingsinrichting voorzien van een diskreetstapper om een programmasprong te realiseren.
US4935867A (en) * 1986-03-04 1990-06-19 Advanced Micro Devices, Inc. Signal processor memory management unit with indirect addressing using selectable offsets and modulo values for indexed address calculations
JPH0823808B2 (ja) * 1986-03-24 1996-03-06 沖電気工業株式会社 ディジタル信号処理プロセッサ
JP2844591B2 (ja) * 1987-01-16 1999-01-06 株式会社日立製作所 ディジタル信号処理装置
US5983328A (en) * 1987-03-13 1999-11-09 Texas Instruments Incorporated Data processing device with time-multiplexed memory bus
JPH01166241A (ja) * 1987-12-23 1989-06-30 Hitachi Ltd 情報処理装置
US5692139A (en) * 1988-01-11 1997-11-25 North American Philips Corporation, Signetics Div. VLIW processing device including improved memory for avoiding collisions without an excessive number of ports
KR920006283B1 (ko) * 1988-02-19 1992-08-03 미쯔비시덴끼 가부시끼가이샤 디지탈신호 처리방식
US4974146A (en) * 1988-05-06 1990-11-27 Science Applications International Corporation Array processor
FR2635390B1 (fr) * 1988-08-12 1990-10-12 Bull Sa Unite centrale pour systeme de traitement de l'information
US5204962A (en) * 1989-11-30 1993-04-20 Mitsubishi Denki Kabushiki Kaisha Processor with preceding operation circuit connected to output of data register
JPH03186928A (ja) * 1989-12-16 1991-08-14 Mitsubishi Electric Corp データ処理装置
US6757809B1 (en) * 1989-12-16 2004-06-29 Renesas Technology Corp. Data processor having 2n bits width data bus for context switching functions
US5218564A (en) * 1991-06-07 1993-06-08 National Semiconductor Corporation Layout efficient 32-bit shifter/register with 16-bit interface
WO1993011500A1 (en) * 1991-11-27 1993-06-10 Seiko Epson Corporation Pixel modification unit
JP3055316B2 (ja) * 1992-08-13 2000-06-26 ヤマハ株式会社 デジタル信号プロセッサ
US5440702A (en) * 1992-10-16 1995-08-08 Delco Electronics Corporation Data processing system with condition code architecture for executing single instruction range checking and limiting operations
US5381360A (en) * 1993-09-27 1995-01-10 Hitachi America, Ltd. Modulo arithmetic addressing circuit
US5692207A (en) * 1994-12-14 1997-11-25 International Business Machines Corporation Digital signal processing system with dual memory structures for performing simplex operations in parallel
US5907864A (en) * 1995-06-07 1999-05-25 Texas Instruments Incorporated Data processing device with time-multiplexed memory bus
US6167472A (en) * 1998-05-29 2000-12-26 Motorola Inc. System for communicating with and initializing a computer peripheral utilizing a masked value generated by exclusive-or of data and corresponding mask
US6467037B1 (en) * 1998-06-30 2002-10-15 Sun Microsystems, Inc. Utilizing a program counter with one or more data counters for executing instructions
DE10009451C1 (de) * 2000-01-31 2001-05-03 Micronas Gmbh Recheneinheit für eingeschränkte Signalverarbeitung
EP1122637A3 (de) * 2000-01-31 2005-10-12 Micronas GmbH Recheneinheit für eingeschränkte Signalverarbeitung
JP3826268B2 (ja) * 2001-11-16 2006-09-27 三菱自動車エンジニアリング株式会社 車両用スピーカの取り付け構造
JP4718927B2 (ja) 2005-07-29 2011-07-06 パイオニア株式会社 スピーカ装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4075704A (en) * 1976-07-02 1978-02-21 Floating Point Systems, Inc. Floating point data processor for high speech operation
US4266270A (en) * 1978-09-05 1981-05-05 Motorola, Inc. Microprocessor having plural internal data buses
JPS5647840A (en) * 1979-09-28 1981-04-30 Toshiba Corp Arithmetic unit
US4287566A (en) * 1979-09-28 1981-09-01 Culler-Harrison Inc. Array processor with parallel operations per instruction
JPS5685157A (en) * 1979-12-15 1981-07-11 Toshiba Corp Information processor
JPS56127244A (en) * 1980-03-11 1981-10-05 Toshiba Corp Operation controller
US4577282A (en) * 1982-02-22 1986-03-18 Texas Instruments Incorporated Microcomputer system for digital signal processing
US4538239A (en) * 1982-02-11 1985-08-27 Texas Instruments Incorporated High-speed multiplier for microcomputer used in digital signal processing system
US4503500A (en) * 1982-02-11 1985-03-05 Texas Instruments Incorporated Microcomputer with bus interchange module
JPS60188660A (ja) * 1984-03-07 1985-09-26 Nippon Piston Ring Co Ltd ピストンリング

Also Published As

Publication number Publication date
KR920008280B1 (ko) 1992-09-26
JPS60157631A (ja) 1985-08-17
JP2501711B2 (ja) 1996-05-29
DE3486457T2 (de) 1998-04-09
JPH0644288A (ja) 1994-02-18
EP0154051A1 (en) 1985-09-11
CA1221175A (en) 1987-04-28
KR850004680A (ko) 1985-07-25
JPH0760379B2 (ja) 1995-06-28
EP0154051B1 (en) 1991-03-20
DE3486457D1 (de) 1997-11-20
US4689738A (en) 1987-08-25
DE3484308D1 (de) 1991-04-25

Similar Documents

Publication Publication Date Title
NL8304442A (nl) Geintegreerde en programmeerbare processor voor woordsgewijze digitale signaalbewerking.
US8024394B2 (en) Dual mode floating point multiply accumulate unit
US5390135A (en) Parallel shift and add circuit and method
JP3983857B2 (ja) ベクトルレジスタの複数バンクを用いた単一命令複数データ処理
US20200201642A1 (en) Block-wise matrix multiplication system
KR102425668B1 (ko) 데이터 처리장치에서의 곱셈-누적
JP2015133132A (ja) Simd命令をサポートするプログラマブルデータ処理回路
JPH0695872A (ja) 入出力可変段命令パイプラインにおけるデータ・オペレーションの遂行管理装置及び遂行方法
US20190310847A1 (en) Complex multiply instruction
EP1050810A1 (en) A computer system comprising multiple functional units
US7818540B2 (en) Vector processing system
US4791555A (en) Vector processing unit
US5119324A (en) Apparatus and method for performing arithmetic functions in a computer system
US20210117375A1 (en) Vector Processor with Vector First and Multiple Lane Configuration
EP0141232A2 (en) Vector processing unit
US11106465B2 (en) Vector add-with-carry instruction
JPH0471085A (ja) データフロー型情報処理装置
KR20190132295A (ko) 연속적인 데이터 병렬처리가 가능한 병렬 처리장치
US4924377A (en) Pipelined instruction processor capable of reading dependent operands in parallel
EP0496407A2 (en) Parallel pipelined instruction processing system for very long instruction word
JPH01116730A (ja) デイジタル信号処理プロセツサ
US4714991A (en) Microprogram control apparatus having variable mapping between microinstruction control bits and generated control signals
NL8100631A (nl) Gepijplijnde digitale processor geschikt voor een voorwaardelijke werking.
US11822541B2 (en) Techniques for storing sub-alignment data when accelerating Smith-Waterman sequence alignments
US20230101085A1 (en) Techniques for accelerating smith-waterman sequence alignments

Legal Events

Date Code Title Description
A1B A search report has been drawn up
BV The patent application has lapsed