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



Benzer belgeler
x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

Mikroçita. Mikroçita Rapor 2:

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi

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

BM-311 Bilgisayar Mimarisi

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

8086 Mikroişlemcisi Komut Seti

Mikrobilgisayar Sistemleri ve Assembler

BM-311 Bilgisayar Mimarisi

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

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

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

Mikroişlemcili Sistemler ve Laboratuvarı 6.Hafta

BM-311 Bilgisayar Mimarisi

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

İşletim Sistemleri (Operating Systems)

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

BÖLÜM 2 SAYI SİSTEMLERİ

SPARC v8 İŞLEMCİ SİMÜLASYONU

Quiz:8086 Mikroişlemcisi Mimarisi ve Emirleri

Bilgisayar Mimarisi Nedir?

Bölüm Bazı Temel Konseptler

Bilgisayar Donanım 2010 BİLGİSAYAR

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

DERS 5 PIC 16F84 PROGRAMLAMA İÇERİK. PIC 16F84 bacak bağlantıları PIC 16F84 bellek yapısı Program belleği RAM bellek Değişken kullanımı Komutlar

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

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

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

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

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

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

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

İŞLEMCİLER (CPU) İşlemciler bir cihazdaki tüm girdilerin tabii tutulduğu ve çıkış bilgilerinin üretildiği bölümdü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İ

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

Bilgisayar Mimarisi ve Organizasyonu Giriş

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

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

Komutların Yürütülmesi

BENZERSİZ SORUNLARA BENZERSİZ ÇÖZÜMLER

Dr. Fatih AY Tel: fatihay@fatihay.net

Bilgisayarların Gelişimi

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

Digital Design HDL. Dr. Cahit Karakuş, February-2018

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

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

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

Mikrobilgisayar Mimarisi ve Programlama

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

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

BÖLÜM Mikrodenetleyicisine Giriş

Java Temel Özellikleri

Ders 3 ADRESLEME MODLARI ve TEMEL KOMUTLAR

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

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

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

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.

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

İşletim Sistemlerine Giriş

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe

Saklayıcı (veya Yazmaç) (Register)

Von Neumann Mimarisi. Mikroişlemciler ve Mikrobilgisayarlar 1

Bilgisayar Sistemlerine Genel Bakış

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

Bilgisayar Mühendisliğine Giriş

Mikroişlemciler (EE 208) Ders Detayları

Arayüz Nedir? Arayüz Çeşitleri Arayüz Tasarım Yöntemleri Arayüz Tasarım Hataları. Ömer Faruk MIZIKACI

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu

Mikroişlemciler ve Mikrokontrolörlere Giriş (CMPE236) Ders Detayları

Bilgisayarda Programlama. Temel Kavramlar

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

PIC16F877A nın Genel Özellikleri

INVT IVC1. -Kompakt Tip PLC. Marketing 2014 HM

PR Kasım 2009 Yazılım, PC-tabanlı kontrol Sayfa 1 / 5

MİKROİŞLEMCİLER 1 Ders 1

PIC Mikrodenetleyicileri

Bölüm 18 FBs-6AD Analog Giriş Modülü

BLM 221 MANTIK DEVRELERİ

Hacettepe Robot Topluluğu

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

Logix5000 Kontrolörler

KASIRGA 4. GELİŞME RAPORU

MONTE CARLO BENZETİMİ

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

Pre-requisite : EE240

Mikroişlemcili Sistemler ve Laboratuvarı 8.Hafta

BM-311 Bilgisayar Mimarisi

PROGRAMLAMA TEMELLERİ

Bölüm 4 Ardışıl Lojik Devre Deneyleri

William Stallings Computer Organization and Architecture 9 th Edition

Adresleme Modları. Mikroişlemciler ve Mikrobilgisayarlar

Microsoft Office Access Ders İçeriği 25 Saat. Access Temel 10 saat

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

İŞLETİM SİSTEMLERİNE GİRİŞ. Modern bilgisayar çalışma prensipleri, Von Neumann ın 1945 de geliştirdiği

İ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.

