Koprocesori za izvođenje bilo kakvih visoko specijaliziranih izračuna. Koprocesor - što je to? Opis i prikazi djela. Koprocesori obitelji Intel x86

Za izvođenje aritmetičkih operacija s pomičnim zarezom postoji poseban aritmetički procesor koji se naziva koprocesor. Za razliku od CPU-a, on ne kontrolira sustav, već čeka CPU naredbu za izvođenje aritmetičkih izračuna i generiranje rezultata. Prema Intelu, u usporedbi s CPU-om, aritmetički koprocesor može smanjiti vrijeme izvršenja aritmetičkih operacija kao što su množenje i stepenovanje za 80% ili više. Brzina kojom se izvode zbrajanje i oduzimanje općenito ostaje nepromijenjena.

Koprocesor je samo uobičajeni naziv za ovaj čip. U potpunosti se naziva matematički koprocesor ili jedinica za numeričku obradu (NPU) ili jedinica za obradu pomičnog zareza (FPU).

Prisutnost koprocesora na matičnoj ploči nije obavezna, pa na njegovom mjestu može postojati prazan utor za daljnju ugradnju koprocesora. Iznimka su svi CPU-i 486DX i noviji - ovdje je koprocesor integriran izravno u CPU.

Primarno područje primjene koprocesora su znanstvene i tehničke primjene povezane s izvođenjem velikog broja aritmetičkih operacija. Međutim, to nije ograničenje upotrebe. Obično NPU ubrzava bilo koji program - čak i program za obradu teksta, jer rad s blokovima teksta i modulima zahtijeva složene izračune. Koprocesor također znatno ubrzava obradu grafičkih slika i izvođenje CAD programa.

radna memorija

Memorijski elementi čine osnovu internog funkcioniranja svakog računalnog sustava, budući da se uz njihovu pomoć podaci pohranjuju i mogu se ponovno očitati tijekom daljnje obrade.

Kako bi CPU mogao izvršavati programe, oni moraju biti učitani u RAM (područje memorije dostupno korisničkom programu). CPU ima izravan pristup podacima koji se nalaze u memoriji s izravnim pristupom (Random Access Memory, RAM), dok procesor radi s drugom "perifernom" ili vanjskom memorijom (flopi i tvrdi diskovi) putem međuspremnika, što je vrsta RAM-a koji nije dostupan korisniku. Tek nakon učitavanja softvera u RAM s vanjskog medija za pohranu moguć je daljnji rad sustava u cjelini. RAM je najbrži medij za pohranu u računalu. Ono što je temeljno važno je da se informacije mogu i pisati i čitati.

RAM ima svoje prednosti i nedostatke:

Zahvaljujući kratkom vremenu pristupa memoriji, brzina obrade podataka značajno se povećava. Kada bi se informacije čitale samo s vanjskog medija, korisnik bi proveo puno vremena čekajući završetak određene operacije

Nedostatak RAM-a je što je to privremena memorija. Kada se napajanje isključi, RAM se potpuno "očisti" i svi podaci koji nisu zapisani na vanjski medij bit će zauvijek izgubljeni

RAM spada u kategoriju dinamičke memorije, tj. njegov sadržaj se mora "osvježavati" u određenim intervalima tijekom rada.

Element za pohranu dinamičke memorije je kondenzator, koji može biti u napunjenom ili ispražnjenom stanju. Ako je kondenzator napunjen, u ćeliju se upisuje logička 1. Ako je kondenzator ispražnjen, u ćeliju se upisuje logička 0. U idealnom kondenzatoru napunjenost se može održavati neograničeno dugo. U pravom kondenzatoru postoji struja curenja, pa će se podaci zabilježeni u dinamičkoj memoriji s vremenom izgubiti, budući da će se kondenzatori elemenata za pohranu potpuno isprazniti nakon nekoliko milisekundi. Kako bi se izbjegao gubitak informacija, postoji proces regeneracije memorije (Refresh).

RAM je ploča (osim starijih modela računala, gdje su se čipovi ugrađivali direktno u matičnu ploču), dužine oko 8 cm, na kojoj se nalaze DRAM (Dynamic RAM) čipovi. Takva se ploča naziva modulom i postavlja se u odgovarajuće utore na matičnoj ploči. Nedavno su DIMM moduli postali najrašireniji. Postojali su i SIP i SIMM moduli. Moduli se umeću u utore posebno dizajnirane za njih na matičnoj ploči, koji se nazivaju banke.

Važna karakteristika (uz volumen) RAM-a je vrijeme pristupa, koje karakterizira vremenski interval tijekom kojeg se informacije upisuju ili čitaju iz memorije. Vrijeme pristupa za vanjske medije kao što su diskete ili tvrdi diskovi izražava se u milisekundama, dok se za memorijske elemente mjeri u nanosekundama.

Logička dodjela memorije

