BM-311 Bilgisayar Mimarisi

Benzer belgeler
BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi

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

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi

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

BLM1011 Bilgisayar Bilimlerine Giriş I

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

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

8086 Mikroişlemcisi Komut Seti

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

Komutların Yürütülmesi

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

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

Quiz:8086 Mikroişlemcisi Mimarisi ve Emirleri

W SAYAC SAYAC SAYAC. SAYAC= ise, d=0 W

Ders 3 ADRESLEME MODLARI ve TEMEL KOMUTLAR

Lecture 7. Assembler language nedir? Language in 3 seviyesi. Language 3 seviyesi. Nicin onu ogreniriz?

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

Von Neumann Mimarisi. Mikroişlemciler ve Mikrobilgisayarlar 1

Nesne Yönelimli Programlama

C++ Programming: Program Design Including Data Structures, Third Edition. Bölüm 1: Bilgisayarlar ve Programlama Dillerine Kısa Bakış

İşletim Sistemlerine Giriş

Bilgisayarların Gelişimi

K uark projesi. Temel Özellikler :

Mikrobilgisayar Mimarisi ve Programlama

Mikroişlemcili Sistemler ve Laboratuvarı 8.Hafta

BİL-142 Bilgisayar Programlama II

mikroc Dili ile Mikrodenetleyici Programlama Ders Notları

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

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

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

SAYI SİSTEMLERİ. 1. Sayı Sistemleri. Sayı Sistemlerinde Rakamlar

Algoritmalar ve Programlama. DERS - 2 Yrd. Doç. Dr. Ahmet SERBES

Bölüm 5: ARITMETIK VE MANTIK IŞLEM YAPAN KOMUTLAR

MIPS assembler language de branching

İşletim Sistemleri (Operating Systems)

Yrd.Doç.Dr. Celal Murat KANDEMİR. Kodlama (Coding) : Bir nesneler kümesinin bir dizgi (bit dizisi) kümesi ile temsil edilmesidir.

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

SAYISAL ELEKTRONİK. Ege Ü. Ege MYO Mekatronik Programı

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ı

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

3.3. İki Tabanlı Sayı Sisteminde Dört İşlem

CISC Complex Instruction Set Computers

2. SAYI SİSTEMLERİ VE KODLAR

Giris {\} /\ Suhap SAHIN

8086 Mikroişlemcisi Komut Seti

Linux Assembly Programlamaya Giriş

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-2 Değişken Kavramı ve Temel Operatörler

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

Mikrobilgisayar Mimarisi ve Programlama

Mikroçita. Mikroçita Rapor 2:

Mikrobilgisayar Sistemleri ve Assembler

Sayı sistemleri iki ana gruba ayrılır. 1. Sabit Noktalı Sayı Sistemleri. 2. Kayan Noktalı Sayı Sistemleri 2. SAYI SĐSTEMLERĐ VE KODLAR

Bilgisayar Mimarisi ve Organizasyonu Giriş

3. Bölüm Algoritmalar

Adresleme Modları. Mikroişlemciler ve Mikrobilgisayarlar

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

YZM 3102 İşletim Sistemleri

Cache-Hızlı Hafıza Birimi. Bilgisayar Sistemi Bilgisayarların Anakart Organizasyonu

DONANIM. 1-Sitem birimi (kasa ) ve iç donanım bileşenleri 2-Çevre birimleri ve tanımlamaları 3-Giriş ve çıkış donanım birimleri

Program Kontrol Komutları. Mikroişlemciler ve Mikrobilgisayarlar 1

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan

Yazılım Mühendisliğine Giriş 4. Hafta 2016 GÜZ

PIC16F877A nın Genel Özellikleri

Komut Seti Mimarisi (ISA)

Bilgisayar Mühendisliğine Giriş

Assembly Language Programming

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

80x86 MICROPROCESSOR Instructions

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

Hem lw hem de sw komutlarının ofseti 16-bitlik işaretli tamsayıdır.

Komut Seti Mimarisi (ISA)

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

MTM 305 MİKROİŞLEMCİLER

