Coprocessor : Arkitektura, Paggawa, Mga Uri at Mga Aplikasyon Nito

Subukan Ang Aming Instrumento Para Sa Pagtanggal Ng Mga Problema





Sa isang microprocessor chip, bagong circuitry ay idinagdag upang makamit ang mga espesyal na gawain at pati na rin ang mga operasyon sa mga numero upang i-offload ang CPU core work upang, ang CPU ay maaaring gumana nang napakabilis. Ang pandagdag na processor tulad ng Coprocessor ay pangunahing ginagamit sa mga computer upang makamit ang mga espesyal na gawain tulad ng pagpoproseso ng graphical na display at malawak na mga kalkulasyon ng aritmetika. Ang processor na ito ay idinisenyo upang maisagawa ang mga ganoong gawain nang napakahusay kumpara sa CPU, kaya ang pangkalahatang bilis ng computer ay maaaring tumaas. Tinatalakay ng artikulong ito ang isang pangkalahatang-ideya ng a coprocessor –arkitektura, pagtatrabaho at mga aplikasyon nito.


Ano ang Coprocessor?

Ang isang processor na gumagana sa pangunahing processor ng isang computer tulad ng magkatabi na CPU ay kilala bilang isang coprocessor. Ang processor na ito ay kilala rin bilang pandagdag na computer processor. Sa pamamagitan ng paggamit ng processor na ito, maaaring magawa ang ilang mahihirap na kalkulasyon sa matematika tulad ng mga graphics na ipinapakita sa screen, pagpoproseso ng signal, pagproseso ng string, floating-point arithmetic, input-output interfacing, atbp.



  Coprocessor
Coprocessor

Arkitektura ng Coprocessor

Ang coprocessor tulad ng 8087 architecture ay ipinapakita sa ibaba. Sa pangkalahatan, ang co-processor na ito ay gumagana sa microprocessor parallel. Ang coprocessor na ito ay binuo ng Intel at ginamit sa 16-bit 8086 family microprocessor. Kapag gumagana ang processor kasama ng microprocessor, ang bahagi ng pagkalkula ay hinahawakan lamang ng processor at pinapayagan nito ang CPU na gamitin ang mga mapagkukunan upang maisagawa ang iba't ibang aktibidad.

Ang sumusunod na figure ay kumakatawan sa arkitektura ng 8087 coprocessor. Kasama sa arkitektura na ito ang dalawang pangunahing yunit tulad ng control unit at isang numeric execution unit na tinatawag ding NEU.



  8087 Coprocessor Architecture
8087 Coprocessor Architecture

Sa control unit, mayroong iba't ibang unit tulad ng data buffer, control at status word register, shared operand queue, exception pointer, at addressing & bus tracking unit. Pangunahing kasama sa Numeric Execution Unit o NEU ang isang microcode control unit, register stack, programmable shifter, pansamantalang nagrerehistro , arithmetic module, exponent module at shared operand queue.

Ang control unit sa coprocessor ay upang kontrolin ang instruction execution (IE) kung saan ang Numeric Execution Unit ang may pananagutan. Kadalasan, nakukuha ng microcode control unit (CU) ng numeric execution unit ang mga numeric na tagubilin mula sa control unit ng coprocessor. Ang coprocessor na ito ay may kumpletong 8-register ng 80 bits at bawat isa sa mga ito ay ginagamit sa LIFO stack. Ang mga operand kung saan magaganap ang mga tagubilin ng co-processor ay umiiral sa stack ng rehistro.

  PCBWay

Ang umiiral na stack ay itinuturo sa pamamagitan ng 3-bit SP (stack pointer) na nagtataglay ng mga binary value na mula 000 – 111 upang maipakita ang 8 stack register. Gumagana ito sa loob ng isang pabilog na stack na paraan sa LIFO mode. Ngunit, sa sandaling maganap ang pagkilos sa pag-reset, maaaring masimulan ang pointer sa pamamagitan ng binary value na '000'.

