Benim işlemcim seninkini, benim C senin ASM yi döver.

Başlatan z, 13 Kasım 2009, 16:01:07

iyildirim

Alıntı yapılan: eemkutay - 23 Ağustos 2011, 23:29:32
32bit işlemciler byte byte veri saklıyor ve program counter, hafızaya byte yazılırken 1, half word yazılırken 2 ve word yazılırken 4 adım atlar.  Dolayısıyla 32bit için 4 byte yazar ve PC+=4 olur.

Dediğin gibi Union yapı işlemcinin çalışma performansını etkilemez çünkü zaten işlemci byte erişimli. Ve örneğini verdiğin union 8bit,16bit,32bit erişimi çalışıyor. Hatta senin verdiğin yapıda eksik denebilir, istenirse içine 1 bit erişimde eklenebilir.

eemkutay,

Burayı pek anlamadım.
ARM serilerini pek bilmem, ama bildiğim kadarı ile 16-32bit işlemcilerin veri yolu da 16-32bit. PC nin 1 veya 4 ilerlemesinden ziyade 32bitlik registerin içeriğinin değişkene, RAM'e aktarılması tek bir clock süresinde olmuyormu?. 
Bu durumda union kullanımı ile tek tek komutlar çalıştırmak yerine tek bir komutla 32 biti tek bir clock süresinde aktarabiliyoruz diye biliyorum.  Tek şartı da 8 bitlik 4 değişenin bellekte ardışık olarak yerleştirilmesi. 4 ayrı komut çalıştırmak yerine 1 komut çalıştırmak neden performansa etki etmesin.




CLR

Alıntı yapılan: iyildirim - 24 Ağustos 2011, 00:11:08
Alıntı yapılan: eemkutay - 23 Ağustos 2011, 23:29:32
32bit işlemciler byte byte veri saklıyor ve program counter, hafızaya byte yazılırken 1, half word yazılırken 2 ve word yazılırken 4 adım atlar.  Dolayısıyla 32bit için 4 byte yazar ve PC+=4 olur.

Dediğin gibi Union yapı işlemcinin çalışma performansını etkilemez çünkü zaten işlemci byte erişimli. Ve örneğini verdiğin union 8bit,16bit,32bit erişimi çalışıyor. Hatta senin verdiğin yapıda eksik denebilir, istenirse içine 1 bit erişimde eklenebilir.

eemkutay,

Burayı pek anlamadım.
ARM serilerini pek bilmem, ama bildiğim kadarı ile 16-32bit işlemcilerin veri yolu da 16-32bit. PC nin 1 veya 4 ilerlemesinden ziyade 32bitlik registerin içeriğinin değişkene, RAM'e aktarılması tek bir clock süresinde olmuyormu?. 
Bu durumda union kullanımı ile tek tek komutlar çalıştırmak yerine tek bir komutla 32 biti tek bir clock süresinde aktarabiliyoruz diye biliyorum.  Tek şartı da 8 bitlik 4 değişenin bellekte ardışık olarak yerleştirilmesi. 4 ayrı komut çalıştırmak yerine 1 komut çalıştırmak neden performansa etki etmesin.

Merhaba,

Arm asm içinde isterse 8bit isterse 32bit işlem yapabiliyor.  Hepsi 1 clock cycle istiyor, istr 32bit yazsın isterse 8bit. Yani sen yanlış anlamışsın 32bit yazmak için 4 clock cycle gerekmiyor sadece pc'ye 4 ekleniyor. 8 biti de tek hamdede yazıyor, sadece içeri de 32bite donanımsal maskeleme yapmışlar ve 8bit, 16bit yazıp okuyabiliyor.
Knowledge and Experience are Power