Bellekler. Mikroişlemciler ve Mikrobilgisayarlar

VERİ YAPILARI VE PROGRAMLAMA (BTP104)

DENEY NO : 2 DENEY ADI : Sayısal Sinyallerin Analog Sinyallere Dönüştürülmesi

GÖMÜLÜ SİSTEMLER. Bilecik Şeyh Edebali Üniversitesi Gömülü Sistemler Ders notları-1

Transkript:

İşlemci Tasarımı ve Aşamaları Yazar: Erman Üret (ermanuret@gmail.com) Çalışmamızın bu kısmında hazır bir işlemci tasarımı üzerinden gidilerek okuyucuların işlemci tasarımı konusunda izlenim edinmesi ve tasarım aşamalarını öğrenmeleri amaçlanmıştır. Bu işlemci birçok mimari yapıyı içinde barındırdığından eğitimsel olarak değişik mimarilerin tanıtılmasına da yardımcı olacak. Aşağıda ismi verilen makalenin çevirisinden oluşan bu çalışma, örnek olarak tasarlanmış bir işlemcinin teorik anlatımını içermektedir. Bu, kullanıcıla örnek bir işlemci tasarım sürecini gösterir. Tasarlanan işlemci 6 farkılı mimariyi içinde barındırmaktadır. İşlemcinin 6 mimariyi de desteklemesi eğitim amaçlı oluşundan kaynaklanıyor. Böylece dizaynı gerçekleştirilen işlemci, kullanıcının isteğine göre donanımsal olarak (ilgili giriş pinleri kullanılarak) istenen mod da çalıştırılabiliyor. Normal bir işlemci dizaynında ise tasarımcı 6 farklı mimariyiye destek vermek yerine seçtiği mimari üzerinden dizaynını gerçekleştirir. Burada amaç mevcut mimarilerin incelenmesi olduğundan 6 mimarinin bir yapı içerisinde verilmesi oldukça yararlı olmuştur. Verilen işlemcinin simulasyon ve gerçeklenme gibi ileri aşamaları ise daha sonraya bırakılmıştır. Bu yazı L K S Udugama ve Janath C Geeganage nin Students Experimental Processor: A Processor Integrated with Different Types of Architectures for Educational Purposes isimli çalışmasının Türkçe ye çevriminden oluşmaktadır. Çalışmanın orijinal halini ve dökümantasyon kısmında belirtilen materyalleri sitede bulabilirsiniz. Kaynak : http://www.ou.ac.lk/fac_etec/elec/udugama

Öğrenciler için Deneysel İşlemcisi: Eğitsel Amaçlar için Farklı Türde Mimariler ile Entegre İşlemci L S K Udugama, PhD Department of Electrical & Computer Engineering, Faculty of Engineering Technology, The Open University of Sri Lanka. udugama@ou.ac.lk Janath C Geeganage Department of Electrical & Computer Engineering, Faculty of Engineering Technology, The Open University of Sri Lanka. janathg@gmail.com Özet Başlangıç seviyesindeki öğrenciler bilgisayar mimarisi temellerini anlamakta zorluklarla karşılaşırlar. Öğrencilerin problemleri tanımlandıktan sonra proje, belirlenen hedeflerle, bu problemlere hitap edicek şekilde başlatıldı. Proje bölümler halinde gerçeklenmelidir. Bu bölümler; İşlemci dizaynı Simulator dizaynı Derleyici geliştirme ve entegre sistem geliştirme Bu yazı ilk bölümün (işlemci dizaynı) sonuçlarını göstermektedir. İşlemcinin özellikleri ve karakteristiği tanımlanmış ve dizayn işlemleri detaylı bir şekilde anlatılmıştır. SEP (Students Experimental Processor Öğrencilerin Deneysel İşlemcisi) değişik türden mimarileri içinde barındırır. Bu mimariler; Memory Memory Accumulator Genişletilmiş Accumulator Stack (yığın) Register (yazmaç) Memory Load - Store. mimarileridir. İşlemci modlar arasında geçiş yapabilmektedir. VHDL kullanılarak modellenmiştir ve FPGA üzerinde gerçeklenmeye hazırdır.

