x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar



Benzer belgeler
x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

Bahar Dönemi. Öğr.Gör. Vedat MARTTİN

MİKROBİLGİSAYAR SİSTEMLERİ VE ASSEMBLER

MİKROBİLGİSAYAR SİSTEMLERİ VE ASSEMBLER

8086 nın Bacak Bağlantısı ve İşlevleri. 8086, 16-bit veri yoluna (data bus) 8088 ise 8- bit veri yoluna sahip16-bit mikroişlemcilerdir.

MİKROBİLGİSAYAR SİSTEMLERİ VE ASSEMBLER

DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ. İçerik

BM-311 Bilgisayar Mimarisi

Von Neumann Mimarisi. Mikroişlemciler ve Mikrobilgisayarlar 1

7. HAFTA KBP208 VE ASSEMBLER. Öğr.Gör. Kürşat M. KARAOĞLAN.

Komutların Yürütülmesi

BİLGİSAYAR MİMARİSİ. Bilgisayar Bileşenleri Ve Programların Yürütülmesi. Özer Çelik Matematik-Bilgisayar Bölümü

HAFTA 1 KALICI OLMAYAN HAFIZA RAM SRAM DRAM DDRAM KALICI HAFIZA ROM PROM EPROM EEPROM FLASH HARDDISK

BM-311 Bilgisayar Mimarisi

8086 dan core2 ya yazaç yapısını tanımak. Bayrak yazacının içeriğinde yer alan bayrakların görevlerini tanımlamak. Real mod çalışmada bellek

Mikroişlemcili Sistemler ve Laboratuvarı

MC6800. Veri yolu D3 A11. Adres yolu A7 A6 NMI HALT DBE +5V 1 2. adres onaltılık onluk bit 07FF kullanıcının program alanı

BM-311 Bilgisayar Mimarisi

Ders Özeti. Ders 2. PC nin İç Organizasyonu. Mikroişlemcinin Organizasyonu. Basitçe İşlemciyi Oluşturan Parçalar. Mikroişlemciler

MİKROBİLGİSAYAR SİSTEMLERİ. Teknik Bilimler Meslek Yüksekokulu

Adresleme Modları. Mikroişlemciler ve Mikrobilgisayarlar

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

Assembly Dili Nedir? Assembly dili biliyorum derken hangi işlemci ve hangi işletim sistemi için olduğunu da ifade etmek gerekir.

BM-311 Bilgisayar Mimarisi

Mikrobilgisayar Sistemleri ve Assembler

Quiz:8086 Mikroişlemcisi Mimarisi ve Emirleri

8051 Ailesi MCS51 ailesinin orijinal bir üyesidir ve bu ailenin çekirdeğini oluşturur çekirdeğinin temel özellikkleri aşağıda verilmiştir:

8051 Ailesi MCS51 ailesinin orijinal bir üyesidir ve bu ailenin çekirdeğini oluşturur çekirdeğinin temel özellikkleri aşağıda verilmiştir:

BÖLÜM Mikrodenetleyicisine Giriş

Mikrobilgisayar Mimarisi ve Programlama

Bellekler. Mikroişlemciler ve Mikrobilgisayarlar

CISC Complex Instruction Set Computers

Mikrobilgisayarlar. Mikroişlemciler ve. Mikrobilgisayarlar

D Duplex : Alıcı + Verici Çalışma Debouching : DMA : Direct Memory Access Data-Bus : Data Veri Yolu Data Flow : Veri Akışı Data Processing : Veri

Embedded(Gömülü)Sistem Nedir?

Mikroişlemcili Sistemler ve Laboratuvarı

İŞLEMCİLER (CPU) İşlemciler bir cihazdaki tüm girdilerin tabii tutulduğu ve çıkış bilgilerinin üretildiği bölümdür.

Dr. Feza BUZLUCA İstanbul Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü

16 bitlik işlemciler basit olarak 8 bitlik işlemciler gibi Kaydedici ALU Zamanlama/kontrol

Mikrobilgisayar Donanımı

Mikrobilgisayarlar ve Assembler. Bahar Dönemi. Vedat Marttin