Logička distribucija RAM-a određena je ne samo korištenim operativnim sustavom, već i značajkama hardverske implementacije IBM-kompatibilnih osobnih računala.

Tri su najvažnija logička područja RAM-a:

Konvencionalna memorija Najvažnije memorijsko područje (prvih 640 KB). U njemu se nalazi većina svih aplikacijskih programa i podataka.

UMA (Gornje memorijsko područje) Ovo sadrži informacije koje se koriste za povezivanje aplikacijskih programa s raznim karticama za proširenje. (384 KB smješteno između 640 KB i 1 MB)

XMS (Specifikacija proširene memorije) Sva memorija iznad 1 MB. Koriste ga Windows aplikacije

Matematički koprocesor - koprocesor za proširenje skupa naredbi središnjeg procesora i pružanje funkcionalnosti jedinice s pomičnim zarezom za procesore koji nemaju integrirani modul.

Jedinica s pomičnim zarezom (ili jedinica s pomičnim zarezom (FPU)) dio je procesora za izvođenje širokog raspona matematičkih operacija nad realnim brojevima.

Sustav uključuje oko 80 naredbi. Njihova klasifikacija:

1) Naredbe za prijenos podataka: - Stvarni podaci; - Cjelobrojni podaci; - Decimalni podaci.

2) Naredbe za usporedbu podataka: - Stvarni podaci; - Cjelobrojni podaci; - Analiza; - Od nule.

3) Aritmetičke naredbe: - Stvarni podaci: zbrajanje, oduzimanje, množenje, dijeljenje;

4) Cjelobrojni podaci: zbrajanje, oduzimanje, množenje, dijeljenje; - Pomoćne aritmetičke naredbe (kvadratni korijen, modul, promjena predznaka, eksponent i mantisa).

5) Transcendentalne naredbe: - Trigonometrija: sinus, kosinus, tangens, arktangens; - Izračunavanje logaritama i potencija.

6) Upravljačke naredbe: - Inicijalizacija koprocesora; - Rad s okolinom; - Rad sa stogom; - Promjena načina rada

Koprocesor- specijalizirani procesor koji proširuje mogućnosti središnjeg procesora računalnog sustava, ali je dizajniran kao zasebni funkcionalni modul. Fizički, koprocesor može biti zaseban čip ili može biti ugrađen u središnju procesorsku jedinicu (kao što je slučaj s matematičkim koprocesorom u PC procesorima počevši od Intel 486DX).

Matematički koprocesor 80x287 u bloku na matičnoj ploči osobnog računala.

Razlikuju se sljedeće vrste koprocesora:

Matematički koprocesori opće namjene, koji obično ubrzavaju izračune s pomičnim zarezom,

· I/O koprocesori (na primjer, Intel 8089), koji oslobađaju središnji procesor od kontrole I/O operacija ili proširuju standardni adresni prostor procesora,

· koprocesori za izvođenje bilo kakvih visoko specijaliziranih izračuna.

Koprocesori mogu biti dio logičkog skupa koji je razvila jedna određena tvrtka (na primjer, Intel je izdao koprocesore 8087 i 8089 u paketu s procesorom 8086) ili proizvedeni od strane proizvođača treće strane (na primjer, Weitek 1064 za Motorola m68k i 1067 za Intel 80286).

Čipovi generatora zvuka- specijalizirani mikrosklopovi za generiranje zvuka. Mogu se koristiti za reprodukciju zvučnih efekata i sintetizirane glazbe (vidi chiptune) u računalima, igraćim sustavima (konzole, strojevi) i kućanskim aparatima. Engleski naziv za mikrosklopove ove vrste je zvučni čip, u ruskoj tehničkoj terminologiji postoji kratica PGŽ- programabilni generator zvuka. Mogu biti svi digitalni, svi analogni ili mješoviti. Oni mogu uključivati ​​generatore frekvencije (obično temeljene na dijeljenju frekvencije ulaznog takta s faktorom dijeljenja softverske varijable), kontrolere omotnice, krugove za reprodukciju uzoraka, filtre i pojačala signala.

Generatori zvuka mogu se podijeliti u dvije glavne kategorije - oni koji izravno sintetiziraju zvuk i oni koji reproduciraju prethodno digitalizirane zvukove. Prvu kategoriju također možemo podijeliti prema principu rada na jednostavne frekvencijske sintetizatore (izgrađene na frekvencijskim razdjelnicima s dodatnim komponentama) i sintetizatore koji koriste metodu frekvencijske modulacije (FM sinteza, temeljena na međusobnoj modulaciji nekoliko generatora zvuka).

Na ruskom se često nazivaju čipovi generatora zvuka (ko)procesori zvuka. Međutim, ova je definicija netočna - čipovi generatora zvuka ne obrađuju zvučne podatke (glavna funkcija procesora), oni generiraju zvuk prema jednom hardverski definiranom algoritmu, prema uputama procesora sustava izvan njih. Ime procesor zvuka može se primijeniti na procesore digitalnih signala koji se koriste za obradu zvuka (na primjer, stvaranje softverski kontroliranog efekta jeke), kao i na čipove generatora zvuka koji sadrže mikroprocesor.

