Pipelining: Arkitektura, Mga kalamangan at Disadentahe

Subukan Ang Aming Instrumento Para Sa Pagtanggal Ng Mga Problema





Ang pagtaas ng bilis ng pagpapatupad ng programa dahil dito ay nagdaragdag ng bilis ng ang processor. Maraming mga paraan na imbento, parehong pagpapatupad ng hardware at arkitektura ng Software, upang madagdagan ang bilis ng pagpapatupad. Napansin na sa pamamagitan ng pagpapatupad ng mga tagubilin nang sabay-sabay ang oras na kinakailangan para sa pagpapatupad ay maaaring mabawasan. Ang konsepto ng Parallelism sa programa ay ipinanukala. Ayon dito, higit sa isang tagubilin ang maaaring maisagawa sa bawat ikot ng orasan. Ang konseptong ito ay maaaring isagawa ng isang programmer sa pamamagitan ng iba't ibang mga diskarte tulad ng Pipelining, Maramihang mga yunit ng pagpapatupad, at maraming mga core . Kabilang sa lahat ng pamamaraang ito ng parallelism, ang pipelining ay karaniwang ginagawa. Kaya paano maaaring maisagawa ang isang tagubilin sa pamamaraang pipelining? Paano nito nadaragdagan ang bilis ng pagpapatupad?

Ano ang Pipelining?

Upang maunawaan ang konsepto ng pipelining tingnan natin ang antas ng ugat ng kung paano naisagawa ang programa. Ang tagubilin ay ang pinakamaliit na packet ng pagpapatupad ng isang programa. Ang bawat tagubilin ay naglalaman ng isa o higit pang mga operasyon. Ang mga simpleng scalar processor ay nagpapatupad ng isa o higit pang tagubilin sa bawat ikot ng orasan, sa bawat tagubilin na naglalaman lamang ng isang operasyon. Ang mga tagubilin ay naisakatuparan bilang isang pagkakasunud-sunod ng mga phase, upang makabuo ng inaasahang mga resulta. Ang pagkakasunud-sunod na ito ay ibinibigay sa ibaba




Pagsunud-sunod ng Pagsunod-sunod sa Pagpapatupad

Pagsunud-sunod ng Pagsunod-sunod sa Pagpapatupad

  • KUNG: Kinukuha ang tagubilin sa rehistro ng pagtuturo.
  • ID: Pag-decode ng Pagtuturo, na-decode ang tagubilin para sa opcode.
  • AG: Address Generator, bumubuo ng address.
  • DF: Kinuha ang Data, kinukuha ang mga opera sa pagrehistro ng data.
  • EX: Pagpapatupad, isinasagawa ang tinukoy na operasyon.
  • WB: Isulat muli, isulat muli ang resulta sa Ang rehistro.

Hindi lahat ng mga tagubilin ay nangangailangan ng lahat ng mga hakbang sa itaas ngunit ginagawa ng karamihan. Ang mga hakbang na ito ay gumagamit ng iba't ibang mga pag-andar ng hardware. Sa pipelining ang magkakaibang mga phase na ito ay isinasagawa nang sabay-sabay. Sa pipelining ang mga phase na ito ay itinuturing na malaya sa pagitan ng iba't ibang mga operasyon at maaaring ma-overlap. Kaya, maraming mga pagpapatakbo ay maaaring maisagawa nang sabay-sabay sa bawat operasyon na nasa sarili nitong independiyenteng yugto.



Tagubilin Pipelining

Tingnan natin ang paraan ng pagpoproseso ng mga tagubilin sa pipelining. Madali itong maunawaan ng diagram sa ibaba.

Tagubilin Pipelining

Tagubilin Pipelining

Ipagpalagay na ang mga tagubilin ay malaya. Sa simpleng processor ng pipelining, sa isang naibigay na oras, mayroon lamang isang operasyon sa bawat yugto. Ang paunang yugto ay ang IF phase. Kaya, sa unang ikot ng orasan, isang operasyon ang nakuha. Kapag dumating ang susunod na pulso ng orasan, ang unang operasyon ay napupunta sa yugto ng ID na iniiwan ang IF phase na walang laman. Ngayon, ang walang laman na yugto na ito ay inilalaan sa susunod na operasyon. Kaya, sa panahon ng ikalawang orasan pulso unang operasyon ay nasa ID phase at ang pangalawang operasyon ay nasa IF phase.

Para sa pangatlong ikot, ang unang operasyon ay nasa AG phase, ang pangalawang operasyon ay nasa ID phase at ang pangatlong operasyon ay nasa IF phase. Sa ganitong paraan, ang mga tagubilin ay naisasagawa nang sabay-sabay at pagkatapos ng anim na siklo ang processor ay maglalabas ng isang ganap na naisakatuparan na tagubilin sa bawat ikot ng orasan.


Sunud-sunod bang naisagawa ang tagubiling ito, sa una ang unang tagubilin ay kailangang dumaan sa lahat ng mga yugto pagkatapos makuha ang susunod na tagubilin? Kaya, para sa pagpapatupad ng bawat tagubilin, mangangailangan ang processor ng anim na cycle ng orasan. Ngunit sa isang pipelined na processor habang ang pagpapatupad ng mga tagubilin ay nagaganap nang magkakasabay, ang paunang tagubilin lamang na nangangailangan ng anim na siklo at ang lahat ng natitirang tagubilin ay naisakatuparan bilang isa bawat bawat pag-ikot sa gayon binabawasan ang oras ng pagpapatupad at pagdaragdag ng bilis ng processor.

Pipelining Architecture