İşletim Sistemlerine Giriş

BM-311 Bilgisayar Mimarisi

Mikroişlemcili Sistemler ve Laboratuvarı 6.Hafta

Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ. MİB Yapısı. MİB in İç Yapısı. MİB Altbirimleri. MİB in İç Yapısı

MTM 305 MĠKROĠġLEMCĠLER

Bilgisayar Donanım 2010 BİLGİSAYAR

EEM 306 Mikroişlemciler ve Lab. Doç.Dr. Mehmet SAĞBAŞ

8. MİKROİŞLEMCİ MİMARİSİ

Çalışma Açısından Bilgisayarlar

Program Kontrol Komutları. Mikroişlemciler ve Mikrobilgisayarlar 1

İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır.

9. MERKEZİ İŞLEM BİRİM MODÜLÜ TASARIMI

BM 375 Bilgisayar Organizasyonu Dersi Vize Sınavı Cevapları 10 Nisan 2009

Bilgisayar Mimarisi ve Organizasyonu Giriş

8086 Mikroişlemcisi Komut Seti

Mikroişlemciler ve Assembler Programlama. Teknoloji Fakültesi / Bilgisayar Mühendisliği Öğr.Gör. Günay TEMÜR

MİKROİŞLEMCİ MİMARİLERİ

Ders 3 ADRESLEME MODLARI ve TEMEL KOMUTLAR

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ MİKROİŞLEMCİLİ SİSTEM LABORATUVARI KESMELİ GİRİŞ/ÇIKIŞ

Bileenler arasndaki iletiim ise iletiim yollar ad verilen kanallar yardm ile gerçekleir: 1 Veri Yollar 2 Adres Yollar 3 Kontrol Yollar

Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ. MİB Yapısı. MİB Altbirimleri. Durum Kütüğü. Yardımcı Kütükler

Bahar Dönemi. Öğr.Gör. Vedat MARTTİN

Mimari Esaslar. Mikroişlemcinin mimari esasları; Kaydediciler Veriyolları İş hatları dır.

KOMUT TABLOSU İLE İLGİLİ AÇIKLAMALAR:

Mikroişlemci ve Yapısı. Mikroişlemciler ve Mikrobilgisayarlar

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

4. Giriş/Çıkış Organizasyonu (I/O Organization) ve Yol Erişimleri

(Ders notu) Yrd.Doç.Dr. Vedat TOPUZ

MİKROİŞLEMCİLER 1 Ders 1

MTM 305 MİKROİŞLEMCİLER

Şekil. 64 Kelimelik Yığıtın Blok Şeması

BÖLÜM 6 Seri Port Đşlemleri

BÖLÜM in Bellek Organizasyonu

BİLGİSAYAR MİMARİSİNDE YENİ YAKLAŞIMLAR DÖNEM PROJESİ

DERS 5 PIC 16F84 PROGRAMLAMA İÇERİK. PIC 16F84 bacak bağlantıları PIC 16F84 bellek yapısı Program belleği RAM bellek Değişken kullanımı Komutlar

MEB YÖK MESLEK YÜKSEKOKULLARI PROGRAM GELİŞTİRME PROJESİ. 1. Tipik bir mikrobilgisayar sistemin yapısı ve çalışması hakkında bilgi sahibi olabilme

MİKROİŞLEMCİLER. 2. Hafta. Mikroişlemci Temel Kavramlar

Bilgisayar Donanımı ve Yazılımı (Hardware & Software) Bilgisayar Mühendisliğine Giriş 1

İşletim Sistemleri (Operating Systems)

İşletim Sistemlerine Giriş

İŞLEMCİ DURUM KAYDEDİCİSİ (PROCESSOR STATUS REGISTER)

Bölüm 3: Adresleme Modları. Chapter 3: Addressing Modes

Giris {\} /\ Suhap SAHIN

Yrd.Doç.Dr. Celal Murat KANDEMİR

DERS 12 PIC 16F84 ile KESME (INTERRUPT) KULLANIMI İÇERİK

BİLGİSAYAR MİMARİSİ. << Bus Yapısı >> Özer Çelik Matematik-Bilgisayar Bölümü

