Superscalar Processor : Arkitektura, Pipelining, Mga Uri at Mga Aplikasyon Nito

Subukan Ang Aming Instrumento Para Sa Pagtanggal Ng Mga Problema





Sa mundong ito, gusto ng lahat na matapos nang mabilis ang kanilang mga bagay/gawa. hindi ba Mula sa Mga Kotse hanggang sa pang-industriya hanggang sa mga makinang pambahay na gusto ng lahat na gumana ang mga ito nang mas mabilis. Alam mo ba kung ano ang nasa loob ng mga makinang ito na nagpapagana sa kanila? Sila ay mga processor . Maaaring mga micro o macro processor ang mga ito depende sa functionality. Ang pangunahing processor sa pangkalahatan ay nagpapatupad ng isang tagubilin sa bawat ikot ng orasan. Sa paraan upang mapabuti ang kanilang bilis ng pagproseso upang ang mga makina ay maaaring mapabuti ang kanilang bilis ay dumating sa pagiging, ang superscalar na processor na mayroong pipelining algorithm upang paganahin itong magsagawa ng dalawang tagubilin sa bawat ikot ng orasan. Ito ay unang naimbento ng Seymour Cray's CDC 6600 na naimbento noong 1964 at kalaunan ay pinahusay ng Tjaden & Flynn noong 1970.


Ang unang komersyal na single-chip superscalar microprocessor na MC88100 ay binuo ng Motorola noong 1988, kalaunan ay ipinakilala ng Intel ang bersyon nito na I960CA noong 1989 at ang AMD 29000-series 29050 noong 1990.  Sa kasalukuyan, ang karaniwang superscalar processor na ginagamit ay ang Intel Core i7 processor depende sa Intel Core i7 processor ang Nehalem microarchitecture.



Kahit na, ang mga pagpapatupad ng superscalar ay patungo sa pagpapahusay ng pagiging kumplikado. Ang disenyo ng mga processor na ito ay karaniwang tumutukoy sa isang hanay ng mga pamamaraan na nagpapahintulot sa CPU ng isang computer na makamit ang isang throughput na higit sa isang pagtuturo para sa bawat cycle habang nagsasagawa ng isang solong sequential program. Tingnan pa natin sa artikulong ito ang arkitektura ng SuperScalarprocessor na binabawasan ang oras ng pagpapatupad nito at ang mga aplikasyon nito.

Ano ang Superscalar Processor?

Isang uri ng microprocessor na ginagamit upang ipatupad ang isang uri ng parallelism na kilala bilang parallelism sa antas ng pagtuturo sa iisang processor upang magsagawa ng  higit sa isang pagtuturo sa panahon ng CLK cycle sa pamamagitan ng sabay-sabay na pagpapadala ng iba't ibang mga tagubilin sa mga espesyal na unit ng pagpapatupad sa processor. A scalar processor nagsasagawa ng isang pagtuturo para sa bawat cycle ng orasan; ang isang superscalar processor ay maaaring magsagawa ng higit sa isang pagtuturo sa panahon ng isang ikot ng orasan.



Ang mga diskarte sa disenyo ng superscalar ay karaniwang binubuo ng parallel register renaming, parallel instruction decoding, out-of-order execution at speculative execution. Kaya't ang mga pamamaraang ito ay karaniwang ginagamit sa pagpupuno ng mga pamamaraan ng disenyo tulad ng pipelining, hula ng sangay, pag-cache at multi-core sa loob ng mga kasalukuyang disenyo ng mga microprocessor.

  Superscalar Processor
Superscalar Processor

Mga tampok

Ang mga tampok ng superscalar processors ay kinabibilangan ng mga sumusunod.

  PCBWay
  • Ang superscalar architecture ay isang parallel computing technique na ginagamit sa iba't ibang processor.
  • Sa isang superscalar na computer, pinamamahalaan ng CPU ang ilang mga pipeline ng pagtuturo upang magsagawa ng maraming mga tagubilin nang sabay-sabay sa panahon ng isang ikot ng orasan.
  • Kasama sa mga superscalar architecture ang lahat pipelining mga tampok bagama't mayroong ilang mga tagubilin na nagsasagawa ng sabay-sabay sa loob ng parehong pipeline.
  • Ang mga pamamaraan ng superscalar na disenyo ay karaniwang binubuo ng parallel register renaming, parallel instruction decoding, speculative execution at out-of-order execution. Kaya, ang mga pamamaraang ito ay karaniwang ginagamit sa pagpupuno ng mga pamamaraan ng disenyo tulad ng pag-cache, pipelining, hula ng sangay at multi-core sa mga kamakailang disenyo ng microprocessor.