Ang numeric na data ay tatlong klasipikasyon kung saan ang mga function ng co-processor ay naka-pack na mga decimal na numero, tunay na numero at binary integer. Ang binary integer ay tatlong uri ng 16-bit word integer, 32-bit short integer at 64-bit long integer. Ang 80-bit na BCD na format ay nagpapahiwatig ng mga naka-pack na decimal na numero habang ang mga tunay na numero ay 3 uri; 32-bit short real, 64-bit long real, at 80-bit temporary real.

Para sa paglilipat ng numeric data sa coprocessor alinman a 16-bit exponent bus o 64-bit mantissa bus ay ginagamit . Kasama sa coprocessor ang isang 16-bit na control word at isang 16-bit na status na salita.

Ang control word ay nakasulat sa control register at ito ay nagaganap sa paraang ang coprocessor ay unang nagsusulat ng control word sa loob ng lokasyon ng memorya. Pagkatapos nito, binabasa lang ng coprocessor ang control word gamit ang lokasyon ng memory at iniimbak ito sa control register.

Katulad nito, nagbabasa ang katayuan ng salita sa paraang ipinapadala ng processor ang data sa rehistro ng status patungo sa isang lokasyon ng memorya. Dagdag pa, binabasa ng coprocessor na ito ang rehistro ng katayuan mula sa partikular na lokasyon ng memorya. Kaya ang ibig sabihin nito, ang processor at ang microprocessor ay nakikipag-usap sa isa't isa sa pamamagitan ng pangunahing memorya.

Paano Gumagana ang Coprocessor?

Ang coprocessor ay pangunahing idinisenyo upang gumana sa parehong 8086 at 8088 na mga processor. Ginagamit ang coprocessor upang tulungan ang system na tumakbo nang mas malakas sa pamamagitan ng pag-offload ng mga partikular na gawain ng CPU. Kapag gumagana ang processor na ito kasama ng microprocessor, ang mga tagubilin ng parehong microprocessor at coprocessor ay isinama sa loob habang isinusulat ang programa. Ang simula ng mga tagubilin sa programa ng wika ng pagpupulong ay may 'F' na kumakatawan sa mga tagubilin ng coprocessor samantalang ang mga tagubilin na walang prefix na 'F' ay nagpapakita ng mga tagubilin ng microprocessor.

Sa una, ang mga tagubilin ay kinukuha ng microprocessor mula sa lokasyon ng memorya at sunud-sunod na nilo-load ang mga ito sa loob ng pila, kasabay nito, binabasa at iniimbak din ng 8087 coprocessor ang mga tagubilin sa loob ng isang panloob na pila. Kaya ang ibig sabihin nito, ang bawat solong pagtuturo ay maaaring basahin sa pamamagitan ng parehong coprocessor at processor gayunpaman sa oras ng pagpapatupad, parehong ang coprocessor at microprocessor ay maaaring isagawa ang pagpapatupad ng kanilang partikular na mga tagubilin. Nangangahulugan ito, ang pagtuturo ay binabasa at na-decode. Kung susuriin ng microprocessor na mayroong instr ng coprocessor kung gayon ang pagtuturo na iyon ay ituturing na Walang-operasyon. Katulad nito, kung ang co-processor na ito ay lumalapit sa anumang pagtuturo ng microprocessor, ito ay ituturing na walang operasyon.

Mga Uri ng Coprocessor

Mayroong iba't ibang mga coprocessor na magagamit batay sa mga tagagawa tulad ng sumusunod.

Intel 8087 Coprocessor

Ang Intel 8087 ay isang espesyal na idinisenyong co-processor na ginagamit upang magsagawa ng mga kalkulasyon sa matematika na kinabibilangan ng mga floating-point at integer na halaga. Minsan, kilala rin ito bilang numeric data processor at math processor. Isa itong numeric na co-processor para sa mga processor ng Intel 80188, 8086, 80186 at 8088. Kasama sa 8087 coprocessor ang walong 80-bit na pangkalahatang rehistro na isinasagawa bilang isang stack. Kaya, ang lahat ng mga pagpapatakbo ng floating point ay ginagawa lamang gamit ang data mula sa stack at mula sa panlabas na memorya.

  Intel 8087 Coprocessor