DIGIAC 2000 Deney Seti PAT İŞLEMCİ KARTI :

Mikroişlemciler-IMikrodenetleyiciler. Alper Bayrak Abant İzzet Baysal Üniversitesi Bolu

İŞLEMCİ İşlemcilerin Temel Birimleri, İşlemcinin Çalışma Sistemi ve Komutlar, İşlemci ve Hafıza Arasındaki İlişki, İşlemci Teknolojileri, Modern

BİLGİSAYAR MİMARİSİ. Mimariye Giriş. Özer Çelik Matematik-Bilgisayar Bölümü

(Random-Access Memory)

Bilgisayar Yapısı MİKROİŞLEMCİ SİSTEMLERİ. Bilgisayar Temel Birimleri. MİB Yapısı. Kütükler. Kütükler

Mikroişlemcili Sistemler ve Laboratuvarı

TBİL-405 Mikroişlemci Sistemleri Bölüm 2 1- % %01010 işleminin sonucu hangisidir? % %11000 %10001 %10101 %00011

William Stallings Computer Organization and Architecture 9 th Edition

Bölüm 4 Veri Aktarma Komutları

William Stallings Computer Organization and Architecture 9 th Edition

PIC16F877A nın Genel Özellikleri

Giriş/Çıkış Arabirimi MİKROİŞLEMCİ SİSTEMLERİ. Arabirim Özellikleri. Giriş/Çıkış Adresleri. G/Ç Arabirimlerinin Bağlanması

Transkript:

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

Giriş Portu Burada kısmi kod çözümü yapılmaktadır. Dikkat edilirse F0h, F1h, F2h... FFh adresleri için bu port aktif olmaktadır. Bu durumda yol çekişmesi problemi doğacaktır. 27

Çıkış Portu Çıkıştaki bilgi ACC nin içeriğini tümleyen şeklinde gösterir. 28

Ö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

8086 & 8088 (İç Mimari) Execution Unit Bus Interface Unit 32

Yürütme Birimi (Execution Unit) EU, içindeki kontrol birimi, makine dilindeki komutları yorumlamakta ve komutları yürütmek için gerekli işlemleri kontrol etmektedir. EU, komut byte larını komut kuruğundaki sıraya göre teker teker ele almaktadır. Eğer hafızadan bir operanda ihtiyaç duyarsa veya sonucu hafızada saklamak isterse, istenilen işlemi BIU ya yönlendirir. EU, bir işlem kodu okuma veya saklama için, BIU tarafından fiziksel adresi hesaplamada gerekenleri sağlamaktadır. 33

Yol Arabirimi (Bus Interface Unit) BIU, hafıza ve I/O işlemleri dahil, bütün dış yol işlemlerini kontrol etmekten sorumludur. Harici adres yolu, hafıza hücresi seçmede veya I/O portunu seçmede kullanılır. BIU, komut byte larını okur ve onları EU için komut kuyruğuna yerleştirir. En fazla 4 (8088 de) veya 6 (8086 da) byte komut kodunu önceden okuyabilir. EU, bir veri okuma veya yazma işlemine ihtiyaç duymadığı veya program akışında bir dallanma olmadığı sürece, BIU komut bytelarını önden okuma için serbesttir. Yani, bu iki birim birbirine paralel çalışır. Böylece veri işlem hızı artar. 34

İşhatlı Mimari (Pipelined Architecture) i) 8085A nın yollarındaki işlem yoğunluğu ii) 8086/8088 in yollarındaki işlem yoğunluğu 35

Pipelining Tekniği 36

Saklayıcılar(Kaydediciler & Reg.) Kaydediciler, geçici veri saklama ortamlarıdır. Saklayıcılarda; Aritmatiksel ve mantıksal işlemlerde veriler buralarda tutulur. Veri veya komutların bulunduğu bellek bölgelerine işaret ederler. Kontrol bilgilerini üzerlerinde taşırlar (flags) 37

x86 Saklayıcıları 38

