Marmara Ünv. Bilgisayar Mühendisliği Bölümü

Slides:



Advertisements
Benzer bir sunumlar
KAFA Open-Source/Open-Implementation, 32-bit CPU
Advertisements

ARM Tabanlı Mikrodenetleyici Temelleri ve Programlama
BİLGİSAYAR, DONANIM VE YAZILIM KAVRAMLARI
Gömülü Sistemler İçin Kullanıcı Ara Yüzü Tasarımı
SelCPU Temmuz 2008 Bilg.Bil.Müh.Selçuk BAŞAK SelSistem Bilgi ve İletişim Teknolojileri
CPU Tasarım – 2 Single – Cycle CPU Veriyolu Tasarımı
CPU Tasarım – 3 Single – Cycle CPU Controller Tasarımı
Numbers of Opcodes Nihal Güngör.
Bölüm 1: Introductions (Tanıtım,Tanım)
MİMARİ ESASLAR Bir bilgisayarın komut kümesi, programcının makineyi programlarken kullanabileceği ilkel emirleri veya makine komutlarının tamamının oluşturduğu.
ARM11 Mimarisi.
CPU (Merkezi İşlem Ünitesi)
BÖLÜM 2: BİLGİSAYAR SİSTEM YAPILARI
CEIT 101 Teorik Vasfi Tuğun - Konu 2 -.
BİSA CPU   Proje Danışmanı Yrd.Doç.Dr.Aydoğan Savran   Proje Ekibi Arş.Gör.Özkan Akın.
Agah Burak DEMİRKAN Ahmet ÇOBAN Ahmet SÖNMEZ Uğurhan KUTBAY
BUYRUK İşlem kodu İşlemci yazacı veri
Intel Pentium II Mikroişlemcisi
PIC 16F84 ile ALT PROGRAMLARIN ve ÇEVRİM TABLOLARININ KULLANIMI
İŞLETİM SİSTEMLERİ Ders İçeriği
DERS 12 PIC 16F84 ile KESME (INTERRUPT) KULLANIMI
Register ve Türleri Nihal GÜNGÖR.
Intel P6 Architecture Mustafa Çayır.
Temel Bilgisayar Yapısı ve Devreleri
Yıldız Teknik Üniversitesi
Bilgisayar Organizasyonu
Mikroişlemciler ve Assembler Programlama
Mikroişlemciler ve Mikrobilgisayarlar
DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ
DERS 5 PIC 16F84 PROGRAMLAMA.
Cemil ŞAHİN Bilişim Teknolojileri Öğretmeni
Dersin Kapsamı Bilgisayar Nedir, Ne Yapar?
İŞLEMCİ MİMARİLERİ – Derya Işık
Temel Bilgisayar Yapısı ve Devreleri
İşletim Sistemleri Operation Systems Fon müziği.
Bilgisayar Sistemlerine Giriş
CEIT 101 Teorik Emrah Soykan - Konu 6 -. Kapasitelerine ve Büyüklüklerine Göre Bilgisayar Türleri Makro Bilgisayarlar ( Mainframe - Ana Bilgisayar ) Mini.
BİL 322 Programlanabilir Sayısal Sistemler LCD ile Uygulama Geliştirme.
ARM TABANLI İŞLEMCİLER
BİLGİSAYAR MİMARİLERİ 12.Hafta: Çok İşlemcili Sistemler
BİLGİSAYAR MİMARİLERİ 4.Hafta: Bellek Hiyerarşisi-2
BİLGİSAYAR MİMARİLERİ 1.Hafta: Bilgisayar Mimarisine Giriş
BİLGİSAYAR MİMARİLERİ 2.Hafta: Bilgisayar Bileşenleri
BİLGİSAYAR MİMARİLERİ 7.Hafta: Çoklu-Çevrim İşlemci
BİLGİSAYAR MİMARİLERİ 11.Hafta: Pipeline Sorunları
BİLİŞİM TEKNOLOJİSİNİN TEMELLERİ
BİLGİSAYAR MİMARİLERİ 10.Hafta: Pipeline İşlemci
İŞLETİM SİSTEMLERİ ISE 206 DR. TUĞRUL TAŞCI. Dersin Amacı Bilgisayar sistemlerinin temel organizasyonunu tanımak İşletim sistemlerinin ana bileşenlerini.
İŞLETİM SİSTEMLERİ ISE 206 DR. TUĞRUL TAŞCI. Dersin Amacı Bilgisayar sistemlerinin temel organizasyonunu tanımak İşletim sistemlerinin ana bileşenlerini.
BİLGİSAYAR NEDİR?.
Mikrobilgisayar Tasarım Yapıları
CPU 1-Bit AMAÇ Bu sunumda 4 yazıcı (register) üzerinde RAM hafızada kayıtlı komut kodlarının belirlediği temel işlemleri yürüten 1 Bit’lik bir CPU tasarımını.
8.8 A Simple Computer Architecture
PIC 16F84 ile ALT PROGRAMLARIN ve ÇEVRİM TABLOLARININ KULLANIMI
Bilgisayar Donanım ve Sistem Yazılımı
YAZILIM İşletim Sistemleri Uygulama Programları Programlama Dilleri
Mikroişlemciler Giriş.
DERS 12 PIC 16F84 ile KESME (INTERRUPT) KULLANIMI
Bilgisayar Donanım ve Sistem Yazılımı
Mikroişlemcili Sistem Tasarımı
Mikroişlemcili Sistem Tasarımı
Bilgisayar Sisteminin Anatomisi
İşletim Sistemleri (Operating Systems)
NİŞANTAŞI ÜNİVERSİTESİ
Mikrobilgisayar Tasarım Yapıları
İşletim Sistemleri (Operating Systems)
BİLGİSAYAR MÜHENDİSLİĞİNE GİRİŞ
TATİLİMTATİLİM Bilgisayar oynadım kitaplarımı okudum tamam bitti.
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
Sunum transkripti:

Marmara Ünv. Bilgisayar Mühendisliği Bölümü USTURLAB Marmara Ünv. Bilgisayar Mühendisliği Bölümü

Temel Özellikler 16 bit veri yolu 32 bit adres yolu 32 genel amaçlı register JAL 8 clock cycle, LD / ST ve MUL (signed) 3 clock cycle, kalan bütün komutlar 2 clock cycle. (JAL dışındaki) tüm komutlar 1-2 word uzunluğunda. JAL 3 word uzunluğunda

Komut Setinin Özellikleri Sysenter dışındaki bütün komutlar gerçeklendi.Sysenter Linux bazlı sistemlerde kullanıcı modundan kernel moduna geçişte kullanılıyor. İşlemcimizde memory management (paging) ve ayrıcalık seviyeleri olmadığı için bu komutu kullanmadık. Daha hızlı çalışan ek komutlar ekledik.

Genel mimari ALU Kontrol ünitesi (microprogramlı) Adresleme ünitesi ( addresleme modu hesapları için ) Register bankası (32 16-bit register) PC (program counter), DR (data register) LO, HI registerleri (çarpma operasyonu için – MIPS gibi )

LD ve ST komutları USTURLAB LD /ST mimarisinde tasarlandı. Ana belleğe sadece LD ve ST komutlarıyla ulaşılıyor. LD reg1, reg2, reg3, disp reg3 <- M( [ reg1 : reg2 ] + sign-ex(disp) ) disp işaretli 11-bitlik bir sayı ST operasyonu da aynı şekilde çalışıyor.

Addresleme Modu Önceki saydamda gösterilen adresleme modu en karışık array / struct işlemlerini gerçekleyebilecek şekilde seçildi. A[i+1] = A[i] + A[i-1] A[i-1].salary , A[i].age gibi nispeten karmaşık C yapıları bu adresleme moduyla kolaylıkla makina koduna çevrilebilir.

Akış kontrol komutları Bütün akış komutları PC-göreli olarak tasarlandı (relocatability için). İki temel akış kontrol komutu var: JPL, JPS JPL (long jump): JPL xyz PC <- (address of JPL instruction+1) + sign-extend-to-32-bits( xyz ) xyz 26 bitlik işaretli sabit bir sayı.

JPS (Short Jump): JPS xyz xyz 10-bitlik işaretli bir sayı. PC <- PC + sign-extend-to-32-bits( xyz ) JPL uzun sıçramalar yapma olanağını veriyor, ama yavaş ve hafızada çok yer tutuyor. Programlardaki sıçramaların çoğu kısa mesafelere yapıldığı için JPS (3 yerine 2 clock cycle, 2 yerine 1 word uzunluğunda) avantaj sağlıyor.

Şartlı akış kontrolü komutları XOR operasyonuyla set edilen sıfır bayrağını kullanıyorlar Bu komutların da short ve long versiyonları var: JPLZ, JPLNZ JPSZ, JPSNZ

Fonksiyon çağırma JAL (jump and link) operasyonu. Aynen MIPS te olduğu gibi çalışıyor: JAL reg1, reg2, addr(32-bit): Reg1<- LOW(PC+2) Reg2 <- HIGH(PC+2) PC<- addr //resolv’d by linker JR tam tersini yaparak fonksiyondan dönüyor

ALU komutları-1 Register - register: ADD, SUB, MULI, MUL, AND, OR, XOR, SLL, SRL, SLA, SRA, MOV OPR reg1, reg2 : reg1 <- reg1 opr reg2 Örnek: MOV reg1,reg2 : reg1 <- reg2 SUB reg1,reg2: reg1 <-reg1-reg2

