Program Counter (PC) hakkında

Başlatan yamak, 20 Mart 2012, 03:34:22

yamak

Herhangi bir cpu için söyleyecek olursak;
Mesela yazdığımız herhangi bir programı derlediğimizde derleyici bize yazdığımız programın işlemcimize uygun hex kodlarını oluşturuyo. Sonra biz bu hex kodlarını cpu ya yüklüyoruz ve bu kodlar instruction memory e kaydoluyo. Peki pc ın değeri bizim sonra instruction umuza geldikten sonra pc saymayı durduruyo mu yoksa öyle boş boş sayıyo mu? Sonsuz döngü oluşturduğumuzda sonsuza kadar sayıyo ama mesela ben hiç döngü oluşturmadan 3 satırlık kod yazdım bu durumda ne oluyo.Benim tahminimce pc saymayı durduruyo. Fakat bu durum nasıl bir donanım aracılığı ile yapılıyo. İşlemcinin alt modüllerine giden tüm clock bağlantıları kesiliyo mu nasıl oluyo?

z

#1
Programi ASM ile yazdigimizi varsayalim.

Program 3 satirdan olussun ve son komut dongu saglayan JMP tipi komut olmasin.

Bu durumda PC ilk kodu adresler ve buradaki kod  isletiilir. PC bir artar 2.  isletilir, PC bir artar 3. isletilir. Bu asamada PC bir artarak program hafizasinda bir sonraki adresdeki komut okunur. Bu komut derleyicinin urettigi bir deger değildir. (Cunku sen 3 satirlik kod yazdin) Bu, ramin (program ram dan da isletilebilir) yada romun sahip oldugu bos deger yada rama daha onceden yuklenmis cop degerdir. Buradaki deger 0x000.. yada 0xFFF.. yada daha baska bir sey olabilir.

Bu cop veri aynen CPU komutu gibi isletilmeye calisilir. Karsiligi varsa isletilir yoksa ya exception uretilir yada es gecilir bir sonraki adresdeki kod isletilir. Bu tamamen CPU nun yapisina bagli.

Eger programi C vs ile yazdiysan 3 satirlik program sonunda sen bir sey yapmasan bile main fonksiyonunun cikildiginda PC gene romdaki C hazirlik fonksiyonlarindan birine duser (bu fonksiyonun adresine sahip olur) ve senin iraden disinda orada dongude kalir vs.

Yani isin ozu, her makina kodu bir hex sayidir. Bu hex sayi anlamli da olsa anlamsizda olsa isletilmeye calisilir. Anlamli olup olmadigi anca okunup decode edilmeye kalkildiginda anlasilir. Bundan sonraki olaylar cpunun tasarimina bagli. (ARM islemci exception uretir.)

PC, sadece HALT yada Sleep tarzindaki komutlarda durur ve durtulunceye kadar bu degeri saklar. Bu durumdaki PC i durtmek icin reset, int vs bir sey gerekir.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

yamak