Genel Amaçlı Kaydediciler Accumulator(AH,AL,AX,EAX):Matematiksel hesaplamalarda kullanılan temel saklayıcıdır. Base (BH,BL,BX,EBX) : Hafıza bölgelerini işaret eder. Count (CL,CH,CX,ECX) : Döngülerde sayaç olarak kullanılır. Data (DL,DH,DX,EDX) : Hesaplamalarda verilerin tutulduğu saklayıcıdır. 39

Index Kaydedicileri Stack Pointer (SP,ESP): Yığın olarak isimlendirilen özel bir hafıza bölesini işaret eder. LIFO prensibine göre çalışır. Base Pointer (BP,EBP): Yine yığın bölgesinin adreslenmesinde kullanılır. Source Index (SI,ESI) ve Destination Index (DI) : Bu iki kaydedici sırasıyla kaynak-hedef kaydedicileridir. Dizilerin başlangıç adreslerini gösterirler. Dizi ve benzeri data türleri üzerinde işlem yaparken kullanılırlar. 40

Segment Kaydedicileri Segment saklayıcıları diğer saklayıcılarla beraber hafıza adresleri üretmede kullanılırlar. Code Segmet (CS): Komutların bulunduğu hafıza bölgesini gösterir. Bu saklayıcı program kodunun taban adresini belirler. Data Segment (DS): Verilerin bulunduğu hafıza bölgesini işaret eder. DS, bu bölgenin taban adresini belirtir. Stack Segment (SS) :Hafızadaki yığın bölgesini işaret eder. Extra Segment (ES,FS,GS) : Ek olarak kullanılan hafıza segmentleridir. 80386 ve sonraki işlemcilerde bulunur. 41

Özel Kaydediciler Intruction Pointer (IP): Bir sonra işlenecek olan komutun bellek adresine işaret eder. Flag Register (Flag): Her işlemden sonra bu kaydedicinin içeriği değişir. CPU dallanma işlemlerinde bu kaydedicideki lojik değerleri kullanarak karar verir. 42

Bayrak Kaydedicisi (Flag Reg.) Bayraklar, CPU nun çalışmasını belirlediği gibi, çalışması sırasındaki durumları da yansıtır. 8086-80286 mikroişlemcilerinde bayrak saklayıcısı 16 bit olup, 80386 Pentium serisi işlemcilerde 32 bittir (Extended Flags). 43

15 0 O D I T S Z A P C C(Carry) : Toplamadan sonraki eldeyi (Carry) ve çıkarmadan sonraki ödüncü (borrow) belirtmek için kullanılır. P (Parity) : Tek eşlik lojik 0 ; çift eşlik lojik 1 ile ifade edilir. A (Auxiliary Carry) : Yapılan aritmetiksel işlem sonucunda, 3. ve 4. bitler arasında olan carry ve borrow durumunu belirtmek için kullanılır. Z (Zero) : Aritmetik veya lojik işlemin sonucunun 0 olduğunu belirtir. S (Sign) : Toplama veya çıkarma işleminden sonra sonucun aritmetik işaretini belirtir. 44

15 0 O D I T S Z A P C T (Trap): Bu bayrak 1 ise, tüm devre hata takip (debugging) durumuna girer. I (Interrupt) : INTR girişini kontrol eder. I=1 ise INTR aktif durumdadır. I=0 ise INTR pasif durumdadır. Bu durumda iken gelen kesmelere cevap verilmez. D (Direction) : String işlemleri yapılırken, DI ve SI saklayıcılarının arttırılması veya azaltılmasını düzenler. D=1 azaltılır, D=0 ise arttırılır. O (Overflow) : İşaretli sayıların toplanıp çıkarılmasından sonra taşma olup olmadığını bildirir. 45

8086 & 8088 (Dış Mimari) 46

Her iki işlemcide de MN/MX ucuyla belirtilen iki farklı çalışma modu bulunur. Her iki modda farklı kontrol sinyalleri yürütülür sağlar. İki işlemci arasındaki fark ise, veri yolu uzunluk uzunluklarında görülmektedir. (8088 8 bit ; 8086 16 bit) 8088 de IO/M sinyaline karşılık, 8086 da IO/M sinyali bulunmaktadır. 34 nolu uç 8088 de SS0 iken, 8086 da BHE/S7 dir. 47

