Coprocessor: architectuur, werking, typen en toepassingen

Probeer Ons Instrument Voor Het Oplossen Van Problemen





In een microprocessor chip, nieuwe schakelingen zijn toegevoegd om speciale taken uit te voeren en ook bewerkingen op getallen om het CPU-kernwerk te ontlasten, zodat de CPU zeer snel kan functioneren. Een aanvullende processor zoals een coprocessor wordt voornamelijk gebruikt in computers om speciale taken uit te voeren, zoals verwerking van grafische weergaven en brede rekenkundige berekeningen. Deze processor is ontworpen om dergelijke taken zeer efficiënt uit te voeren in vergelijking met de CPU, waardoor de algehele computersnelheid kan worden verhoogd. Dit artikel bespreekt een overzicht van een medeverwerker –architectuur, werken & zijn toepassingen.


Wat is Coprocessor?

Een processor die naast de hoofdprocessor van een computer werkt, zoals de CPU, wordt een coprocessor genoemd. Deze processor wordt ook wel een aanvullende computerprocessor genoemd. Door deze processor te gebruiken, kunnen enkele moeilijke wiskundige berekeningen worden uitgevoerd, zoals de grafische weergave op het scherm, signaalverwerking, stringverwerking, drijvende-kommaberekeningen, input-output-interface, enz.



  Coprocessor
Coprocessor

Coprocessor-architectuur

De coprocessor-achtige 8087-architectuur wordt hieronder weergegeven. Over het algemeen werkt deze coprocessor parallel met de microprocessor. Deze coprocessor is ontwikkeld door Intel en gebruikt met 16-bits microprocessors uit de 8086-familie. Wanneer de processor in combinatie met de microprocessor functioneert, wordt het berekeningsgedeelte eenvoudig door de processor afgehandeld en hierdoor kan de CPU de bronnen gebruiken om verschillende andere activiteiten uit te voeren.

De volgende afbeelding geeft de architectuur weer van de 8087-coprocessor. Deze architectuur omvat twee hoofdeenheden zoals de besturingseenheid en een numerieke uitvoeringseenheid die ook wel NEU wordt genoemd.



  8087 Coprocessor-architectuur
8087 Coprocessor-architectuur

In de besturingseenheid zijn er verschillende eenheden zoals gegevensbuffer, besturings- en statuswoordregister, gedeelde operandwachtrij, uitzonderingsaanwijzer en adresserings- en busvolgeenheid. De Numeric Execution Unit of NEU omvat voornamelijk een microcode-besturingseenheid, registerstapel, programmeerbare shifter, tijdelijk registreert , rekenkundige module, exponentmodule & gedeelde operandwachtrij.

De besturingseenheid in de coprocessor moet de instructie-uitvoering (IE) besturen waarvoor de numerieke uitvoeringseenheid verantwoordelijk is. Meestal verkrijgt de microcode-besturingseenheid (CU) van de numerieke uitvoeringseenheid de numerieke instructies van de besturingseenheid van de coprocessor. Deze coprocessor heeft complete 8-registers van 80 bits en elk daarvan wordt gebruikt in de LIFO-stack. De operanden waarover de instructies van de coprocessor zullen plaatsvinden, bevinden zich in de registerstapel.

  PCBWay

De bestaande stapel wordt door de 3-bits SP (stapelaanwijzer) geleid die de binaire waarden bevat die variëren van 000 - 111 om de 8 stapelregisters weer te geven. Het werkt binnen een cirkelvormige stapel in de LIFO-modus. Maar zodra de resetactie plaatsvindt, kan de aanwijzer worden geïnitialiseerd met de binaire waarde '000'.

De numerieke gegevens drie classificaties waarop de co-processorfuncties zijn verpakte decimale getallen, reële getallen en binaire gehele getallen. De binaire gehele getallen zijn drie typen 16-bits woord integer, 32-bits kort integer en 64-bits lang integer. Het 80-bits BCD-formaat betekent de verpakte decimale getallen, terwijl reële getallen 3 soorten zijn; 32-bits kort echt, 64-bits lang echt en 80-bits tijdelijk echt.

Voor het overdragen van de numerieke gegevens in de coprocessor kan ofwel a Er wordt gebruik gemaakt van een 16-bits exponentbus of een 64-bits mantissebus . De coprocessor bevat een 16-bits besturingswoord en een 16-bits statuswoord.

Het besturingswoord wordt in het besturingsregister geschreven en dit gebeurt op zo'n manier dat de coprocessor het besturingswoord aanvankelijk binnen de geheugenplaats schrijft. Daarna leest de coprocessor eenvoudig het besturingswoord met behulp van de geheugenlocatie en slaat het op in het besturingsregister.