GÜZ YY. - MKT103 - GÖRSEL PROGRAMLAMA DERSİ - ARA SINAVI

Bölüm 7 Gelişmiş Fonksiyon Komutları

Arithmetic ve Logical Operations

ALGORİTMA VE PROGRAMLAMA II

C Dersi Bölüm 1. Bilgisayar Donanımı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN

2. Sayı Sistemleri. En küçük bellek birimi sadece 0 ve 1 değerlerini alabilen ikili sayı sisteminde bir basamağa denk gelen Bit tir.

Bölüm 8: Ana Bellek. Operating System Concepts with Java 8 th Edition

Bölüm 7. İfadeler ve atamalar ISBN

SAYI VE KODLAMA SİSTEMLERİ. Teknoloji Fakültesi/Bilgisayar Mühendisliği

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

Yazılım Mühendisliğine Giriş 2018 GÜZ

Yrd. Doç. Dr. Caner ÖZCAN

BİLGİSAYAR MİMARİSİ. Komut Seti Mimarisi. Özer Çelik Matematik-Bilgisayar Bölümü

C-Serisi PLC İleri Seviye Eğitim

b) Aritmetik İşlem Komutları

C++ Dersi: Nesne Tabanlı Programlama

5.2 Komut Biçimleri Komut Setleri İçin Tasarım Kararları

BİL 361 BİLGİSAYAR MİMARİSİ VE ORGANİZASYONU Güz Dönemi ÖDEV 1

BİLGİSAYAR SİSTEMLERİ

Transkript:

1 BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Operand türleri Assembly dili

2 İşlemcinin yapacağı iş makine komutlarıyla belirlenir. İşlemcinin tüm komutlarına komut kümesi (instruction set) denir. Makine komutunun bileşenleri Operation code: kısaca opcode olarak adlandırılır ve gerçekleştirilecek işlemi belirler. Source operand(s): Gerçekleştirilecek işlem için girişleri belirler. Result operand(s): İşlem sonucu oluşan sonucu gösterir. Next instruction: Şimdiki instruction dan sonra hangi instruction a geçileceğini belirler. Source ve result operand lar aşağıdakilerden birisi olabilir: Memory: hafızada bir adres referans gösterilebilir. CPU register: CPU içindeki register lar referans gösterilebilir. I/O device: Bir I/O cihazı referans olarak gösterilebilir.

3 Komut gösterimi Bir komut farklı alanlardan oluşur. ADD R, Y Bir çok komut kümesi birden fazla farklı formata sahiptir. Kısaltmalar kullanılarak opcode ların ifade edilmesi mnemonics olarak adlandırılır. ADD Add SUB Subtract MPY Multiply DIV Divide LOAD Load data from memory STOR Store data to memory Komut türleri Data processing: Aritmetik ve mantık komutlar Data storage: Hafıza işlemleri Data movement: I/O komutları Kontrol: Test ve atlama komutları

4 Adres sayısı Aritmetik ve mantık komutlar daha çok adrese ihtiyaç duyar. 0, 1, 2 ve 3 operandlı komutlar kullanılabilir. Farklı operand sayıları için işlemler görülmektedir. Adres sayısı Sembolik gösterim İşlem 3 OP A, B, C A B OP C 2 OP A, B A A OP B 1 OP A AC AC OP A 0 OP T (T - 1) OP T Adres sayısı - devam Aritmetik ve mantık komutlar daha çok adrese ihtiyaç duyar. 0, 1, 2 ve 3 operandlı komutlar kullanılabilir. Y = (A - B) / (C + (D x E)) işlemi 3, 2, 1 ve 0 operandla gerçekleştirilebilir. 3 operand Komut Açıklama SUB Y, A, B Y A B MPY T, D, E T D x E ADD T, T, C T T + C DIV Y, Y, T Y Y / T