SEP giriş seviyesi öğrencilerin, bilgisayar mimarisinin karakteristiğini ve operasyonlarını anlamalarını pekiştirecektir. Bilgisayar mimarisi eğitiminin ileriki gelişiminde bu işlemcinin kullanılması da görüşülmektedir. 1) Giriş Srilanka Açıköğretim Üniversitesi Elektrik ve Bilgisayar Mühendisliği Bölümleri Bilgisayar mühendisliğinde mühendislik derecesinde uzmanlaşma imkanı sunuyor. 2002 yılında yeni müfredat tanıtıldı ve bilgisayar mimarisi, bilgisayar mühendisliği alanında ana bileşenlernden birisi oldu. Departmanımızda bilgisayar mimarisi eğitimi basitçe 4 değişik ders ve değişik seviyelerde gösteriliyor. İlk ders, haberleşme ve bilgi teknolojileri. Bu ders ile yeni başlayan öğrenciler işlemci bileşenlerine, bu bileşenlerin birbirlerine nasıl bağlı olduğuna ve nasıl işlevleri olduğuna giriş yapıyorlar. Teori kuramsal makine kullanılarak açıklanmasına rağmen öğrenciler 8051 için simulator kullanarak alıştırmalarını yapıyorlar. Bir sonraki derste microişlemci tabanlı sistemler işleniyor. Burada öğrenciler 8051 geliştirme kartlarını kullanarak labaratuar çalışmalarını yapıyorlar. Sonraki seviyede öğrenciler bilgisayarın beş klasik bileşenini ve performans, çevre elemanları gibi diğer ilgili alanların üzerinde çalışıyorlar. Son seviye öğrenciler ise işlemci dizaynını ve bu dizaynın labaratuar ortamında FPGA üzerinde nasıl gerçekleneceğini öğrenecekler. Özellikle alt seviye kurslardaki öğrenciler bilgisayar mimarisinin temellerini anlamakta bazı güçlüklerle karşılaşıyorlar. Bu güçlüklerden bazıları tanımlandı ve çözüm önerileri üretildi. Deneyimlerimize göre öğrenciler tarafından karşılaşılan problemleri sıralarsak; İşlemcinin basit bileşenlerinin fonksionlarının anlaşılması. İşlemcinin komutları nasıl işlediğinin ve verinin bileşenler arasında nasıl iletildiğinin gözde canlandırılması. Karmaşık, ticari olarak serbest microişlemci ve microdenetleyicilerin assembly dilinde programlanması. Bu gibi sorunlara çözüm olması için bu projeyi başlattık. Proje yapılırken öncelikle bilgisayar ve işlemciler hakkında bir miktar bilgisi olan en alt seviye derslerdeki öğrenciler hedeflendi. Fakat bu projeyi sadece bir ders ile sınırlamak istemiyorduk, aynı zamanda yüksek seviyeli derslerin ihtiyaçlarının karşılanma olasılıklarını da görmek istiyorduk. Bu yüzden aşağıda belirtilen amaçlar hazırlandı; Basit mimarilerin öğretimi, işlmci parçalarının fonksiyonlarının tanıtılması ve bu fonksiyonların basit bir işlemci ya da işlemciler tasarlanarak öğretilmesi. İşlemci ya da işlemcilerin konularla alakalı alıştırmalarda kullanılması.

