- Ang mga core ay mga pisikal na yunit ng pagproseso na nagsasagawa ng mga tagubilin nang nakapag-iisa sa loob ng CPU.
- Ang mga thread ay mga lohikal na daloy ng pagpapatupad na naka-program sa mga kernel upang mas mahusay na magamit ang kanilang mga mapagkukunan.
- Ang mas maraming core at thread ay nagbibigay-daan para sa mas malawak na parallelism at mas mahusay na multitasking, basta't handa na ang software.
- Ang pagpili ng tamang bilang ng mga core at thread ay depende sa uri ng paggamit: basic, gaming, paglikha ng content, o propesyonal na kapaligiran.
Kapag sinimulan mong tingnan ang mga detalye ng processor, madaling maligaw sa napakaraming data: frequency, cache, TDP… at, siyempre, ang sikat na seksyon tungkol sa bilang ng mga core at thread . Ito ang mga terminong paulit-ulit na ginagamit kahit saan ngunit nagdudulot pa rin ng kalituhan, kahit na sa mga bihasang gumagamit.
Ang pag-unawa sa mga CPU core at thread ay hindi lamang isang teknikal na bagay. Direktang nakakaapekto ito sa totoong performance ng isang computer, kung gaano kahusay ang pagtakbo ng multitasking, at kung gaano kahusay ang performance ng mga laro, video editing software, at mga virtual machine. Bagama't kayang pamahalaan ng isang basic user nang hindi masyadong nagsasaliksik, ang pagkadalubhasa sa mga konseptong ito ay mahalaga para sa sinumang nagpo-program, gumagawa ng mga PC, o nais lamang gumawa ng matalinong mga desisyon sa pagbili.
Ano ang mga core ng processor?

