PROJECT TEAM rd. Doç. Dr. Oğuz ERGĠN Meltem ÖZSO Egi ÖZGER Nezire Nur PEPEOĞLU usuf Our KOÇBERBER ġadi Çağata ÖZTÜRK Özca URT Çağata GÜNGÖR 3..007 Akara
ĠÇĠNDEKĠLER ÖZ... 3 GĠRĠġ... 4 PROJE AġAMALARI... 5 TASARIM... 5 BURUK TASARIMI... 6 ĠġLEMCĠ TANITIMI... BĠRĠMLER... 5 AZMAÇ ÖBEĞĠ... 5 ARĠTMETĠK MANTIK BĠRĠMĠ(AMB)... 6 ÇARPMA BĠRĠMĠ... 8 KADIRMA BĠRĠMĠ... DENETĠM BĠRĠMĠ... 6 SONUÇ... 7 GELECEK PROJELER... 7 KANAKLAR... 7
ÖZETÇE Güümüz tekoloisi bilgisaar üzerie kurulmuş durumdadır. Bilgisaar doaımı üzeride e oğulaşmış ülkeler Almaa ve Amerika gibi bilim ve tekoloide ilerlemiş ülkelerdir. Buları dışıda da belirli çalışmalar apılmasıa rağme bu ülkeler bilgisaar doaım sektörüde tekel koumudadırlar. Amerika ve Almaa ı tekelliğii sürdürdüğü bu tekoloi sektörüde Türkie de kedii kaıtlamak istee ülkelerde birisidir. Bu edele bazı üiversiteler ve şirketler büeside başlagıç sevieside çalışmalar apılmıştır. Acak hedeflee büük adımlar atılamamıştır. Bu adımlarda e öemlisi bir işlemci tasarlamasıdır. Çükü işlemciler bilgisaarları e öemli parçaları olmakla birlikte diğer tekoloileri de temelide er almaktadır. İşte bu öemli adımı atılabilmesi içi bitirme proesi kapsamıda farklı sistemlere uum sağlaabilecek temel bir işlemci tasarımı apılacaktır. Bu makalede bu işlemcii tasarımı ve gerçekleştirilmesie ilişki arıtılar alatılacaktır. 3
GİRİŞ Bilgisaar doaımı temel olarak dört kısımda iceleebilir. Bular iģlemci, bellek, giriģ, çıkıģ birimidir. Bular arasıda iģlemci e öemlisidir. Bir iģlemci bilgisaarı temel parçasıdır. Adıda da alaģılacağı üzere iģlemci, bir bilgisaardaki iģlemleri ürüte ve souçları gerekli erlere gödere elemadır. Gücel iģlemciler mikroskobik bouttaki trasistörleri direçler, kodasatörler ve diotlarla bir araa getirilmeside oluģa milolarca karmaģık matık kapısıda oluģur. Bu karmaģık görüe apı iģlemcii veriolu ve deetim birimii oluģturur. ĠĢlemciler ilk olarak vakum tüplerile baģlaa ve trasistörlerle devam ede bir evrim geçirmiģlerdir. Acak iģlemci üretimii tam ivme kazaması siliko üzerie apıla trasistörler saeside olmuģtur. Itel firmasıı 97 ılıda ilk defa bilerce trasistörü bir siliko çip üzeride birleģtirmesile bilgisaar çağıda devrim gerçekleģtirilmiģtir. ĠĢlemcileri seri üretimie geçilmesile daha öce sadece büük Ģirketleri ve üiversiteleri kullaabildiği bilgisaarlar iice küçüldü ve Ģuaki halii aldılar. Buula birlikte iģlemciler moder haatta alızca bilgisaarlar değil otomobil, cep telefou gibi birçok erde kullaılmaa baģlamıģtır. Tekoloide ileri sevielere gelmiģ birçok ülkede iģlemci tasarımı gerçekleģtirilmektedir. Bu kouda daha ei adımlar ata ülkemizde de bir iģlemci apılmak istemektedir. Bu üzde daha aratıcı olabilmek ve doğruda bilgisaar tasarımıı kullaıcılar, tekik elemalar ve mühedisler tarafıda daha akıda irdelemesi amacı ile ülkemizde Tübider (Türk BiliĢim Dereği) tarafıda iģlemci tasarımı üzerie bir arıģma düzelemektedir. Bu arıģma kapsamıda gerçekleģtirilecek iģlemci bu proei kousudur. arıģmaa 3 dalda girmek mümküdür. Bular Saal ĠĢlemci Tasarımı, FPGA ile Fiziksel ĠĢlemci Tasarımı, Akademik eilikçi Gömülü Sistem Tasarımı dır. Bitirme proesi kapsamıda her üç dalda bir tasarım apılması plalamaktadır. Acak bu makalede alızca saal tasarıma iliģki arıtılar verilecektir. Saal iģlemci tasarımı içi zate hali hazırda verilmiģ ola buruklar kullaılarak iģlemcii apması gerekeler ve kullaılacak birimler belirlemiģtir. Ġlk olarak burukları asıl davraacağı ve buruk türleri tasarlamıģtır. Bu adımda sora kağıt üzerie geçirile tasarım üzeride gerekli düzeleme ve değiģiklikler apılmıģ ve tasarım so halii almıģtır. Verioluu so halii almasıla birlikte deetim birimi tasarımı tamamlamıģtır. 4
PROJE AŞAMALARI TASARIM Tübider iģlemci arıģmasıa katılmak amacıla tasarlaacak ola Kasırga iģlemcisii saal tasarımı apılırke ilk adım buruk türleri ve bir burukta hagi bitleri eleri ifade ettiğii belirlemesi olmuģtur. ĠĢlemcii burukları 6 bit olacaktır ve bitlik alık değerler kullaılacaktır. GerçekleĢtirilmesi gereke 30 buruk ise 5 bitle ifade edilecektir. Bazı burukları gerçekleģtireceği iģlemler ise daha sora belirlemek üzere bırakılmıģtır. Bular SSCALL, HLT ve BL buruklarıdır. Kasırga iģlemciside 3 tür buruk vardır. Bular A-tipi, -tipi, D-tipi buruklardır. A-tipi buruklar alık değerle apıla iģlemleri ifade eder. Burada 5 bit apılacak iģlemi bildirir ve geri kala bit alık değerdir. Alık değerle apıla iģlemler geelde birikeç ile apıla iģlemlerdir. Bularda azmaçta değer almak erie direkt kullaıcıda alıa değerler kullaılır. -tipi buruklar ise azmaç tipi buruklardır. azmaç tipi buruklarda iki azmaçla apıla iģlem bir souç azmacıa azılır. 6 bit içide ilk 5 bit iģlemi gösterirke soraki 3 bit soucu azılacağı azmacı, daha sora gele 6 bit ise iģlemleri apılacağı azmacı gösterir. D-tipi buruk ise iģlem biti ve azmacı gösterir. Ġkici azmaçtaki değer birici azmaçla apılacak iģleme dair değerler tutar. Buruklarla ilgili arıtılar bir soraki Buruk tasarımı baģlığıda arıtıla iceleecektir. Buruk tasarımı sorasıda iģlemcii veriolu tasarımı apılmıģtır. Verioluda AMB, çarpma birimi ve kadırma birimi olması plalamıģtır. Kasırga iģlemcisi tek vuruģlu bir iģlemci olacaktır. Bu iģlemcide aritmetik iģlem apa birimleri arılması çok büük bir hız sağlamaacaktır acak daha ileriki sevielerde öreği boru hattı uguladığıda birimleri arılması hız kazadıracaktır. Veriolu tasarımı çoklaıcılar ve birimleri eklemesile tamamlamıģtır. Veriolua dair arıtılar veriolu baģlığı altıda, birimlere dair arıtılar birimler baģlığı altıda ve deetim birimie dair arıtılar da ie deetim baģlığı altıda verilecektir. 5
BURUK TASARIMI İŞLEMLER 00000 HLT 0000 SSCALL 0000 - Idle 000 - Idle 0000 ADD 000 SUB 00: Aritmetik 000 MUL ĠĢlemler 00 MULU 0000 AND 000 OR 00: Matık 000 NOT ĠĢlemleri 00 OR 000 BEQ 00 BNE 0: Dallama 00 BA ĠĢlemleri 0 BL 0000 SLL 000 SRL 00: Kadırma 000 SLA ĠĢlemleri 00 SRA 000 LW 00 SW 0: Load, Store, 00 MOV Move ve Compare 0 CMP 000 MOVI 00 ANDI 0: Alık Değer ile 00 ORI Matık ve MOV 0 ORI 00 ADDI 0 SUBI : Alık Değerle 0 MULI Aritmetik ĠĢlemler ve NOP NOP BURUK TÜRLERİ A-TİPİ (Alık; 5- lik buruk türü) ĠĢlem (5) Alık Değer () -TİPİ (azmaç; 5-3-3-3 lük buruk türü) ĠĢlem (5) Ra (3) Rb (3) Rc (3) D-TİPİ (Diğer; 5-3-3 lük buruk türü) ĠĢlem (5) Ra (3) Rb (3) A-TİPİ: 5 bit iģlem içi, diğer bit ise alık değer içi arılmıģtır. Alık değer ile apıla tüm iģlemlerde bu buruk türü kullaılmaktadır. -TİPİ: 5 bit iģlem içi, 3 adet 3 er bit ise Ra, Rb ve Rc azmaçları içi arılmıģtır. Ra a Rb ve Rc azmaçlarıdaki veriler ile apıla iģlemi soucu azılır. Aritmetik iģlemler ii kullaılmaktadır. D-TİPİ: 5 bit iģlem içi, adet 3 er bit ise Ra ve Rb azmaçları içi arılmıģtır. Load, store, compare ve shift gibi iģlemler içi kullaılmaktadır. 6
*HLT -- DUR *SSCALL -- SİSÇAĞ ADD ( Tipi) -- TOP Ra Rb + Rc B ile C azmacıdaki değer toplaıp A azmacıa azılır. SUB ( Tipi) -- ÇIKAR Ra Rb Rc B azmacıdaki değerde C azmacıdaki değer çıkarılıp souç A azmacıa azılır. MUL (D Tipi) -- ÇARP Üst+Alt Ra * Rb A azmacıdaki değer B azmacıdaki değerle çarpılır. Souç 3 bitlik veri tutabilecek iki azmaca bölüür. Çarpma iģlemi iģaretli saılarla (e tümlee) iģlem apar. Ġki tae 6 bitlik saıı çarpımı e fazla 3 bitlik bir değer olabileceği içi souç üst ve alt azmaçlarıa bölüerek tutulur. MULU (D Tipi) -- İÇARP Üst+Alt Ra * Rb A azmacıdaki değer B azmacıdaki değerle çarpılır. Souç 3 bitlik ver tutabilecek iki azmaca bölüür. ĠĢaretsiz saılarla iģlem apar. azmaçlardaki 6 biti tümü saıı göstermek içi kullaılır. AND ( Tipi) -- VE Ra Rb Rc AND buruğu tipi buruklarla gerçekleģtirilebilir. tipi burukla gerçekleģtirilirse c ve b azmaçlarıdaki değerler VEleerek a azmacıa azılır. AND iģlemi azmaçlardaki 6 bitilik değerler arasıda bit bit ve apılması ile gerçekleģtirilir. OR ( Tipi) -- VEA Ra Rb Rc OR buruğu tipi buruklarla gerçekleģtirilebilir. tipi burukla gerçekleģtirilirse c ve b 7
azmaçlarıdaki değerler OR laarak a azmacıa azılır. azmaçlardaki 6 bitilik değerler arasıda bit bit vea iģlemi apılır. NOT (D TİPİ) -- DEĞİL Ra Rb - Ra azmacıa Rb i değerii tersi alıarak azılır. OR ( Tipi) -- ÖVEA Ra Rb (OR) Rc OR buruğu tipi buruklarla gerçekleģtirilir. tipi burukla gerçekleģtirilirse c ve b azmaçlarıdaki değerler OR laarak a azmacıa azılır. azmaçlardaki 6 bitlik değerler arasıda bit bit or iģlemi apılır. BEQ (A Tipi) -- SED Eğer SıfırBarağı = ise PS = PS + iģaretle geiģletilmiģ(alık Değer) BEQ geellikle bir CMP komutu sorasıda kullaılır. Buruk sıfır barak bitie bakarak değer e eģitse program saacıı alık değeri iģaretle geiģletilmiģ hali kadar artırır. Alık değer eksi a da artı olabilir. BNE (A Tipi) -- SEDD Eğer SıfırBarağı = 0 ise PS = PS + iģaretle geiģletilmiģ(alık Değer) BNE geellikle bir CMP komutu sorasıda kullaılır. Buruk sıfır barak bitie bakarak değer 0 a eģitse program saacıı alık değeri iģaretle geiģletilmiģ hali kadar artırır. Alık değer eksi a da artı olabilir. BA (A Tipi) -- ATLA PS = Alık Değer ĠĢaretle geiģletilmiģ alık değeri gösterdiği adrese gidilir. *BL -- AVB SLL (D Tipi) -- SOMK a da Ra ı değeri Rb kadar sola matıksal kadırılır. SRL (D Tipi) -- SAMK a da Ra ı değeri Rb kadar sağa matıksal kadırılır. 8
SLA (D Tipi) -- SOAK a da Ra ı değeri Rb kadar aritmetik sola kadırılır. SRA (D Tipi) -- SAAK a da Ra ı değeri Rb kadar aritmetik sağa kadırılır. LW (D Tipi) -- ÜKLE Ra Bellek [Rb] Bellekte Rb azmacıda bulua 6 bitlik değeri gösterdiği adresteki veri alııp Ra azmacıa ükleir. SW (A Tipi) -- SAKLA Bellek [Rb] Ra Ra azmacıdaki değeri Rb azmacıda bulua 6 bitlik değeri bellekte gösterdiği adrese ükler. MOV (D Tipi) -- TAŞI Ra Rb B azmacıdaki değeri A azmacıa kopalar. CMP (D Tipi) -- KARŞ Brkç Ra - Rb A azmacıdaki değerde B azmacıdaki değeri çıkarıp Birikece göderir. Eğer akümülatörü değeri egatif ise a azmacıdaki değer b de küçüktür, değer pozitif ise a, b de büük ve akümülatörü değeri 0 a eģitse a ve b azmaçları birbirie eģittir. Arıca CMP buruğu barak bitlerii de etkiler. Barak bitleri daha sora gelecek bir dallama komutuu öledirmek içi kullaılır. MOVI (A Tipi) -- ATAŞI Brkç Alık değer (ĠĢaretle GeiĢletilmiĢ) Alık değeri iģaretle geiģletilmiģ halii akümülatöre ükler. ANDI (A Tipi) -- AVE Brkç Brkç Alık değer (Sıfırla GeiĢletilmiĢ) Alık değeri sıfırla geiģletilmiģ halii Birikeçteki değerle ve iģlemie sokup birikece göderir. 9
ORI (A Tipi) -- AVEA Brkç Brkç Alık değer (Sıfırla GeiĢletilmiĢ) Alık değeri sıfırla geiģletilmiģ halii birikeçteki değerle vea iģlemie sokup birikece göderir. ORI (A Tipi) -- AÖVEA Brkç Brkç (OR) Alık değer (Sıfırla GeiĢletilmiĢ) Alık değeri sıfırla geiģletilmiģ halii birikeçteki değerle or iģlemie sokup birikece göderir. ADDI (A Tipi) -- ATOP Brkç Brkç + Alık değer (ĠĢaretle GeiĢletilmiĢ) Alık değeri iģaretle geiģletilmiģ halii birikeçteki değerle toplaıp birikece göderir. SUBI (A Tipi) -- AÇIKAR Brkç Brkç - Alık değer (ĠĢaretle GeiĢletilmiĢ) Birikeçteki değerde alık değeri iģaretle geiģletilmiģ halii çıkarıp birikece göderir. MULI (A Tipi) -- AÇARP HI+LO Brkç * Alık değer (ĠĢaretle GeiĢletilmiĢ) Alık değeri iģaretle geiģletilmiģ halii birikeçteki değerle çarpıp 3 bitlik HI ve LO azmaçlarıa azılır. NOP (A Tipi) -- İŞLOK PS PS+ Hiçbir iģlem apılmaz ve program saacı artırılarak bir soraki buruğa geçilir. BARAKLAR Sıfır Elde TaĢma ĠĢaret Sıfır AMB vea çarpma birimide çıka soucu sıfır olup olmadığıa dair bilgi verir. Elde AMB de apıla toplama iģlemi soucuda so basamağı toplamasıda ortaa çıka bir elde değerii olup olmadığıı bildirir. Taşma AMB de apılacak iģlemleri soucuu 6 bite sığmaması durumuda etkileģtirilir. Çarpma birimide bulumaz. İşaret Çarpma birimi a da AMB de apıla iģlemleri soucuu iģaretii egatif a da pozitif olmasıı gösterir. 0
AZMAÇLAR Adres azmaç Adı 000 Birikeç 00 Üst 00 Alt 0 Geel Amaçlı azmaç 00 Geel Amaçlı azmaç 0 Geel Amaçlı azmaç 0 Geel Amaçlı azmaç Geel Amaçlı azmaç İŞLEMCİ TANITIMI Kullaıla bellek hem veri belleği hem de burukları tuta bellek olduğu içi adres çıkıģıı öüe koula bir çoklaıcı ile program saacı ve adres değeri arasıda seçim apılır. Program saacıda gele değeri seçilmesi içi çoklaıcıı deetim değeri 0 olarak belirleir Program saacıda gele değerle bellekte alıa buruk azmaç öbeğie getirilir. azmaç öbeğide de; o A-tipi buruk içi ilk 5 bit <0:4> iģlem değerii gerie kala bit ise alık değer olarak alıır. o -tipi buruk içi ilk 5 bit <0:4> iģlem değeri soraki 3 bit <5:7> soucu azılacağı azmacı (Ra), <8:0> arasıdaki 3 bit birici kaak azmacıı (Rb), <:3> arasıdaki 3 bit ikici kaak azmacıı (Rc) gösterir. o D-tipi buruk içi ilk 5 bit <0:4> iģlem değeri soraki 3 bit <5:7> soucu azılacağı azmacı (Ra),<8:0> arasıdaki 3 bit birici kaak azmacıı (Rb) gösterir. azmaç öbeğie gelidiğide Ra soucu azılacağı azmacı gösterir, soucu azılacağı azmaç herhagi bir azmaç olabileceği gibi birikeç de olabilir. Birikeç ve diğer azmaç arasıda seçim apabilmek içi souç azmacıı adresii verildiği giriģe bir çoklaıcı bağlamıģtır. Bu çoklaıcıı giriģleri Ra ı bildire <5:7> arasıdaki 3 bit ve birikeci adresii bildire 000 bitleridir. azmaç öbeğide bulua az deetimi souç azmacıa gele değeri azılıp azılmaacağıı deetler. Eğer az deetimi etkise souç azmacı olarak seçilmiģ ola birikeç a da geel amaçlı azmaca azmaç öbeğii Veri GiriĢide gire değer azılır.
azmaç öbeğii veri giriģide bulua çoklaıcı ile AMBde gele souç değeri, alık değer ve MOV buruğuu gerçekleģtirilmesii sağlaa Rb değeri arasıda seçim apılır. Bu belirlemei apılmasıa sebep ola buruk MOVI buruğudur. MOVI buruğu alık değeri birikece atmaktadır. MOVI ı gerçekleģtirilmesi içi souç azmacı olarak birikeç seçilirke azmaç öbeğie gire değer olarak alık değer seçilmektedir. Diğer buruklarda ise iģlemleri apılacağı AMB, Bellek vb. birimlerde gele souç değeri seçilmektedir. MOV buruğuda ise azılacak değer olarak Rb azmacıı değeri olarak seçilir. azmaç öbeğii çıkıģı olarak Ra, Rb ve Rc azmaçlarıı değerleri alıır. Burada Ra bazı buruklar içi birikeci temsil ederke bazı buruklar içi souç azmacıı temsil etmektedir. Eğer iģlem LW a da SW gibi bir bellek iģlemi ise Rb değeri bellekte okuacak a da azılacak veri içi adresi gösterir. Ra LW içi bellekte alıa değeri ükleeceği azmacı, SW içise belleğe ükleecek değeri buluduğu azmacı gösterir. Eğer buruk bir aritmetik a da kadırma iģlemi ise Ra, Rb ve Rc değerleri iģlem birimlerii olduğu kısma öledirilir. Aritmetik iģlemleri apılacağı birimlere iki giriģ verilecektir. GiriĢ değerleri buruk türüe göre azmaç öbeğii çıkıģıa koula çoklaıcılar ardımıla seçilir. Birici çoklaıcıa alık değer ve birici kaak azmacı (Rb), ikici çoklaıcıa ise souç azmacı (Ra) ve ikici kaak azmacı (Rc) verilir. Buruğu türüe göre çoklaıcılarda değerler seçilir. Buruklara göre hagi değerleri seçileceği aģağıdaki tabloda gösterilmiģtir. Buruk.Çoklaıcı.Çoklaıcı apılacak ĠĢlem ADD Rb Rc Ra Rb+Rc SUB Rb Rc Ra Rb-Rc MUL Rb Rc Ust+Alt Rb*Rc MULU Rb Rc Ust+Alt(U)Rb*(U)Rc AND Rb Rc Ra Rb (VE) Rc OR Rb Rc Ra Rb (VEA) Rc NOT Rb Ra Rb - OR Rb Rc Ra Rb (OR) Rc SLL Rb Ra Ra Ra (SLL) Rb
SRL Rb Ra Ra Ra (SRL) Rb SLA Rb Ra Ra Ra (SLA) Rb SRA Rb Ra Ra Ra (SRA) Rb CMP Rb Ra Birikeç Ra-Rb ANDI Alık Ra BirikeçBirikeç(VE)Alık ORI Alık Ra BirikeçBirikeç(VEA)Alık ORI Alık Ra BirikeçBirikeç(OR)Alık ADDI Alık Ra BirikeçBirikeç + Alık SUBI Alık Ra BirikeçBirikeç Alık MULI Alık Ra Üst+AltBirikeç * Alık Birici ve Ġkici olda AMB, Çarpma ve Kadırma birimlerie gele değerlerle iģlemler gerçekleģtirilir. Her birim iģlemii gerçekleģtirdikte sora soucuu verioluu souda bulua çoklaıcıa göderir. ĠĢlee buruğa göre souç değeri seçilerek azmaçlara göderilir. ĠĢlemler apıldığı sırada barak bitleri de gücelleir. Arıca barak bitleri deetim birimie de göderilerek Dallama iģlemlerii apılması sağlaır. Dallama buruklarıı gerçekleģtirilmesi içi sıfır barak bitide ararlaılır. Eğer barak bitii değeri ise ve BEQ buruğu iģletiliorsa program saacı öüdeki çoklaıcıda program saacıı iģaretle geiģletilmiģ alık değerle toplamıģ hali seçilir. Bu Ģekilde program saacıa alık değerle gele atlama miktarı eklemiģ olur. Alık değer eksi a da artı olarak seçilebilir. Artı seçile alık değer programı ilerie doğru, eksi seçile ise gerie doğru atlamasıı sağlar. Eğer BNE buruğu iģletiliorsa ve sıfır barağı 0 ise PS içi iģaretle geiģletilmiģ alık değeri PS ile toplamıģ hali seçilir. BA buruğuda ise program saacıı değeri olarak alık değeri iģaretle geiģletilmiģ hali seçilir. Dallama burukları haricide PS değeri artırılır. Buu edei bellekte verileri 6 bitlik kelimeler halide durmasıdır. Ekleme: ORG gibi programı baģlaacağı eri göstere bir buruk olacak. 3
4
BİRİMLER AZMAÇ ÖBEĞĠ azmaç öbeği sekiz satırlık oaltıģar SRAM hücresii birleģimide oluģmaktadır. Hücreleri içide altıģar tae trasistör bulumaktadır. Her hücrede 6 trasistör ve DEĞĠL kapısı bulumaktadır. Biti değerii DEĞĠL kapıları saklar. Bir kapı diğerii besler. A,B ve C adresleri kod çözücülerde geçtikte sora hücrelere iletilir. Kod çözücüler sekiz tae AND kapısıda oluģmaktadır. Adreslerde geleler çeģitli Ģekillerde adleip iletilir. A,B ve C verileri ilgili erlere bağlıdır. (C verisi azma sürücüsüe bağlıdır.) 5
ARİTMETİK MANTIK BİRİMİ(AMB) BARAKLAR Sıfır: AMB vea çarpma birimide çıka soucu sıfır olup olmadığıa dair bilgi verir. Elde: AMB de apıla toplama iģlemi soucuda so basamağı toplamasıda ortaa çıka bir elde değerii olup olmadığıı bildirir. TaĢma: AMB de apılacak iģlemleri soucuu 6 bite sığmaması durumuda etkileģtirilir. ĠĢaret: Çarpma birimi a da AMB de apıla iģlemleri soucuu iģaretii egatif a da pozitif olmasıı gösterir. AMB DE İŞLENEN TEMEL İŞLEMLER VE İŞLEM BİTLERİ 000 ADD SUB 00 OR 0 AND 00 OR 00 NOT ADD A ve B azmaçlarıdaki 6 bitlik iki saıı toplaması iģlemidir. Bu iģlem Kasırga Toplaıcısı ile gerçekleģtirilir. Bu toplaıcı farklı metotlar kullaa herhagi bir toplaıcı olabilir. Saıları belirli bit gruplarıa bölerek toplaabilir ( öreği 4 bitlik gruplar halide ).Kasırga Toplaıcısı da 4 tae bitlik barak çıkıģı bulumaktadır. Bular Elde, TaĢma, ĠĢaret ve Sıfır dır. Eğer souç olumlusa bu bitler değerii almaktadır. Öreği CMP iģlemide iki saı birbiride çıkarılır souç sıfırsa Sıfır barağı değerii alır. Kasırga Toplaıcısı ı içapısı ve toplama ötemi değiģse dahi tasarım ukarıda belirtile giriģ ve çıkıģlara bağlı kalıarak apılmalıdır. AMB i ADD iģlemi soucuda çıkıģıı almak içi iģlem bitlerii 000 olarak aarlamak gereklidir. A,B ve C adresleri kod çözücülerde geçtikte sora hücrelere iletilir. [] SUB B azmacıdaki değeri A azmacıda çıkarılması iģlemidir. Bu iģlem toplama iģlemii aısıdır fakat toplaıcıa gire B azmacıdaki değeri tersi alıarak toplaıcıa sokulması gerekmektedir. SUB buruğuu iģlem bitleri dir ve e üksek alamlı biti ola sadece bu buruk bulumaktadır (soldaki ilk iki bit). Bu saede e üksek alamlı iki biti VE kapısıa bağladığımızda Ģekil de gözüktüğü gibi çoklaıcıa giriģii vererek B azmacıı terslemiģ giriģii toplaıcıa 6
gödermektedir. [] Aksi takdirde çoklaıcıa 0 giriģi gelerek B azmacıdaki değeri olduğu gibi toplaıcıa gödermektedir. OR A ve B azmacıdaki 6 bitlik iki değere özel vea iģlemi ugulamasıdır. ĠĢlem biti 00 dir. AND A ve B azmacıdaki 6 bitlik iki değere VE iģlemi ugulamasıdır. ĠĢlem biti 0 dir. OR A ve B azmacıdaki 6 bitlik iki değere VEA iģlemi ugulamasıdır. ĠĢlem biti 00 dir. NOT B azmacıdaki tersii alımasıdır. Souç ( bit) 7
8 Not_ Çıkarma iģlemi içi kullaılacak ola tersleici matıksal tersleme değil ikie tümlee kullaarak değeri tersii almaktadır. Çizimde görüle Değil kapısıı erie e tümlee alacak bir kutu buluacaktır. ÇARPMA BİRİMİ Çarpma Birimi belirli bir çarpım algortimasıı gerçekleģtirecek bir devredir. Karatsuba Algoritması (96) : 30 de büük saılaruı çarpımıda etkilidir. Toom - Cook(966) : orta büüklükteki saıları çarpımıda etkilidir. Schöhage Strasse (97): Büük boutlu saıları çarpımıda e etkili algortimadır. 7 de büük saılarda etkili olduğu içi değerledirilmemiģtir. FFT kullaıla bir Ģekli de mevcuttur. Booth Algortiması (95): Booth çarpım algoritması iģaretli saıları e tümlee Ģeklide çarpa bir algoritmadır. [4] Çarpım Algoritması AraĢtırmalar souda Çoklaıcı temelli Çarpım Algortiması seçilmiģtir. AĢağıdaki Ģekil ve deklemlerle açıklamıģtır. [5] 0 0 0 0...... 0 0 3... ad 0 0 3... ad ve i çarpımı ola P saısı P Ġle hesaplaır. P P olmak üzere;
9 P P 0 Z P Z Alttaki Ģekilde kou çizgili kısımlar kısmi çarpımları verir, kesikli çizgile gösterile simetri çizgisi üzeride katladığıda souç elde edilir. Z içi Doğruluk Tablosu S S S i değeri iģaretsiz saılarda aģağıdaki devre ile hesaplaır. ĠĢaretli saılarda ise P i hesaplaması 0 0... 0 0...
0 P alızca Z- terimii iģareti değiģir, devre karmaģıklığı artmaz. Devre ġeması Z ve terimleri ici satırda elde edildikte sora toplaır.
Karşılaştırma Souç Çoklaıcı tabalı çarpıcıı diğer çarpıcı tiplerie göre hız, karmaģıklık ve güç tüketimi değerleri: 6 bitlik Booth, Wallace ve Hitachi çarpıcılarıla çoklaıcı tabalı çarpıcıı hız ve güç tüketim değerleri ekteki tabloda verilmiģtir. 6 bitte büük saılarla çarpım apıldığıda Hitachi ve Ioue çarpıcıları daha hızlı, acak tasarlaa çarpım birimi 6 bit olacağıda çoklaıcı tabalı çarpıcı tipi seçilmiģtir. Devre Ģeması daha sade acak VLSI gerçeklemede erde kazamak adıa dikdörtge biçimie aklaģtırılmalı. KADIRMA BİRİMİ Kadırma iģlemi sağa/sola ve aritmetik/matıksal olarak farklılaģmıģtır. Bua göre sağa aritmetik, sağa matıksal ve sola aritmetik, sola matıksal olmak üzere 4 Ģekilde apılabilir. Sağ ve sol kadırmaı ölerii bildirirke aritmetik ve matıksal olması da kadırmaı türüü bildirir. Kadırma sırasıda açılacak ola boģ bitlere hagi değerleri geleceği kadırmaı aritmetik vea matıksal olmasıa bağlıdır. Sağa matıksal kadırma: Sağa kadırma değeri oluģtura bitleri sağa doğru ilerletilmesidir. Sağa ilerletme apılırke saıı sol tarafıda(baģıda) boģluklar oluģacaktır. Bu boģluklar ise matıksal kadırma iģlemide 0 ile
doldurulur. 0 Saısı sağa bit matıksal kadırıldığıda 0 0 elde edilir. Sodaki bit kabedilmiģ ve baģa sıfır eklemiģ olur. Sağa aritmetik kadırma: Aritmetik kadırmada ise sağa ilerletme apılırke saıı sol tarafıda(baģıda) oluģa boģluklar saıı iģaret biti ai ilk biti ile doldurulur. 0 Saısı sağa bit aritmetik kadırıldığıda elde edilir. Sodaki bit kabedilmiģ ve baģa iģaret biti ola tae eklemiģ olur. Sola matıksal kadırma: Sola kadırma değeri oluģtura bitleri sola doğru ilerletilmesidir. Sola ilerletme apılırke saıı sağ tarafıda(souda) boģluklar oluģacaktır. Bu boģluklar 0 ile doldurulur. 0 0 Saısı sola bit matıksal kadırıldığıda 0 0 0 elde edilir. Sola aritmetik kadırma: Sola kadırma iģlemide aritmetik a da matıksal arasıda fark oktur. Saıı soua iģaret bitii kopalaması alamsızdır. Bu edele sola kadırma apılırke oluģa boģlukları doldurulması içi alızca 0 kullaılır. Sola kadırma ikilik tabada bir evi ile çarpma iģlemii ifade eder. 0 0 Saısı sola bit aritmetik kadırıldığıda 0 0 0 ai ie matıksal kadırmala aı 000 değeri elde edilir. Kasırga iģlemciside kullaılacak ola kadırma birimi çoklaıcılar ardımıla iģlem apacaktır. Tüm çoklaıcıları deetim değerleri birbirie bağlıdır ve bu deetim değerleri ile kadırma sırasıda oluģabilecek tüm durumlar gösterilir. Kasırga kadırma burukları D-tipi buruklardır. ai gerçekleģtirilecek buruğu göstere opcode değeride baģka azmacı daha gösterir. Bu azmaçta biriciside kadırılacak değer ikiciside ise değeri e kadar kadırılmak istediği buluacaktır. Kasırga iģlemciside azmaçlarda 6 bitlik değerler tutulur. Bu edele 6 da sora apılacak kadırmalar a sıfırlaacaktır a da tekrar saıı 6 la modu alıarak o kadar kadırma apılacaktır. ġu ada tasarlamıģ ola kadırma birimide bu karar 6la mod alıması Ģeklidedir. ai 7 kadırılmak istediği 7 (mod 6) olduğu içi değer bit kadırılacaktır. 6 da soraki değerleri kadırılmasıda programcıı(derleicii) burukları buu düģüerek aarlaması gereklidir. Kadırma apılırke ikici azmaçta gele 6 bitlik verii alızca so 4 bitie bakılacaktır. 4 bitle 4 = 6 kadırma değeri ifade edilir. Kadırma birimi içi gösterile resimde 4 bitlik bir kadırma birimi gösterilmiģtir. Dolaısıla deetim değerleri de 3 bit olmuģtur. 6 bitlik kadırma apılırke deetim değeri 5 bit olacaktır ve 53 lik çoklaıcılar kullaılacaktır. 3
Deetim değerleri olabilecek durumları göstermektedirler. Deetim olarak gire B ve B 0 e kadar kadırılacağıı gösterir. 4 bitlik bir değer 4 e fazla 4 kez kadırılabilir ai B B 0 bu 4 durumu ifade eder. R/L (Right/Left) değeri ise sağa a da sola kadırma apılacağıı gösterir. Bua göre 4 bitlik kadırma birimide aģağıdaki iģlemler apılır. R/L B B 0 ĠĢlem 0 0 0 0 sola kadır(değiģtirme) 0 0 sola kadır 0 0 sola kadır 0 3 sola kadır 0 0 0 sağa kadır(değiģtirme) 0 sağa kadır 0 sağa kadır 3 sağa kadır Saı A 3 A A A 0 Ģeklide bitlerde oluģur. Sola kadırma apılırke bu bitler sağ tarafa doğru er değiģtirirler. Öreği sağa kadırma apıldığısa 0 A 3 A A saısı elde edilir. Saıı baģıa gelecek ola sıfır değeri ilk çoklaıcıı 00 oluda geçer. Diğer değerler de bir soraki çoklaıcıları 00 ollarıda geçerler. Sağa kadırma apılırke de boģ kala erleri doldurmak içi A 3 ai iģaret biti kopalaır. ĠĢaret biti ve sıfır arasıda seçim apmak içi alttaki A/L (Arithmetic/Logic) deetimi ile kotrol edile çoklaıcı kullaılır. Bu çoklaıcıı çıkıģları 4, 5, 6, 7 giriģlerie bağlı olduğu içi alızca sağa kadırma iģlemleride soucu etkiler. Sağa kadırma içi 4, 5, 6, 7 giriģleri sola kadırma içi de 0,,, 3 giriģleri kullaılır. 4
5
DENETİM BİRİMİ Deetim birimi iģlemcii çoklaıcıları ve diğer birimleri içi deetim değerleri ürete bir birimdir. ĠĢlem bitleri ve baraklar deetim birimii giriģleri, deetim değerleri ise deetim birimii çıktılarıdır. Öreği bir LOAD buruğuu ürütümü sırasıda belleği adres giriģi öüde bulua D deetim değeri olarak aarlaır, diğer durumlarda ise değer 0 dır. bu durumlar ardımıla aģağıdaki doğruluk tablosu oluģturulmuģtur. Bu doğruluk tablosu ardımıla her bir deetim siali içi bir foksio karo haritası ötemile hesaplaacaktır. Hesaplaa foksiolar matık kapıları ardımıla gerçekleģtirilecektir. Deetim birimii tasarımıda mikro kodlama kullaılmamasıı sebebi matık kapıları ardımıla daha hızlı bir Ģekilde deetim değerlerii alıabilmesidir. 6
SONUÇ Bu proe ile proede er alalar tek vuruģlu bir iģlemci ve ou temel kuralları hakkıda arıtılı bilgi edimiģ oldular. BaĢta baģlaarak tasarlaa ei bir iģlemci ülkemiz içi ei iģlemciler tasarlamada büük bir adım olacaktır. Arıca bu tür proeler tekoloi sektörüü de etkiler. Tekoloi Türkler tarafıda üretildiği zama malietler düģeceği gibi askeri proelerde de rahatlıkla kullaılacaktır. Bir iģlemci tasarlamak güveliği artıracak ve eğitime de destek olacaktır. Bu proe eğitim amaçlı bir proe olmasıa rağme iģlemcimiz Kasırga i gelecekte baģka iģlerde de kullaılabilmesi amaçlamaktadır. Kasırga i daha güçlü baģka sürümlerii de tasarımı plalamaktadır. Kasırga Tubider arıģması içi hazırlamıģ 30 buruk ürütebile tek vuruģluk bir iģlemcidir. Kedisie verile burukları doğru ve hızlı bir Ģekilde ürütmesi gerçekleģtirilmesi gereke e öemli oktadır. GELECEK PROJELER Kasırga tek vuruģluk bir iģlemcidir. Acak verioluu bölümleerek üzerie boru hattı ugulaması plalamaktadır. Boru hattı farklı burukları farklı sürelerde apılmasıda fadalaılarak oluģturulmuģ bir tekiktir. Tek vuruģluk iģlemcilerde her buruk tek bir vuruģta iģleir ve her vuruģu süresi e uzu buruğu tamamlama süresie eģittir. [3] Arıca boru hattıda buruk akaladıkta sora verioluda ilerlerke veriolua arkasıda gele buruklar alıır. Bu Ģekilde buruklar sırala ürütülürke toplam süre kısalmıģ olur. Boru hattı bölece baģarımı da ükseltir. Kasırga i ei sürümleride boru hattı ugulaması plalamaktadır. arıģmaı bir soraki aģamasıda iģlemcii bir FPGA kartı üzeride gerçekleģtirilmesi gerekmektedir. Kasırga ise bir ili Sparta 3E FPGA kart üzeride bir doaım taımlama dili ola Verilog ile gerçekleģtirilecektir. [7] KANAKLAR [] Core, I. (00). Computer Arithmetic Algortihms. A K Peters Ltd. [] Neil H.E. Weste, K. E. (99). Priciples of CMOS VLSI Desig:A sstems perspective. Addiso- Wesle. [3] David A. Patterso, Joh L. Heess Computer Orgaizatio ad Desig: The Hardware/Software Iterface 997 d Editio [4] Parhami, Behrooz, Computer Arithmetic: Algorithms ad Hardware Desigs 999 [5] KiamalZ. Pekmestzi, Multipleer-Based Arra Multipliers, IEEE Trasactios o Computers, 7
Vol. 48, No., Jauar 999. [6] Çiftçi, B. Seda Desig ad Realizatio of a High Speed 64 64 bit Multiplier for Low Power Applicatios 003 [7] http:// www.asic-world.com/verilog/verilog_oe_da.html#block_diagram_of_arbiter, Deepak Kumar Tala 8