x86 Ailesi 1
8085A,8088 ve 8086 2
Temel Mikroişlemci Özellikleri Mikroişlemcinin bir defade işleyebileceği kelime uzunluğu Mikroişlemcinin tek bir komutu işleme hızı Mikroişlemcinin doğrudan adresleyebileceği bellek büyüklüğü Programcının üzerinde çalışabileceği kaydedici çeşitleri Programcının kullanabileceği değişik türdeki komutlar Programcının bellek adreslerken gerekduyacağı adresleme modları 3
Kelime(Word) Uzunluğu : Paralel olarak işlenen veri bitlerinin sayısıdır. Kelime, işlemcideki genel amaçlı kaydedicilerin büyüklüğü ve aynı zamanda her bir bellek alanı kapasitesidir. CPU hızı, saat frekansı ile ilgili olmakla beraber, saat frekansı her zaman gerçek çalışma frekansını yansıtmaz. Performans ölçümlemek için çeşitli teknikler geliştirilmiştir. Bellek, CPU tarafından adres yolu yardımıyla adreslenir. Adres yolu hattı ne kadar çoksa adresleme kapasitesi de ona göre çok olur. Kaydedici sayısının çok olması esneklik sağlar. Farklı adresleme modları, programcıya kolaylıklar sağlar. 4
Bu kısımdaki mikroişlemci yapıları iki aşamada incelenecektir: i) İç Mimari ii) Dış Mimari 5
İç Mimari Bu modelde temel olarak 5 bölümden söz etmek mümkündür. 2 Genel Amaçlı Saklayıcılar 4 Özel Amaçlı Saklayıcılar R0 R1 R2 R3... R4 SR (Status Register) IR (Intruction Register) IP (Intruction Pointer) SP (Stack Pointer) MAR (Memory Address Register) MBR (Memory Buffer Register) 3 ALU (Arithmetic Logic Unit 1 Kontrol Birimi 5 Teknoloji Bağımlı Birimler (FPU, Cache Bellek vb...) 6
Kontrol Birimi Mikroişlemcinin içinde ve dışında olan bütün veri aktarımlarını kontrol eder ve çevre birimlere eşzamanlama (synchronization) için gerekli sinyallemeyi sağlar. Harici Veriyolu MBR IR Dahili Veriyolu Komut Kod Çözücü Kontrol Birimi... Dahili Saklayıcılara Kontrol Sinyalleri Saat Bayraklar Harici Kontrol Girişleri Harici Kontrol Çıkışları 7
Genel Amaçlı Kaydediciler Mikroişlemci içerisinde geçici olarak verilerin saklandığı saklayıcılardır. 8,16,32 ve 64 bit uzunlukta olabilirler. ALU (Aritmetik ve Lojik Birim) Aritmetiksel ve mantıksal işlemler bu birimde gerçekleştirilir. 8
Özel Amaçlı Saklayıcılar Çeşitli türleri bulunmaktadır. Program Counter & Instruction Pointer (PC&IP): Bellekte yürütülecek bir sonraki komutun konumunu işaret eder. Kontrol birimi tarafından otomatik olarak arttırılır. Memory Address Register (MAR): PC de bulunan adres MAR da tutulur. Dış hafıza ve I/O birimlerini adreslemede kullanılır. Memory Buffer Register (MBR): Bir hafıza veya giriş biriminden mikroişlemciye okunan veri, iç saklayıcılara MBR yoluyla getirilir (veya tersi). Status Register (SR&Flags&PSW): Mikroişlemcinin en son yapmış olduğu bir aritmetik veya lojik işlemin durumunu belirtir. Stack Pointer (SP): Hafızada yığın(stack) olarak isimlendirilen özel bir bölgeye işaret eder. 9
Teknoloji Bağımlı Birimler Daha önceleri mikroişlemci yapısı içerisinde yer almayan, fakat teknolojinin gelişmesiyle mikroişlemci performansını arttırmayı hedefleyen birimlerdir. (Örn. Floating Point Unit-FPU, Cache, Virtual Memory Yönetim Birimi vb...) 10
Dış Mimari Adres Yolu Kesmeler Veri Yolu Yol Kontrol Mikroişlemci Yol Hakemliği Yardımcı İşlemci Yol Durum Çeşitli Genel olarak mikroişlemci siyallerinin gruplandırılması 11
8085A (İç Mimari) 8085A nın iç mimarisi 12
Bütün yol kontrol (INTA hariç) ve durum sinyalleri, zamanlama ve kontrol birimi tarafından üretilir. Mikroişlemci kesme girişleri (TRAP, RST 7.5, RST 6.5, RST 5.5 ve INTR) ile gelen isteklere, kesme ihzmet alt programları ile cevap verir. INTA (Interrupt Acknowledge), INTR girişinden gelen bir kesme isteğine cevap verirken üretmiş olduğu kesme kabul sinyalidir. SID ve SOD seri 1 bitlik giriş/çıkış uçlarıdır (Serial Input/Outpur Data). 8 bitlik ACC, B, C, D, E, H, L genel amaçlı saklayıcılara sahiptir. Bu saklayıcılar, hafızayı adreslemede ve 16 bit veri oluşturmada (çiftler halinde-bc, DE, HL) kullanılabilirler. PC 16 bittir ve bellekte, yürütülecek bir sonraki komutun adresini barındırır. RESETIN lojik 0 olduğunda PC nin içeriği sıfırlanır. Donanım sıfırlaması ile ilk yürütlecek komutu 0000h adresinden başlar. 13
Dış Mimari a) 8085A nın fiziksel yapısı b) 8085A nın sinyallerinin gruplanması 14
Tümdevre +5 V besleme gerilimi ile çalışır. Yol durum sinyali olan IO / M ile belirlenen bir hafıza veya I/O birimi üzerinde, okuma veya yazma işlemini yaptığını RD veya WR sinyalleri ile dış lojiğe bildirir. Yol kontrol sinyali olan READY, mikroişlemciyi, yol çevriminde yavaşlatma gerekiyorsa kullanılır. Bu giriş normal çalışmada lojik 1 dir. X1 ve X2 girişlerine bir kristal bağlanır. İşlemci, bu kristalin üretmiş olduğu sinyali baz alarak kendi zamanlama siyallerini üretir. RESETIN sinyaline karşı, RESETOUT sinyali üretilir. Bu sinyal sistemde var ise programlanabilir I/O birimleri tarafından kendilerini sıfırlamada kullanılabilir. 16 bit Adres Yolu ve 8 bit Veri Yoluna sahiptir. 15
Adres Bilgisinin Üretilmesi Adres yolunun 8 bit yüksek değerli byte ı A 15 -A 8 tarafından doğrudan üretilir, fakat düşük değerli adres byte ı adres/veri yolunun ortak kullanımı sonucu elde edilir. Ortak kullanım şeklini ALE (Address Latch Enable) belirler (Lojik 1). A 15 -A 8 A 15 -A 8 D 7 -D 0 AD 7 -AD 0 A 7 -A 0 8085A C OE ALE 16
8085A tabanlı bir mikrobilgisayar sistemi 17
8085A daki komutlar 3 değişik şekilde olabilirler. Op-code Op-code Op-code Operand Operand Operand i) ii) iii) Tek bir komutun hafızadan alınıp yürütülmesi, bir komut çevrimini (intruction cycle) oluşturur. Bir komut çevrimi bir veya daha fazla makine çevriminden oluşur(machine cycle). 18
8085A deki makine çevrimleri: İşlem Kodu Okuma (Fetch) Hafıza Okuma (Memory Read-MEMR) Hafıza Yazma (Memory Write-MEMW) I/O Okuma (I/O Read-IOR) I/O Yazma (I/O Write-IOW) Kesme Kabul (Interrupt Acknowledge) Yol Boşta (Bus Idle) 8085A da işlemcinin hangi makina çevrimini gerçekleştirdiği belirlenir. Bunu belirlemek için IO / M,S 1,S 0 kullanılır. Bu sinyaller her makine çevriminin başında üretilir. 19
8085A Yol Durum ve Yol Kontrol Sinyalleri Yol Durum Yok Kontrol Makine Çevrimi IO / M S 1 S 0 RD WR INTA Fetch 0 1 1 0 1 1 MEMR 0 1 0 0 1 1 MEMW 0 0 1 1 0 1 IOR 1 1 0 0 1 1 IOW 1 0 1 1 0 1 Kesme Kabul 1 1 1 1 1 0 Yol Boşta 0 1 0 1 1 1 RST ve TAP Kabul 1 1 1 1 1 1 HLT 3-dur 0 0 3-dur 3-dur 1 20
STA ve LDA Komutlarının Yürütülmesi STA (Store Accumulator direct) komutu, ACC nin içeriğini, komutun içindeki 16-bit adresle belirtilen harici bir saklayıcıya yazar. LDA (Load Accumulator direct) komutu, 16-bit adresle belirtilen bir harici saklayıcının içeriğini ACC ye kopyalar. Bu iki komutun her biri 3 byte tır. Birinci byte işlem kodu ve diğerleri 16-bit adres oluşturacak 2-byte adrestir. Op-code Düşük Adres Yüksek Adres byte 1 byte 2 byte 3 STA veya LDA komutlarında n birisi 21
LDA ve STA Komutlarının CPU Zamanlaması 22
T1 T2 T w T3 T4 T5 - T6 8085A nın T- durumlarındaki işlemler Bir hafıza hücresi veya I/O adresi Adres yoluna yerleştirilir. ALE sinyali 1 yapılarak, AD 7 -AD 0 yolundaki adres bilgisi adres latch ına tutulur. Yol durum bilgisi IO / M,S1 ve S0 hatlarına konularak yürütülen makine çevriminin çeşidi bildirilir. Eğer makine çevrimi, bir işlem kodu okumanın bir parçası ise, PC bir arttırılır. Yol boşta haricindeki diğer bütün makine çevrimlerinde yol kontrol sinyallerinden biri ( RD, WR, INTA ) 1 den 0 a geçiş yapar. Eğer READY girişi, dış lojik tarafından 0 yapılmış ise, bu duruma girilir. Adres, veri ve kontrol sinyallerinin durumları, T2 nin sonundaki gibi kalır. Bir komut byte ı ve bir veri byte ı mikroişlemciye veya mikroişlemciden dışarıya transfer edilir. Komut saklayıcı (IR) içeriğinin kodu çözülür. Bu durumlar, bazı komutların yürütülmesinin tamamlanması için gereklidir. Not: 8085A da bütün işlem kodu getirme çevrimleri 4 ile 6T durumu arasındadır. Diğer bütün makine çevrimleri 3T durumu gerektirir. 23
IN ve OUT Komutlarının Yürütülmesi Mikroişlemcinin I/O ünitesi ile haberleşmesinde iki yöntem kullanılır. Bunlardan ilki bellek haritalı I/O (memory mapped I/O), diğeri yalıtılmış I/O (isolated I/O) dur. Örn: 6502 ve 6800 işlemciler bellek haritalı I/O 8085A ve Z80 işlemciler yalıtılmış I/O kullanırlar. ROM Kullanılmayan Alan I/O Bellek Haritalı I/O Kullanılmayan Alan RAM 24
IN (Input) komutu, işlem kodundan sonra gelen 8 bit adresle belirtilen bir harici saklayıcının içeriğini ACC ye okur. OUT (Output) komutu, işlem kodundan sonra gelen 8 bit adresle belirtilen bir harici saklayıcıya ACC nin içeriğini yazar. Her iki komutta 2 byte tır. Op-code byte 1 IN veya OUT byte 2 komutu Port Adresi Not: Port adresleri 8 bit ile belirlendikleri için 256 adet giriş ve 256 adet çıkış portu tanımlanabilir. 25
IN ve OUT Komutlarının CPU Zamanlaması 26
Örnek Adres Makine Kodu Assembly Kodu Açıklama (RTL) 0000 DB F0 IN F0h ; [ACC] [F0h] 0002 2F CMA ; [ACC] [ACC ] (Tersleme) 0003 32 00 10 STA 1000h ; [M(1000h)] [ACC] 0006 3A 00 10 LDA 1000h ; [ACC] [M(1000h)] 0009 D3 F1 OUT F1h ; [F1h] [ACC] 000B 76 HLT ; Dur HLT komutu ile mikroişlemci yol boşta çevrimine girer ve mikroişlemci çalışmasını durdurur. İşlemcinin bu durumdan çıkabilmesi RESETIN sinyali aktif edilmelidir. 29
IN F0h; komutunun zamanlaması 30
STA 1000h; komutunun zamanlaması 31