Coprocesor

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Coprocesorul este un tip de procesor care se caracterizează prin faptul că este auxiliar unui alt procesor. De exemplu, în computerele moderne CPU este adesea flancat de procesoare auxiliare precum GPU și FPU . Operațiile efectuate pot fi calcule în virgulă mobilă , funcții grafice , prelucrarea semnalului , prelucrarea datelor sau funcții criptografice . Eliberând procesorul principal de sarcinile mai grele, coprocesoarele pot accelera performanțele unui sistem. Coprocesoarele permit, de asemenea, producătorilor de computere să ofere sisteme personalizate, oferind o putere suplimentară doar clienților care au cu adevărat nevoie de ea și plătesc pentru aceasta. Coprocesoarele au apărut pentru prima dată pe mainframe-uri în anii 1960 [1] , utilizate în general pentru efectuarea calculelor în virgulă mobilă, dar și pentru controlul canalelor de I / O.

Istorie

Provenind ca un cip pentru a ajuta procesoarele mainframe mari în calcule, coprocesoarele pentru aritmetica în virgulă mobilă au devenit comune în computerele desktop din anii 1980 și începutul anilor 1990 . Primele procesoare pe 8 și 16 biți au folosit procese software pentru a efectua operații în virgulă mobilă: în sistemele în care un coprocesor matematic era susținut atât de hardware cât și de software, astfel de calcule se puteau face mult mai repede. Coprocesoarele matematice au fost o achiziție obișnuită pentru toate acele utilizări în care a fost necesară o putere mare de procesare pentru a gestiona numere complexe în virgulă mobilă, cum ar fi în software-ul CAD și în cele științifice și inginerești. Coprocesoarele matematice timpurii, precum AMD 9511 , Intel 8231 și cele fabricate de Weitek , au fost tratate ca dispozitive periferice, în timp ce versiunile ulterioare, precum Intel 8087 , Motorola 68881 și National 32081 , au fost mult mai integrate cu CPU.

Un alt tip de coprocesor care a devenit obișnuit în acei ani a fost cel care se ocupa de managementul video simplu, cum ar fi ANTIC -ul Atari pe 8 biți , TMS9918 al computerelor MSX și Texas Instruments TI-99 / 4A : toate acestea procesoarele au fost numite Video Display Controller sau VDC. Un exemplu de procesor grafic real este Cuprul Commodore Amigas , o mașină programabilă cu stări finite („Cuprul” înseamnă „Co-procesor”) care ar putea executa un flux de instrucțiuni sincronizate cu hardware-ul video.

Dezvoltarea microprocesoarelor a făcut ca integrarea unei unități de calcul în virgulă directă în matrița cu cip să fie mai puțin costisitoare în timp, astfel încât utilizarea coprocesoarelor matematice externe a scăzut încet. Unul dintre cele mai recente coprocesoare externe este Intel 80387, în timp ce unul dintre primele procesoare care integrează o FPU este Intel 80486 . În prezent, utilizarea lor în computerele desktop este acum complet abandonată, în timp ce, pe de altă parte, nevoia de coprocesoare grafice deosebit de puternice ( GPU-uri ) este din ce în ce mai acută datorită numărului tot mai mare de calcule necesare jocurilor 3D .

Descriere

Funcția coprocesorului este de a ușura volumul de lucru al procesorului la care este auxiliar. În mod normal, volumul de lucru legat de o anumită procesare. De multe ori coprocesorul este deci un procesor optimizat specializat în executarea unor elaborări particulare pentru a fi mai eficient în sarcinile care i-au fost încredințate. Comuni sunt coprocesoarele unității centrale de procesare.

Un coprocesor poate să nu fie un procesor de uz general: de exemplu, unele coprocesoare nu pot executa instrucțiuni în memorie, pot executa instrucțiuni de control al fluxului de programe sau operațiuni de intrare / ieșire, pot gestiona memoria. Aceste cipuri necesită procesorului să își proceseze instrucțiunile și să gestioneze toate operațiunile legate de funcțiile pe care trebuie să le îndeplinească. În unele arhitecturi, coprocesorul este mai degrabă un computer cu scop general, dar este configurat să îndeplinească doar unele funcții limitate sub controlul direct al procesorului care îi supraveghează sarcinile.

Tipuri

Tipurile particulare de coprocesoare sunt următoarele:

