SEP İşlemci lemci_Tasarım Aşamaları-2.pdf

15
İşlemci Tasarımı ve Aşamaları Yazar: Erman Üret ([email protected] ) Ç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

Transcript of SEP İşlemci lemci_Tasarım Aşamaları-2.pdf

Page 1: SEP İşlemci lemci_Tasarım Aşamaları-2.pdf

İşlemci Tasarımı ve Aşamaları Yazar: Erman Üret ([email protected])

Ç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

Page 2: SEP İşlemci lemci_Tasarım Aşamaları-2.pdf

Öğ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. [email protected] Janath C Geeganage Department of Electrical & Computer Engineering, Faculty of Engineering Technology, The Open University of Sri Lanka. [email protected]

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

Page 3: SEP İşlemci lemci_Tasarım Aşamaları-2.pdf

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

Page 4: SEP İşlemci lemci_Tasarım Aşamaları-2.pdf

• İş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

Page 5: SEP İşlemci lemci_Tasarım Aşamaları-2.pdf

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.

Page 6: SEP İşlemci lemci_Tasarım Aşamaları-2.pdf

İş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 )

Architecture

Arithmetic and Logic

Control Transfer

Data Movement

Misc

Memory to Memory

Table1.Instru tionsavailableineacarhitectureADD, SUB, INC, MUL, DIV AND, OR, NOT, XOR, SHL, SHR, ROL, ROR

JC, JS, JP, JZ, JOF Call Ret Looz

LOAD

NOP

Accumulator

LOADacc STOREacc

Stack

PUSH, POP, DUP, SWAP, ROTATE3

Extended Accumulator

LOADacc, STOREacc LOAD, STORE

Register Memory

LOAD, STORE

Load Store LOAD, STORE

Tablo 1Her mimari için kullanılabilir komut biçimi

Page 7: SEP İşlemci lemci_Tasarım Aşamaları-2.pdf

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ç

Page 8: SEP İşlemci lemci_Tasarım Aşamaları-2.pdf

• 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ü

Page 9: SEP İşlemci lemci_Tasarım Aşamaları-2.pdf

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.

Page 10: SEP İşlemci lemci_Tasarım Aşamaları-2.pdf

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)

Page 11: SEP İşlemci lemci_Tasarım Aşamaları-2.pdf

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

Page 12: SEP İşlemci lemci_Tasarım Aşamaları-2.pdf

Figure 3 En üst seviye mimarinin veri yolu

Page 13: SEP İşlemci lemci_Tasarım Aşamaları-2.pdf

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.

Page 14: SEP İşlemci lemci_Tasarım Aşamaları-2.pdf

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;

Page 15: SEP İşlemci lemci_Tasarım Aşamaları-2.pdf

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