BM-311 Bilgisayar Mimarisi



Benzer belgeler
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-311 Bilgisayar Mimarisi

Komutların Yürütülmesi

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

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

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

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

BM-311 Bilgisayar Mimarisi

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

BM-311 Bilgisayar Mimarisi

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

İşletim Sistemleri (Operating Systems)

Bölüm Bazı Temel Konseptler

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

MTM 305 MĠKROĠġLEMCĠLER

Bilgisayar Mimarisi ve Organizasyonu Giriş

CISC Complex Instruction Set Computers

Mikroişlemcili Sistemler ve Laboratuvarı 6.Hafta

BM-311 Bilgisayar Mimarisi

İşletim Sistemlerine Giriş

Mikroçita. Mikroçita Rapor 2:

Mikrobilgisayar Mimarisi ve Programlama

BM-311 Bilgisayar Mimarisi

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

BM-311 Bilgisayar Mimarisi

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

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

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

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

MİKROİŞLEMCİLER 1 Ders 1

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

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

Von Neumann Mimarisi. Mikroişlemciler ve Mikrobilgisayarlar 1

BM-311 Bilgisayar Mimarisi

Adresleme Modları. Mikroişlemciler ve Mikrobilgisayarlar

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ı

Program Kontrol Komutları. Mikroişlemciler ve Mikrobilgisayarlar 1

Quiz:8086 Mikroişlemcisi Mimarisi ve Emirleri

İ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Ş

2. İş Hattı (Pipeline)

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

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

İşlemci Tasarımı ve Aşamaları

İşletim Sistemlerine Giriş

BİLGİSAYAR MİMARİSİ. Halil Özmen

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

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

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

William Stallings Computer Organization and Architecture 9 th Edition

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.

2 İş Hattı (Pipeline)

YZM 3102 İşletim Sistemleri

PC is updated PS güncellenir

Ders 3 ADRESLEME MODLARI ve TEMEL KOMUTLAR

ÖZET. Lojiksel ve Hiziksel Hafıza. x86 byte düzeni nın Fiziksel Hafıza Yapısı. Ders 3. Temeller

Komut Seti Mimarisi (ISA)

ASENKRON (Eş Zamanlı Olmayan) HABERLEŞME ARA YÜZEYİ

2 İş Hattı (Pipeline)

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

Giris {\} /\ Suhap SAHIN

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

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

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

DOĞU AKDENİZ ÜNİVERSİTESİ BAHAR BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BLGM-324 BİLGİSAYAR MİMARİSİ

SelCPU. Version Temmuz Proje Ekibi. Selçuk BAŞAK Bilgisayar Bilimleri Mühendisi (YTÜ 1998)

Bilgisayar Donanımı. Computer Organization Ders 1 - Giriş Kadir Atilla TOKER

Mikrobilgisayar Sistemleri ve Assembler

William Stallings Computer Organization and Architecture 9 th Edition

Aritmetiksel Komutlar

Ozet. Review pointers (in C) Memory Addressing

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

Görüntü Bellek. Ana Bellek. Fiziksel Adres. Belek Uzayı. Bellek hiyerarşisi. Hız Maliyet (+) Ana Bellek. Boyut (+) DISK. Görüntü Adres.

Sequential (SEQ, Ardışıl) Y86 İşlemci Uygulaması (Devamı)

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

BİLGİSAYAR MİMARİLERİ

Konu : DELTA PLC LINK

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

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

Spatial locality nin getirdigi avantaji kullanmak

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN

Mikroişlemcili Sistemler ve Laboratuvarı

BÖLÜM in Bellek Organizasyonu

İşlemci Tasarımı ve Aşamaları

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

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

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

Bilgisayar İşletim Sistemleri BLG 312

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ MİKROİŞLEMCİLİ SİSTEM LABORATUVARI OLAYLARI ZAMANLAMA

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

Bölüm 4 Veri Aktarma Komutları

BQ Modbus Analog Giriş Kartı 6 Kanal 4 20mA. Kullanım Kılavuzu. Doküman Versiyon: BQTEK

Yrd. Doç. Dr. Caner ÖZCAN

MIPS assembler language de branching

Komut Seti Mimarisi (ISA)

Mikroişlemcili Sistemler ve Laboratuvarı

Transkript:

1 BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Processor organization Register organization Instruction cycle