İşlemci ya da işlemciler için bir simulator yapılması ve bunun işlemcilerin fonksiyonlarının tanıtımında kullanılması. Bu işlemci içindeki data akışını göstermek ve bir assembler programı yazarak çalıştırmak. Microişlemci geliştirme sistemlerinde tedarik kolaylığı sağlamak için aynı işlemciyi kullanmak ve bilgisayar mimarisinin kavramlarını öğretmek. İşlemci dizayn dersinde son seviye inceleme olarak bu işlemcinin kullanılması. Tüm hedeflerimizi karşılayan uygun bir sistem için literatür taraması yaptık, fakat bulduğumuz sistemler ve simulatorler hedeflerimizi tam olarak karşılamıyordu. Daha sonra Computer Architecture Learning System of the Open University of Sri Lanka (CALS-OU) adındaki bu projeye başlamaya karar verdik. Proje aşağıda belirtilen bölümlere ayrılarak yapılacaktır. Basit işlemci dizaynı Program yazmak, hata ayıklamak, programı çalıştırmak için simulator oluşturulması Yüksek seviyeli dillerle kod yazımını mümkün kılmak için bir derleyici geliştirilmesi Son olark da öğrencilerin bilgisayar mimarisinin kavramlarını öğrenmelerini kolaylaştırmak ve bunu deneylerinde kulanabilmeleri için donanım/yazılım entegre sistemin geliştirilmesi. İşlemci tasarımının ilk aşaması tamamlandı ve bu yazı elde edilen sonuçları tanıtıyor. Bizim ihtiyaçlarımızı karşılayacak basit bir işlemci dizayn ettik ve adı Students Experimantal Processor SEP olarak koyduk. 2) SEP i Nasıl Gerçekleyeceğiz? Dizaynın ilk başlarında işlemcinin özelliklerini ve karakteristiğinin nasıl olacağını tanımladık. İlk özellik işlemcinin aşağıda belirtilen 4 mimari türünü de kapsamasıydı. Bunlar; Accumulator Memory Memory Stack Load Store Daha sonra bu türlere 2 tür daha eklemeye karar verdik; Register Memory Extended accumulator

Bu mimarileri eklememizdeki düşüncemiz popüler işlemcilerin de bu mimari yapıları kullanmalarıdır. Sonraki özellik, işlemcinin belirtilen altı mod arasında yazılımsal ya da donanımsal anahtarlar yardımıyla geçiş yapabilmesidir. İşlemciyi basit tutmak ve programcıların kullanımını kolaylaştırmak için 32 den daha az komuta sahip olmasına ve giriş/çıkış (I / O) komutlarının kullanılmamasına karar verdik. Fakat değişik durumlarda öğrencilerin adresleme modlarını kullanmayı öğrenmeleri için adres modlarının sayısını sınırlandırmak istemedik. Dizayn işlemi aşağıdaki bölümleri kapsamaktadır; ISAs (Instruction Set Architecture Komut Seti Mimarisi), uygulanabilir adres modları, adres ve veri yollarının boyutları, GPRs (General Purpose Register Genel Amaçlı Yazmaç) ların sayısı ve boyutu, stack in (yığın) genişliğinin dizaynı. 6 mimari için veri yolarının dizaynı. Değişik komut sınıfları için kontrol sıralarının dizaynı. Üst seviye mimari dizaynı. Bu 6 mimarinin bir işlemci üzerine entegre edilmesi ile oluşuyor. VHDL modelleme. Test. Dökümantasyon. Yazının kalan kısmında dizayn işlemleri, karşılaşılan problemler ve bu problemlere bulunan çözümler anlatılıyor. 3) Komut Seti Mimarisi ISA hakkında genel bir bilgi edinilmesi için basit komutlar komut setine eklendi. Tüm komutlar; Aritmetik Logical, Kontrol, Veri hareketi ve çok yönlü komutlar olarak guruplandırıldı (Tablo 1). Aritmetik Logical ve Kontrol transferi guruplarındaki komutlar tüm mimariler için uygulanabilirdir. Sadece veri transfer komutları makineden makineye değişmektedir. Kontrol transfer komutları bayrak (flag) register ı ile ilişkilidir. Bayrak register ı; eşitlik(parity) bayrağı (eşit olup olmaması), işaret(sign) bayrağı (negatif pozitif), taşma(overflow) bayrağı (bir işlem tasarımındaki bit sayısı ile yanlış ifade ediliyorsa 1, diğer durumlarda 0), elde(carry) bayrağı (bir işlem sonucunda elde oluşmuş ise 1, diğer durumlarda 0) ve sıfır bayrağından (işlem sonucu oluşan sonucun 0 a eşit olup olmaması) oluşan 5 bitlik bir registerdır. Komut sayısı her makine için 32 den azdır.