8088 sinyallerinin max modda gruplandırılması 8088 sinyallerinin min modda gruplandırılması 48

A 19 /S 6, A 18 /S 5, A 17 /S 4, A 16 /S 3 sinyallerinden S 6 durum biti lojik 0 da kalır. S 5 biti IF (Interrupt Flag) bayrağının durumunu belirtir. S 4 ve S 3 bir yol çevriminde hangi segmente erişileceğini gösterir. S 4 S 3 Erişilen segment 0 0 ES 0 1 SS 1 0 CS 1 1 DS Ready girişi, işlemcinin zamanlamasına bekleme durumları (wait states) eklemek için kullanılır. Bekleme durumları Ready girişi lojik 0 ise devreye girer. INTR girişi donanım kesmesi için kullanılır. INTR girişi lojik 1 yapılırsa x86 işlemcisi bir dış donanım kesmesi alır ve INTA ile bu isteğe yanıt verir. NMI (Nonmaskable Interrupt) olup INTR gibi işlev görür. Aralarındaki fark NMI her durumda Cpu nun bu interrupta IF (Interrupt Flag) dan bağımsız olarak cevap verebilmesidir. 49

TEST girişi, WAIT komutu tarafından test edilen bir giriştir. TEST lojik 0 ise, WAIT komutu NOP (No operation) gibi davranır. Değilse lojik 0 olmasını bekler. RESET girişi en az 4 saat peryodu lojik 1 seviyesinde tutulduğunda mikroişlemci kendisini sıfırlar ve işlemci FFFF0h adresindeki komuttan itibaren çalışmaya başlar. BHE/S 7 (Bus High Enable) 8086 işlemcisinde, bir okuma veya yazma çevriminde, veri yolunun üst 8 bitinin (D 15 -D 8 ) aktif olduğunu dış lojiğe bildirir. CLK (Clock) CPU ya zamanlama için sinyal sağlar. VCC ve GND +5V besleme ve şase gerilimleri 50

Min Modda Etkin Sinyaller 8088 ve 8086 da max. modda çalışabilmek için MN/ MX ucu lojik 1 olmalıdır. IO/M (8088) ve IO/M (8086): CPU nun bir I/O cihazı veya bellek üzerinde işlem yaptığını belirtir. WR(Write): Lojik 0 olduğunda CPU nun bir hafıza veya I/O cihazına veri yazdığını belirtir. INTA(Interrupt Acknowledge): INTR girişine CPU nun cevap sinyalidir. ALE(Address Latch Enable): Lojik 1 olduğunda CPU nun adres/veri yolunda bir adres bilgisinin olduğunu belirtir. DT/ R (Data Transmit/Receive): Lojik 1 olduğunda CPU dan dışarıya veri yolladığını, lojik 0 durumunda ise dışarıdan veri okunduğunu belirtir. 51

Min Modda Etkin Sinyaller (Devam) DEN (Data Bus Enable) : Harici veri yol bufferlarını aktif etmede kullanılır. HOLD : DMA (Direct Memory Access) için istek hattıdır. Lojik 1 olma durumunda, CPU çalışmasını durdurur ve adres/veri/kontrol yollarını yüksek empedans durumuna getirir. Lojik 0 durumunda CPU normal çalışmasına devam eder. HOLDA (Hold Acknowledge): HOLD sinyaliyle, bu duruma girildiğini belirtir. SS0 (Status 0) : IO/M ve DT/R sinyalleri ile birlikte yol durum sinyallerini oluştururlar. 52

Min Modda Yol Durumları 8088 için IO/M DT/R SS0 Yol Durumu 0 0 0 Kesme Tasdik 0 0 1 Hafıza Okuma 0 1 0 Hafıza Yazma 0 1 1 Durma (Halt) 1 0 0 Kod Erişim 1 0 1 I/O Okuma 1 1 0 I/O Yazma 1 1 1 Pasif 53