GPU(Engleski) jedinica za grafičku obradu, GPU) - zaseban uređaj na osobnom računalu ili igraćoj konzoli koji izvodi grafički prikaz. Moderni GPU vrlo učinkovito obrađuju i prikazuju računalnu grafiku. Zahvaljujući svojoj specijaliziranoj arhitekturi cjevovoda, mnogo su učinkovitiji u obradi grafičkih informacija od tipične središnje procesorske jedinice. Grafički procesor u modernim video adapterima koristi se kao akcelerator 3D grafike.

Može se koristiti i kao dio diskretne video kartice i u integriranim rješenjima (ugrađen u sjeverni most ili hibridni procesor).

Probabilistički procesor djeluje s vjerojatnostima na hardverskoj razini. Matematički aparat temelji se na Bayesovom teoremu

Na neki način probabilistički procesor implementira analogno računanje koristeći CMOS tehnologiju. Ovaj pristup, teoretski, omogućuje učinkovitu implementaciju približnih izračuna temeljenih na neizrazitoj logici ili neuronskim mrežama

· 1 Prijave

· 2 prototipa

Područja primjene[uredi | uredi izvorni tekst]

Probalistički procesor je specijalizirani procesor i prvenstveno će se koristiti u sustavima za prepoznavanje uzoraka. Primjerice, u biometriji, za dijagnosticiranje bolesti, u raznim nadzornim sustavima, u sustavima tehničkog vida, sustavima za prepoznavanje glasa, filtriranju neželjene pošte, phishingu, utvrđivanju kreditne sposobnosti zajmoprimaca i mnogim drugim poslovima. Probabilistički pristup također uključuje rješavanje tehničkih problema primjenom stohastičkih metoda (Monte Carlo metoda), uz bilo koju traženu točnost rješenja.

Predviđeno je da se procesor vjerojatnosti može koristiti u modernim računalima kao još jedan koprocesor uz grafički procesor, procesor signala ili FPGA, pružajući veliku brzinu i učinkovitost za rješavanje širokog spektra specijaliziranih problema.

Matematički koprocesor- koprocesor za proširenje skupa naredbi središnjeg procesora i njegovu funkcionalnost jedinica s pomičnim zarezom, za procesore koji nemaju integrirani modul.

Jedinica s pomičnim zarezom(ili pokretni zarez; Engleski jedinica s pomičnim zarezom (FPU)) - dio procesora za izvođenje širokog spektra matematičkih operacija nad realnim brojevima.

Jednostavni "cjelobrojni" procesori za rukovanje realnim brojevima i matematičkim operacijama zahtijevaju odgovarajuće potporne rutine i vrijeme za njihovo izvršenje. Modul operacija s pomičnim zarezom podržava rad s njima na primitivnoj razini - učitavanje, istovar realnog broja (u/iz specijaliziranih registara) ili matematička operacija nad njima izvodi se jednom naredbom, zbog čega je značajno ubrzanje takvih operacija postignuto.

· 1 koprocesor

o 1.1 koprocesori obitelji Intel x86

o 1.2 x86 koprocesori treće strane

o 1.3 Ostale platforme

· 2 FPU uređaj

o 2.1 Formati podataka

o 2.2 Registri

o 2.3 Sustav naredbi koprocesora

· 3 Vidi također

· 4 bilješke

Koprocesori[uredi | uredi izvorni tekst]

Glavni članak:X87

x87 je poseban skup uputa za rad s matematičkim izračunima, koji je podskup x86 procesorske arhitekture. Dobio je ovo ime jer su izvorni pojedinačni matematički koprocesorski čipovi imali nazive koji su završavali na 87 . Kao i druga proširenja osnovnog skupa instrukcija procesora, ove instrukcije nisu striktno potrebne za izradu programa koji radi, ali kada su implementirane u hardveru, omogućuju puno brže izvođenje uobičajenih matematičkih zadataka. Na primjer, u skupu uputa x87 Postoje naredbe za izračunavanje vrijednosti sinusa ili kosinusa.

Intelovi koprocesori obitelji x86[uredi | uredi izvorni tekst]

Za x86 obitelj procesora od 8086/8088 do 386, jedinica s pomičnim zarezom dodijeljena je zasebnom čipu zvanom matematički koprocesor. Za ugradnju koprocesora na ploču računala osiguran je poseban konektor.

Koprocesor nije punopravni procesor, jer ne zna kako napraviti mnoge operacije potrebne za to (na primjer, ne zna kako raditi s programom i izračunati memorijske adrese), budući da je samo dodatak središnji procesor.

Jedna od shema interakcije između središnjeg procesora i koprocesora, koja se posebno koristi u x86 koprocesorima, implementirana je na sljedeći način:

· Koprocesor je spojen na sabirnice središnjeg procesora, a ima i nekoliko posebnih signala za međusobno usklađivanje procesora.

· Neki od kodova naredbi središnjeg procesora rezervirani su za koprocesor; on nadzire tijek naredbi, zanemarujući druge naredbe. Središnji procesor, naprotiv, ignorira naredbe koprocesora, računajući adresu u memoriji samo ako naredba uključuje pristup njoj. CPU izvodi lažni ciklus čitanja, dopuštajući koprocesoru da pročita adresu iz adresne sabirnice. Ako koprocesor treba dodatni pristup memoriji (za čitanje ili pisanje rezultata), on to obavlja preko snimanja sabirnice.

· Nakon što primi naredbu i potrebne podatke, koprocesor počinje s njezinim izvršavanjem. Dok koprocesor izvršava naredbu, središnji procesor nastavlja izvršavati program, paralelno s proračunima koprocesora. Ako je sljedeća instrukcija također koprocesorska instrukcija, procesor se zaustavlja i čeka da koprocesor završi prethodnu instrukciju.

· Postoji i posebna naredba čekanja (FWAIT), koja prisilno zaustavlja procesor dok se izračuni ne završe (ako su njihovi rezultati potrebni za nastavak programa). Trenutačno se naredba koristi samo za rukovanje iznimkama pri radu s pomičnim zarezom; rad procesora i koprocesora transparentno je sinkroniziran programeru.

Počevši od Intel486DX procesora, jedinica s pomičnim zarezom integrirana je u središnji procesor i nazvana FPU. U liniji Intel486SX FPU modul je bio onemogućen (isprva je ova linija uključivala procesore s neispravnim FPU-om). Za Intel486SX procesore također je objavljen Intel487SX "koprocesor", ali, zapravo, to je bio Intel486DX procesor i kada je instaliran, Intel486SX procesor je bio onemogućen.

Unatoč integraciji, FPU u i486 procesorima je nepromijenjeni koprocesor, implementiran na istom čipu; štoviše, i486 FPU sklop je potpuno identičan koprocesoru prethodne generacije 387DX sve do frekvencije takta (polovica frekvencije središnjeg procesora). Prava integracija FPU-a sa središnjim procesorom započela je tek u Pentium procesorima MMX modela.

Važan dio Intelove mikroprocesorske arhitekture je prisutnost uređaja za obradu numeričkih podataka u formatu s pomičnim zarezom, tzv. matematički koprocesor.Arhitektura mikroprocesorskih računala u početku se oslanjala isključivo na cjelobrojnu aritmetiku. S porastom snage počeli su se pojavljivati ​​uređaji za obradu brojeva s pomičnim zarezom. U arhitekturi obitelji mikroprocesora Intel 8086, uređaj za obradu brojeva s pomičnim zarezom pojavio se kao dio računala temeljenog na mikroprocesoru i8086/88 i nazvan je matematički koprocesor ili jednostavno koprocesor. Odabir ovog naziva bio je zbog činjenice da

  • prvo, ovaj je uređaj namijenjen proširenju računalnih mogućnosti glavnog procesora;
  • drugo, implementiran je kao zaseban čip, odnosno njegova prisutnost bila je opcionalna. Koprocesorski čip za mikroprocesor i8086/88 nazvan je i8087.

Pojavom novih modela Intelovih mikroprocesora poboljšali su se i koprocesori, iako je njihov programski model ostao gotovo nepromijenjen. Kao zasebni (i prema tome opcijski u određenoj konfiguraciji računala) uređaji, koprocesori su zadržani do modela mikroprocesora i386 i nazvani su i287 odnosno i387. Počevši od modela i486, koprocesor je implementiran u istom paketu kao i glavni mikroprocesor te je stoga sastavni dio računala.

Glavne karakteristike matematičkog koprocesora:

  • Potpuna podrška za IEEE-754 i 854 aritmetičke standarde s pomičnim zarezom. Ovi standardi opisuju i formate podataka s kojima koprocesor mora raditi i skup funkcija koje implementira;
  • podrška za numeričke algoritme za izračunavanje vrijednosti trigonometrijskih funkcija, logaritama itd.;
  • obrada decimalnih brojeva s 18-bitnom preciznošću, koja omogućuje koprocesoru izvođenje aritmetičkih operacija bez zaokruživanja cijelih decimalnih brojeva s vrijednostima do 10 18;
  • obrada realnih brojeva iz raspona ±3.37x10 -4932 ...1.18x10 +4932.

Opisan je oblik prikaza brojeva s pomičnim zarezom.

Opći oblik predstavljanja realnih brojeva sugerira mogućnost postavljanja sljedećih tipova u bitnu mrežu.