İşlemcide 7 adresleme modu kullanıldı. Bunlar; Direk Dolayılı İmmediate Register direk Register dolaylı Dizin Yer değiştirme adres modlarıdır. Yer değiştirme adres modu dışındaki modlarda kullanıcının üzerinde işlem yaptığı nesneye (operand) ulaşımı serbesttir. Yer değiştirme adresleme modu donanımsal kontrol transfer komutları tarafından kullanılır. Operandlar ilgili mimariye göre hafızada (memory), register bloğunda, stack te(yığın) ya da accumulatorde bulunur. Adres modları bir bakıma genel ve popüler modları içerecek şekilde tanımlanmıştır. Açıklık ve uyum için aynı komut biçimi bütün mimarilere uygulanmıştır. (Tablo 1 ) Architectu re Memory to Memory Accumulat or Stack Extended Accumulat or Register Memory Load Store Arithmeti c and Logic Table1.In stru tionsavail ableineac arhitectur eadd, SUB, INC, MUL, DIV AND, OR, NOT, XOR, SHL, SHR, ROL, ROR Control Transfer JC, JS, JP, JZ, JOF Call Ret Looz Data Moveme nt LOAD LOADa cc STOREa cc PUSH, POP, DUP, SWAP, ROTAT E3 LOADa cc, STOREa cc LOAD, STORE LOAD, STORE LOAD, STORE Mi sc N O P Tablo 1Her mimari için kullanılabilir komut biçimi

Komutlar iki adress alıcak şekilde tasarlanmışlardır. Hedeflenen işşlemci 16 bitilik 512K hafızaya sahiptr. 512K lık bir adres alanını adresleyebilmek için 19 bitlik bir adres bus ı gereklidir. Herbir komut iki adres içerdiğinden 19*2 = 38 bit adresleme için gereklidir. Komut biçimi (Figure 1); Opcode (komutla hangi işlemin yapılacağı) 5 bit (32 komuta kadar destek) Adresleme mod seçimi 3 bit (8 farklı adresleme moduna destek verebilir) 2 operand için adres alanı 19*2=38 bit (512K adresleyebilme kabiliyeti) Figure 1 Komut un bitlere ayrılmış gösterimi Toplamda 46 bit gerekli oluyor. 16 bitlik hafıza kullandığımızdan 3 hafıza lokasyonu ile komutlar ifade edilebilir. Böylece 3*16=48 bit bir komutun uzunluğu olarak bulunuyor. Kullanılmayan iki bit ise daha sonraki geliştirmelerde kullanılabilir. 4) Sayı Gösterimi Aritmetic Logic Unit (ALU Hesaplama ünitesi) işaretli (yani pozitif ve negatif sayılar) ve tamsayılar üzerinde işlem yapabilecek şekilde tasarlanmıştır. Negatif sayılar 2 s complement (2 ye göre tersi) şeklinde ifade edilmektedir. İşaret sinyali ise 16. bitten 19. bite kadar kopyalanmalıdır. Bunun nedeni ALU nun 19 bitlik sayılar üzerinde işlem yapıcak şekilde tasarlanmasına rağmen veri yolunun ALU ya 16 bitlik veriler taşımasıdır. Bunun için MSB (En değerli bit) 16. biten 19. bite kadar kopyalanmıştır. 5) Veri yolu Dizaynı Bu mimarinin yapısı basit olarak dizyn edildi. Veri yolu operasyonları basitçe gösteren varlıklara sahiptir. Örneğin Memory Memory mimarisi aşağıdaki yapılara sahiptir; IP: Instruction pointer Komut göstericisi MAR: Memory address register Memory adresleme yazmacı IR: Instruction register İşlenecek komutun tutulduğu yazmaç

