Bir bilgisayarın hafızası: Hangileri var?

Bir bilgisayarın hafızası, tüm kullanıcıların ağzında olmasına rağmen, birçoğu için hala tamamen bilinmiyor. Bu nedenle burada bir bilgisayarın tam bellek hiyerarşisini ve normalde bu bilgisayarlarla gerçekleştirilen işlemler sırasında devreye giren bellek türlerini ve her birinin amacını görebileceksiniz.

Bir bilgisayarın hafızası: hiyerarşi

Bilgisayarın tanımı açıktır: Talimatlardan veya programlardan gelen verileri işleyebilen bir sistemdir ve temel olarak donanım düzeyinde bir CPU, bellek ve G/Ç’den, sistemde bir işletim sistemi ve programlarla birlikte bir sistemdir. seviye. yazılım. Eh, hafızaya odaklanırsak, bilmeniz gereken hiyerarşi şudur:

Kayıtlar

kayıtlarZ80 Günlükleri

Bir bilgisayarın ISA’sı talimatları, kabul edilen veri türlerini, adresleme modlarını ve ayrıca kayıtları tanımlar. Hiyerarşide var olan en küçük ve en hızlı bellek olduğu için, tam olarak bu CPU kayıtları ilk uğraşılacak olanlardır.

Kayıtlar mikroişlemcinin içinde, bankalar şeklindedir. Amacı, küçük miktarlarda bilgiyi, birkaç bit veya talimat veya veri gibi ikili verileri depolamaktır. Her CPU, farklı amaçlarla oldukça fazla sayıda içerebilir. Örneğin, en yaygın olanlardan bazıları şunlardır:

  • Veri için kaydolun: adlarından da anlaşılacağı gibi verileri veya işlenenleri depolayabilirler. Bazıları tamsayı veya kayan nokta verilerini depolamak için kullanılırken, diğerleri bu iki türden yalnızca biri için kullanılır.
  • Talimatlar için kaydolun: yalnızca talimatları, yani verilere veya işlenenlere uygulanacak işlemleri depolamaya yöneliktir. Bu kayıtlar, kontrol ünitesinin yorumlaması gereken kodları saklayacaktır.
  • Adres kayıtları: Adlarından da anlaşılacağı gibi, hafıza adreslerini depolamak için kullanılırlar.
  • Durum kayıtları: Bunlar, sözde bayrakları veya bayrakları saklayanlardır. Bu bayraklardan biri, bir toplama işleminin taşıma olup olmadığı, koşullar vb. gibi bir şeyin durumunu belirleyen bitler olacaktır.
  • Genel amaçlı kayıtlar: Talimatlar, veriler, adresler vb. gibi her türlü bilgiyi depolayabilen özel amaçlı kayıtların tersidir.
  • Register Program Counter veya PC: Çok önemli bir registerdır ve yürütülecek komutun bir sonraki adresini göstermekten sorumludur. Bildiğiniz gibi, bir program sırayla yürütülmesi gereken bir dizi talimat ve veriden oluşur. Bunu yapmak için, PC kaydı geçerli adrese +1 eklemekten sorumludur, böylece yürütülecek bir sonraki talimatı işaret eder ve programın işlenmesi bitene kadar böyle devam eder.

Türü ne olursa olsun, burada ilginç olan, kapasitesi çok az ama hepsinden daha hızlı olan bir bellek olduğunun altını çizmek. Ayrıca, CPU’nun yürütme birimlerine çok yakın olduğundan gecikme minimum düzeydedir ve depolanan bilgiler son derece hızlı bir şekilde aktarılabilir veya yazılabilir.

Dezavantajı, bu iki durumlu hücrelerin üretilmesinin daha pahalı olmasıdır, bu nedenle kapasiteleri 32, 64, 128-bit vb. kadar küçüktür. GB veya TB kapasiteli bu belleklerden birini üretmek, ulaşacakları fiyat söz konusu olduğunda tamamen saçmalık olur.

önbellek

gizlenmişAMD K7’nin veri ve talimat önbelleği L1 (mavi oklar) ve L2 (sarı oklar)

CPU’nun mikro mimarisinde en önemli belleklerden bir diğeri önbellektir. Ayrıca CPU’nun yanında bulunur. Geçmişte çip dışı modeller olmasına rağmen, genellikle çip üzerinde. Bu belleğin fikri, gecikme etkisini azaltmak, performansı artırmak için ana bellek ve CPU arasında bir ara tampon görevi görmektir.