Coprocesor matematic

Pictogramă lupă mgx2.svg Același subiect în detaliu: Coprocesor matematic .

Coprocesorul matematic este un coprocesor optimizat specializat în calcule matematice particulare. Primii coprocesori matematici din istorie au fost componente separate de unitatea centrală de procesare. Astăzi, în mod normal, coprocesorul matematic și unitatea centrală de procesare sunt integrate în același microprocesor . În prezent, cel mai răspândit tip de coprocesor matematic este unitatea de calcul în virgulă mobilă (mai cunoscută cu acronimul împrumutat din limba engleză „FPU”), un coprocesor matematic specializat în calcule în virgulă mobilă . Toate unitățile centrale de procesare moderne sunt flancate de o unitate de calcul în virgulă mobilă și ambele sunt implementate în același circuit integrat .

Unitate de procesare grafică

Pictogramă lupă mgx2.svg Același subiect în detaliu: Unitatea de procesare grafică .

Unitatea de procesare grafică (mai cunoscută cu acronimul împrumutat din limba engleză „GPU”) este un coprocesor optimizat specializat în redarea imaginilor grafice. Există o tendință de câțiva ani de a implementa unitatea de procesare grafică și unitatea centrală de procesare în același circuit integrat .

Controler periferic

Pictogramă lupă mgx2.svg Același subiect în detaliu: Controler (informatică) .

Controlerul periferic sau procesorul de intrare / ieșire este un coprocesor utilizat pentru gestionarea unuia sau mai multor periferice . Controlerul periferic există încă de la prima generație de calculatoare electronice, deoarece perifericul este de obicei mult mai lent decât unitatea centrală de procesare. Prin urmare, prezența controlerului periferic împiedică unitatea centrală de procesare să sufere încetiniri grele: scutită de gestionarea perifericelor, unitatea centrală de procesare este liberă să-și folosească toată capacitatea de calcul în sarcini în care este necesară această capacitate.

Coprocesoarele Intel

Pictogramă lupă mgx2.svg Același subiect în detaliu: arhitectura x87 .
Microarhitectura Intel 8087 și Intel 80287 .

PC-ul original IBM a inclus o priză pentru coprocesorul matematic Intel 8087 ( FPU ), ales în general de către utilizatorii de computere care îl foloseau pentru a rula CAD sau programe cu calcule numerice ridicate: acel coprocesor a accelerat calculele în virgulă mobilă de 50 de ori. Utilizatorii care au folosit computerul pentru sarcini de birou, de exemplu cu programe de procesare a textelor , situații în care utilizarea coprocesorului nu ar fi fost benefică, ar putea evita achiziția prin conținerea costului computerului.

8087 a fost bine integrat cu Intel 8086/8088 , interceptând opcodurile operațiilor în virgulă mobilă prezente în codul mașinii care rulează pe CPU. În schimb, un procesor 8088 fără un 8087 a interpretat acele instrucțiuni ca întreruperi interne care ar putea fi gestionate pentru a declanșa un eveniment de eroare sau pentru a declanșa un emulator software al instrucțiunilor 8087.

Intel 80386 cu coprocesorul matematic 80387 (dreapta).

Un alt coprocesor pentru procesoarele 8086/8088 a fost Intel 8089 , responsabil pentru gestionarea intrării / ieșirii . A folosit aceeași tehnică de programare ca 8087 pentru a gestiona operațiuni I / O, cum ar fi transferul de date din memorie pe un dispozitiv periferic, reducând astfel sarcina pe CPU. Totuși, IBM nu a folosit acest coprocesor, așa că Intel a decis să renunțe la producție.

În epoca computerelor desktop de 8 și 16 biți, alte coprocesoare matematice foarte populare erau cele ale Weitek , cunoscute mai ales pentru coprocesoarele din seria 80386 1067. Această răspândire s-a datorat faptului că Intel a lansat propriul FPU pentru procesor Intel 80387 , la aproape 2 ani de la introducere.

Procesorul 486DX a inclus o FPU on-chip. Intel a produs, de asemenea, o versiune mai ieftină a procesorului, 486SX: în comparație cu modelul DX a diferit doar în absența unei astfel de unități pentru calculele în virgulă mobilă. Concomitent cu 486SX, a introdus și coprocesorul 487SX care a înlocuit în mod esențial procesorul principal atunci când a fost instalat, deoarece 487SX a fost un 486DX complet cu un pinout diferit.

