HAZIRLAYA MOME TUM PROJE GRUBU

Benzer belgeler
K uark projesi. Temel Özellikler :

Mikroçita. Mikroçita Rapor 2:

BM-311 Bilgisayar Mimarisi

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

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

BM-311 Bilgisayar Mimarisi

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

BM-311 Bilgisayar Mimarisi

Von Neumann Mimarisi. Mikroişlemciler ve Mikrobilgisayarlar 1

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

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ı

KASIRGA -4 Buyruk Tasarımı Belgesi Ankara

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

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

Bölüm Bazı Temel Konseptler

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

KASIRGA 4. GELİŞME RAPORU

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

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

Bilgisayar Mimarisi Nedir?

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

BBM 231 Yazmaçların Aktarımı Seviyesinde Tasarım! Hacettepe Üniversitesi Bilgisayar Müh. Bölümü

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

İşletim Sistemleri (Operating Systems)

Bu derste! BBM 231 Yazmaçların Aktarımı Seviyesinde Tasarım! Yazmaç Aktarımı Düzeyi! Büyük Sayısal Sistemler! 12/25/12

BM-311 Bilgisayar Mimarisi

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

Tek Vuruşluk Đşlemci. -- Company : Ege Universitesi, Elektrik-Elektronik Mühendisliği

Bölüm 4 Aritmetik Devreler

Komutların Yürütülmesi

BİLGİSAYAR MİMARİSİ. Bilgisayar Bileşenleri Ve Programların Yürütülmesi. Ö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İ

Mikrobilgisayar Mimarisi ve Programlama

TBİL-405 Mikroişlemci Sistemleri Bölüm 2 1- % %01010 işleminin sonucu hangisidir? % %11000 %10001 %10101 %00011

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

İşletim Sistemlerine Giriş

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

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

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

BM-311 Bilgisayar Mimarisi

MİKROİŞLEMCİLER 1 Ders 1

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

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

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

Quiz:8086 Mikroişlemcisi Mimarisi ve Emirleri

Bilgisayar Mimarisi ve Örgütleşimi (COMPE 331) Ders Detayları

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.

BÖLÜM 2 SAYI SİSTEMLERİ

BÖLÜM Mikrodenetleyicisine Giriş

Sahada Programlanabilir Kapı Dizileri (FPGA) Sayısal CMOS Tümdevre Tasarımı Y. Fırat Kula

Bilgisayar Donanım 2010 BİLGİSAYAR

AND Komutu. and hedef, kaynak

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS. Bilgisayar Organizasyonu BIL

DSP DONANIMI. Pek çok DSP için temel elemanlar aşağıdaki gibidir.

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

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

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

DOKUZ EYLÜL ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ DEKANLIĞI DERS/MODÜL/BLOK TANITIM FORMU. Dersin Kodu: CME 2006

Mikrobilgisayarlar. Mikroişlemciler ve. Mikrobilgisayarlar

BM-311 Bilgisayar Mimarisi

Mikroişlemcili Sistemler ve Laboratuvarı 8.Hafta

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

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

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

Yazılan programın simülasyonu için; (A<B), (A>B) ve (A=B) durumunu sağlayacak 2 şer tane değeri girerek modelsimde oluşan sonuçları çiziniz.

BİLGİSAYAR KULLANMA KURSU

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

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

Adresleme Yöntemleri MİKROİŞLEMCİ SİSTEMLERİ. Örnek MİB ile Adresleme. Adresleme Yöntemleri. Doğal Adresleme. İvedi Adresleme

Bellekler. Mikroişlemciler ve Mikrobilgisayarlar

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

Düşünelim? Günlük hayatta bilgisayar hangi alanlarda kullanılmaktadır? Bilgisayarın farklı tip ve özellikte olmasının sebepleri neler olabilir?

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

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

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.

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

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

Mikrobilgisayar Sistemleri ve Assembler

Ders Notlarının Creative Commons lisansı Feza BUZLUCA ya aittir. Lisans:

Kasırga [Gizli] KASIRGA PROJESİ 3. GELİŞME RAPORU Ankara

CPU TURKEY CPU-KULIS MİKROİŞLEMCİSİ ÇALIŞMA RAPORU

EEM122SAYISAL MANTIK SAYICILAR. Elektrik Elektronik Mühendisliği Yrd. Doç. Dr. Hüseyin Sağkol

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

BLM 221 MANTIK DEVRELERİ

Bilgisayar en yavaş parçası kadar hızlıdır!

Mikroişlemcili Sistemler ve Laboratuvarı

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

Basit Işık Kontrolü. 1. Bit, Byte, Word, Double Word kavramları:

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

C-Serisi PLC İleri Seviye Eğitim

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

BM-311 Bilgisayar Mimarisi

Bilgisayar Donanımı Dersi BİLGİSAYARIN MİMARI YAPISI VE ÇALIŞMA MANTIĞI

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

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