OP1: 16 bit register 1. Operand SR: Status register / Flag register Bayrakların tutulduğu yazmaç MDR: Memory data register Hafıza giriş ve çıkış datalarının tutulduğu yazmaç 3S_buff: 3 state buffer 3 halli buffer 6 multiplexer (Çoklayıcı) 5.1) Varlıklar Her mimari, kendi stilindeki karakteristik operasyonları kolaylaştıracak şekilde farklı veri yollarına sahiptir. Neredeyse tüm varlıklar kullanılan bütün mimarilerde etkindir. Varlıkların iki türdür; Senkron varlıklar ve asenkron varlıklar. Senkron varlıklar saat sinyalinin köşe durumlarına göre işlemlerini gerçekleştirirler. Asenkron varlıklar ise outputlarını yalnızca inputlarına göre, inputları ne zaman değişirse saat sinyaline bakmaksızın değiştirirler. Multiplexer lar ve ALU senkron olmayan yapılardandır. Registerlar ise saat darbesinin yükselen kenarına bağlı senkron yapılardır. İşlemcide kullanılan yapı türleri; Master Slave register (Efendi Köle) Shift Register (Kaydırmalı Yazmaç) 3 durumlu buffer Register bank Stack Accumulator birleşimi ünite Asenkron SRAM Seçiciler (Multiplexers) Register bank Stack Accumulator birleşimi ünite aşağıdaki blok diagramda gösterilmiştir (Figure 2). Figure 2 Register bank Stack Accumulator ünitesinin arayüzü

5.2) Değişik Boyutlardaki Buslar Üzerinde İşlem Yapmak Dolaylı adresleme modunda hafızadan alınan yerin adresi 16 bittir.bu veri 19 bit genişliğindeki MAR a yüklenir. Bu durumda MAR ünitesindeki verinin sadece alt 16 bitlik kısmı yer değiştirmiş olur. Bu istenmeyen bir durumdur. Veri yolu MDR ın çıkışında eksik olan 3 değerlikli biti 16. bite göre kopyalarak bu sorunu çözer. Bu teknik pek çok yerde karşılaşılan yukarıdaki problemi çözmek için kullanıldı. Bu yöntem aynı zamanda dizaynda birtakım problemlere de neden oldu. 5.3) Kontrol Sinyalleri Yukarıda bahsedilen 6 mimariyi gerçekleyen işlemci yapısının veriyolu Figure 3 de gösterilmiştir. Bütün yapılarla ilgili kontrol sinyalleri yapının üzerinde bulunabilir. 6) Kontrol Ünitesi Dizaynı Kontrol sinyallerinin sıklığına karar vermek için her komut sınıfı için zamanlama diyagramı çizildi. Kontrol ünitesi de bu diyagramlar kullanılarak tasarlandı. Yapıların kontrol sinyallerine göre işler durumda olması kontrol ünitesi dizayn edilirken önemlidir. Kontrol sinyallerini içeren belge kontrol ünitesi tasarımının başlangıcında hazırlandı. 7) VHDL Modelleme VHDL modelleme için ücretsiz indirilebilen Xilinx Ise Webpack ve Modelsim programları kullanıldı. 7.1) Modelleme Stratejisi Öncelikle beklenen sonuçlar için alt seviye yapılar dizayn ve test edildi. Bütün alt seviye yapılar tek olarak çalıştığında üst seviye yapıların dizayn işlemlerine geçildi. Üst seviye yapılar veri, adres ve kontrol oluşturucak şekilde veriyolu dizaynının ışığında oluşturuldu. Alt seviye yapılar oluşturulurken davranışsal modelleme kullanıldı. En üst seviye yapıda ise yapısal modelleme kullanıldı. Daha sonra kontrol ünitesi programlandı. Kontrol ünitesi, ünitenin davranışlarını doğrulamak için, bağımsız bir ünite gibi ve yapının içine entegre şekilde olmak üzere iki şekilde test edildi.

