Koprocesor: architektura, działanie, typy i zastosowania

Wypróbuj Nasz Instrument Do Eliminowania Problemów





W mikroprocesor chip, dodano nowe obwody, aby wykonać specjalne zadania, a także operacje na liczbach, aby odciążyć pracę rdzenia procesora, dzięki czemu procesor może działać bardzo szybko. Dodatkowy procesor, taki jak koprocesor, jest używany głównie w komputerach do wykonywania specjalnych zadań, takich jak przetwarzanie graficzne i szerokie obliczenia arytmetyczne. Ten procesor jest przeznaczony do wykonywania takich zadań bardzo wydajnie w porównaniu z procesorem, dzięki czemu można zwiększyć ogólną prędkość komputera. W tym artykule omówiono przegląd a koprocesor –architektura, praca i jej zastosowania.


Co to jest koprocesor?

Procesor, który współpracuje z głównym procesorem komputera, takim jak procesor, jest nazywany koprocesorem. Ten procesor jest również nazywany dodatkowym procesorem komputerowym. Za pomocą tego procesora można wykonywać niektóre trudne obliczenia matematyczne, takie jak grafika wyświetlana na ekranie, przetwarzanie sygnałów, przetwarzanie ciągów znaków, arytmetyka zmiennoprzecinkowa, interfejs wejścia-wyjścia itp.



  Koprocesor
Koprocesor

Architektura koprocesora

Koprocesor podobny do architektury 8087 pokazano poniżej. Generalnie ten koprocesor współpracuje z mikroprocesorem równolegle. Ten koprocesor został opracowany przez firmę Intel i używany z 16-bitowymi mikroprocesorami z rodziny 8086. Gdy procesor działa w połączeniu z mikroprocesorem, część obliczeniowa jest po prostu obsługiwana przez procesor, co pozwala procesorowi na wykorzystanie zasobów do wykonywania różnych innych czynności.

Poniższy rysunek przedstawia architekturę koprocesora 8087. Ta architektura obejmuje dwie główne jednostki, takie jak jednostka sterująca i numeryczna jednostka wykonawcza, która jest również nazywana NEU.



  Architektura koprocesora 8087
Architektura koprocesora 8087

W jednostce sterującej znajdują się różne jednostki, takie jak bufor danych, rejestr słów sterujących i statusowych, współdzielona kolejka operandów, wskaźnik wyjątków oraz jednostka adresowania i śledzenia magistrali. Numeric Execution Unit lub NEU zawiera głównie jednostkę sterującą mikrokodem, stos rejestrów, programowalny przesuwnik, tymczasowe rejestry , moduł arytmetyczny, moduł wykładniczy i współdzielona kolejka operandów.

Jednostka sterująca w koprocesorze ma sterować wykonaniem instrukcji (IE), za które odpowiada Numeric Execution Unit. Przeważnie jednostka sterująca mikrokodem (CU) numerycznej jednostki wykonawczej otrzymuje instrukcje numeryczne z jednostki sterującej koprocesora. Koprocesor ten posiada kompletne 8 rejestrów po 80 bitów i każdy z nich jest wykorzystywany w stosie LIFO. Operandy, na których wystąpią instrukcje koprocesora, istnieją w stosie rejestrów.

  PCBWay

Istniejący stos jest wskazywany przez 3-bitowy SP (wskaźnik stosu), który przechowuje wartości binarne z zakresu od 000 do 111, aby pokazać 8 rejestrów stosu. Działa w trybie stosu kołowego w trybie LIFO. Ale po wystąpieniu akcji resetowania wskaźnik można zainicjować wartością binarną „000”.

Trzy klasyfikacje danych numerycznych, na których działają funkcje koprocesora, to upakowane liczby dziesiętne, liczby rzeczywiste i binarne liczby całkowite. Binarne liczby całkowite to trzy typy: 16-bitowa liczba całkowita, 32-bitowa krótka liczba całkowita i 64-bitowa długa liczba całkowita. 80-bitowy format BCD oznacza spakowane liczby dziesiętne, podczas gdy liczby rzeczywiste są 3 typy; 32-bitowa krótka rzeczywista, 64-bitowa długa rzeczywista i 80-bitowa tymczasowa rzeczywista.

Do przesyłania danych numerycznych w koprocesorze: a Wykorzystywana jest 16-bitowa magistrala wykładników lub 64-bitowa magistrala mantysy . Koprocesor zawiera 16-bitowe słowo sterujące i 16-bitowe słowo stanu.

Słowo kontrolne jest zapisywane w rejestrze kontrolnym i odbywa się to w taki sposób, że koprocesor początkowo zapisuje słowo kontrolne w miejscu pamięci. Następnie koprocesor po prostu odczytuje słowo kontrolne przy użyciu lokalizacji pamięci i zapisuje je w rejestrze kontrolnym.

