1 / 23

CPU-Turkey ´08 Sanal RISC İşlemci Tasarımı

CPU-Turkey ´08 Sanal RISC İşlemci Tasarımı. CEBİRCİ. Proje Ekibi : Süleyman Yasin Dündar Serpil Dutar Danışman : Yrd. Doç. Dr. Rıfat Edizkan Akademik Destek : Eskişehir Osmangazi Üniversitesi

fisk
Download Presentation

CPU-Turkey ´08 Sanal RISC İşlemci Tasarımı

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CPU-Turkey ´08Sanal RISC İşlemci Tasarımı CEBİRCİ

  2. Proje Ekibi: Süleyman Yasin Dündar Serpil Dutar Danışman : Yrd. Doç. Dr. Rıfat Edizkan Akademik Destek:Eskişehir Osmangazi Üniversitesi Elektrik-Elektronik / Bilgisayar Mühendisliği

  3. Not : Bu sunumda “Cebirci” isimli çalışmanın anlatımına rehberlik etmek amaçlanmıştır. Detaylı bilgiler , test programları vb, Dökumanlar klasöründe bulunmaktadır. Gerekli görülen yerlerde bu klasördeki dosyalara atıflarda bulunulmuştur.

  4. Mimari Özellikleri • 16 bit işlem uzunluğu • 4k x (6+16) RAM boyutu • 4 genel amaçlı yazmaç (B,C,D,E) • Akümülator tabanlı mimari • 2 yazmaçlı Yığın Belleği (Stack Memory as a circular buffer)

  5. Akümülator (16-bit) 4K RAM Genel amaçlı yazmaçlar (B, C, D, E) 2 yazmaçlı Yığın Belleği (Detay için; bkz. main.gif)

  6. İcra Edilebilen Komutlar • Veri Transfer Komutları LW, SW, MOV, MOVI • Aritmetik Komutlar ADD, ADDI, SUB, SUBI, • Kontrol Komutları NOP, HLT • Dallanma Komutları CALL, RETURN, BA, BEQ, BNE • Mantıksal Komutlar CMP, AND, ANDI, OR, ORI, NOT, XOR, XORI

  7. İşlem Kodları • 22-bit Kelime uzunluğu vardır • Herbir komut için 6-bit opcode kullanılmıştır. • 6-bit uzunluğundaki verilerle: 26 = 64 tane komut desteklenebilir. ( Detaylı bilgi için; bkz. İşlem Kodları.doc)

  8. Kelime yapısı Her komuta ait özel bir opcode vardır (bkz. İşlem Kodları.doc) 000h : REG XXXh : Memory Adresi 0 : İşlenecek sayı genel yazmaçlardan (B,C,D,E) kullanılır 1 : İşlenecek sayı RAM’den kullanılır 000 : RAM 001 : Reg_B 010 : Reg_C 011: Reg_D 100 : Reg_E (Detaylı bilgi için; bkz. Komut Yapıları.doc)

  9. Kelime yapısı (immediate) opcode(6-bit)data(16-bit) Her komuta ait özel bir opcode vardır (bkz. İşlem Kodları.doc) İşlem yapılması istenilen 16-bit veri direkt olarak buraya yazılır. (Detaylı bilgi için; bkz. Komut Yapıları.doc)

  10. Genel Yazmaçlar • 16-bit uzunluğunda genel amaçlı 4 adet genel yazmaç bulunmaktadır.Bu yazmaçlar ile program denetiminin kolaylaştırılması amaçlanmıştır.

  11. Temel Yazmaçlar DR (DataRegister) : Anlık verileri saklar (16-bit) AR (AddressRegister) : İşlenen komutun adres bilgisini saklar (12-bit) IR (InstructionRegister) : İşlenen kelimeyi saklar (22-bit) (Detaylı bilgi için; Bkz. Cebirci(1)_genel_rapor.doc)

  12. AC (Accumulator) İşlemcimiz AC tabanlı çalıştığı için tüm işlemlerin sonucunda elde edilen veriler; -ALU çıkışından, -Yazmaçlardan (register), -DR’den (data register) AC’ye yüklenir, AC’den; -RAM’e veya -ALU’a iletilir. (Bkz. Cebirci(1)_genel_rapor.doc)

  13. RAM (Random Access Memory) • RAM’in özellikleri; 4K 22-bit • Program RAM’e yüklenir. • D girişinden veri yazılır ya da okunur. • A girişinden istenilen adres seçilir. (Bkz. Cebirci(1)_genel_rapor.doc) (Örnek çalışmayı görmek için bkz. video_0)

  14. Yığın Belleği (Stack Memory) Yığın belleği, CALL komutu kullanılırken atlanan adresleri kaydetmek için kullanılan dahili bir bellektir. İşlemcimizin yığın belleği 2 yazmaçlı olduğu için, iç içe çağırılan iki CALL döngüsü adresleri sırayla yığın belleği yazmaçlarında saklanır. Bu kısımda içsel dairesel tampon (circular buffer) tipinde hafıza birimi amaçlanmıştır bazı teknik sorunlardan dolayı hafıza birimi 2 yazmaç ile sınırlı kalmıştır. ff90 D0 0f88 D1 (Bkz. Cebirci(1)_genel_rapor.doc)

  15. Komut Kod Çözücü (Command Decoder) Kod çözücü, IR(instruction register) den gelen kelime bilgisine göre opcod’u çözümleyerek, işlenecek komutu ALU’ya tanımlamaktadır. CMD decoder add 6 bit opcode return xor ba movi 6-bit giriş 26 adet çıkış (Bkz. Cebirci(1)_genel_rapor.doc)

  16. Program Sayıcısı (PC Counter) • Program sayıcısı, RAM’in hangi adresten devam edeceğini yönetmektedir. AR(adress register) ile irtibat içerisindedir gerekli komutlarda içeriğini AR ye aktarır veya AR den içeriğini günceller. (Bkz. cpu_v39.circ) (Bkz. Cebirci(1)_genel_rapor.doc)

  17. Aritmetik Mantık Birimi (ALU) • 16_bit verilerle mantıksal ve aritmetik 14 komutu çalıştırabilme. • ‘Barrel Shifter’ yöntemi ile saat darbesi (clock) gerektirmeyen kaydırma işlemi. • 16_bit sayıları çarparak 32_bit çıkış elde etme.(Tek darbe) • 5 durum bayrağı : sıfır bayrağı, büyüktür bayrağı, küçüktür bayrağı, eşittir bayrağı, taşma biti Not: Kaydırma ve Çarpma komutlarının ALU tasrımları yapılmıştır fakat Kontrol Birimi tarafından bu komutların icrasını yönetecek sinyal üretimlerini henuz gerçekleştirilmemiştir.

  18. ALU Komut Seti

  19. ALU Paket Devresi

  20. ALU Alt Devreleri ADD, SUB, DEC, INC işlemlerini gerçekleştirir. AND, OR, XOR, NOT işlemlerini gerçekleştirir. Büyüktür, Küçüktür, Eşittir durum bayraklarını kontrol eder. 16x16=32 bit çarpma işlemi SLL, SLA, SRL, SRA işlemlerini gerçekleştirir. Düzenlenmiş komut devresidir. Devredeki seçici (select) bitlerin kontrolünü gerçekleştirir. CMD (Bkz. Cebirci(1)_genel_rapor.doc)

  21. Kontrol Birimi Kontrol birimi işlemcinin tüm sinyallerinin üretildiği işlemcinin beyni niteliğinde olan kısımdır. Bu birimde okunan komutun opcod’una uygun sinyaller üretilerek gerekli yazmaç transferleri ve işlemler yapılır. Kontrol ünitesindeki bazı sinyalleme hataları; geciktirme (delay), kapı, vb. birimlerle düzeltilmeye çalışılmıştır. (Detaylı bilgi için; bkz. Cebirci(1)_genel_rapor.doc)

  22. Örnek Kod Parçası AdresKomutHEX Kodu Açıklama 004 ADD 002000 // ACU=DCA0 005 ANDI 09484F // ACU=4800 006 SW 1A0100 // &100=4800 007 NOT 0C1000 // ACU=EB9E 008 SUB 028100 // ACU=A39E 009 MOV 103200 // REG_B=3537 REG_D-->REG_B RAM’e yüklenen kodlar RAM adresi (Bkz. kod5.doc) (Çalışan kod programını görmek için bkz. video_0, video_1)

More Related