Kontrol ünitesinin oluşturulmasından sonra, yapıya entegre edilerek test uygulandı. 7.2) Register bank Stack Accumulator 3 ü birarada Ünite Register bank Stack Accumulator combine mimarisi değişik bir yolla gerçekleştirildi. Bu üç ünite birbirleriyle alakalı görünselerde iki ünitenin aynı anda ulaşılabilir olamayacağı açıktır. Accumulator mimarisi register bankası yada stack içermez. Aynı şekilde stack mimarisi de Accumulator ya da register bankası içermez. Bu yüzden bu üç ünite tek ünite olarak birleştirildi ve geliştirildi. Seçilen mimariye göre organizasyonlarını değiştirebilen bu ünite aynı zamanda kaynakların kullanımını da optimize etmiş oluyor. 8) Assembly kod dönüştürücü Sistemin tasarımı bittikten sonra sistem test işlemine sokulucaktır. Test sisteminde işlemcide kullanılan 6 farklı mimari değişik komut sınıfları ile test edilmelidir. Test işlemine başlamak için Figure 1 de verilen komut yapısına uygun olarak makine dilinde sıralı bir şekilde yazılan program hafızaya yüklenmelidir. Yükleme sırasında yüklenecek komutlar 16 bitlik 3 kısma ayrılmalı ve hafızanın başından itibaren yüklenmelidir. Bu işlemin el ile yapılması oldukça zahmetli bir iştir. Ayrıca bir bitlik bir yanlışlık tüm test prosedürüünü etkileyecektir. Bu yüzen işlemci için assembly komutlarını makina komutlarına çevirecek bir çevirici yapıldı. Çeviricinin ana özellikleri; Komutların adres modlarının ve operandların doğruluğunu kontrol etmek. Otomatik kod üretmek. Otomatik hafıza başlangıç datasını üretmek Yazılan programların tekrar kullanılabilirliğini arttırmak Çeviricinin çıktısı hafıza başlangıç verilerini ve programı içeren bir text dosyasıdır. Kullanıcı bu dosyanın içindeki ikilik sisteme göre yazılmış kodu hafızanın VHDL kodu içine atarak programı işlemciye yüklemiş olur. Çevirici öncelikli olarak test için tasarlanmış olsada ileriki kullanımlara öğrencilere büyük kolaylık sağlayacak ve zaman kazandırıcaktır. Böylece öğrenciler çeviriciyi kullanarak kendi yazdıkları programları kolayca makine diline çevirebilicekler. Çevirici Microsoft Visula Basic 6 kullanılarak yazılmıştır. Program aynı zamanda Microsoft Access veritabanı kullanarak yazılan programları ileriki uygulamalar için saklamaktadır (Figure 4)

Figure 4 Çevirici Arayüzü 9) Test Test işlemi uygun operasyonları doğrulamak için aşağıdaki yapılara uygulandı; Her yapı için Her komut sınıfı için Her adres modu için her komut sınıfı altında Durum bayrak ayarları için ALU Senkron operasyonlar Register bank Stack Accumulator birleşmiş ünitesi gibi özel durumlar için 9.1) Test Stratejisi En alt seviyeden en üst seviyeye doğru giden bir test stratejisi izlendi. En alt yapıların testleri tamamlandıktan sonra entegre yapıların testine geçildi. İlerlemeyi ölçmek ve ilerlemeyi organize bir şekilde yapmak için bir kontrol listesi hazırlandı.

Figure 3 En üst seviye mimarinin veri yolu

