Mikroçita. Mikroçita Rapor 2:



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

Mimari. risi. Yazar: İşlemci Mimar. bulunmasını istediğimiz. mimariyi. Şekil 1

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

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

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

MİKROİŞLEMCİLER 1 Ders 1

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

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

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

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi

Quiz:8086 Mikroişlemcisi Mimarisi ve Emirleri

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

BM-311 Bilgisayar Mimarisi

İvme VGA, İvme s_2.1 fiziksel işlemci çekirdeğinin, çalışan iç yapısının herhangi bir simülasyon olmaksızın fiziksel olarak dış dünyaya aktarımıdır.

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi

Komutların Yürütülmesi

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

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

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İ DENEY #6

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

Von Neumann Mimarisi. Mikroişlemciler ve Mikrobilgisayarlar 1

DENEY 8- Flip Flop ve Uygulamaları. Amaç: - Flip Flop çalışma mantığını kavramak

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

İşletim Sistemleri (Operating Systems)

CISC Complex Instruction Set Computers

K uark projesi. Temel Özellikler :

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

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

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

Bölüm Bazı Temel Konseptler

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

BLG2109 BİLGİSAYAR DONANIMI DERS 3. Öğr. Grv. Aybike ŞİMŞEK

Mikrobilgisayar Mimarisi ve Programlama

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

Temel Mikroişlemci Tabanlı Bir Sisteme Hata Enjekte Etme Yöntemi Geliştirilmesi. Buse Ustaoğlu Berna Örs Yalçın

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

Adresleme Modları. Mikroişlemciler ve Mikrobilgisayarlar

Ders 3 ADRESLEME MODLARI ve TEMEL KOMUTLAR

Bilgisayar Mimarisi ve Organizasyonu Giriş

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İ

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

Öğr. Gör. Özkan CANAY

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

FPGA Kullanarak 16 Bitlik Mikroişlemci Tasarımı Designing of a 16 bit Microprocessor by Using FPGA

VHDL ile Mikroişlemci Tasarımı ve Eğitimde Uygulanabilirliği

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

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

Mikroişlemcili Sistemler ve Laboratuvarı 6.Hafta

Bilgisayar Donanım 2010 BİLGİSAYAR

8086 Mikroişlemcisi Komut Seti

PIC Mikrodenetleyicileri

BM-311 Bilgisayar Mimarisi

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İLGİSAYAR MİMARİSİ. Mimariye Giriş. Özer Çelik Matematik-Bilgisayar Bölümü

Mikrobilgisayar Sistemleri ve Assembler

Bilgisayarların Gelişimi

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

KASIRGA 4. GELİŞME RAPORU

C-Serisi PLC İleri Seviye Eğitim

İşletim Sistemlerine Giriş

İKİLİ SAYILAR VE ARİTMETİK İŞLEMLER

Proje #2 - Lojik Devre Benzetimi

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

1. İŞLEMCİLER 1.2. İşlemcinin Görevi 1.3. İşlemcinin Yapısı

HSancak Nesne Tabanlı Programlama I Ders Notları

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

Deney 7: Aritmetik ve Lojik İşlem Birimi(ALU)

Günümüz. Intel Core i nm teknolojisi 1.86 Milyar tranzistör. Intel Core i nm teknolojisi 1.4 Milyar tranzistör

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

Eğitim Amaçlı Temel Bir Mikrobilgisayarın Tasarlanması ve Gerçeklemesi Design and Implementation of a Basic Microcomputer for Educational Purpose

2 İş Hattı (Pipeline)

İ.T.Ü. Eğitim Mikrobilgisayarının Tanıtımı

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

Mikroişlemcili Sistemler ve Laboratuvarı 8.Hafta

BELLEKLER. Kelime anlamı olarak RAM Random Access Memory yani Rastgele Erişilebilir Bellek cümlesinin kısaltılması ile oluşmuş bir tanımdır.

İÇİNDEKİLER 1. KLAVYE KLAVYE RB KLAVYE RBHIGH DİSPLAY... 31

T.C. KOCAELİ ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ BİLİŞİM SİSTEMLERİ MÜHENDİSLİĞİ

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

HDL Dilleri VHDL. Son olarak, spesifik ASIC teknolojisi için devrenin yerleşimi netlist tanımlamalarından gelen diğer araçlarla oluşturulmuş olunur.

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

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

Komut Seti Mimarisi (ISA)

WEB KULLANICI KONTROLLERİ ve ANASAYFA KULLANMA(Master Page)

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