Vrsta brojeva Znak Stupanj Cijeli Kazaljka
+∞ 0 11…11 1 00…00
pozitivan
normalizirao
0 00…01 — 11…10 1 00…00 — 11…11
pozitivan nestandardiziran 0 00…00 0 00…00 — 11…11
0 0, 1 00…00 0 00…00
negativan nestandardiziran 1 00…00 0 00…00 — 11…11
negativno normalizirano 1 00…01 — 11…10 1 00…00 — 11…11
-∞ 1 11…11 1 00…00
nebrojeno mnogo
(NaN - nije broj)
* 11…11 1 **…** ≠0

Jednostavni brojevi i brojevi dvostruke preciznosti (float (DD) i double (DQ) redom) mogu se prikazati samo u standardiziranom obliku. U ovom slučaju, bit cijelog dijela broja je skriven i implicira logičku 1. Preostala 23 (52) bita pohranjuju binarnu mantisu broja.

Brojevi dvostruke proširene preciznosti (long double (DT)) mogu se prikazati u normaliziranom ili nestandardiziranom obliku, budući da cijeli bit broja nije skriven i može poprimiti vrijednosti 0 ili 1.

Glavni tip podataka s kojim radi matematički koprocesor su 10-bajtni podaci (DT).

Programski model koprocesora

Programski model koprocesora je skup registara od kojih svaki ima svoju funkcionalnu svrhu.

U softverskom modelu koprocesora mogu se razlikovati tri skupine registara:

  • Osam registara r0…r7, koji čine osnovu softverskog modela koprocesora - koprocesorski stog . Veličina svakog registra je 80 bita. Ova organizacija tipična je za uređaje specijalizirane za obradu računalnih algoritama.
  • Tri servisna registra:
    — registar statusa koprocesora swr (Status Word Register) - odražava informacije o trenutnom stanju koprocesora;
    — upravljački registar koprocesora cwr (Control Word Register) - upravlja načinima rada koprocesora;
    — registar oznaka twr (Tags Word Register) - koristi se za praćenje stanja svakog od registara steka.
  • Dva pokazivačka registra - naredbe dpr (Registar podatkovne točke) i ipr (Registar instrukcijske točke). Oni su dizajnirani za pohranjivanje informacija o adresi instrukcije koja je uzrokovala iznimku i adresi njenog operanda. Ovi se pokazivači koriste pri rukovanju iznimkama (ali ne za sve naredbe).

Svi navedeni registri su programski dostupni. Međutim, pristup nekima od njih je prilično jednostavan, za tu svrhu postoje posebne naredbe u sustavu naredbi koprocesora. Ostalim registrima je teže pristupiti jer za to ne postoje posebne naredbe pa se moraju izvršiti dodatni koraci.

swr statusni registar– odražava trenutno stanje koprocesora nakon izvršenja zadnje naredbe. Registar swr sadrži polja koja vam omogućuju da odredite: koji je registar trenutni vrh stoga koprocesora, koje su se iznimke dogodile nakon izvršenja zadnje naredbe, koje su značajke posljednjeg izvršenja naredbe (neka vrsta analoga registra zastavica glavnog procesora).

Strukturno, SWR registar se sastoji od:

  • 6 oznaka iznimke PE, OE, UE, ZE, DE, IE.
    Iznimke su vrsta prekida, uz pomoć kojih procesor obavještava program o nekim značajkama njegovog stvarnog izvršenja. Koprocesor također ima mogućnost pokretanja takvih prekida kada se dogode određene situacije (ne nužno pogrešne). Sve moguće iznimke svedene su na 6 vrsta, od kojih svaka odgovara 1 bitu u swr registru. Programer ne mora napisati rukovatelj kako bi odgovorio na situaciju koja je dovela do neke iznimke. Koprocesor može samostalno odgovoriti na mnoge od njih. To se zove zadano rukovanje iznimkama. Da bi se određena vrsta iznimke obrađivala prema zadanim postavkama, iznimka mora biti nezamaskirana. Ova radnja se izvodi postavljanjem odgovarajućeg bita u kontrolnom registru koprocesora cwr na 1. Vrste izuzetaka uhvaćenih pomoću SWR registra:
    • IE (Invalide operation Error) - nevažeći kod operacije;
    • DE (Denormalized operand Error) - nenormalizirani operand;
    • ZE (divide by Zero Error) - pogreška dijeljenja s nulom;
    • OE (Overflow Error) - pogreška preljeva. Javlja se kada redoslijed broja premašuje najveći dopušteni raspon;
    • UE (Underflow Error) - pogreška protiv preljeva. Javlja se kada je rezultat premali (blizu nule);
    • PE (Precision Error) - pogreška preciznosti. Postavite kada koprocesor mora zaokružiti rezultat jer se ne može točno prikazati. Dakle, koprocesor nikada neće moći točno podijeliti 10 sa 3.

    Kada se dogodi bilo koji od ovih šest tipova iznimke, odgovarajući bit u swr registru postavlja se na jedan, bez obzira je li iznimka maskirana u cwr registru ili ne.

  • Bit pogreške steka SF koprocesora (Greška niza). Bit se postavlja na 1 ako se dogodi jedna od tri iznimne situacije - PE, UE ili IE. Konkretno, njegova instalacija obavještava o pokušaju pisanja na puni stog ili, obrnuto, pokušaju čitanja s praznog stoga. Nakon što je vrijednost ovog bita analizirana, mora se ponovno postaviti na 0, zajedno s PE, UE i IE bitovima (ako su postavljeni);
  • bit ukupne pogreške koprocesora ES (Error Summary). Bit je postavljen na 1 ako se dogodi bilo koji od šest gore navedenih izuzetaka;
  • četiri bita c0…c3 (Kod uvjeta) - kod uvjeta. Svrha ovih bitova slična je zastavicama u EFLAGS registru glavnog procesora - da odražavaju rezultat izvršenja posljednje naredbe koprocesora.
  • trobitno TOP polje. Polje sadrži pokazivač registra na trenutni vrh stoga.
  • koprocesor zauzeti bit B.