MANTIK DEVRELERİ HALL, 2002) (SAYISAL TASARIM, ÇEVİRİ, LITERATUR YAYINCILIK) DIGITAL DESIGN PRICIPLES & PRACTICES (3. EDITION, PRENTICE HALL, 2001)

KOMUT TABLOSU İLE İLGİLİ AÇIKLAMALAR:

7.Yazmaçlar (Registers), Sayıcılar (Counters)

Transkript:

HAZIRLAYA MOME TUM PROJE GRUBU

TTeekk VVuur ruuşşl lluukk Đşşl Đ lleemcci ii TEK VURUŞLUK ĐŞLEMCĐ 1. Öz Bu çalışmada, temel olarak en basit tek vuruşluk işlemci(single cycle computer) tasarlanmıştır. Tasarım Xlinx Webpack programında yapılmış olup simulasyonda ModelSim programı kullanılmıştır. Derleme işlemi ve blok elemanlar Virtex 5 serisi FPGA bordlara uygun olarak hazırlanmış ve derleme çıktıları buna göre alınmıştır. Öncelikle, CPU ve teknolojileri hakkında kısaca bilgiler verildikten sonra, tasarım aşaması anlatılmıştır. Üniteler tek tek tanıtıldıktan sonra sistem üzerindeki analiz ve yorumlar belirtilmiştir. Son olarak ana yapı oluşturulduktan, sonra örnek bir program (komut kümesi) üzerinden simule edilen programın simulasyon çıktıları verilmiştir. Çıktılar simulasyon raporları ile birlikte değrlendirilmiştir. 2.Giriş ve Altyapı 2.1 Tanımı: Đşlemci(Central Processing Unit(CPU) yâda Merkezi Đşlem Birim(MĐB)), bilgisayarın beyni niteliğindeki en önemli bileşendir. Giriş arabirimleri vasıtasıyla dış dünyadan gelen sayısal veya analog verileri alır. Bu verileri, belleğindeki programa göre işler ve gereken çıkış verilerini, kontrol edilmek istenen sistem, çıkış arabirimleri üzerinden gönderir. Merkezi işlem birimi aritmetik ve mantıksal işlem yapma yeteneğine sahiptir. Giriş ve çıkış birimleri arasında verilen program ile uygun çalışmayı sağlar. Makine dili denilen düşük seviyeli kodlama sistemi ile çalışır; bu kodlama sistemi bilgisayarın algılayabileceği operasyon kodlarından (opcode) oluşur. Bir mikroişlemcinin algılayabileceği kodların tamamına o işlemcinin komut kümesi denir. 2.2 Görevi Örnek olarak 2 ve 3 ü topla sonucu bana ilet komutu verildiğinde işlemci hemen aritmetik merkezini devreye sokar, işlemi gerçekleştirir ve sonucu bize iletir. Benzer şekilde özel bir yöntemle kodlanmış MP3 dosyalarını açar, işler ve gerekli veriyi ses kartına iletir. Kısacası hesaplaması veya karar verilmesi gereken her şeyde işlemci devreye girer Hesaplama işlemlerinde aritmetik, karar verilmesi gereken işlemlerde de mantık ünitesi devreye girer. Bugünkü Programlanabilir Lojik Denetleyicilerin komut kümeleri sayesinde aşağıda belirlenmiş fonksiyonların gerçekleşmesi mümkündür. 1) Veri işleme 2) Matematiksel dört işlem 3) Matris lojiği işlemleri 4) Çift hassasiyetli işlemler 5) Değişken bit uzunluğu öteleme ve döndürme 6) Zamanlayıcı (Tımer) ve sayıcı (Counter) birimleri 7) Alt program yürütme - 2 -

