İşlemci bellek mimarisi: Yazmaçlardan önbelleğe

Kerem Aydın·8 Temmuz 2026·⏱6 dk

İşlemcinin (CPU) kendi iç bellek birimlerine yazmaçlar ve önbellek belleği (L1, L2 ve genellikle L3 düzeyleri) dahildir. ROM (Salt Okunur Bellek) fiziksel olarak CPU'nun hesaplama çekirdeğinin bir parçası değildir, ancak işlemcinin mikro kodu gömülü kalıcı bellekte saklanabilir. Yazmaçlar aritmetik işlemler için verilere anında erişim sağlar, önbellek ana belleğe erişimdeki gecikmeleri azaltır ve ROM sistemin ilk başlatılmasından sorumludur.

Bu hiyerarşiyi anlamak, kodlarını optimize etmeye çalışan geliştiriciler ve donanım seçen kullanıcılar için kritiktir. Her bir öğeyi ayrıntılı olarak inceleyelim.

İçindekiler

Yazmaçlar: Çekirdeğin ultra hızlı belleği

Yazmaçlar, hacim olarak en küçük ancak doğrudan işlemcinin hesaplama biriminde bulunan en hızlı bellek türüdür. Bunlara erişim tek bir işlemci döngüsünde gerçekleşir.

Temel işlevler

  • İşlenenleri saklama: Şu anda toplama, çarpma veya mantıksal işlem yapılan sayılar.
  • Akış kontrolü: Bir sonraki komutun adresini (komut sayacı — IP/EIP/RIP) ve yığın işaretçisini (SP/ESP/RSP) saklama.
  • Sistem durumu: Bayrak yazmacı (EFLAGS/RFLAGS), son işlemin sonucu hakkında bilgi saklar (sıfır olup olmadığı, taşma, sayının işareti).

Performans üzerindeki etkisi

Yazmaç sayısı mimari ile sınırlıdır (örneğin, x86-64'te 16 genel amaçlı yazmaç mevcuttur). Derleyici tüm aktif değişkenleri saklamak için yeterli yazmaca sahip değilse, fazla verileri yığına boşaltmak zorunda kalır (spilling işlemi), bu da daha yavaş belleğe erişimler nedeniyle programın çalışma hızını ciddi şekilde düşürür.

Programcılar için: Eski C/C++ standartlarında register gibi anahtar kelimelerin kullanımı artık bir değişkenin yazmaça yerleştirilmesini garanti etmez. Modern derleyiciler (GCC, Clang, MSVC), değişkenlerin yaşam grafiğine dayanarak yazmaçları bağımsız olarak optimal şekilde dağıtır.

Önbellek belleği: Çok düzeyli tampon (L1, L2, L3)

Ana bellek (DRAM) işlemciden onlarca kat daha yavaş çalıştığından, aralarına CPU kristaline entegre edilmiş statik bellek (SRAM) olan önbellek yerleştirilir.

Önbellek düzeyleri

DüzeyHızHacim (tipik)Özellikler
L1 (Seviye 1)MaksimumÇekirdek başına 32–128 KBKomut önbelleği (L1i) ve veri önbelleği (L1d) olarak ayrılır. Yalnızca kendi çekirdeği tarafından erişilebilir.
L2 (Seviye 2)YüksekÇekirdek başına 256 KB – 2 MBGenellikle veri ve komutları birleştirir. L3'ten daha hızlı, ancak L1'den daha yavaştır.
L3 (Seviye 3)Ortaİşlemci başına 16–128+ MBTüm çekirdekler için ortak kaynak. Bellek denetleyicisi üzerindeki yükü azaltır.

Yerellik ilkesi

Önbelleğin etkinliği iki ilke üzerine kuruludur:

  1. Zamansal yerellik: Veriler yakın zamanda kullanıldıysa, büyük olasılıkla tekrar ihtiyaç duyulacaktır (bu nedenle L1/L2'de kalırlar).
  2. Mekansal yerellik: Bir bellek hücresine erişildiyse, büyük olasılıkla yakında komşu hücrelere de ihtiyaç duyulacaktır (bu nedenle önbellek verileri bütün satırlar halinde yükler — cache lines, genellikle 64 bayt).

Önbellek isabeti olmaması (Cache Miss) — işlemcinin gerekli verileri önbellekte bulamadığı ve ana belleğe gitmek zorunda kaldığı durumdur. Bu sırada gecikme ~1 ns'den (L1) ~100 ns'ye (DRAM) çıkar. İşlemci için bu, yüzlerce döngü boyunca beklemek anlamına gelir.

ROM efsanesi: Gerçekte nerede bulunur?

"CPU'ya ne dahildir?" sorusunda ROM ile ilgili sık sık kafa karışıklığı yaşanır. Kavramları ayırt etmek önemlidir:

  1. ROM, hesaplama hattının bir parçası değildir. İşlemci ara hesaplama sonuçlarını ROM'da saklamaz.
  2. Fiziksel konum. BIOS/UEFI çipleri (ROM rolünü üstlenen Flash bellek) anakart üzerinde bulunur, CPU kristalinin içinde değil.
  3. İstisna: Mikro kod. Modern işlemcilerin içinde gerçekten de mikro kodu saklayan küçük bir kalıcı bellek alanı (veya korumalı SRAM) vardır; bu, karmaşık x86/ARM komutlarını işlemcinin iç mikro işlemlerine çeviren düşük seviyeli talimatlardır. Ancak kullanıcılar kendi verilerini saklamak için bu belleğe erişemez.

Sonuç olarak, uygulama performansı bağlamında "işlemci bellek birimleri"nden bahsederken, yalnızca yazmaçları ve önbelleği ele alırız. ROM, platform altyapısına aittir, kullanıcının görevlerini yürütmesi için CPU kaynaklarına dahil değildir.

Bellek hiyerarşisi nasıl çalışır

İşlemcinin veri alma süreci bir filtre gibi görünür:

  1. İstek: Yürütme birimine X adresindeki veriler gerekir.
  2. L1 Kontrolü: Veriler var mı? Evet -> kullan (1-4 döngü). Hayır -> adım 3.
  3. L2 Kontrolü: Veriler var mı? Evet -> L1'e kopyala ve kullan (10-20 döngü). Hayır -> adım 4.
  4. L3 Kontrolü: Veriler var mı? Evet -> L2/L1'e kopyala ve kullan (30-50 döngü). Hayır -> adım 5.
  5. RAM'e Erişim: Bellek denetleyicisi verileri ana bellekten ister (100-300 döngü). Veriler L3'e gelir, ardından basamaklı olarak yukarı çıkar.

Özelliklerin karşılaştırmalı tablosu

Bellek türüKonumVolatiliteErişim süresi (gecikme)Ana görev
YazmaçlarÇekirdek içindeEvet (kapanınca kaybolur)< 1 nsHesaplama, adresleme
Önbellek L1Çekirdek içindeEvet~1 nsEn sık kullanılan veriler için tampon
Önbellek L2Çekirdek içinde (veya yanında)Evet~3-5 nsİkinci düzey tampon
Önbellek L3CPU kristali üzerinde (ortak)Evet~10-20 nsÇekirdek senkronizasyonu, ön yükleme
ROM (BIOS)Anakart üzerindeHayır> 50-100 ns*Sistem yükleme, yapılandırma

*ROM gecikmesi bağlantı arayüzüne bağlı olarak değişir ve normal programların yürütme döngüsünde yer almaz.

Mimariyi anlamadaki yaygın hatalar

  • "Önbellek ne kadar büyükse, o kadar iyidir." Bu sadece kısmen doğrudur. Büyük önbelleğin gecikmesi daha fazladır. Oyunlar için yüksek saat hızı ve hızlı L1/L2 daha önemlidir, veritabanı sunucuları için ise devasa L3.
  • "ROM programların çalışmasını hızlandırır." Hayır. ROM yalnızca bilgisayar açıldığında veya yazılım güncellemelerinde okunur. Oyun veya tarayıcı çalışırken ROM devrede değildir.
  • "Yazmaçlar genişletilebilir." Mimari yazmaç sayısı işlemci standardı (ISA) ile sabittir. Kullanıcı yazmaç "ekleyemez", bu bir mimari seçimi meselesidir (örneğin, x86'dan ARM veya RISC-V'ye geçiş farklı sayıda yazmaç sağlayabilir).

SSS: Sorular ve cevaplar

Önbellek ile ana bellek arasındaki fark nedir? Önbellek flip-floplardan (SRAM) oluşur, çok hızlıdır, pahalıdır ve kristal üzerinde çok yer kaplar. Ana bellek (DRAM) kondansatörler kullanır, daha ucuzdur, daha yoğundur ancak sürekli yenileme gerektirir ve daha yavaş çalışır.

İşlemci önbelleği manuel olarak temizlenebilir mi? Hayır, önbellek yönetimi işlemcinin donanım denetleyicisi tarafından yapılır. Yazılımsal olarak işlemciye belirli verileri önbelleğe almaması için ipucu verilebilir (SIMD'de _mm_stream_ tipi talimatlar), ancak tamamen "temizlemek" mümkün değildir ve gerek de yoktur.

Neden CPU özelliklerinde yalnızca L3 hacmi belirtilir? L1 ve L2 hacimleri belirli bir çekirdek için kesinlikle standartlaştırılmıştır ve genellikle aynı nesil içinde değişmez. L3 ise modelden modele değişir (örneğin, Ryzen 7 ve Ryzen 9'da farklı L3 hacimleri vardır), bu nedenle pazarlama farklılaştırıcısı olarak kullanılır.

Video belleği (VRAM) işlemci bellek birimlerine dahil midir? Hayır. Video belleği grafik işlemciye (GPU) aittir. Entegre grafikli sistemlerde GPU, genel ana belleğin (RAM) bir kısmını kullanır, ancak bu işlemci çekirdeklerinin dahili belleği değildir.