Arkitektura ng Superscalar Processor

Alam namin na ang superscalar processor ay isang CPU na nagpapatupad ng higit sa isang pagtuturo para sa bawat CLK cycle dahil ang bilis ng pagproseso ay sinusukat lamang sa mga CLK cycle para sa bawat segundo. Kung ikukumpara sa isang scalar processor, ang processor na ito ay napakabilis.

Pangunahing kasama ng arkitektura ng superscalar processor ang mga parallel execution unit kung saan maaaring ipatupad ng mga unit na ito ang mga tagubilin nang sabay-sabay. Kaya una, ang parallel na arkitektura na ito ay ipinatupad sa loob ng isang RISC processor na gumagamit ng simple at maiikling mga tagubilin upang magsagawa ng mga kalkulasyon. Kaya dahil sa kanilang mga superscalar na kakayahan, karaniwan PANGANIB mas mahusay ang pagganap ng mga processor kumpara sa mga processor ng CISC na tumatakbo sa parehong megahertz. Ngunit karamihan sa CISC ang mga processor ngayon tulad ng Intel Pentium ay binubuo din ng ilang RISC architecture, na nagpapahintulot sa kanila na magsagawa ng mga tagubilin nang magkatulad.

  Arkitektura ng Superscalar Processor
Arkitektura ng Superscalar Processor

Ang superscalar processor ay nilagyan ng ilang mga yunit ng pagpoproseso para sa paghawak ng iba't ibang mga tagubilin nang magkatulad sa bawat yugto ng pagproseso. Sa pamamagitan ng paggamit ng arkitektura sa itaas, ang ilang mga tagubilin ay magsisimulang ipatupad sa loob ng katulad na ikot ng orasan. Ang mga processor na ito ay may kakayahang makakuha ng output ng pagpapatupad ng pagtuturo ng isang pagtuturo sa itaas para sa bawat cycle.

Sa diagram ng arkitektura sa itaas, ang isang processor ay ginagamit na may dalawang execution unit kung saan ang isa ay ginagamit para sa integer at ang isa ay ginagamit para sa mga pagpapatakbo ng floating point. Ang instruction fetch unit (IFU) ay may kakayahang basahin ang mga tagubilin sa isang pagkakataon at iimbak ang mga ito sa loob ng queue ng pagtuturo. Sa bawat cycle, ang dispatch unit ay kumukuha at nagde-decode ng hanggang 2 tagubilin mula sa harapan ng pila. Kung mayroong isang integer, iisang floating point na pagtuturo at walang mga panganib, ang parehong mga tagubilin ay ipapadala sa loob ng isang katulad na ikot ng orasan.

Pipelining

Ang pipelining ay ang pamamaraan ng paghahati-hati ng mga gawain sa mga sub-step at pagsasagawa ng mga ito sa loob ng iba't ibang bahagi ng processor. Sa sumusunod na superscalar pipeline, dalawang tagubilin ang maaaring kunin at ipadala nang sabay-sabay upang makumpleto ang maximum na 2 tagubilin bawat cycle. Ang arkitektura ng pipelining sa scalar processor at ang superscalar processor ay ipinapakita sa ibaba.

Ang mga tagubilin sa isang superscalar processor ay ibinibigay mula sa isang sunud-sunod na stream ng pagtuturo. Dapat itong payagan ang maramihang mga tagubilin para sa bawat ikot ng orasan at dapat na dynamic na suriin ng CPU ang mga dependency ng data sa pagitan ng mga tagubilin.