MOOMEENNTTUUM PPr rooj jjee GGr ruubbuu 8) Öncelikli kesme yapısı gerçekleştirebilme. 2.3 Yapısı Đşlemcilerin yapısı hiç bir mekanik parçası olmayan tamamen devreler ve transistörlerden oluşur. Đçlerinde milyonlarca transistor bulunur ve bu transistorlerin sayısı ne kadar fazla olursa işlemci o kadar hızlı olur. Đşlemcilerin hızları MHZ (MegaHertz) cinsinden ölçülür. Doğal olarak bu sayı ne kadar yüksek olursa, hızı da o kadar yüksek olur. 3-4 santimetrekare büyüklüğünde bir silikon tabaka içinde milyonlarca transistörden oluşurlar. Đşlemcilerin oluşturulmasını sağlayan sistem mikron teknolojisidir. Bu teknoloji sayesinde bir kaç santimetrekarelik bir alana milyonlarca transistor sığdırabilmek mümkündür. Günümüz işlemcileri 100, 133, 333 MHZ ve daha fazla veriyolu hızında (Veriyi iletme hızı) çalışabilmektedir. Bu hız değeri ne kadar yüksek olursa, işlemci de o kadar fazla veri iletebilir. Ancak hızı belirleyen asıl faktör frekanstır. Veriyolu hızı frekansın yanında pek fazla bir şey ifade etmemektedir. Bütün işlemciler bir ön belleğe sahiptirler. Bunlar birincil (L1) ve ikincil (L2) olmak üzere ikiye ayrılırlar. Bu tür belleklere Cache de denir ve 32 KB ile 512 KB (Kilobyte) arasında değişirler. Önceden yapılmış olan ve yapılmakta olan işlerin bu belleklerde geçici olarak tutulmasını sağlarlar. Bu sayede cache bellekte tutulan bu verilere daha hızlı erişim sağlanmış olunur. 2,4 Üniteler Đşlemci üzerinde komutları icra etme işini uygulama ünite si (execution unit) ya da fonksiyon ünitesi (function unit) adı verilen üniteler gerçekleştirir. Modern işlemcilerde değişik komut türlerini işletmek üzere birden fazla fonksiyon ünitesi bulunur. Çoğunlukla aritmetik/mantıksal ünite (arithmetic/logic unit) olarak da anılan tamsayı (integer) üniteleri tam sayılar ile ilgili işlemleri yapar. Kayan nokta ünitesi (FPU-Floating Point Unit) ise 5,21 gibi küsuratlı sayılarla ilgili işlemleri yapar. Bir mikroişlemcide ne kadar fazla fonksiyon ünitesi varsa aynı anda çalışabilecek komut sayısı da o kadar artar. Register seti; işlem anında bir program tarafından kullanılmakta olan sayıların saklandığı geçici hafıza hücreleridir. Farklı komut ve register setlerine sahip olan işlemciler birbirlerinin yazılımlarını çalıştıramazlar. Kontrol ünitesi ise komutların sıralanıp düzenlendiği bölümdür. Programlama işlemi asıl olarak bu kısımda uygulanır. 2.5 Tasarımı Merkezi işlem birimi tasarımı, bilgisayarın temel bileşenlerinden birisi olan Merkezi işlem birimini etkin kullanmayı yönelik bir tasarımdır. MĐB bilgisayar donanımının temel bileşenlerinden birisidir. Đşlemcisi olmayan bir bilgisayar düşünülemez. Bu yüzden işlemcinin tasarımı ne kadar iyi olursa sistem de o derece hızlı olacaktır. Đşlemciyi hızlandırmanın değişik yolları vardır. Bunlardan bazıları: Buyrukların paralel çalışmasını sağlamak Çok vuruşluk işlemciler kullanmak Boru hattı kullanmak Çoklu işleme kullanmak şeklinde sıralanabilir. Đşlemcinin hızlandırılmasında asıl önemli unsur buyruk başına çevrim süresini azaltmaktır. Đşlemci hızlarını karşılaştırırken saat sıklığına bakmak yanıltıcı olabilir. Örneğin, 2 GHz'lik saati olan bir işlemci ile 2.5 GHz'lik saati olan bir işlemci aynı programı eşit sürede çalıştırabilirler. MĐB tasarımını demek ayrıca şu birimlerin tasarımıyla da ilgilenmek demektir: - 3 -

TTeekk VVuur ruuşşl lluukk Đşşl Đ lleemcci ii Veriyolu Yazmaç ve Önbellek Denetim birimleri Saat çevirimi Mantık kapıları Bir işlemci tasarlanırken aşağıdaki temel ilkeler kullanılır: Yalınlık düzenden gelir Küçük olan hızlıdır Đyi tasarım fedakârlık ister Olağan durumu hızlandırılmalıdır Yalın bir işlemci hızlıdır. Đşlemcinin karmaşıklığı arttıkça işlemci yavaşlayacaktır. Çok büyük bir işlemcide veri iletimi daha uzun sürecektir, yani küçük işlemci hızlıdır. Đşlemcide yapılacak bir takım iyileştirmeler sistemi hızlandırabilir, bu değişikliği yapmak için yapılan fedakârlık ise yavaşlatabilir. Olağan bir durumu (mesela sürekli işlenen bir buyruğu) hızlı çalışır hale getiren bir değişiklik işlemcinin başarımını arttırabilir. MĐB tasarımında bazı temel mantıklar kullanılır. Bunlar: Yapısal olmayan rastgele mantık Sonlu durum makinaları Mikroprogramlama Programlanabilir mantık dizisi şeklinde sıralanabilir. Tasarım genel olarak aşağıdaki işlemleri kapsar: Đşlemci mimarisi ve başarım modellemesi Tasarım ve doğrulama Önemli bileşenlerin tasarımı (önbellek, yazmaç, AMB) Mantık kapılarının tasarımı Devre elemanlarının eşzamanlı çalışması Fiziksel tasarım Bütünleşebilirlik ve üretilebilirlik Đyi tasarlanmış bir işlemcinin özellikleri şunlardır: Yüksek başarım Düşük maliyet Az güç tüketimi Uyumluluk 2.6 Temel Đşlemci Türleri En basit ve temel işlemci olarak tek vuruşluk işlemci(single cycle computer) düşünülebilinir. Her bir buyruğun 4 bayt tuttuğu ve bellekte tek bir sözcük olarak tutulduğunu düşünürsek, tek vuruşluk bir işlemci, işlem yaparken aşağıdaki üç adımı kullanacaktır. Program sayacı tarafından belirlenen yazmaçtaki bilgiyi al ve buyruk belleğine yaz. Bu işlem simgesel olarak şu şekilde gösterilebilir. BB [[PS]] Eğer bellek bayt bayt adreslenmiş ise program sayacını 4 arttır. PS [PS]+4 Buyruk belleğinde tutulan işlemleri yap. - 4 -

