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



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

İşletim Sistemlerine Giriş

İşletim Sistemlerine Giriş

Bilgisayar Mimarisi ve Organizasyonu Giriş

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

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi

Bilgisayar Donanım 2010 BİLGİSAYAR

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

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ı

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

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

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

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

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

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

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

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi

Sanal Makineler ve Linux Konteynerlerin Performans Karşılaştırması

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

Mikrobilgisayar Sistemleri ve Assembler

Von Neumann Mimarisi. Mikroişlemciler ve Mikrobilgisayarlar 1

BM-311 Bilgisayar Mimarisi

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

BM-311 Bilgisayar Mimarisi

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

Komutların Yürütülmesi

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

Windows Eski Sürümleri Bellek Yapısı

MİKROİŞLEMCİLER. Mikroişlemcilerin Tarihsel Gelişimi

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

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

Quiz:8086 Mikroişlemcisi Mimarisi ve Emirleri

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

Bilgisayar Mimarisi Nedir?

BİLGİSAYAR MİMARİLERİ

BM-311 Bilgisayar Mimarisi

Spatial locality nin getirdigi avantaji kullanmak

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

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi

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

BM-311 Bilgisayar Mimarisi

CISC Complex Instruction Set Computers

BM-311 Bilgisayar Mimarisi

William Stallings Computer Organization and Architecture 9 th Edition

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

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

MİKROİŞLEMCİLER 1 Ders 1

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

BİL 423 Bilgisayar Mimarisi 1. Ara Sınavı

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

William Stallings Computer Organization and Architecture 9 th Edition

Bilgisayar Programcılığı

Sunucu Bilgisayarlarda Kullanılan CISC ve RISC İşlemcilerin Performans Karşılaştırımı

Bilgisayara Giriş. Bilgisayarlar ilk geliştirilmeye başlandıklarından bugüne kadar geçen süre içerisinde oldukça değişmişlerdir.

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

T E M E L K AV R A M L A R. Öğr.Gör. Günay TEMÜR / Teknoloji F. / Bilgisayar Müh.

Bölüm 8: Ana Bellek 8.1

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

İşletim Sistemleri (Operating Systems)

SPARC v8 İŞLEMCİ SİMÜLASYONU

Beşinci Kuşak İşlemciler

Şekil -1 PowerPC 620 Mikroişlemci Diyagramı

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

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

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

İŞLEMCİNİN TARİHÇESİ

ncü Bilgi İşleyen Makine Olarak Beyin Beyin 2005 Albert Long Hall, Boğazi

Sistem Programlama. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir.

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

Adresleme Yöntemleri MİKROİŞLEMCİ SİSTEMLERİ. İşlenenin Yeri. Örnek MİB Buyruk Yapısı. İvedi Adresleme. Adresleme Yöntemleri. Bellek. Kütükler.

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

(ReduceD INSTRUCTION SET COMPUTER-RISC)

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

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

BM-311 Bilgisayar Mimarisi

Anakart ve Bileşenleri CPU, bellek ve diğer bileşenlerinin bir baskı devre (pcb) üzerine yerleştirildiği platforma Anakart adı

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

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

Bölüm 8: Ana Bellek. Operating System Concepts 9 th Edition. Mehmet Demirci tarafından çevrilmiştir.

Ham Veri. İşlenmiş Veri Kullanıcı. Kullanıcı. Giriş İşleme Çıkış. Yazılı Çizili Saklama. Doç.Dr. Yaşar SARI-ESOGÜ-Turizm Fakültesi

08225 AĞ TEMELLERĠ. Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU. 20 EKi Salı, Çarşamba

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

1. İŞLEMCİLER. İlk İşlemci

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

Optik Sürücüler CD/CD-ROM DVD HD-DVD/BLU-RAY DİSK Disket Monitör LCD LED Projeksiyon Klavye Mouse Mikrofon Tarayıcı

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

(Random-Access Memory)

Öğr. Gör. Özkan CANAY

Elbistan Meslek Yüksek Okulu Güz Yarıyılı

Bitirme Ödevi Sunumu PLATFORM BAĞIMSIZ BENZETİM PROGRAMI. Danışman : Yrd.Doç.Dr. D Feza BUZLUCA Gökhan Akın ŞEKER

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

KASIRGA 4. GELİŞME RAPORU

Mikroişlemcili Sistemler ve Laboratuvarı 8.Hafta

Bilgisayarların Gelişimi

BELLEK YÖNETY. Bellek Yönetimi

8086 Mikroişlemcisi Komut Seti

Mikroçita. Mikroçita Rapor 2:

Transkript:

BİLGİSAYAR MİMARİSİNDE YENİ YAKLAŞIMLAR DÖNEM PROJESİ P6 MİMARİSİ MUSTAFA ÇAYIR 704062001