Sa arkitektura ng pipeline sa ibaba, ang F ay kinukuha, ang D ay na-decode, ang E ay isinasagawa at ang W ay nagparehistro ng write-back,. Sa arkitektura ng pipeline na ito, ang I1, I2, I3 at I4 ay mga tagubilin.

Ang arkitektura ng pipeline ng scalar processor ay may kasamang isang pipeline at apat na yugto ng pag-fetch, pag-decode, pag-execute at pagreresulta sa pagsusulat. Sa single pipeline scalar processor, ang pipeline sa instruction1 (I1) ay gumagana bilang; sa unang panahon ng orasan I1 ito ay kukuha, sa ikalawang yugto ng orasan ito ay magde-decode at sa ikalawang pagtuturo, I2 ay kukuha. Ang ikatlong pagtuturo na I3 sa ikatlong yugto ng orasan ay kukunin, ang I2 ay magde-decode at ang I1 ay isasagawa. Sa ikaapat na yugto ng orasan, kukunin ng I4, magde-decode ang I3, mag-execute ang I2 at magsusulat sa memorya ang I1. Kaya, sa pitong yugto ng orasan, magsasagawa ito ng 4 na tagubilin sa isang pipeline.

  Scalar Pipelining
Scalar Pipelining

Kasama sa superscalar na arkitektura ng pipeline ng processor ang dalawang pipeline at apat na yugto ng pag-fetch, pag-decode, pag-execute at pagreresulta sa pagsusulat. Ito ay isang 2-isyu na superscalar processor na nangangahulugang sa isang pagkakataon, dalawang tagubilin ang kukuha, magde-decode, mag-execute at magreresulta sa write back. Ang dalawang tagubilin na I1 at I2 ay sabay-sabay na kukuha, magde-decode, magsasagawa at magsusulat muli sa bawat panahon ng orasan. Sabay-sabay sa susunod na yugto ng orasan, ang natitirang dalawang tagubilin na I3 at I4 ay sabay-sabay na kukuha, magde-decode, mag-execute at magsusulat pabalik. Kaya, sa limang yugto ng orasan, magsasagawa ito ng 4 na tagubilin sa isang pipeline.

  Superscalar Pipelining
Superscalar Pipelining

Kaya, ang isang scalar processor ay nag-iisyu ng isang pagtuturo sa bawat clock cycle at nagsasagawa ng isang pipeline stage sa bawat clock cycle samantalang ang isang superscalar processor, ay naglalabas ng dalawang tagubilin sa bawat clock cycle at ito ay nagpapatupad ng dalawang pagkakataon ng bawat yugto nang magkatulad. Kaya ang pagpapatupad ng pagtuturo sa isang scalar processor ay tumatagal ng mas maraming oras samantalang sa isang superscalar ay tumatagal ng mas kaunting oras upang maisagawa ang mga tagubilin .

Mga Uri ng Superscalar Processor

Ito ay iba't ibang uri ng mga superscalar processor na magagamit sa merkado na tinalakay sa ibaba.

Intel Core i7 processor

Ang Intel core i7 ay isang superscalar processor na batay sa Nehalem micro-architecture. Sa isang disenyo ng Core i7, mayroong iba't ibang mga core ng processor kung saan ang bawat core ng processor ay isang superscalar na processor. Ito ang pinakamabilis na bersyon ng Intel processor na ginagamit sa mga consumer-end na computer at device. Katulad ng Intel Corei5, ang processor na ito ay naka-embed sa Intel Turbo Boost Technology. Maa-access ang processor na ito sa 2 hanggang 6 na uri na sumusuporta sa hanggang 12 magkakaibang thread nang sabay-sabay.

  Intel Core i7 processor
Intel Core i7 processor

Intel Pentium Processor

Ang Intel Pentium processor superscalar pipelined architecture ay nangangahulugan na ang CPU ay nagpapatupad ng hindi bababa sa dalawa o mas mataas na mga tagubilin para sa bawat cycle. Ang processor na ito ay malawakang ginagamit sa mga personal na computer. Ang mga Intel Pentium processor device ay karaniwang binuo para sa online na paggamit, cloud computing, at pakikipagtulungan. Kaya perpektong gumagana ang processor na ito para sa mga tablet, at Chromebook upang magbigay ng malakas na lokal na pagganap at mahusay na mga online na pakikipag-ugnayan.

  Intel Pentium Processor