Max Modda Etkin Sinyaller 8088 ve 8086 da max. modda çalışabilmek için MN/ MX ucu lojik 0 olmalıdır. S2, S1 ve S0 (Status bits): O anki yol durumunu belirtirler. Bu sinyallerin anlamları bir kod çözücü tarafından çözülür. 8088 için S2 S1 S0 Yol Durumu 0 0 0 Kesme Tasdik 0 0 1 I/O Okuma 0 1 0 I/O Yazma 0 1 1 Durma (Halt) 1 0 0 Kod Erişim 1 0 1 Hafıza Okuma 1 1 0 Hafıza Yazma 1 1 1 Pasif 54

Max Modda Etkin Sinyaller (Devam) LOCK (Kilit): bir çıkış sinyali olarak sitemdeki istenen çevre birimlerini kilitlemek amacıyla kullanılır. QS1 e QS2 (Queue Status): BIU daki dahili komut kuyruğunun durumunu belirtir. S2 S1 Kuyruk Durumu 0 0 Bir işlem yok (Kuyruk Boşta) 0 1 İlk byte bir op-code 1 0 Kuyruk boş 1 1 Bir sonraki byte bir op-code 55

Yol Bufferlaması Yol bufferlaması ile, mikroişlemcinin yol sürme kapasitesi arttırılmakta ve mikroişlemciyi dış ortamdan gelebilecek etkilerden korumuş oluruz (dış ortamdan fazla akım çekilmek istenmesi veya kararsız durumların oluşması vb.) 56

Yol Bufferlaması(Devam) 8088 Yol Arabirimi 57

8086 Yol Arabirimi 58

Tam olarak bufferlanmış 8088 Yol Arabirimi 59

Tam olarak bufferlanmış 8086 Yol Arabirimi 60

8088/8086 Bellek Yapısı Lojik Hafıza, genellikle yazılım tarafından programcıya görülen hafızaya verilen isimdir. Bu hafıza, donanım tasarımcısı tarafından görülen, gerçek hafıza yapısını oluşturan fiziksel hafızadan farklı olabilir. 8 bit FFFFFh 1 MB 00000h 8086/8088 lojik hafıza haritası 61

FFFFFh FFFFEh 512 Kb 512 Kb 00003h 00001h 00002h 00000h Yüksek Hafıza Düşük Hafıza 16 bit 8086 fiziksel (donanım) hafıza haritası 62

Segmentli Hafıza Yapısı 8086 ve 8088 mikroişlemcisinde hafızaya erişim segment saklayıcıları yoluyla yapılır. Her bir segment hafıza bloğunun genişliği 64KB dir. 63

Hafıza Adreslerinin Üretilmesi Her segment saklayıcısı, 20 bit adresin 16 bit kısmını tutar. Tutulan bu 16 bitlik adresin düşük değerli bölümüne 0h (0000 2 ) eklenir. Ayrıca bir ofset(indis) bu adresle toplanrak 20-bit adres elde edilir. Böylece lojik adres, fiziksel adrese çevrilmiş olur. Segment saklayıcısının değerine 0h eklenir. FFFFF 16-bit register 0000 Addr1 + 0FFFF + 16-bit register Offset Addr1 Offset Segment (64K) 20-bit memory address Segment address 00000 Intel 80x86 hafıza adresi üretimi 1M bellek alanı 64

Segment adresleri segment registerlerinde (CS,DS,ES,SS); ofset adresleri ise pointer registerlerden birisinde tutulur. Örn: CS IP + Instruction address 3 4 8 A 0 4 2 1 4 3 8 A B 4 SS SP + Stack address 5 0 0 0 0 F F E 0 5 F F E 0 DS 1 2 3 4 0 DI + 0 0 2 2 Data address 1 2 3 6 2 8088/8086 tarafından yürütülecek bir sonraki komutun adresi, CS:IP ikilisi yardımıyla edle edilir. 8088/8086 tarafından hafızadaki verinin adresi, DS: DI (veya SI,BX) ikilisi yardımıyla edle edilir. 65

