Etiket arşivi: memory order

Memory Düzeni

Memory Düzen Modeli

Cortex-A9 mimarisi sistemde yer alan memory map edilmiş aygıtlara destek sağlamak için 3 farklı memory özelliği sunmaktadır. Bunlar

  • Normal
  • Device
  • Strongly-Ordered

 

 

Device and Strongly Ordered

Strongly Ordered ve Device tipi hafıza alanlarına erişim aynı memory düzeni modeline sahiptir. Sistem çevre birimleri (peripherals) strongly ordered ve device memory tipinde olmaktadır. Bu hafızalara erişimler aşağıdaki kurallara sahiptir.

  • Erişimlerin sayısı ve boyutu korunmuştur. Erişimler atomiktir, erişim sırasında bir kesmeye uğramazlar yani.
  • Okuma ve yazma 'lar sistemde yan etkilere sebep olabilir. Erişimler asla cache'lenmez.
  • Erişimler hizasız olamaz. (Türkçe yazınca değişik hissediyorum, unaligned olamaz yani)
  • Device Memory'sine erişim sırasının program sırasına göre olduğu garantilidir. Bu garanti sadece aynı çevre birimi yada memory alanı için geçerlidir.
  • Cortex-A9 işlemcisi normal memory erişimlerini strongly ordered ya da device memory erişimi olarak düzenleyebilir.

Device memory ile Strongly Ordered memory arasındaki farklar

  • Strongly ordered memory alanına gönderilen bir yazma komutu, sadece çevre birimine ya da memory bileşenine yazma komutu ulaştığında tamamlanabilir.
  • Device Memory'isine yapılacak olan bir yazma, ilgili yazma komutunun kullanıldığı çevre birimi ya da memory alanına ulaşmadan önce tamamlanabilir.

Normal Memory

Normal memory, hafıza sisteminin büyük bölümünü kapsar. Bütün RAM ve ROM aygıtları normal memory olarak kabul edilir. İşlemci tarafından işlenecek olan bütün komutlar normal memory alanında olmalıdır. Mimarisel olarak kodun device ya da strongly-ordered memory alanlarında olmasına izin verilmez.

  • İşlemci bazı okuma ve yazma erişimlerini tekrarlayabilir.
  • İşlemci hiçbir yan etki olmadan (MMU tarafından izin verilen ayarlar çerçevesinde) prefetch ve spekülatif erişim yapabilir.
  • Hizasız (Unaligned) erişimler yapılabilir.
  • Çoklu erişimler işlemci donanımı tarafından daha az sayıda fakat daha büyük boyuttaki erişimlere çevrilebilir. Örneğin birden fazla byte yazma işlemi tek bir double-word yazma işlemine çevrilebilir.

 

Memory Nitelikleri

Memory tiplerine ek olarak, memory nitelikleri de bulunmaktadır. Bunlara değinecek olursak:

Shareability

Cacheability