5 Adres sayısı - devam Y = (A - B) / (C + (D x E)) 2 operand Komut Açıklama MOVE Y, A Y A SUB Y, B Y Y - B MOVE T, D T D MPY T, E T T x E ADD T, C T T + C DIV Y, T Y Y / T Adres sayısı - devam Y = (A - B) / (C + (D x E)) 1 operand Komut Açıklama LOAD D AC D MPY E AC AC x E ADD C AC AC + C STOR Y Y AC LOAD A AC A SUB B AC AC - B DIV Y AC AC / Y STOR Y Y AC

6 Y = (A - B) / (C + (D x E)) 0 operand Komut Açıklama PUSH A T A PUSH B T B, (T - 1) A SUB (T) (T - 1) T PUSH D T D PUSH E T E MPY (T) (T - 1) * T PUSH C T C ADD (T) (T - 1) + T DIV (T) (T - 1) / T POP Y Y T Adres sayısı - değerlendirme Adres arttıkça Daha karmaşık (güçlü) komutlar. Operandlar register adresleme yapıyorsa daha çok register Programlarda daha az sayıda komut Adres azaldıkça Daha basit komutlar Programlarda daha çok sayıda komut Komutların daha hızlı fetch / execution yapılması

7 Komut kümesi tasarımı Operation repertoire: Kaç tane ve hangi işlemlerin yapılacağını belirler. Data types: Komutların işlem yapacağı veri türlerini belirler. Instruction format: Komut boyutu (bit), adres sayısı, field boyutunu belirler. Registers: Komutların kullanacağı CPU register larını belirler. Addressing: Komutlardaki operand ların adresleme modlarını belirler. Konular Operand türleri Assembly dili

8 Operand türleri Temel operand türleri aşağıdaki gibidir: Adresler: Adresleme modlarıyla operand adresleri belirlenir. Sayılar: Integer veya fixed point, floating point, decimal olabilir. Karakterler: ASCII (American Standart Code for Information Interchange) (Her karakter 7-bit, 128 karakter, 8.bit parity bit), EBCDIC (Extended Binary Coded Decimal Interchange Code) (8-bit kod kullanır) Mantıksal data: Data 1-bit 0 veya 1 lerle ifade edilir. Konular Operand türleri Assembly dili

9 Temel işlem türleri aşağıdaki gibidir: Data transfer: Veri aktarım komutları kullanılır (Load, Store). Arithmetic: Aritmetik mantık komutlar kullanılır (Add, Sub). Logical: Mantıksal işlem komutları kullanılır (And, Or, ). Conversion: Formatlar arasında dönüştürme yapan komutlar kullanılır (Translate, Convert, ) Input / Output: Giriş/çıkış cihazlarıyla veri alışverişi yapan komutlar kullanılır (Input, Output, ). System control: İşletim sistemi fonksiyonları kullanılır (multiprogramming system, control register, ). Transfer of control: Şartlı ve şartsız atlama komutları kullanılır (Jump, Branch, ).

10

11 Data transfer Data transfer komutları kaynak ve hedef operandları belirler. Aktarılacak verinin boyutu belirlenir. Operandların adresleme modları belirlenir. Kaynak ve operandlar register ise CPU register lar arasında veri aktarımı yapar. Eğer 1 veya 2 operand hafızada ise adresleme moduna göre adres hesaplanır. Hesaplanan adres değerine göre cache belleğe önce bakılır, yoksa hafızadan alınır.

12 Arithmetic Çoğu makine temel aritmetik işlemleri sağlar (add, subtract, multiply, divide). Diğer aritmetik işlemler ise aşağıdakiler olabilir: Absolute: Operand ın mutlak değeri alınır. Negate: Operand ın işareti terslenir. Increment: Operand a 1 eklenir. Decrement: Operand dan 1 çıkartılır. Logical Boolean işlemlerine göre operanlara mantıksal işlemler (OR, AND, XOR, NOT) uygulanır. Aşağıdaki AND ve XOR işlemler verilmiştir. (R1) = 10100101 (R2) = 00001111 (R1) AND (R2) = 00000101 (R1) = 10100101 (R2) = 11111111 (R1) XOR (R2) = 01011010