İÇİNDEKİLER 1. Intel İşlemcilerinin Tarihi Gelişimi... 3 2. X86 Komut Kümesi... 5 2.1. X86 Yazmaçları... 5 2.2. X86 Adresleme Kipleri:... 5 2.3. X86 Komut Tipleri:... 6 2.4. Komut Yapısı... 7 3. P6 Mimarisi... 8 3.1. Dinamik Yürütme... 8 3.2. P6 İş hattı Ana Birimleri... 8 3.3. İş Hattı Yapısı... 9 3.3.1. Komut Alma Katı... 9 3.3.1.1. Komut Alma: Dallanma Tahmini... 10 3.3.1.2. BTB (Dallanme Hedef Tamponu)... 10 3.3.1.3. Statik Tahmin... 11 3.3.2. Kod Çözme Katı... 11 3.3.3. Dağıtım Katmanı... 11 3.3.4. Yürütme Katmanı... 12 3.3.5. Sonlandırma Katmanı... 12 4. P6 Bellek Mimarisi... 13 4.1. Adres Alt Bileşenleri... 14 4.2. P6 Bellek Okuma İşlemi... 14 5. Performans Analizi... 15 5.1. Dallanma Tahmin Performansı... 15 5.2. Çözme Katında Bekleme... 15 5.3. Tekrar Hızı... 15

1. Intel İşlemcilerinin Tarihi Gelişimi 1970 Öncesi Intel ilk mikroişlemciyi geliştirdi. Basit bir accumulator yapısındadır. Mikroişlemci 4004 (1971) Özellikleri: 4 bit işlemcili 2000 transistor 0.06 Mhz saat hızı Hesap makinesi için geliştirildi. Mikroişlemci 8008 (1972) 8 bit mikroişlemci 0.8 Mhz saat hızı 8008 çalışmaları 4004 den önce başlamıştır. 1970 sonlarında 1974 yılında Intel 8080 mikroişlemcisini çıkardı. İlk bilgisayarda kullanıldı. 8 bit mikroişlemci Altair bilgisayarında kullanıldı. 1978 yılında Intel 16 bit makineleri çıkardı. 8080 nin 16 bit versiyonu olan 8086 çıktı. 8086 ile 8080 komut seti uyumlu değildir. Intel komut uyumlu işlemciler çıkarmaya odaklandı 8086 ailesi Ekstra yazmaçlar eklenmiştir Yazmaçlar için adanmış fonksiyonlar vardır. 8 MHz saat hızı 8088 ilk IBM PC de kullanılmıştır. 8088 işlemcisi 8086 ile aynı olup sadece 8 bit bus yapısına sahiptir. Kayan Noktalı Sayı Desteği (1980) Intel 8087 kayan noktalı yazılı coprocessor 8086 üzerine 60 FP operasyon eklenmiştir. 8087 yazmaçlar vs yığın yapısını beraber kullanır 80286 (1982) 24 bit adresleme özelliğine sahiptir. Bellek izdüşüm (Bellek Mapping) Segment adresleme gibi daha gelişmiş adresleme kipleri vardır.

Bu sayaede çok daha geniş adres uzayının adresleyebilmektedir. Bellek koruma fonksiyonlarına sahiptir. İşlemcinin bellek erişimlerine bir takım sınırlamalar getirilebilmektedir. Bu yapı işletim sistemlerinin kullanıcı uzayı ile yönetici uzayı gibi farklı yetkilerde adres uzaylarına sahip olmasını sağlar. 134 000 transistor 12.5 Mhz 80386 (1985) 80286 yapısı 32 bit çıkartılmıştır. 32 bit yazmaç 32 bit adres uzayı Sayfalamalı adresleme desteği eklenmiştir. Eklenen yeni komutlar ile genel amaçlı yazmaç machine yapısındadır. 275 000 transistor 16 MHz 486 dan P6 lara kadar olan mikroişlemciler performans artışı hedef alınarak geliştirilmiştir. 80486 (1989) Pentium (1992) P6 (1995) Bir takım yeni komutlarda eklenmiştir. Bu eklenen yeni komutlar Multiprocessing Conditional move instruction Komut Seti Ekstraları MMX (1997) SIMD desteği SSE, Pentium III (1999) 8 yeni 128-bit yazmaç Kayan noktalı sayı desteği (Single precision) 4 adet 32-bit FP operasyon paralel gerçekleştirebiliyor. SEE2, Pentium 4 (2001) Kayan noktalı sayı desteği (Double precision) 2 adet 64-bit FP operasyon paralel gerçekleştirebiliyor MMX ve SEE komutların tümü 64-bit datalarda çalışabilir