Segmentli Hafıza Yapısının Avantajları X86 programları, hafızanın herhangi bir yerine yüklenip çalıştırılabilir. Segment saklayıcılarının içeriği değiştirilerek (taban adreslerinin değiştirilmesiyle) programlar hafızanın herhangi bir yerinde çalışabilirler. Örn: 8085A da, program ve verilerin başlangıç adresleri belirlendikten sonra kod üretimi yapılmaktadır. Program ve verileri başka bir adrese yükleyebilmek için tekrar derleme yapılır ve kod üretilmesi gerekir. 66

80286, 80386 ve 80486 Mikroişlemcisi 67

80286 (16 bit) Bu mikroişlemcinin 8086 ve 8088 göre 3 temel üstünlüğü bulunmaktadır. Bunlar: Gerçek mod (real mode) ile korumalı moda(protected mode) sahip olmasıdır. Ayrıca donanım hafıza yönetim (memory manegement) sistemi sayesinde, hafızda birden çok programın güvenli bir şekilde çalışması mümkün hale gelmiştir. Fiziksel hafıza 1 MB tan 16 MB a (2 24 ) genişletilmiştir. Daha yüksek saat hızlarında çalışabilirler. 68

İç Mimarisi 69

Yol Birimi (Bus Unit): CPU için, gerektikçe işlem kodu ve veri okuma/ saklama gibi bütün yol işlemlerini yerine getirir. CPU, eğer yapacak başka bir işlemi yoksa, 6 byte a kadar komutları önceden okur ve bunları komut birimine gönderir. Komut Birimi (Instruction Unit) : Yol birimi tarafından okunmuş ham verileri alır ve sonraki yürütme için kodunu çözer. Kodu çözülmüş komutların CPU içinde hazır olarak bulunması CPU yürütme zamanını arttırır. Yürütme Birimi (Execution Unit) : Komut biriminde gelen komutların icra edilmesini sağlar. Adres Birimi (Address Unit) : Bütün adresleme ve görüntü hafıza (virtual memory) işlemlerini yerine getirir. 70

Dış Mimari Minimum / maximum mod ayrımı 80286 da yoktur. 24 bit adres, 16 bit veri hattına sahiptir. 71

Programlama Modeli 80286, donanım sıfırlamasından sonra gerçek adres modu (real mode) olarak adlandırılan bir çalışma moduna girer. 72

Makine durum kelimesi saklayıcısı (MSWR) de bulunan PE (Protected Mode Enable) biti 1 lendiği zaman, işlemci korumalı mod (protected mode) olarak adlandırılan çalışma moduna girer. Bu modda, 80286 nın uzatılmış bellek adresleyebilmesi ve bazı koruma mekanizmalarını gerçekleştirebilmesi mümkün olur. Korumalı modun detayları ilerleyen haftalarda incelenecektir. 73

80386 (32 bit) Bu mikroişlemcinin 80286 ya göre 3 temel üstünlüğü bulunmaktadır. Bunlar: İşlemcinin iç saklayıcıları ve aritmetik birimleri 32 bit genişliğindedir. Mikroişlemciden ana hafızaya giden, adres ve veri yolu 32 bite genişletilmiştir. Böylece veriler ve veriler 2 kat daha hızlı okunup yazılabilir. 4 Gb a kadar fiziksel hafızayı adresleyebilir. (2 32 ) Korumalı modda olan sayfalama özelliğini destekler. 74

75

Hafıza erişimleri, 32 bit kelimeler ile yapılıp hafıza adresleri, 4 byte sınırlarına göre ayarlanmalıdır. Böylece CPU, 0,4,8 gibi adreslerle bulunan kelimelere erişebilmektedir. Bu yüzden hafıza adresleri 4 ve 4 ün katları şeklindedir. Ayrıca A0 ve A1 her zaman 0 dır. 8086 ve 80286 da mikroişlemcide BHE(Bus High Enable) sinyalinin yerine 80386 da da benzer 4 sinyal bulunmaktadır. (BE3-BE0) (Byte Enable). Bu sinyallerden her biri, bir kelime içindeki 4 byte tan hangisinin kullanılacağını belirler. 80386 da 3 tane yeni kontrol sinyali eklenmiştir. Bunlar; ADS (Address Status), BS16 (Bus Size 16) ve NA (Next Address) sinyalleridir. 76

