CortexM3 Assembly

Başlatan muhittin_kaplan, 15 Aralık 2012, 00:30:20

yamak

Hocam bence sekmeye uğrar.Yani pipeline hazard oluşur.Mesela işlemci 4 kademe pipeline dan oluşsun fetch,decode,execute,writeback.Şimdi ilk cycle da birinci komutun fetch işlemi gerçekleşecek,2. cycle da ise 1. komutun decode işlemi gerçekleşecek 2.komutun da fetch işlemi,3. cycle 1. komutu execute edilecek 2. si decode 3.komut ile fetch edilecek.İşte tam bu anda pipeline hazard oluşur.Çünkü daha 1. komut bitip R1 in yeni değeri oluşmadan 2. komutu R1 in değerini alacak yani eski değerini almış olacak. Yani daha R1 in yeni değeri register file a yazılmadan 2. komutu R1 in değerini register file dan okumuş olacak.Bu durumda CPU nun pipeline hazard birimi devreye girip bu duruma el atacak.

speak48

pipeleneda hata oldu diye işlemcinin çöküp oturacağını sanmıyorum

z

C=B+3 satırı da işlendiğinde A,B,C son değerlerini yazarmısınız?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

yamak

Alıntı yapılan: speak48 - 17 Aralık 2012, 12:31:44
pipeleneda hata oldu diye işlemcinin çöküp oturacağını sanmıyorum
Ben öyle demedim ki.Sadece pipeline hazard devreye giriyo dedim.Yani işlemleri doğru sonuçlanması için bu soruna müdahale ediyo.

muhittin_kaplan

Pipeline Stall durumu mevcut.
Önceki iletilerimin birinde "şimşek çakması yaratmak için" sormuştum aslında. İşlemi birmemiş bir komuttan değer bekleyen başka bir komut pipeline a girerse ne olur? Pipeline stall oluşurmuş. Buhtemelen beklemeye alıyor. Bundan Dolayıdır ki DMIPS önem kazanıyor.

z

TI ın ilk DSP serilerinde pipeline conflicts durumları için dokumanlarda uyarılar verilir ve bazı komutların arasına NOP eklenirdi. ASM derleyicilerin son versiyonları bunu sizin adınıza yapmaya başladı.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com