Intel 8087 Coprocessor

Sinusuportahan lang ng Intel 8087 co-processor ang BCD, integer, single at double precision na mga floating-point na numero at pinalawig din ang precision na floating-point na mga numero. Kapag ang 8087 processor ay nag-load ng data mula sa memorya pagkatapos ay nagko-convert ito sa loob upang palawigin ang numero ng katumpakan at higit pa ang lahat ng mga kalkulasyon ay isinasagawa sa pamamagitan ng numerong ito.

Kaya ang paglipat mula sa isang double-precision na numero patungo sa isang solong-precision na numero kung hindi man mula sa 64-bit integer - 32-bit/16-bit integer na mga numero ay hindi nagbibigay ng anumang makabuluhang pagpapalakas ng pagganap. Ang 8087 coprocessors ay hindi lamang ginawa ng Intel ngunit ang AMD, Cyrix at IBM ay gumagawa din ng mga coprocessor na ito.

Motorola 68881

Ang Motorola 68881 ay isang coprocessor na pangunahing ginagamit sa ika-2 henerasyon ng Motorola 68K mga microprocessor tulad ng Motorola 68030 & 68020. Sa teorya, ang coprocessor na ito ay ginagamit sa mga naunang 68000 o 68010 na CPU bilang isang peripheral na device.

  Motorola 68881
Motorola 68881

Ang Motorola 68881 co-processor ay gumagana lamang tulad ng isang memory-mapped device. Kapag na-load ng pangunahing CPU ang pagtuturo ng co-processor, pagkatapos ay isusulat nito ang instruction code sa CIR (Co-processor Interface Registers), na naka-map sa loob ng address space ng CPU, at pagkatapos nito, binabasa nito ang tugon ng co-processor mula sa isa sa mga rehistro ng CIR.

Ang Motorola 68881/68882 coprocessors ay ginamit sa IBM RT PC workstation, Sun Microsystems Sun-3 workstation, NeXT Computer, Apple Computer Macintosh II family, Amiga 3000, Sharp X68000, Convergent Technologies MightyFrame, TT, Atari Mega STE & Falcon. Ginagamit din ang mga processor na ito sa ilang third-party na produkto ng Atari at Amiga tulad ng isang memory-mapped device sa 68000.

Mga Apple Motion Coprocessors

Ang mga M-series na coprocessor ng Apple ay kilala bilang motion coprocessors na ginagamit sa mga Apple mobile device. Ang unang coprocessor ay idinisenyo noong 2013, ginamit para mangalap ng data ng sensor mula sa mga pinagsama-samang gyroscope, accelerometers, at compass at i-offload ang nakalap na data ng sensor gamit ang pangunahing CPU.

  Mga Apple Motion Coprocessors
Mga Apple Motion Coprocessors

Ang mga M-series na Apple coprocessor ay kumukuha lang ng proseso at iniimbak ang data ng sensor kahit na tulog ang device at maaaring mabawi ng mga application ang data sa sandaling muling pinagana ang device. Kaya binabawasan nito ang power na nakuha mula sa device at nakakatipid sa buhay ng baterya.

Pagkakaiba sa pagitan ng Processor at Coprocessor

Ang pagkakaiba sa pagitan ng processor at coprocessor ay kinabibilangan ng mga sumusunod.

Processor

Coprocessor

Ang processor ay ang pangunahing processing unit sa computer na nagsasagawa ng iba't ibang aritmetika, lohika at kontrol na mga operasyon batay sa mga tagubilin. Ang coprocessor ay isang espesyal na processor na nagbibigay ng suporta sa pangunahing processor.

Inaalagaan ng processor ang lahat ng pangunahing gawain