BİLGİSAYAR KULLANMA KURSU

HAZIRLAYA MOME TUM PROJE GRUBU

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

Deney 6: Ring (Halka) ve Johnson Sayıcılar

2 İş Hattı (Pipeline)

Bilgisayar Sistemlerine Genel Bakış

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

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

Toplu Kayıt Kullanıcı Kitapçığı

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Transkript:

Mikroçita Rapor 2: İşlemci projemizle ilgili olarak hazırlamış olduğumuz bu ikinci raporda öncelikli olarak vhdl kullanarak tasarladığımız işlemcimizin genel çalışmasını ilk rapora göre daha ayrıntılı bir şekilde anlatıp, yazmış oldugumuz kodları ele almayı amaçladık. Mikroişlemci temel yapısı hakkında birinci raporda genel bilgiler verilmişti. 1. Raporun yazımından sonrasında, pipeline büyük ölçüde bitti ancak test işlemleri gözümüzden kaçan herhangi bir durum olmamasını sağlamak maksadıyla kodlar eklendikçe sürmekte. Toplama çıkartma gibi aritmetik işlemler, lojik işlemler, shift işlemleri, Branch kodları ve immediate data kullanılarak gerçekleştirilen işlemler büyük ölçüde gerçekleştirilmiş olup toplamda işlemcinin yapabildiği kod sayısı 27 ya çıkarıldı. İşlemcinin daha hızlı çalışmasına yönelik çalışmalar yapıldı. Yapılanlar raporun ilerleyen kısımlarında, ayrı başlıklar altında daha ayrıntılı bir şekilde açıklandı. İşlemcinin Temel Yapısı: İşlemcimizin temel yapısı yukarıda görüldüğü üzere 4 temel birim ve bunların alt birimlerinden oluşmaktadır. Bu birimlerin her birisi vhdl dili kullanılarak kodlanmış olup, işlemcimiz toplamda şu an için 17 dosyadan oluşmaktadır. Bu vhdl dosyaları aşagıdaki şemada hiyerarşik olarak gösterildi.

Bu yapıyı ayrıntılı olarak incelememiz gerekirse en dışta microprocessor olarak tanıtılmış olan işlemcimiz, altında bulunan program memory, veri hafızası olarak kullanılan memory ve datapath ile controller olarak adlandırdıgmız iki bölüm bulunmakta. Bunların hepsi microprocessor altında alt birimler olarak tanıtılmış durumda bulunmaktadır. İşlemcinin belleği Harvard mimarisine göre yapılmış olup programın yazıldıgı ve uygulama sırasında kullanılan, çıkışların yazıldıgı, kaydedildiği bellekler ayrı bir şekilde tasarlanarak hafızada aynı anda yazma ve okuma işlemleri yapılmasına olanak sağlanmış oldu. Hafıza birimleri haricinde microprocessor.vhd dosyası içinde component olarak tanıtılmış, işlemcimizin 2 ana alt birimi daha bulunmakta. Bunlar control-unit.vhd ve datapath.vhd dir. control-unit.vhd 5 ayrı elemandan oluşan, işlemcinin çalışmasını yöneten alt birimlerden oluşmakta. Bunlardan en başta geleni controller.vhd dosyası. Bu dosyada işlemcinin işlemleri sırayla yapmasını sağlayan, işlemciyi yöneten birimin tasarlandıgı kodlar bulunmaktadır. Bu eleman aşagıdaki şekilde görülmektedir.