Maaaring makamit ang pagkakatulad sa mga diskarte sa Hardware, Compiler, at software. Upang pagsamantalahan ang konsepto ng pipelining sa computer architecture maraming mga yunit ng processor ang magkakaugnay at gumagana nang sabay. Sa pipelined na arkitektura ng processor, mayroong magkakahiwalay na mga yunit ng pagproseso na ibinigay para sa mga integer at mga tagubilin sa lumulutang na punto. Samantalang sa sunud-sunod na arkitektura, ang isang solong yunit na nagagamit ay ibinigay.

Pipelined Processor Unit

Pipelined Processor Unit

Sa static pipelining, dapat ipasa ng processor ang tagubilin sa lahat ng mga phase ng pipeline anuman ang kinakailangan ng tagubilin. Sa isang dynamic na pipeline processor, maaaring i-bypass ng isang tagubilin ang mga phase depende sa kinakailangan nito ngunit kailangang ilipat sa sunud-sunod na pagkakasunud-sunod. Sa isang komplikadong dinamikong processor ng pipeline, maaaring i-bypass ng tagubilin ang mga phase pati na rin piliin ang mga phase na hindi maayos.

Pipelining sa RISC Processors

Ang pinakatanyag Arkitektura ng RISC Sinusundan ng ARM processor ang 3-stage at 5-stage pipelining. Sa 3-yugto na pipelining ang mga yugto ay ang: Fetch, Decode, at Execut. Ang pipelining na ito ay may 3 cycle ng latency, dahil ang isang indibidwal na tagubilin ay tumatagal ng 3 cycle ng orasan upang makumpleto.

ARM 3 yugto Pipelining

ARM 3 yugto Pipelining

Para sa wastong pagpapatupad ng pipelining Ang arkitektura ng hardware ay dapat ding ma-upgrade. Ang hardware para sa 3 yugto ng pipelining ay may kasamang isang rehistro na bangko, ALU, Barrel shifter, Address generator, isang incrementer, Instruction decoder, at mga rehistro ng data.

ARM 3 Stage Pipelining Datapath

ARM 3 Stage Pipelining Datapath

Sa 5 yugto na pipelining ang mga yugto ay: Fetch, Decode, Execut, Buffer / data at Isulat muli.

Mga Peligro sa Pipelining

Sa isang pangkaraniwang programa ng computer bukod sa simpleng mga tagubilin, may mga tagubilin sa sangay, makagambala sa pagpapatakbo, magbasa at sumulat ng mga tagubilin. Ang pipelining ay hindi angkop para sa lahat ng uri ng mga tagubilin. Kapag ang ilang mga tagubilin ay naisakatuparan sa pipelining maaari nilang i-stall ang pipeline o i-flush ito nang buo. Ang ganitong uri ng mga problemang sanhi ng panahon ng pipelining ay tinatawag na Pipelining Hazards.

Sa karamihan ng mga programa sa computer, ang resulta mula sa isang tagubilin ay ginagamit bilang isang operand ng iba pang mga tagubilin. Kapag ang naturang mga tagubilin ay naisakatuparan sa pipelining, nangyayari ang pagkasira bilang resulta ng unang tagubilin ay hindi magagamit kapag ang tagubilin sa dalawa ay nagsisimulang mangolekta ng mga operan. Kaya, ang tagubilin sa dalawa ay dapat na tumigil hanggang sa ang isang tagubilin ay naisakatuparan at ang resulta ay nabuo. Ang uri ng panganib na ito ay tinatawag na Basahin –pagsusulat sa panganib na pipelining.

Basahin Pagkatapos Sumulat ng Panganib na Pipelining

Basahin Pagkatapos Sumulat ng Panganib na Pipelining

Ang pagpapatupad ng mga tagubilin sa sangay ay nagdudulot din ng isang panganib sa pipelining. Mga tagubilin sa sangay habang naisakatuparan sa pipelining nakakaapekto sa mga yugto ng pagkuha ng mga susunod na tagubilin.

Pipelined na Pag-uugali ng Sangay

Pipelined na Pag-uugali ng Sangay

Mga kalamangan ng Pipelining

  • Tataas ang throughput ng pagtuturo.
  • Ang pagdaragdag sa bilang ng mga yugto ng pipeline ay nagdaragdag ng bilang ng mga tagubiling isinasagawa nang sabay-sabay.
  • Ang mas mabilis na ALU ay maaaring idisenyo kapag ginamit ang pipelining.
  • Gumagawa ang Pipelined CPU ng mas mataas na mga frequency ng orasan kaysa sa RAM.
  • Pinapataas ng Pipelining ang pangkalahatang pagganap ng CPU.

Mga disadvantages ng Pipelining

  • Ang pagdidisenyo ng pipelined processor ay kumplikado.
  • Ang latency ng tagubilin ay nagdaragdag sa mga naka-proseso na pipelined.
  • Ang throughput ng isang pipelined processor ay mahirap hulaan.
  • Kung mas matagal ang pipeline, mas masahol pa ang problema sa peligro para sa mga tagubilin sa sangay.

Nakikinabang ang pipelining sa lahat ng mga tagubilin na sumusunod sa isang katulad na pagkakasunud-sunod ng mga hakbang para sa pagpapatupad. Ang mga processor na may mga kumplikadong tagubilin kung saan ang bawat tagubilin ay nag-uugali na naiiba mula sa iba pa ay mahirap pipeline. Ang mga processor ay may makatwirang pagpapatupad na may 3 o 5 yugto ng pipeline sapagkat habang lumalalim ang lalim ng pipeline ay nagdaragdag ang mga peligro na nauugnay dito. Pangalanan ang ilan sa mga pipelined na processor sa kanilang yugto ng pipeline?