MOOMEENNTTUUM PPr rooj jjee GGr ruubbuu Tek vuruşluk işlemcide çevrim zamanı uzundur. Buyruklar sıra ile işlendiği için en yavaş işlenen buyruk işlemci hızını belirleyecektir. Ayrıca işlemler tek bir vuruşla bitirilemeyebilir. Đkinci ve daha gelişmiş bir işlemci olarak çok vuruşluk işlemci görülür. Tek vuruşluk işlemcilerde ortaya çıkan sorunlar tasarımda değişiklik yapıp veriyolu sayısını arttırarak engellenebilir. Çok vuruşluk işlemcide: AMB hem adres hesabı hem program sayacını arttırmak için kullanılır. Denetim işaretleri sadece buyruk tarafından belirlenmez. Denetim için sınırlı durum makinası kullanılır. 3. Sistemin Tanıtımı Ve Calışma Prensibleri Bu çalışmada 16 bitlik veri yoluna haiz, 16 registerli, temel komutları koşturabilen, basit bir tek vuruşluk işlemci (Single cycle computer) tasarlanmıştır. Tasarım Xlinx Webpack programında VHDL dilinde yazılmıştır. Simulasyon ise ModelSim programı ile başarıyla gerçeklenmiştir. Đşlev olarak temel komutları gerçeklemesi beklenmektedir. Kod yazımında öncelikle her eleman compenent halinde tasarlanmıştır. Daha sonra bu compenentler birleştirilerek CPU oluşturulmuştur. Bu raporda, büün parçalar tek tek tanıtılmış, sentezlenmiş, kod yazımında kullanılan teknikler, varsa analiz ve incelemelere her bölümün içinde hepsi için özel olarak değinilmiştir. Ayrıca bazı modüller birden fazla şekilde hazırlanmıştır. Đstenilen parça aktive edilerek kullanılabilinir. Sistem klasik bir tek vuruşluk işlemci yapısındadır. Temel olarak 3 birimden oluşur. Bunlar: Veriyolu(Datapath) Hafıza elamanı(memory) Kontrol ünitesi(control Unit)dir. 3.1 Veriyolu Şekil-1; Veri Yolu - 5 -

TTeekk VVuur ruuşşl lluukk Đşşl Đ lleemcci ii Veriyolu alınan bilginin işlendiği kısımdır. Temel olarak 4 ana birimden oluşurlar.bunlar yazmaçlar(register file), multiplexer B, fonksiyon ünitesi, Multiplexer D olarak düşünülebilinir Yazmaçlar işlenilecek bilginin saklandığı kısımdır. Đçerisinde tasarıma göre değişecek boyut ve sayılarda yazmaç(register) bulunur. Bu çalışmada hazırlanan register file, 16 adet 16 bitlik yazmaca sahiptir. Register file ünitesinde, yazılacak bilginin, hangi adresteki yazmaca yazılacağını gösteren hedef adresi(destination adress-da) girişi, çıkışların hangi adresteki yazmaçlardan alınacağını gösteren A adresi ve B adresi (AA, BA) girişleri bulunur. Ayrıca registerdeki bilgileri sıfırlamak için CLR girişi kullanılır. Bununla beraber yazım işlemini kontrol eden RW girişi de bu ünitenin girişlerindendir. Registere file a yazma işlemi ancak RW girişinin lojik 1 olmasıyla gerçekleşebilir. Ayrıca yazmaç ünitesinde okuma işlemi yükselen kenarda gerçekleşirken yazma işlemi düşen kenarda yapılır. Yazmaç ünitesi hazırlanımında VHDL dilinde kod yazılırken 2 ayrı yöntem izlenmiştir. Đlk olarak yapı behavioral(davranışsal) olarak hazırlanmıştır. Ardından da aynı yapı, aynı işlevi görecek şekilde architectiral(mimarisel) olarak hazırlanmıştır. Bundaki maksat hangi yapının daha hızlı çalıştığını tespit edebilmektir. Sonuç iki yapının hız ve alan kullanım özelliklerinin hemen hemen aynı olduğu ve mimarisel tasarlanan ünitede daha az register kullanıldığından hızının ve alan kullanımının diğerinden çok az da olsa üstün olduğu gözlenmiştir. Şekil-2 ;Mimarisel Tasarıma ait Zamanlama Özetleri Şekil-3 ; Davranışsal Tasarıma ait Zamanlama Özetleri Şekil-4 ; Davranışsal ve mimarisel tasarımlara ait alan kullanım özetleri - 6 -