Bu belleğin üretimi de pahalıdır, transistörlerden oluşan bir SRAM türüdür ve erişim açısından çok hızlıdır. Kapasiteleri, birkaç KB veya MB ile kayıtlardan biraz daha yüksektir, ancak RAM gibi diğer daha yavaş ve daha ucuz bellek türlerinden daha düşük bir kapasiteyi korumaya devam ederler.

CPU’ya bağlı olarak, önbelleğin birkaç düzeyi olabilir, düzeye eşlik eden sayı ne kadar düşükse, işlem çekirdeğine o kadar yakın ve genellikle o kadar hızlıdır, böylece gecikmeyi azaltır. Bu nedenle, veri veya talimat her zaman en düşük seviyede aranacaktır, eğer orada değilse, önbellek kaçırma olarak bilinen şey meydana gelir ve hemen daha yüksek seviye aranır ve gerekli bilgi elde edilene kadar bu böyle devam eder. En yaygın olanları:

  • L0: Sadece birkaç bitlik bir işlem kaydı gibi çok küçük bir bellektir ve fonksiyonel birimler tarafından doğrudan erişilebilir. Ancak, bu seviye birçok CPU’da mevcut değildir.
  • IL1: L1 genellikle ikiye bölündüğünden, komutlar için L1 önbelleğidir.
  • DL1: veriler için L1 önbelleğidir.
  • L2: L1’den daha büyük ve birleştirilmiş bir sonraki seviyedir, böylece hem verileri hem de talimatları saklayabilir. Ayrıca, genellikle L1’den daha yavaştır ve kontrol ünitesinden daha uzaktır.
  • L3: L2’nin hemen üzerindeki seviye, aynı zamanda birleşik ve daha büyük ve daha da uzakta.
  • L4: Bazı sistemlerde genellikle bir L4 bulunur, ancak bazı durumlarda çip üzerinde değil, dışındadır.
  • LLC: Son Düzey Önbellek, ne olursa olsun, bir sistemin önbelleğinin son düzeyini ifade eder. Örneğin, yalnızca L2’ye ulaşanlar, L2 LLC olacaktır. L3’e sahiplerse ve L4’e sahip değillerse, L3 LLC olacaktır…

TLB’yi de (Translate Lookaside Buffer) unutmak istemem. Bu eleman ayrıca bazı durumlarda genellikle seviyelere bölünür ve veri (DTLB) ve talimatlar (ITLB) için ayrılır. MMU tarafından yönetilen bu bellek de hızlıdır ve önbellekle yakından ilişkilidir. Genellikle birkaç KB bilgi içeren tablolardır. Spesifik olarak, mantıksal ve fiziksel adresler arasındaki ilişkiyi içeren disk belleği tablosunun bölümlerini içerir.

ana bellek

Samsung DDR3 RAMSamsung DDR3 RAM

Ana bellek veya RAM bellek, hiyerarşinin bir sonraki seviyesi olacaktır. Önbelleğin üzerinde, önbellekten daha yavaş ve boyut olarak daha büyük olacaktır. Önbellek yalnızca birkaç MB iken, RAM birkaç GB olabilir. Bildiğiniz gibi, kendisine güç verilirken verileri tutan bir tür SDRAM bellektir.

CPU bundan çok daha hızlı çalışır ve darboğazları önlemek için önceki bölümde görülenler gibi tamponlar uygulanmıştır. Ve CPU’nun RAM’e erişmek için herhangi bir önbellek düzeyine erişmekten daha fazla döngü kullanması gerektiğidir. Bu nedenle, önbellekte ise, oradan erişmek tercih edilir.

Bu bellek aynı zamanda geneldir, içinde her türlü bilgi saklanabilir. Genellikle, her zaman çalışan işletim sisteminin yüklü çekirdeğine ve ayrıca çalışan farklı işlemlere veya programlara (veya bunlardan bazılarına) sahiptir. Hem çekirdek hem de programlar yazılımdır ve hepsi CPU tarafından işlenecek talimat ve verilerden oluşur.

Ikincil bellek

hafıza flaşı Samsungflaş bellek

