← Yazılara Dön

Donanım

Öne Çıkan

CPU Nedir? Bir İşlemci Komutları Nasıl Çalıştırır?

CPU’nun temel yapısını; core, register, control unit ve execution unit kavramları üzerinden inceliyor, bir komutun Fetch, Decode, Execute ve Retire aşamalarından nasıl geçtiğini adım adım açıklıyorum.

Yayın

16 Ekim 2026

Kategori

Donanım

CPU NEDİR?

CPU (Central Processing Unit), bilgisayardaki program komutlarını yorumlayan ve bu komutların gerektirdiği işlemleri gerçekleştiren temel işlem birimidir.

Bir program çalışırken CPU yalnızca matematiksel hesaplama yapmaz. Bellekten gerekli bilgilerin alınması, komutların yorumlanması, uygun işlem biriminin seçilmesi ve sonuçların doğru yere yazılması gibi birçok işlemi koordine eder.

Basitleştirilmiş olarak bir CPU’nun çalışma akışı şöyle düşünülebilir:

Instruction ↓ Fetch ↓ Decode ↓ Execute ↓ Write-back / Retire

Modern işlemcilerde bu yapı çok daha karmaşıktır. Birden fazla komut aynı anda farklı işlem aşamalarında bulunabilir ve CPU, uygun durumlarda birden fazla işlemi paralel olarak yürütebilir.

CPU VE CORE ARASINDAKİ FARK

CPU ile core aynı kavram değildir.

CPU, işlemci paketinin tamamını ifade ederken core, CPU içerisinde komut çalıştırabilen işlem çekirdeğidir.

Örneğin 8 core bulunan bir işlemcide, işlemci içerisinde sekiz fiziksel işlem çekirdeği bulunur. Ancak bu durum bilgisayarın her programı otomatik olarak sekiz kat hızlı çalıştıracağı anlamına gelmez.

Performans; programın paralel çalışmaya uygunluğu, işlemcinin mimarisi, saat frekansı, bellek erişim süresi ve kullanılan execution unit sayısı gibi birçok faktöre bağlıdır.

Bir core içerisinde ise register’lar, ALU, FPU, scheduler, execution unit’ler ve çeşitli kontrol mekanizmaları bulunabilir.

REGISTER NEDİR?

Register, CPU’nun üzerinde çalıştığı verilere çok hızlı şekilde erişebilmesi için core içerisinde bulunan küçük ve çok hızlı depolama alanıdır.

CPU’nun bir hesaplama yapmak için ihtiyaç duyduğu operandların mümkün olduğunca işlemciye yakın tutulması gerekir. Çünkü RAM’e erişmek, register’a erişmeye kıyasla oldukça yavaştır.

Register’lar farklı amaçlarla kullanılabilir.

General-purpose register’lar sayılar, adresler ve geçici işlem değerleri tutabilir.

Instruction Pointer veya Program Counter olarak adlandırılan register, sıradaki çalıştırılacak komutun adresini takip eder.

Stack Pointer ise aktif stack bölgesinin konumunu gösterir.

Flags veya Status Register, bir önceki işlemin sonucu hakkında durum bilgileri tutabilir.

Modern CPU’larda ayrıca SIMD veya vector register gibi daha geniş register türleri de bulunabilir.

FETCH: KOMUTUN GETİRİLMESİ

CPU’nun ilk olarak hangi komutu çalıştıracağını bilmesi gerekir.

Bu noktada Instruction Pointer devreye girer ve sıradaki instruction’ın adresini gösterir.

Modern işlemcilerde CPU önce komutu instruction cache gibi işlemciye yakın bellek katmanlarında arar. Komut burada bulunamazsa istek daha alt cache seviyelerine ve gerektiğinde RAM’e kadar ilerleyebilir.

Fetch aşamasının temel amaçlarından biri execution birimlerinin mümkün olduğunca komutsuz kalmasını önlemektir.

CPU’nun performansı yalnızca hesaplama hızına değil, ihtiyaç duyduğu komut ve verilere ne kadar hızlı ulaşabildiğine de bağlıdır.

DECODE: KOMUTUN ÇÖZÜMLENMESİ

Fetch edilen instruction CPU’ya makine kodu biçiminde gelir.

Bir instruction genellikle yapılacak işlemi ifade eden bir opcode ve üzerinde işlem yapılacak verileri veya adresleri belirten operand bilgileri içerir.

Örneğin kavramsal olarak şöyle bir işlem düşünelim:

ADD R1, R2

Burada CPU’nun anlaması gereken birkaç bilgi vardır:

İşlem: toplama Kaynak: R1 Kaynak: R2 Hedef: ilgili register

Decode birimi instruction’ı çözerek CPU’nun ne yapması gerektiğini belirler.

Modern x86-64 işlemcilerde bazı karmaşık instruction’lar, core içerisinde daha küçük işlemlere yani micro-op’lara dönüştürülebilir.

Bu micro-op’lar daha sonra uygun execution unit’lere gönderilebilir.

CONTROL UNIT NE YAPAR?

Control Unit, CPU içerisindeki işlemlerin uygun sırayla ve doğru donanım kaynakları kullanılarak gerçekleştirilmesini sağlayan kontrol mantığıdır.

Örneğin bir toplama işlemi gerçekleştirilecekse CPU’nun:

Gerekli register'ları okuması → toplama yapabilecek execution unit'i kullanması → sonucu uygun hedefe yönlendirmesi

gerekir.

Bu işlemler sırasında farklı devreleri etkinleştiren kontrol sinyalleri kullanılır.

Modern işlemcilerde bu kontrol mekanizması tek bir fiziksel kutudan ibaret değildir. Kontrol mantığı CPU’nun farklı bölümlerine dağıtılmış karmaşık bir yapıdır.

SCHEDULER VE EXECUTION UNIT

Decode edilen işlemler her zaman hemen çalıştırılamaz.

Örneğin:

A = B + C D = A + E

ikinci işlem, birinci işlemde hesaplanacak A değerine bağımlıdır.

Bu durumda ikinci işlem gerekli veri hazır olana kadar beklemek zorundadır.

Scheduler, çalışmaya hazır işlemleri takip eder ve uygun execution unit’e gönderir.

Execution unit ise gerçek hesaplamanın yapıldığı donanım bölümüdür.

CPU içerisinde farklı türlerde execution unit’ler bulunabilir:

Integer Execution Unit ALU FPU Vector / SIMD Unit Load / Store Unit

Böylece birbirinden bağımsız bazı işlemler aynı anda farklı execution unit’lerde yürütülebilir.

LOAD / STORE UNIT NEDİR?

CPU’nun gerçekleştirdiği her işlem yalnızca register’lar arasında gerçekleşmez.

Programlar sürekli olarak bellekteki verilere ihtiyaç duyar.

Load işlemi bellekteki bir verinin CPU tarafına getirilmesini ifade ederken Store işlemi CPU’daki bir sonucun belleğe yazılmasını ifade eder.

Load/Store Unit bu bellek erişimlerinin yönetilmesinde görev alır.

Modern işlemcilerde bellek adreslerinin hesaplanmasına yardımcı olan AGU (Address Generation Unit) gibi özel donanımlar da bulunabilir.

EXECUTE: İŞLEMİN GERÇEKLEŞTİRİLMESİ

Gerekli veriler hazır olduğunda işlem uygun execution unit’e gönderilir.

Tam sayı toplama veya mantıksal bir işlem ALU üzerinde gerçekleştirilebilirken kayan noktalı işlemler FPU veya vector execution birimleri üzerinde gerçekleştirilebilir.

Örneğin:

Register A = 5 Register B = 7

A + B ↓ ALU ↓ 12

Ancak burada işlem henüz program açısından tamamen tamamlanmış kabul edilmeyebilir.

WRITE-BACK VE RETIRE / COMMIT

Execution unit tarafından oluşturulan sonuç gerekli hedefe yazılır.

Bu işlem çoğu durumda bir register’a yazma şeklinde gerçekleşebilir. Bazı instruction’lar ise sonunda belleğe veri yazılmasına neden olabilir.

Modern işlemciler ayrıca instruction’ları program sırasından farklı bir sırada çalıştırabilir. Buna out-of-order execution denir.

Bu nedenle işlem fiziksel olarak tamamlanmış olsa bile program açısından doğru sırada kesinleştirilmesi gerekir.

Retire veya Commit aşaması burada önem kazanır.

İşlem sonucunun programın beklediği mimari durumun bir parçası haline gelmesi bu aşamada gerçekleşir.

Bu yapı özellikle branch prediction ve speculative execution kullanan modern işlemciler için önemlidir.

CPU PERFORMANSINI NELER ETKİLER?

Bir CPU’nun performansını yalnızca GHz değeriyle değerlendirmek doğru değildir.

Saat frekansı önemlidir ancak işlemcinin mimarisi, aynı anda kaç işlem yürütebildiği, cache yapısı, execution unit sayısı, bellek erişim gecikmesi ve branch prediction başarısı gibi birçok başka faktör de performansı etkiler.

Örneğin 4 GHz frekansta çalışan bir işlemcinin saniyede dört milyar program komutu tamamladığını söylemek doğru değildir.

Clock cycle sayısı ile tamamlanan instruction sayısı aynı kavram değildir.

Modern işlemciler bazı çevrimlerde birden fazla instruction tamamlayabilirken bazı durumlarda veri veya bellek beklemek zorunda kalabilir.

SONUÇ

CPU’nun yaptığı iş yalnızca hesaplama değildir. Bir programın instruction’larını getirir, çözümler, gerekli verilerin hazır olup olmadığını kontrol eder, işlemleri uygun execution unit’lere yönlendirir ve sonuçların program açısından doğru sırada kesinleşmesini sağlar.

Bu sürecin arkasında core’lar, register’lar, control logic, scheduler, ALU, FPU, Load/Store Unit ve cache gibi birçok farklı yapı birlikte çalışır.

CPU mimarisini anlamanın önemli noktalarından biri de tek tek parçaları ezberlemek yerine aralarındaki veri ve komut akışını anlamaktır:

Instruction Pointer ↓ Fetch ↓ Decode ↓ Scheduler ↓ Execution Unit ↓ Write-back ↓ Retire / Commit

Bu akışı anladıktan sonra pipeline, branch prediction, out-of-order execution ve cache gibi daha ileri işlemci konularını anlamak çok daha kolay hale gelir.