2. X86 Komut Kümesi 2.1. X86 Yazmaçları Intel firması yaptığı çalışmalarda komut kümesi uyumlu işlemciler çıkarmayı hedeflemiştir. 16 bit işlemciler gelişip de 32 bit işlemcilerini çıkarınca eski 16 bitlik yazmaçlarını genişleterek 32 bit yapmış bu sayede komut kümesi ve yazmaç mimarisi çok fazla değişmemiştir. 2.2. X86 Adresleme Kipleri: X86 akla gelebilecek tüm adresleme kiplerine sahiptir. Sadece yazmaçlar üzerinde değil direkt bellek uzayını da adresleyebilir. x86 adresleme kiplerin kaynak ve hedef şunlar olabilir: Yazmaç -> Yazmaç Yazmaç -> Bellek Bellek -> Yazmaç Bellek -> Bellek

2.3. X86 Komut Tipleri: P6, CISC tabanlı bir işlemcidir. X86 komut kümesinde de bir çok karmaşık komut setleri vardır. CISC işlemcisine ait bir komut 1-2 saat çevriminde tamamlanacağı gibi bir çok komutun birleşimi olup çok daha uzun saat çevrimi sürebilir. X86 komut setindeki CISC komutlardan basıları aşağıdaki tabloda verilmiştir: X86 komut setine ait komutlar 5 ana grupta toplanabilir. Bunlar: Koşullu ve koşulsuz dallanma komutları Data transfer komutları Aritmetik ve mantıksal işlem komutları Veriler yazmaç da veya bellekte olabilir String komutları Kayan noktalı yazılı komutlar Ayrı bir işlemci olan x87 tarafından yürütülür Yığın üzerinde çalışır

2.4. Komut Yapısı X86 komut yapısı karmaşık bir yapıya sahiptir. Komutların uzunlukları sabit değildir. Bu nedenle işlemcinin komut çözme katının tasarımı da gelişmiş bir yapıya sahiptir.

3. P6 Mimarisi İşlemcilerin hızı zamanla 10 kat artmasına rağmen bellek erişim hızları bu oranda artış gösterememiştir. Komutların geliş sırasına göre alan ve bu sırada lineer bir şekilde yürütün geleneksel bir işlemci için ön tampon bellek ıskalarında kaynaklanan bekleme durumlarının sıkça oluşması kaçınılmazdır. Intel, P6 işlemcilerinin mimarisini bellek gecikmeleri azaltacak ve bağımsız işlemleri eş zamanlı yürütülmesine olanak sağlayarak toplam yürütme süresini azaltacak şekilde geliştirmiştir. Komutlar alınarak geniş pencereler şekilde alınarak işlemcinin 20-30 komut ileriyi görebilmesi hedeflenmiştir. Ayrı iş hattı mimarisinin bu komut penceresi verimli kullanabilmesi için komut havuzu (Instruction Pool) geliştirilmiştir. Yürütme katmanının yerini dispatch/execute katmanı almıştır.bu sayede komutlar farklı sırada başlasa da, aynı sırada sonlandırılırlar. 3.1. Dinamik Yürütme Program akışını analiz ederek en iyi sırayı seçer. Bu seçilen sırada komutları önceden yürütmeye başlar.p6 dinamik olarak yapacağı işleri düzenleyerek toplamda en iyi yürütme süresini elde etmeye çalışır. İşlemcilerinin performansının artırılmasındaki en temel problemi anlamak için aşağıdaki sanal kod parçasına göz atalım: r1 <= mem[r0] // komut 1 r2 <= r1 + r2 // komut 2 r3 <= r5 + 1 // komut 3 r6 <= r6 r3 // komut 4 İlk komut r1 doldurulması ön bellek ıskasına neden olur.geleneksel CPU lar bu durumda BUS ara yüz biriminin işlemini tamamlaması bekler. Bu arada işlemci durur. Aslında 3. ve 4. komutlar 1. komuttan bağımsız oldukları için yürütülebilirlerdi. P6 komut havuzundaki sıradaki komutları ele almaya devam ederek bellek gecikmesinin çözüm üretir. Örnekte 2. komut bağımlı ancak, 3 ve 4 yürütülebilir. P6 20-30 komut ileriye kadar yürütebilir. 3.2. P6 İş hattı Ana Birimleri 3 bağımsız birim, Komut havuzu haberleşirler