Birincil seviyenin bir sonraki seviyesidir. İkincil bellek, yığın depolama ortamını ifade eder. Kapasitesi çok daha yüksek, ancak erişim (okuma ve yazma) açısından çok daha yavaş bir bellek. Örneğin, HDD veya SSD sabit sürücüsü, bazı durumlarda bir hafıza kartı vb.

Buradaki kapasiteler birkaç yüz GB ile TB arasında değişmektedir. Ve sadece kullanıcı verilerini veya kurulu programları depolamak için kullanılmazlar, aynı zamanda RAM’in kapasitesini fiziksel kapasite sınırlarının ötesine genişleten sanal bellek veya SWAP gibi çok önemli bir ayrılmış parçaya da sahiptirler. Bu sayede programın “gözleri” önünde bilgisayar sonsuz belleğe sahip olacaktır.

Sanal bellek, sanal makineyle ilgili veya var olmayan bir şeyle karıştırılmamalıdır. İşletim sisteminin ve diğer yazılımların sistemde kurulu RAM’den daha fazla kapasiteye sahip olmasını sağlayan bir bellek hiyerarşisi yönetimi tekniğidir. Bunu yapmak için CPU kayıtları, önbellek belleği, RAM belleği ve ikincil depolama alanı aynı alanla “birleştirilir”.

İşletim sisteminin çekirdeği, bazı algoritmalar aracılığıyla, özellikle planlayıcı veya zamanlayıcı, bu bellekten en yüksek öncelikli işlemlerin RAM’e yüklenmesinden ve gerekirse en düşük öncelikli işlemlerin RAM’den ikincil belleğe yüklenmesinden sorumlu olacaktır.

Kabaca ve basit bir şekilde söylemek gerekirse, bir programı çalıştırdığınızda, çekirdek onu RAM’e gönderir ve RAM’den işlem için CPU’ya gider. Ancak, söz konusu program önceliğini kaybederse ve daha acil olarak RAM’de yer olmayan başka bir programa ihtiyaç duyarsa, önceki işlem kaldırılır ve en yüksek önceliğe sahip olan işlenmek üzere yüklenir.

G/Ç: giriş ve çıkış

G/Ç

Birçok kullanıcıya garip gelse de, bir bilgisayarın G/Ç veya giriş ve çıkış sistemi de bu bellek hiyerarşisinin bir parçasıdır. Aslında, CPU bunu sadece başka bir bellek olarak görüyor. Yani, bilgisayara bağlı bir klavye veya bir yazıcı CPU belleği içindir. İlk durumda, okunması gereken bir bellektir (yazılan karakterleri bilmek için), ikinci durumda ise yazılması gereken bir bellektir (dosyayı yazdırmaya gönderin).

Bu nedenle, G/Ç’nin kendisine ayrılmış bir adres alanı da vardır. Ve bu durumlarda, olası çevre birimlerinin heterojenliği göz önüne alındığında, daha büyük bir kapasiteye sahip olması gerekmese de, aynı zamanda biraz daha yavaş bir bellektir. Çoğu durumda değildir.

DMA (Doğrudan Bellek Erişimi) de burada tanıtılmalıdır. Doğrudan bellek erişimi, bu işi boşaltmak ve süreçleri hızlandırmak için CPU’nun sürece müdahale etmesine gerek kalmadan sistemin sistem belleğine erişmesine (okuma ve yazma) izin veren, onlarca yıl önce uygulanan bir teknolojidir.

DMA transferi hakkında konuştuğumuzda, bir veri bloğunu bir cihazdan diğerine transfer etmekten bahsediyoruz. Aktarımı başlatan CPU yerine, bu iş DMA denetleyicisi olarak bilinen bir çip tarafından yapılır. Elbette CPU müdahale etmese de, aktarımı gerçekleştirmek için sistem veri yolu kullanılır, bu nedenle CPU’nun onu kullanmasına ihtiyaç varsa, kullanımının düzenlenmesi gerekecektir.

Ve DMA ve tüm bu bellek hiyerarşileri ile paralel çoklu işleme ile birlikte, bellek tutarlılığını korumak gibi büyük bir sorun ortaya çıkıyor. Her ne kadar bu harika bir makale daha olsa da… Çünkü bir cihaz bir bellek adresine erişir ve CPU bu verileri kullanmadan önce o adrese veri yazarsa ne olur sizce? Elbette hatalı bir veriyi işleyecekti ve bundan ne pahasına olursa olsun kaçınılmalıdır.

Similar Posts

Leave a Reply

Your email address will not be published.