1 / 68

Bu proje, CPU TURKEY 2008 Türkiye İşlemcisini Tasarlıyor yarışması için

Bu proje, CPU TURKEY 2008 Türkiye İşlemcisini Tasarlıyor yarışması için “Logic and Computer Design Fundamentals”, M.Morris Mano, Charles Kime, Prentice Hall 2nd Edition, 2000. İsimli Kitap Temel alınarak MOMENTUM PROJE GRUBU tarafından hazırlanmıştır. MOMENTUM FİZİKSEL İŞLEMCİSİ.

Download Presentation

Bu proje, CPU TURKEY 2008 Türkiye İşlemcisini Tasarlıyor yarışması için

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. Bu proje, CPU TURKEY 2008 Türkiye İşlemcisini Tasarlıyor yarışması için “Logic and Computer Design Fundamentals”, M.Morris Mano, Charles Kime, Prentice Hall 2nd Edition, 2000. İsimli Kitap Temel alınarak MOMENTUM PROJE GRUBU tarafından hazırlanmıştır.

  2. MOMENTUM FİZİKSEL İŞLEMCİSİ

  3. İÇİNDEKİLER • Sistemin Temel Özellikleri • İşlemcinin Yapısı ve İşleyişi • Dış bağlantılar • Momentum Komut Çevirici • Deney çıktıları • Sonuçlar

  4. SİSTEMİN TEMEL ÖZELLİKLERİ Bu çalışmada; • 16 bitlik veri yoluna sahip, • Memory to register, register to memory, register to register veri transferlerini gerçekleştirebilen, • 8’i kullanıcı tarafından kontrol edilebilen toplam 17 adet ACC yazmaçlı yazmaç ünitesine sahip, • CISC veVon-Neumann Mimarisimimarisinde, • 40 Mhz maksimum çalışma frekanslı,

  5. 8 ayrı adresleme modunda 45 değişik komutu koşturabilen • 1 veya 2 kelimelik komutlara sahip • 10 farklı koşul için dallanma yeteneği olan • Derleyici desteği ile program yazabilen • Mikroprogram kontrollü bir işlemci tasarlanmıştır.

  6. Tasarım, Xlinx Webpack programında yapılmış olup simulasyonda ModelSim programı kullanılmıştır. • Hazırlanan sanal işlemci Spartan-3E Starter Kit’e gömülerek fiziksel işlemci hazırlandı. • Son olarak da Board’un klavye, LCD , Monitör ve Seri Port ile haberleşmesi sağlanarak kontrolü kolaylaştırıdı.

  7. Desteklenen Adresleme Kipleri • Saklayıcı kipi (register) • Saklayıcı dolaylı kip (register indirect) • İvedi adresleme (immediate) • Doğrudan adresleme (direct) • Bağıl adresleme (relative) • Dolaylı bağıl adresleme (relative indirect) • Sıralı adresleme (indexed) • Dolaylı sıralı adresleme (indirect indexed)

  8. Komut Kümesi OperandsızBir operandİki operandProgram kontrol • NOP • PSHR • POPR • RET • RTI • HALT • PUSH • POP • INC • DEC • NEG • COM • SHR • SHL • SHRA • SHLA • ROR • ROL • RORC • ROLC • MOVE • XCH • ADD • ADDC • SUB • SUBB • MUL • DIV • CMP • AND • OR • XOR • MULH • MULS • JMP • CALL • BZ • BNZ • BC • BNC • BN • BNN • BV • BNV • SYSCALL

  9. Komut Kümesi • NOPNo operation • PSHRPush registers • POPR Pop registers • RET Return (from a subroutine) • RTIReturn from interrupt • HALTHalt • PUSH Push • POP Pop • INCIncrement • DEC Decrement • NEG Negate • COM Complement

  10. Komut Kümesi • SHRShift right (logical) • SHLShift left (logical) • SHRAShift right arithmetic • SHLAShift left arithmetic • RORRotate right • ROLRotate left • RORCRotate right with carry • ROLCRotate left with carry • MOVEMove • XCHExchange • ADDAdd • ADDCAdd with carry • SUBSubtract

  11. Komut Kümesi • SUBBSubtract with borrow • MULMultiply (with microprogram) • DIVDivision • CMPCompare • ANDAnd • OROr • XORExecutive-Or • MULHMultiply (with hardware) • MULS Multiply (with software) • JMPJump • CALLCall ( a subroutine) • BZBranch if zero • BNZBranch if not zero • BCBranch if carry

  12. Komut Kümesi • BNCBranch if not carry • BNBranch if negative • BNNBranch if not negative • BVBranch if overflow • BNVBranch if not overflow • SYSCALLSystem call (software interrut)

  13. İŞLEMCİNİN YAPISI VE İŞLEYİŞİ • Sistem CISC mimarisindedir tasarlanmıştır VHDL yazımında öncelikle her eleman component halinde tasarlanmıştır. Daha sonra bu componentler birleştirilerek CPU oluşturulmuştur. • İşlemlerin koşması için gerekli olan mikroinstruction ve kodlar donanımın içine yüklenmiştir. Sistem yapısı donanım ve yazılım olarak ikiye ayrılır:

  14. I. Donanım Temel olarak 3 birimden oluşur. Bunlar: • Veri yolu(Datapath) • Hafıza elamanı(Memory) • Kontrol ünitesi (Control Unit) dir.

  15. 1. Veri Yolu Veri yolu, alınan bilginin işlendiği kısımdır. Dört ana birimden oluşur. Bunlar ; • Yazmaçlar (register file), • Muxlar (mux A, mux B,mux D), • Fonksiyon Ünitesi, • PSR ile MSTS olarak düşünülebilir.

  16. A) Register File • 8’i kullanıcı tarafından, 8’i ise kullanıcı kullanımına kapalı olup mikro-komutlarca kullanılan toplam 16 adet ACC tipi yazmaçtan oluşur.

  17. B) Multipilexerler • Verini gideceği yolu seçmek için kullanılır. • Veriyolunda Mux A, Mux B ve Mux D çoklayıcıları vardır. Mux A ve Mux B fonksiyon ünitesi ve belleğe girişleri, Mux D ise veri yolundan çıkışları denetler

  18. C) Fonksiyon Ünitesi • Fonksiyon ünitesi asıl isi yapan bölümdür. Gelen sinyali aritmetik, lojik veya kaydırma işlemlerine tabi tutarak işler. • Yapısında bir adet aritmetik lojik ünite (ALU) ve bir adet kaydırıcı (Shifter) bulunur. • ALU ise 2 ana bölümden oluşur, birincisi aritmetik işlemle yapan aritmetik ünitesi (AU), diğeri ise lojik işlemleri gerçekleştiren lojik ünitesidir.

  19. Fonksiyon ünitesinin ayrıca 4 adet çıkısı vardır. Bunlar gerçeklenen işlemin sonucu hakkında yorum yapan çıkışlardır. İşlemin sonucunda taşma varsa “V” çıkısı, elde varsa ” C” çıkısı, işlemi sonucu negatif ise “N” çıkısı, “0” ise “Z” çıkısı lojik ‘1’ verir. ‘0’ iken lojik ‘1’ verir. • Fonksiyon ünitesinin, yapılacak fonksiyon seçen 5 bitlik FS girişi vardır.

  20. D) PSR ile MSTS • PSR, makro durum bitlerinin saklandığı yazmaçtır. Bir önceki komut hakkındaki durum bayrağını saklar. • PSR 4’ ü V C N Z bir biti EI olmak üzere 5 bitliktir. • PSR ile MSTS Durum bayraklarının saklandığı yazmaçlardır.

  21. MSTS, mikro-durum bitlerinin saklandığı yazmaçtır. Bir önceki mikro-rutin satırı hakkındaki durum bayrağını saklar. • MSTS ise sadece 4 bitlik v, c, n, z’yi hafızalamaktadır.

  22. 2. Hafıza Ünitesi(Memory) • Memory ünitemiz standart hafıza biriminin giriş ve çıkışlarına sahiptir. • Data in, address in ve MO olmak üzere üç girişi, data out olarak da bir çıkışı bulunmaktadır. • “Data in” ve “Address” girişleri, registerlardan çıkan “Data out” ve “Addres out” ana hatlarına bağlanmıştır.

  23. Belleğimizin hücre genişliğini işlemcimizdeki veri yolu genişliği belirlemektedir. Veri yolu genişliğimiz 16 bit olduğu için hücre genişliği 16 bittir. • Satır sayısını belirlemek için ise belleğin adres girişine veri yolunun adres çıkışının LSB 7 biti bağlanmıştır.

  24. 3. Kontrol Ünitesi • İşlemlerin akışı için kendini kontrol edecek kodları ve bu işlemlerin uygulandığı veri yolunu kontrol eden komutları üreten kısımdır. • Kontrol ünitesi Genel olarak 4 ana kısım içerir;

  25. 1. Instruction Register: 16 bitlik Instruction Word’ün yazıldığı bölümdür. Veri, veri yolundan veya bellekten gelebilir.

  26. 2. Instruction to Microaddress Mapper: IRden gelen bilgiye ve o andaki Control Romun yolladığı bilgiye göre kendi içindeki romdan bir adresi seçer ve o adresteki bilgiyi Microsequencer’a yollar.

  27. 3.Microsequencer: Kontrol ünitesinin kalbidir. Komut akışının düzenini sağlayıp Control Rom’a uygulanacak olan komutun adresini yollar.

  28. 4.Kontrol ROM: Microsequencer’dan gelen adres bilgisinin karşılığı olan veriyi hem kontrol ünitesine hem de veri yoluna uygular.

  29. II. Yazılım • Proje kapsamında yazılım ile kastedilen, mapping (haritalayıcı) ROM, kontrol ROM ve memory (hafıza elemanı)’e yazılması gereken kodlardır. • Bu kodlar veri yolunda işlenecek bilgiyi seçer ve sıralar, ardından işlenen bilginin istenen konuma yazılmasını sağlar. • Yazılım için gerekli olan ASM aşağıdadır.

  30. Komut türüne göre değişiklik gösterse de genel olarak komutları işleme işi 5 mikro-rutinde gerçekleşir. Buna göre; • İlk olarak hafıza elemanında işlenecek kod alınarak instruction register (komut yazmacı)’a yazılır. • Buradan operasyon kodu(opcode)’nun ilk üç bitine bakılarak yapılacak işlemin operand sayısı belirlenir. Eğer operand sayısı “0”dan farklı ise operand alımı yapılır.

  31. Daha sonra her işlem kendi operand sayısına göre yürütülür (EX,execution mikrorutini). Yürütülmekten kasıt, kontrol ünitesi çıkışlarının veri yoluna uygulanarak gerekli işlem sonuçlarının alınmasıdır. • Executiondan sonra ise sıra veri yolundan çıkan sonucun ne yapılacağına karar vermeye gelmiştir. İşlemin özel durumlarına göre gerekli görülen sonuçlar memory veya yazmaçlara yazılır(WB, write-back mikro-rutini).

  32. Seçilen işlemin dallanma olması durumu ise veri yolundan bağımsız, tamamen program sıralaması ile ilgili olup Hafıza elemanlarına yazılma yapılmaz. • Son olarak ise dışarıdan bir kesme isteğinin olup olmadığını kontrol etmek için gerekli kesme sinyalleri kontrol edilir ve eğer yoksa yeni bir komut alabilmek için IF e yönlendirilir(INT, interrupt handling mikro-rutini).

  33. DIŞ BAĞLANTILAR • Anahtar ve ledler • Klavye • Lcd • Vga • Rs-232

  34. Anahtar ve Ledler

  35. Klavye • Klavyenin ikincil karakter özellikleri kullanılmamaktadır. Bunun yerine bazı tuşlara bazı görevler yüklenmiştir ve bu proje için yeterli olmaktadır. • Klavyede bilgi girişi hexadecimal olarak yapılmalıdır. • Görevli tuşlar ve görevleri şunlardır:

  36. 0,1,2,3,...,9,A,B,C,D,E,F: Hexadecimal sayı girmek için kullanılır. • Esc: Clear_All(Reset) tuşudur. İşlemcideki bütün elemanların ilk halini geri yükler.

  37. Enter: Klavyeden bilgi yükleme işleminde kullanılır. Load ve Stop açıkken istenilen bilgi ekrana yazılır. Yama işlemi bittikten sonra load “0”a çekilip “enter”e basılırsa yükleme gerçekleşir. • TAB: Adres ve Data arasında geçişi sağlar. Yani adres yazıldıktan sonra taba basılarak dataya yada data konumundan adres konumuna devamlı geçişi sağlar.

  38. F1,F2,...,F7: LCD den görüntülenen bilgileri seçer. Detaylı bilgi raporda da verilmişti. • G tuşu: Halt komutundan kurtarmak için gerekli “go” anahtarıdır • S tuşu: LCD ekrana yazılan adres yada data bilgisinin tamamını temizler.

  39. R tuşu: PC’nin içeriğini sıfırlar. Daha önceki sürümde PC’yi sıfırlamak için Load ve Stop aynı anda ‘1’ yapılıyordu. Bu sürümde bu özellik Kaldırıldı. Nedeni ise bazı durumlarda sakıncaları olmasıydı. Bu sürümde PC’yi sıfırlamak için klavyeden “R” tuşuna basılır. • Backspace: Silme tuşudur. Ekrana yazılan son harfi siler.

  40. Hâlihazırdaki işlemcide LCD’nin modları ve modlardaki kalıplar şu şekildedir: Mod= “000” için REG1=0 x XX REG2=0 x XX Mod= “001” için REG3=0 x XX REG4=0 x XX Mod= “010” için REG5=0 x XX REG6=0 x XX Mod= “011” için REG7=0 x XX IR=0 x XX Mod= “100” için PC=0 x XX SP=0 x XX LCD

  41. Mod= “111” için MOMENTUM 2008 . Mod= “101” için M-ADR =0 x XX M-DATA=0 x XX Mod= “110” için M-ADR =0 x XX M-DATA=0 x XX ***NOT:LCD ekrandaki bilgiler 16’lık tabanda gösterilir.

  42. CPU nun içindeki bazı verileri öğrenebilmek için ekrana çıktı aldık böylece CPU MOMENTUM’un hangi aşamada olduğunu veya yapılan işlemin sonuçları görebiliyoruz VGA

  43. RS-232 Seri Port • RS'232 seri portunun amacı işlemci çalışırken belleğe yeni komutlar yazabilmektir. Bu sayede sistem board üzerine bir kez kurulduktan sonra, tekrar tekrar derlenip yüklemeye gerek bırakmadan seri port aracılığıyla harici bir bilgisayardan programlanabilecektir. • Ayrıca seri port ile Momentum Komut Çevirici haberleştirilerek, MKC yardımıyla işlemcinin diline çevrilen komutlar direk olarak işlemciye de yüklenebilmektedir.

More Related