MOOMEENNTTUUM PPr rooj jjee GGr ruubbuu Şekil-5 ; Yazmaç Dosyası Mux B işlenecek bilginin dışarıdan mı yoksa reg file dan mı alınacağını seçer. Mux D ise reg file a gönderilecek bilginin hafıza elemanından mı yoksa fonksiyon ünitesinden mi alınacağına karar verir. - 7 -

TTeekk VVuur ruuşşl lluukk Đşşl Đ lleemcci ii Şekil-6 ; Fonksiyon Ünitesi - 8 -

MOOMEENNTTUUM PPr rooj jjee GGr ruubbuu Fonksiyon Adı Gösterim Kod Save A F=A 00000 Đncrement F=A+1 00001 A plus B A+B 00010 A plus B plus 1 A+B+1 00011 A plus not B A+B 00100 A minus B A+B +1 00101 Decrement A-1 00110 Save A A 00111 A and B A B 01000 A or B A B 01010 A xor B A B 01100 Complement A A 01110 Multiply AxB 01111 Save B B 10000 Shift Right lsrb 10100 Shift Left lslb 11000 Arithmetic Shift Right asrb 11001 Arithmetic Shift Left aslb 10101 Rotate Right rorb 11010 Rotate Left rolb 10110 Rotate With Carry Right RorcB 11011 Rotate With Carry Left RolcB 10111 Tablo-1 Fonksiyon Tablosu Fonksiyon ünitesi ise asıl işi yapan bölümdür. Gelen sinyali aritmetik, lojik veya kaydırma işlemlerine tabi tutarak işler. Yapısında bir adet aritmetik-lojik ünite(alu) ve bir adet kaydırıcı (Shifter) bulunur. ALU ise 2 ana bölümden oluşu, birincisi aritmetik işlemleri (toplama, çıkarma, arttırma vb.) yapan aritmetik ünitesi (AU) diğeri ise lojik işlemleri (and. or, xor vb.) gerçekleştiren lojik ünitesidir. Fonsiyon ünitesinin, yapılacak fonksiyonu seçen 5 bitlik FS girişi vardır. FS nin fonksiyon tablosu Tablo-1 ile verilmiştir. Fonksiyon ünitesinde kaydırma işlemleri yalnızca B adresinde yapılabilinir. Fonksiyon ünitesinin ayrıca 4 adet çıkışı vardır. Bunlar gerçeklenen işlemin sonucu hakkında yorum yapan çıkışlardır. Đşlemin sonucunda taşma varsa V çıkışı, elde varsa C çıkışı, işlemin sonucu negatif ise N çıkışı, 0 ise Z çıkışı lojik 1 verir. 0 iken lojik 1 verir. Veri yolunun hafıza elemanıyla bağlantıyı sağlayan adres out ve data out çıkışları bulunmaktadır. 3.2 Hafıza Elemanı Đşlenecek bilginin depolandığı ve işlenen bilginin tekrar kaydedildiği elemandır. Hafıza elemanı okuma-yazma işlevleri seçmek üzere RW girişi bulunmaktadır. Ayrıca bu elemanda veri yolunun adress out çıkışının bağlandığı adress in ve yine veri yolunun data out çıkışına bağlanan data in girişleri bulunmaktadır. Memory nin çıkışı ise seçilmek üzere mux d ye bağlanır. CLR girişi lojik 1 yapılarak memory sıfırlanabilinir. Çalışmada 2 adet hafıza elemanı tasarlanmıştır. Birincisi davranışsal olarak yazılmış, 2 ise VHDL kütüphanesinden blok olarak kullanılmıştır. Davranışsal olarak tasarlanan belleğin derleme aşaması oldukça uzun bir zaman almaktadır. Ayrıca bu şekilde kullanılan bellek, board üzerinde çok geniş bir alan kullanmaktadır. Blok bellek kullanıldığı durumda ise diğer şekilde çok büyük bir alan kaplayan bölüm tek bir elemanla oluşturulmuş olmaktadır. Ayrıca derlemem işlemi de oldukça ise sürmektedir. Bu projede hafıza elemanı olarak 64Kx16 lık RAM kullanılacaktı ve VHDL kodları buna göre yazıldı. Ancak davranışsal olarak tasarlanan belleğin derleme işleminde yaşanan zorluklar nedeniyle elemanın kapasitesi düşürülmek zorunda kalındı. Şekil-7 ; Bellek - 9 -

