KAFA Open-Source/Open-Implementation, 32-bit CPU

Slides:



Advertisements
Benzer bir sunumlar
BİLGİSAYAR, DONANIM VE YAZILIM KAVRAMLARI
Advertisements

Prof.Dr.Şaban EREN Yasar Üniversitesi Fen-Edebiyat Fakültesi
SelCPU Temmuz 2008 Bilg.Bil.Müh.Selçuk BAŞAK SelSistem Bilgi ve İletişim Teknolojileri
AES (Advanced Encryption Standart)
Değişkenler ve bellek Değişkenler
DERS 7 PIC 16F84 PROGRAMLAMA.
Prof. Dr. Eşref ADALI Yrd. Doç. Dr. Şule Gündüz Öğüdücü SürümA
Bilgisayar Yapısı-Genel
CPU Tasarım – 2 Single – Cycle CPU Veriyolu Tasarımı
CPU Tasarım – 3 Single – Cycle CPU Controller Tasarımı
Veri İletiminde Hata Kontrol Yöntemleri
Yönetim Bilgi Sistemleri Şubat TAPU VE KADASTRO GENEL MÜDÜRLÜĞÜ.
CPU (Merkezi İşlem Ünitesi)
HAZIRLAYAN:SAVAŞ TURAN AKKOYUNLU İLKÖĞRETİM OKULU 2/D SINIFI
1 ÖMER ASKERDEN EMLAK KREDİ İLKÖĞRETİM OKULU UZMAN MATEMATİK ÖĞRETMENİ AKSARAY ÜNİTE: HARFLİ İFADELER VE DENKLEMLER KONU:HARFLİ İFADELERİ ÇARPANLARA AYIRMA.
DERS 6 PIC 16F84 PROGRAMLAMA.
İŞLEM ÖNCELİĞİ MATEMATİK 5,6.
ARALARINDA ASAL SAYILAR
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
PIC 16F84 ile ALT PROGRAMLARIN ve ÇEVRİM TABLOLARININ KULLANIMI
Marmara Ünv. Bilgisayar Mühendisliği Bölümü
DERS 6 PIC 16F84 PROGRAMLAMA.
Cpu Nasıl Çalışır?. -A- 2 tuşuna basılması MİB’ini uyarır ve Komut Cache’inde (Instruction Cache) bir şey olmadığından yeni veri üzerinde ilgili komutların.
Tam sayılarda bölme ve çarpma işlemi
Register ve Türleri Nihal GÜNGÖR.
TEST – 1.
DERS 8 PIC 16F84 PROGRAMLAMA.
Temel tanımlar ve işleyiş
Bilgisayar Organizasyonu
HABTEKUS' HABTEKUS'08 3.
EĞİTİMDE ÖLÇME VE DEĞERLENDİRME
Mikroişlemciler ve Mikrobilgisayarlar
3- IP ADRESLEME Yrd. Doç. Dr. Ersoy ÖZ.
DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ
DERS 5 PIC 16F84 PROGRAMLAMA.
DERS 14 PIC 16F84 ile EEPROM VERİ BELLEĞİ KULLANIMI.
Soru 4.6 Bir sayısal bilgisayar sisteminde seçicilerle oluşturulmuş 32 bitlik 16 yazaçlı veri yolu sistemi var. Her seçici için kaç seçim girişi kullanılır?
Tam Sayılarda Çarpma İşlemi
Birleşik Mantık Devreleri
Dersin Kapsamı Bilgisayar Nedir, Ne Yapar?
Çocuklar,sayılar arasındaki İlişkiyi fark ettiniz mi?
T M SAYI AR Z.
ÖĞR. GRV. Ş.ENGIN ŞAHİN BİLGİ VE İLETİŞİM TEKNOLOJİSİ.
SAYISAL SİSTEM TEORİSİ
Sayı Sistemleri Geçen Hafta Analog ve Sayısal Büyüklük Kavramı
Sayı Sistemleri Geçen Hafta Kayan Noktalı Sayılar
ANALOG-SAYISAL BÜYÜKLÜK VE SAYI SİSTEMLERİ
BİLGİSAYAR MİMARİLERİ 2.Hafta: Bilgisayar Bileşenleri
Karşılaştırıcı ve Aritmetik İşlem Devreleri
BİLGİSAYAR MİMARİLERİ 7.Hafta: Çoklu-Çevrim İşlemci
ENDÜSTRİYEL GÖMÜLÜ BİLGİSAYAR SİSTEMLERİ
DERS 4 MİKROİŞLEMCİ PROGRAMLAMA. Dr. Emin Argun Oral, Atatürk Üniversitesi 2008 Ders 4, Slayt 2İÇERİK Yüksek seviyeli programlama dilleri Düşük sevyeli.
BİLGİSAYAR MİMARİLERİ 11.Hafta: Pipeline Sorunları
BİLİŞİM TEKNOLOJİSİNİN TEMELLERİ
Giri ş 1 Mikroişlemciler. İçerik 2 Tarihi geli ş im Tanımlar Mikroi ş lemci tabanlı sistemler Sayı sistemleri.
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
Mikroişlemciler Giriş.
Cpu Nasıl Çalışır?.
Bilgisayar Donanım ve Sistem Yazılımı
PROGRAM KONTROL KOMUTLARI 1. if koşulu 2. if else koşulu
Tolga Ayav, K.Atilla Toker İzmir Yüksek Teknoloji Ensitütüsü
Bilgisayar Mühendisliğine Giriş
NİŞANTAŞI ÜNİVERSİTESİ
7.SINIF TAM SAYILAR İrfan KAYAŞ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
Sunum transkripti:

KAFA Open-Source/Open-Implementation, 32-bit CPU Proje Yetkilisi: Deniz ALTINBÜKEN Proje Danışmanı: Prof. Emin Gün Sirer Projenin Bağlı Olduğu Kurum: Koç Üniversitesi, Bilgisayar Mühendisliği Bölümü

Desteklenen Komutlar J, JR, JAL BEQ, BNE, BLEZ, BGTZ LW, SW, MOV, MOVI LUI ADDIU, ANDI, ORI, XORI, SUBI ADDU, SUBU, AND, OR, XOR, NOR, CMP, NOT SLL, SLA, SRL, SRA, SLLV, SRLV, SRAV

Desteklenen Komutlar Java koduyla oluşturulmuş olan Program Counter implementasyonunda aşağıdaki komutlar bulunmadığı için simülasyonları yapılamamıştır. Fakat implementasyonları yapılmıştır ve işlemci içerisinde simüle edilmemiş olsalar da çalışma durumları ayrı ayrı test edilmiştir. SUBI, MULT, MULTI, MULTU, CMP, NOT SLA, MOV, MOVI, JAL, HLT, SYSCALL

Örnek Adres Dağılımı Adres dağılımına göre hangi Register’dan okuma yapılacağı, hangi Register’a data kaydı yapılacağı, yukarıdaki örnekte verilen sayının kaç bit kaydırılacağı gibi bilgiler ayrıştırılır. Bu ayrıştırma ve Adres değerine göre karar alma süreci iki adet Control Unit tarafından yapılmaktadır.

Örnek MIPS Diagramı Turuncu çizgiler bilgi akışının sağlandığı yolları, siyah çizgiler ise 32-bitlik adres değerlerinin akışının sağlandığı yolları göstermektedir.

Genel Dizayn

ALU Dizaynı • Temel Aritmetik ve Lojik işlemler ALU’da gerçekleştirilmektedir. • ALU 32-bitlik işlemler için tasarlanmıştır. • Hangi işlemin yapılacağına karar verilmesi için kullanılan opcode ALU Kontrol Ünitesinde oluşturulmaktadır. • ALU’da işlem görecek olan değerlerin nereden geleceği Ana Kontrol Ünitesinde oluşturulan kontrol datalarına bağlıdır. • MULT işlemi ALU’ya gömülememiştir fakat kendi içerisinde çalışır durumdadır.

32-bit Toplama-Çıkarma Ünitesi Çıkarma işlemi Two’s Complement Mantığı implement edilerek yapılmıştır: 1011 – 0011 = 1011 + 1100 + 1 = 1000

1-bit Toplama-Çıkarma Ünitesi Toplama-Çıkarma Ünitesi’nin yapıtaşı olan bu 1-bitlik ünite 32-bit sayılara ait her bit toplanırken kullanılmaktadır. Ardarda yapılan toplama işlemleri arasında ‘elde kalan değer’ler bir önceki işlemden bir sonrakine taşınmaktadır.

32-bit Right Shifter Ünitesi Bu ünite içerisinde 5 katmanda 25-bitlik sağa kaydırma işlemi yapılmaktadır. İlk katmanda 2-bit, ikinci katmanda 4-bit, üçüncü katmanda 8-bit... kaydırma prensibine göre çalışmaktadır.

32-bit Total Shifter Ünitesi Bu ünite içerisinde sadece Right Shifter kullanılarak Right ve Left-Shift işlemleri yapılmaktadır. Left-Shift işlemi aşağıda gösterilen mantığa göre yapılmıştır: 101111 << 2 = R(R(101111) >> 2)) = R(111101 >> 2) = R(001111) = 111100

