80×86 Assembly Dersleri 6 – 32 Bit İşlemciler Arasındaki Farklılıklar

32 Bit İşlemciler Arasındaki Farklılıklar

16 / 32 Bit İşlemciler Arasındaki Farklılıkları

16 Bitten büyük işlemciler korumalı ve gerçek olmak üzere iki farklı çalışma kipini destekler.

32 Bitlik işlemciler korumalı (protected), gerçek (real-address) ve sistem yönetim (system management) kipleri, 64 Bitlik işlemcileride ise 32 Bitlik işlemcinin kiplerine ilaveten uyumluluk (compatibility) ve 64 Bit kiplerinde çalışır.

32 Bitlik işlemcilerde gerçek kip kullanıldığında hız bir 80×86 işlemcisi gibi çalışmaktadır, bu durumda 16 Bitlik olarak kullanılabilmektedir. Özel olarak üretilen 32 bitlik kod üretilmesi halindeişlemci üzerinde çalışan programlar 32Bitlik mimariden yararlanmaktadır.

32 Bitlik işllemcilerde yazmaçların genel olarak isimlerinin başına E (Extend) harfi eklenerek yeniden isimlendirilmişlerdi. 8 ve 16 bit işlemlerde daha önceki işlemcilre ile tamamen kod uyumlu olarak çalışmaktadırlar. Kesim yazmaçlarına, GS ve FS yazmaçları eklenerek sayıları 6’ya çıkmıştır.

FS ve GS isimlerinin özel bir anlamı bulunmamakla birlikte., ek Kesim yazmacı (ES) ile benzer görevleri üstlenmelerinden ötürü alfabeyi takip eden harfler olarak F ve G şeklinde isimlendirilmiştir.

32 Bit İşlemci
32 Bit İşlemci

32 Bit İşlemci Bayrakları

32 Bitlik işlemcilerde kullanılan yazmaçların sayı ve büyüklüklerinde farklılıklar olduğu gibi mevcut bayrak sayılarında da durum aynıdır.

32 Bit İşlemci Bayrakları
32 Bit İşlemci Bayrakları

Alignment Check – AC

AC bayrağı 1 değerini almış ise belleğe erişim en hızlı şekilde yapılır.

Virtual 8086 Mode – VM

VM bayrağının değeri 1 ise, o anda çalıştırılmakta olan komutun 8086 komularından olduğu anlaşılır ve uygulama programları bu biti değiştiremez.

Resume Flag – RF

RF bayrağı programın çalışması sırasında debug hatası üretip üretmeyeceğini belirleyen bayraktır. Programın çalışması sırasında beklenmedik durum oluşması halinde işlemci CS, EIP ve EFLAG yazmaçlarını yığına (stack) atar ve RF bayrağının değeri 1 olur.

Nested Task – NT

Aynı anda CALL, INT gibi yordam veya kesme komutlarının kullanıldığı anda bunların birbirini takiben çalışmasını sağlayan bayrak NT bayrağıdır.

Privilege Level – IOPL : I/O

IOPL bayrağı diğer bayraklardan farklı olarak 2 bitlik yani 0-3 arasında değer tutar. IOPL bayrağ, giriş/çıkış komutlarını çalıştırmak için gerekli yetki seviyesini belirler. IOPL bayrağının değerini sadece 0 numaralı yetki seviyesinde bulunan işlem değiştirme hakkına sahiptir.

Kontrol Yazmaçlar – Control Register

Sayfalama (paging) ve matematik yardımcı işlemci ile ilgili kontrol fonksiyonlarını ve ön bellek (cache) işlemlerini kontrol etmek üzere kontrol yazmaçlarından yararlanılır.

CR0 : Control Register 0

CR0 yazmacı kendi içerisinde bazı bit alanlarının değerlerine göre işlem yapmaktadır.

32 Bit Control Register
32 Bit Control Register
  • PG (Paging) PG biti 1 yapılarak sayfalama (paging) imkanı sağlanır.
  • CD (Cache Disable) 1 olduğu zaman ön bellek kullanımı engellenir ve ön bellek dışındaki bir bellek alanından yapılan istekler ön belleğe yazılmazlar.
  • NW (No Write Through) CD değeri ile aynı değere ayarlanmalıdır. Ön bellek kullanımı engellediği zaman 1, tersi durumda 0 değerini alır.
  • AM (Alignment Mode) Değeri 1 olduğu zaman  EFLAG da bulunan  AC bitini aktif hale getirir. Değeri 0 ise  AC bitinin bir önemi yoktur.
  • WP (Write Protect) Sayfalamanın nasıl çalışacağını belilrler.
  • NE (Numeric Exception) Değeri 1 olduğu zaman kayan noktalı işlemlerde meydana gelecek beklenmedik durumların maskelenmesini engeller.
  • ET (Extension Type) Matematik işlemci var ise değeri 1 olur.
  • TS (Task Switched) Değeri 1 olduğunda takip eden bir sonraki matematik işlemci gerektiren işlem, işletim sisteminden servis alır. Bu sayede ana işlemcinin, matematik işlemcinin durumunu saklamaksızın çok görev (multitasking) çalışmasına yardımcı olur.
  • EM (Emulate Math Processor) Değeri 1 olduğu zaman normalde matematik işlemci tarafından yerine getirilmesi gereken işlemler için işletim sisteminden servis alır.
  • MP (Monitor co-Processor) Durumu, WAIT komutunun durumunu etkiler.
  • PE (Protect Enable) İşlemciyi korumalı kipte çalışmaya geçirmek için kullanılır. Bu işlem genellikle ilk değer atama sırasında yapılır.

CR1 : Control Register 1

80386 ve 80486 da kullanılmamış, ileri Intel işlemcileri için kullanılmak üzere tasarlanmıştır.

CR2 : Control Register 2

Sayfa hatası (Page Fault) meydana geldiği zaman CR2 yazmacı hataya neden olan fiziksel (lineer) adresi tutar.

CR3 : Control Register 3

Sayfalama donanımı aynı zamanda CR3 yazmacını da kullanmaktadır. Sayfa başlangıç adresinin en anlamlı (MSD) 20 bitini tutar.

Debug ve Test Yazmaçları

8 tane debug yazmacı (DR0-DR7) ve iki tane de test yazmacı (TR0-TR1)  vardır. 80486 işlemcisinde TR3-TR5 ön belleğin test ve kontrolü, TR6-TR7 ise TLB’nin (Translation Look aside Buffer) testi için kullanılmaktadır.

Leave a Reply

Your email address will not be published. Required fields are marked *