TTeekk VVuur ruuşşl lluukk Đşşl Đ lleemcci ii 3.3 Kontrol Ünitesi Đşlemlerin sıralandığı ve düzenlendiği bölümdür. 6 temel yapıdan oluşturulmuştur. Đlki komut hafızasıdır. Komut hafızasında koşturulacak komutlar sıralı olarak saklanır. Programlama işlemi bu elemanda yapılır. Hafıza elemanın giriş ve çıkış sayıları keyfidir. Giriş sayısı arttırıldıkça uygulanabilecek komut sayısı artar. Çıkışlar arttıkça ise koşturulabilinecek komut çeşidi arttırılabilinir. Bizim tasarımımızda 15 giriş ve 19 çıkışlı hafıza elemanı kullanılmıştır. Hafıza elemanının adres girişleri komutların tutulduğu adresi seçmekte kullanılır. Çıkışlar ise veri yolunun anlayamayacağı biçimde kodlanmıştır. Bu kodlar bir kod çözücüyle çözülerek veri yoluna uygulanır. Komut Bitleri Kontrol Kelimesi Bitleri Fonksiyon Tipi Tanımları Bit 18 Bit 17 Bit 16 MB MD RW MW PL JB Registerli ALU fonksiyonları 0 0 0 0 0 1 0 0 X Shifterli ALU fonksiyonları 0 0 1 0 0 1 0 0 X Registerdan memory e yazma 0 1 0 0 X 0 1 0 X Memory den okuma 0 1 1 0 1 1 0 0 X Sabitle ALU fonksiyonu 1 0 0 1 0 1 0 0 X Sabitle shifter fonksiyonu 1 0 1 1 0 1 0 0 X Şartlı dallanma 1 1 0 X X 0 0 1 0 Şartsız zıplama 1 1 1 X X 0 0 1 1 Tablo-2 Opcode Listesi Hafıza elemanında saklanan komutların ilk 7 biti işlem kodunu(opcode) belirtir. Đşlem kodlarının tasarımı tasarımcıya göre değişebilir. Bizim tasarımımızdaki opcodelarım işlem tablosu tablo-2 ile verilmiştir. Komutların geri kalan 12 biti ise komut formatına göre değişik görevler alabilir. Örnek olarak 3 komut formatı ve son 12 bitin görevleri aşağıda gösterilmiştir: 18 12 11 8 7 4 3 0 Opcode Destination (hedef) Source (Kaynak) Register (DR) Register A (SA) Tablo-3a) Register Source (kaynak) Register B (SB) 18 12 11 8 7 4 3 0 Opcode Destination (hedef) Source (Kaynak) Register (DR) Register A (SA) Tablo-3b) Đmmediate Operand (OP) 18 12 11 8 7 4 3 0 Opcode Şekil-8 Kontrol Ünitesi Destination (hedef) Source (Kaynak) Register (DR) Register A (SA) Tablo-3c) Jump and Branch Source (kaynak) Register B (SB) - 10 -

MOOMEENNTTUUM PPr rooj jjee GGr ruubbuu Şekil-9 Kontrol Ünitesi Tablo 3a da gösterilen komut tipi registerlar üzrinde işlem yaptırırken geçerlidir. Yani hem hedef hemde kaynak olarak reg file daki yazmaçlar kullanılıyorsa birinci komut tipi kullanılır. Tablo 3b ise immediate komut tipidir. Bu komut dışarıdan girilen sabit bir sayıyla işlem yapılacağı zaman kullanılır. Tablo 3c deki komut tipi jump and branch tipi olup bu formatta veri yolunda işlem yapılmaz. Zıplama ve dallanma işlemi komutların sıralamsı ile ilgili bir işlemdir. Zıplama işlemi bir adresten sonra koşulsuz olarak, bir sonraki adres değil de istenilen kadar sonraki adrese gitmek için kullanılır. Dallanma işlemi ise bunun şarta bağlı olanıdır. Komut hafızası da diğer hafıza elemanı gibi hem davranışsal olarak kullanılmış, hem de blok olarak kullanılmıştır. Kodlarda her ikisi de görülebilir ve istenilen RAM aktive edilerek kullanılabilir. Kontrol ünitesinin diğer bir elemanı program sayıcı(program counter-pc) dır. Program counter komut hafızasının adres girişlerine bağlanır yani bir sonraki komutun hangisi olacağını program counter belirler. Eğer program counter ın yükleme girişi lojik 0 olur ise program counter içeriğini bir arttırır yani hafızanın bir sonraki adresini adresler. Yükleme girişinin lojik 1 olduğu durumda ise counter içeriğini extend isimli elamanın içeriği ile toplayarak çıkış verir. Yani hafızanın yeni adresi bir sonraki adres değil extend in gösterdiği kadar sonraki adrestir. Bunu adına zıplama denir. Program sayıcının yükleme girişi ise dallanma konrolü isimli elemana bağlıdır. Diğer bir eleman olan dallanma kontrol (branch control) dallanmanın olup olmayacağına, eğer dallanma olacaksa onun şarta bağlı olup olmayacağına, eğer şarta bağlıysa hangi şarta bağlı olacağına karar verir. Branch kontrolün 4 girişine fonksiyon ünitesinin yorumlama çıkışları (V, C, N, Z) bağlıdır. Bunlar dallanma şartlarını gösterirler. Branch control ün diğer üç girişine ise PL, JB ve BC girişleri bağlıdır. PL(Program load) girişi dallanma yada zıplama olup olmayacağına karar verir. PL 1 iken JB 1 ise branch kontrolün çıkışı lojik 1 olur yani PC de yükleme yapılır. Başka bir değişle zıplama(jump) yapılır. - 11 -