Intel Pentium Processor

IBM Power PC601

Ang superscalar processor tulad ng IBM power PC601 ay mula sa pamilya ng PowerPC ng RISC microprocessors. Ang processor na ito ay may kakayahang mag-isyu at magretiro ng tatlong tagubilin para sa bawat orasan at isa para sa bawat isa sa 3 execution unit. Ang mga tagubilin ay ganap na wala sa ayos para sa pinahusay na pagganap; ngunit, gagawin ng PC601 ang pagpapatupad nang maayos.

  IBM Power PC601
IBM Power PC601

Ang power PC601 processor ay nagbibigay ng 32-bit logical address, 8, 16 at 32 bits integer data type at 32 at 64 bits na floating-point na mga uri ng data. Para sa pagpapatupad ng 64-bit PowerPC, ang arkitektura ng processor na ito ay nagbibigay ng 64-bit based integer data type, addressing at iba pang feature na kinakailangan para makumpleto ang 64-bit based na arkitektura.

MC 88110

Ang MC 88110 ay isang single-chip, pangalawang henerasyong RISC microprocessor na gumagamit ng mga advanced na pamamaraan upang samantalahin ang paralelismo sa antas ng pagtuturo. Gumagamit ang processor na ito ng maramihang on-chip cache, mga isyu sa superscalar na pagtuturo, pagre-record ng limitadong dynamic na pagtuturo, at speculative execution, para sa pagkamit ng maximum na performance kaya perpektong ito ay ginagamit bilang central processor sa mga murang PC at workstation.

  MC 88000
MC 88000

Intel i960

Ang Intel i960 ay isang superscalar processor na may kakayahang magsagawa at magpadala ng iba't ibang mga independiyenteng tagubilin sa bawat cycle ng orasan ng processor. Ito ay isang RISC-based na microprocessor na naging napakatanyag bilang isang naka-embed na microcontroller noong unang bahagi ng 1990s. Ang processor na ito ay patuloy na ginagamit sa ilang mga aplikasyon ng militar.

  Intel i960
Intel i960

MIPS R

Ang MIPS R ay isang dynamic at superscalar microprocessor na ginamit upang isagawa ang 64-bit MIPS 4-instruction set architecture. Ang processor na ito ay kumukuha at nagde-decode ng 4 na mga tagubilin para sa bawat cycle at nagbibigay ng mga ito sa limang ganap na pipeline at low-latency na mga execution unit. Ang processor na ito ay partikular na idinisenyo para sa mataas na pagganap, malaki at real-world na mga application na may mahinang lokalidad ng memorya. Sa tinatayang execution, kinakalkula lang nito ang mga memory address. Ang mga processor ng MIPS ay pangunahing ginagamit sa iba't ibang device tulad ng Nintendo Gamecube, linya ng produkto ng SGI, Sony Playstation 2, ang PSP at Cisco routers.

  MIPS R
MIPS R

Pagkakaiba ng B/W Superscalar Vs Pipelining

Ang pagkakaiba sa pagitan ng superscalar at pipelining ay tinalakay sa ibaba.

Superscalar

Pipelining

Ang superscalar ay isang CPU, na ginagamit upang ipatupad ang isang anyo ng parallelism na tinatawag na parallelism sa antas ng pagtuturo sa isang processor. Ang isang diskarte sa pagpapatupad tulad ng pipelining ay ginagamit kung saan ang ilang mga tagubilin ay magkakapatong sa loob ng pagpapatupad.
Ang isang superscalar na arkitektura ay nagpapasimula ng ilang mga tagubilin nang sabay-sabay at isinasagawa ang mga ito nang hiwalay. Ang arkitektura ng pipeline ay nagpapatupad ng isang yugto ng pipeline para lamang sa bawat ikot ng orasan.