Upravljački registar koprocesora cwr– utvrđuje značajke obrade numeričkih podataka. Pomoću polja u registru cwr možete prilagoditi točnost numeričkih izračuna, kontrolirati zaokruživanje i maskirati iznimke.

Sastoji se od:

  • šest maski izuzetaka PM, UM, OM, ZM, DM, IM;
  • PC precizna kontrolna polja (Precision Control);
  • RC (Rounding Control) polja za kontrolu zaokruživanja.

Maske iznimaka dizajnirane su za maskiranje iznimaka, čije se pojavljivanje bilježi pomoću šest bitova swr registra. Ako je bilo koji bit maske iznimke u cwr registru postavljen na 1, tada će odgovarajuće iznimke obraditi sam koprocesor. Ako odgovarajući bit maske iznimke registra cwr sadrži 0 za bilo koju iznimku, tada će se pokrenuti prekid int 16 (10h) kada se dogodi iznimka te vrste. Operativni sustav mora sadržavati (ili programer mora napisati) rukovatelj za ovaj prekid. On mora otkriti uzrok prekida, a zatim ga, ako je potrebno, ispraviti i poduzeti druge radnje.

2-bitno kontrolno polje preciznosti PC koristi se za odabir duljine mantise. Moguće vrijednosti u ovom polju znače:

  • PC =00 - duljina mantise 24 bita;
  • PC =10 - duljina mantise 53 bita;
  • PC =11 - duljina mantise 64 bita.

Zadana vrijednost polja je PC =11.

Kontrolno polje RC zaokruživanja omogućuje kontrolu procesa zaokruživanja brojeva tijekom rada koprocesora. Potreba za operacijom zaokruživanja može se pojaviti u situaciji kada se, nakon izvršavanja sljedeće naredbe koprocesora, dobije rezultat koji se ne može prikazati, na primjer, periodični razlomak. Postavljanjem jedne od vrijednosti u polju RC možete zaokružiti u željenom smjeru.
Vrijednosti RC polja s odgovarajućim algoritmom zaokruživanja:

  • 00 - vrijednost se zaokružuje na najbliži broj koji se može prikazati u bitskoj mreži registra koprocesora;
  • 01 - vrijednost je zaokružena prema dolje;
  • 10 - vrijednost je zaokružena;
  • 11 - razlomački dio broja se odbacuje. Koristi se za smanjenje vrijednosti u oblik koji se može koristiti u cjelobrojnim aritmetičkim operacijama.

Bit 12 u registru cwr fizički nedostaje i čita se kao 0.

twr registar oznaka– je skup dvobitnih polja. Svako polje odgovara određenom fizičkom registru steka i karakterizira njegovo trenutno stanje. Instrukcije koprocesora koriste ovaj registar, na primjer, kako bi odredile mogu li se vrijednosti pisati u te registre. Promjena stanja bilo kojeg registra steka odražava se na sadržaj 2-bitnog polja registra oznake koji odgovara ovom registru. U poljima registra oznaka moguće su sljedeće vrijednosti:

  • 00 - registar stoga koprocesora je zauzet s valjanom vrijednošću različitom od nule;
  • 01 - registar steka koprocesora sadrži nultu vrijednost;
  • 10 - registar stoga koprocesora sadrži jednu od posebnih numeričkih vrijednosti, s izuzetkom nule;
  • 11 - registar je prazan i može se pisati u njega. Ova vrijednost u dvobitnom polju registra oznake ne znači da svi bitovi odgovarajućeg registra steka moraju biti nula.
Kako radi koprocesor

Registarski stog koprocesora organiziran je po principu prstena. Među osam registara koji čine stog, ne postoji niti jedan koji je vrh steka. Svi registri steka su apsolutno identični i imaju jednaka prava s funkcionalnog gledišta. Vrh prstenastog stoga koprocesora lebdi. Trenutni vrh se kontrolira hardverski pomoću 3-bitnog gornjeg polja swr registra.