Nakatago sa loob ng maliit na chip na tinatawag nating CPU ay ilang logic block na kumikilos bilang ganap na independiyenteng mga computing unit . Ang mga blokeng ito ang siyang mga core. Ang bawat core ay maaaring kumuha ng mga tagubilin mula sa RAM, iproseso ang mga ito kasabay ng orasan ng processor, at magbalik ng mga resulta, tulad ng isang maliit na utak sa loob ng pangunahing chip.
Ang mga lumang processor ay mayroon lamang isang core na kayang magpatupad ng isang instruksyon bawat clock cycle . Ang kapasidad na ito ay sinusukat sa megahertz (MHz) o gigahertz (GHz): mas mataas ang frequency, mas maraming instruksyon bawat segundo ang kaya nitong makumpleto. Sa kasalukuyan, bukod sa pagpapataas ng bilis ng clock, pinarami rin ng mga tagagawa ang bilang ng mga core upang lubos na mapataas ang raw processing power.
Ang bawat core ay gumaganap bilang isang pisikal na subprocessor na isinama sa iisang pakete . Ang isang quad-core CPU ay parang pagkakaroon ng apat na processor na gumagana nang parallel sa iisang chip. Nangangahulugan ito na, sa isang cycle, kayang hawakan ng CPU ang apat na magkakaibang instruksyon nang sabay-sabay, na nagpaparami sa computing power hangga't kayang samantalahin ito ng operating system at mga programa.
Mahalagang bigyang-diin na ang mga core ay mga pisikal na bahagi, hindi isang bagay na virtual o ginagaya ng software . Binubuo ang mga ito ng milyun-milyong transistor at circuit na nagpapatupad ng mga arithmetic unit, control unit, internal register, at iba pang elemento na nagpapahintulot sa paulit-ulit na pagpapatupad ng instruction cycle (fetch, decode, execute, at write result).
Sa kasalukuyan, sa merkado ng mga mamimili, karaniwan nang makahanap ng mga processor na may 2, 4, 6, 8, at higit pa sa 10 core , habang ang mga workstation at server ay karaniwang nag-aalok ng mas mataas na bilang, tulad ng 16, 32, o higit pang mga pisikal na core. Kung mas maraming core, mas maraming gawain ang maaaring iproseso nang sabay-sabay, na lalong kapaki-pakinabang para sa mga propesyonal na application, server, o mga workflow na may mataas na parallel workload.
Ano ang mga thread ng processor at paano ito gumagana?
Bagama't ang mga kernel ay mga pisikal na bahagi, ang mga thread (o subprocess) ay mga lohikal o virtual na entity na kumakatawan sa isang daloy ng pagpapatupad sa loob ng isang programa at maaaring iiskedyul ng operating system sa isa o higit pang mga kernel. Ang isang thread ay mahalagang isang pagkakasunod-sunod ng mga tagubilin na maaaring isagawa nang nakapag-iisa sa iba, na may sarili nitong impormasyon sa konteksto.
Maaari nating tingnan ang isang thread bilang ang landas na dinadaanan ng isang piraso ng code sa processor . Ang bawat thread ay may sariling mga execution register, sariling stack, at isang program counter na nagpapahiwatig kung aling instruksyon ang dapat isagawa sa anumang oras. Ang operating system ay responsable sa pagtatalaga ng mga thread na ito sa mga available na core at pamamahagi ng oras ng CPU sa mga ito nang mahusay hangga't maaari.
Sa programming, may pagkakaiba sa pagitan ng mga single-threaded at multi-threaded na aplikasyon . Ang isang single-threaded na programa ay may iisang daloy lamang ng pagpapatupad: ang mga tagubilin ay isinasagawa nang sunud-sunod, sa isang mahigpit na sunud-sunod na paraan. Sa isang multi-threaded na aplikasyon , sa kabilang banda, ang gawain ay ipinamamahagi sa ilang mga thread na maaaring tumakbo nang parallel, nagbabahagi ng mga mapagkukunan ngunit sabay-sabay na isinasagawa.
Ang pamamaraang ito ng paghahati ng workload ay nagbibigay-daan sa isang programa na magsagawa ng maraming operasyon nang sabay-sabay . Halimbawa, maaaring ilaan ng isang video editor ang isang thread para sa graphical interface, ang isa pa para sa rendering, ang isa pa para sa audio, at iba pa. Kung may sapat na mga CPU core at thread, ang mga bahaging ito ng programa ay tatakbo nang sabay-sabay, na nagpapabuti sa mga oras ng pagtugon at binabawasan ang pakiramdam ng lag.
Sa pagsasagawa, maraming modernong processor ang gumagamit ng sabay-sabay na mga teknolohiya ng multithreading tulad ng SMT o Hyper-Threading, na nagpapahintulot sa bawat pisikal na core na humawak ng dalawang thread ng pagpapatupad nang sabay-sabay . Ito ang dahilan kung bakit nakakakita ka ng mga CPU na may, halimbawa, 6 na core at 12 thread: mayroong anim na pisikal na unit, ngunit ang bawat isa ay maaaring magdala ng dalawang magkaibang instruction stream nang sabay-sabay, na mas mahusay na ginagamit ang mga internal na unit na kung hindi man ay naka-idle. Ang teknolohiyang Hyper-Threading ng Intel ay isang kilalang halimbawa nito.
Ugnayan sa pagitan ng mga programa, proseso, at mga thread
Para lubos na maunawaan ang papel ng mga thread, makakatulong na bumalik sa isang antas at tingnan kung paano inaayos ang trabaho sa operating system. Ang isang programa ay isang hanay lamang ng mga tagubilin na nakaimbak sa disk (mga application, driver, ang operating system mismo, atbp.) sa binary format, handa nang i-load sa memory kung kinakailangan.
Kapag nagpatakbo ka ng isang programa, ang sistema ay lumilikha ng kahit isang proseso na naglo-load sa RAM . Kasama sa prosesong ito ang executable code, ang data, ang mga resources na kailangan nito (mga file descriptor, reserved memory, atbp.), at isang konteksto na maingat na pinamamahalaan ng operating system. Ang bawat proseso ay matatagpuan sa isang partikular na espasyo ng memorya, na nakahiwalay sa iba, na nagbibigay ng katatagan at seguridad.
Ang isang proseso ay nangangailangan ng ilang pangunahing elemento upang gumana: isang program counter na nagsasaad ng susunod na instruksyon na isasagawa, isang serye ng mga rehistro kung saan nakaimbak ang pansamantalang datos at impormasyon sa kontrol, at isang stack na nag-iimbak ng datos mula sa mga aktibong function. Ang lahat ng ito ay patuloy na sine-save at naibabalik kapag ang sistema ay lumipat mula sa isang proseso patungo sa isa pa.
Ang nakakatuwa ay ang bawat proseso ay tumatakbo nang nakapag-iisa sa iba . Dahil sa kalayaang ito, kung sakaling mag-crash ang isang application, ang natitirang bahagi ng system ay maaaring patuloy na gumana. Ang kakayahang pamahalaan ang maraming proseso ay nagbibigay-daan para sa isang multitasking environment: pag-browse sa internet habang nakikinig ng musika, pagtingin sa iyong email, at pag-download ng mga file nang sabay-sabay.
Sa loob ng bawat proseso, may mga thread ng pagpapatupad. Ang thread ay ang pinakamaliit na yunit ng trabaho na maaaring ilaan ng operating system sa CPU . Ang isang proseso ay maaaring binubuo ng isang thread (ang pinakasimpleng kaso) o maraming thread na nagbabahagi ng parehong espasyo sa memorya at mga mapagkukunan sa pagproseso, ngunit isinasagawa nang magkasabay.
Mga prosesong single-wire at multi-wire
Sa isang single-threaded na proseso, ang lahat ng program code ay isinasagawa sa iisang daloy ng mga tagubilin . Nangangahulugan ito na kung ang isang bahagi ng programa ay tumatagal ng mahabang oras (halimbawa, isang mabagal na operasyon sa disk o isang mabigat na kalkulasyon), ang natitirang bahagi ng aplikasyon ay maaaring harangan hanggang sa matapos ang operasyong iyon, na lumilikha ng pakiramdam ng pagiging mabagal o pagtigil.
Kapag ang isang proseso ay multithreaded, ang gawain nito ay nahahati sa ilang mas maliliit na subprocess na tinatawag na threads . Ang mga thread na ito ay nagbabahagi ng memorya at mga mapagkukunan, ngunit ang bawat isa ay may sariling register stack at program counter. Sa ganitong paraan, dalawa o higit pang bahagi ng programa ang maaaring maisagawa nang sabay-sabay, na binabawasan ang mga oras ng paghihintay at mas mahusay na ginagamit ang mga magagamit na core.
Halimbawa, ang isang web browser ay maaaring may isang thread para sa interface, isa pa para sa paglo-load ng mga pahina, isa pa para sa pagpapatupad ng JavaScript code, at isa pa para sa pag-play ng video. Kung mayroong maraming CPU core at thread, lahat ng thread na ito ay maaaring tumakbo nang sabay-sabay , na nagreresulta sa mas maayos na karanasan ng user.
Ang mahalaga ay, sa mas maraming thread, ang dami ng sabay-sabay na mga kalkulasyon ay tumataas nang malaki . Hindi ito nangangahulugan na ang CPU mismo ay mas mabilis, kundi sa halip ay mapapanatili nitong abala ang mga panloob na yunit nito sa mas maraming parallel na gawain. Ito ay isinasalin sa mas mahusay na paggamit ng hardware, lalo na sa mga programang partikular na idinisenyo upang gumana sa maraming thread.
Sa mga processor na may teknolohiyang multithreading, ang isang dual-threaded core ay hindi literal na nagpapatupad ng dalawang instruksyon sa parehong cycle sa 100% na kahusayan, ngunit maaari itong lumipat sa pagitan ng dalawang thread nang napakabilis na parang gumagana ang mga ito nang magkasabay. Ang operating system ay naglalaan ng maliliit na "hiwa ng oras ng CPU" sa bawat thread, at ang paglipat sa pagitan ng mga ito ay nangyayari sa loob ng ilang segundo, hindi mahahalata ng gumagamit.
Mga pangunahing pagkakaiba sa pagitan ng mga core at strand
Ang pangunahing pagkakaiba ay ang mga core ay mga pisikal na processing unit , habang ang mga thread ay mga lohikal na entity na kumakatawan sa mga gawain o subprocess na tumatakbo sa mga core na iyon. Ang isang core ay maaaring umiral nang walang karagdagang mga SMT thread (nagsasagawa lamang ng isang instruction stream), ngunit ang isang thread, gaano man ka-virtual, ay palaging nangangailangan ng isang pisikal na core sa isang punto upang maisagawa.
Kapag tinitingnan ang mga detalye ng CPU, makakakita ka ng mga kumbinasyon tulad ng "4 cores / 8 threads" o "6 cores / 12 threads." Nangangahulugan ito na ang bawat pisikal na core ay kayang humawak ng dalawang thread ng pagpapatupad nang sabay-sabay . Sa isang 6-core, 12-thread processor, ang operating system ay nakakakita ng 12 logical units kung saan mag-iiskedyul ng mga gawain, kahit na sa antas ng silicon ay mayroon lamang 6 na kumpletong bloke ng pagpapatupad.
Sa praktikal na termino, tinutukoy ng mga core kung gaano karaming mga tunay na independiyenteng gawain ang maaaring gawin ng CPU nang sabay-sabay , habang pinoproseso ng mga thread ang paggamit ng mga core na iyon, na binabawasan ang oras ng pag-idle at nagbibigay-daan para sa mas maraming sabay-sabay na mga thread. Ito ang dahilan kung bakit sinasabing pinapataas ng mga thread ang kahusayan, ngunit ang makabuluhang paglukso sa totoong kapasidad ay palaging nagmumula sa pagdaragdag ng mas maraming pisikal na core.
Sa madaling salita, ang mga core ang nagbibigay ng pisikal na kalamnan, habang ang mga thread naman ang mas nag-oorganisa ng trabaho . Ang mahusay na balanse sa pagitan ng dalawa ay nakakagawa ng malaking pagkakaiba sa pangkalahatang pagganap ng sistema, lalo na kapag nakikitungo sa masinsinang multitasking o mahirap na propesyonal na software.
Mga core o strand: alin ang mas mahalaga depende sa paggamit
Ang karaniwang tanong kapag bumibili ng CPU ay kung uunahin ba ang mas maraming pisikal na core o mas maraming lohikal na thread . Ang sagot ay higit na nakadepende sa kung paano mo balak gamitin ang computer at kung paano nakaprograma ang mga application na karaniwan mong ginagamit.
Sa mga gawaing labis na gumagamit ng hardware, tulad ng mga mahahabang laro, advanced na pag-edit ng video, 3D rendering, o pagpapatakbo ng mga virtual machine, ang pagkakaroon ng malaking bilang ng mga pisikal na core ay karaniwang mas kapaki-pakinabang . Ang mga workload na ito ay nakikinabang sa kakayahang ipamahagi ang malalaking gawain sa maraming pisikal na core, sa halip na umasa lamang sa mga logical thread sa ilang core.
Para sa mas pang-araw-araw na paggamit, tulad ng pag-browse, pagtatrabaho sa mga dokumento, paggamit ng ilang magaan na aplikasyon nang sabay-sabay, o pagkonsumo ng multimedia content, ang mahusay na pamamahala ng thread ay maaaring magdulot ng mas malaking pagkakaiba . Kahit na kakaunti ang mga core, kung sinusuportahan ng CPU ang maraming thread bawat core at mahusay na ipinamamahagi ng system ang mga ito, ang pangkalahatang karanasan ay magiging maayos at mabilis tumugon.
Sa pagbuo ng software, mahalaga ang masusing pag-unawa sa kung paano pinamamahalaan ang mga core at thread. Ang isang programang hindi maayos ang pagkakaparallel ay maaaring hindi makinabang sa isang processor na may maraming thread o maraming core , habang ang isang mahusay na dinisenyong application ay mahusay na lumalawak habang tumataas ang bilang ng mga available na core. Ang ilang software ay na-optimize para sa maraming logical thread, habang ang ibang software ay alam lamang kung paano gamitin ang ilang napakalakas na core.
Sa madaling salita, para sa karamihan ng mga gumagamit ng bahay, ang isang 4- hanggang 6-core na CPU na may maraming thread ay karaniwang nag-aalok ng mahusay na balanse sa pagitan ng presyo at pagganap . Para sa mga tagalikha ng nilalaman, mga mahilig sa laro, o mga propesyonal na gumagamit ng mga programang nangangailangan ng maraming processor, mas makatuwiran ang pag-upgrade sa 8, 10, o higit pang mga core, lalo na kung ang mga application na iyon ay idinisenyo upang samantalahin ang multithreading.
Paano malaman kung ilang core at thread ang mayroon ang iyong CPU
Kung gusto mong suriin kung ilang core at thread ang mayroon ang iyong computer, ang operating system mismo ay nag-aalok ng napakasimpleng mga tool para gawin ito nang hindi kinakailangang mag-install ng anumang karagdagang bagay . Ito ay kapaki-pakinabang para malaman kung ang iyong hardware ay nakakatugon sa mga kinakailangan ng isang partikular na programa o laro, o para sa pagtatasa kung talagang sulit na i-upgrade ang iyong processor.
Sa Windows 10 o 11, maaari mong buksan ang context menu ng Start button at pumunta sa seksyong "System" para makita ang naka-install na modelo ng processor . Gamit ang impormasyong iyon, maaari kang maghanap sa website ng gumawa at tingnan kung ilang core at thread ang sinusuportahan nito. Bukod pa rito, ang Task Manager , sa tab na "Performance", ay nagpapakita ng mga graph bawat logical CPU na nagbibigay sa iyo ng ideya kung gaano karaming thread ang ginagamit ng system.
Kung gusto mo ng mas detalyadong impormasyon, ang Task Manager mismo ay may link papunta sa Resource Monitor , kung saan makikita mo ang breakdown ng mga proseso at thread kasama ang kanilang paggamit ng CPU. Ang bawat entry na "thread" doon ay tumutugma sa isang thread ng pagpapatupad na pinamamahalaan ng system.
Sa macOS, ang pangunahing impormasyon ng CPU ay matatagpuan sa menu ng Apple, sa ilalim ng "About This Mac," at pagkatapos ay "System Report ." Doon mo makikita ang pangalan ng processor at, sa pamamagitan ng pagkonsulta sa mga opisyal na detalye, malalaman ang bilang ng mga pisikal na core at thread. Ipinapakita rin ng Activity Monitor ang bilang ng mga thread na mayroon ang bawat bukas na application.
Gamit ang mga tool na ito, makakakuha ka ng malinaw na ideya kung gaano kalaking parallel processing power ang mayroon ka talaga at kung napupuno ba ng iyong mga programa ang mga core o gumagamit lang ng isa o dalawa, na halos hindi ginagamit ang iba.
Ilang CPU core ang dapat mong piliin depende sa iyong paggamit?
Hindi pareho ang ideal na bilang ng mga core para sa lahat. Depende ito sa mga uri ng gawain na ginagawa mo araw-araw at kung ang iyong mga paboritong application ay na-optimize upang samantalahin ang maraming core at thread . Hindi laging mas mabuti ang mas marami, ngunit mahalagang mahanap ang tamang saklaw.
Para sa mga napaka-basic na gamit (pag-browse, mga simpleng gawain sa opisina, email, panonood ng mga video) kadalasang sapat na ang 2 pisikal na core , bagama't sa panahon ngayon ay mas mainam na gumamit ng kahit 4 para makakuha ng karagdagang espasyo para sa mga update ng software sa hinaharap at medyo mas masinsinang multitasking.
Kung karaniwan kang naglalaro ng mga larong hindi gaanong mahirap, gumagawa ng magaan na pag-eedit ng larawan o video, at nagpapanatili ng ilang application na nakabukas nang sabay-sabay, ang pinakamabisang opsyon ay maghanap ng quad-core processor na may suporta sa multi-threading. Malaki ang naging bentahe kumpara sa dual-core processor sa mga tuntunin ng pangkalahatang smoothness, loading times, at kakayahang humawak ng maraming programa nang sabay-sabay.
Para sa mga larong nangangailangan ng maraming pagsisikap, mas seryosong paglikha ng nilalaman (high-resolution na pag-edit ng video, madalas na 3D rendering), o paggamit ng virtual machine, ang paglipat sa hanay ng 6-8 core ay nag-aalok ng malaking pagsulong sa pagganap. Maraming modernong laro ang maaaring gumamit ng 6 o 8 core nang mahusay, at ang mga programa sa pag-eedit at pag-render ay karaniwang mahusay na nasusukat sa bawat karagdagang core.
Higit sa 10 core, pinag-uusapan natin ang mga sistemang idinisenyo para sa mga napakahirap na senaryo: high-end gaming na may sabay-sabay na streaming , propesyonal na 3D rendering at animation, mga kumplikadong simulation, o mga workstation at server na nagpapatakbo ng maraming gawain nang sabay-sabay. Sa mga kasong ito, mas maraming core at thread (kung mahusay na nagagamit ang mga ito ng software), mas mahusay ang kapasidad na iproseso ang napakalaking workload.
Epekto ng core at thread count sa performance
Ang pagkakaroon ng mas maraming core at thread ay makabuluhang nagbabago sa kung paano kumikilos ang sistema kapag may load. Ang isang CPU na may maraming core ay kayang humawak ng maraming sabay-sabay na gawain nang hindi hinaharangan ng isa ang isa pa , na nagreresulta sa mas mabilis na oras ng pagtugon, mas kaunting stutter, at mas mataas na stability kapag ang iyong PC ay tumatakbo sa full capacity.
Ang multitasking ay isa sa mga aspeto kung saan ito pinakakapansin-pansin. Ang pagkakaroon ng maraming core at thread ay nagbibigay-daan sa operating system na ipamahagi ang mga application sa iba't ibang logical CPU , nang sa gayon, habang ang isa ay humahawak ng mahabang kalkulasyon, ang iba ay maaaring patuloy na tumugon sa user. Ito ang nagbibigay-daan, halimbawa, na maglaro habang may nire-render sa background o nagre-record ng gameplay video.
Sa mga video game, karamihan sa mga modernong laro ay karaniwang may mahusay na sukat sa 4 o 6 na core, at ang ilang high-end na laro ay gumagamit ng 8 pisikal na core . Sa mga kasong ito, bilang karagdagan sa graphics card, dapat pangasiwaan ng processor ang physics, artificial intelligence, game logic, networking, at iba pa. Ang pamamahagi ng mga gawaing ito sa maraming core at thread ay nakakatulong na mapanatili ang mas matatag na frame rate, lalo na sa mga lubhang mahirap na eksena.
Sa paglikha ng nilalaman, tulad ng propesyonal na pag-edit ng video, 3D rendering, o malawakang pagproseso ng larawan, ang bilang ng mga core ay gumaganap ng isang mahalagang papel. Maraming rendering engine, video encoder, at mga propesyonal na tool ang idinisenyo upang masukat nang halos linear sa bawat karagdagang core , kaya ang paglipat mula 4 hanggang 8 core ay maaaring makabawas sa oras ng pag-export sa kalahati sa ilalim ng ilang partikular na workload.
Sa mga kapaligiran ng server at workstation, ang paghawak ng dose-dosenang mga user, virtual machine, o mga sabay-sabay na serbisyo ay nangangailangan ng napakataas na bilang ng mga core , kadalasan ay 16 o higit pa. Ang bawat serbisyo o makina ay maaaring may ilang core at thread na nakalaan, at mayroon pa ring espasyo para sa mga bagong gawain, na makabuluhang nagpapataas sa pangkalahatang kapasidad ng sistema.
Gayunpaman, mahalagang tandaan na hindi lahat ng programa ay lubos na nakikinabang sa mga karagdagang core . Maraming programa ang umaasa pa rin nang husto sa iisang pangunahing thread, kaya ang bilis ng bawat core (dalas at pagganap bawat cycle) ay nananatiling mahalaga. Sa isip, dapat mong pagsamahin ang isang makatwirang bilang ng mga core na may mahusay na frequency, nang hindi lamang naaapektuhan ng hype sa marketing na nakapalibot sa bilang ng thread.
Kung isasaalang-alang ang lahat ng ito, malinaw na ang mga core at thread ay nagtutulungan upang matukoy ang aktwal na pag-uugali ng CPU : tinutukoy ng mga core kung gaano karaming magkakahiwalay na gawain ang maaaring hawakan nang sabay-sabay, at pinapayagan ng mga thread na hatiin ang mga gawaing ito sa mas maliliit at mas mahusay na koordinasyon ng mga bahagi. Ang pag-unawa kung paano magkakasama ang bawat bahagi ay makakatulong sa iyo na pumili ng tamang processor at masuri kung ang pag-upgrade ay tunay na sulit batay sa iyong pang-araw-araw na gawain.