Evenzo leest het statuswoord op een zodanige manier dat de processor de gegevens in het statusregister naar een geheugenlocatie stuurt. Verder leest deze coprocessor het statusregister van die specifieke geheugenlocatie. Dit betekent dus dat de processor en de microprocessor met elkaar communiceren via het hoofdgeheugen.

Hoe werkt de coprocessor?

De coprocessor is voornamelijk ontworpen om te werken met zowel de 8086- als de 8088-processors. De coprocessor wordt gebruikt om het systeem krachtiger te laten werken door specifieke CPU-taken te ontlasten. Zodra deze processor in combinatie met de microprocessor werkt, worden de instructies van zowel de microprocessor als de coprocessor geïntegreerd tijdens het schrijven van het programma. Het begin van instructies in het assembleertaalprogramma heeft een 'F' die de instructies van de coprocessor vertegenwoordigt, terwijl de instructies zonder een 'F'-voorvoegsel de instructies van de microprocessor weergeven.

In eerste instantie worden de instructies door de microprocessor opgehaald van de geheugenlocatie en worden ze achtereenvolgens in de wachtrij geladen. Tegelijkertijd leest en slaat de 8087-coprocessor de instructies ook op in een binnenwachtrij. Dit betekent dus dat elke instructie kan worden gelezen door zowel de coprocessor als de processor, maar op het moment van uitvoering kunnen zowel de coprocessor als de microprocessor de uitvoering van hun specifieke instructies uitvoeren. Dit betekent dat de instructie wordt gelezen en gedecodeerd. Als de microprocessor controleert of er een instructie van een coprocessor is, dan wordt die instructie behandeld als Geen werking. Evenzo, als deze co-processor een instructie van een microprocessor nadert, wordt deze behandeld als geen bewerking.

Soorten coprocessor

Er zijn verschillende coprocessors beschikbaar op basis van fabrikanten zoals de volgende.

Intel 8087-coprocessor

Intel 8087 is een speciaal ontworpen co-processor die wordt gebruikt om wiskundige berekeningen uit te voeren met drijvende-komma- en gehele getallen. Soms is het ook bekend als een numerieke gegevensverwerker en wiskundige processor. Dit is een numerieke co-processor voor Intel 80188, 8086, 80186 & 8088 processors. De 8087-coprocessor bevat acht 80-bits algemene registers die als een stapel worden uitgevoerd. Alle drijvende-kommabewerkingen worden dus eenvoudig uitgevoerd met gegevens uit de stapel en uit het externe geheugen.

  Intel 8087-coprocessor
Intel 8087-coprocessor

Intel 8087-coprocessor ondersteunt eenvoudigweg BCD, gehele getallen, drijvende-kommagetallen met enkele en dubbele precisie en ook uitgebreide precisie drijvende-kommagetallen. Zodra de 8087-processor gegevens uit het geheugen laadt, wordt deze intern geconverteerd om het precisiegetal uit te breiden en verder worden alle berekeningen via dit nummer uitgevoerd.

Dus overschakelen van een getal met dubbele precisie naar een getal met enkele precisie, anders van 64-bits integer - 32-bits / 16-bits integere getallen geven geen significante verbetering van de prestaties. 8087-coprocessors werden niet alleen vervaardigd door Intel, maar ook AMD, Cyrix en IBM produceren deze coprocessors.

Motorola 68881

Motorola 68881 is een coprocessor die voornamelijk wordt gebruikt met de 2e generatie Motorola 68K microprocessoren zoals Motorola 68030 & 68020. Theoretisch wordt deze coprocessor gebruikt met eerdere 68000 of 68010 CPU's als randapparaat.

  Motorola 68881
Motorola 68881

De co-processor van de Motorola 68881 functioneert gewoon als een apparaat met geheugentoewijzing. Zodra de hoofd-CPU de instructie van de co-processor laadt, schrijft hij de instructiecode in CIR (Co-processor Interface Registers), die in kaart worden gebracht binnen de adresruimte van de CPU, en daarna leest hij de reactie van de co-processor van een van de CIR-registers.

De Motorola 68881/68882-coprocessors werden gebruikt in de IBM RT PC-werkstations, Sun Microsystems Sun-3-werkstations, NeXT Computer, Apple Computer Macintosh II-familie, Amiga 3000, Sharp X68000, Convergent Technologies MightyFrame, TT, Atari Mega STE & Falcon. Deze processors worden ook gebruikt in sommige Atari & Amiga-producten van derden, zoals een apparaat met geheugentoewijzing voor de 68000.