9.2) Test Sonuçları Başarılı bir şekilde test edilmiş programların her biri kendi mimarilerinin altına kaydedildi. Sonuçları doğrulamak için gerekli modifikasyonlar tamamlandıktan sonra sistem bu programlarla test edildi. 10) Gerçekleme Hedeflenen işlemcinin gerçeklenmesinin yapılacağı cihaz Xilinx firması tarafından geliştirilen Spartan 3A FPGA kartıdır. Bu cihazın özelliklerini sıralarsak; Satın alınılabilir bir fiyat 400 000 gate FPGA XC3S400 (model numarasındaki sondaki rakam * 1000 kapı adedini gösteriyor) Xilinx 2Mbit platform flash configürasyonu PROM XCF02S 1 Mbyte hızlı asenkron SRAM Genişelme portları 11) Dökümantasyon Bu projenin ana hedef kitlesi öğrenciler olduğundan uygun dökümantasyon hazırlanması için büyük bir çaba harcandı. Dökümantasyonun ayrı dökümanlar halinde tutulmasına karar verildi. Bunlar; Programcı el kitabı (6 komut seti mimarisinin detaylı anlatımını içermektedir.) İşlemci mimarisinin anlatımı. Bu belge kontrol sinyalleri, işlemci mimari diyagramları, 6 mimarinin özet görünümü ve memory memory, load store mimarisinin detaylı kontrol sırası üzerinde yapıların işlerliğini içermektedir. Kaynak kod listesi Tüm döküman ve kaynaklar siteye eklenmiştir. 12) Sonuç ve Geliştirmeler Yapılan projede kullanılan 6 yapı da karakteristik özelliklerine göre çok iyi çalıştı. Ancak bu dizayn beraberinde bazı sınırlamaları da getirdi. Örneğin Call Return (çağrı dönüş) ve dolaylı adres modu sadece aynı segmentte kullanılabiliyor. Bu yüzden Call komutu çağrıldığında işlemci, derleyicinin geri dönüş için gerekli kayıtları tutmasını bekliyor. Bu aynı zamanda Looz komutları için de geçerlidir. Sistemin basitliğini korumak için bu yapılar oldukları gibi bırakılmıştır.

Register bank Stack Accumulator yapıları FPGA üzerindeki kaynak kullanımını minimize etmek için tek ünitede birleştirildi. Bu yapı aktif mimariye göre otomatik olarak ilgili depolama şekline geçiyor. Projedeki bir sonraki bölüm işlemci için bir simülatör tasarlanmasıdır. Aynı zamanda yüksek seviyeli bir dille programlama yapılabilmesini sağlamak için işlemciye uygun bir derleyici geliştirmeyi umuyoruz. Bu derleyici hazır olduğunda bilgisayar mimarisine yeni başlayanlar için yararlı bir araç olacaktır. İşlemciyi bu akademik yıl boyunca işlemci dizayn derslerinde case study metodu ile kullanmayı umuyoruz. Aynı zamanda VHDL simülatörü ile her saat sinyalinde kontrol sinyallerini incelemek mümkündür. Bu yüzden işlemcinin iç operasyonlarının değerini anlamaları için Modelsim e aşina öğrencilere çok yararlı olacaktır. SEP kullanılarak microişlemci geliştirme kartı geliştirme olasılığı da bulunmaktadır. Bizim de yaptığımız gibi projeyi Xilinx Spartan 3 FPGA kartı üzerinde gerçeklemek mümkündür. İşlemci buna ek olarak kart üzerindeki 1Mbyte asenkron Ram ile de arayüz oluşturacak şekilde tasarlanmıştır. Bu yüzden Spartan 3 kartı aynı zamanda bir microişlemci geliştirme kartı olarak da kullanılabilmektedir. Fakat arayüz üniteleri keypad (klavye) ve display (görüntü) ünitesi tasarlanıp kartta uygulanmalıdır. Bu işlemci pipeline komut işleyecek şekilde geliştirilebilir. Sonuç İşlemcinin özelliklerini kısaca özetlersek; 4 basit mimari türü Accumulator Memory-memory Stack Load Store. Eklenen 2 mimairi türü Register memory Extended accumulator İşlemcinin dizaynından kaynaklanan sınırlamalar;

Call & Return Indirect addressing Çarpmanın 8-bit olması 512K address space İşlemciye has özellikler; Bir işlemcide 6 mimari Register bank, Stack and Accumulator birleşimi unite ile FPGA üzerinde minimum kaynak kullanımı. Donanımsal anahtarlama ile mimarinin değiştirilebilmesi Bir sonraki çalışmamızda yukarıda anlatılan kağıt üzerinde tasarımı tamamlanmış işlemciyi VHDL kodlama kullanılarak gerçekleyeceğiz. Verilen örnek programların gerçeklenmesi ile işlemcinin çalışması hakkında daha objectif bilgiler edinilebilir. VHDL kodlama ile gerçekleme işleminden sonra basit olarak işlemci tasarım süreçleri incelenmiş olacaktır.