Procesoarele Intel post-486 au integrat FPU direct în cip datorită reducerii costurilor derivate din evoluția tehnică a proceselor de producție, eliminând astfel avantajele economice ale unui coprocesor matematic extern. În plus, ar fi fost foarte dificil să se adapteze tehnicile de proiectare ale circuitelor externe adecvate pentru gestionarea unui procesor de 75 MHz la timpii de așteptare, consumul de energie și standardele de interferență electromagnetică cerute de viteza procesorelor moderne, care funcționează la diferite Gigahertz . FPU-urile integrate în procesoare sunt încă denumite coprocesoare, deoarece funcționează în paralel cu procesorul principal.

Coprocesoarele Motorola

Familia de procesoare Motorola 68000 avea propriile sale coprocesoare dedicate: erau Motorola 68881/68882 , care furnizau capacități de accelerare a calculului în virgulă mobilă ca și omologii Intel. Calculatoarele care foloseau procesoare din seria 68000 dar nu montau coprocesorul puteau gestiona excepții pentru a activa un emulator software de instrucțiuni în virgulă mobilă care, deși cu performanțe mai mici, permitea distribuirea unei singure versiuni a programului pentru ambele cazuri.

Coprocesoare în PC-uri moderne

Coprocesoarele grafice sau GPU-urile , destinate procesorului montat pe o placă grafică suplimentară, au început să își facă apariția la mijlocul anilor 90, când producătorii de calibru Matrox , powerVR , 3dfx , nVIDIA , S3 și alții au introdus pe piață carduri. special conceput pentru a accelera gestionarea graficelor 2D / 3D. În prezent, GPU-urile au o complexitate și o putere de calcul care sunt uneori mai mari decât cele ale celor mai rapide microprocesoare. [2]

Unele modele de plăci de sunet au fost echipate cu procesoare dedicate capabile să amestece semnalul digital multicanal și să aplice efecte audio în timp real deja la începutul anilor 90: exemple de astfel de plăci sunt Gravis Ultrasound și Sound Blaster AWE32 . Cardurile Sound Blaster Audigy și Sound Blaster X-Fi sunt exemple mai noi de astfel de aplicații.

În 2006, AGEIA a anunțat un card suplimentar pentru computere numit PhysX : este conceput pentru a efectua calcule fizice complexe, astfel încât să ușureze sarcinile CPU și GPU și să aloce puterea acestora la calculele rămase. În 2008, Nvidia a cumpărat drepturile asupra cardului și a început să își integreze funcționalitatea cipului, dezvoltând tehnologia CUDA care funcționează într-un mod similar.

De asemenea, în 2006 BigFoot Systems a dezvăluit un card numit "KillerNIC" care rulează propriul nucleu Linux pe un sistem PowerScIC FreeScale de 400 MHz. Cipul FreeScale a fost numit Network Processing Unit sau NPU.

În a doua jumătate a anilor 2000, a fost dezvoltată noua tehnologie Cell , o microarhitectură pentru un procesor de uz general, de la dispozitive încorporate la mainframe , care susține calculul paralel .

În 2008, Apple și ulterior Khronos Group au introdus biblioteca OpenCL , care acceptă o varietate de dispozitive, cum ar fi procesoare, GPU-uri și alte procesoare.

Alți coprocesori

  • FPGA (matrice de poartă programabile în câmp) sunt coprocesoare personalizabile, care pot fi programate pentru a efectua orice sarcină;
  • Acceleratoarele TLS / SSL sunt utilizate pe servere pentru conexiuni criptate ;
  • unele cipuri multi-core pot fi programate astfel încât un procesor să fie cel principal și celelalte să fie tratate ca coprocesoare.

Notă

  1. ^ Coprocesoare I / O , la gigaflop.demon.co.uk , Pagina principală a lui Vas. Adus 16/10/10 .
  2. ^ GPU vs CPU: continuă provocarea dintre nVidia și Intel , pe omniablog.net , OmniaBlog, 04/07/2010. Adus 17-10-2010 .

Elemente conexe

Alte proiecte

linkuri externe

  • Coprocesor , în Treccani.it - ​​Enciclopedii online , Institutul Enciclopediei Italiene.
Controlul autorității LCCN (EN) sh2006005854 · GND (DE) 4232569-9
Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT