L1 L2 L3 Cache Nedir, Büyük Olmaları Neden Bilgisayarı Hızlandırır?

Temelden başlayalım.

En basit şekilde özetlersek, bilgisayarda “veriler” (data) vardır. Bu veriler, “işlemci” tarafından “işlenerek” “çıktı” oluştururlar.

Veriler kalıcı bir biçimde (yani elektrik kesildiğinde gitmeyecek şekilde) sabit diskte saklanırlar. Tabiki CD/DVD gibi başka veri saklama metotları olsa da en temel veri saklama donanımımızı sabit disk varsayıyorum.

Verilerin çıktı oluşturabilmesi için işlenmesi gerekir. Ancak veriler doğrudan sabit disk üzerinde veya RAM üzerinde işlenemez. İşlemcinin verileri işleyebilmesi için, bu verilerin işlemcinin içerisindeki kendi özel kayıtçılarında (register) bulunması gerekmektedir.

Sabit disk, mekanik parçalar içermesi sebebiyle RAM’e göre daha yavaş bir veri ulaşım hızına sahiptir. İşlemci ise çok hızlı veri işleyebilir. Eğer teknik olarak mümkün olsaydı bile, her seferinde doğrudan diskten veriyi alıp işleyip geri yazmak çok akıllıca olmayacaktı. İşlemci sürekli diski bekleyecek, boşta kalacaktı.

Ama, disk ile işlemci arasında RAM vardır. RAM (Random Access Memory, Rastgele Erişimli Bellek) hızlıdır. İşlemci kadar mı hızlıdır? Hayır. Bir verinin bellekten alınıp işlenmesi için işlemciye aktarılması ve sonucun geri belleğe yazılması disk örneğinkinden çok daha hızlı olsa da yine de yavaştır. İşlemci yine boşta kalacaktır.

Bu yüzden RAM ile işlemci arasına, daha doğru bir tabirle RAM ile işlemcinin aritmetik ve mantıksal işlemleri yapmakla yükümlü ALU ünitesi arasında L1, L2 ve L3 cacheleri (önbellek) bulunur. Burada hız bakımından L1 > L2 > L3 > RAM, maliyet bakımından L1 $$> L2 $$> L3 $$> RAM ilişkisi vardır. Bu yüzden L1 cache diğerlerine göre çok daha küçük olur. (Abi pahalı be ya.)

L1, L2 ve L3 cache (genellikle) işlemci ile bütünleşiktir. Bu önbellekler hızlı erişim için RAM’in o an için en aktif bölgelerinin bir kopyasını tutarlar.

Şöyle ki:

Örneğin işlemci bir program ile meşgul. O halde RAM’deki diğer programlarla ilgili bilgiler şu an için gereksiz. İşlemci şu anda bir programın sadece bir kısmı ile meşgul. (Örneğin, ekrana arayüz çizdirme ile ilgili kısım çalışıyor, veritabanı işlemleri ile ilgili bir iş yok) O halde, şu anda RAM’in en aktif bölgesi, yani işlemcinin en çok veriye ihtiyaç duyacağı bölge programın arayüz ile ilgili verileri. Muhtemelen bu verilerin bir kısmı daha hızlı bir erişim için L3’te tutulacak. L3’teki bilgilerin önemli kısımları L2’de, L2’deki bilgilerin en önemli kısımları L1’de tutulacak. L1 çook hızlı!

Özet

  • L* önbellekleri genellikle işlemcinin içinde bulunur, mimariye göre değişir.
  • Önbellek RAM’den daha hızlıdır, işlemciye daha yakındır, ancak pahalıdır. Bu yüzden düşük boyutludur.
  • Önbellekler RAM’dekinden farklı bilgi tutmaz, RAM’deki bilginin bir alt kümesini tutar. L3 RAM’in, L2 L3’ün, L1 L2’nin bir altkümesidir.
  • L1, ALU’ya çok yakın bir yerde bulunur ve çok hızlıdır.

Bu yüzden L cache boyutlarının yüksek olması ciddi bir hız işaretçisidir. Dikkat edilmesi tavsiye edilir.