İşlemci Önbelleği Nedir? Nasıl Çalışır? Nasıl Tasarlanmalıdır?
Günümüzde merkezi işlem birimi olarak adlandırılan işlemciler, birçok elektronik cihaz için beyin vazifesi ve veri akışı sağlıyor. İşlemciler, bu görevlerini yerine getirirken performanslarının ve dahili bellek erişim hızlarının en iyi şekilde artması için önbellek tasarım ilkeleri önemli bir rol üstlenir. Bu yazımızda, önbellekleme nedir, nasıl çalışır ve bir CPU önbelleği nasıl tasarlanabilir konularını ele aldık.
Bir CPU donanım önbelleği, yakın zamanda başvurulan verileri veya yönergeleri depolayan ve gerektiğinde tekrar gerekirse hızlı bir şekilde alabilen daha küçük bir bellektir. Bir CPU önbelleği, işlemcilerin öngörülebilir okumaları yapma eğilimi olan ve kısa bir süre içinde veya bitişik hafıza konumlarında belleğe yazılan bir eğilim olan referansın yeri ilkesiyle çalışır. İşlemcinin daha yakınında bulunur. Daha yavaş ana belleğe erişen yazının, önbelleğe alınması, bir CPU'nun performansı üzerinde çok büyük bir etkiye sahiptir.
Günümüzde, hemen hemen tüm modern işlemciler bir tür önbellekleme kullanır. Önbellek bölümleri;
L1 Ön Bellek (Cache): Önemli kodlar ve veriler bellekten buraya kopyalanır. İşlemci, bu kısıma daha hızlı ulaşabilir. Kodlar için olan Code cache ve veriler için olan Data cache olmak üzere ikiye ayrılır. Kapasitesi 2 KB ile 256 KB arasında değişir.
L2 Ön Bellek (Cache): L1 belleklerine göre kapasiteleri, 256 KB ile 2 MB arasındadır. Başlangıçta L2 önbellek, anakart üzerinde işlemciye yakın bir yerde yer almaktaydı. Daha sonra, slot işlemciler ortaya çıkınca işlemci çekirdeğinin üzerinde kartuş şeklindeki paketlerde yer aldı. Bununla beraber çekirdeğin dışında ve işlemciyle aynı yapıda kullanılmaya başlandı. Bu kısa geçiş döneminden sonraysa L2 önbellek işlemci çekirdeklerine entegre edildi.
L3 Ön Bellek (Cache): L3 ön belleklerinin kapasiteleri, 2 MB ile 256 MB arasında değişir. Yeni bir teknolojidir. Çok çekirdekli işlemcilerde bütün çekirdeklere tek bir bellekle hizmet vermek akıllıca bir yaklaşım olacağı düşüncesiyle geliştirilmiştir.
Bazen, dördüncü (L4) bir bölüm de eklenebilir.
İşlemcilerde Önbelleğe Alma İşlemlerinde Konumun Önemi
Önbelleğe alma işlemi, referansın bulunduğu yere görev işlem ilkesiyle çalışır. Referans konumu, bir işlemcinin bir uygulamayı çalıştırırken aynı bellek konumlarına erişme eğilimini ifade eder. Bu hafıza erişimleri tahmin edilebilir olduğundan, önbellekleme yoluyla kullanılabilir. Önbellek konumu, tipik olarak iki alt gruba ayrılır. Bunlar; zamansal konum ve mekansal konumdur. Bazı durumlara ise; algoritmik konumun önemi devreye girer.
Zamansal Konum
Zamansal konum, belirli veri maddelerinin kısa bir zaman dilimi içerisinde tekrar kullanılması anlamına gelir. Bu, bir işlemcide çalışan programların kısa bir süre içerisinde aynı değişkenleri ve veri yapılarını kullanma eğiliminde olmalarına dayanır. Bir öğeyi, ana bellekten alıp önbellekte sakladıktan sonra; bu veriler için daha sonra yapılan çağrılar daha hızlı yapılabilir.
Mekansal Konum
Mekansal konum, yakında ihtiyaç duyulan öğelere yakın veya bitişikteki bellek konumlarında kalması gereken veri öğelerinin eğilimini ifade eder. Bu eğilim, bellekteki öğeleri kümeleyen programlayıcılar veya derleyiciler olabilir. Örneğin, dizileri kullanan uygulamalar, dizinin öğelerini bitişik bellek konumlarında saklar. İşlemci, kullanılmakta olanın yanındaki veri öğelerini önbelleğe alarak gerektiğinde bu bitişik öğelere hızlıca erişebilir.
Algoritmik Konum
Sıkça tartışma konusu olan bir yerleşim tipi de algoritmik yerleşimdir. Algoritmik konum, maddelerin bellekte birbirine yakın olmamasına rağmen; ilgili veri öğeleri üzerinde işlem yapma eğilimidir. Bu işlem, kısa bir sürede gerçekleşmez. Bağlantılı liste kullanan uygulamalar, bu eğilimi sergileyebilir. Bu tür bir eğilim, grafik işlemede veya yinelemeli simülasyonlarda görünebilir.
Mantıksal Önbellek Organizasyonu
Dikkat edilmesi gereken diğer tasarım kuralları, bir önbelleğin mantıksal olarak nasıl organize edileceği ve bu önbelleği yönetmek için tanımlanması gereken kurallardır. Önbellek tasarım teknikleri, tarayıcı verilerini veya web belgelerini depolamak için yazılım önbellekler ve web tabanlı önbelleklerle genişletilmiştir.
Bir önbelleğin verileri nasıl depoladığı ve aldığı yer, önbelleğin düzenlenme biçimine dayanır. Buna, önbelleğin mantıksal organizasyonu denir. Neyin depolanacağının belirlenmesi, önbellekte yerleşik yönetim sezgisel taramaları tarafından kontrol edilir. Ancak; bu durumdan, mantıksal organizasyondan da büyük ölçüde etkilenir. Bu nedenle, nasıl bir önbellek düzenlendiği işlemcinin performansında çok büyük bir rol oynar.
Önbellek düzenlemenin üç ana yolu vardır.
►Tamamen ilişkilendirme
►Direkt eşleşme
►İlişkilendirmeyi ayarlama
Önbellek Blokları
Bir CPU, ana bellekteki bir öğeye erişmesi gerektiğinde, öğeyi bulmak için bir adres kullanır. Bir CPU donanım önbelleği, tipik olarak şeffaf bir şekilde çalışır. Yani prorogramcının, önbelleği herhangi bir şekilde kabul etmesi gerekmez. Bu nedenle, belleğe erişmek için kullanılan adres ilk olarak önbellek tarafından kullanılır. Bu adres, bir veri öğesinin önbellekte bulunup bulunmadığını tanımlamak için kullanılır.
Önbellek isabeti terimi, veri öğesinin önbellekte bulunduğunu ve önbellek eksik olmadığını gösterir. Önbellekler, önbellek blokları adı verilen veri grupları halinde düzenlenir. Her adres birkaç bit alanına bölünerek doğru önbellek bloğu tanımlanabilir. Bu alanlar; önbellek etiketi, set numarası ve bayt ofsetidir. Şekil 2'de , önbelleğin yorumlayabileceği alanlara bölünmüş bir adresi gösterilmiştir.
Şekil 2: Önbellek bloğunu adresleme
Bir işlemci, önbelleğine bir adres verildiğinde; bu adres gerekli alanlara böler. Önbellek girişlerini kontrol etmeye başlar. Bir önbellek girişi, bir önbellek etiketinden ve bir önbellek bloğundan oluşur.
► Önbellek etiketi, önbellek blok sinyallerini ifade edenn bir tanımlayıcıdır.
► Önbellek bloğu, bu etikete saklanan gerçek verileri ve ana bellekten öğelerin bir blok temsil eder. Bu bloğun içindeki sözcüklere tek tek ulaşmak için bir ofset kullanılır.
►İlginizi Çekebilir :Yeni Nesil İşlemciler ile Sürücüsüz Araçlar Daha Güvenli Hale Gelecek
Doğrudan eşlenmiş bir önbellekte, önbellek girdileri birkaç küme halinde düzenlenebilir. Adresden gelen set numarası, her giriş grubunu indekslemek için kullanılır. Set tanımlandıktan sonra, önbellek etiketleri karşılaştırılır. Eğer eşleşiyorlarsa, bu bir önbellek isabetidir ve belirtilen veriler ortaya çıkar.
Doğrudan eşlenen önbellekleri anlamanın anahtarı, her kümenin yalnızca tek bir önbellek girdisine sahip olmasıdır. Bu durum, doğrudan eşlenen önbelleği en az güç tüketmesine rağmen inanılmaz derecede hızlı hale getirir.
Her set, yalnızca bir giriş içerebildiğinden, doğrudan eşlenen önbelleklerin çekişme hızları daha yüksektir. Bu özellik, birden fazla veri öğesinin, aynı konumda depolanmasını isteyeceği anlamına gelir. Bu sorunun çözümü, tam bir ilişkisel önbellek kullanmaktır.
Tamamen İlişkilendirme
Her önbellek girişini kontrol etmek, tam ilişkilendirmeli önbellek, doğrudan eşlenen önbellekten çok daha fazla güç tüketir. Güç tüketimi ve daha yüksek çekişme oranları arasında bir denge bulmak, belirlenmiş bir önbellek kullanarak yapılır.
İlişkilendirici Ayarı
Bir dizi ortak önbellek, en iyi avantajları sunar. Bu ortak önbellek, set başına çoklu önbellek girişlerine sahip çoklu setlerden oluşur. İlk olarak, set numarası önbelleğin uygun girdi setine atlamasına izin verir. Daha sonra, her bir giriş kümesi eşleşen bir etiket için aranır. Bulunursa, bayt ofseti istenen verinin çıktısını almak için kullanır. Bu yaklaşım, önbelleğin optimize edilmiş bir güç tüketimi ve çekiş oranı dengesi sunmasını sağlar.
Şekil 4 Tamamen İlişkili Önbellek
Şekil 5 'de, 4 yollu set birleşik önbelleği gösterilmiştir. Her set, dört önbellek girdisi içerebileceğinden 4 yollu olarak adlandırılır. Her küme, sadece iki önbellek girdisini tutabilseydi 2 yollu olurdu. Bu nedenle, doğrudan eşlenmiş bir önbellek gerçekten sadece 1 yönlü olarak ayarlanan birleşik önbellekdir. Oysa ki; tam birleşik bir önbellek, m'nin önbellek girişlerinin sayısı olduğu, tek yönlü bir set m-yönlü birleşik önbellekdir.
Şekil 5: İlişkisel önbelleği ayarlama
Önbelleğin mantıksal organizasyonu belirlendikten sonra, bir dizi yönetim sezgiseline karar verilmelidir. Yönetim sezgisel taramaları, önbelleğin görevlerini nasıl yerine getirdiğini belirleyen bir kurallar kümesidir. Bunlar, genellikle önbellek üstünde oturan ve CPU ile onun arasında bir arabirim görevi gören bir önbellek denetleyicisinde uygulanılır. Önbellek yönetimi sezgiselliği iki farklı kategoridir. Bunlar, içerik yönetimi ve tutarlılık yönetimidir.
Tutarlılık yönetimi sezgiselliği, önbelleği diğer belleklerle senkronize tutmakla ilgilidir. Bu ana bellek, bir hiyerarşi içindeki diğer önbellek seviyeleri ve hatta önbellek kendisi anlamına gelebilir. Örneğin, bir önbellek, aynı verilerin önbellek bloklarında asla birden fazla kopyasına sahip olmamalıdır. Ayrıca, bir önbellek ve ana bellekte aynı veriler olması gerekenin farklı kopyaları varsa, bir uygulama eski veya eski bir veri öğesi alabilir. Bu özellikle çok çekirdekli sistemlerde mümkündür. Bu nedenle, tutarlılık yönetimi sezgiselliği ana belleği, daha yeni bir önbelleğe alınmış veri sürümü ile güncelleyebilir.
Kaynak:
►allaboutcircuits
- Dünyanın En Görkemli 10 Güneş Tarlası
- Dünyanın En Büyük 10 Makinesi
- 2020’nin En İyi 10 Kişisel Robotu
- Programlamaya Erken Yaşta Başlayan 7 Ünlü Bilgisayar Programcısı
- Üretimin Geleceğinde Etkili Olacak 10 Beceri
- Olağan Üstü Tasarıma Sahip 5 Köprü
- Dünyanın En İyi Bilim ve Teknoloji Müzeleri
- En İyi 5 Tıbbi Robot
- Dünyanın En Zengin 10 Mühendisi
- Üretim için 6 Fabrikasyon İşlemi
- Nasıl Dönüşür I Elektrik 4.0
- Nasıl Dönüşür I Fosil Yakıt
- Nasıl Dönüşür I Kompost
- Sigma DIN Rayı Çözümleri: Ürün Portföyü, Teknik Özellikler ve Kullanım Alanları
- Denizcilik Endüstri Uygulamaları ve Servis Bakım Süreçleri
- DrivePro Yaşam Döngüsü Hizmetleri
- Batarya Testinin Temelleri
- Enerji Yönetiminde Ölçümün Rolü: Verimliliğe Giden Yol
- HVAC Sistemlerinde Kullanılan EC Fan, Sürücü ve EC+ Fan Teknolojisi
- Su İşleme, Dağıtım ve Atık Su Yönetim Tesislerinde Sürücü Kullanımı