Gornje polje bilježi broj registra steka r0…r7, koji je trenutno trenutni vrh steka.
Instrukcije koprocesora ne rade s fizičkim brojevima registara steka r0…r7, već s njihovim logičkim brojevima st(0)…st(7). Korištenjem logičkih brojeva implementirano je relativno adresiranje registara steka koprocesora. Na primjer, ako je trenutni vrh prije pisanja u stog fizički registar stoga r3, tada nakon pisanja na stog trenutni vrh postaje fizički registar stoga r2. Odnosno, kako se stog zapisuje, pokazivač na vrhu stoga pomiče se prema nižim brojevima fizičkih registara (smanjuje se za jedan). Ako je trenutni vrh r0, tada će nakon upisa sljedeće vrijednosti u stog koprocesora, njegov trenutni vrh postati fizički registar r7. Što se tiče logičkih brojeva registara steka st(0)…st(7), oni se pomiču zajedno s promjenom trenutnog vrha stoga. Logički vrh steka uvijek se naziva st(0) .
Budući da programer manipulira relativnim, a ne apsolutnim brojevima registra steka kada piše program, može imati poteškoća u tumačenju sadržaja twr registra oznake s odgovarajućim fizičkim registrima steka. Kao poveznica potrebno je koristiti podatke iz gornjeg polja SWR registra. Ovako se provodi princip prstena.
Ova organizacija stogova ima veliku fleksibilnost, osobito pri prosljeđivanju parametara proceduri. Kako bi se povećala fleksibilnost razvoja i korištenja procedura, nije preporučljivo vezati ih za hardverske resurse (brojeve fizičkog registra koprocesora) u smislu odaslanih parametara. Mnogo je prikladnije odrediti redoslijed odaslanih parametara u obliku brojeva logičkog registra. Takva metoda prijenosa bila bi nedvosmislena i ne bi zahtijevala od programera da zna nepotrebne detalje o hardverskim implementacijama koprocesora. Logičko numeriranje registara koprocesora, podržano na razini skupa instrukcija, idealno implementira ovu ideju. U ovom slučaju nije važno u koji su fizički registar stoga koprocesora podaci smješteni prije poziva potprograma; određuje samo redoslijed parametara na stogu. Iz tog razloga, važno je da potprogram zna samo redoslijed kojim su proslijeđeni parametri postavljeni na stog.

Princip rada koprocesora zajedno sa središnjim procesorom
Procesor i koprocesor imaju svoje zasebne sustave instrukcija i obrađene formate podataka. Iako je koprocesor arhitektonski zaseban računalni uređaj, ne može postojati odvojeno od glavnog procesora. Procesor i koprocesor, kao dva neovisna računalna uređaja, mogu raditi paralelno. Ali ova se paralelizacija odnosi samo na izvršavanje naredbi. Oba procesora povezana su na zajedničku sistemsku sabirnicu i imaju pristup istim informacijama. Glavni procesor uvijek pokreće proces dohvaćanja sljedeće instrukcije. Nakon uzorkovanja, naredba dolazi do oba procesora istovremeno. Svaka koprocesorska naredba ima operacijski kod, čijih prvih pet bitova ima vrijednost 11011. Kada operativni kod počinje ovim bitovima, glavni procesor na temelju daljnjeg sadržaja operacijskog koda utvrđuje da li ova naredba zahtijeva pristup memoriji. . Ako je to slučaj, tada glavni procesor generira fizičku adresu operanda i pristupa memoriji, nakon čega se sadržaj memorijske ćelije izlaže podatkovnoj sabirnici. Ako pristup memoriji nije potreban, tada glavni procesor završava rad na danoj instrukciji (bez pokušaja da je izvrši) i počinje dekodirati sljedeću instrukciju iz trenutnog ulaznog toka instrukcija. Odabrana naredba ulazi u koprocesor istovremeno s glavnim procesorom. Koprocesor, nakon što je na temelju prvih pet bitova utvrdio da sljedeća naredba pripada njegovom sustavu instrukcija, započinje njezino izvršenje. Ako instrukcija zahtijeva operande iz memorije, koprocesor pristupa sabirnici podataka kako bi pročitao sadržaj memorijske ćelije, koji u tom trenutku daje glavni procesor.