TTeekk VVuur ruuşşl lluukk Đşşl Đ lleemcci ii PL 1 iken JB 0 ise koşula bağlı olarak dallanma yapılır. Dallanma yapılacak koşula ise BC karar verir. Dallanma koşul tablosu tablo-4 ile verilmiştir. Tablo-4 Şekil-10 Kontrol Ünitesi Branch kontrol isimli eleamnın çıkışı Boulean diliyle aşağıdaki gibi ifade edilebilinir: branch_out <= PL A D (selection OR JB) Kontrol ünitesinin diğer bir elemanı ise extend(sunucu) dur. Bu eleman zıplamanın kaç basamak ileri veya geriye yapılacağını PC ye bildirir. 8 bitlik girişlerinin ilk 4 biti komut hafızasının 11-8 arasındaki çıkışlarına, son 4 biti ise 3-0 arasındaki çıkışlarına bağlanır. Extend in çıkışı ise PC ile uyumlu olabilmesi için PC nin giriş biti sayısı kadar olmalıdır. Eksik kalan bitler extend tarafından doldurulur. Eğer extend in MSB(en değerli bit) i lojik 1 ise kalan bitler lojik 1 ile 0 olması durumunda ise lojik 0 ile doldurulur. Bu yolla çıkışın işareti korunmuş olunur. Zero-fill, kontrol üniteinin bir diğer elemanıdır. Komut hafızasında kullanılmış olan sabit bir sayıyı veri yoluna bağlar. Đmmediate komut tipinde de görüldüğü gibi, sabit sayı kullanımında kullanılacak sabit (operand) komutun son 4 bitine yerleştirilmiştir. Bu çıkışlar veri yolunun MUX B sine bağlanırken eksik bitler olacaktır çünkü operand 4 bitlikken multiplexer 16 bitliktir. Eksik kalan bitler ise zero-fill tarafında 0 ile doldurulur. Bu şekilde operand veri yoluna uyumlu hale getirilmiş olunur. Kontrol ünitesinin son elemanı komut çözücü (instruction decoder)dır. Komut çözücü komut hafızasında bulunan komutları veri yolunun anlayacağı dile çevirir. Komut çözücü opcode ları hazırlanma tarzına göre keyfi olarak tasarlanabilir ve opcodelarla yakın bir ilişki içindedir. Komut çözücünün iç yapısı tablo-2 ye göre düzenlenir. Şekil-8 ile komut çözücünün iç yapısı görülmektedir. - 12 -

MOOMEENNTTUUM PPr rooj jjee GGr ruubbuu Şekil-11,12 Đnstruction Decoder 4.Yazılım Bazında Simulasyonlarla Sistemin Đncelenmesi Tasarımın simulasyonu ModelSimXE III 6.0a isimli programda yapılmıştır. Simulasyon için, en temel bilgisayar kodlarını içeren aşağıdaki program koşturulmuştur. 1) Đşlem: R1 0011 Adres:1 Tanım: Movi-Move data (immediate) Kod: "1010000000100000011" when "000000000000000", --70103 2) Đşlem: R2 0101 Adres:2, Tanım: Movi-Move data (immediate) - 13 -

TTeekk VVuur ruuşşl lluukk Đşşl Đ lleemcci ii Kod: "1010000001000000101" when "000000000000001", -5 3) Đşlem: R3 R1+R2 Adres:3 Tanım: Add Addition Kod: 0000010001100010010" when "000000000000010", 4) Đşlem: R4 R3+ 0001 Adres:4 Tanım: Addi Addition (immediate) Kod: "1000010010000110001" when "000000000000011", 5) Đşlem: R5 R4-0011 Adres:5 Tanım: Subi Subtraction (immediate) Kod: "1000101010101000011" when "000000000000100", 6) Đşlem: R4 R5-R1 Adres:6 Tanım: Sub Subtraction Kod: "0000101010001010001" when "000000000000101", 7) Đşlem: R5 R3 AND 1111 Adres:7 Tanım: Andi AND (immediate) Kod: "1001000010100111111" when "000000000000110", 8) Đşlem: R10 R1 AND R2 Adres:8 Tanım: And AND Kod: "0001000101000010010" when "000000000000111", 9) Đşlem: R6 R4 OR R1 Adres:9 Tanım: Or OR Kod: "0001010011001000001" when "000000000001000", 10) Đşlem: R6 R1 OR 1111 Adres:10 Tanım: Ori OR (immediate) Kod: 1001010011000011111" when "000000000001001", 11) Đşlem: R7 NOT R4 Adres:11 Tanım: Not NOT Kod: "0001110011101000000" when "000000000001010", 12) Đşlem: R6 R1 R10 Adres:12 Tanım: Xor XOR Kod: "0001100011000011010" when "000000000001011", 13) Đşlem: R4 R1 1111 Adres:13 Tanım: Xori XOR (immediate) Kod: "1001100010000011111" when "000000000001100", 14) Đşlem: If [R2= 0 ] then NA=16 Adres:14 Tanım: Beq Branch if equal to 0 Kod: "1100011000000100011" when "000000000001101", 15) - 14 -