2 Processor organization İşlemci tarafından yapılan işler fetch instruction, interpret instruction, fetch data, process data ve write data. CPU bu işlemleri yapabilmek için internal memory ye ve internal bus a ihtiyaç duyar. İşlemleri gerçekleştirebilmek için ALU ve kontrol birimine ihtiyaç duyar. Processor organization Internal CPU bus birimler arasındaki iletişimi sağlar. CPU nun iç yapısı bilgisayarın yapısına benzer şekildedir.

3 Konular Processor organization Register organization Instruction cycle Register organization User-visible register lar: Programcı tarafından kullanılan register lardır. Control ve status register ları: Kontrol birimi ve işletim sistemi tarafından kullanılan register lardır. User-visible register lar General purpose: Programcı tarafında farklı komutlarda farklı işler için kullanılabilir. Data register ları: Sadece data saklamak için kullanılırlar. Adres register ları: Özellikle adresleme modlarında kullanılırlar. Segment register ları, Index register ları ve Stack pointer adres register larıdır. Condition codes: Flag olarak programın ve/veya işlemcinin durumunu saklar. (carry, overflow, sign,...)

4 Register organization Control ve status register ları Program counter: Fetch edilecek komutun adresini saklar. Instruction register: En son fetch edilen komutu saklar. Memory address register: Hafızada bir yerin adresini saklar. Memory buffer register: Hafızaya yazılacak datayı veya hafızadan son okunan datayı saklar. Bir çok işlemci program status word (PSW) olarak durum bitlerini saklar. Sign, zero, carry, equal, overflow, interrupt disable/enable, supervisor Supervisor mod: Bu mod ile erişilen hafıza alanlarına erişmek veya bazı komutları çalıştırmak için kullanılır. Kullanıcı programları tarafından değil işletim sistemi tarafından kullanılır. Örnek Register organization

5 Konular Processor organization Register organization Instruction cycle Instruction cycle Instruction cycle basit olarak fetch, execute ve interrupt aşamalarıyla gösterilebilir. Indirect cycle Indirect mode adreslemeyle komut dögüsü aşağıdaki gibi olur.

6 Instruction cycle Indirect adreslemeyi içeren instruction cycle aşağıdaki gibi gösterilebilir. Data flow Instruction cycle Instruction fetch aşamasında aşağıdaki işlemler gerçekleşir: PC sonraki komutun adresini tutar Adres değeri MAR a aktarılır Adres adres bus a yerleştirilir Kontrol birimi memory read işareti üretir Sonuç data bus a yerleştirilir, MBR a kopyalanır, sonra IR a aktarılır PC değeri 1 artırılır

7 Instruction cycle Data flow Indirect cycle aşamasında aşağıdaki işlemler gerçekleşir: MBR nin sağdaki N biti MAR a aktarılır Kontrol birimi memory read işareti üretir Sonuç data bus a yerleştirilir ve MBR a kopyalanır Data flow Instruction cycle Interrupt cycle aşamasında aşağıdaki işlemler gerçekleşir: PC değeri MBR register aracılığıyla saklanır MAR a özel bir adres değeri yüklenir (stack pointer veya ISR adresi) MBR hafızaya kopyalanır PC a ISR adresi aktarılır Sonraki instruction fetch edilir

8 Konular Processor organization Register organization Instruction cycle bir üretim hattının çalışmasına benzer. Bir üretim hattında farklı işler eş zamanlı yapılır. Fetch aşamasında hafızaya erişilir ancak execute aşamasında genellikle hafızaya erişilmez. Execute aşamasında sonraki komutun fetch edilmesi (prefetch) performansı artırır. Fetch aşaması execute aşamasında çok kısa sürer. Birden fazla komut prefetch yapılabilir. Branch ve jump komutlarında gerekli olmayan komut prefetch yapılabilir.

9 İki aşamalı instruction pipelining aşağıdaki gibidir. Branch işlemlerinde fetch aşaması, adres bilgisini execute aşamasından alır. Daha çok aşama oluşturulursa performans artar. İki aşamalı instruction pipelining altı aşamayla ifade edilebilir. Fetch instruction (FI): Sonraki komut alınır Decode instruction (DI): Komut decode edilir Calculate operands (CO): Giriş operandlarının adresleri hesaplanır Fetch operands (FO): Giriş operandları alınır Execute instruction (EI): Komutun gerektirdiği işlem yapılır Write operand (WO): Sonuç operand varsa saklanır Bazı aşamalar her komutta kullanılmaz (FO, WO)

10 Pipeline ile çalışma aşağıdaki gibidir. Instruction 3 ile instruction 15 e atlama yapılıyor (branch taken).