U određenim slučajevima potrebno je uskladiti rad oba uređaja. Na primjer, ako u ulaznom toku naredba iz koprocesora odmah slijedi naredba iz glavnog procesora koja koristi rezultate prethodne naredbe, tada koprocesor neće imati vremena izvršiti svoju naredbu prije glavnog procesora, nakon što je preskočio naredba koprocesora, izvršava vlastitu. U tom će slučaju logika programa biti prekinuta. Moguća je i druga situacija. Ako ulazni tok naredbi sadrži slijed nekoliko naredbi koprocesora, procesor će ih vrlo brzo proći, ali mora osigurati vanjsko sučelje koprocesoru. Ove i druge, složenije situacije dovode do potrebe za sinkronizacijom rada dvaju procesora međusobno. U prvim modelima mikroprocesora to se radilo umetanjem posebne naredbe čekaj ili fwait prije ili poslije svake instrukcije koprocesora. Rad ove naredbe bio je obustaviti rad glavnog procesora dok koprocesor ne završi rad na zadnjoj naredbi. U mikroprocesorskim modelima (počevši od i486) takva se sinkronizacija izvodi automatski. No za neke naredbe iz skupine koprocesorskih upravljačkih naredbi moguće je birati između naredbi sa sinkronizacijom (na čekanju) i bez nje.

Matematički koprocesor je poseban modul za izvođenje operacija s pomičnim zarezom koji radi u sprezi sa središnjim procesorom.
Matematički koprocesor nije obavezan element osobnog računala. U principu, možete ga odbiti. To se radilo u prošlosti iz ekonomskih razloga.
Međutim, pri rješavanju problema koji su zahtijevali veliki broj matematičkih izračuna, na primjer, u znanstvenim ili inženjerskim proračunima, pitanje povećanja performansi računala postalo je akutno.
Da bi to učinili, odlučili su koristiti dodatni specijalni procesor, koji je "podešen" za izvođenje matematičkih operacija i provodi ih mnogo puta brže od središnjeg procesora. Tako je bilo moguće povećati performanse središnjeg procesora kroz poseban modul - matematički koprocesor.
Za razliku od središnjeg procesora, matematički koprocesor ne upravlja većinom sklopova računala. Umjesto toga, sve aktivnosti matematičkog koprocesora određuje središnji procesor, koji može slati naredbe matematičkom koprocesoru za izvršavanje programa i generiranje rezultata. U normalnom načinu rada središnja procesorska jedinica obavlja sve funkcije računala. I tek kada se naiđe na zadatak koji matematički koprocesor može bolje riješiti, zadaju mu se podaci i naredbe, a središnji procesor čeka rezultate. Takvi problemi uključuju, na primjer, matematičke operacije između realnih brojeva (operacije između brojeva s pomičnim zarezom), gdje su brojevi predstavljeni mantisom i ordinatom (decimalna potencija broja koja određuje položaj decimalne točke).
Ako je ranije, u računalima prvih generacija (i80386, i80486), modul matematičkog koprocesora bio instaliran na matičnoj ploči kao zasebni čip, tada u modernim računalima nije potrebna upotreba matematičkog koprocesora kao zasebnog čipa, budući da je već ugrađen u središnji procesor.
Prednosti koje dobivate korištenjem matematičkog koprocesora ovise o vrsti problema koje rješavate na računalu.
Prema INTEL-u, matematički koprocesor može smanjiti vrijeme izvršenja matematičkih operacija kao što su množenje, dijeljenje i stepenovanje za 80 posto ili više. Brzina jednostavnih matematičkih operacija, poput zbrajanja i oduzimanja, ostaje nepromijenjena.
S praktičnog gledišta, performanse osobnog računala vezane uz pripremu teksta i održavanje baze podataka (funkcije koje ne zahtijevaju složene matematičke izračune) ne mogu se poboljšati matematičkim koprocesorom. Međutim, dobit ćete primjetan porast produktivnosti pri provođenju znanstvenih i inženjerskih proračuna, obradi statističkih podataka, kao i pri radu s grafikom, budući da potonja zahtijeva intenzivne matematičke izračune.

Obični korisnici uglavnom nikad ne razmišljaju o tome što je koprocesor, a velika većina niti ne zna za njegovo postojanje. Sve se mijenja kada se operativni sustav, zavidnom upornošću, počne ponašati i prikazuje poruke da odgovarajući upravljački program nije pronađen. Što učiniti u takvoj situaciji? Postoji dosta rješenja koja se mogu pronaći, ali bez potpunog razumijevanja onoga što je ovaj uređaj, niti jedno od njih neće u potpunosti riješiti problem koji se pojavio.

Što je koprocesor: opće razumijevanje

Moglo bi vas zanimati:

Prije svega, pogledajmo što je to i čemu služi. Na temelju naziva ovog uređaja lako je zaključiti da se radi o nekoj vrsti dodatnog procesora koji se ugrađuje u računalni sustav uz glavni (središnji). Kao i CPU, koprocesor je montiran na matičnu ploču. Međutim, potrebno je razlikovati glavne mogućnosti njegove instalacije. Što se tiče koprocesorskog uređaja, može se predstaviti i u obliku zasebnog mikro kruga (čipa), za koji je na matičnoj ploči dodijeljeno posebno mjesto za montažu (sabirnica), i u obliku komponente ugrađene izravno u središnji procesor. .