Podobnie, słowo statusowe odczytuje się w taki sposób, że procesor wysyła dane z rejestru stanu do miejsca w pamięci. Ponadto ten koprocesor odczytuje rejestr stanu z tej określonej lokalizacji pamięci. Oznacza to, że procesor i mikroprocesor komunikują się ze sobą za pośrednictwem pamięci głównej.

Jak działa koprocesor?

Koprocesor jest przeznaczony głównie do pracy z procesorami 8086 i 8088. Koprocesor pomaga systemowi działać wydajniej poprzez odciążenie określonych zadań procesora. Gdy ten procesor działa w połączeniu z mikroprocesorem, instrukcje zarówno mikroprocesora, jak i koprocesora są integrowane podczas pisania programu. Początek instrukcji w programie języka asemblera ma literę „F”, która reprezentuje instrukcje koprocesora, podczas gdy instrukcje bez przedrostka „F” oznaczają instrukcje mikroprocesora.

Na początku instrukcje są pobierane przez mikroprocesor z lokalizacji pamięci i kolejno ładowane do kolejki, w tym samym czasie koprocesor 8087 również odczytuje i przechowuje instrukcje w kolejce wewnętrznej. Oznacza to, że każda pojedyncza instrukcja może być odczytywana zarówno przez koprocesor, jak i procesor, jednak w czasie wykonywania zarówno koprocesor, jak i mikroprocesor mogą wykonywać swoje określone instrukcje. Oznacza to, że instrukcja jest odczytywana i dekodowana. Jeśli mikroprocesor sprawdzi, czy istnieje instr koprocesora, wówczas ta instrukcja jest traktowana jako Brak operacji. Podobnie, jeśli ten koprocesor zbliży się do dowolnej instrukcji mikroprocesora, zostanie to potraktowane jako brak operacji.

Rodzaje koprocesorów

Dostępne są różne koprocesory w zależności od producentów, jak poniżej.

Koprocesor Intel 8087

Intel 8087 to specjalnie zaprojektowany koprocesor, który jest używany do wykonywania obliczeń matematycznych obejmujących wartości zmiennoprzecinkowe i całkowite. Czasami jest również znany jako numeryczny procesor danych i procesor matematyczny. Jest to koprocesor numeryczny dla procesorów Intel 80188, 8086, 80186 i 8088. Koprocesor 8087 zawiera osiem 80-bitowych rejestrów ogólnych, które są wykonywane jako stos. Tak więc wszystkie operacje zmiennoprzecinkowe są po prostu wykonywane na danych ze stosu iz pamięci zewnętrznej.

  Koprocesor Intel 8087
Koprocesor Intel 8087

Koprocesor Intel 8087 po prostu obsługuje BCD, liczby całkowite, liczby zmiennoprzecinkowe pojedynczej i podwójnej precyzji, a także liczby zmiennoprzecinkowe o rozszerzonej precyzji. Gdy procesor 8087 ładuje dane z pamięci, konwertuje je wewnętrznie, aby rozszerzyć liczbę precyzji, a ponadto wszystkie obliczenia są wykonywane na podstawie tej liczby.

Tak więc przejście z liczby podwójnej precyzji na liczbę pojedynczej precyzji, inaczej z 64-bitowej liczby całkowitej – 32-bitowe/16-bitowe liczby całkowite nie dają żadnego znaczącego wzrostu wydajności. Koprocesory 8087 zostały wyprodukowane nie tylko przez firmę Intel, ale firmy AMD, Cyrix i IBM również produkują te koprocesory.

Motorola 68881

Motorola 68881 to koprocesor używany głównie z drugą generacją Motoroli 68K mikroprocesory jak Motorola 68030 i 68020. Teoretycznie ten koprocesor jest używany z wcześniejszymi procesorami 68000 lub 68010 jako urządzenie peryferyjne.

  Motorola 68881
Motorola 68881

Koprocesor Motorola 68881 działa po prostu jak urządzenie mapowane w pamięci. Po załadowaniu instrukcji koprocesora główny procesor zapisuje kod instrukcji do rejestrów CIR (Co-processor Interface Registers), które są odwzorowywane w przestrzeni adresowej procesora, a następnie odczytuje odpowiedź koprocesor z jednego z rejestrów CIR.

Koprocesory Motorola 68881/68882 były wykorzystywane w stacjach roboczych IBM RT PC, stacjach roboczych Sun Microsystems Sun-3, komputerach NeXT, rodzinie Apple Computer Macintosh II, Amiga 3000, Sharp X68000, Convergent Technologies MightyFrame, TT, Atari Mega STE i Falcon. Procesory te są również używane w niektórych produktach Atari i Amigi innych firm, takich jak urządzenie mapowane w pamięci do 68000.