Programlama Modeli 77

Temel 16 bit x86 saklayıcılarına FS ve GS ilave edilmiştir. Ayrıca temel 16 bit x86 saklayıcılarının uzunlukları 32 bite uzatılmıştır. (Segment saklayıcıları bunun dışındadır.) 80286 da bulunan MSW kaldırılmış olup bu saklayıcının yerine 4 adet kontrol saklayıcısı (CR0-CR3) eklenmiştir. CR0 sayfalama özelliğini aktif yapmada kullanılır. Sayfalama özelliği aktif yapıldığında sayfa dizininin taban adresini CR3 kaydedicisi gösterir. Bütün bu yapılardan ayrı olarak hata ayıklama saklayıcısına (debug register) sahiptir. 78

80386 işlemcisinin korumalı moddaki davranışları korumalı mod başlığı altında incelenecektir. 79

80486 Diğer x86 işlemcileri gibi, 8086/8088/80286 ve 80386 programlarını hiçbir değişiklik olmadan çalıştırabilir. 80386 işlemcisinden farklılıkları genel olarak şunlarıdır: Tümdevre üzerinde FPU aritmetik yardımcı işlemcisi bulunmaktadır. Tümdevre üzerinde 8Kb ön hafıza(cache) yer alır. Hafıza okuma ve yazmada, parity kontrolü için kullanılabilen, eşlik sinyalleri bulunur. Burst (patlama) olarak adlandırılan hızlı okuma/yazma çevrimleri 5 aşamalı komut işhattı (intruction pipeline) 80

81

Aritmetik İşlemci (80486) Daha önceki x86 CPU larında, aritmetik yardımcı işlemci ayrı bir tümdevre iken, 80486 ile beraber aritmetik işlemci CPU içerisinde yer almaya başlamıştır. 8086 ve 8088, 8087 aritmetik yardımcı işlemcisini; 80286, 80287 aritmetik yardımcı işlemcisini; 80386, 80387 aritmetik yardımcı işlemcisini; 80486, 80387 aritmetik yardımcı işlemcisini kullanmaktadır. 82

Ön Hafıza (80486) 80386 da ön hafıza işlemci dışında bulunurken 80486 ile beraber ön hafıza işlemci içerisine alınmıştır. Böylece gecikme süreleri azaltılmıştır. Bunun yanısıra 80486 tabanlı sistemlerde, iç ön hafızanın yanı sıra tüm devre dışında 128Kb ve 256Kb olan ikinci bir ön hafıza bulunur(l2). 83

Veri Eşlik Bitleri (80486) 4 tane olan tümdevre eşlik ucu (DP0-DP3), iki yönlüdür ve her biri veri yolundaki 1 byte lık veri için kullanılmaktadır. Hafızaya veri yazarken ve okurken mikroişlemci çift eşlik biti kullanır. 84

Hızlı Yol Çevrimi (80486) 85

Tablodan görüleceği gibi, CPU hızı arttıkça, hafızaya erişmek için gerekli zaman azalmaktadır. Bu durum, ya hızlı ve pahalı hafıza kullanmaya veya hafıza çevrimine bekleme durumu eklemeye zorlamaktadır. 80486 ile gelen burst yöntemi yardımıyla 5 saat içinde 4 hafıza çevrimi yapılmaktadır. Bu çalışma durumunda, ilk çevrim normal 2-saatli hafıza çevrimidir. Daha sonraki 3 çevrim her biri bir saat ile yapılır. Bu işlerm 2-1-1-1 olarak gösterilir. 86

Beş Aşamalı İş Hattı I) Komut ön okuma (PreFetch-PF) II) Kod çözümü 1 (Decode D1) III) Kod çözümü 2 (Decode D2) IV) Yürütme (Execute-EX) V) Saklayıcıya geir yazma (Register Write Back-WB) 80486 da var olan çok sayıdaki adresleme modundan dolayı, hafıza okuma işlemlerinde 2 aşamalı kod çözümü (D1 ve D2) gerçekleştirilmektedir. 87