Controller elemanı işlemci altı adımlık bir pipeline sisteminde çalışacak şekilde tasarlanmıştır. Bu aşamalar, kodun memoryden okunarak ir_word e aktarıldıgı fetch, kodun algılanarak ne iş yaptıgının çözümlendiği decode, kodun çalıştırılması esnasında kullanılacak olan register degerlerinin okundugu fetch operand, işlemin yapıldıgı execute, Hafıza birimine kaydedilecek şeylerin yazıldıgı Memory ve son olarak da işlem sounucunda degişen register degerlerinin yazıldıgı write back aşamasıdır. Bu adımlar aşagıdaki şekilde gösterilmiştir. Bu aşamaları tamamlayarak programın ilk satırındaki işlemin yapılması 9 clock sürmekte. Daha sonraki her 2 satır kod ise 3 clock darbesi sonucunda gerçekleştirilmektedir. Clock frekansımız yaklaşık olarak 110 Mhz civarındadır. Bu konuda bir optimizasyona gitmearzumuz bulunmaktadır. Bu sayede frekansı yükseltebilecegimizi düşünüyoruz. Pipeline sırasında ortaya çıkan hazards durumlarını gidermek amacıyla hazards_controller.vhd dosyasında bir eleman tasarladık. Bu eleman, ard arda gelen kodlardaki registerların aynı olup olmamasına, yapılacak işlemlere göre hazards durumunu controllera yansıtmakta, controllerda ise bu duruma uygun çözüme göre programın akışı devam ettirilmektedir. PC.vhd dosyası yapılmakta olan program satırı bilgisini tutarak, branch kodları olmadıgı durumda, bir sonraki satırın okunmasını, oldugu durumlarda ise gerekli satıra gidilmesini sağlamaktadır. Instruction register, program memoryden PC dan gelen bilgi dogrultusunda gerekli kodları almaktadır. Microprocessor.vhd dosyası altında tanıtılmış olan elemanlardan bir digeri ise datapth dir. Datapath.vhd dosyasında tasarlanmış olan bu eleman, registerların bulundugu register file, işlemlerin yapıldıgı alu gibi işlemci için son derece önemli elemanları içinde bulundurmaktadır. Register_file.vhd dosyasında, işlemcimizin sahip oldugu 1 i flag register olmak üzere toplamda 8 registerın tutldugu, controllerdan gelen bilgilere göreistenilen registerın seçilerek değiştirildiği bir elemandır. Bu registerlar 16 bitlik bir program satırımızın ilk beş biti ouşturan opcode undan sonra gelen üç bit ile belirlenmektedir. Alu.vhd dosyasında işlemcimizin arithmetic logic unit(alu) su tasarlanmıştır. Alu elemanımız, 15 adet işlemi kendi içinde gerçeklemektedir. Bu işlemler 4 bitlik bir seçici giriş ile seçilmektedir. ALU nun girişlerinden gelen veriler seçici girişte belirtilen işlemin

yapılmasının akabinde, sonuç çıkışına verilmektedir. ALU dahilinde bu 15 işlemden hariç olarak branch kodlarının çalışmasıyla ilgili olarak durumların sağlanıp saglanmadıgı da kontrol edilmektedir. Shifter.vhd dosyası, işlemcimizin shift işlemlerini yapması için kullandıgımız, daha sonra çarpma işlemini gerçeklemek için de kullanacagımız, shiter elemanımızın tasarımını içermektedir. Yapılacaklar: - İşlemcimizin henüz gerçekleyemediği multiply, syscall gibi kodları eklemek. - IR_word ü 32 bite çıkartarak, immediate data uzunlugunu ve register sayısını artırmak. - Cache memory yapmak. - İşlemciyi Superscalar hale getirmek. Bunun için öncelikle 2. bir pipeline hattı ve alu ekleyecegiz. - Güç ve hız için optimizasyonu yapmak. Test: İşlemcinin yapabildiği komutların bir kısmını kullanarak fibonacci dizisini elde ettik. Bunun için internetten buldugumuz bir programı işlemcimize uygun şekilde düzenleyip koşturduk.bunun için kullanmış oldugumuz kodlar aşagıdaki gibidir; 1 => "0001100000000000", -- mov R0, 2 => "0001100100000001", -- mov R1, #1 3 => "0001101000110100", -- mov R2, #52 4 => "0001101100000001", -- mov R3, #1 5 => "0000100000110010", -- mov M[50], R0 6 => "0000100100110011", -- mov M[51], R1 7 => "0000100101100100", -- mov M[100], R1 8 => "0010000100000000", -- add R1, R0 9 => "0000000001100100", -- mov R0=M[100], R0 10 => "0001001000100000", -- mov M[R2], R1 11 => "0010001001100000", -- add R2, R3 12 => "0000010001110000", -- mov R4, M[59] 13 => "1011110000000110", --jz R4, #6 Bu programı koşturduktan sonra memorymizi gösteren tmp_ram in ekran görüntüsü aşagıdadır.

Daha ayrıntılı ve büyük testler yapıldıkça rapor haline dönüştürmeyi düşünmekteyiz. Ayrıca proje yönetimimizi kolaylaştırmak açısından yaklaşık bir ay önce bir proje yönetim sitesi oluşturduk. Bu sayede, takım olarak geliştirmelerimizi internet sitemize yükleyerek, online paylaşma ve arşivleme sistemi oluşturmuş olduk. En azından gelişmeleri inceleyebilmeniz için, internet sitemiz: http://www.linksfly.com kullanıcı adı: mikroçita şifre: pipeline