32-bit Çarpma Ünitesi • Bu ünite içerisinde iki 32-bit sayının çarpım işlemi hem pozitif hem de negatif sayılar için gerçeklenmiştir. • İmplementasyonda bilinen çarpma işlemi mantığı kullanılmıştır: İlk sayı ikinci sayının her biti ile çarpılır ve her çarpma işlemi sonrasında kaydırma işlemi yapılır. Elde edilen tüm sayılar toplanır ve sonuç elde edilir. • Bu ünite içerisinde yapılan toplama, çıkarma ve kaydırma işlemleri 64-bitlik sayılar üzerinde yapıldığı için 64-bitlik toplama-çıkarma ve kaydırma ünitesi tasarlanmıştır.

32-bit ile 1-bit Çarpma Ünitesi • 32-bitlik bir sayının her bitinin 1-bit ile çarpıldığı 32-bitlik Çarpma Ünitesinin yapıtaşı olan ünitedir. • Çarpma işlemi 32-bit için ayrı ayrı 32 adet AND işlemi yapılarak gerçekleştirilmiştir.

64-bit Toplama-Çıkarma Ünitesi • Bu ünite Çarpma Ünitesi içerisinde oluşturulan 64-bitlik sayıların toplanması için tasarlanmıştır. • Yapıtaşı olarak 1-bitlik toplama çıkarma ünitesi kullanılmıştır.

64-bit Right Shifter Ünitesi • Bu ünite içerisinde 64-bitlik bir sayının 5 katmanda 25-bitlik sağa kaydırma işlemi yapılmaktadır. • Bu ünite Çarpma İşlemi sırasında yapılması gereken kaydırmaların gerçekleştirilmesi için ilk adım olarak tasarlanmıştır.

64-bit Total Shifter Ünitesi • Bu ünite içerisinde 64-bitlik bir sayının sağa ve sola kaydırma işlemleri yapılmaktadır. • Sola kaydırma işlemi 32-bit Total Shifter Ünitesinde olduğu gibi Right Shifter kullanılarak yapılmıştır.

PC Güncellenme Detayı • Görülen Program Counter Jump ve Branch olmadığı durumlarda Program ROM’u dörder satır ilerletmektedir. Jump veya Branch olduğu durumlarda yeni PC değeri PC’nin solunda ve üzerinde kalan kısımlarda hesaplanmaktadır.

Ana Kontrol Ünitesi Ana Konrol Ünitesinde ALUda yapılacak işlemler için opcode ayrıştırılması, okunacak ve yazılacak dataları kontrol edecek değerlerin oluşturulması, Branch ve Jump gibi komutlara karar verilmesi gibi işlemler yapılmaktadır.

ALU Kontrol Ünitesi ALU Konrol Ünitesinde ALUda yapılacak işleme karar verilmesi için gerekli olan 4-bitlik opcode Ana Kontrol Ünitesinden gelen ALUop, address değerinden alınan opcode ve function değerleri işlenerek yaratılmaktadır.

Memory Ünitesi Detayı Memory Ünitesi Memory’ye kayıt ve Memory’den okuma işlemleri sırasında kullanılmaktadır. Okuma ve yazma işlemleri Ana Kontrol Ünitesi içerisinde üretilen değerler ile kontrol edilmektedir.

Branch Detayları Branch komutunun yerine getirilip getirilmeyeceğine 4 farklı Branch Ünitesi içerisinde ayrı ayrı karar verilmektedir. Branch senaryosuna göre, ALU’dan gelen veriler bu üniteler içerisinde yorumlanır ve alınan karara göre PC değerinin update edilmesi için komut gönderilir.

Simülasyon Simülasyon için Program ROM’a çalıştırılacak Assembly Kodu yüklenmiş ve Clock ilerlerken Register File, Memory ve Program ROM’daki değişiklikler izlenerek beklenen değerlerin elde edilip edilmediği incelenmiştir. Alınan değerler beklenen değerlerle aynıdır.

Simülasyon

Simülasyon

Simülasyon

Simülasyon • Simülasyonlar sırasında isteğe yönelik olarak hazırlanmış ya da C Kodundan compile edilerek hazırlanmış (.s formatında) Assembly Kodları kullanılmıştır. Örnek kodlar aşağıda verilmiştir. ORI $14, $0, 4 SLLV $11, $12, $14 SRAV $11, $13, $14 SRLV $11, $13, $12 SW $29, 16($25) LW $10, 12($26) ORI $12, $28, 56 ... BEQ $29, $30, ARI1 #NO_APP ori $29,$29,0 ori $29,$30,0 lw $30,0($29) addiu $29,$29,8 jr $31 .end putc .align 2 .globl getc .ent getc .type getc, @function

Detaylı Bilgi İçin... Bu sunum içerisinde projenin yalnızca temel noktalarına değinilmiştir. İşlemcinin dizaynı sırasında kullanılan prensiplerin, işlemcinin yapısının ve simülasyon verilerinin daha detaylı anlatımı hazırlamış olduğum rapor içerisinde bulunmaktadır. Teşekkür ederim.