ALU komutları-2 İmmediate : ADDI, SUBI, MULI, MULI, MULUI, MOVI, ANDI, ORI, XORI. OPR reg1, reg2, amt : reg1 <- reg2 opr amt amt 16 bitlik işaretli bir sayı Immediate ALU komutları fazladan bir hafıza erişimi gerektiriyor ve hafızada bir word daha fazla yer tutuyorlar.

ALU komutları-3 ADDI ve SUBI çoğunlukla küçük sayılar için kullanıldığından bu komutların sadece küçük sayılar için çalışan daha hızlı versiyonlarını da komut setimize ekledik: ADDIS, SUBIS aynı INC ve DEC operasyonlar gibi çalışıyor, ancak (-1, +1) yerine 6 bitlik işaretli sayıları kullanıyor.

ALU komutları-4 Dört çarpma komutu var : MUL, MULU, MULI, MULUI Çarpma operasyonları 32 bit sonuç verdiği için sonuçlar LO ve HI isimli iki 16 bitlik özel registera atılıyor. Daha sonra bu sonuçlar MOV reg, LO ve MOV reg, HI özel MOV komutlarıyla istenilen genel amaçlı registera getiriliyor.

Tasarımımızdaki Eksiklikler Byte operasyonları yok Nonaligned hafıza erişimi yok Overflow bayrağı yok Sıfır bayrağı şu anda sadece XOR ile set ediliyor ( CMP operasyonu). ADD ve SUB gibi operasyonlarla da set edilebilmeli. Stack yok Kesmeler yok

Test Programı-1 Usturlabı test etmek için kısa bir program yazdık. Program bellekte 64KWord’den başlayan 5 wordluk alana 1, 2, 3, 4, 5 yazıyor. Program şartlı sıçramaları, ALU operasyonlarını (ADD, XOR), MOV ve ST komutlarını test ediyor.

Test programı-2 Movi reg3, 1 8460 0001 Movi reg1, 1 8420 0001 Loop St [reg1:reg2]+0, reg3 0822 0003 Addis reg2, 1 4841 Addis reg3, 1 4861 Xori reg3, 5 94a2 0005 Jpstz Loop 1bf9 Halt 3c00

Test Programı-3 Test programının çalışması (bazı ek mimari bilgileriyle beraber) bu klasördeki usturlab mimarisi.vmw klibi ile belgelendi. Şu noktada bu klibi seyredeblirsiniz. Klipte açıkça görülebildiği gibi CPU’nun çalışmasında bazı problemler var. Bu hatalar bizim CPU tasarımımızdan ziyade Logisim’den kaynaklanıyor!

Problemler ve Sebepleri-1 Usturlab’ın hatalı sonuç ürettiği bir işaretli çarpma işlemi carpma hatasi.wmv klibinde analiz edildi. Şu noktada bu klibi izleyebilirsiniz. Klipte, çarpma hatasının ALU içindeki bir OR kapısının hatalı çalışmasından kaynaklandığı açıkça görülüyor. Yani hata Logisim kaynaklı.

Problemler ve Sebepleri-2 Programlar genellikle doğru çalışıyor. Ancak daha önce birçok kez doğru çalışmış bir program hatalı çalışabiliyor. Yaptığımız analizlerde bu hataların Logisim kaynaklı olduğunu saptadık. Hatalar genellikle ALU’daki veya adresleme ünitesindeki bir kapının yanlış çalışmasından kaynaklanıyor.

Problemler ve Sebepleri-3 Logisim’de gözlemlediğimiz bu problemi başkaları da gözlemlemiş. Sourceforge’deki Logisim sitesinde “Logisim sometimes calculates incorrect value with basic gate” başlığı altında bug report’lar var. http://sourceforge.net/tracker/index.php?func=detail&aid=1938274&group_id=143273&atid=755041

Problemler ve Sebepleri:Sonuç Dizaynımızın doğru çalıştığına ve hataların tümüyle Logisim kaynaklı olduğuna inanıyoruz.

Sunumumuza zaman ayırdığınız için teşekkür ederiz Sunumumuza zaman ayırdığınız için teşekkür ederiz! Sorularınız varsa: Mehmet Baran : 0532 243 85 49

Kaynaklar-1 John Carpinelli, Computer Systems Organization and Architecture David A. Patterson and John L. Hennessy Computer Architecture The Art of Assembly Language Chapter 5: Instruction Set Architecture http://webster.cs.ucr.edu/AoA/Windows/HTML/ISA.html

Kaynaklar-2 Morris Mano Digital Design Intel® 64 and IA-32 Architectures Software Developer's Manuals http://www.intel.com/products/processor/manuals/