Apple Motion Co-processors

De coprocessors uit de M-serie van Apple staan ​​bekend als bewegingscoprocessors die worden gebruikt in mobiele apparaten van Apple. De eerste coprocessor is ontworpen in 2013 en werd gebruikt om sensorgegevens te verzamelen van ingebouwde gyroscopen, versnellingsmeters en kompassen en de verzamelde sensorgegevens te ontladen met behulp van de hoofd-CPU.

  Apple Motion Co-processors
Apple Motion Co-processors

De Apple coprocessors uit de M-serie verzamelen eenvoudigweg de gegevens van de sensor en slaan deze op, zelfs als het apparaat in de slaapstand staat en toepassingen kunnen gegevens herstellen zodra het apparaat weer wordt opgestart. Dit vermindert dus het stroomverbruik van het apparaat en spaart de levensduur van de batterij.

Verschil tussen processor en coprocessor

Het verschil tussen processor en coprocessor omvat het volgende.

Verwerker

Coprocessor

De processor is de belangrijkste verwerkingseenheid in de computer die verschillende rekenkundige, logische en besturingsbewerkingen uitvoert op basis van de instructies. De coprocessor is een speciale processor die ondersteuning geeft aan de hoofdprocessor.

De processor zorgt voor alle hoofdwerken

De coprocessor zorgt alleen voor een aantal andere dingen, zoals afbeeldingen en rekenkundige berekeningen.
Het verwerkt logische bewerkingen en wiskundige berekeningen en genereert besturingssignalen naar andere componenten voor het synchroniseren van de taken. Het voert signaalverwerking, wiskundige bewerkingen, netwerken en cryptografie uit op basis van het type.
De processor zorgt ervoor dat de hele computer goed blijft functioneren. Deze processor helpt bij het verbeteren van de prestaties van het systeem en ontlast zware taken van de CPU.

Voordelen

De voordelen van een coprocessor omvatten het volgende.

  • De co-processor handelt meer gespecialiseerde taken gewoon sneller af in vergelijking met de kern-CPU
  • Deze processors zijn gebruiksvriendelijk en het populairst.
  • Het vermindert de belasting van de microprocessor door speciale verwerkingstaken van de CPU over te nemen, zodat deze op een hogere snelheid werkt.
  • Deze processor is nuttig bij het uitbreiden van de verwerkingsfuncties van de CPU door de instructieset uit te breiden of door configuratieregisters aan te bieden.

Nadelen

De nadelen van coprocessors zijn de volgende.

  • De coprocessor is niet in staat om instructies uit het geheugen te halen, instructies direct uit te voeren, geheugen te beheren, I/O-bewerkingen uit te voeren
  • Het hangt van de hoofdprocessor af om de instructies van de coprocessor terug te krijgen en alle andere bewerkingen te doen die geen verband houden met de coprocessor.
  • Dit is niet de belangrijkste processor van het systeem.
  • De coprocessor kan niet werken zonder de hoofdmicroprocessor.

toepassingen

De toepassingen van coprocessors omvatten het volgende.

  • De co-processor wordt gebruikt om enkele van de meer gespecialiseerde taken uit te voeren, zoals grafische weergaveverwerking of complexe wiskundige berekeningen.
  • Een co-processor wordt simpelweg gebruikt om de CPU van een computer te ontlasten.
  • Deze processor werkt zij aan zij met de CPU van de computer.
  • Deze processor voert wiskundige bewerkingen op hoog niveau veel sneller uit in vergelijking met de hoofdprocessor, zoals wortels, logaritmen, trigonometrische functies, enz.
  • Een coprocessor vergroot de functies van de primaire processor.
  • De coprocessor voert verschillende bewerkingen uit, zoals signaalverwerking, drijvende-kommaberekeningen, stringverwerking, grafische afbeeldingen, I/O-interface via randapparatuur, cryptografie, enz.
  • Deze processors zijn stand-alone chips in eerdere desktopcomputers die op het moederbord waren aangesloten.
  • Een coprocessor voert de CPU-taken uit om de algehele prestaties te verbeteren.

Dit is dus een overzicht van een coprocessor – werken en de toepassingen ervan. Deze processor wordt ook wel een Math Processor genoemd. Een coprocessor voert verschillende taken veel sneller uit in vergelijking met de kern-CPU. Zo neemt de algehele snelheid van het computersysteem toe. Deze processor kan worden gekoppeld aan een ARM-processor. Als het eenmaal is toegevoegd, moeten we de instructieset van de Core CPU vergroten of configureerbare registers opnemen om de verwerkingskracht te vergroten. Hier is een vraag voor u, wat is een microprocessor?