Kapag ang mga personal na computer ay unang naimbento, ang kanilang gitnang pagpoproseso ng yunit (CPU) ay tumayo nag-iisa at mayroon lamang isang core core. Ang processor mismo ay ang pangunahing; ang ideya ng pagkakaroon ng isang multi-core processor ay hindi pa napapansin. Ngayon, hindi pangkaraniwan na makita ang makita ang mga computer, telepono, at iba pang mga aparato na may maraming mga cores - sa katunayan, halos lahat ng magagamit na computer na magagamit ng anumang uri ng computer ay may maraming mga cores. Ang mga cores ay naninirahan sa pareho, solong, CPU, o Central Processing Unit.
Ang pagkakaroon ng maraming mga cores ay isang malaking kalamangan. Sa pamamagitan lamang ng isang pangunahing, ang isang computer ay maaari lamang gumana sa isang gawain nang sabay-sabay, kinakailangang makumpleto ang isang gawain bago ito lumipat sa isa pa. Sa mas maraming mga cores, gayunpaman, ang isang computer ay maaaring gumana sa maraming mga gawain nang sabay-sabay, na kung saan ay lalong kapaki-pakinabang para sa mga gumagawa ng maraming multitasking.
Bago sumisid sa eksaktong kung paano gumagana ang mga multi-core processors, mahalagang pag-usapan nang kaunti ang tungkol sa backstory ng teknolohiyang pagproseso, pagkatapos nito tatalakayin kung ano ang ginagawa ng mga multi-core processors.
Ilang Kasaysayan
Bago pa itinayo ang mga processors na may maraming mga cores, sinubukan ng mga tao at kumpanya tulad ng Intel at AMD na bumuo ng mga computer na may maraming mga CPU. Ang ibig sabihin nito ay ang isang motherboard na may higit sa isang CPU socket ay kinakailangan. Hindi lamang ito mas mahal, dahil sa pisikal na hardware na kailangan para sa isa pang CPU socket, ngunit nadagdagan din ang latency dahil sa nadagdag na komunikasyon na kinakailangan upang maganap sa pagitan ng dalawang mga nagproseso. Kailangang hatiin ng isang motherboard ang data sa pagitan ng dalawang ganap na hiwalay na mga lokasyon sa isang computer kaysa sa pagpapadala lamang ng lahat ng ito sa processor. Ang pisikal na distansya ay sa katunayan ay nangangahulugan na ang isang proseso ay mas mabagal. Ang paglalagay ng mga prosesong ito sa isang chip na may maraming mga cores ay hindi lamang nangangahulugang may mas kaunting distansya sa paglalakbay, ngunit nangangahulugan din ito na ang iba't ibang mga cores ay maaaring magbahagi ng mga mapagkukunan upang maisagawa ang mga mabibigat na gawain. Halimbawa, ang Intel Pentium II at Pentium III chips ay parehong ipinatupad sa mga bersyon na may dalawang mga processors sa isang motherboard.
Pagkaraan ng ilang sandali, ang mga processor ay kinakailangan upang maging mas malakas, kaya ang mga tagagawa ng computer ay dumating sa konsepto ng hyper-threading. Ang konsepto mismo ay nagmula sa Intel, at una itong nilihi noong 2002 sa mga processor ng server ng Xeon ng kumpanya, at kalaunan sa Pentium 4 na mga processor ng desktop. Ginagamit pa rin ang Hy--threading ngayon sa mga processors, at kahit na ang pangunahing pagkakaiba sa pagitan ng i5 chips ng Intel at ang mga i7 chips. Karaniwang sinasamantala nito ang katotohanan na madalas na hindi ginagamit na mapagkukunan sa isang processor, partikular na kapag ang mga gawain ay hindi nangangailangan ng maraming pagpoproseso ng kapangyarihan, na maaaring magamit para sa iba pang mga programa. Ang isang processor na gumagamit ng hyper-threading ay karaniwang nagtatanghal mismo sa isang operating system na tila mayroon itong dalawang mga core. Siyempre, wala talaga itong dalawang mga cores, subalit para sa dalawang mga programa na gumagamit ng kalahati ng kapangyarihan sa pagproseso na magagamit o mas kaunti, maaaring magkakaroon din ng dalawang cores dahil sa katotohanan na magkasama silang maaaring samantalahin ang lahat ng kapangyarihan na nag-aalok ang processor. Ang Hy--threading ay, gayunpaman, ay bahagyang mas mabagal kaysa sa isang processor na may dalawang mga cores kapag walang sapat na kapangyarihan sa pagproseso upang ibahagi sa pagitan ng dalawang mga programa gamit ang core.
Maaari kang makahanap ng isang nakakaalam na video na nagbibigay ng isang maikling, mas detalyadong paliwanag ng hyper-threading dito.
Maraming Proseso
Matapos ang maraming eksperimento, ang mga CPU na may maraming mga cores ay sa wakas ay maaaring maitayo. Ang ibig sabihin nito ay ang isang solong processor na karaniwang mayroong higit sa isang yunit ng pagproseso. Halimbawa, ang isang dual-core processor ay may dalawang yunit ng pagproseso, ang isang quad-core ay may apat, at iba pa.
Kaya bakit binuo ng mga kumpanya ang mga processors na may maraming mga cores? Buweno, ang pangangailangan para sa mas mabilis na mga processors ay naging mas maliwanag, gayunpaman ang mga pag-unlad sa solong mga processor ng core ay nagpapabagal. Mula 1980s hanggang 2000s, ang mga inhinyero ay nakapagpataas ng bilis ng pagproseso mula sa maraming megahertz hanggang sa ilang gigahertz. Ginagawa ito ng mga kumpanyang tulad ng Intel at AMD sa pamamagitan ng pag-urong ng laki ng mga transistor, na pinapayagan para sa mas maraming mga transistor sa parehong dami ng puwang, kaya pinapabuti ang pagganap.
Dahil sa ang katunayan na ang bilis ng orasan ng processor ay napaka-link sa kung gaano karaming mga transistor ang maaaring magkasya sa isang maliit na tilad, kapag ang teknolohiya ng pag-urong ng transistor ay nagsimulang mabagal, ang pag-unlad sa pagtaas ng mga bilis ng processor ay nagsimulang mabagal. Bagaman hindi ito ang una nang nalalaman ng mga kumpanya tungkol sa mga prosesong multi-core, ito ay kapag sinimulan nila ang pag-eksperimento sa mga processor ng multi-core para sa mga komersyal na layunin. Habang ang mga multi-core processors ay unang binuo noong kalagitnaan ng 1980s, dinisenyo ito para sa mga malalaking korporasyon, at hindi talaga muling binago hanggang sa magsimulang mabagal ang single-core na teknolohiya. Ang unang processor na multi-core ay binuo ng Rockwell International, at isang bersyon ng 6501 chip na may dalawang 6502 na mga processor sa isang maliit na tilad (higit pang mga detalye ay magagamit dito sa Wikipedia na pagpasok).
Ano ang Ginawa ng Isang Pinroseso ng Multi-Core?
Kumbaga, talagang lahat ng diretso. Ang pagkakaroon ng maraming mga cores ay nagbibigay-daan sa maraming mga bagay na gawin nang sabay-sabay. Halimbawa, kung nagtatrabaho ka sa mga email, may bukas na browser ng Internet, nagtatrabaho sa isang excel spreadsheet, at nakikinig sa musika sa iTunes, kung gayon ang isang quad-core processor ay maaaring gumana sa lahat ng mga bagay na ito nang sabay-sabay. O, kung ang isang gumagamit ay may isang gawain na kailangang makumpleto kaagad, maaari itong hatiin sa mas maliit, mas madaling maproseso ang mga gawain.
Ang paggamit ng maraming mga cores ay hindi lamang limitado sa maraming mga programa. Halimbawa, inilalagay ng Google Chrome ang bawat bagong pahina na may iba't ibang proseso, nangangahulugang maaari itong samantalahin ng maraming mga cores nang sabay-sabay. Ang ilang mga programa, gayunpaman, ay tinatawag na single-threaded, na nangangahulugang hindi sila isinulat upang magamit ang maraming mga cores at dahil hindi ito magagawa. Muling naglalaro ang Hy--threading dito, na nagpapahintulot sa Chrome na magpadala ng maraming mga pahina sa dalawang "lohikal na mga cores" sa isang aktwal na core.
Ang pagpunta sa kamay kasama ang mga multi-core processors at hyper-threading ay isang konsepto na tinatawag na multithreading. Ang Multithreading ay mahalagang kakayahan para sa isang operating system na samantalahin ang maraming mga cores sa pamamagitan ng paghahati ng code hanggang sa pinaka pangunahing form nito, o mga thread, at pagpapakain ito sa iba't ibang mga cores nang sabay-sabay. Ito ay, siyempre, mahalaga sa mga multi-processors pati na rin ang mga processors ng multi-core. Ang multi-threading ay medyo mas masalimuot kaysa sa tunog, dahil nangangailangan ito ng mga operating system upang maayos na mag-order ng code sa isang paraan na ang programa ay maaaring magpatuloy na tumakbo nang mahusay.
Ang mga operating system mismo ay gumagawa ng mga katulad na bagay sa mga proseso ng kanilang sariling - hindi lamang ito limitado sa mga aplikasyon. Ang mga proseso ng operating system ay mga bagay na palaging ginagawa sa operating system sa background, nang hindi alam ito ng gumagamit. Dahil sa ang katunayan na ang mga prosesong ito ay palaging nangyayari, ang pagkakaroon ng hyper-threading at / o maraming mga cores ay maaaring maging kapaki-pakinabang, dahil pinapalaya nito ang processor upang magtrabaho sa iba pang mga bagay tulad ng kung ano ang nangyayari sa mga app.
Paano Gumagana ang Mga Multi-Core Processors?
Una, ang motherboard at ang operating system ay kailangang makilala ang processor at mayroong maraming mga cores. Ang mga matatandang computer ay mayroon lamang isang pangunahing, kaya ang isang mas matandang operating system ay maaaring hindi masyadong gumana kung sinubukan ng isang gumagamit na mai-install ito sa isang mas bagong computer na may maraming mga cores. Ang Windows 95, halimbawa, ay hindi sumusuporta sa hyper-threading o maraming mga cores. Ang lahat ng mga kamakailang operating system ay sumusuporta sa mga prosesong multi-core, kabilang ang mga gusto ng Windows 7, 8, ang bagong inilabas 10, at ang OS X OS 10.10.
Ilagay talaga, ang operating system pagkatapos ay nagsasabi sa motherboard na ang isang proseso ay kailangang gawin. Pagkatapos ay sinabi ng motherboard sa processor. Sa isang multi-core processor, ang operating system ay maaaring sabihin sa processor na gumawa ng maraming mga bagay nang sabay-sabay. Mahalaga, sa pamamagitan ng direksyon ng operating system, ang data ay inilipat mula sa hard drive o RAM, sa pamamagitan ng motherboard, sa processor.
Tagapagproseso ng Multi-Core
Sa loob ng isang processor, maraming mga antas ng memorya ng cache na may hawak na data para sa susunod na operasyon o operasyon ng processor. Ang mga antas ng memorya ng cache na matiyak na ang processor ay hindi kailangang magmukhang malayo upang mahanap ang kanilang susunod na proseso, makatipid ng maraming oras. Ang unang antas ng memorya ng cache ay ang L1 cache. Kung hindi mahanap ng processor ang data na kailangan nito para sa susunod na proseso sa L1 cache, titingnan ito sa L2 cache. Ang L2 cache ay mas malaki sa memorya, ngunit mas mabagal kaysa sa L1 cache.
Nag-iisang Tagaproseso ng Core
Kung hindi mahanap ng isang processor kung ano ang hinahanap nito sa L2 cache, nagpapatuloy ito pababa sa linya sa L3, at kung mayroon itong isang processor, L4. Pagkatapos nito, titingnan ito sa pangunahing memorya, o ang RAM ng isang computer.
Mayroon ding iba't ibang mga paraan kung saan ang iba't ibang mga processors ay humahawak sa pagkakaiba-iba ng mga cache. Halimbawa, ang ilang mga dobleng data sa L1 cache sa L2 cache, na talaga ay isang paraan upang matiyak na makahanap ang processor kung ano ang hinahanap nito. Ito ay, siyempre, kumuha ng higit pang memorya sa L2 cache.
Ang iba't ibang mga antas ng cache ay naglalaro din sa mga processors ng multi-core. Karaniwan, ang bawat core ay magkakaroon ng sariling L1 cache, ngunit magbabahagi sila ng L2 cache. Ito ay naiiba mula sa kung mayroong maraming mga processors, dahil ang bawat processor ay may sariling L1, L2 at anumang iba pang antas ng cache. Sa maraming mga processors na single-core, ang pagbabahagi ng cache ay hindi posible. Ang isa sa mga pangunahing bentahe sa pagkakaroon ng isang ibinahaging cache ay ang kakayahang gumamit ng isang cache hanggang sa buong, dahil sa ang katunayan na kung ang isang pangunahing hindi gumagamit ng cache, ang iba ay maaari.
Sa isang multi-core processor, kapag naghahanap para sa data ng isang core ay maaaring tumingin sa pamamagitan ng kanyang sariling natatanging cache L1, at pagkatapos ay mag-branch out sa ibinahaging L2 cache, RAM, at sa huli ang hard drive.
Malamang na patuloy nating makikita ang pag-unlad ng mas maraming mga cores. Ang mga bilis ng processor ng orasan ay tiyak na magpapatuloy na gumanda, kahit na sa mas mabagal na rate kaysa sa dati. Habang hindi pangkaraniwan ngayon na makita ang mga processors ng mga octa-core sa mga bagay tulad ng mga smartphone, sa lalong madaling panahon maaari naming makita ang mga processors na may dose-dosenang mga cores.
Saan sa palagay mo ang teknolohiyang pagpoproseso ng multi-core ay susunod sa susunod? Ipaalam sa amin ang mga komento sa ibaba, o sa pamamagitan ng pagsisimula ng isang bagong thread sa aming forum sa komunidad.