Komut Alma/Çözme Katı: Sıralı işlem yapar. Komut alma katından komut stream ini girdi olarak alır ve bunları çözerek uops oluşturur. Komut alma işlemi speculative dir. Dağıtma/Yürütme Katı: Sırasız işlem yapar. Kaynak durumuna ve komutlar arası bağımlılığa göre uops yürütülme iş sırasını ayarlar. Speculative sonuçları tutar Sonlandırma birimi: Sıralı işlem yapar. Speculative sonuçların nasıl ve ne zaman kalıcı işlemci durumuna aktarılacağı belirler. (RETIRE, GRADUATION) BUS ara yüz birimi: Diğer birimlerin dış dünya ile olan bağlantısıdır. Direkt olarak L2 bellek ile haberleşebilir. 3.3. İş Hattı Yapısı 14 katmanlı iş hattı 8 katman: sıralı komutlarda komut alma (fetch), çözme (decode), dağıtma(disptach) 3 katman: sırasız komutların yürütülmesi 3 katman: instruction commit 3.3.1. Komut Alma Katı Komut ön belleğinden okuma yapar Okunan data Komut uzunluk çözme katına gönderilir Bu katmanda komutun başı ve sonu işatelenir ve 2 yere gönderilir BTB: IFU3

3.3.1.1. Komut Alma: Dallanma Tahmini 512 elemanlı Dallanma Hedef Tamponu (Branch-Target Buffer) 2 seviyeli adaptif yapı BTB de ıska olursa statik tahmin yapılır Geriye doğru olan komutlar alınır 3.3.1.2. BTB (Dallanme Hedef Tamponu) 512 girdisi kaydedilir 2 seviyeli adaptive mimari Statik dallanma tahmini Daha önce ele alınmış olan dallanmaları ele alır.

3.3.1.3. Statik Tahmin 3.3.2. Kod Çözme Katı Saat başına 3 IA-32 komutu çözülebilir. Komutlar çözüler micro-operation kümeleri elde edilir. Saat başına 6 uops 3.3.3. Dağıtım Katmanı 20 Rezervasyon istasyonundan birine dağıtır. ROB daki 40 yerden birine dağıtır Yazmaçların isimlerini 40 sanal yazmaç ile değiştirir. ROB ve Rezervasyon istasyonları dolu ise işlemi durdurur.

3.3.4. Yürütme Katmanı 5 ayrı fonksiyonel birim vardır Integer, FP, branch unit, bellek address unit,bellek access unit 1 den 32 saat çevrimine kadar sürebilir. 3.3.5. Sonlandırma Katmanı Komutlar farklı sırada başlasada aynı sırada bitmesini sağlar. Komutlar sırası ile ROB da commit edilir.

4. P6 Bellek Mimarisi DRAM Bellek bus L2 cache cache bus bus interface unit inst TLB instruction fetch unit L1 i-cache data TLB L1 d-cache 32 bit adres uzayı 4 KB page size L1, L2, and TLBs 4-way set associative inst TLB 32 entries 8 sets data TLB 64 entries 16 sets L1 i-cache and d-cache 16 KB 32 B line size 128 sets L2 cache unified 128 KB -- 2 MB

4.1. Adres Alt Bileşenleri Sanal Adresin (VA) Bileşenleri TLBI: TLB index TLBT: TLB tag VPO: virtual page offset VPN: virtual page number Fiziksel Adresin (PA) Bileşenleri PPO: physical page offset PPN: physical page number CO: byte offset within cache line CI: cache index CT: cache tag 4.2. P6 Bellek Okuma İşlemi CPU 32 result L2 and DRAM 20 12 VPN VPO 16 4 TLBT TLBI virtual address (VA) L1 hit L1 miss TLB miss... TLB hit L1 (128 sets, 4 lines/set)... 10 10 VPN1 VPN2 TLB (16 sets, 4 entries/set) 20 12 PPN PPO 20 7 5 CT CI CO PDE PTE physical address (PA) PDBR Page tables

5. Performans Analizi 5.1. Dallanma Tahmin Performansı Statik dallanma tahmini eğer doğru ise Geri yönde tahmin 1 saat gecikme İleri yönde gecikme yok Tahmin hatalı ise Kesin gecikme 10-15 saat çevrimi Speculation masrafından kaynaklanan ekstra gecikme İptal edilen operasyonlara göre gecikme cezası değişir. 5.2. Çözme Katında Bekleme Saat başına 3 komutu almaya çalışır ancak aşağıdaki nedenler den karşılanamaz ise: Komut tamponu ıska verir Komut mümkün olandan fazla sayıda uops gerektirirse Dağıtım katmanı belleklerinde yer olmaz ise 5.3. Tekrar Hızı Instruction name Iş hattı stages Repeat rate Integer ALU 1 1 Integer load 3 1 Integer multiply 4 1 FP add 3 1 FP multiply 5 2 FP divide 32 32 Tekrar Hızı (Repeat Rate): Yeni bir operasyonu yürütmesi için fonksiyon biriminin beklemesi gereken saat çevrimi sayısı