13 Logical - devam Logical - devam Bitwise logical işlemlerin yanında bir çok makinede shift ve rotate işlemleride yapılabilir.

14 Conversion Bir formattan diğer formata dönüştürme işlemi yapılır. Aşağıdaki komut R1 formatından R2 formatına L adet dönüştürme yapar. TR R1, R2, L R1 adresinden başlar L tane adresin içeriğini R2 adresindeki tablodaki değerle değiştirir. Input / Output I/O cihazlarından veri almak veya I/O cihazlarına veri yazmak için kullanılan komutlardır. Okunan veri hafızaya veya register a yazılabilir. System Control İşletim sistemi tarafından kullanılan komutlardır. Multiprogramming veya control register larına erişim yapılabilir. (x86 için CR0, CR1,, AMD için Extended Feature Enable Register (EFER)) Yapılan işlemler, global olarak memory cache aktif/pasif, global olarak write-back/write-through aktif/pasif,

15 Transfer of Control Programlar çalışırken her zaman komutlar sıralı çalışmazlar. Programların çalışma akışını değiştiren komutlardır. Bir çok makinede branch, skip ve procedure call komutları bulunmaktadır. Branch komutları, şartlı (conditional) veya şartsız (unconditional) atlama yapar. Son yapılan aritmetik işlemin (add, sub, div,..) sonucuna göre aşağıdaki örneklerdeki atlamalar yapılabilir: BRP X ; Sonuç pozitifse X adresine atla BRN X ; Sonuç negatifse X adresine atla BRZ X ; Sonuç sıfırsa X adresine atla BRO X ; Overflow oluşmuşsa X adresine atla BRE R1, R2, X ; R1 = R2 ise X adresine atla Transfer of Control - branch

16 Transfer of Control - skip Skip komutları PC değerini 1 artırır ve sonraki komut yerine ondan sonraki komutu çalıştırır. 301... 309 ISZ R1 310 BR 301 311 ISZ (Increment and skip if zero), sonraki komutu atlar. R1 negatif bir değerden başlar 0 olana kadar artırılır. R1 = 0 olduğunda BR 301 komutu atlanır ve 311 adresine geçilir. Böylece döngüden çıkılmış olur. Transfer of Control - procedure call Prosedürler programlarda modülerlik sağlar.

17 Transfer of Control - procedure call Prosedür çağırmalarda dönüş adresiyle birlikte parametrelerinde gönderilip alınması gerekir. Register, start of procedure ve top of stack yöntemleri kullanılır. Register RN PC + Δ PC X Burda Δ komut uzunluğuna eşittir. RN dönüş adresinin saklandığı register, X ise atlanacak adrestir. İçiçe çağırmalarda tek register ile sorun oluşur daha fazla register gereklidir. Transfer of Control - procedure call Start of procedure X PC + Δ PC X + 1 Burda Δ komut uzunluğuna eşittir. X procedure başlangıç adresi, X + 1 ise atlanacak adrestir. Recursive çağırmalarda sorun oluşur.

18 Transfer of Control - procedure call Top of stack Hafızada oluşturulan bir alanda stack yapısı oluşturulur. İçiçe ve recursive çağırmalarda sorun olmaz. Stack içerisinde her çağırma için bir frame oluşturularak parametrelerde aktarılabilir. Konular Operand türleri Assembly dili

19 Assembly dili CPU makine komutlarını anlar ve çalıştırır. Makine komutları binary ifade edilir. Makine komutlarıyla program yazmak ve hata kontrolü çok zordur. Binary sayılar yerine hexadecimal sayılar kullanılabilir. Hexadecimal sayılarda program yazmak yine zordur. Hexadecimal komutlar yerine kısaltılmış ve daha kolay anlaşılabilen sembolik ifadeler (mnemonics) kullanılabilir (Sembolik programlama). Sembolik programlamada program hafızaya tekrar yüklendiğinde tüm adreslerin update edilmesi gerekir. Assembly programlama, adresleri etiketlerle göstererek programın tekrar yüklenmesinde veya güncelleştirilmesinde kolaylık sağlamıştır. Assembly dili