elektrik port üyelik servisleri elektrik port üyelik servisleri

İş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.



A- A+
29.07.2019 tarihli yazı 1515 kez okunmuştur.
Merkezi işlem birimi olarak adlandırılan işlemcilerin (CPU), 1980 yılından itibaren performansında önemli bir iyileşme görüldü. Ancak; bu durumun dahili bellek erişim hızlarındaki düşüşlere de neden olduğu tespit edildi. Uzman mühendisler, bu teknik sorunu geliştirdikleri önbellek tasarım tekniği ile ortadan kaldırdı. Bu yazımızda, CPU donanım önbelleği tasarımında bazı temel ilkeleri 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. 
 

Şekil 1: Intel 80486 ve Intel Pentium'un Mikro Mimarisi

 

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. 

Şekil 3: Yönlendirmeli eşlenmiş önbellek

 

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


Tamamen ilişkili bir önbellek, doğrudan eşlenmiş bir önbelleğin tam tersidir. Tek bir giriş içeren çoklu kümeler yerine, tamamen ilişkisel önbelleklerin tümü, tek bir kümede bulunan çoklu önbellek girişlerine sahiptir. Böylece, ayarlanan numara artık herhangi bir bilgi sağlamaz ve kullanılmaz. Bunun yerine, bir bellek adresi önbellek tarafından işlendiğinde, her önbellek girdisi eşleşen bir etiket için kontrol edilir. Bulunursa, bayt ofseti önbellek bloğundaki doğru verilerin çıktısını almak için kullanılır. 

 

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.

 

İşlemci önbellek tasarımı, içerik yönetimi ne zaman ve neyin önbellekleneceğini belirleyen kurallardır. Bu sezgisel tarama bellekten istenen önemli öğeleri tanımlar. Bu öğeleri, önbelleğe kopyalar. İçerik içerik yönetimi; önemli, en yakın zamanda kullanılması düşünülen veri öğelerini ve bir önbellek seti dolu veya kapasiteye yakın olduğunda hangi öğelerin değiştirileceğine karar veren değiştirme politikalarını hazırlar.

 

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
 

Serap Uygur Serap Uygur Yazar Hakkında Tüm yazıları Mesaj gönder Yazdır



Aktif etkinlik bulunmamaktadır.
ANKET
Endüstri 4.0 için En Hazır Sektör Hangisidir

Sonuçlar