Koprocesory ruchu Apple

Koprocesory serii M firmy Apple są znane jako koprocesory ruchu, które są używane w urządzeniach mobilnych Apple. Pierwszy koprocesor został zaprojektowany w 2013 roku i służył do zbierania danych z czujników z wbudowanych żyroskopów, akcelerometrów i kompasów oraz rozładowywania zebranych danych z czujników za pomocą głównego procesora.

  Koprocesory ruchu Apple
Koprocesory ruchu Apple

Koprocesory Apple z serii M po prostu zbierają dane procesowe i przechowują dane czujnika, nawet jeśli urządzenie jest uśpione, a aplikacje mogą odzyskać dane po ponownym włączeniu urządzenia. Zmniejsza to moc pobieraną z urządzenia i oszczędza żywotność baterii.

Różnica między procesorem a koprocesorem

Różnica między procesorem a koprocesorem obejmuje następujące elementy.

Edytor

Koprocesor

Procesor jest główną jednostką przetwarzającą w komputerze, która wykonuje różne operacje arytmetyczne, logiczne i kontrolne na podstawie instrukcji. Koprocesor jest specjalnym procesorem wspomagającym procesor główny.

Procesor zajmuje się wszystkimi głównymi pracami

Koprocesor zajmuje się tylko innymi rzeczami, takimi jak grafika i obliczenia arytmetyczne.
Obsługuje operacje logiczne i obliczenia matematyczne oraz generuje sygnały sterujące do innych komponentów w celu synchronizacji zadań. Wykonuje przetwarzanie sygnału, operacje matematyczne, tworzenie sieci i kryptografię w oparciu o typ.
Procesor zapewnia prawidłowe działanie całego komputera. Ten procesor pomaga zwiększyć wydajność systemu i odciąża procesor od ciężkich zadań.

Zalety

Zalety koprocesora obejmują następujące elementy.

  • Koprocesor po prostu obsługuje bardziej wyspecjalizowane zadania szybciej niż główny procesor
  • Te procesory są łatwe w użyciu i najbardziej popularne.
  • Zmniejsza obciążenie mikroprocesora, przejmując specjalne zadania przetwarzania od procesora, dzięki czemu działa on z większą szybkością.
  • Ten procesor jest pomocny w rozszerzaniu możliwości przetwarzania procesora poprzez rozszerzenie zestawu instrukcji lub oferowanie rejestrów konfiguracyjnych.

Niedogodności

Wady koprocesorów obejmują:

  • Koprocesor nie jest zdolny do odzyskiwania instrukcji z pamięci, bezpośredniego wykonywania instrukcji, zarządzania pamięcią, wykonywania operacji we/wy
  • To zależy od głównego procesora, aby odzyskać instrukcje koprocesora i zająć się wszystkimi innymi operacjami niezwiązanymi z koprocesorem.
  • To nie jest główny procesor systemu.
  • Koprocesor nie może działać bez głównego mikroprocesora.

Aplikacje

Zastosowania koprocesorów obejmują następujące.

  • Koprocesor jest używany do wykonywania niektórych bardziej specjalistycznych zadań, takich jak przetwarzanie obrazu graficznego lub złożone obliczenia matematyczne.
  • Koprocesor jest po prostu używany do zmniejszenia obciążenia procesora komputera.
  • Ten procesor współpracuje z procesorem komputera obok siebie.
  • Ten procesor wykonuje operacje matematyczne wysokiego poziomu znacznie szybciej w porównaniu z procesorem głównym, takie jak pierwiastki, logarytmy, funkcje trygonometryczne itp.
  • Koprocesor zwiększa funkcje procesora głównego.
  • Koprocesor wykonuje różne operacje, takie jak przetwarzanie sygnału, arytmetyka zmiennoprzecinkowa, przetwarzanie ciągów znaków, grafika, interfejs I/O przez urządzenia peryferyjne, kryptografia itp.
  • Te procesory to samodzielne układy scalone we wcześniejszych komputerach stacjonarnych, które były podłączone do płyty głównej.
  • Koprocesor obsługuje zadania procesora w celu zwiększenia ogólnej wydajności.

Tak jest przegląd koprocesora – praca i jej zastosowania. Ten procesor jest również znany jako procesor matematyczny. Koprocesor wykonuje różne zadania znacznie szybciej niż główny procesor. W ten sposób ogólna prędkość systemu komputerowego wzrasta. Ten procesor można podłączyć do procesora ARM. Po dodaniu musimy zwiększyć zestaw instrukcji Core CPU lub dołączyć konfigurowalne rejestry w celu zwiększenia mocy obliczeniowej. Oto pytanie do ciebie, co to jest mikroprocesor?