Ang coprocessor ay nag-aasikaso sa ilang iba pang bagay tulad lang ng mga graphic at arithmetic calculations.
Pinangangasiwaan nito ang mga lohikal na operasyon at mga kalkulasyon sa matematika at bumubuo ng mga signal ng kontrol sa iba pang mga bahagi para sa pag-synchronize ng mga gawain. Nagsasagawa ito ng pagpoproseso ng signal, pagpapatakbo ng matematika, networking at cryptography batay sa uri.
Pinapanatili ng processor ang wastong paggana ng buong computer. Tumutulong ang processor na ito sa pagpapataas ng performance ng system at pag-offload ng mga matitinding gawain mula sa CPU.

Mga kalamangan

Ang mga pakinabang ng isang coprocessor ay kinabibilangan ng mga sumusunod.

  • Ang co-processor ay mas mabilis na humahawak ng mas espesyal na mga gawain kumpara sa pangunahing CPU
  • Ang mga processor na ito ay madaling gamitin at ang pinakasikat.
  • Binabawasan nito ang strain ng microprocessor sa pamamagitan ng pagkuha ng mga espesyal na gawain sa pagproseso mula sa CPU upang ito ay tumakbo sa mas mataas na bilis.
  • Nakatutulong ang processor na ito sa pagpapalawak ng mga feature sa pagpoproseso ng CPU sa pamamagitan ng pagpapalawak ng set ng pagtuturo o sa pamamagitan ng pag-aalok ng mga rehistro ng configuration.

Mga disadvantages

Ang mga disadvantages ng coprocessors ay kinabibilangan ng mga sumusunod.

  • Ang coprocessor ay walang kakayahan sa pagbawi ng mga tagubilin mula sa memorya, direktang pagpapatupad ng mga tagubilin, pamamahala ng memorya, gumaganap ng mga operasyon ng I/O.
  • Depende ito sa pangunahing processor para mabawi ang mga tagubilin ng coprocessor at pangalagaan ang lahat ng iba pang operasyon na hindi nauugnay sa coprocessor.
  • Hindi ito ang pangunahing processor ng system.
  • Ang coprocessor ay hindi maaaring gumana nang walang pangunahing microprocessor.

Mga aplikasyon

Ang mga aplikasyon ng mga coprocessor ay kinabibilangan ng mga sumusunod.

  • Ginagamit ang co-processor upang isagawa ang ilan sa mga mas espesyal na gawain tulad ng pagpoproseso ng graphical na display o kumplikadong mga kalkulasyon sa matematika.
  • Ang isang co-processor ay ginagamit lamang para sa pagbabawas ng pasanin sa CPU ng isang computer.
  • Gumagana ang processor na ito sa CPU ng computer na magkatabi.
  • Ang processor na ito ay gumaganap ng mga high-level na mathematical operations nang mas mabilis kumpara sa pangunahing processor tulad ng roots, logarithms, trigonometry functions, atbp.
  • Pinapataas ng isang coprocessor ang mga function ng pangunahing processor.
  • Ang coprocessor ay gumaganap ng iba't ibang mga operasyon tulad ng pagpoproseso ng signal, floating-point arithmetic, pagpoproseso ng string, graphics, I/O interfacing sa pamamagitan ng mga peripheral device, cryptography, atbp.
  • Ang mga processor na ito ay mga stand-alone na chip sa mga naunang desktop computer na nakakonekta sa motherboard.
  • Ang isang coprocessor ay humahawak sa mga gawain ng CPU para sa pagpapalakas ng pangkalahatang pagganap.

Kaya, ito ay isang pangkalahatang-ideya ng isang coprocessor – pagtatrabaho at mga aplikasyon nito. Ang processor na ito ay kilala rin bilang Math Processor. Ang isang coprocessor ay gumaganap ng iba't ibang mga gawain nang napakabilis kumpara sa pangunahing CPU. Kaya, ang pangkalahatang bilis ng sistema ng computer ay tumataas. Ang processor na ito ay maaaring ikabit sa isang ARM processor. Kapag naidagdag na ito, kailangan nating dagdagan ang set ng pagtuturo ng Core CPU o isama ang mga nako-configure na rehistro para sa pagtaas ng kapangyarihan sa pagpoproseso. Narito ang isang tanong para sa iyo, ano ang microprocessor?