11 Instruction pipeline akış şeması Zamana göre pipeline gösterimi I3 ile I15 e atlama yapılıyor

12 Pipeline ile performans artışı aşağıdaki gibi ifade edilir. τ = max [τ i ] + d = τ m + d i burada, τ i = i. aşamadaki gecikme 1 i k τ m = tüm aşamalardaki gecikmelerden maksimum olan k = pipeline daki aşama sayısı d = datanın aşamalar arasındaki aktarımı için geçen süre τ m >> d olduğu için d ihmal edilir. T k,n,n satır programın k aşamalı pipeline ile çalışma süresidir ve T k,n = [k + (n - 1)].τ şeklinde gösterilir. Performans artışı ise S k = T 1,n / T k,n = n.k.τ / [k + (n - 1)].τ = n.k / [k + (n - 1)] n giderken performans artışı k olur. Pipeline ile performans artışı yandaki şekillerde görülmektedir.

13 Branch komutlarında atlanacak yerin önceden bilinememesi performansı düşürür. Gereksiz alınan komutların pipeline dan atılması gerekir. Atlama komutu çalışmadan sonraki komutun hangisi olacağı bilinemez. Şartlı atlama işlemlerinde sonraki komutun tahminine yönelik aşağıdaki yaklaşımlar kullanılmaktadır: Multiple streams Prefetch branch target Loop buffer Delayed branch Branch prediction Multiple streams Pipeline iki yöndeki komutları da fetch eder. Birden fazla atlama komutu pipeline a girerse her atlama komutu için bir stream gerekir. Prefetch branch target Şartlı atlama komutu geldiğinde sonraki komut ve hedef komut birlikte prefetch edilir. Target saklanır ve branch taken olursa kullanılır.

14 Loop buffer En son çalıştırılan döngüye ait n adet fetch edilen komutu saklar. Komutlar sıralı saklanır ve hafıza erişimi olmadan alınır. Atlama aralığı az olursa veya döngü kısa olursa sürekli buffer üzerinde çalışılır. Delayed branch Komutlar yeniden düzenlenir ve bir atlama komutu, olması gereken zamandan sonra çalışır. Bağımsız bir veya birkaç komut, atlama komutu ile ardındaki komutlar arasına alınır. Branch prediction Bir atlama komutunun taken olup olmayacağı tahmin edilir. Predict never taken, predict always taken, predict by opcode, taken/not taken switch ve branch history table teknikleri kullanılır. İlk üç yöntem statiktir ve programın çalışmasına bağlı değildir. Son iki teknik dinamiktir ve programın çalışması sırasında karar verilir.

15 Branch prediction predict never taken Atlamaların hiçbir zaman taken olmayacağı varsayılır. Yapılan deneysel çalışmalarda %50 den fazla atlamanın taken olduğu görülmüştür. Branch prediction predict always taken Atlamaların her zaman taken olacağı varsayılır. Never taken tekniğine göre daha başarılı sonuç alınır. Branch prediction predict by opcode Atlamalar opcode larına göre taken ve not taken şeklinde gruplandırılır. Başarı oranı %75 den büyüktür. Branch prediction taken / not taken switch Önceki çalışma durumuna bağlıdır. Bir veya birden fazla bit ile her komutun önceki durumu saklanır. Bir bitle saklandığı zaman her döngünün başında ve sonunda hata yapılır. Bir bitle taken ve not taken arasında her hatalı atlamada sürekli switch yapılır. İki bitle iki hata üstüste yapıldığında switch yapılır. Ardarda gelen döngülerin başındaki hatalarda ortadan kaldırılır.

16 Branch prediction taken / not taken switch İki bitle yapılan taken ve not taken arasındaki switch aşağıdaki gibidir. Branch prediction branch history table E- Execute aşaması IPFAR Instruction Prefix Address Register

17 Branch prediction branch history table Branch history table pipeline ın fetch aşamasıyla ilişkilendirilmiş küçük bir önbellektir. Branch miss durumunda yeni bir giriş kaydedilir veya varsa durumu güncellenir. Target addres genellikle hedef komutun adresi olur veya hedef komutun kendisi olabilir. Execute aşaması, sonucu branch history table devresine iletir. Sonuç yanlışsa doğru komuta redirect yapılır. Her yeni atlama komutunda IPFAR tablo da arama yapar. Taken olmazsa next sequential adres girişi alınır. Taken olursa tablodan okunan değer alınır. Execute aşamasından gelen sonuçtan farklı tahmin yapılmışsa tabloda update işlemi yapılarak doğru komuta redirect yapılır.