• cpu'ların hafızayı sanal adresleme modelinde (bkz: virtual memory) sanal adreslerin fiziksel hafızada nerelere denk geldiğini bulmak için page table yapısı kullanılır. bu yapı hafızada durur. cpu her hafıza erişiminde bu veriyi tekrar okuyup zaman kaybetmesin diye kendi içinde bir hafızada tutar. buna translation lookaside buffer (tlb) denir.

    eğer page table değişirse işlemcinin tlb'sinin de güncellenmesi gerekir. bu da page table'ın hafızadan tekrar yüklenmesi gerektiği anlamına gelir. mesela process'ler arası switch'lerde yapılması mecburidir. bu tlb'yi sıfırlama işlemine "tlb flush" denir.
  • sanal bellek* ve sayfalama mekanizmasını* kullanan modern mikroişlemci ve işletim sistemlerinde, context switch'lerde tlb'nin flush edilmesinin nedeni, farklı process'lerdeki aynı sanal bellek adreslerinin farklı fiziksel adreslere haritalanmış* olmasıdır. dolayısıyla sanal-fiziksel adres eşleştirmelerinin tutulduğu söz konusu tamponun, o an koşmakta olan process'e özgü olması gerekmektedir. lakin öngörülebileceği üzere, bu durum context switch'lere ek bir maliyet bindirmektedir. bu ek maliyeti bertaraf edebilmek için de arm gibi bazı mikroişlemci mimarilerinde fast context switch extension adı altında birtakım çözümler sunulmuştur.

    fcse mekanizmasını kullanan sistemlerde, farklı process'ler aynı* sanal hafıza alanını paylaşabilmektedir. bu durumun doğal bir getirisi olarak da tlb'nin context switch'lerde flush edilmesine gerek yoktur. çakışan sanal bellek alanları, process id tabanlı olacak şekilde yeni sanal bellek adreslerine dönüştürüldükten sonra mmu tarafından fiziksel adreslere dönüştürülür. yine hız kazancı sağlayabilmek için sanal-fiziksel adres eşleştirmelerinin tutulduğu bir caching mekanizması* mevcuttur, fakat fcse aşamasından sonra gelir. bu mekanizma armv6'e kadar kullanılmıştır. armv7 ve sonrasında multiprocessing extension ile birlikte fcse özelliği mimaride opsiyonel olarak bulundurulsa da, deprecated hale gelmiştir.
hesabın var mı? giriş yap