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

Benzer belgeler
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İ. PC-SPIMGirişi(MIPS R2000 Simulatörü)

KASIRGA -4 Buyruk Tasarımı Belgesi Ankara

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

K uark projesi. Temel Özellikler :

MTM 305 MİKROİŞLEMCİLER

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İ

BM-311 Bilgisayar Mimarisi

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

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ı

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

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

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

NESNEYE YÖNELİK PROGRAMLAMA

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

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

BM-311 Bilgisayar Mimarisi

1.1. Yazılım Geliştirme Süreci

Komutların Yürütülmesi

Adresleme Modları. Mikroişlemciler ve Mikrobilgisayarlar

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

MIPS assembler language de branching

DENEY II RAPORU MİKROİŞLEMCİ UYGULAMALARI LABORATUVARI

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

C Dersi Bölüm 1. Bilgisayar Donanımı

Bilgisayar Mimarisi Nedir?

Mikroçita. Mikroçita Rapor 2:

KASIRGA 4. GELİŞME RAPORU

BM-311 Bilgisayar Mimarisi

Quiz:8086 Mikroişlemcisi Mimarisi ve Emirleri

Mikroişlemcili Sistemler ve Laboratuvarı 8.Hafta

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

Von Neumann Mimarisi. Mikroişlemciler ve Mikrobilgisayarlar 1

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

HSancak Nesne Tabanlı Programlama I Ders Notları

Doğu Akdeniz Üniversitesi Bilgisayar Mühendisliği Bölümü. BLGM 318 Ara Sınavı Đlkbahar Dönemi 13 Nisan Ad, Soyad Öğrenci No.

EM205 26/9/2014. Programlamaya giriş Algoritmalar. Amaçlar

8086 Mikroişlemcisi Komut Seti

Bölüm 3: Adresleme Modları. Chapter 3: Addressing Modes

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

İşletim Sistemlerine Giriş

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

MTM 305 MĠKROĠġLEMCĠLER

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

DERS 4 MİKROİŞLEMCİ PROGRAMLAMA İÇERİK

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

BİH 605 Bilgi Teknolojisi Bahar Dönemi 2015

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

İşletim Sistemlerine Giriş

BM-311 Bilgisayar Mimarisi

ALGORİTMA ANALİZİ. Cumhuriyet Üniversitesi Bilgisayar Mühendisliği Bölümü

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

Ozet. Review pointers (in C) Memory Addressing

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

İşletim Sistemleri (Operating Systems)

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

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

Bölüm 5: ARITMETIK VE MANTIK IŞLEM YAPAN KOMUTLAR

BM-311 Bilgisayar Mimarisi

PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir.

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

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

Bölüm 6. Diziler (arrays) Temel kavramlar Tek boyutlu diziler Çok boyutlu diziler

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi

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

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.

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

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

MİKROBİLGİSAYAR LABORATUVARI DENEY RAPORU

Bölüm1. İlk Bilgiler ISBN

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

BIL321 VERİ İLETİŞİMİ LABORATUVARI

Deney No Deney Adı Tarih. 3 Mikrodenetleyici Portlarının Giriş Olarak Kullanılması / /201...

MİKROİŞLEMCİLER 1 Ders 1

Ders 3 ADRESLEME MODLARI ve TEMEL KOMUTLAR

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

Bölüm Bazı Temel Konseptler

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

Bilgisayar Programlama. Giriş

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

BLGM BÖLÜM. Problem Çözme Kavramları (Algoritma ve Akış Şemaları)

T.C. MALTEPE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ LİSANS PROGRAMI Bahar Yarıyılı

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

BIL411 - BİLGİSAYAR AĞLARI LABORATUVARI

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

BM-311 Bilgisayar Mimarisi

Bilgisayar İşletim Sistemleri BLG 312

Yrd. Doç. Dr. Caner ÖZCAN

PASCAL PROGRAMLAMA DİLİ YAPISI

Bilgisayar Programlama. 1.Hafta

Mikroişlemci Nedir? Mikrodenetleyici Nedir? Mikroişlemci iç yapısı Ders Giriş. Mikroişlemcili Sistem Uygulamaları

8086 dan core2 ya yazaç yapısını tanımak. Bayrak yazacının içeriğinde yer alan bayrakların görevlerini tanımlamak. Real mod çalışmada bellek

Aritmetiksel Komutlar

1. Ders Giriş. Mikroişlemcili Sistem Uygulamaları

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

İnternet Programcılığı Öğr. Gör. Serkan AKSU PHP de Dizi-Değişkenler, Nesneler. Dizi Oluşturma. Tek Boyutlu Diziler

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

Bölüm 3 Toplama ve Çıkarma Devreleri

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

MİKROBİLGİSAYAR LABORATUVARI DENEY RAPORU

MİKROBİLGİSAYAR LABORATUVARI DENEY RAPORU

Transkript:

DOĞU AKDENİZ ÜNİVERSİTESİ BAHAR 2012-2013 BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BLGM-324 BİLGİSAYAR MİMARİSİ DENEY #2 DİZİLERE ERİŞİMDE MIPS BELLEK TALİMATLARI Amaç: Veri bölütü kullanımını ve tek-modüllü dizi kullanan çevirici programlarını tanımak. Değişkenlerde adres yerine sembol kullanarak anlaşılabilir çevirici programların geliştirilmesi. Giriş: Yüksek seviyeli dillerdeki programlarda değişkenleri aritmetik komutlarda doğrudan kullanabilsek te, MIPS çeviricide aritmetik komutun işlenenleri bellekteki değişkenler olamaz. Bu komutların işlenenleri sadece az sayıdaki genel amaçlı yazmaçlar olabilir. MIPS mimarisinde ($0, $1, $2,., $31) ile gösterilen toplam 32 yazmaç bulunur. Bu yazmaçlar sınırlı sayıda olmaları nedeniyle bellekte tutulan programlama dili değişkenlerinden farklıdır. Sınırlı sayıda olan bu yazmaçların içeriklerini okuma ve yazma hızı çok yüksektir. Yazmaç sayısı daha da fazla olsaydı, adres kodlarını çözmek için daha fazla kapı gerekecek, ve bu yüzden yüksek gecikmeler oluşacaktı. Bu gibi nedenlerle adres kodunu çözen kapılarda oluşan gecikmeler saat çevrim zamanını arttırır ve işlemciyi yavaşlatır. Çoğu programlama dillerinde tek öğeli basit veri tiplerinin yanısıra tamsayı diziler gibi daha karmaşık veri yapıları da yaygın olarak kullanılır. Bu karmaşık veri yapıları işlemcideki yazmaç sayısından fazla veri elemanları içerebilir. Verileri sınırlı sayıda yazmaca saklayan işlemcinin böyle bir işlemci büyük veri yapılarına erişebilmesi ve bu yapıları işleyebilmesi işlemcinin milyonlarca veri elemanını saklayabileceği bellek sistemine erişebilmesiyle çözülür. Böylece, dizi gibi büyük veri yapıları bellekte saklanır ve verinin sadece işlenecek olan bölümü gerekli yazmaça yüklenir. MIPS mimarisi dizilere yönelik bellek aktarma komutlarını da sağlar. Bellekten yazmaça veri aktarımı load word (lw) komutu ile sağlanır. lw $hedef, offset($baz) Bellekte offset+$baz adresindeki değer $hedef e yükleniyor. Örneğin; lw $20, 10000 ($0) : (10000+$0) adresindeki veriyi yazmaç $20 ye yükler. Yazmaçtan belleğe veri aktarımı store word(sw) komutu ile yapılır. sw $kaynak, offset($baz) $kaynak yazmaçını bellekte offset+$baz adresinden başlayan 32 bite saklar. Örneğin; sw $10, 20000($2): yazmaç $10 daki değeri bellekte adres (20000+$2) e saklar. Hem lw hem de sw komutlarının ofseti 16-bitlik işaretli tamsayıdır. Ancak, sözde-komutlara izin verildiğinde, lw ve sw komutlar 32-bitlik adresleri de kabul eder ve 16-biti geçen adresler için sözde-komutları gerçekleştirmek üzere 16-bitlik ofset için lui, add, sw yada lw komutlarının birleşimini kullanır. 1

DENEYSEL ÇALIŞMA: Bölüm 1: Bellek kullanan komutları (lw ve sw) anlamak üzere aşağıdaki programı "exp2a.s" dosyasına yazarak MIPS çevirici programını çalıştırınız. Bu programda örneğin: la $dest,<label> gibi MIPS sözde-komutları da kullanılmıştır. Lw ve sw sözde-komutları 32 bitlik ofsete sahiptir. Bundan dolayı, bu sözde-komutları kullanabilmek için SPIM deki pseudo-code diyalog-kutusu işaretlenmiş olmalıdır. (alt-s,s) Not: program sayacı PC yi 0x00400000 adresinden başlayacak ilk değeri vermeyi unutmayınız..data 0x10000000 # A[] is array with a trailing zero. A:.word 100,120,35,50,83,530,0,0 Count: Sum: Result: Remainder: EndofData:.word -1 # End of data segment, code starts here from address 0x00400000 # Turn-off bare-machine, and turn-on pseudo-instruction options. 2

.text.globl main main: # finding average of A[] la $2,A # pseudo-instruction load-address A[.] or $8,$0,$0 # 0 -> $8, count or $10,$0,0 # 0 -> $10, sum slp: lw $11,0($2) # A[i] -> $11 beq $11,$0,slx add $10,$10,$11 # A[0]+...+A[i] -> $2 addi $8,$8,1 # ++count addi $2,$2,4 # address of(a[i+1]) -> $2 j slp # loop until getting the zero slx: # save the count sw $8,Count($0) sw $10,Sum($0) # divide $10 by $8, use count of repeating subtractions. div $10,$8 # quotient is in LO, reminder is in HI mflo $11 # move from LO to $destination mfhi $10 # move from HI to $destination sw $11,Result($0) # mean sw $10,Remainder($0) # and this is the reminder of division syscall # for the sake of SPIM add below one empty line 3

Bölüm 2-PROGRAM YAZMA A[] dizisinde verilen dört 32-bitlik sayının (30, 40, 50, 60 gibi) her elemanı için toplamlarının elemana oranını res[] dizisine koyacak bir program yazın. Örneğin A[]=(30, 40, 50, 60) için toplamları 180 ediyor. Program çalışınca (res[0] 180/30; res[1] 180/40; res[2] 180/50; res[3] 180/60) olacak. SPIM çeviricinin doğru çalışabilmesi için en sona bir boş satır ekleyiniz. Programı derleyip çalıştırdıktan sonra elde ettiğiniz sonucu raporunuza doldurup asistanınıza iletiniz. 4

İsim: Öğrenci No: BLGM-324 BİLGİSAYAR MİMARİSİ DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ DENEY #2 Bölüm-1: Veri bölütünün satırlarını aşağıdaki gibi doldurun program çalıştıktan sonra veri bölütünden okuduğunuz değerleri 16 lı sayı olarak yazın. Bölüm-2: Programlama Deneyi 1- Veri kümeniz: 2- Değişikliklerden sonra: Notlandırma: 5