• İlişkisel bilgisayar belleği. çağrışımsal bellek. İlişkisel belleğin gelişimi. Bellek cihazlarının genel bilgileri ve sınıflandırılması

    Belleği organize etmenin yolları

    Parametre adı Anlam
    Makale konusu: Belleği organize etmenin yolları
    Değerlendirme listesi (tematik kategori) bilgisayarlar

    İşlevsel olarak, herhangi bir türden bir bellek her zaman bilgileri depolayan bir depolama dizisinden ve dizide arama yapmaya, yazmaya ve okumaya (ve gerekirse yeniden oluşturmaya) hizmet eden yardımcı, çok karmaşık bloklardan oluşur.

    Depolama dizisi (MS), çok sayıda özdeş depolama elemanından (SE) oluşur. Tüm SE'ler, her biri bit sayısı örnek genişliği tarafından belirlenen ikili kod biçiminde bir bilgi birimini depolamak için tasarlanmış hücreler halinde düzenlenmiştir. Belleğin düzenlenme şekli, SM'ye bilgi yerleştirme ve arama yöntemlerine bağlıdır. Bu temelde, adres, ilişkisel ve yığın bellek ayırt edilir.

    ADRES HAFIZASI

    Bir adres organizasyonuna sahip bellekte, SM'de bilgi yerleştirme ve arama, kısa olması için daha sonra arayacağımız bilgi biriminin depolama adresinin kullanımına dayanır. kelime. Adres, bu kelimenin yerleştirildiği SM hücresinin numarasıdır. SM'de bir kelime yazarken (okurken), bu işlemi başlatan komut, yazmanın (okumanın) gerekli olduğu hücrenin adresini (numarasını) belirtmelidir.

    Şek. 5.2, adres belleğinin genelleştirilmiş bir yapısını gösterir.

    Bellek erişim döngüsü, TCU'ya gelen "Erişim" sinyali ile başlatılır. Erişim döngüsünün genel kısmı, adres veri yolundan (SHA) adresin adresinin RgA'da alınmasını ve TCU'da istenen işlemin (okuma veya yazma) türünü belirten "İşlem" kontrol sinyalinin alınmasını içerir.

    Okuma. BAW, adresin şifresini çözer ve adres tarafından belirtilen 3M hücresini vurgulayan bir sinyal gönderir. Genel durumda BAW, GE hücrelerini yazma veya okuma için ayarlayan ayrılmış bellek hücresine de sinyaller gönderebilir. Daha sonra hücrede yazılan kelime BUS yükselteçleri tarafından okunarak RGI'ye iletilir. Ayrıca, yıkıcı okuma ile bellekte, RgI'den BUZ yoluyla aynı SM hücresine bir kelime yazılarak bilgi yeniden oluşturulur. Okuma işlemi, RGI'dan çıkış bilgi yolu SHI çıkışına bir kelime gönderilerek tamamlanır.

    Kayıt. Erişim döngüsünün yukarıdaki genel kısmına ek olarak, yazılan kelime SHI giriş veriyolundan RGI'ya alınır. Kaydın kendisi genellikle iki işlemden oluşur - hücrenin temizlenmesi ve kaydın kendisi. Bunu yapmak için BAS önce PrA'da adres tarafından belirtilen hücreyi seçer ve temizler. SM hücresini temizlemek (sıfırlamak) farklı şekillerde yapılabilir. Özellikle, yıkıcı okumalı bir bellekte, BUS bloke edildiğinde (böylece bilgi RGI'ya girmez) bir hücredeki bir kelimeyi okumak için bir sinyal ile temizleme yapılabilir. Ardından, seçilen hücreye yeni bir kelime yazılır.

    Yazmadan önce hücreyi temizleme işleminin yanı sıra okuma sırasında bilgileri yeniden oluşturma işlemine olan ihtiyaç, kullanılan SG'lerin türü, kontrol yöntemleri, LSI belleğinin elektronik yapısının özelliklerine göre belirlenir ve bu nedenle bu işlemler yarı iletken belleklerde bulunmaz.

    TCU, bireysel bellek düğümlerinin çalışmasını başlatan gerekli kontrol sinyalleri dizisini üretir. TCU'nun çok karmaşık bir cihaz (kendi önbelleğine sahip bir tür kontrol denetleyicisi) olması gerektiği akılda tutulmalıdır ve LSI belleğine bir bütün olarak çoklu bağlantı noktası, boru hattı bilgi çıkışı vb. gibi özel tüketici özellikleri verir. .

    İLİŞKİLİ HAFIZA

    Bu tür bellekte bilgi arama adrese göre değil, içeriğine göre gerçekleşir. Bu durumda, bilginin içeriği genellikle hafıza hücresinde saklanan kelimenin anlamsal yükü olarak değil, hafıza hücresinin GE içeriği, ᴛ.ᴇ olarak anlaşılır. kaydedilen ikili kelimenin bit düzeyinde bileşimi. Bu durumda, ilişkisel sorgu (özellik) ayrıca belirli bir bit bileşimine sahip bir ikili koddur. Bir ilişkisel özelliğe göre arama, tüm SM hücreleri için paralel zamanda gerçekleşir ve öznitelik yazmaç bitlerinin içeriği ile bellek hücrelerinin karşılık gelen bitlerinin içeriğinin karşılaştırılmasına yönelik bir işlemdir. Böyle bir aramayı organize etmek için, tüm EP SM'ler tek bitlik işlemcilerle donatılmıştır, bu nedenle bazı durumlarda bu tür bir bellek çok işlemcili bir sistem olarak kabul edilir.

    Büyük, tamamen ilişkilendirilebilir bellek çok pahalı bir cihazdır, bu nedenle maliyetini düşürmek için, tek bitlik işlemcilerin sayısı bellek hücresi başına bire düşürülür. Bu durumda, ilişkisel sorgunun hafıza hücrelerinin içeriği ile karşılaştırılması, tüm SM hücreleri için zamana paralel olarak bireysel basamaklar için sıralı olarak gerçekleştirilir.

    Belirli sorun sınıflarında çok büyük miktarda bellekle, ilişkisel arama, veri işlemeyi önemli ölçüde hızlandırır ve bilgisayarda arıza olasılığını azaltır. Aynı zamanda, karşılık gelen kombinasyon devrelerinin bloklarına sahip çağrışımsal bellekler, bellekte oldukça karmaşık mantıksal işlemlerin gerçekleştirilmesini mümkün kılar: bir dizideki maksimum veya minimum sayıyı aramak, belirli sınırlar içine alınmış sözcükleri aramak, bir diziyi sıralamak vb.

    Bir ilişkisel aramanın, geleneksel bir adres belleğine sahip bir bilgisayarda, bellek hücrelerinde yazılan sözcükleri sırayla işlemciye çağırarak ve bunları bazı ilişkisel özelliklerle (şablon) karşılaştırarak uygulanabileceğine dikkat edilmelidir. Aynı zamanda, büyük miktarda bellek ile bunun için çok zaman harcanacaktır. İlişkisel bellek kullanıldığında, RAM'den işlemciye sözcükleri okumadan, bir çağrıda belirli bir ilişkisel sorguya karşılık gelen sözcük sayısını belirlemek mümkündür. Bu, büyük veritabanlarında, aşağıdaki gibi bir sorgunun çok hızlı bir şekilde uygulanmasına izin verir: bölgede kaç kişi gelir beyanı sunmadı, vb.

    Bazı özel bilgisayarlarda, OP veya bunun bir kısmı, hem ilişkisel hem de hedeflenen bilgi aramayı gerçekleştirmeyi mümkün kılacak şekilde oluşturulmuştur.

    Tüm GE SM'lerin tek bit işlemcilerle donatıldığı bir ilişkisel belleğin basitleştirilmiş bir blok diyagramı Şekil 1'de gösterilmektedir. 5.3.

    Önce adı verilen işlemi ele alalım. ilişkilendirme kontrolü. Bu işlem, okuma ve yazma işlemleri için ortaktır ve ayrıca bağımsız bir değere sahiptir.

    n-bitlik bir ilişkisel istek, ᴛ.ᴇ, giriş bilgi veri yolu aracılığıyla RGAP'ye girer. 0 ile n-1 arasındaki rakamlar doldurulur. Aynı zamanda, RgM'nin n'inci biti 0'a ayarlanırken arama maskesi kodu RgM'ye girer. İlişkili arama yalnızca RgM'de 1'e karşılık gelen RgAP bitleri grubu için gerçekleştirilir (maskelenmemiş RgAP bitleri). Basamaklardaki basamakların PrAP'ın maskesiz basamaklarıyla çakıştığı kelimeler için, CS'nin PrCv'nin karşılık gelen basamaklarında 1 ve geri kalan basamaklarda 0 ayarladığını not etmek önemlidir.

    FS'nin ilişkisel tersine çevrilmesinin sonucunu üretmek için kombinasyon şeması, RgSv'de oluşturulan kelimeden en az üç sinyal oluşturur:

    A 0 - SM'de çağrışımsal niteliği karşılayan kelimelerin olmaması;

    A 1 - böyle bir kelimenin varlığı;

    A 2 - birden fazla kelimenin varlığı.

    PgSv'nin içeriği üzerinde başka işlemler de mümkündür, örneğin birimlerin sayılması, ᴛ.ᴇ. çağrışımsal bir sorguyu karşılayan bellekteki sözcükleri sayma vb.

    RgSv ve a 0 , a 1 , a 2 içeriklerinin RgAP, RgM, ZM içeriklerine göre oluşturulmasına genellikle ilişkilendirme kontrol işlemi denir.

    Okuma.İlk olarak, ilişkilendirme RgAP bazında kontrol edilir.

    A 0 = 1 - gerekli bilgi eksikliği nedeniyle okuma iptal edildi;

    A 1 \u003d 1 - bulunan kelime RGI'da okunur ve ardından SHI çıktısına verilir;

    A 2 \u003d 1 - örneğin RgSv'de 1 ile işaretlenmiş hücreler arasında en küçük sayıya sahip olan bir kelime okunur ve ardından SHI çıktısına verilir.

    Kayıt.Önce boş bir hücre bulunur (boş bir hücrenin meşgul bitine 0 yazıldığını varsayıyoruz). Bunu yapmak için, ilişkilendirme kontrolü PgAP=111...10 ve PgM=000...01, ᴛ.ᴇ'de gerçekleştirilir. RgAP'nin n'inci basamağı 0'a ve RgM'nin n'inci basamağı 1'e ayarlanır. Bu durumda RgSv'de serbest hücre 1 olarak işaretlenir. Kayıt için, örneğin en küçük sayı ile boş bir hücre seçilir. RGI'da SHI'den alınan kelimeyi içerir.

    Bu diyagramın gerçek cihazlarda bulunan BUP, BUS, BUS bloklarını göstermediğine dikkat edilmelidir. Aynı zamanda, çağrışımsal bir bellek oluşturmak için, bozulma olmadan okunabilen depolama öğeleri gerekir.

    Yığın belleği (depo)

    İlişkili bellek gibi yığın bellek adreslenmemiştir. Yığın bellek, hem donanımda hem de düzenli bir adres belleği dizisinde düzenlenmelidir.

    Bir donanım uygulaması durumunda, yığın bellek hücreleri, komşu hücrelerin kelime iletiminin bit zincirleriyle birbirine bağlandığı tek boyutlu bir dizi oluşturur (Şekil 5.4). Bu durumda, çalışma prensipleri farklı olan iki tip cihaz (a, b) mümkündür. İlk önce Şekil 1'deki yapıyı ele alalım. 5.4, ​​​​bir.

    SHI'den alınan yeni bir kelimenin girişi üst (sıfır) hücreye yapılırken, daha önce kaydedilen tüm kelimeler (0 hücresindeki kelime dahil), sayıları bir büyük olan bitişik hücrelere kaydırılır. Okuma yalnızca üst (sıfır) bellek hücresinden mümkündür. Ana mod, ϶ᴛᴏ silme ile okumadır. Aynı zamanda, hafızadaki diğer tüm kelimeler, daha düşük numaralı bitişik hücrelere kaydırılır. Böyle bir bellekte aşağıdaki kural uygulanır: son giren ilk çıkar. Bu tür yığınlara LIFO (Son Giren - İlk Çıkar) yığınları denir.

    Bazı durumlarda, yığın bellek cihazları, silmeden ve kalan sözcükleri kaydırmadan 0 hücresinden bir sözcüğü okuma işlemini de sağlar. Yığını herhangi bir bilgisayar cihazının denetleyicilerinin başlatma parametrelerini depolamak için kullanırken, genellikle herhangi bir yığın hücresinin içeriğini silmeden okumak mümkündür, ᴛ.ᴇ. sadece 0 hücresini değil içeriği okumak.

    Yığına itilen ilk kelimenin bulunduğu söylenir. yığının alt kısmı. Yığına (zamanında) gönderilen son kelimenin içinde olduğu söylenir. yığının üstü. Örneğin, N-1 hücresi yığının en altındadır ve 0 hücresi en üsttedir.

    Tipik olarak, donanım yığını, bellekte depolanan toplam kelime sayısını gösteren bir yığın sayacı olan ChSt ile sağlanır (CHSt = 0 - yığın boştur). Yığın dolduğunda, daha fazla yazma işlemini devre dışı bırakır.

    Bellek organizasyonunun yığın ilkesi, yalnızca bu amaç için özel olarak tasarlanmış cihazlarda uygulanamaz. Verilerin yığın organizasyonu, rasgele erişimli (yazılım yığını) geleneksel adres belleğinde de mümkündür. Bu durumda LIFO yığınını organize etmek için, yığının tepesindeki adresin her zaman saklandığı ve yaygın olarak adlandırılan bir bellek hücresine (kayıt) ihtiyaç vardır. yığın işaretçisi. Genellikle, işlemcinin dahili kayıtlarından biri yığın işaretçisi olarak kullanılır. Ek olarak, uygun yazılım gereklidir. Geleneksel adres belleğindeki verilerin yığın organizasyonunun ilkeleri, şekil 2'deki şema ile gösterilmektedir. 5.5.

    Donanım yığınından farklı olarak, yazılım yığınına yerleştirilen veriler yeni bir sayı yazıldığında veya okunduğunda taşınmaz. Her yeni kelime, adresi yığın işaretçisinde bulunan kelimeyi takip eden hafıza konumuna yazılır. Yeni bir sözcük yazıldıktan sonra yığın göstergesi bir artırılır (bkz. Şekil 6.5). Aslında, yazılım yığınında hareket eden veriler değil, yığının tepesinde. Yığından bir kelime okunduğunda işlem tersine çevrilir. Sözcük, adresi yığın işaretçisinde bulunan konumdan okunur ve bundan sonra yığın işaretçisinin içeriği bir azaltılır.

    Yığına yeni yüklenen kelimeler, sıralı olarak artan adreslerle bellek hücrelerine yerleştirilirse, yığın çağrılır. doğrudan. Adresler art arda azalıyorsa, o zaman - Tepe taklak.Çoğu durumda, işlemci içindeki sayaçların donanım uygulamasının özelliklerinden kaynaklanan ters çevrilmiş bir yığın kullanılır.

    Bu tür bellek düzenlemesi ne kadar uygundur? İleriye bakıldığında, genel durumda işlemcide yürütülen herhangi bir talimatın bir işlem kodu (COP), birinci ve ikinci işlenenlerin adresi ve sonucun adresini içermesi gerektiği not edilebilir. Bellekten tasarruf etmek ve bir makine komutunun işlemci tarafından yürütülme süresini azaltmak için, komutun uzunluğunun kısaltılması arzu edilir. Bu indirgemenin sınırı, adreslenmemiş komut olan ᴛ.ᴇ'nin uzunluğudur. sadece polis. Belleğin yığın organizasyonu ile mümkün olan bu talimatlardır, çünkü işlenenlerin yığın üzerinde doğru düzenlenmesi ile bunları sırayla çıkarmak ve üzerlerinde uygun işlemleri gerçekleştirmek yeterlidir.

    Yukarıda tartışılan LIFO türündeki yığın belleğine ek olarak, bilgisayarlar kuralı uygulayan başka türdeki yığın belleklerini kullanır: ilk giren ilk çıkar. Bu tip yığınlara FIFO (İlk Giren - İlk Çıkar) yığınları denir. Bu tür yığın belleği, çeşitli sıra türlerini (komutlar, veriler, istekler vb.) düzenlemek için yaygın olarak kullanılır. FIFO tipi donanım yığınının genelleştirilmiş yapısı, Şek. 5.4b.

    Önceki durumda olduğu gibi, yığın bellek hücreleri, bitişik hücrelerin kelime iletiminin bit zincirleriyle birbirine bağlandığı tek boyutlu bir dizi oluşturur. SHI'den alınan yeni bir kelimenin girişi üst (sıfır) hücrede gerçekleştirilir, ardından hemen aşağı hareket eder ve son boş hücreye yazılır. Yazmadan önceki yığın boşsa, kelime hemen N-1, ᴛ.ᴇ numaralı hücreye gider. yığının dibine. Yalnızca N-1 numaralı alt hücreden (yığının en altından) okuma yapılabilir. Ana mod, ϶ᴛᴏ silme ile okumadır. Bu durumda, sonraki (kaydedilen) tüm kelimeler, sayıları bir fazla olan bitişik hücrelere kaydırılır. Yığın dolduğunda, sayaç (CHST) yığına daha fazla yazmayı yasaklar.

    Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, LIFO yığınının aksine, FIFO yığını alt kısmı değil, üst kısmı hareket ettirir. FIFO yığınına yazılan kelimeler, son derece önemli oldukları için yukarıdan aşağıya doğru kademeli olarak hareket eder ve yazma ve okuma hızı, harici kontrol sinyalleri tarafından belirlenir ve birbiriyle ilişkili değildir.

    Pratikte nadiren kullanıldığı için FIFO yığınının yazılım uygulaması bu bölümde ele alınmamıştır.

    Bellek düzenleme yolları - kavram ve türleri. "Hafıza düzenleme yöntemleri" 2017, 2018 kategorisinin sınıflandırılması ve özellikleri.

    Depolama aygıtı, kural olarak, bir depolama dizisini (SM) oluşturan birçok özdeş depolama öğesi içerir. Dizi, tek tek hücrelere bölünmüştür; her biri, bellek örneğinin genişliğine göre belirlenen bit sayısı olan bir ikili kodu depolamak için tasarlanmıştır (özellikle, bir, yarım veya birkaç makine kelimesi olabilir). Belleğin düzenlenme şekli, depolama dizisine bilgi yerleştirme ve arama yöntemlerine bağlıdır. Bu temelde, adres, ilişkisel ve yığın (depo) belleği ayırt edilir.

    adres hafızası Bir adres organizasyonuna sahip bellekte, SM'ye bilgi yerleştirme ve arama, kelimenin (sayı, komut vb.) Depolama adresinin kullanımına dayanır, adres, bu kelimenin içinde bulunduğu SM hücresinin numarasıdır. bulunur.

    SM'ye bir kelime yazarken (veya okurken), bu işlemi başlatan komut, kaydın (okumanın) gerçekleştirildiği adresi (hücre numarası) belirtmelidir.

    Şek. 4.2 bir depolama dizisi içerir N adres kaydı dahil olmak üzere n-bit hücreler ve donanım çerçevesi RgA, sahip olmak k(k> günlük 2 N) bitler, bilgi kaydı RGI, adres getirme bloğu BAS, okuma amplifikatör ünitesi OTOBÜS, kayıt sinyallerinin bit yükselticileri-oluşturucuları bloğu BUZ ve hafıza yönetimi BUP.

    Şekil.4.2.Adres belleğinin yapısı.

    Adres koduna göre RgA BAV karşılık gelen bellek hücresinde, hücrede bir kelimenin okunmasına veya yazılmasına izin veren sinyaller üretir.

    Bellek erişim döngüsü, gelişiyle başlatılır. BÜP sinyalin dışından Çekici. Dolaşım döngüsünün genel kısmı, alımı içerir. ile RgA adres yolu Amerika Birleşik Devletleri itiraz ve kabul adresleri BÜP ve kontrol sinyalinin kodunun çözülmesi Operasyon, istenen işlemin türünü gösterir (okuma veya yazma).

    Okurken sonraki BAS adresin şifresini çözer, adres tarafından belirtilen hücreye okuma sinyalleri gönderir ZM, bu durumda hücrede yazılan kelimenin kodu okuma yükselteçleri tarafından okunur. OTOBÜS ve transfer edildi RGI. Ardından, yıkıcı okuma ile bellekte (okuma sırasında, hücrenin tüm depolama öğeleri sıfır durumuna ayarlanır). bilgi, hücreye yazılarak hücrede yeniden oluşturulur. RGI kelime oku. Okuma işlemi, kelimeden bir kelime çıkarılarak tamamlanır. RGIçıkış bilgi veriyoluna SHIout.

    Yazarken, erişim döngüsünün yukarıdaki genel bölümünü gerçekleştirmeye ek olarak, yazılmakta olan kelime giriş bilgi veri yolundan alınır. SHIVx V RGI. Kaydın kendisi iki işlemden oluşur: hücreyi temizleme (0'a sıfırlama) ve kaydın kendisi. Bunun için BASönce adres tarafından belirtilen hücreyi seçer ve temizler. RgA. Temizleme, hücredeki kelime okuma sinyalleri tarafından gerçekleştirilir, ancak okuma amplifikatörleri ve OTOBÜS V RGI bilgi alınmıyor. Sonra seçilene BAS hücre kelimeden yazılır RGI.

    Kontrol bloğu BÜP bireysel bellek düğümlerinin çalışmasını başlatan gerekli kontrol sinyalleri dizisini üretir. Kontrol sinyali iletim zincirleri, şekil 2'de ince çizgilerle gösterilmiştir. 4.2.

    çağrışımsal bellek. Bu tür bellekte, gerekli bilgilerin aranması adrese göre değil içeriğine göre (ilişkisel özelliğe göre) gerçekleştirilir. Bu durumda, bir ilişkisel özniteliğe göre arama (veya bu özniteliğin münferit basamaklarına göre ardışık olarak), depolama dizisinin tüm hücreleri için paralel zamanda gerçekleşir. Çoğu durumda, ilişkisel arama, veri işlemeyi önemli ölçüde basitleştirebilir ve hızlandırabilir. Bu, bu tür bellekte bilgi okuma işleminin bir dizi mantıksal işlemin yürütülmesiyle birleştirilmesi nedeniyle elde edilir.

    İlişkisel belleğin tipik bir yapısı, Şek. 4.3. Depolama dizisi şunları içerir: N(P + 1) -bit hücreler. Servis n-inci biti, hücrenin doluluğunu belirtmek için kullanılır (0 - hücre boş, 1 - kelime hücreye yazılır).

    Giriş bilgi veri yolunda SHIVx ilişkisel özelliğin kaydına RGAP basamaklarda 0-ve-1 girer P- bit ilişkisel sorgu ve maske kaydına RgM - n'inci basamakla maske kodunu ara RgM 0'a ayarlayın. İlişkili arama yalnızca bir dizi basamak için gerçekleştirilir RGAP, hangi "1'e karşılık gelir RgM(maskelenmemiş rakamlar RgAP). Rakamlardaki rakamların maskesiz rakamlarla eşleştiği kelimeler için RGAP, kombinasyon devresi KS 1'i eşleşme kaydının karşılık gelen bitlerine ayarlar RgSv ve kalan bitler için 0. Yani değer j-ro boşalmak RgSv ifade ile tanımlanır

    RgSv(j) =

    Nerede RGAP[Ben], RgM[i] ve ZM - sırasıyla i-inci basamağın değerleri RGAP, RGM ve j-inci hücre ZM.

    Bir ilişkisel aramanın sonucunu oluşturmak için kombinasyon şeması FS oluşan bir kelimeden formlar RgSv, kelimelerin yokluğuna karşılık gelen  0 ,  1 ,  2 sinyalleri ZM,çağrışım özelliğinin sağlanması, böyle bir kelimenin bir veya birden fazla bulunması. Bunun için FS aşağıdaki boole işlevlerini uygular:

     0 =

     1 = РгСв

     2 =  0  1

    İçerik Şekillendirme RgSv ve içeriğe göre  0 ,  1 ,  2 sinyalleri RGAP, RGM Ve ZM ilişkilendirme kontrol işlemi olarak adlandırılır. Bu işlem, bağımsız bir değere sahip olmasına rağmen, okuma ve yazma işlemlerinin ayrılmaz bir parçasıdır.

    Okurken, ilişkilendirme ilk önce bir ilişkisel özellik tarafından kontrol edilir. RGAP. Sonra  0'da = 1 gerekli bilgi eksikliği nedeniyle okuma iptal edilir,  1 = 1 olduğunda okunur RGI 2 = 1 inç ile bulunan sözcük RGI kelime, 1 ile işaretlenmiş hücrelerden en küçük sayıya sahip hücreden okunur. RgSt.İtibaren RGI okunan kelime şu tarihte verilir: SHIout.

    Pirinç. 4.3. çağrışımsal belleğin yapısı

    Yazarken, önce boş bir hücre aranır. Bunu yapmak için, şu durumlarda bir ilişkilendirme kontrol işlemi gerçekleştirilir: RgAP= 111. ..10 ve RgM== 00... 01. Bu durumda boş hücreler 1 olarak işaretlenir. RgSt. Kayıt için en küçük sayıya sahip boş bir hücre seçilir. Alınan kelimeyi içerir SHIVx V RGI.

    Pirinç. 4.4. yığın bellek

    İlişkilendirme kontrol işlemi sayesinde, sözcükleri bellekten okumadan içeriğe göre belirlemek mümkündür. RgSv,örneğin bir gruptaki kaç öğrencinin belirli bir disiplinde mükemmel bir nota sahip olduğu gibi sorguları uygulamak için çağrışımsal bir niteliği karşılayan bellekte kaç kelime olduğu. Uygun kombinasyon devreleri kullanıldığında, çağrışımsal bellekte daha büyük (daha küçük) bir sayı aramak, belirli sınırlar içine alınmış sözcükleri aramak, maksimum (minimum) sayı aramak gibi oldukça karmaşık mantıksal işlemler gerçekleştirilebilir.

    İlişkisel belleğin, içinde kayıtlı bilgileri bozmadan okunabilen depolama öğeleri gerektirdiğini unutmayın. Bunun nedeni, ilişkisel aramada, tüm maskelenmemiş bitler için SM'nin tamamında okuma yapılması ve okuma tarafından geçici olarak yok edilen bilgileri depolamak için bir yer olmamasıdır.

    yığın bellek,çağrışımsal olduğu kadar adressizdir. İÇİNDE yığın bellek(Şekil 4.4) hücreler, komşu hücrelerin kelime iletiminin bit zincirleriyle birbirine bağlandığı tek boyutlu bir dizi oluşturur. En üstteki hücreye (0 hücresi) yeni bir kelime yazılırken, daha önce kaydedilen tüm kelimeler (0 hücresindeki kelime dahil), sayıları 1'den büyük olan bitişik hücrelere kaydırılır. Sadece üst (sıfır) hafıza hücresinden okuma yapılabilir, silme ile okuma yapılırsa hafızadaki diğer tüm kelimeler yukarıya, daha yüksek numaralı komşu hücrelere kaydırılır. Bu hafızada, kelimelerin okunma sırası şu kuralı takip eder: son girilen - önce görev yaptı. Söz konusu türdeki bir dizi cihazda, bir kelimeyi sıfır hücreden (silmeden ve kelimeyi hafızada kaydırmadan) basitçe okuma işlemi de sağlanır. Bazen yığın belleği bir yığın sayacı ile sağlanır hst, ezberlenen kelime sayısını gösterir. Sinyal MFST = 0 boş maçlar, yığın, MFST = N - 1 - tam yığın.

    Genellikle yığın bellek, adres belleği kullanılarak düzenlenir. Yığın bellek, iç içe veri yapılarını işlerken yaygın olarak kullanılır.

    Bölümün aşağıdaki paragrafları, adres düzenlemeli çeşitli bellek türlerini açıklamaktadır. İlişkili bellek, ekipmanda dinamik bellek ayırmanın yanı sıra bir önbellek oluşturmak için kullanılır.

    İlişkili depolama cihazlarında, bilgi, her bir bellek hücresine kaydedilen bir ilişkisel özellik tarafından aranır.

    Bu tür bellekte, gerekli bilgilerin aranması adrese göre değil, bilginin içeriğine göre (yani çağrışımsal özniteliğe göre) gerçekleştirilir. Bu durumda, çağrışımsal özelliğe göre arama, tüm bellek hücreleri için zamanda paralel olarak gerçekleşir. İlişkili arama, veri işlemeyi önemli ölçüde basitleştirmenize ve hızlandırmanıza olanak tanır. Bu, böyle bir bellekte bilgi okuma işleminin bir dizi mantıksal işlemin yürütülmesiyle birleştirilmesi nedeniyle elde edilir. Örneğin, aşağıdaki gibi işlemleri gerçekleştirebilirsiniz:

    1) hafızadaki maksimum veya minimum sayıyı arayın;

    2) belirli sınırlar içine alınmış kelimeleri arayın;

    3) çağrışımsal özelliğe en yakın kelimeleri hem daha büyük hem de daha küçük taraftan arayın, vb.

    En basit çağrışımsal bellek, genellikle özelliği çağrışımsal özellikle eşleşen sözcükleri seçmek için tek bir işlem gerçekleştirir.

    Bellek dizisi (SM) N hücre içerir, her hücre n+1 bittir. Hücrenin istihdamını belirtmek için hizmet n'inci biti kullanılır. n. basamakta 0 varsa hücre boş, 1 ise dolu demektir.

    Bir n-bitlik işaret, SD girişinde RGP ilişkisel özellik kaydına girer ve arama maskesi kodu, RGM maske kaydına girer. Bu durumda, RGM kaydının n'inci biti 0'a ayarlanır. Bir ilişkisel arama, yalnızca maske kaydında "1"e karşılık gelen öznitelik bitlerinde, yani maskesiz RGM bitlerinde gerçekleştirilir. . Böylece, M maske kodunu ayarlayarak, aramanın yürütüldüğü özelliğin bu haneleri keyfi olarak seçilebilir.

    Tüm basamakların maskesiz RGP bitleriyle eşleştiği 3M'den gelen sözcükler için, birleşik devre KS 1, RGC eşleşme kaydının karşılık gelen bitlerinde "1" ayarlar. Böylece, j'inci kelimenin hanesi işaretin maskelenemeyen bitleriyle çakışırsa, RGC yazmacının j'inci bitine "1", aksi takdirde "0" yazılacaktır. RGC'nin j. basamağında "1" girişi, j. kelimenin özelliğe karşılık geldiği anlamına gelir, yani. aslında ZM içinde aranan kelimedir.

    İlişkisel özelliğin tümü veya yalnızca bazı basamakları için bir sorguya izin veren maske kaydına bir kelime yazılır, bir maskenin kullanılması arama alanını küçültmenize veya genişletmenize olanak tanır.

    Sorgu her hücrenin çağrışımsal özelliği ile karşılaştırılarak tüm hücreler için paralel olarak bilgi aranır.

    Arama sonucu, arama koşullarını karşılayan kelimelerin yokluğunu, yalnızca bir kelimenin varlığını, böyle bir çağrışımsal özelliğe sahip birkaç kelimenin varlığını gösteren sinyaller üreten özel bir kombinasyon devresi tarafından üretilir.

    Uyarı sinyallerinin oluşturulması ve işlenmesinden sonra, kontrol devresi gerekli bilgileri okur.

    Bilgi yazarken önce boş bir hücre bulunur. Bunun için tüm basamakları “0” olan bir öznitelik üzerinde ilişkisel arama işlemi gerçekleştirilir ve en az anlamlı n'inci basamak dışında tüm basamaklara maske kaydında “0” yazılır.

    Böylece hücrenin boş olduğu anlamına gelen n'inci basamağında “0” yazan SM hücreleri belirlenir. RGI bilgi kaydındaki kelime, en küçük numaralı boş hücreye yazılır.

    İlişkisel bellekte ek kombinasyon devreleri kullanırken, maksimum veya minimum sayıyı, aynı çağrışım özelliğine sahip sözcük sayısını vb. belirleyerek çeşitli mantıksal işlemler gerçekleştirebilirsiniz. Şekil 1 çağrışımsal belleğin yapısını göstermektedir. Bir ilişkisel depolama aygıtının bellek hücreleri, statik belleğin öğeleri olmalıdır; ilişkisel bellekte, tüm hücrelere aynı anda erişilir ve yenileme döngüleri tarafından kesintiye uğramamalıdır. İlişkisel bellek en hızlısıdır, ancak çok pahalıdır, çünkü her bir bellek hücresini aramanıza izin veren ek bir karşılaştırma devresinin kullanılmasını gerektirir. Bu nedenle, bu tür bir bellek genellikle saf haliyle kullanılmaz ve yüksek hızlı önbellek tipi bellek aygıtları genellikle kısmen ilişkilendirilebilir olarak uygulanır.

    Mikroişlemcilerde, yürütülebilir programın talimatlarının ve işlenenlerinin adres kısmını depolamak için önbelleğin bir parçası olarak ilişkisel bellek (içerik seçimli bellek) kullanılır. Bu durumda, bir sonraki komut veya gerekli işlenen için RAM'e erişmeye gerek yoktur, gerekli adresin ilişkisel işaret kaydına yerleştirilmesi yeterlidir ve gerekli bilgiler önbellekte mevcutsa, hemen yayınlandı. RAM'e erişim, yalnızca gerekli bilgiler önbellekte yoksa gerekli olacaktır. Önbelleğin bu şekilde kullanılması, RAM erişimlerinin sayısını azaltır ve önbellek erişimi RAM erişiminden yaklaşık 10 kat daha az zaman aldığından zamandan tasarruf sağlar.

    Bellek yığın organizasyonu

    Yazma ve okuma aynı yazmaç üzerinden yapılıyorsa, böyle bir aygıta yığın bellek denir ve "ilk giren - son çıkar" (FILO-First Input, Last Output) prensibiyle çalışır.

    Yığın bellek, çağrışımsal olduğu gibi adreslenemez, komşu hücrelerin kelime iletiminin bit zincirleriyle birbirine bağlandığı tek boyutlu bir dizi oluşturan bir hücre topluluğudur. Sözcükler her zaman en üst sıfır hücresine yazılır. Bu durumda, önceden kaydedilmiş tüm kelimeler bir hücre aşağı kaydırılır. Okuma yazmanın tersi sırayla yapılır.

    Yığın bellek yaygınlaştı. İşletim sistemi programları aracılığıyla RAM'de uygulanması için, belleğin bir kısmı yığına ayrılır. Uygulamada, yığın belleği genellikle geleneksel adres belleği kullanılarak düzenlenir.

    Yığın belleğinin organizasyonunu, yığına yeni bir sözcük yazıldığında bilgilerin aşağı kaydırıldığı birbirine bağlı bellek hücrelerinden oluşan bir bellek olarak düşünün (Şekil 2). Bilgi alışverişi yalnızca üst bellek hücresi aracılığıyla gerçekleştirilir. Yığındaki sözcükleri okurken, yığının organizasyonuna bağlı olarak sözcük yığın belleğinden çıkarılabilir veya halka etrafında kaydırılabilir. Okuma modu - son giren ilk çıkar - LIFO (Son Giren İlk Çıkar) olarak adlandırılır.


    Şekil.2. Yığın belleğin organizasyonu.

    Bu tür bir belleğin donanım uygulaması her zaman uygun değildir ve genellikle yığın belleği, bilgisayarın ana belleğinde, ihtiyaca bağlı olarak yığının boyutunu değiştirmenize izin veren yazılım tarafından düzenlenir. Ana bellekte bir yığın düzenlerken, özel bir adres kaydı tahsis edilir - “yığın işaretçisi”. Yığın işaretçisi, yığına itilen son kelimenin adresini içerir. Yığına bir kelime yazıldığında yığının en üstündeki adres otomatik olarak azalır, bir kelime okunduğunda otomatik olarak artar. Yığın bellek genellikle bir kesmeyi işlerken geçerli programın durumunu depolamak için kullanılır. Araya giren programın yürütülmesinden sonra, programın kesintiye uğradığı sırada var olan tüm kayıtların durumu, kaydın tersi sırayla geri yüklenir. Program verilerini yığında da depolayabilirsiniz, bu uygundur çünkü yığına erişirken programdaki bellek hücresinin adresini belirtmeniz gerekmez; yığından bilgi ayıklamak da adresi belirtmeden gerçekleşir.

    İÇİNDE çağrışımsal hafızaöğeler adrese göre değil içeriğe göre seçilir. Son kavramı daha ayrıntılı olarak açıklayalım. Adres düzenlemeli bellek için konsept tanıtıldı minimum adreslenebilir birim(MAE) ayrı bir adrese sahip bir veri parçası olarak. için de benzer bir konsept sunalım. çağrışımsal hafıza, ve bu minimum depolama birimi olacağız çağrışımsal hafıza Arama ilişkisel bellek dizisi(Kayış). Her StrAP iki alan içerir: bir etiket alanı ve bir veri alanı. İlişkisel belleğe bir okuma talebi aşağıdaki gibi kelimelerle ifade edilebilir: etiketi verilen değere eşit olan bir satır (satırlar) seçin.

    Özellikle, böyle bir sorgu ile üç sonuçtan biri mümkündür:

    1. verilen etikete sahip tam olarak bir satır var;
    2. verilen etikete sahip birden fazla satır var;
    3. verilen etikete sahip satır yok.

    Özniteliğe göre bir kayıt aramak, veritabanı erişimleri için tipik bir etkinliktir ve veritabanında arama yapmak genellikle ilişkisel bir aramadır. Böyle bir arama yapmak için, tüm girişleri gözden geçirmeli ve verilen etiketi her girişin etiketi ile karşılaştırmalısınız. Bu, kayıtları depolamak için sıradan adreslenebilir bellek kullanıldığında da yapılabilir (ve bunun çok zaman gerektireceği açıktır - depolanan kayıtların sayısıyla orantılı olarak!). Hakkında çağrışımsal hafıza bellekten verilerin ilişkilendirilerek getirilmesi donanım tarafından desteklendiğinde söyleyin. İlişkisel belleğe yazarken, veri öğesi, bu öğede bulunan etiketle birlikte StrAP'ye yerleştirilir. Bunu yapmak için herhangi bir ücretsiz STRAP kullanabilirsiniz. Önbelleğin yapısal organizasyonunun çeşitlerini veya RAM'i önbelleğe eşlemenin yollarını düşünün.

    Tamamen ilişkisel önbellek

    Tamamen ilişkilendirilebilir bir önbelleğin şeması şekilde gösterilmiştir (aşağıdaki şekle bakın).

    Sistemin çalışma algoritmasını önbellek ile açıklayalım. İşlemin başında önbellek boştur. Alma sırasında ilk komut yürütüldüğünde, kodu ve program kodunun birkaç bitişik baytı (yavaşça) önbellek satırlarından birine ve aynı zamanda adresin üst kısmına aktarılacaktır. ilgili etikete yazılacaktır. Önbellek satırı bu şekilde doldurulur.

    Bu bölümden bir sonraki getirmeler mümkünse, CASH (hızlı) - "CASH hit" den yapılacaktır. Gerekli öğenin önbellekte olmadığı ortaya çıkarsa, - "CASH miss". Bu durumda, RAM'e (yavaşça) erişilir ve bir sonraki önbellek satırı aynı anda doldurulur.

    Tamamen İlişkisel Önbellek Diyagramı

    Önbelleğe erişim aşağıdaki gibidir. Yürütme adresi oluşturulduktan sonra, etiketi oluşturan yüksek bitleri, donanımda (hızlı bir şekilde) ve tüm önbellek satırlarının etiketleriyle eş zamanlı olarak karşılaştırılır. Bu durumda, yukarıda listelenen üç durumdan yalnızca ikisi mümkündür: ya tüm karşılaştırmalar negatif sonuç verir (CASH miss) ya da karşılaştırmanın pozitif sonucu tam olarak bir satıra kaydedilir (CASH isabeti).

    Okurken, bir CACHE isabeti sabitlenirse, adresin alt bitleri, baytların seçileceği önbellek satırındaki konumu belirler ve işlemin türü bayt sayısını belirler. Açıkçası, bir veri öğesinin uzunluğu bir baytı aşarsa, bu öğenin (parçalar halinde) iki (veya daha fazla) farklı önbellek satırında bulunduğu durumlar mümkündür, o zaman böyle bir öğeyi getirme süresi artacaktır. Bu, işlenenleri ve talimatları önbellek satırı sınırları boyunca hizalayarak giderilebilir; bu, çevirmenleri optimize ederken veya kodu manuel olarak optimize ederken dikkate alınır.

    Bir önbellek hatası oluşursa ve önbellekte boş satır yoksa, önbelleğin bir satırını başka bir satırla değiştirmelisiniz.

    Değiştirme stratejisinin temel amacı, yakın gelecekte erişilmesi muhtemel hatları önbellekte tutmak ve daha uzak bir zamanda erişilecek hatları değiştirmek veya hiç kullanmamaktır. Açıkçası, en uygun algoritma, gelecekte herhangi bir önbellek satırından daha sonra erişilecek olan satırın yerini alacak algoritma olacaktır.

    Ne yazık ki, böyle bir tahmin pratikte gerçekleştirilemez ve optimal olandan daha düşük algoritmalara başvurmak gerekir. Kullanılan değiştirme algoritması ne olursa olsun, yüksek hıza ulaşmak için donanımda uygulanmalıdır.

    Pek çok olası ikame algoritması arasında, göreli verimliliklerinin azalan sırasına göre değerlendirilen dördü en yaygın olanıdır. Bunlardan herhangi biri tamamen ilişkilendirilebilir bir önbellekte kullanılabilir.

    En verimli olanı, en eski kullanıma dayanan değiştirme algoritmasıdır ( LRU - En Son Kullanılanlar ), en uzun süredir erişilmeyen önbellek satırının yerini alır. Araştırmalar, geriye "bakan" LRU algoritmasının, ileriye "bakan" optimal algoritmaya kıyasla oldukça iyi performans gösterdiğini göstermiştir.

    En iyi bilineni, bu algoritmanın iki donanım uygulaması yöntemidir. İlkinde, her önbellek satırıyla bir sayaç ilişkilendirilir. Belirli aralıklarla tüm sayaçların içeriğine bir tane eklenir. Bir diziye erişildiğinde sayacı sıfırlanır. Böylece en büyük sayı en uzun süre girilmeyen satırın sayacında olur ve bu satır ilk değiştirilmeye aday olur.

    İkinci yöntem, bu satırlara referansların önbellek satırlarının doldurulma sırasına göre girildiği bir sıra kullanılarak uygulanır. Bir diziye her erişildiğinde, referansı kuyruğun sonuna taşınır. Sonuç olarak, her seferinde kuyruktaki ilk, en uzun süredir erişilmeyen dizeye bir referanstır. Her şeyden önce değiştirilen bu çizgidir.

    Başka bir olası değiştirme algoritması, ilk giren ilk çıkar algoritmasıdır ( FIFO-İlk Giren İlk Çıkar ). Bu, önbellekte en uzun süre kalan satırı değiştirir. Algoritma, daha önce tartışılan sıra kullanılarak kolayca uygulanır, tek fark, dizeye eriştikten sonra karşılık gelen bağlantının kuyruktaki konumunun değişmemesidir.

    Başka bir algoritma, en az kullanılan dizeyi (LFU - En Az Sık Kullanılan) değiştirmektir. Önbellekte en az erişilen satır değiştirilir. İlke, her satırı bir isabet sayacıyla ilişkilendirerek, her vuruştan sonra içeriği eklenen içeriklerle uygulamaya konulabilir. Değiştirme için ana yarışmacı, sayacı en küçük sayıyı içeren dizedir.

    En basit algoritma, değiştirilecek bir dizenin keyfi olarak seçilmesidir. Değiştirme dizesi rastgele seçilir. Bu, örneğin, isabet veya kayıp olup olmadığına bakılmaksızın, içeriği her saat darbesinde bir artan bir sayaç kullanılarak uygulanabilir. Sayaçtaki değer, değiştirilecek dizeyi belirler.

    Etiket ve veri baytlarına ek olarak, önbellek satırı, her şeyden önce geçerlilik biti V'nin (geçerli - geçerliden) ve değişiklik biti M'nin (değiştirmeden - değiştir, değiştir) olması gereken ek hizmet alanları içerebilir. kayıt edilmiş. Bir sonraki önbellek satırı dolduğunda, V "geçerli" duruma, M ise "değiştirilmemiş" duruma ayarlanır. Programın yürütülmesi sırasında bu satırın içeriği değiştirilmişse, M biti değiştirilir ve bu satır değiştirilirken içeriğinin RAM'e yeniden yazılması gerektiğinin sinyalini verir. Herhangi bir nedenle, bu dizinin başka bir yerde (örneğin, RAM'de) saklanan bir öğesinin bir kopyası değiştiyse, V biti değiştirilir.Böyle bir diziye erişirken, bir önbellek hatası kaydedilir (etiket eşleşmesine rağmen) ) ve arama ana RAM'e yapılır. Ayrıca hizmet alanı, LRU algoritmasını destekleyen bitler içerebilir.

    Ekipman hacmi tahmini

    Modern bir sistemdeki tipik önbellek miktarı 8 ... 1024 kb'dir ve önbellek satırının uzunluğu 4 ... 32 bayttır. Pentium ve PentiumPro işlemcili sistemler için tipik olan 256 KB önbellek boyutu ve 32 bayt hat uzunluğu için daha fazla değerlendirme yapılır. Etiket uzunluğu 27 bittir ve önbellekteki satır sayısı 256K/ 32=8192 olacaktır. Yukarıdaki yapıyı uygulamak için 27 bitlik kodların kaç dijital karşılaştırıcısı gerekli olacaktır.

    Dijital bir karşılaştırıcı oluşturmak için ekipman maliyetinin kaba bir tahmini, 10 transistör / bit değeri verir ve yalnızca karşılaştırma bloğundaki toplam transistör sayısı şuna eşit olacaktır:

    10*27*8192 = 2 211 840,

    bu da bir Pentium çipindeki toplam transistör sayısından yaklaşık bir buçuk kat daha azdır. Bu nedenle, tamamen ilişkilendirilebilir bir önbelleğin () açıklanan yapısının önbellekte yalnızca az sayıda satırla gerçekleştirilebileceği açıktır, yani. az miktarda önbellek ile (neredeyse 32 ... 64 satırdan fazla değil). Farklı bir yapıya göre daha büyük bir önbellek oluşturulur.

    çok düzeyli sayfa tablosu ana belleğe birkaç erişim gerektirir, bu nedenle uzun zaman alır. Bazı durumlarda, böyle bir gecikme kabul edilemez. Arama hızlandırma sorunu bilgisayar mimarisi düzeyinde çözülür.

    Yerelliğin özelliği nedeniyle, çoğu program belirli bir süre için az sayıda sayfaya erişir, bu nedenle sayfa tablosunun yalnızca küçük bir kısmı aktif olarak kullanılır.

    Hızlanma sorununun doğal çözümü, bilgisayarı, sayfa tablosuna başvurmadan sanal sayfaları fiziksel sayfalarla eşlemek için bir donanım aygıtıyla donatmak, yani sayfa tablosunun ilgili bölümünü saklayan küçük, hızlı bir önbelleğe sahip olmaktır. şu anda ihtiyaç duyulmaktadır. Bu cihaz denir çağrışımsal hafıza, bazen çeviri görünümlü arabellek (TLB) terimini de kullanır.

    Bir tablo girişi çağrışımsal hafıza(bir giriş), bir sanal sayfa hakkında bilgi içerir: nitelikleri ve içinde bulunduğu çerçeve. Bu alanlar tam olarak sayfa tablosundaki alanlara karşılık gelir.

    Çünkü çağrışımsal hafıza sayfa tablosu girişlerinden yalnızca bazılarını içerir, TLB'deki her giriş, numaralı bir alan içermelidir sanal sayfa. Belleğe çağrışımsal denir, çünkü aynı anda görüntülenenlerin sayısını karşılaştırır. sanal sayfa bu küçük tablonun tüm satırlarında karşılık gelen alanla birlikte. Bu nedenle, bu tür bellek oldukça pahalıdır. Sırada, alan sanal sayfa istenilen değere denk gelen sayfa çerçeve numarası bulunur. TLB'deki normal giriş sayısı 8'den 4096'ya kadardır. çağrışımsal hafıza ana bellek önbelleğinin boyutu ve talimat başına bellek erişimi sayısı gibi faktörleri dikkate almalıdır.

    Varlığında bellek yöneticisinin işleyişini düşünün çağrışımsal hafıza.

    Ekran bilgilerinin başında sanal sayfa fiziksel olarak bulunur çağrışımsal hafıza. Gerekli giriş bulunursa, belleğe erişim talebi reddedildiğinde, ayrıcalık ihlalleri dışında her şey yolundadır.

    İstenen giriş ise çağrışımsal hafıza yoksa, ekran sayfa tablosu aracılığıyladır. İçindeki girdilerden biri çağrışımsal hafıza sayfa tablosundan giriş bulundu. Burada, herhangi bir önbellek için geleneksel değiştirme sorunuyla karşı karşıyayız (yani, önbellekteki girişlerden hangisinin değiştirilmesi gerekiyor). Tasarım çağrışımsal hafıza kayıtları, yeni kayıtlar eklendiğinde eski kayıtlardan hangilerinin silineceğine karar verilecek şekilde düzenlemelidir.

    Başarılı sayfa numarası aramalarının sayısı çağrışımsal hafıza toplam arama sayısına göre isabet (tesadüf) oranı (oran, oran) denir. Bazen önbellek isabet yüzdesi terimi de kullanılır. Yani isabet oranı, bağlantıların kullanılarak yapılabilecek kısmıdır. çağrışımsal hafıza. Aynı sayfalara atıfta bulunulması isabet oranını artırır. İsabet oranı ne kadar yüksek olursa, RAM'deki verilere ortalama erişim süresi o kadar düşük olur.

    Örneğin, sayfa tablosunda bir önbellek kaybı durumunda adresi belirlemenin ve bir önbellek isabeti durumunda adresi belirlemenin 100 ns sürdüğünü varsayalım. çağrışımsal hafıza– 20 sn. %90 isabet oranı ile ortalama adres çözümleme süresi 0.9x20+0.1x100 = 28ns'dir.

    Modern işletim sistemlerinin oldukça kabul edilebilir performansı, kullanmanın etkinliğini kanıtlar. çağrışımsal hafıza. İçinde veri bulma olasılığı yüksek çağrışımsal hafıza verilerin nesnel özelliklerinin varlığıyla ilişkili: uzamsal ve zamansal konum.

    Aşağıdaki gerçeğe dikkat etmek gerekir. İşlemlerin bağlamını değiştirirken, yeni işlemin "görmediğinden" emin olmanız gerekir. çağrışımsal hafızaönceki işlemle ilgili bilgileri temizle gibi. Yani kullanım çağrışımsal hafıza bağlam değiştirme süresini artırır.

    İki seviyeli kabul edilir ( çağrışımsal hafıza+ sayfa tablosu ) adres çeviri şeması, önceki dersin girişinde tartışıldığı gibi, yerellik ilkesinin kullanımına dayalı bir bellek hiyerarşisinin en önemli örneğidir.

    Ters sayfa tablosu

    Katmanlı organizasyona rağmen, birden çok büyük sayfa tablosunu depolamak hala bir sorundur. Değeri, özellikle sanal sayfa sayısının çok fazla olduğu 64 bit mimariler için geçerlidir. Çözüm kullanmaktır ters sayfa tablosu(ters sayfa tablosu). Bu yaklaşım, PowerPC makinelerinde, bazı Hewlett-Packard iş istasyonlarında, IBM RT'de, IBM AS/400'de ve diğer bazılarında kullanılır.

    Bu tablo, fiziksel belleğin her sayfa çerçevesi için bir giriş içerir. Tüm işlemler için bir tablonun yeterli olması esastır. Bu nedenle, eşleme işlevini depolamak için, mimarinin bitliği, işlemlerin boyutu ve sayısı ne olursa olsun, ana belleğin sabit bir bölümü gerekir.

    RAM tasarrufuna rağmen, kullanımı ters çevrilmiş masaönemli bir dezavantajı vardır - içindeki girişler (olduğu gibi çağrışımsal hafıza), sanal sayfa numaralarının artan sırasına göre sıralanmaz, bu da adres çevirisini zorlaştırır. Bu sorunu çözmenin bir yolu, bir hash tablosu kullanmaktır. sanal adresler. Aynı zamanda bölüm sanal adres sayfa numarası olan , bir karma işlevi kullanılarak bir karma tabloya eşlenir. Buradaki fiziksel belleğin her sayfası, hash tablosundaki bir girişe karşılık gelir ve ters sayfa tablosu. sanal adresler aynı hash değerine sahip olan , birbirleriyle birleştirir. Tipik olarak, zincirin uzunluğu iki girişi geçmez.

    Sayfa boyutu

    Mevcut makineler için işletim sistemi geliştiricileri nadiren sayfa boyutunu etkileyebilir. Ancak, yeni oluşturulan bilgisayarlar için en uygun sayfa boyutuyla ilgili karar önemlidir. Beklediğiniz gibi, en iyi beden yok. Aksine, boyutu etkileyen bir dizi faktör vardır. Tipik olarak, sayfa boyutu 29 ila 214 bayt arasında ikinin katıdır.