*

şükela:  tümü | bugün
1 entry daha
  • 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.