Ang mga processor na ito ay nakasalalay sa spatial parallelism. Depende ito sa temporal parallelism.
Ang ilang mga operasyon ay tumatakbo nang sabay-sabay sa hiwalay na hardware. Nagpapatong ng ilang operasyon sa karaniwang hardware.
Ito ay nakakamit sa pamamagitan ng pagdodoble ng mga mapagkukunan ng hardware tulad ng pagrehistro ng mga file port at execution unit. Ito ay nakakamit sa pamamagitan ng mga execution unit na na-pipeline nang mas malalim na may napakabilis na CLK cycle.

Mga katangian

Ang mga katangian ng superscalar processor isama ang mga sumusunod.

  • Ang superscalar processor ay isang super-pipelined na modelo kung saan ang mga independiyenteng tagubilin ay isinasagawa nang sunud-sunod nang walang anumang naghihintay na sitwasyon.
  • Ang isang superscalar processor ay kumukuha at nagde-decode ng ilang mga tagubilin sa papasok na stream ng pagtuturo.
  • Sinasamantala ng arkitektura ng mga superscalar processor ang potensyal ng parallelism sa antas ng pagtuturo.
  • Pangunahing inilalabas ng mga superscalar processor ang iisang pagtuturo sa itaas para sa bawat cycle.
  • Ang hindi. ng mga tagubiling ibinigay ay higit sa lahat ay nakasalalay sa mga tagubilin sa loob ng stream ng pagtuturo.
  • Ang mga tagubilin ay madalas na muling inaayos upang mas magkasya sa arkitektura ng processor.
  • Ang superscalar na pamamaraan ay karaniwang nauugnay sa ilang mga katangian ng pagkilala. Ang mga tagubilin ay karaniwang ibinibigay mula sa isang sunud-sunod na stream ng pagtuturo.
  • Ang CPU ay dynamic na sumusuri para sa mga dependency ng data sa pagitan ng mga tagubilin sa oras ng pagtakbo.
  • Ang CPU ay nagpapatupad ng maraming mga tagubilin para sa bawat ikot ng orasan.

Mga Kalamangan at Kahinaan

Ang mga pakinabang ng superscalar processor isama ang mga sumusunod.

  • Ang isang superscalar processor ay nagpapatupad ng parallelism sa antas ng pagtuturo sa isang processor.
  • Ang mga processor na ito ay ginawa lamang upang maisagawa ang anumang set ng pagtuturo.
  • Ang superscalar processor kasama ang out-of-order execution branch prediction at speculative execution ay makakahanap lang ng parallelism sa itaas ng ilang pangunahing block at loop iterations.

Ang disadvantages ng superscalar processor isama ang mga sumusunod.

  • Ang mga superscalar processor ay hindi gaanong ginagamit sa maliliit na naka-embed na system dahil sa paggamit ng kuryente.
  • Ang problema sa pag-iskedyul ay maaaring mangyari sa arkitektura na ito.
  • Pinapahusay ng superscalar processor ang antas ng pagiging kumplikado sa pagdidisenyo ng hardware.
  • Ang mga tagubilin sa processor na ito ay kinukuha lamang batay sa kanilang pagkakasunud-sunod ng programa ngunit hindi ito ang pinakamahusay na pagkakasunud-sunod ng pagpapatupad.

Mga Aplikasyon ng Superscalar Processor

Ang mga aplikasyon ng isang superscalar processor ay kinabibilangan ng mga sumusunod.

  • Ang superscalar execution ay madalas na ginagamit ng isang laptop o desktop. Ang processor na ito ay ini-scan lamang ang programa sa pagpapatupad upang matuklasan ang mga hanay ng mga tagubilin na maaaring isagawa bilang isa.
  • Ang isang superscalar processor ay may kasamang iba't ibang data path na mga kopya ng hardware na nagsasagawa ng iba't ibang mga tagubilin nang sabay-sabay.
  • Ang processor na ito ay pangunahing idinisenyo upang makabuo ng bilis ng pagpapatupad na higit sa isang pagtuturo para sa bawat ikot ng orasan para sa isang solong sunud-sunod na programa.

Kaya, ito ay tungkol sa lahat isang pangkalahatang-ideya ng superscalar processor – arkitektura, mga uri, at mga aplikasyon. Narito ang isang katanungan para sa iyo, ano ang scalar processor?