MOOMEENNTTUUM PPr rooj jjee GGr ruubbuu Đşlem: If [R8= 0 ] then NA=20 Adres:15 Tanım: Beq Branch if equal to 0 Kod: "1100011000010000110" when "000000000001110", 16) Đşlem: If [R8 0] then NA=25 Adres:21 Tanım: Bne Branch if not equal to 0 Kod: "1100111000010000101" when "000000000010100", 17) Đşlem: If [R2 0] then NA=26 Adres:22 Tanım: Bne Branch if not equal to 0 Kod: "1100111000000100101" when "000000000010101", 18) Đşlem: NA=30 Tanım: Ba Branch always Adres:27 Kod: "1110000000000000100" when "000000000011010", 19) Đşlem: R3 sl R5 Adres:31 Tanım: Sll Logical shift left Kod: "0011000001100000101" when "000000000011110", 20) Đşlem: R2 sr R3 Adres:32 Tanım: Srl Logical shift right Kod: "0010100001000000011" when "000000000011111", 21) Đşlem: M [R2] R1 Adres:33 Tanım: Sw Store word Kod: "0100000000000100001" when "000000000100000", 22) Đşlem: R6 M [R5] Adres:34 Tanım: Lw Load word Kod: "0110000011001010000" when "000000000100001", 23) Đşlem: R2 R6 Adres:35 Tanım: Mov Move data between registers Kod: "0000000001001100000" when "000000000100010", 24) Đşlem: NOP Adres:36 Tanım: Nop No operation Kod: "1100000000000000001" when "000000000100011", 25) Đşlem: HALT Adres:37 Tanım: Hlt Halt Kod: "1110000000000000000" when "000000000100100", Yukarıdaki 25 komut koşturulduğunda elde edilen sonuç resim-1 ile gösterilmiştir. Simulasyonda giriş olarak yalnızca üç elemanın CLR girişleri verilmiştir. En başta CLR verilerek sıfırlanmışlardır. Görüleceği gibi simulasyon 25 komutlu programı başarıyla koşmuştur. - 15 -

TTeekk VVuur ruuşşl lluukk Đşşl Đ lleemcci ii 5. Sonuçlar Basit bir tek vuruşlu işlemci yapılarak simulasyonu yapıldı. Bu sayede en basit yapıdaki bir işlemin yapısı, tasarımı, çalışma prensipleri daha iyi anlaşıldı. VHDL ile çalışılması bu dili daha iyi kullanma becerisi kazanıldı. Ayrıca daha detaylı ve gelişmiş bir proje tasarımı için gerekli önbilgiye sahip olundu. Tasarıma özel sonuçlara gelince: tasarlanan sistemin kaynak kullanımı şöyledir: - 16 -

MOOMEENNTTUUM PPr rooj jjee GGr ruubbuu Đşlemcinin zamanlama raporu ise şu şekilde alınmıştır: 6.Referanslar Logic and Computer Design Fundamentals, M.Morris Mano, Charles Kime, Prentice Hall 2nd Edition, 2000. Digital Systems 2, EEE 222 Course Notes, Prof.Dr. Đrfan ALAN, 3rd Edition Circuit Design with VHDL,Volnei A. Pedroni,MIT Pres,Cambridge, Massachusetts, London, England http://tr.wikipedia.org/wiki/cpu, http://tr.wikipedia.org/wiki/m%c4%b0b_tasar%c4%b1m%c4%b1 http://www.msxlabs.org/forum/bilgisayar-bilesenleri-hardware/20985-cpucentral-processing-unit-merkezi-islem-birimi.html http://www.systemdizayn.com/board/showthread.php?t=247 Dıgıtal Sımulatıon And Processor Desıgn, Davıd Currıe, St John s Colleg - 17 -

TTeekk VVuur ruuşşl lluukk Đşşl Đ lleemcci ii Resim-1 Simulasyon Sonuçları - 18 -

MOOMEENNTTUUM PPr rooj jjee GGr ruubbuu - 19 -