You are on page 1of 188

,

Ders Tanm lk olarak, tek ilemcili bilgisayarn zellikleri ve performans anlatlp, zellikleri aklanacaktr. Kesinti ile ilemiyle ilgili zellikler anlatlacak ve temelleri aktarlacaktr. kinci temel konu olarak, sralama ve vektr ileme ile ilgili nemli temel kavramlar tantlacak ve uygulamalar ve rneklerle detaylay renciye aktarlacaktr. Sralama ile ilgili kavramlar olarak aritmetik ve komut sralamas tantlacaktr. Sonra vektr ve dizi ileme zellikleri tantlacaktr. Sonraki blmde, giri ve k oraganizasyonu ve eitleri tantlp renciye rnekler verilecektir. D dnya ile bilgisayar balantsn oluturan bu elementler zerinde detaylar tantlacaktr. Bellek organizasyonu, dier bir blm olarak aktarlp, eitli bellek yaplar zerinde tartlacaktr. Bu yaplarn merkezi ilem birimlerine balantlar anlatlacaktr. eitli problemler tartlacaktr. Son olarak, oklu ilemciler ve eitli ilemcilerin biraraya gelmesinden oluacak yaplar tantlacaktr. Konular Hafta 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Balang Tarihi 10.11.2005 17.11.2005 24.11.2005 01.12.2005 08.12.2005 15.12.2005 22.12.2005 29.12.2005 05.01.2006 12.01.2006 19.01.2006 26.01.2006 02.02.2006 09.02.2006 lenecek Konu Tek lemcili Bilgisayarn zellikleri ve Performans-1- CISC ve RISC bilgisayar yaps Tek lemcili Bilgisayarn zellikleri ve Performans-2-Kesinti, iletim sistemi Sralama (Pipelining) ve Vektr leme-1-Paralel ileme, sralama, RISC sralamas Sralama (Pipelining) ve Vektr leme-2-Vektr ileme, dizi ileme Bilgisayar Aritmetii-1-Toplama, karma, arpma Bilgisayar Aritmetii-2- Blme, yzen nokta aritmetii Giri ve k Organizasyonu-1-Giri-k dzenleri, transfer modlar Giri ve k Organizasyonu-2-Dorudan bellek eriimi (DMA) Giri ve k Organizasyonu-3-Giri-k ilemcisi, seri balant Bellek Organizasyonu-1- Anabellek Bellek Organizasyonu-2-Yardmc bellek, assosiyatif bellek Bellek Organizasyonu-3-Sanal ve arabellek, bellek dzenleme oklu lemciler-1-zellekler oklu lemciler-2-oklu ilemcilerarssd uyum

Kaynaklar Kaynak Ad 1 2 "Computer System Architecture," Morris Mano, Prentice Hall, 1993. "Computer Organization and Architecture," 6th edition, William Stallings, Prentice Hall, 2002.

3 Computer Architecture... Hennessy Patterson, 2002. Ara Snavlar Snav Ad Arasnav 1 Arasnav 2 Pay 30 30

Toplam dev ve Tartma Konular Tarihi 30.11.2005 Toplam Dier Faaliyetlere Katlm Faaliyet Sohbet, Tartma Listeleri vb. Vektr ileme ve sralama Konusu

60 Son Teslim Tarihi 07.12.2005 15 15 Pay 25

Pay

Toplam

25

Ders Hedefi
lk olarak, tek ilemcili bilgisayarn zellikleri ve performans anlatlarak, kesinti ileminin zellikleri ve temelleri ile ilgili bilgiler verilecektir. Notlarnz ve dersler sresince rendikleriniz bulunduunuz kurumda, kurum ii ve kurumlar aras balantlarnz yakndan tanmak istediinizde ve kurumunuz iinde teknik artname hazrlama grubunda yer aldnzda size ilk dzeyde bilgi aktaracak bir kaynak olacaktr. kinci temel konu olarak, sralama ve vektr ileme ile ilgili nemli temel kavramlar tantlacak, uygulamalar ve rnekler ile incelenecektir. Sralama ile ilgili kavramlar olan aritmetik sralama ve komut sralamas tantlarak, vektr ve dizi ileme zellikleri incelenecektir. Sonraki blmde, giri /k oraganizasyonu ve eitleri tantlarak rnekler verilecektir. D dnya ile bilgisayar balantsn oluturan bu elementler zerinde detayl anlatmlar yaplacaktr. Bellek organizasyonu, dier bir blm olarak aktarlp, eitli bellek yaplar zerinde tartlarak, bu bellek yaplarnn merkezi ilem birimlerine (CPU) balantlar anlatlacaktr. Ayrca eitli problemler verilerek bu problemler zerinde tartlacaktr. Son olarak, oklu ilemciler ve eitli ilemcilerin bir araya gelmesinden oluan yaplar incelenecektir. Hepinize baarlar dilerim. Prof. Dr. Fikret Grgen

CISC ve RISC MERKEZ LEM BRMLER


Bu blmde ele alnacak olan konular aadaki gibi sralanabilir: CISC ve RISC bilgisayarn karakteristikleri Gl kiisel bilgisayar (Power PC) yaps RISC'in rtm hzl bellek pencereleri yaps CISC ve RISC komutlar CISC ve RISC programlama rnei Program kontrol rnei Alt rutin arma ve dn Kesinti detaylar

letim ve kullanc modu

Blm Hedefi
Bu blmde saysal bilgisayarn temel eitleri saylan karmak komut setli bilgisayarlar (CISC) ile indirgenmi komut setli bilgisayarlar (RISC) ele alnacaktr. Her iki tip bilgisayarda ounlukla karlalan komut tipleri rneklerle tantlp, aralarndaki farklar belirtilecektir. Bu blmdeki ama, baz CISC ve RISC temel kavramlarnn zetlenmesi ve tasarmlarndaki nemli kavramlarn tantlmasdr.

1.1. CISC ve RISC BLGSAYARIN KARAKTERSTKLER


Karmak komut setli bilgisayarlar (CISC) ok sayda komuttan ve adres modundan oluan bir yapya sahiptir. Bu yapda, pek ok veri tipinin de gereklenmesi mmkn olmaktadr. Bilgisayarn donanm karmakl eitli faktrlerden etkilenmektedir: Bir sonraki model ile olan uyum, yksek seviyeli dil ve makina dili arasndaki gei,..vb.

1980'lerin balarnda nerilen dier bir gerekleme fikrine gre az sayda ve basit komutlar, ana bellek transferi kullanmadan CPU'daki hzl bellekler ile koturulursa daha byk ilem hzlarna eriilir. Bu yapya indirgenmi komut setli bilgisayar (CISC) yaps denir.

1.1.1.

CISC Karakteristikleri

Komut setinin tasarm doal olarak makina dilini olduu kadar, yksek seviyeli dillerin de kullanmn etkiler. CISC nermenin bir sebebi derleme zamann ksaltp daha byk koturum hzlarna eriebilmektir. Bunun iin her bir yksek seviyeli dil ifadesine bir makina kodu atanarak hz arttrlr. Dier bir CISC karakteristii ise deiken uzunluklu komut formatlarnn bulunmasdr. Deiken uzunluklu komut formatlarnn sabit ana bellek bayt'larna yerletirilmesi dekoder devreleri yoluyla salanr. Genel bir kural olarak, ok sayda komutun desteklenmesi iin daha fazla donanm lojii gerekli olacaktr. Ayrca adres modlar ve veri eitlerinin de okluu gz nne alnrsa donanm yapsnn kalabalk ve eitli olaca gzlenebilir.

1.1.2. RISC Karakteristikleri


RISC mimarisi, komut setini basitletirerek koturma zamannn ksaltlmasn hedefler.

Az saydaki RISC ilemcisinin komutlar ounlukla hzl bellekler arasndaki ilemlerdir. Load ve store komutlar ana bellek ile olan transferleri salar. RISC mimarisi hzl bellek ilemleri iin optimize edilmitir.

RISC komutlar daha basit ve sabit uzunluklu komutlardr. Dolaysyla dekode edilmeleri daha kolay olmaktadr. Bu zellik donanm kontrol ile birleince daha hzl ilem yapabilen bir yap elde edilmektedir. Bir dier nemli karakteristik ise bir komutun bir fazda veya 1 saat darbesinde koturulabilmesidir. Bu sistemde, iki veya komuta ait alma, dekode etme ve koturma fazlar sralama (pipelining) yoluyla rten zamanlarda yaplr. Bylece ortalama komut koturma faz 1 saat darbesine dm olur.

1.1.2.1. RISC Yapsnn Dier nemli Karakteristikleri

olarak zetlenebilir. Bilgisayarda yaplan ilemlerin ara sonularnn ok saydaki hzl belleklerde saklanmas dolaysyla ilem hznn arttrlmas mmkn olmaktadr. Dier taraftan, alt rutin arma ve geri dn iin rtm hzl bellek pencereleri kullanlmasnn hz arttrc etkilerine tekrar deinilecektir. Sralama (pipelining) yoluyla komut fazlarnn 1 saat darbesine drlmesi yapya ek bir hz salamaktadr.

1.2.

GL BLGSAYAR YAPISI (POWER PC)

VLSI Teknolojisi ok byk lekli entegrasyon (VLSI) teknolojisinin gelimesi sonucu gnmz bilgisayar mimarisi karma bir yapnn oluumuna da imkn tanmtr. Gl bilgisayar yaps CISC ve RISC mimarileri arasnda bir zm olarak yaygnlam yapdr. Her iki mimarinin stn zelliklerini kapsayan ilemci, bugn VLSI teknolojisiyle oluturularak daha iyi zm olarak yaygnlamtr. Gigabayt'lar mertebesindeki ana bellek kapasiteleri, dinamik RAM'lerle oluturularak hzl bellek says ve transfer hzlar drlm, CPU hzlar ise Gigahertz'ler seviyesinde olup hz limitleri her geen yl daha arttrlmtr. Bilgisayar ilem kapasiteleri "1 saniyedeki mega ilem" (MIPS: mega instruction per second) saylaryla llmektedir. Sonu olarak gnmzde bilgisayar teknolojisi, tasarm yaps, yariletken teknolojisi ve dier bileenlerin katklaryla geen on ylda ciddi ilerlemelere sahne olmutur. Yeni yntemlerin ve yap maddelerinin bulunmas ve tasarmlarn gelitirilmesiyle bu ilerlemelerin devam etmesi ve dier teknolojilerle [oklu medya, telsiz haberleme, iaret dilleriyle programlama (extensible mark up language-XML)] birlemesi beklenmektedir.

1.3. RISC'in YAPISI

RTM

HIZLI

BELLEK

PENCERELER

Tipik fonksiyon arma ve dn (procedure call and return) yksek seviyeli dillerde ok kullanlmaktadr. Makina dili gereklemesinde, koturulan programa ait hzl bellekler saklanarak, parametrelerin fonksiyona geii salanr. Dnte ise program eski hzl bellek deerlerini geri gnderir, sonular aran programa verir ve alt rutinden geri dner. RISC yaplarnn ilgin bir zellii "rtm hzl bellek pencerelerini" kullanarak parametre geiini salamas ve eski deerleri saklamasdr. Her fonksiyon arma, hzl belleklerden oluan bir pencerenin ayrlp, kullanlmas olarak tanmlanr. Her fonksiyon gstericiyi (pointer) 1 arttrarak, bir pencereyi aktive eder. Dnte ise gstericiyi 1 azaltarak, eski pencerenin aktivasyonunu salar. Komu alt rutinlerin pencereleri rtm hzl bellek dizileri yoluyla parametre ve sonularn paylamn salarlar. Aada rtm hzl bellek pencereleri gsterilmitir.

Toplam hzl bellek says 74 olup, R0-R9 bellekleri global bellek olarak, geite kullanlan parametrelerin saklanmasn salarlar. Dier hzl bellekler drt pencereye ayrlmtr: A, B, C ve D. Her pencere 10 yerel bellek ile, 6 belleklik iki pencere grubu komu pencereden oluur. Yerel bellekler yerel parametreler iin, ortak bellekler ise parametrelerin rutinler arasndaki geiini salamak iindir. Verilen bir zamanda bir pencere aktivasyonu salanr ve her rutin yalnzca bir pencereyi aktive eder. aran rutinin byk numaral bellekleri, arlan rutinin kk numaral bellekleri ile rtr, bylece parametre geii kendiliinden salanr.

Bir rnek olarak A rutininin B rutinini ardn gz nne alalm. R26 ve R31 bellekleri her iki fonksiyon iinde ortaktr. A rutini B rutininin parametrelerini buraya saklar, B ise R32-R41 belleklerini yerel olarak kullanr. Dier taraftan B rutini, C rutinini arrsa parametre geii iin R42-R47 bellekleri kullanlr.

1.3.1. Pencere Organizasyonu


Bahsedildii gibi R0-R9 bellekleri global belleklerdir. Her bir fonksiyon veya rutin iin 32 bellek aktif olmaktadr yani 10 global, 10 yerel ve 12 tane de rtm bellek kullanlr. Genel olarak, pencere organizasyonunda aadaki bantlar geerlidir.

Her bir pencere iin kullanlabilecek bellek says

Pencere boyutu = L + 2C + G
olarak elde edilir. lemcideki toplam hzl bellek says

Bellekler = (L + C)W + G
ile hesaplanr. Yukardaki rnekte, G = 10, L = 10, C = 6 ve W = 4 olarak alnmtr. Buradan pencere boyutu 10 + 10 + 12= 32 bellek ve toplam bellek says ise (10 + 4) x 4 + 10 = 74 bellek olarak bulunur.

1.3.

CISC ve RISC KOMUTLARI

Bilgisayarlar genel olarak kullancya bir grup komut salayarak, hesaplamalar bu komutlarla yapmasna olanak tanr. Farkl bilgisayarlar farkl komut setlerine sahiptir. Ayn zamanda komutlara verilen isimler de bilgisayarlara gre deiir. Fakat bugn kullanlan bilgisayarlarn temel ilemleri yapacak komut setleri mevcuttur. Bilgisayar komutlarn gruba ayrmak mmkndr:

1.4.1. Veri Transfer Komutlar


Verinin ieriini deitirmeden ana bellek, hzl bellekler ve giri-k dzenleri arasnda transferini salayan komutlardr. CISC ilemcilerinde karlalabilecek olanlardan bazlar aadaki tabloda gsterilmitir.

1.4.1.1. Veri Transfer Adres Modlar


Adres modlar her bir komutun eitli ekillerde gereklenmesini salar. Aada tek akmlatrl (AC) bilgisayar mimarisinde LD komutunun eitli adres modlar ile kullanl gsterilmitir.

10

Bu tabloda dolayl mod @ iareti ile, bal mod ise $ iareti ile gsterilmitir. Dier modlarn iaretleri yukardaki tablodan takip edilebilir.

1.4.1.2. RISC rnekleri

Mimarisinin

Veri

Transferi

ile

Komut

Veri transferi ile ilgili RISC komutlar eitli boyutlarda load ve store komutlarn ierir. Bir rnek olarak Berkeley RISC I yaps gz nne alnmtr. Baz rnekler aadaki tabloda gsterilmitir. RISC mimarisinin veri transferi ile komut rnekleri:

Load ve store komutlar veriyi ana bellek ve hzl bellekler arasnda transfer etmekte kullanlr. 32-bit (uzun kelime), 16-bit (ksa kelime) ve 8-bit (bayt) uzunluklarnda veri transferi mmkn olmaktadr.

1.4.2. Veri leme Komutlar


Veri ileme komutlar veri zerinde her trl ilemin yaplmasn salayan komutlardr. Bu grup komutlar 3 kategoride toplamak mmkndr:

11

1.4.3. Program Kontrol Komutlar


Program kontrol komutlar olarak gerek CISC gerekse RISC yapsnda tipik olarak kullanlan JMP, CALL, RET gibi komutlar gstermek mmkndr. Koullu ve koulsuz dallanma, alt rutin arma ve dn gibi komutlarn eitleri ve kesinti (interupt) ile ilgili uygulamalar saymak mmkndr. Bu blmn sonraki ksmlarnda program kontrol ve kesinti ile ilgili daha detayl noktalara deinilecektir.

12

1.5. TEMEL CISC ve RISC FARKLARI

Aadaki ifadeyi bulmak iin kullanlan CISC ve RISC programlarn yazalm. X = (A + B) * (C + D)

1.5.1. CISC PROGRAMLAMA RNE


Bir nceki sayfada belirttiimiz gibi X = (A + B) * (C + D) ifadesini bulmak iin en sklkla kullanlan CISC mimari rnei olarak iki adresli yapy gz nne alalm. Bu rnee ait tablo aada verildii gibi olur.

MOV komutu ana bellek ve hzl bellekler arasnda veri transferini salamaktadr. arpma ilemi MUL komutuyla yaplmaktadr.

13

1.5.2. RISC PROGRAMLAMA RNE


X = (A + B) * (C + D) Yukardaki ifade RISC programlama mant ile yapldnda aadaki tablo elde edilir. RISC yapsnda LOAD ve STORE komutlaryla veri CPU'daki hzl belleklerle ana bellek arasnda transfer edilmitir.

Veri transferi komutlaryla CPU'ya tanan A, B, C ve D deerleri orada ADD ve MUL komutlaryla hzl belleklerde toplanp, arpldktan sonra tekrar ana bellee saklanr.

1.6. PROGRAM KONTROL RNE


Kullancnn yazd program oluturan komutlar genel olarak ana bellekte arka arkaya sakl bulunurlar. PC'nin her artmnda bir sonraki komut alnp, dekode edilir ve koturulur. Program kontrol tipi komuta rastlanrsa, bu PC 'nin adres deerinin belli bir koulla veya koulsuz olarak deimesine neden olur. Program kontrol komutunun koturulmas komut dizisinin deimesi, dolaysyla program aknn deimesi sonucunu dourur. Dallanma ve atlama komutlar koullu ve koulsuz olabilir. Koulsuz dallanma komutu yeni bir adrese koulsuz olarak dallanmay gerekler. Koullu dallanmada ise bir koul vardr: koul salandnda bir sonraki komut yeni adresten alnr. CALL ve RET komutlar ise alt rutin arma ve fonksiyonu tamamlandktan sonra geri dn ile ilgilidir.

1.6.1. Durum Bitleri Koullar (status bit conditions)

14

Pek ok bilgisayar yapsnda bir durum bellei (status register) kullanarak, ALU'yu desteklemek uygun olur. Koul kodu (condition code) veya bayrak bitleri (flag bits) kullanlarak ALU'da oluan tm koullar gzlenir. Aada 4-bitlik bir durum belleinin bitlerinin set ve reset edilmesi gsterilmitir.

C (carry, elde), S (sign, iaret), Z (zero, sfr) ve V (overflow, tama) bitleri yardmyla ALU'da yaplan ilemin sonucunda oluabilecek koullar gsterilir:

A ve B girileri zerinde yaplan ilem sonucuna gre durum bellei bit deerleri oluur. V biti bir tama olup olmadn, Z biti sonucun sfr olup olmadn ( A XOR B = 0 sa A=B olur) gsterir. Tek bir bit kontrol iin rnein A'nn herhangi bir biti iin AND operasyonu uygulanabilir: A= 101x1100 daki x biti iin B=00010000 ile AND ilemi uygulanr.

1.6.1.1. Durum Bitleri Koullarna Ait Baz rnekler


Durum bellei bitleri konusunda aklanan durum bellei bitleri kullanlarak, eitli koullu dallanma komutlar tanmlanabilir. Baz rnekler aadaki gibidir.

15

1.6.1.2. Durum Bitleri Koullarna Ait Saysal rnek


Basit bir saysal rnekle bu blm sonlandralm: 8-bit ALU'yu gz nne alalm. 8-bit ile elde edilebilecek en byk iaretsiz say 255'dir. aretli saylar ise +127 ve -128 arasnda deiir. A ve B saylar aadaki 8-bitlik saylar olsun.

aretsiz saylar durumunda A=240 ve B=20'dir. Sonu ise 240-20=220 olur. BHI ve BHE komutlar ile karlatrma yaplabilir. aretli saylar durumunda A=-16 ( 11110000'n 2'li komplementi 00010000 olup +16 olur). B'nin onlu eiti ise +20'dir. karma sonucu (-16) - (+20) = -36 olur. BLT (dallan eer kkse), BLE (dallan eer kk veya eitse) komutlar kullanlr.

1.7. ALT RUTN (SUBROUTINE) AIRMA ve DN


CISC ve RISC yaplar iin alt rutin kullanm birtakm farklar ierir.

Alt rutin, genel olarak kendi iinde tam olan bir dizi komuttan oluan ve belli bir hesapsal devi grmeye yarayan program parasdr. rnein, belli bir forml hesaplayan bir alt rutin yazlabilir. Ana programda arma noktasndan arlr, sonra dallanma ile alt rutine geilir. Alt rutin koturulduktan sonra tekrar dn noktasna dner.

1.7.1 Alt Rutinin arlma leminin Gerekletirilmesi


CISC yapsnda alt rutin arma ilemi yle yaplr: Alt rutin arma srasnda komut program kontroln alt rutine transfer eder. Bu transfere eitli adlar verilir.

16

eitli bilgisayarlar alt rutin dn adresini eitli yerlere saklarlar. Bazlar ilk ana bellek adresine, bazlar ilemci hzl belleklerinden birine, bazlar da yna saklarlar. Dn adresini saklamann en uygun yolu yn kullanmaktr. Bunun iin PUSH ve POP komutlar kullanlr. Alt rutin arma aadaki mikroilemlerle yaplr:

Eer koturulan alt rutin bir dier alt rutini arrsa, yeni dn adresi de yna saklanr ve bu byle devam eder.

1.7.1.1. Alt Rutinden Dn


Alt rutinden dn ise aadaki mikroilemlerle olur.

Btn kullanlan alt rutinlerin dn adreslerinin saklanmas bilgisayar tarafndan kendiliinden yaplr, kullanc bununla ilgilenmez.

1.7.2. Kendisini aran (Recursive Subroutine) Alt Rutin


Kendisini aran (recursive subroutine) alt rutin eitli uygulamalarda kullanlan bir yapdr. Eer bir ana bellek adresi veya sadece bir hzl bellek dn adresini saklamak iin kullanlrsa, dn adresi yok olur. Bu nedenle yn yaps kullanmak, kendisini aran alt rutin kullanm iin uygun gelir. Yn kullanmnda, her bir alt rutinin dn adresi SP 1 arttrlarak, PUSH komutu ile bir sonraki yn adresine saklanr. RISC yapsnda ise rtm hzl bellek pencereleri her bir alt rutin geiinde gerekli dn adresi ve dier parametre deerlerini (hzl belleklerin ana programdaki ierikleri) ana program ile alt rutin arasnda tar. Detaylar daha nce aklanmtr.

17

1.8. KESNT (INTERRUPT) DETAYLARI


Kesinti kavram, normal program dizisi iinde oluan problemlerin zlmesi iin ortaya atlmtr. Kesinti, iten veya dtan gelecek bir istek sonucu, normal program aknn dier bir servis rutinine aktarlmas olarak tanmlanr. Kontrol, servis rutini bittikten sonra normal programa geri dner. Aada kesinti rutinine gei rnei gsterilmitir.

1.8.1. Kesinti lemi ile Alt Rutin arma lemi Arasndaki Fark
Kesinti ilemi alt rutin arma ilemine ok benzer, fakat nemli fark sz konusudur:

18

Kesinti rutini koturulduktan sonra, CPU kesinti ncesi durumuna geri dner. Kesinti ilemi sonucu CPU 'nun durumu aadaki ierikten karlr:

Sonuta, yukardaki bilgilerin salanmas yoluyla CPU eski durumuna geri dnm olur. Btn durum bitlerinin topland hzl bellek, ilemci durum kelimesi (processor status word-PSW) olarak adlandrlr. PSW ayr bir donanm belleinde saklanr ve tm durum bilgisini ierir. CPU hazrda koturulan komut bitene kadar kesintiye cevap vermez. Yeni gelen komutun alma fazna girmeden, kontrol kesinti iaretlerini kontrol eder. Eer bekleyen bir kesinti varsa kontrol donanm kesinti fazna girer. PC ve PSW ierikleri yna aktarlr. Yeni PC deeri iin dallanma yaplr ve yeni koullar ieren bilgi PSW'ye aktarlr. Servis program imdi artk koturulabilir. Servis programnn son balants RTI (kesintiden dn-return from interrupt) komutudur. Bu komut koturulduunda, yndan PC ve PSW deerleri alnr (POP) ve eski PC deeri ve durum bitleri kullanlarak orijinal programn koturulmasna devam edilir.

1.8.2. Kesinti Tipleri


temel kesinti tipi koturulan normal programn kesintisine neden olabilir:

19

ve d kesintiler arasndaki temel fark, i kesintinin koturulan program tarafndan balatlmasna karlk d kesintinin ise d etki tarafndan oluturulmasdr. kesintinin program ile e zamanl (synchronous) olmasna karn, d kesinti ise e zamanl deildir. Programn hatas rnein "sfra blme" nedeniyle her koturuluunda ayn yerde i kesinti olumasna ramen, "g kesilmesi" nedeniyle oluan d kesinti bir kez belli bir zamanda oluabilir. Aada kesinti tiplerinin ana bellekte saklanan rezerve edilmi adresleri bir rnek olarak gsterilmitir. Kesinti rutinlerine eriim rezerve edilmi bu adreslerden alnan adres deerleri yoluyla salanr.

20

1.9. LETM ve KULLANICI MODU


Gnmzde bilgisayarlar bir iletim sistemi (operating system) ile alrlar. letim sistemi dier programlar iletir ve ynetir.

CPU iletim sistemine ait bir program koturuyorsa "ynetim modunda" veya sistem modunda alyor denilir. Belirli komutlar sadece sistem moduna aittir. CPU eer kullancnn yazd programlar koturuyorsa, kullanc modunda denilir. PSW'deki belirli bitler CPU'nun sistem veya kullanc modunda olduunu gsterir. Aada sistem ve kullanc modlar gsterilmitir.

21

Kullanc modunda kullanc tarafndan retilen her trl program koturulur. eitli matematiksel hesaplamalar, algoritmalar, grafik programlar, ..vb. bu gruba girer. Bugn kiisel bilgisayarlarda kullancya kolaylk salayan eitli programlar tasarlanmtr. Bir rnek olarak MATLAB veya dier istatistiksel paketler gsterilebilir. MATLAB programnn en ilgin zelliklerinden bir tanesi matris ilemlerini yazld gibi A + B veya A * B ( A, B matrisleri) olarak yaplabilmesidir. Bunun yannda daha pek ok matematiksel terimler basite programlanmtr. Sistem modunda sistem oluturan ve iletimini salayan programlar yer alr. Kullancnn yazd programlarla sistem moduna etkisi olamaz. Gnmzde "Windows" sistemi tipik bir iletim sistemi rneidir. Pencerelerden oluan sistemde eitli edit yapma, hesaplama ve grafik programlar kullanlarak daha "kullanc uyumlu evre" (user-friendly environment) oluturulmu olunur. letim sisteminin kullancya yaknl, akll uygulamalar iermesi ve kolayl onun deerini arttrr. rnein, ikonlar oluturularak, fare ile tklama ile istenilen programn mensn amak kullancya byk kolaylklar salamtr.

Blm zeti
Bu blmde saysal bilgisayar trleri tantlmtr: Karmak komut setli bilgisayarlar (CISC) ile indirgenmi komut setli bilgisayarlar (RISC). Her iki tip bilgisayarda kullanlan komut tipleri ve adres modlar rneklerle anlatlarak, farklar belirtilmitir. Bunun yannda kesinti ilemi ve rnekleri tantlm, son olarak da bilgisayarn iletim ve kullanc modu anlatlmtr.

22

23

24

25

26

27

SIRALAMALI (PIPELINE) ve VEKTR LEMCLER


Bu blmde ele alnacak olan konular aadaki gibi sralanabilir: Paralel ileme Sralama ve rnei Sralamann genel zellikleri Aritmetik sralama uygulamalar Komut sralamas uygulamalar RISC'de sralama Vektr ileme Kesinti detaylar Dizi ileme

Blm Hedefi
3. ve 4. haftalardaki derslerde bilgisayarn hesaplama hzn arttrmay amalayan paralel veri ileme zerinde duracaz. Bu blmde bilgisayar yapsna hz kazandran teknikler snflanacak ve tantlacaktr. Bu temel tekniklerin kullanmlar ve varyasyonlar ile ilgili tartmalar dier kaynaklar ile desteklenebilir. Sralamann eitli uygulamalar tantlacaktr ve aritmetik, komut sralama ve RISC yapsnda kullanlan sralama modelleri bu incelemeye temel olacaktr. Vektr ileme ve dizi ileme kavramlarnn uygulamalar ile paralel ikili bilgi ilemesi rnekleri incelenecektir.

2.1. PARALEL LEME


Bilgisayarda paralel ileme kavram ok eitli teknikleri ierir. Bu tekniklerin ortak zellii, ayn anda veri ileme yeteneini kullanarak hesapsal hzn arttrlmasdr. Von Neumann modelinde tanmlanan komutlar "dizisel" (sequential) olarak koturan bilgisayar yerine, paralel sistem ayn zamanda ileme (concurrent processing) zellii nedeniyle daha hzl sonulara ular. Paralel ilemenin bir rneinde, bir komut koturulurken, dieri ana bellekten okunabilir. Dier bir rnekte ise birka ilemcinin ayn zamanda almas nedeniyle, birka komut ayn zamanda koturulabilir. Paralel ilemenin temel amac belirli bir zamandaki "sistem ktsn" (throughput) arttrp, hesaplama kapasitesini gelitirmektir. Bunun iin donanm organizasyonun bytlmesi maliyeti arttrr, verimli tekniklerin kullanlmas ise paralel ilemeyi kullanlabilir hale getirir. Paralel ilemenin eitli seviyelerde tanm yaplabilir. Hzl bellek seviyesinde (alt seviyede) olduu gibi ilemciler seviyesinde de (st seviyede) paralelizm olabilir. st

28

seviyede paralelizm, veriyi eitli ilemcilere veya ALU'lara datarak, datlm ilemenin kontrolnn yaplmas eklinde olur. Aada rnek bir ilemci biriminin, ok fonksiyonlu paralel birimlere ayrlmas blok olarak gsterilmitir.

Her bir ilem deiik bloklar tarafndan yaplmaktadr. rnein, yzen nokta ilemleri ayr blok tarafndan gereklenmitir: toplama ve karma blou, arpma blou ve blme blou.

2.1.1. eitli Paralelizm Tanmlar


eitli paralelizm tanmlar yapmak mmkndr. M. J. Flynn tarafndan yaplan snflamada paralel ilemenin veri dizisi (stream, sequence), komut dizisi veya ikisinin birden dizisi olarak oluturulabilecei belirtilmitir. Flynn bilgisayarlar drt ana gruba ayrr:

29

Flynn'n asndan bilgisayarlarn davransal zelliklerine gre snflama yaplr. Sralama (pipelining) bu snflamada herhangi bir snfa uymaz. SIMD dizi ilemesi ve MIMD oklu ilemci yaplar bugn yaygn olarak kullanlmaktadr. Davransal snflama yannda ilemsel snflama ve yapsal balantlara gre snflama yaplabilir.

2.1.2. Paralel leme Yollar


Bu blmde aadaki paralel ileme yollarn inceleyeceiz:

30

2.2. SIRALAMA
Sralama teknii dizisel bir ilevi zel olarak tasarlanm alt ilemlerin ayn zamanda (paralel olarak) koturulmas olarak tanmlanr. Bir nceki segmentten elde edilen sonu bir sonraki segmente tanr. Sralama (pipeline) nceki segmentteki bilginin sonraki segmente ak olmaktadr. rtmeli ilemler, hzl bellekler sayesinde birbirinden ayrk durumdaki veriye uygulanr. Sralama yapsnn basit bir aklamas, hzl bellein tuttuu ikili bilginin kombinasyonel lojik devre ile ilenmesi olarak yaplabilir. Kombinasyonel devre k, yeni saat darbesinde sonraki hzl bellee girer. Bylece ikili bilgi her saat darbesinde sralama ileminde bir adm atar. Sralama fonksiyonunu daha ak olarak tanmlayabilmek iin aadaki toplama ve arpma ileminden oluan eitlii gerekleyelim:

Her bir alt ilem bir segmentte ve bir saat darbesi srasnda tamamlanp, sonraki hzl bellee aktarlr. Aadaki alt ilemler yaplr:

2.2.1. Sralamann (PIPELINING) Gereklenmesi


Aada alt ilemlerin sralama ile gereklenmesi gsterilmitir.

31

Sralama ilemi her saat darbeleriyle gereklenir: birinci saat darbesinde A1 ve B1 hzl bellekler R1 ve R2'ye transfer edilir. kinci saat darbesinde, A1*B1 ilemi yaplp sonu R3'e aktarlrken, A2 ve B2 ierikleri de R1 ve R2'ye ve C1 de R4'e aktarlr. nc saat darbesinde, A1*B1 + C1 ilemi tamamlanp R5'e aktarlr, ayn zamanda A2*B2 hzl bellei R3' e, C2 R4'e aktarlrken, giriten A3 ve B3 ierii R1 ve R2 aktarlr. Burada alt ilemlerin 3 segment ile yapldna dikkat etmek gerekir. Girilerin (Ai, B, Ci) ald 5 deer dizisinden 7 saat darbesiyle hesaplanarak sonu elde edilir. Saat darbeleri en son sonu alnana kadar devam etmelidir.

2.3. SIRALAMANIN GENEL ZELLKLER


Bir dizi alt ilemlerin tekraryla sonucun elde edilebilecei uygulamalarda sralama teknii verimli olarak kullanlabilir. N=3 segmentten ve N=3 hzl bellekten oluan sralama yaps aada gsterilmitir.

2.3.1. Sralamann Uzay Zaman Diyagram ile Gsterilmesi


Tm ilemin alt ilemlerin tamamlanmas ile elde edilebilecei grlmektedir. Yatay eksen saat darbelerini, dey eksen ise segmentlerin gsterilebilecei "uzay-zaman" diyagram sralama ilemini gsterir. Diyagram 5 alt ilemi 3 segment boyunca 7 saat darbesinde yapabilir. Aada buna ait Uzay-zaman diyagram verilmitir.

32

2.3.2. Sralama lemi Uygulamas


Genel olarak, k segment sralama yaps, tp saat darbesi zaman ile n alt ilemi yapsn. lk alt ilem T1, k x tp zamannda bitirilir. Sonraki (n-1) ise (n-1) x tp zamann alr. nceki rnekte, k=3, n=5 olduundan 3 + (5-1) =7 saat darbesinde tm ilem dizisi tamamlanr.

Sralama kavram olmadan bir alt ilemin tamamlanmas tn zamann alr. n alt ilem (n x tn) zamannda yaplr.

Ayn zamanda tp = tn (sralamal ve sralamasz) olduunda sralama hznn S = k x tp / tp = k'ya decei gzlenmelidir. k sralama dizisindeki segment saysdr.

33

Sralama hz S'nin anlamn saysal bir rnekle gsterelim: Sralama k=4 segmentten olusun ve 50 ilemi yapsn. Her segmentin bir ilemi yapmas iin geen sre 10 ns. olsun. Sralama sisteminin tm ilemi tamamlamas iin geen sre (k + n -1) x tp = ( 4 + 49) x 10 = 530 ns'dir. Sistem sralamasz bir sistem olsayd, k x tp deeri 4 x 10 = 40 ns ve n x k x tp deeri ise 2000 ns olacakt. Bu durumda sralama hz S= 2000/530 = 3.77 olmaktadr. lem saysnn ok artmas durumunda ise S deeri 4'e yaklaacaktr.

2.3.3. oklu Fonksiyonel Birimlerin Paralel Balanmas


oklu fonksiyonel birimler kullanmak, bir dier sralama ilemi uygulamasdr. k eit birimden oluan ve paralel balanm yap tek-komut, oklu-veri (single-instruction multiple data: SIMD) organizasyonuyla hz arttrlabilir. Aada oklu fonksiyonel birimlerin paralel balanmas gsterilmitir. Her birim ayn fonksiyonu grr. Fakat her birinin girii farkldr. Burada sralama yoluyla tek bir girii kabul eden bir birim yerine farkl girileri kabul eden ok sayda birim ile ilemler hzlandrlr.

Sralama ileminin verimli olarak uygulanamamasnn eitli nedenleri vardr: Bir tanesi sralama iin tanmlanan alt ilemlerin farkl srelerde tamamlanmasdr. Bu durumda sralama iin kullanlan saatin "maksimum gecikmeli alt ileme" gre tasarlanmas gerekir. Dier alt ilem birimlerinin gecikme sresinde beklemeleri gerekecektir. Sralama devresi eitli hzl bellekler kullanr, bu sralamann kullanlmad normal devrelerde gerekli deildir. Teorik hzn elde edilmesi, anlattmz bu iki nemli dezavantaj nedeniyle mmkn olmamaktadr. Buna ramen sralama ilemi kullanan devre, tamamyla seri komutlar koturan devreye gre daha hzldr.

2.3.4. Sralama leminin Verimi


Bilgisayar tasarmnda iki nemli alana sralama ilemi uygulanmas mmkndr:

34

2.4. ARTMETK SIRALAMA UYGULAMALARI


Sralama aritmetik birimleri genellikle yksek hzl bilgisayarlarda bulunurlar. Hareketli (yzen) nokta ilemleri ve arpma gibi ilemlerin hzl olarak yaplmasnda kullanlrlar. rnein, bir sralamal arpma ilemi temel olarak dizi arpc (array multiplier) olarak tanmlanr. Yzen nokta gsterimi rneinde giriler sralamal toplama devresine gelen normalize edilmi iki saydr:

A ve B iki kesirli say olup, a ve b ise stel deerlerdir. Aadaki ekilde yzen nokta gsteriminde toplama ve karma ilemlerinde kullanlan sralama aklanmtr. A ve B iki kesirli say olup, a ve b ise stel deerlerdir. Aadaki ekilde yzen nokta gsteriminde toplama ve karma ilemlerinde kullanlan sralama aklanmtr.

35

2.4.1. Aritmetik Sralama rneinin Gereklenmesi


Ara ilemlerde R hzl bellekleri kullanlarak her segmentten elde edilen sonular saklanmtr. Drt segment aada tanmlanmtr:

Yukardaki ekilde sistemde stel ifadeler farklar alnarak karlatrlmtr. Byk stel ifade sonuta kullanlan stel ifade olarak alnmtr. Bu srada kesirli ifadelerin de ayarlanmas gerekecektir. ki kesirli say nc segmentte toplanr veya karlr. Tama varsa stel ifadenin katsays 1 arttrlr ve say saa kaydrlr. Tersi durumunda stel ifadenin katsays kesirdeki sfrlar kadar azaltlr ve say sola sfr says kadar kaydrlr.

2.4.2. Aritmetik Sralama Uygulamalarna Ait Saysal rnek


Saysal bir rnek ile Aritmetik Sralama Uygulamalar'na ait ilemleri aklayalm. Normalize edilmi iki say aada verilmektedir:

lk segmentte, saylarn stel ksmlar birbirinden karlr: 3-2 = 1. Byk stel ksm olan 3 sonucun stel ksm olarak seilir. Sonraki segmentte Y saysnn kesri kaydrlarak Y = 0.0350 x 103 elde edilir. Bu ilemle iki saynn kesirleri ayarlanm olur ve toplama ilemi yaplrsa

36

Yzen nokta sralaycsnda kullanlan karlatrc, kaydrc, toplama ve karma devreleri, arttrc ve azaltclar kombinasyonel devre olarak gereklenirler. Drt segmentteki gecikme deerleri t1= 50 ns., t2= 60 ns., t3=90 ns. ve t4=80ns. olarak verilmise ve aradaki hzl bellek gecikmesi tr=10 ns. ise sistemin saat darbesi

olarak seilir. Sralama kullanlmad durumda gecikme zaman:

ve sralama ile toplama yaplrsa sralama hz S = 280 / 100 = 2.8 olarak bulunur. Grld gibi sistem hz, sralama stratejisi ile 2.8 kat arttrlmtr.

2.5. KOMUT SIRALAMASI UYGULAMALARI


Sralama ilemleri veri aknda olduu kadar komut ak srasnda da uygulanabilir. Komut sralamas srasnda ard ardna gelen komutlardan biri ana bellekten okunurken dieri koturulur. Bylece komutun alma ve koturma fazlar rtm olur. Komut normal program akndan farkl bir yere dallanma gsterirse sralama yaps boaltlp, dallanma ileminin tamamlanmas ilemi gerekletirilir. Komut sonra tekrar normal ilem dizisine dner. Komut alma ve koturma fazlarn, 2 segmentli sralama yaps kullanan bir bilgisayarda gz nne alalm. Komut sralamas ilk-giren ilk-kar (FIFO) yaps ile gereklenebilir. Bu yap yn yapsndan (LIFO) daha farkldr. Komutlar ilk gelen ilk koturulur baznda sisteme girilir. FIFO giri belleinde (buffer) bir yer olduunda, kontrol birimi sonraki komutun alma fazn balatr. Genel olarak, bir bilgisayarda komutlar aadaki fazlarda ilem grr:

37

2.5.1. Drt-Segmentli Komutun CPU'da Sralanmas


Baz koularda komut sralamas tekniinin maksimum verimle uygulanmas zorlar. rnein, hzl bellek referansl komutun efektif adres hesaplama admna ihtiyac yoktur. Dier bir durumda ise birden ok sayda ana bellek eriimi gerekebilir. Bu ise bilgisayar "hat grubunda" (bus) bir probleme yol aar. zm olarak iki ayr hat grubu kullanlmas hatra gelir. Birisi komut kelimesi iin dieri ise veri kelimesi iin kullanlabilir. Komut sralamasna rnek olarak, merkezi ileme biriminde (CPU) drt-segmentli komut sralamas rneini gz nne alalm. Komut koturulmas srasnda iki kabul hatrlarsak:

2.5.1.1. Drt-Segmentli Komutun CPU'da Sralanmas Olu Diyagram


Drt-segmentli komutun CPU'da sralanmas konusunda verilen rnei gz nne alalm. Komutun drt segmentle koturulmas mmkn olur. Aadaki ekilde drt-segmentli komutun CPU'da sralanmas ak diyagram ile gsterilmitir.

38

ekilde drt segmente blnen alt ilemler gsterilmitir. Ayrca normal ak dizisi dnda dallanmaya neden olacak olan program kontrol ifadesinin etkisi belirtilmitir. Dallanma srasnda bitirilmesi gereken alt ilemler (son iki) tamamlanr ve sonu saklanr. Sralama PC'de saklanm olan yeni adresten balar. Ayn durum kesinti ilemi iinde geerlidir.

2.5.2. Komut Sralamas lemi ve Zamanlamas


Aadaki ekilde komut sralamas ilemi ve zamanlamas aklanmaktadr. Yatay eksende gsterilen zaman eit uzunluklu paralara blnmtr ve aadaki ksaltmalar kullanlmtr:

39

Burada bilgisayar ilemcisinin, komut ve veriyi ayr ana bellek paralarnda saklad kabul edilmektedir. Bylece FI ve FO alt ilemleri ayn zamanda koturulabilir.

Hemen stteki ekilde grlen zamanlama hem normal bir komutu hem de dallanma komutu srasnda oluan zamanlamay gstermektedir. Komut1 adm 4'te koturulmaktadr, komut2 adm 2'den FI ile balar. Komut4 dallanma ile ilgili bir komuttur ve FO ve EX admlarnn tamamlanmasn bekler, sonra normal alt ilem dizisine geer (DA-FO-EX). Bir dier gecikme, EX alt segmentinin "ilem sonucunu saklamas durumunda" oluabilir. FO segmentinin operand alabilmesi iin bu ilemin bitmesini beklemesi gerekir.

2.5.3. Komut Sralamas leminin Normal Diziden Sapmas


Genel olarak, durumda komut sralamas ileminin normal diziden farkl olmas gerekir:

40

2.5.4. Oluan Gecikme Problemini zmek in nerilen Metodlar


Bu durumlarda oluan gecikme problemini zmek iin eitli metodlar nerilmitir.

Bu metodlar srayla inceleyelim.

2.5.4.1. Veri ve Adres Bamll


Adres veya verinin olas arpmas (collision) durumunda komut sralamas performansnda dme olur. nceki komutlarda ilemin tamamlanamamas nedeniyle, sonraki komuta gemek mmkn olmaz. Komut veriye ihtiya duyar fakat veri hazr deildir. rnek olarak, nceki komutun koturulmas (EX) bitmeden sralama srasna gre FO segmentinde operand elde etmek mmkn olmaz. Bu durumda ikinci komut birinci komutun bitmesini beklemek zorundadr. Bu durum veri bamll olarak tanmlanr. Adres bamlln da benzer bir rnekle tantabiliriz: Bunun iin tipik durum operand adresine ihtiya duyulduu halde bu adresin hesaplanamamas durumudur. Bir nceki komutun adresi tamamlanmadka sonra gelen dolayl hzl bellek adres modundaki adresin hesaplanmas ve operandn alnmas mmkn olmaz. Sralama kullanan bilgisayarlarda veri ve adres bamll problemleri eitli yollarla zlmektedir:

41

2.5.4.2. Dallanma Komutlarnn zmlenmesi


Komut sralamasnn kullanm srasnda karlalan temel bir problem "dallanma" komutlardr. Dallanma komutu koullu ve koulsuz olabilir. Koulsuz dallanma komutuyla program ak tamamyla deimektedir. Koullu dallanma durumunda ise sadece koulun salanmasyla program aknda deiiklik olmaktadr. Bylece dallanma komutlar komut sralamas ilemini bozarak, zorluklara neden olmaktadr. Sralama yaps kullanan bilgisayarlar eitli donanm teknikleri ile dallanmann neden olduu performans dmesini azaltmaktadrlar:

42

2.6. RISC'te SIRALAMA


RISC yapsndaki bilgisayarlarn basitlii ve komut setinin az sayda olmas RISC yapsndaki bilgisayarlar, komut sralamas uygulamas iin ok uygun hale getirir. Gerekten de RISC yapsnda komut sralamas uygulanmaktadr. RISC yapsnn temel zelliklerini hatrlarsak:

43

Komut sralamas 3 segmentte gereklenebilir:

Veri eriimi iin ykle (load) ve sakla (store) komutlar kullanlmaktadr. Komutlar, dolayl bellek adres modunda (register indirect addressing mode) tanmlanmtr. Bellek eriimleri ve komut alma faz arasnda akmay nlemek iin iki ayr hat grubu yaps iki bellek ile kullanlr. Birisi veri dieri ise komut saklamak iindir. Her ikisinin de hz bellek merkezi ilem biriminin hz ile ayndr.

2.6.1. RISC Yapsnn Avantajlar


RISC yapsnn en nemli avantajlarndan birisi, elde edilen ilem hznn 1 saat darbesi/komut olmasdr. Bu karmak komut seti yapsna (CISC: complex instruction set computers) sahip bilgisayarlara gre ok daha ksadr. CISC yapsnda sralama ile elde edilen en uzun segment 2 veya daha fazla saat darbesi/komut srmekte iken bu RISC yapsnda kullanlan sralama ile 1 saat darbesi/komuta dmektedir. RISC yapsnn dier bir avantaj ise derleyicisinin (yksek seviyeli dilden makine diline dntrc) daha akll bir yapya sahip olduu iin veri akmalar ve dallanma kayplarn azaltacak bir ekilde hareket etmesidir. Risk yapsna ait bir resim

2.6.2. Sralama akmalarnn Kltlmesine Ait rnek


RISC'teki sralama yaps derleyicisinin sralama akmalarn nasl klttn grmek iin rnek olarak 3-segmentli komut sralamasn ele alalm. RISC yapsnda kullanlan ana komut gruplarn hatrlayalm:

44

2.6.2.1. RISC Yapsnda Komut Fazlar


RISC yapsnda komut fazlar, kontrol mekanizmasnn komutu ana bellekten alp, IR'ye yerletirmesiyle balar. Komut dekode edilip, koturulmas iin gerekli hzl bellekler belirlenir. lemci ALU ve hzl bellek grubundan oluur. Elde edilen sonu, ykle ve sakla komutlar yardmyla ana bellee tanr. Bylece komut faz alt ileme blnebilir:

I segmenti komut almay, A segmenti ALU ilemlerini ve E segmenti ise koturma fazn tanmlasn. A segmentinde, veri ileme, ykle ve sakla ilemleri iin efektif adres bulma ve dallanma adresini bulma gibi farkl fonksiyon gereklenebilir. E segmenti de benzer ekilde farkl fonksiyon iin kullanlabilir: Birincisi sonucun hzl bellee aktarlmas, ikincisi efektif adresin ana bellee transfer edilip ykle ve sakla ileminin yaplmas ve ncs ise dallanma adresinin PC'ye transfer edilmesi. Aadaki drt komut fazn gz nne alalm:

45

Yukardaki komutlar 3-segmentli yapda koturulursa, komut 3'te operandn R2'de segment A srasnda hazr olmamas nedeniyle bir veri akmas olacaktr. 4. saat darbesinde E segmenti anabellek verisini R2'ye yerletirmektedir. A segmentinin ayn zamanda (4. saat darbesinde) R2'deki veriyi kullanmas gerekir fakat veri doru veri deildir. Derleyici bu durumu nlemek iin araya uygun bir komut veya NOP komutu koyar. Ana bellekten yklenen verinin geciktirilmesi kavramna "geciktirilmi yk" ad verilir. Bu metodun avantaj, veri bamllnn donanm yerine derleyici tarafndan zmlenmesidir.

2.6.2.2. 3-Segment Sralamas Veri akmas ve Gecikmi Yk ile zm


Aadaki ekilde 3-segment sralamas veri akmas ve gecikmi yk ile zm gsterilmitir.

2.6.3 Geciktirilmi Dallanma (Delayed Branch)


RISC ilemcilerde dallanma nedeniyle oluan gecikmenin azaltlmas iin derleyici kullanlr. Derleyici dallanmay yeniden dzenleyerek, sralamada uygun yerlere datr. Bu ynteme "geciktirilmi dallanma" (delayed branch) ad verilir. Bunun iin derleyici komutlar analiz eder ve program bamllklarn belirler. Burada derleyicinin grevi dallanmadan sonra sralayabilecei komutlar bulmaktr. Aadaki rnek program 5 komuttan olumutur:

46

Aadaki ekilde geciktirilmi dallanma rnei gsterilmitir.

Yukardaki ekilde derleyici, dallan komutundan sonra 2 NOP komutu kullanmtr. Dallanma adresi X PC'ye 7. saat darbesinde aktarlmaktadr. X adresindeki komut alma fazna 8. saat darbesinde balar.

Yukardaki ekilde program yeniden dzenlenmitir: Toplama ve karma komutlar dallanma komutundan sonraya aktarlmtr. Sralama zamanlamas incelendiinde PC 5. saat darbesinde X deerini almaktadr ve toplama ve karma komutlar ana bellekten alnp, normal dizide koturulmutur.

47

2.7. VEKTR LEME


Bir grup hesaplama ilemleri allagelmi bilgisayarn kapasitesinin dnda kalmaktadr. Bu tr ilemlerin ortak zellii ok youn hesaplama ilemleri gerektirmeleridir. Bu ilemler gnler hatta haftalar srebilir. Genel olarak bu problemler vektrler ve matrisler cinsinden formle edilmelerinden kaynaklanr. Vektr ileme gerektiren uygulamalardan bazlar unlardr:

Yeteri kadar akllca zmler olmadan bu tr ve benzeri problemlerin zmleri normal srelerde bulunamaz.

2.7.1. Vektr lemleri


Birok bilimsel uygulamada grlen aritmetik ilemler byk dizilerle yaplrlar. Bu ilemler genellikle hareketli (yzen) noktal saylar cinsinden oluturulmu vektr ve matrisler yoluyla yaplrlar. Vektr 1-boyutlu verilerden oluur. Bilindii gibi, Von Neumann makinas olarak tanmlanan bilgisayar modelinde operandlar zerinde bir zamanda bir ilem yaplr. Sonu olarak operandlar zerinde yaplan ilemler indeks deerleri kullanlarak birer birer gereklenir. Satr vektr C'nin uzunluu n olup, C= [C1 C2 C3 .... Cn]T olarak gsterilir. Bu vektrn Ci elementi C[i] ile gsterilip, i burada indeksi tanmlar. Von Neumann

2.7.2. Skalar ve Vektrel leme Arasndaki Fark


Bir rnekle skalar ve vektrel ileme arasndaki fark gsterelim: Aadaki C evrimi iki matrisin toplanp, sonularn ncsne saklanmasn gsterir.

48

Bu program a[100] ve b[100] vektrnde saklanmasn salar.

vektrlerinin

toplanmasn

ve

sonucunda

c[100]

rnein, ayn ilem tek akmlatrl (AC) bilgisayarda assembler koduyla gereklenseydi, vektr kullanlmad iin gsterici (pointer) notasyonuyla iki ayr yerde saklanm olan 100 operand birer birer toplanacak ve sonu yine baka bir yerde (100 ayr adres olmak zere) saklanacakt. Bu ilemler iin her bir operand AC'ye (ilemci hzl bellei) aktarlacak, (LDA gibi komutlarla), sonra orada 1., 2. v.b. adres deerlerine kar den operandlar ayr ayr toplama ilemine (ADD) girecek ve sonular daha nceden belirlenen yere saklanacakt (STA). Grld gibi bu ilem C dilinde yazlan programdan ok daha fazla sayda komutla gereklenebilecekti.

2.7.2.1. Vektr lemcisindeki Komut Format


Vektr ilemine dnersek, tek bir ilem:

olarak tanmlanr ve skalar bir ilemdir. Bu ilemlerden 100 tanesi birleik olarak vektr komutunda gsterilmi olur. Bununla ilgili komut vektr ilemcisinde aada verilen ekildeki formatla gsterilir.

Bu komut format -adresli komut formatna uyar. adres deeri birinci, ikinci kaynak ve nc sonu operandlarn temel (base) adresini tanmlar. Son alan ise veri vektrlerinin uzunluunu tanmlar. Genel olarak burada vektrler ana bellekte sakl

49

durumdadr, ilem iin ok sayda ilemci hzl bellei kullanlr ve ilem sonras sonular tekrar ana bellee saklanr.

2.7.3. Matris arpmas


Matris arpmas hesap younluu ok fazla olan vektr ilemlerinden biridir. n x n boyutlu iki matrisin arpm n3 tane arpma ve toplama ileminden oluur. n x m boyutlu bir matris m boyutlu n satr veya n boyutlu m stun vektrnden oluur. Aada rnek olarak 3x3 boyutlu a ve b matrisleri ve arpmlar gsterilmitir.

Her bir arpma sonucu iin 3 arpma ve 3 toplama ilemi gerekmektedir. Sonuta, c matrisinin tm elemanlarnn deerleri 9 x 3 = 27 arpma ve toplama ilemi gerekir. Bylece n x n boyutlu iki matrisin arpm iin n3 arpma-toplama ilemi gerekir.

2.7.4. arpm (Inner Product)


arpm tipik olarak k arpm teriminin toplamdr ve bir sonu terimi oluturur:

Ve eitli uygulamalarda 100 ile 1000 arasnda deiebilir. arpm teriminin hesaplanmasnda en uygun yaplardan biri "sralamal vektr ileyicidir". Aadaki ekil sralamal vektr ileyici yapsn gstermektedir.

ekilde sralama arpcs ve sralama toplaycs drt segmentten olumaktadr. Tm segment bellekleri balang olarak 0 deerini tarlar. Bylece ilk 8 saat darbesinde segmentler 0 kabul edilip, sonra her bir hat paras veya boru (pipe) doldurulur. ai ve bi arpmlar her saat darbesiyle oluturulup, ileri doru aktarlr. lk drt saat darbesinde, arpm deerine 0 deeri toplanr, sonraki drt saat darbesinde arpm deerinin kendisi giri deerine toplanr. 8. saat darbesinin sonunda, ilk drt arpm a1b1 'den a4b4 drt toplayc segmentindedir, sonra ise ikinci drt arpm a5b5 'den a8b8 drt toplayc segmentine gelir. 9. saat darbesinde a1b1 + a5b5 ilemi toplayc segmentinde balam olur. 10. saat darbesinde a2b2 + a6b6 ilemi ve sonras toplayc segmentinden kar. Bylece drtl toplamlar halinde k deerleri elde edilir:

50

Tm arpmlar tamamlannca, sistem drt 0 ile sonlanr. Son ilemler olarak, toplayc ksm son drt ksm arpm ekleyerek ilemleri tamamlar.

2.7.5. Modler Ana Bellek Eriimi (Memory Interleaving)


Sralamal ve vektr ilemciler ou zaman, birden ok kaynan ana bellee ayn zamanda erimesini gerektirirler. rnein komut sralamas, komutun alma ve operandn elde edilme faznn ayn zamanda farkl iki segment tarafndan yaplmasn gerektirir. Benzer ekilde aritmetik sralama durumunda da birden ok operandn segmentlerden oluan boru yapsna ayn zamanda girmesi gerekir. Bu gibi durumlarda iki tane ana bellek hat grubu kullanmak yerine ana bellek adres ve veri hat grubuna bal birden ok modln kullanlmas zm nerilir. Her modl adres (AR) ve veri (DR) belleiyle bellek dizisinden oluur. AR adres hat grubundan gerekli bilgiyi alr, DR ise veri hat grubu ile ikiyollu iletiim iersindedir. Adres hat grubunda en azndan 2 en sa bit (LSB: least signicant bit) modlleri ayrmak iin kullanlr. Aadaki ekilde ok modll ana bellek organizasyonu gsterilmitir.

Modler sistemde bir modl ana bellek eriiminde iken dier modllere okuma veya yazma ilemi iin izin verilir. Modler ana bellein avantaj dnml eriim (interleaving) tekniinin kullanlmasna izin vermesidir. n ana bellekte farkl adresler farkl modllere atanr. rnein, iki-modll ana bellek sisteminde, ift adresler bir modlde tek adresler dier modlde bulunur. Modl says 2'nin kuvveti ise en az anlaml bitler modl seimi, daha sonraki bitler ise seilen bitteki adresler iin kullanlr. Modler ana bellek sistemi sralama ve vektr ilemede sklkla kullanlr. Vektr ilemci n-ana bellekli organizasyonda, n operand n farkl modlden seebilir. Ana bellek eriim zamann dnml hale getirerek modl saysna yakn bir faktr kadar drlr. Komut sralamas ile alan bir merkezi ilem birimi (CPU) dnml bellek organizasyonunun stnln kullanarak, her segment bir modle bamsz olarak eriim salarsa ok baarl bir sistem elde edilir.

51

2.7.6. Sper Bilgisayarlar


Vektr komutlar ve sralamal hareketli-noktal aritmetik operasyonlar kullanan bilgisayarlar genel olarak "sper bilgisayarlar" olarak adlandrlrlar. Sper bilgisayarlar ok gl ve yksek performansl bilgisayarlardr. lem hzn arttrabilmek iin bilgisayarn bileenleri ayn pakete konur ve bylece, elektronik iaretler arasndaki uzaklk kltlr. Bu tr bilgisayarlarda zel soutma teknikleri kullanlarak devrelerin yanmas nlenir. Sper bilgisayarlarn komut seti, tipik olarak normal bilgisayarlarda kullanlan veri transfer, ileme ve program kontrol komutlarn ierir. Bu set vektrleri ileyen komutlar ve skalar ve vektr kombinasyonu ilemlerle zenginletirilir. Sper bilgisayar en temel anlamda hzl, yksek ana bellek kapasiteli ve paralel yaps ile dikkati eker. Bu tr bilgisayarlar ok fonksiyonlu birimler ve sralama tasarmlaryla bilinirler. Genel olarak, vektr, matris ve hareketli-nokta ilemleri iin optimize edilmilerdir. Sper bilgisayarlar gnlk kullanmdan ok youn hesap gerektiren bilimsel uygulamalarda kulanlrlar. rnek kullanm yerleri arasnda hava tahmini, sismik aratrmalar ve uzay aratrmalar gelmektedir. Pahal ve az sayda olmalar onlar bu tr uygulama amalarna yneltir.

2.7.6.1. Sper Bilgisayarlar (Devam)


Bilgisayarn hareketli-nokta ilemlerini yapabilme kapasitesi "flops" olarak llr. Megaflops byle milyon ilemi, Gigaflops ise milyar ilemi gstermekte kullanlr. Tipik bilgisayarda temel zaman birimi "nanosaniyelerdir". Bugnk normal kiisel bilgisayarlarn bile ilem hz ok artmtr. Piyasada bulunan ve alnlabilir bir fiyatta olan bilgisayarlarn saat frekanslar 2.4 GHz.'ler mertebesindedir (bu deer 2003'ler referans alnarak verilmitir). Dolaysyla bu bilgisayarlarda bile elde edilen ilem hzlar sper bilgisayar yaplarnn 10 yl nceki deerlerine gelmitir. lk sper bilgisayar 1976'da tasarlanm olup Cray-1'dir. 12 paralel vektr ileme birimi olup, her bir birimde segmentler yardmyla sralama kullanlmtr. Her bir paralel birim ayn zamanda 150'den fazla hzl bellee saklanm operandlar zerinde ilem yapabilmektedir. Ana bellek 16 bloa ayrlm olup, ayn zamanda her bir bloa eriim mmkndr. Deiik Cray modelleri mevcut olup, her ileri modelde hz byk miktarlarda artm salanmtr. Deiik trde sper bilgisayarlar mevcut olup, performanslar ve fiyatlar kullanlan teknolojilere gre deimektedir. lem kapasiteleri rahata Gigaflopslarn st snrlarn bulmutur.

2.8. DZ LEME (ARRAY PROCESSOR)


Dizi ileyici, veri dizileri zerinde ilem yapan bir ilemcidir. Genel olarak, iki eit dizi ileyici bilinmektedir:

52

Her iki durumda da dizi ilemcileri vektrler zerinde ilem yapar ve ayr i yaplar vardr

2.8.1. Ek Dizi leyicisi


Ek dizi ileyicisi, ana bilgisayara ek olarak tasarlanm ve vektr ileme zelliiyle onun performansn ykseltmeyi hedefleyen yapdr. oklu birimlerin paralel ilemesiyle yksek performans elde eder. Yap bir aritmetik birim ile sralama ile hareketli-nokta toplama ve arpma ileme yapan bir veya birden fazla birimden oluur. Dizi ileyicisi kullanc tarafndan karmak aritmetik ilemleri yapmak iin programlanr. Aadaki ekilde ek dizi ilemcinin genel amal ilemciye balants tantlmtr.

Ek dizi ilemci bir giri-k balants yoluyla ana ilemciye balanmtr. Ana ilemci ek ilemciyi d dzen olarak grr. Veri hzl hat grubu yaps yoluyla ana bellekten yerel bellee transfer edilir. Temel olarak ek dizi ilemci, youn hesaplama gerektiren veri ileme uygulamalarnda ana ilemciye vektr ileme kapasitesini salam olur.

2.8.2. Tek-Komut oklu-Veri Organizasyonu (SIMD):


SIMD ilemcisi paralel, oklu ilemci birimlerinden oluur. lemci birimleri, genel kontrol biriminin ynetiminde ayn ilemi yapmak zere paralel olarak ezamanl hale getirilmilerdir. Aadaki ekilde SIMD dizi ileyicinin genel blok diyagram gsterilmitir.

53

SIMD yaps paralel ve eit yapl, ilemci elemanlar (E) ve yerel bellekleri ierir. Her ilemci eleman bir ALU, hareketli-nokta nokta ilemcisi ve hzl bellek elemanlarndan oluur. Ana kontrol birimi E'lerdeki ilemlerin kontroln stlenmitir. Ana bellek ise programn saklanmasnda kullanlr. Ana kontrol komutu dekode eder ve komutun nasl koturulacan tayin eder. Skalar ilemler ve program kontrol operasyonlar dorudan ana ilemci tarafndan koturulur. Vektr ilemleri tm E'lere yaynlanr ve datlr. Bu durumda her E kendi yerel belleini kullanarak ilemi yapar. rnek olarak 2 vektrn toplanmas rneini gz nne alalm: C = A + B. Ana kontrol birimi i'inci bileenler ai ve bi'yi yerel bellek Mi'ye saklar, i= 0, 1, 2, 3,...,n. Sonra hareketli-nokta toplamas komutunu yaynlar ve her E iin ci = ai + bi ilemi ayn zamanda yaplr. Sonu deerleri ci'ler yerel belleklerde belli yerlere saklanr. Bylece bu paralel ilem vektr toplamn 1 saat darbesinde elde etmi olur. Maske yaplaryla her bir E'nin durumu ilem srasnda kontrol edilir. Her bir E aktif olduu srada bir bayrak "set" edilir, ilem bitince bayrak "reset" edilir. Maske ilemiyle sadece aktif olmas gereken E'leri aktif yaplr. rnek olarak 64 E olan bir dizi ilemciyi gz nne alalm. Eer ilem grecek vektrn uzunluu 64 elemandan az ise kontrol birimi sadece bu saydaki eleman aktif yapar. Eer vektrn uzunluu 64'den fazla ise elemanlar 64'lk ksmlara ayrlr ve her bir ksm ayr ilem grr, sonunda vektr elemanlar birletirilir.

Blm zeti
Bu blmde genel olarak bilgisayarn hesaplama hzn arttrmay amalayan paralel veri ileme teknikleri tantlmtr. Bu teknikler, sralama teknikleri (aritmetik ve komut sralama), vektr ve dizi ileme tekniklerinden oluur. Ayrca RISC yaps iin hz arttrc zellikler incelenmitir. Bu temel tekniklerin kullanmlar ve uyarlamalar ile ilgili tartmalarla blm desteklenmitir. Vektr ve dizi ileme gnmzde yaygn olarak kullanlan teknikler arasndadr. Temel yaplar ve kullanmlar anlatlmtr.

54

55

56

57

58

59

BLGSAYAR ARTMET
Bu blmde ele alnacak olan konular aadaki gibi sralanabilir: Giri Toplama ve karma arpma algoritmalar Blme algoritmalar Hareketli nokta aritmetik ilemleri zeti

Blm Hedefi
Bu blmde aritmetik ilemlerle bu ilemlerde oluacak hesaplama problemlerinin rneklerini tantacaz. Aritmetik ilemci, ilemci biriminin toplama, karma, arpma ve blme yapan parasdr. Aritmetik ilemler sabit ve hareketli nokta eklinde olabilir. Bu blmde eitli aritmetik algoritma rnekleriyle aritmetik ilemlerin nasl yapld aktarlacaktr.

3.1. SAYI GSTERLMLER


Aritmetik ilemci, bilgisayar ilemcisinin bir paras olup, temel aritmetik ilemleri eitli veri tiplerinde koturabilen ksm olarak tanmlanabilir. Sabit ve hareketli nokta gsterilimi bilgisayarda drt aritmetik ilem (toplama, karma, arpma ve blme) iin yaygn olarak kullanlmaktadr. Sabit gsterilim tamsay ve kesir ksmlarndan oluup, sadece sabit nokta gsterilimi ve toplama ilemi olsayd, aritmetik ilemci ok basit olacakt. Fakat hem drt ilem hem de ikili ve onlu saylarn bu iki farkl gsterilimi sz konusu olunca yap karmaklamaktadr. aretli-genlik gsterilimini kullanarak, donanm ile gereklenen aritmetik birimini daha nce temel bilgisayar yaps tasarmnda gereklemitik. Bu yapda temel olarak 0 ile pozitif ikili saylar, 1 ile negatif olanlar gstermitik. E biti (FF veya bayrak) ile aritmetik ilem sonucunda oluan elde, dn ve tama gibi durumlar belirtmitik. Bilindii gibi bir ilemin tm admlarn tanmlayan prosedre algoritma ad verilir. aretli-genlik gsteriliminde, sabit noktal saylarn toplama algoritmas paralel ikili toplayclarla gereklenir. Negatif saylar gz nne alnnca durum biraz daha karklar ve saylarn iaretini kontrol eden sistem ile toplama ve karma ilemlerinin gereklemesi salanr. Genel olarak bir algoritmann admlarnn ak diyagramlar ile gereklendii hatrlanmaldr. Dikdrtgen kutular ilemler iin, diamond ekilli kutular veya karar noktalar ise karar mekanizmas iin kullanlr. Tm algoritmik admlar bu yolla tam olarak tanmlanabilir. Ak diyagramlar, eitli programlama ve gerekleme uygulamalarnda ok kullanlan, elverili bir yntemdir.

60

Bu blmde bata toplama ve karma olmak zere sabit noktal saylarn iaretli-genlik gsterilimi ve iaretli 2-li komplement gsterilimi zerinde durulacaktr. Ayrca ikili saylarn hareketli nokta gsterilimi ve ikili kodlanm onlu saylarn (BCD: binary coded decimal) gsterilimi incelenecektir.

3.2. TOPLAMA ve IKARMA


Bilindii gibi negatif sabit noktal saylar ekilde gsterilirler:

Gnmz bilgisayarlarnn ou tamsaylar zerindeki aritmetik ilemleri iaretli 2komplement gsteriliminde yapar. Hareketli nokta gsteriliminde ise iaretli genlik gsterilimi yaygndr. Aritmetik ilemlerde nemli olan negatif saylarn aritmetik ilem ncesi ve sonras gsterilimidir. Bir rnek olarak iaretli genlik gsterilimini verelim: Burada karma ilemi komplement aritmetik kullanlarak yaplr.

3.2.1 ARETL GENLK VER GSTERLMNE AT RNEK


aretli genlik veri gsterelimini gz nne alalm ve toplama ve karma ilemlerinin nasl yapldn inceleyelim. A ve B saylarnn toplama ve karmasnda iaretlerin deiik deerlerine gre 8 farkl durum ortaya kar. Aadaki tabloda bu durumlar gsterilmitir.

61

3.2.2. Toplama (karma) Algoritmas


Toplama (karma) algoritmas aadaki gibi tanmlanabilir:

Toplama ve karma algoritmalar iaret karlatrmas dnda birbirinin ayndr. Ayn iaretli iki saynn toplama algoritmas ile farkl iaretli iki saynn karma algoritmas ayndr ve tersi de dorudur.

3.2.3. aretli Genlik Toplama ve karma Operasyonu


Donanm olarak toplama ve karma ilemini gereklemek iin aadaki ekli gz nne alalm. A ve B deerlerini saklamak iin iki hzl bellek kullanlr. As ve Bs bitleri (FF: flip floplar) iaretleri gstersin ve genlikler hzl belleklerde saklansn. Burada A ve As akmlatr bellei grevini grr ve sonucu saklamak iin kullanlr. Bir paralel toplayc kullanlarak A + B hesaplanr.

62

Algoritmann gereklenmesi iin A + B ve A - B deerleri paralel toplayc ve karma ile salanr. Karlatrc ise A=B, A< B ve A>B durumlarndan birinin belirlenmesini salar. karma ilemi komplement ve toplama ilemi yoluyla gereklenir. Tama durumu ise bir FF ile gsterilir. Toplama sonucu oluacak tamalar gsterir. aretli 2-komplement gsteriliminde toplama ve karmay hatrlayalm. kili saynn en sol biti iaret bitini gsterir: 0 pozitif ve 1 negatiftir. Eer iaret biti 1 ise say 2komplement gsterilimindedir. rnein, +33 onlu says 00100001 ve -33 onlu says ise 11011111. Dikkat edilirse 11011111 ikili says 00100001 saysnn 2-komplementidir ve tersi de dorudur.

3.2.4. aretli 2-Komplement Toplama ve karma Donanm


aretli 2-komplement gsterilimde iki saynn toplama ilemi iki saynn iaret bitlerini de gz nne almasyla elde edilir. aret bitlerinden oluacak elde gzard edilir. karma ileminde ise nce karlacak saynn 2-komplementi alnr, sonra toplama ilemi yaplr. 2 n bitlik saynn toplamndan (n+1) bitlik bir sonu elde edilir ve bu tamadr. Tama toplama ilemlerinde oluan son iki elde bitinin XOR kaps ile kontrol edilmesiyle anlalr. Kap k 1 ise tama sz konusudur. Aadaki ekilde donanm gereklemesinde hzl bellek yaps gsterilmitir. Bu donanm organizasyonu ekli ile bir nce vermi olduumuz iaretli genlik donanm gereklemesi eklinin arasndaki temel fark iaret bitlerinin ayr olmamasdr. Burada A hzl belleini AC (akmlatr) ve B hzl belleini de BR olarak adlandrmaktayz. AC ve BR'nin en sol bitleri iaret bitleridir. Bu bitler dier bitlerle birlikte toplama ve karma ilemine sokulur. V biti ise tamay gstermektedir. Bu durumda k elde deeri ihmal edilir.

63

3.2.4.1. aretli 2-Komplement karma Algoritmas

Saylarn

Toplama

ve

aretli 2-komplement saylarn toplama ve karma algoritmas aadaki gibi aklanabilir: Toplama ilemi iin AC ve BR hzl bellek ierikleri toplanr. Tama biti V, son iki elde deerinin XOR kapsndan geirilerek ald deere gre saptanr. V=1 ise tama olutuu anlalr. karma ilemi AC'nin ieriine BR'nin ieriinin 2-komplementini ekleyerek elde edilir. BR'nin 2-komplementinin alnmas iaret bitinin deimesine neden olur. Pozitif ise negatif, negatif ise pozitif deiimi olur. Tama durumunun programc tarafndan anlalmas gerekir, aksi halde AC hzl belleinde hatal sonu oluur. Aada iaretli 2komplement saylarn toplama ve karma algoritmalar gsterilmitir.

aretli genlik ve iaretli 2-komplement toplama ve karma algoritmalarn karlatrrsak, iaretli 2-komplement saylarn algoritmalarnn basitlii hemen anlalr. Gerekten de gnmzde bilgisayarlarn ou iaretli 2-komplement gsterilimini kullanr.

64

3.3. ARPMA ALGORTMALARI


aretli-genlik gsterilimindeki iki sabit noktal ikili saynn arpma ilemi "kt ve kalem" yntemiyle, ardarda kaydrma ve toplama ilemleri yoluyla yaplabilir. Saysal rnek aadadr:

11 x 3 = 33 olarak elde edilir. lem arpan says bitlerine gre dzenlenir. Eer arpan biti 1 ise arplan aynen kopya edilir, 0 ise sfrlar kopya edilir. Kopya edilen arpm deerleri 1-bit kaydrlr ve arpm deeri kaydrlan saylarn toplam olarak bulunur. arpmn iareti ise arpan ve arplann iaretleri tarafndan saptanr. Ayn iseler + iaretli, farkl iseler - iaretli olurlar.

3.3.1. aretli-Genlik Gsteriliminde arpma lemi


aretli-genlik gsterilimindeki arpma ilemi, saysal bilgisayarlarda gereklendiinde "kt ve kalem" ynteminde tanmlanan ilemi deitirmek gerekir. Bunun iin aadaki ilemler uygulanabilir.

Aadaki ekilde iaretli-genlik gsteriliminde arpma yapan donanm organizasyonu gsterilmitir. Hzl bellekler A, B ve Q iaret bitleri As, Bs ve Qs ile ekilde gsterilmitir. Dizi sayc (SC) balangta arpanda bulunan bit saysna set edilir ve sonra her bir ksmi arpm sonunda deeri 1 azaltlr. SC'nin deeri 0 olduunda arpm ilemi tamamlanm olur. Komplement alc ve paralel toplayc sistemin temel paralarndan biridir.

65

3.3.1.1 aretli-Genlik Gsteriliminde arpma Yapan Donanm Organizasyonu

Balangta arplan B belleinde ve arpan Q belleinde bulunur. A ve B deerleri ksmi arpm oluturur ve EA belleine tanr. Burada, E flip flop (bayrak) ve A bellei seri olarak EA bellei olarak adlandrlmtr. Hem ksmi bellek hem de arpan saa kaydrlr. Bunun iin donanm yapsnda E-A-Q balantlar mevcuttur ve shr EAQ komutu (E, A ve Q bellek yapsn kullanarak lojik saa kaydrma) bu grevi yapar. Bylece A belleinin en az anlaml biti Q belleinin en anlaml biti pozisyonuna kaydrlm olur. Buna karlk E biti ise A belleinin en anlaml bit pozisyonunda yer alr. E bitinin yeni deerinin 0 olduuna dikkat edilmelidir. Kaydrmadan sonra, ksmi arpmn 1 biti Q belleine gemi olur ve arpan bitlerini 1 bit saa itmi olur. Bu ekilde Q belleinin en sa pozisyonunda yer alan Qn kaydrlan bu arpan bitini tutar. Bir sonraki adm iin Qn deerinin 0 veya 1 olduu kontrol edilerek arpma ilemi devam ettirilir.

3.3.2. Booth Algoritmas


aretli 2-komplement ikili saylarn arpm iin "Booth algoritmas" kullanlr. Temel olarak, arpanda bulunan 0 deerleri iin toplama deil sadece kaydrma ve 2 k ile 2m bit pozisyonlar arasndaki 1'ler iin ise 2k+1-2m deeri alnr. rnein, 001110 (+14) ikili saysnda 23 den 21 (k=3 ve m =1) arasnda 1'ler bulunmaktadr. Bu durumda say 2k+1 2m = 24 - 21 = 16 - 2=14. Sonuta, M ikili saysnn M x 14 arpm ( M arplan ve 14 arpan) M x 24 - M x 21 olur. arpm deeri ise bir kere sola kaydrlm M deeri bulunarak drt defa sola kaydrlm M deerinden karlr. Dier arpma algoritmalarnda olduu gibi Booth algoritmasnda da arpan bitlerinin deerine gre ksmi arpm kaydrlr. Kaydrma ncesi, arpan ksmi arpm deerine eklenebilir, ondan karlabilir ve deimeden braklabilir. Bu ilemler iin aadaki kurallar geerlidir:

66

Booth algoritmas pozitif veya negatif arpan deerlerinin ikisi iinde alr. Negatif arpan durumunda say 1 ile sonlanacak ve son ilem bir karma ilemi olacaktr. rnein arpan (-14) olduu zaman 2-komplement gsterilimi 110010 olup, -24 + 22 - 21= -14 deeri olarak ilem yaplr.

3.3.2.1. Booth Algoritmasnn Gereklenmesi in Gerekli Donanm Yaps


Booth algoritmasnn gereklenmesi iin gerekli donanm yaps aadaki ekilde gsterilmitir. aretli genlik gsterilimindeki saylarn arpm iin gsterilen donanm yaps ile arasndaki fark iaret bitlerinin hzl bellek elemanlarna katlm olmasdr. Bu fark belirtebilmek iin A, B ve Q belleklerine AC, BR ve QR isimleri verilmitir. Ayrca Qn biti QR belleinin en az anlaml biti olarak gsterilmitir. Qn+1 ise arpann ifte bit kontrol iin kullanlan dier bir bittir.

3.3.2.2. Booth Algoritmasna Ait rnek


Bahsedilen algoritmalarn nasl altn anlatmann szel ifadeler yannda dier bir yolu alma admlarn iaret ak diyagram ile gstermektir. Booth algoritmasnn nasl altn ak diyagram ile tanmlamak renciye braklmtr. AC ve Qn+1 biti sfrlanp, SC bellei (dizi sayc) arpanda bulunan bit saysna eitlenir. arpann iki biti Qn ve Qn+1 kontrol edilir. Eer bu iki bit 10 ise ilk 1 bit deeri ile karlaldndan, bu arplann ksmi arpm deerinden karlmas gerekir. Eer iki bit deeri 01 ise ilk 0 ile karlaldndan bu arplann ksmi arpma eklenmesini gerektirir. ki bitin eit olmas durumunda ise herhangi bir deiiklik olmaz. arpma ilemi srasnda herhangi bir tama sz konusu olmaz. Farkl iaretli iki saynn toplamas sonucu herhangi bir tama koulu olumaz. Sonraki adm Qn+1 bitini, arpan ve ksmi arpm ( birarada) saa kaydrmaktr. Bu aritmetik saa kaydrma ilemi olup, AC ve QR'nin ierikleri saa kayar, AC 'nin iareti deimez. SC 1 azaltlr ve bu evrim n (arpandaki bit says) defa tekrar edilerek arpma ilemi tamamlanr.

67

Aadaki tabloda Booth algoritmasn aktaran saysal rnek gsterilmitir. (-9) X (-13) = +117 olup N=5 deeri SC'ye saklanmtr.

3.3.3. Dizi arpc


2 ikili saynn arpm bir mikroilem komutu ile sonucu oluturan btn bitleri kombinasyonel bir devre yardm ile bir kerede oluturmak suretiyle yaplabilir. Bu ilem iin harcanacak tek zaman tm ikili iaretlerin lojik kaplardan getii sredir. Yaplacak i bir "arpma dizisi" oluturmaktr. Bir dizi arpc ok sayda lojik kapdan oluan yapnn tmdevrelerle gerekletirilmesidir. Aadaki ekilde 2 2-bit saynn arpm iin oluturulan dizi arpc kombinasyonel devresi gsterilmitir.

68

arplan bitler b1 ve b0, arpan bitler a1 ve a0 ve sonu ise c3 c2 c1 c0'dr. lk ksmi arpm a0 ile b1 b0'n arpm ile oluturulur. Yaplan ilem dikkatle incelenirse a0 ve b0'n arpm bitler 1 ise 1, 0 ise 0 retir. Bu ise AND lojik ilemiyle gereklenebilir. ekilden izlenecei gibi ilk ksmi toplam iki AND kaps ile gereklenmitir. kinci ksmi toplam ise a1 ve b1 b0 bitlerinin arpm ve sonrada bir bit sola kaydrlmas ile elde edilir. ki ksmi toplam deeri ise yar- toplayc (HA) devresi ile toplanr. Eer daha ok ksmi toplam ilemi yapmak gerekiyorsa tam-toplayc devreleri kullanmak gerekir. arpm sonucunda oluan en az anlaml bitin toplayc devresinden gemesine gerek olmadna dikkat edilmelidir. Tipik bir kombinasyonel, ok sayda bitten oluan bir ikili arpc benzer ekilde alr. arpann her bir biti arplan deerin tm bitleri ile AND ileminden geirilir. Her seviyede oluturulan ksmi toplam deeri nceki seviyede oluan ksmi arpm deeri iin AND ilemine tabi tutularak yeni ksmi toplam deeri oluturulur. Son seviyede ise sonu elde edilir. j arpan biti ve k arplan biti iin toplam olarak k x j AND kaps ve (j-1) adet k-bit toplayclar gerekir. lem sonucunda ise j + k bitlik sonu oluur. rnek olarak, 4 bitlik bir ikili say ile 4 bitlik dier bir ikili saynn arpmn gz nne alalm. arpan b3 b2 b1 b0 olarak ve arplan ise a3 a2 a1 a0 olarak gz nne alalm. k=4 ve j=4 olaca iin 16 AND kaps ve 3 4-bit toplayc devresi kullanlp, 8-bitlik sonu elde edilir.

3.4. BLME ALGORTMALARI


aretli-genlik gsterilimi ile gsterilen iki saynn blme ilemi "kt ve kalem" yntemi ile yaplr. Bu ilem ardarda gelen karlatrma, kaydrma ve karma ilemlerinden oluur. kili saylarn blme ilemi onlu tabanl saylardan daha kolaydr. Bu ilem srasnda blnen veya ksmi kalan deerlerinin blen deerine olan uygunluu aranmaz. Sonu deeri ya 0 veya 1'den oluur. Aadaki ekilde blme ilemini gsteren saysal rnek gsterilmitir. Blnen A says 10 bit, blen 5 bittir. Blnenin 5 en anlaml biti ile blen ile karlatrlr. A saysnn bu 5bitlik ksm B saysndan kk ise alt en anlaml ksm ile B says tekrar karlatrlr.

69

Eer bu 6-bit B'den byk ise blm ksmna 1 konur. Sonra blen saa 1 kaydrlr ve blnenden karlr. Aradaki farka "ksmi kalan" ad verilir. nk blme ilemi bu noktada durdurulduunda blm 1 olup, kalan deeri ise ksmi bir deer olacaktr. lem blen ile ksmi kalan karlatrarak devam eder. Eer ksmi kalan blenden byk veya eit ise blm 1 olur. Sonra blen saa kaydrlp, ksmi kalandan karlr. Eer ksmi kalan blenden kk ise blm 0 olup, herhangi bir karma ilemine gerek yoktur. Blen her durumda 1 saa kaydrlr. Dikkat edilirse sonu blm ve kalan verir.

3.4.1. aretli-Genlik Verisinin Donanm Gereklemesi


aretli-genlik verisinin donanm gereklemesi srasnda aadaki noktalar nem kazanr:

70

3.4.2. aretli-Genlik Verisinin Donanm Gereklemesine Ait rnek


aretli-genlik gsteriliminde blme ilemini yapmak iin gerekli donanm, arpma ilemini yapmak iin kullanlan ve iaretli-genlik gsteriliminde arpma yapan donanm organizasyonu eklinde gsterilen donanmn aynsdr. EAQ hzl bellekleri sola kaydrlp Qn tarafndan 0 yerletirilir. Bu durumda E'nin nceki deeri kaybolur. Aadaki ekilde bir nceki ekilde verilen saysal rnek blme ileminin detaylarn aklamak iin tekrarlanmtr. Blen B hzl belleinde ve onun iki kat uzunluunda olan blnen A ve Q belleklerinde saklanmtr. Blnen sola kaydrlp, blen deeri 2-komplement gsterilimi ile ondan karlr.

Bal genlik deeri bilgisi E'de bulunmaktadr. Eer E=1 ise A >= B'dir. 1 deeri blm olarak Qn tarafndan girilir. Ksmi kalan deeri sola kaydrlrak tekrar eder. Eer E=0 ise A < B anlam karlr ve 0 blm deeri Qn tarafndan kaydrlarak girilir. Sonra B deeri toplanarak A'da nceki deerine gre ksmi toplam oluturulur. Ksmi kalan tekrar sola kaydrlr ve 5 bitlik blm oluturulana kadar ilem tekrar eder. Dikkat edilirse ksmi toplam sola kaydrlrken blm de sola kaydrlmaktadr. 5 admlk kaydrma sonucu, blm Q'da ve son kalan deeri ise A'da elde edilir.

3.4.3. Blmede Tama


Blme ileminde oluan blm deerinde tama olabilir. Bu kt ve kalemle olduunda problem deildir ama donanm gereklemesinde kritik bir problem oluturur. Bunun nedeni hzl bellek eleman uzunluunun sabit olmas ve standart uzunluktan daha fazla sayda bit saklayamamasdr. rnein, bir hzl bellekte blen 5 bit, dier 2 bellekte 5'er bitlik blnen deeri bulunsun. 6 bitlik blm deerinin olumas tipik olarak mmkndr (daha nceki rneklere baknz). Bu durumda blm 5 bitlik bir hzl bellekte saklanacaktr. Bylece oluan bir "tama" 1 bitlik deeri (6'nc bit) iin

71

1 flip flop kullanlmas gerekir. Blme-tamas normal bilgisayar alma koullarnda saknlmas gereken bir kouldur. nk blme ilemi sonucu oluan blm deeri normal bellek standardna gre daha byk olup, transfer edilemeyecektir. Bu koullarn ya donanm ya yazlm veya her iki yolla da kestirilmesi gereklidir. Blnen say blen saynn iki kat olduu zaman tama koulu yle ifade edilebilir: blnen ikili saysnn st yarsnn deeri blen saydan byk veya blen sayya eit ise "blme-tamas" koulu oluur. Blme ilemi srasnda karlalan dier bir durum ise "sfr ile blme"dir. Bu durum blme iaretinin sfr olmas halidir. Blme-tama koulu sfr ile blme durumunun da gsterilmesi iin kullanlr. Tama koulunun kestirimi iin kullanlan zel flip flopa "blme-tama-FF"si (divide-overflow flip-flop: DVF) ad verilir.

3.4.4. Onarml Metod (Restoring Method)


Blme tamasnn olutuu durumlarn belirlenmesi eitli yollar ile mmkn olabilir: Baz bilgisayarlarda blme tamas, her bir blme ilemi sonras DVF bayra kontrol edilerek anlalabilir. Bu yapldktan sonra program ak tama iin iyiletirici ltler alabilir, (rnein verinin skalasnn dzenlenmesi gibi) ve bir alt rutine aktarabilir. Daha eski bilgisayarlarda ise blme tamasnn olumas bilgisayar durdurur. Bu duruma "blme durdurmas" (divide stop) ad verilir. Genellikle bilgisayar ileminin durdurulmas tavsiye edilmez. Bunun yerine DVF set edildiinde kesinti istemi balatan bir prosedr tanmlanr. Bu kesinti ilemi hali hazrda koturulan programn geici sre iin durdurulup, bir servis rutinine dallanmasn salar. En uygun dzeltici nlem, koturulan programn hali hazrda neden bitirilemediini gsteren bir "hata mesaj" oluturmaktr. Bundan sonras tamamyla kullancya baldr. Programdaki hatann veya blme-tamas oluturan durumun belirlenip dzeltilmesi gerekir.

Yukarda anlatlan donanm blme algoritmasna "onarml metod" (restoring method) ad verilir. Bu blmde anlattmz algoritmalar ile ilgili ak diyagramlarnn oluturulmas mmkndr. Bunu renciye brakyoruz.

3.4.5. Karlatrma Metodu ve Onarmsz Metod


kili saylar zerinde blme ilemi yapmak iin kullanlan 2 algoritma daha vardr:

72

3.5. HAREKETL NOKTA ARTMETK LEMLER ZET


Bu blmde gnmzde hemen hemen her bilgisayarda kullanlanlan hareketli nokta gsterilimi ve ilemlerini ksaca zetlemeyi hedefliyoruz. Gnmz bilgisayarlar hareketli (yzen) nokta gsterilimi ve aritmetii donanm yapsnda gereklenmitir (yazlm gereklemesi ok nadirdir). Eer donanm yapsnda hareketli nokta aritmetii tanmlanmsa, bu ilemler iin alt rutinler de elde edilebilir. Aada hareketli nokta aritmetik ilemleri iin hzl bellek yaps gsterilmitir.

Genel olarak yap sabit nokta aritmetiinde kullanlan hzl bellek yapsna benzer. Genel bir kural olarak, sabit nokta aritmetiinde kullanlan hzl bellekler ve toplayc, hareketli nokta aritmetiinde kesirli saylarn ilemlerinde kullanlr. Temel fark, stel ifadelerin ilemleri srasnda ortaya kar. Hzl bellek organizasyonunda 3 hzl bellek (BR, AC ve QR) bulunmaktadr. Her bellek iki paraya blnmtr. Kesirli ksm sabit nokta gsteriliminde olduu gibi byk harfle, stel ksm ise kk harfle gsterilir. Hareketli nokta gsteriliminde saylar kesir ksm iaretli-genlik gsterilimi, stel ksm ise bir iaretli-tamsay ile gsterilir. ekilde gsterilen AC hzl bellei As iareti ve A genlii ile gsterilir. A1 deeri ise en anlaml biti gstermektedir. Normalize edilmi say iin bu

73

deer 1 olur. stel ksm ise "a" kk harfiyle gsterilmitir. Bylece AC bellei, "As, A, a" ksmlarnn arka arkaya gelmesinden oluur. Benzer ekilde BR bellei "Bs, B, b" ve QR bellei "Qs, Q ve q" paralarndan oluur. Paralel-toplama devresi iki kesri toplar ve sonucu A'ya iletir, elde ise E'de saklanr. Ayr bir paralel-toplama devresi ise stel ksm iin kullanlr. Hareketli nokta gsteriliminde, stel ksmn "tama" gstermesinin ihtimali ok dktr. rnein, 48 bit sabit nokta gsterilimli say iaretli +-(247 - 1) deerini veya +-1014' gsterir. 48 bit hareketli nokta gsterilimli say 36 bit kesir ve 12 bit stel ksmla gsterilebilir. Bu ise +-(1- 2 -35) x 22047 aralndaki saylar gsterir. Dikkat edilirse bu say 35 adet 1'den ve 211-1= 2047 stel ifadesinden olumaktadr. Son olarak, stel toplama-devresinden genlik-karlatrma devresine 3 adet ikili say deeri kyla bal genlii gstermek zere balant olduu hatrlanmaldr. Kesirli say gsteriliminde sadece "kesir" ksm kullanlacaktr. Bu ise ikili noktann genlik ksmnn solunda yer alaca anlamna gelir. Tamsay gsterilimi arpma ve blme ilemleri srasnda zorlua neden olduundan "kesir" gsterilimi kullanlmaktadr.

3.5.1. Toplama ve karma


Toplama ve karma srasnda iki hareketli nokta deeri AC ve BR'de yer alr. Toplam veya fark AC'de yer alr. Algoritma drt paradan oluur:

Deeri 0 (sfr) olan hareketli-noktal say normalize edilemez. lemin sonu yerine banda sfr olan saylarn kontrol edilmesi daha uygundur. Normalizasyon ilemi sonucun ana bellee transfer edilmeden ayn formatta olmasn salar. ki hareketli-noktal saynn toplama ve fark alnrken eer BR=0 ise ilem durdurulur ve sonu AC'deki deer olur. Eer AC=0 ise BR'nin ierii AC'ye transfer edilir. karma ilemi yaplyorsa BR deerinin iaretinin tersi alnmaldr. Eer saylarn hibiri sfr deilse stel ksmlarn dzenlenmesi admna geilir. "a" ve "b" stel ksmlarna ilitirilmi genlik-karlatrma devresi bal deerini gsteren 3 k retir: eer iki stel deer eit ise dorudan aritmetik ilem yaplr. Eer stel deerler eit deilse, kk stel deeri olan kesir, iki stel ksm eit yaplana kadar saa kaydrlr.

3.5.1.1. Toplama ve karma rnei


Hareketli-nokta gsteriliminde saylarn toplanmas veya karlmas sabit nokta gsteriliminin tamamyla aynsdr. rnein, 0.55255 X 102 ile 0.145x10-1 hareketli-nokta saylarn toplayalm. Bunun iin stel ksmlarn ayn yaplmas gerektii aktr. Yeni

74

durumda iki deer: 0.55255 X 102 ve 0.000145x102 olur. Bundan sonra bu iki deerin toplama veya karma ilemi sabit-nokta gsterilimindeki gibi olacaktr.

Son olarak, karma srasnda oluabilecek sfr veya "klme" (underflow "tamann" tersi) durumlarn gz nne almak gerekir.

3.5.2. arpma
ki hareketli-nokta gsterilimdeki saynn arpm, kesirlerin (mantis) arpm ve stel ksmlarn toplam olarak yaplabilir. arpma srasnda stel ve kesir ksmlarn dzenlenmesi sz konusu deildir. Kesirlerin arpm, sabit-noktal arpm sonucundaki kesinliin (precision) arttrlmas iin kullanlan "ift-kesinlikli" say sonucunun aynsdr. "ift-kesinlikli" saylar yoluyla sonucun doruluu arttrlm olur. arpma algoritmas drt paradan oluur:

2 ve 3 no'lu admlar paralel olarak gereklenebilir.

3.5.3. ki Hareketli-Noktal Saynn arpm Algoritmas


Aadaki ekilde iki hareketli-noktal saynn arpm algoritmas gsterilmitir.

75

Algoritmann banda, iki operandn sfr olup olmadklar kontrol edilir. Operandlardan birisi sfr ise AC deeri 0 yaplr ve ilem sonlandrlr. Operandlar sfr deilse ilem devam eder. Operandlarn stel ksmlar "q" ve "a" toplanr ve "a" ya saklanr. "a" dan kutup deeri karlarak deerin doruluu salanr. Kesirlerin arpm sabit-nokta gsterilimindekinin aynsdr. Oluan "klme" (underflow) AC'de bulunan A1 biti yoluyla kontrol edilir: A1=1 ise sonu hali hazrda normalize edilmitir, A1=0 ise AQ sola kaydrlp, stel deer 1 azaltlr ve normalize sonu elde edilir. Bu durumda 1 sola kaydrma yeterli olur.

76

3.5.4. Blme
Hareketli-noktal saylarn blmesi iin stel ksmlar karlr ve kesirli ksmlar blnr. Kesirli saylarn blm sabit-noktal olarak yaplr (tek-kesinlikli: single-precision blnen say AC'de yer almaktadr). Blme-tamasnn kontrol sabit-nokta gsteriliminde kullanlan yntemle ayndr. Fakat hareketli-nokta gsteriliminde tanmlanan blme ilemi herhangi bir problem yaratmaz. Eer blnen blmden byk veya eit ise, blnenin kesri saa kaydrlp, stel ksm 1 arttrlr. Normalize edilmi operandlar iin bu ilem "blme-tamas" olmamas durumunu garanti eder. Buna "blnen-dzenlemesi" (dividend alignment) ad verilir. Normalize edilmi iki saynn blme ilemi, blnen-dzenlemesi yaplm ise muhakkak normalize edilmi blm deeri verir. Bu durumda daha nce tanmlanm algoritmalarn dnda sadece blme algoritmasnda elde edilen blm normalizasyon gerektirmez. Hareketli-noktalar iin kullanlan blme algoritmasn 5 admda gerekleyebiliriz:

Operandlarn sfr olmas durumunun kontrol edilmesi gerekir. Blen 0 ise "sfr ile blme" kural d durumu olutuundan bunun bir hata mesaj ile gsterilmesi ve ilemin sonlandrlmas gerekir. Eer blnen say 0 ise, blm deeri 0 yaplp ilem sonlandrlr. Operandlar sfrdan farkl ise blme ileminin iareti belirlenip Qs bitine aktarlr. Q hzl bellei temizlenip, SC (dizi sayc) blmde bulunan bit saysna ayarlanr. Blnen saynn dzenlenmesi sabit-noktal saylarda yapld gibi kesir blnenin blenden kk olmasn salayacak bir dzenleme gerektirir. ki kesir deeri karma ilemi ile karlatrlp, E bitinde elde edilen "elde" deeri bal genlii gsterir. Eer A > B ise, blnen A deeri 1 saa kaydrlp, stel deer 1 arttrlr. Her iki operand da normalize edildii iin A < B koulu salanm olur. Sonra adm olarak, blen stel deeri blnen stel deerinden karlr. Her iki stel deer de kutuplu olduu iin elde edilen farka kutup deeri eklemek gerekir. stel deerler "q" ya blm deeri ise QR'de saklanr. Blme ilemi sonucu oluan blm deeri QR'de, kalan ise A'da saklanr. Kalann stel deeri ile blmn stel deerinin ayn olmas gerektii aktr. Kalan deerinin normalize edilmesi de mmkndr.

77

Blm zeti
Bu blmde, aritmetik ilemlerle bu ilemlerde oluacak hesaplama problemlerinin rnekleri incelenmitir. lemci biriminin toplama, karma, arpma ve blme yapan parasna aritmetik ilemci ad verilir. Bilgisayarda aritmetik ilemler iki ekilde gereklenebilir: Sabit ve hareketli noktal ilemler. Sonu olarak burada sabit noktal saylarda tanmlanan toplama ve karma algoritmalarnn yannda arpma ve blme algoritmalarna deinilmitir. Ayrca hareketli saylar iin algoritmalardan da bahsedilmitir.

78

79

80

81

82

GR-IKI ORGANZASYONU
Bu blmde ele alnacak olan konular aadaki gibi sralanabilir: Giri-kta kullanlan perifer (yardmc) dzenler Giri-k (I/O) balantlarnn incelenmesi Ezamanl olmayan veri transferi Giri ve kta kullanlan transfer modlar ncelikli kesinti ve eitleri Dorudan ana bellek balants (DMA: direct memory access) Giri-k ilemcileri ve zelliklerinin tantlmas

Blm Hedefi
Bu haftalardaki derslerde saysal bilgisayarn d dnya ile balantsn salayan giri-k alt-sistemi ele alnacaktr. Bilindii gibi programlar ve veri bilgisayarn diskinde sakl olarak durmakta ve istenildii zaman kullanc tarafndan kaydedilip, sonular elde edilebilmektedir. Bilgisayarn faydal bir ama iin kullanlabilmesi ancak giri ve k dzenleri yoluyla d dnyadan bilgi almas ile mmkn olmaktadr. Sonuta, bu blmdeki ama, giri ve k ile ilgili dzenlerin, transfer modlaryla ilgili temel kavramlarnn zetlenmesi, tasarmlarndaki nemli kavramlarn tantlmasdr. Bununla ilgili olarak giri-k balantlar, ezamanl olmayan veri transferi, ncelikli kesinti, dorudan bellek balants, giri-k ilemcileri ve seri haberleme anlatlacaktr.

4.1. GR-IKITA (I/O) KULLANILAN PERFER (YARDIMCI) DZENLER


Bilgisayarn dorudan kontrol altnda bulunan dzenlere "dorudan balantl" (on-line) dzenler ad verilir. Bu dzenler CPU komutlarnn dorultusunda ana bellekte veriyi okurlar veya yazarlar. Bilgisayara eklenmi giri ve k dzenlerine "perifer" (yardmc) dzenler ad verilir. En ok kullanlan perifer dzenler klavye, grntleme birimi (ekran) ve yazcdr. kincil bellek birimi salayan yardmc dzenler ise compact diskler (CD), digital versatile diskler (DVD), manyetik diskler ve eritlerdir. Bu yardmc dzenler tipik olarak, lazer nlar, elektromekanik ve elektromagnetik esaslarda alan elemanlardr.

83

84

85

86

Video gstericiler, klavye ve fareler en sk kullanlan yardmc dzenlerdir. eitli video monitrler mevcuttur: katod-nl tp (CRT: cathode ray tube), sv kristalli gsterici (LCD: liquid crystal display) ve hatta "tablet" formatnda hem gsterici hem de kalemle zerine yazlabilen gstericiler bunlar arasnda en ok kullanlanlardr. Tablet formatnda "fare" yerini "kalem" kkenli giri dzenine brakmtr. ok kullanlan CRT rneinde, bir elektronik tabanca tarafndan gnderilen elektronik n tbn fosforlu ekran yzeyinde bir patern (rnt) oluturur. Elektronik olarak oluturulan bu nn yatay ve dey saptrclar yardmyla ynlendirilmesi mmkndr. CRT ierisinde zgaralarda bulunan deiken gerilim nedeniyle ekran zerinde istenilen eklin oluturulmas mmkn olur. Ekrann tipik zellii "sonraki karakterin" pozisyonunu gsteren "krsr" denen izgicii gstermesidir. Krsr istenilen drt ynde hareket ettirilebilir. Klavye ve fare ile kontrol edilebilir. Add, delete, copy, cut, paste gibi "edit" anahtarlar (iletim sistemi cinsine gre klavye veya fare ile veya birlikte kullanlabilirler) krsr pozisyonuna dayanr.

4.1.1. Grnt Terminal Modlar


Grnt terminalinin genel olarak iki modu tanmlanabilir:

87

4.1.2. Yazclar
Yazclar bilgisayar knn veya metin materyalinin srekli kaydn "kt" zerine almaya yarayan dzenlerdir. Genel olarak temel tipte yazc vardr:

4.1.3. CD ve DVD
CD ve DVD teknolojisi son yllarda ne kan bellek oklu ortam dzenlerinin banda yer almaktadr. CD ve DVD'ler bugn mzik ve film gibi elendirme alanlarnda piyasay hemen hemen tamamyla kaplamaktadrlar. Ayn elemanlar bilgisayar verilerinin de saklanmasnda kullanlmaktadr. CD kapasitesi 700 Mbayt, DVD kapasiteleri 2.4 Gbayt mertebelerine ulamaktadr.

88

4.1.4. Manyetik eritler ve Diskler


Manyetik eritler ve diskler bilgisayar saklanmasnda kullanlan klasik dzenlerdir. verilerinin

Manyetik eritlere eriim "dizisel" (sequential) olup, okuma ve yazma operasyonu iin eridin ileri ve geri (rewind) pozisyonuna getirilmesi gerekir. Her okumadan sonra erit baa alnp, tekrar okuma durumunda yeni adrese batan balayarak ulalr. En ucuz ve yava saklama dzenleri olan eritler, kullanlmadklar zaman sistemden kaldrlabilirler. Manyetik diskler ise manyetik madde ile kapl, hzl ve dnen dzenlerdir. Disk zerinde gerekli manyetik segmente, hareket eden okumayazma ksmn yerletirerek veri alveriinin saland dzenlerdir. Manyetik disklerde olasl veri eriimi salanr, dolaysyla istenilen veri adresine eit zamanda ulalm olur.

4.1.5. Bilgisayar Yardmc Dzen rnekleri


Gnmzde bilgisayara veri giri ve knda yardmc olacak pek ok perifer dzen saymak mmkndr. Bunlar arasnda tarayclar (metin girii iin), analog-saysal eviriciler (analog verinin saysal olarak girii iin), kameralar ve grnt cihazlar (grntler gibi iki boyutlu verinin girii iin) ve oklu ortam bilgisinin kodlanm olarak giriini (uzaktan konferans, videofon, uzaktan eitim, robot, vb. uygulamalarnda kullanlan ses, video, veri bilgileri iin) salayan yardmc dzenler mevcuttur. Aadaki ekilde yukarda anlatlan yardmc dzenlerin rnekleri gsterilmitir. Her bir dzen makine ile insan arasnda gittike artan llerde yaknlk salamaktadr. Buna en tipik rnek olarak klavye ve fare giriinden "tablet" bilgisayar yapsn gstermek mmkndr.

89

Gnmzden balayarak gelecek on yl zarfnda yaanmas olas yenilikler arasnda bilgisayar, elektronik ve haberleme teknolojilerinin birbirine olan yaknsamalar gelmektedir. Bilgisayar teknolojisi internet alarndan oluan sistem ile dnyaya alm ve veri alverii iin yeni bir yol tanmlanmtr. nternet kanalyla bugn ses, resim, video ve metin gibi veriler bilgisayara aktarlmaktadr. Dier taraftan bilgisayara taklan TV kart ile ise TV yaynlarna balant salanmtr. Elektronik dzen olarak TV ve bilgisayar ve haberleme sistemleri ortak bir platform haline gelmeye balamtr. rnein, saysal TV yaynlar kanalyla banka hesaplarna eriim salanm, dolaysyla "interaktif" kullanma ynelinmitir.

4.1.6. Alfanmerik Karakterler


nsan ve makine arasnda giri-k dzenleriyle salanan transfer "alfanmerik" karakterler yardmyla olmaktadr. ASCII (American Standard Code for Information Interchange) kodu alfanmerik karakterler iin standart ikili kod haline gelmitir. ASCII kodu 7 biti kullanarak 128 karakteri gstermektedir. Kod b1'den b7'ye kadar ikili bitlerden olumutur. 94 karakterin 34 tanesi baslamayan kontrol fonksiyonlarndan oluur. 26 byk harf (A...Z), 26 kk harf (a...z) 10 say (0...9) ve 32 tane baslabilen zel karakterden oluur (%, &, $,...). ASCII karakterlerinin 34 kontrol fonksiyonu, veri ynlendirmesinde metinleri istenen formatta basmakta kullanlr. tr kontrol karakteri vardr:

90

ASCII format 7 bitlik bir formattr fakat bilgisayarlar 8 bitlik (bayt) bykl saklamak zere tasarlanmlardr. ASCII karakter 8 bitlik bellee depolanr, kalan 1 bit deiik uygulamalar iin kullanlr. rnein, pek ok yazc 8 bitlik ASCII karakterleri tanrlar, en anlaml bit 0 ise bu normal fontu, 1 ise yunan alfabesi veya italik font tipini tanmlayabilir.

4.2. GR-IKI BAINTILARININ NCELENMES


Giri-k (I/O) balantlar bilgisayar ile d dnyadaki eitli dzenler arasnda iliki kuran bir tekniktir. Yardmc dzenler ile CPU arasnda zel haberleme ilikileri gerekir. Bu haberleme ilikileri merkezi bilgisayar ile yardmc cihazlar arasndaki farklarn giderilmesi iin gereklidir:

Yukarda bahsedilen CPU ve perifer dzenler arasnda oluan farklarn giderilmesi iin bilgisayar giri ve k transferlerini ynetir ve ezamanl hale getirir. "Balam birimleri" (interface units) ad verilen birimler perifer dzenleri hat gruplar yoluyla bilgisayara balar. Ayrca veri transferinin kontrol iin mekanizmalar tanmlanr.

91

4.2.1. Giri-k (I/O) Hat Grubu ve Balant Modlleri


Bir ilemci ile eitli perifer dzenler arasndaki tipik balant aadaki ekilde gsterilmitir.

Giri-k hatt (I/O) veri hat grubu (data bus), adres hat grubu (address bus) ve kontrol hat grubundan (control bus) olumaktadr. Tipik dzenler olarak, klavye ve gsterici, yazc, CD src ve manyetik disk seilmitir. Her bir perifer dzen kendi adres dekoder ve kontrol mekanizmasna sahiptir. Veri ak ve transferin kontrol ilemci ve perifer dzen arasndaki iaretlerle denetlenir. Perifer dzen kendi kontrol mekanizmasn gelen iaretlerden salar. rnein, yazc kontrolr, yazcdaki kdn hzn, basma sresini ve baslan karakterlerin seimini kendi kontrolr vastasyla yapar. I/O hat grubu tm perifer dzenlere balanmtr. Spesifik perifer dzenin seimi adres hat grubuna yerletirilen adres yoluyla olur. Bylece seilen dzen ile ilemci arasnda haberleme balam olur. Dier perifer dzenler aktive edilmez. Adres bitleri adres hat grubuna verildii srada, ilemci kontrol bitlerine fonksiyon kodunu gnderir. Fonksiyon koduna cevap veren balant birimi seilir ve "giri-k komutunun" balant yoluyla eklenen perifer dzende koturulmasna balanr. Komutun yorumlanmas perifer dzene baldr.

4.2.2. Komut Tipleri


Balanlan dzen drt tip komut alabilir:

92

4.2.3. Giri-ka (I/O) Kar Ana Bellek Hat Grubu


Giri-k (I/O) haberlemesi iin, ilemci ana bellek ile balant halinde olmaldr. I/O hat grubu gibi ana bellek hat grubu adres, veri ve okuma/yazma hatlarndan oluur. I/O ve ana bellek arasnda hat gruplar ekilde kullanlabilir:

lk ekilde, CPU'nun yannda bir I/O ilemcisi kullanlarak ayr hat gruplar veri transferinde kullanlabilir. Ana bellek hem CPU hem de I/O ilemcisi ile haberleir. I/O ilemcisi ise adres, veri ve kontrol hatlar yoluyla giri ve k dzenleriyle haberleir. Temel olarak, I/O ilemcisinin devi giri ve ktaki dzenler ile ana bellek arasnda bamsz bir yol oluturmaktr.

93

4.2.4. zole Edilmi I/O


Genel olarak bilgisayarlar I/O, ana bellek ve CPU arasnda tek bir ortak hat grubu kullanrlar. I/O ve ana bellek arasndaki ayrm farkl "okuma" ve "yazma" hatlaryla yaplr.

Bu durumda CPU tarafndan alnp, dekode edilen I/O komutu ortak adres hat grubuna adres bilgisini yaynlar. Komut I/O ilemine ilikin ise, CPU ayn zamanda I/O giri veya I/O k kontrol hatlarndan birini aktive eder. Bylece bilgisayar hat grubuna bal olan perifer dzenlerden birinin hzl belleine balant yapar (bu balant ana bellein bir kelimesi deildir). Dier taraftan CPU ana bellekten bir komutun alnp dekode edilmesine ilikin bir ilem yapyorsa ana bellek ile ilgili okuma ve yazma kontrol hatlar kullanlr.

4.2.4.1. Kar Bellee-Dntrlm I/O


zole edilmi I/O stratejisine kar dier bir yntem ise "bellee-dntrlm I/O" yntemi olarak bilinir.

Bilgisayar perifer dzenin hzl belleine ana bellek paras gibi davranr. Perifer dzenlere ilikin adresler ana bellek adres sisteminin araln kltm olur. Belleedntrlm I/O ynteminde zel I/O komutlar kullanlmaz. CPU I/O hzl belleinde bulunan verileri ana bellekte bulunan veriler iin kulland komutlarla iler. Her bir perifer dzen ana bellek komutlarna cevap veren yeni hzl bellek setinin eklenmesi olarak dnlebilir. Bellee-dntrlm I/O kullanan bilgisayarlar ayn komutu hem ana bellek hem de I/O ilemleri iin kullanrlar. rnein, load ve store komutlar hem ana bellekteki veri alveriini salar, hem de I/O dzeninde gerekli veri alveriinde kullanlr.

4.2.5. I/O Balant rnei


ekildeki rnek bir I/O balant dzeni gsterilmitir. Dzen kap (port) ad verilen iki veri hzl bellei, kontrol ve durum hzl bellekleri, hat grubu nbellekleri (buffers), zamanlama ve kontrol devrelerinden olumaktadr.

94

CPU ve I/O dzeni veri hat grubu yoluyla iletiim salar. CS (chip select: integre devre seimi) ve RS (register select: hzl bellek seimi) yoluyla adres mekanizmas iletilmi olur. I/O okuma ve I/O yazma kontrol hatlar giri-k belirtir. Drt hzl bellek dorudan I/O dzeniyle haberleir: A, B kaplar, kontrol ve durum hzl bellekleri. CPU ile perifer dzenin hzl bellek balants iki-ynl veri hat grubu tarafndan salanr. Perifer dzenin belleklerine bir dekoder devresi yoluyla eriilebilir. CS adres hatlar tarafndan seilir. Bellek seimi RS1 ve RS0 ularna en az anlaml adres hat grubu bitleri balanarak belleklerin seimi yaplr. ki hat yukardakiden grld gibi drt hzl bellein seimini salar. Seilen bellein ierii CPU'ya I/O okuma ve veri hat grubu iaretleriyle transfer edilir.

4.2.5.1. I/O Balant rnei (Devam)

95

4.3. VER TRANSFER ETLER


Saysal sistemlerin i ilemleri genel olarak "saat darbeleri" vastasyla ezamanlandrlrlar (senkronizasyon). Saat darbeleri darbe reteci tarafndan retilirler. Btn hzl bellekleraras veri transferleri saat darbeleri tarafndan ezamanlandrlrlar. CPU ve I/O dzeni birbirinden farkl iki dzendir.

E zamanl olmayan iletiim tipi bilgisayarlarda sklkla kullanlr. ki bamsz birim arasnda E zamanl olmayan veri transferi, verinin ne zaman yapldn bildiren kontrol iaretiyle yaplr. Bunun iin bir yol bir "darbe" (strobe) ile dier birime veri transferine hazr olduu bildirilir. Dier ve sklkla kullanlan bir yol ise "el kma" (handshaking) ad verilen yntemdir. Veri transferi yapan birimler arasnda kontrol iaretleriyle verinin gnderildiinin ve alndnn belirtilmesi ilemidir. E zamanl olmayan transferin "darbe" ve "el-skma" yntemleri yalnzca giri-kta deil, birimler arasnda veri alveriinin gerekli olduu dier uygulamalarda da kullanlrlar. E zamanl veri transferinde alc ve verici ularn zamanlamasn gsteren "zaman diyagram" kullanmak bir kural olmutur.

4.3.1 Darbe (Strobe) Kontrol


Ezamanl olmayan veri transferinde darbe kontrol iin tek bir kontrol hatt kullanlr. Darbe kaynak veya alc u tarafndan balatlabilir. Aadaki ekilde kaynak tarafndan balatlan veri transferi gsterilmitir. Genel olarak, veri hat grubu ok sayda hattan oluur, darbe hatt ise tek olur.

Kaynak tarafndan balatlm veri transferinde ilk ekilde grld gibi ilkin veri hat grubunda veri oluturulur. Sonra kaynak darbeyi hatta vererek, alc uca haber verir. Veri ve darbe hatlarda yeteri kadar uzun kalarak alc uta tamamyla iletiim salanr. ounlukla darbenin den kenarnda hat grubundaki veri alc utaki hzl bellee aktarlr.

96

4.3.1.1. Alc U Tarafndan Balatlm Veri Transferi


Aadaki ekilde alc u tarafndan balatlan veri transferi gsterilmitir.

ekil alc u tarafndan balatlm veri transferidir. Bu durumda ilkin alc u darbe gndererek, kaynan veri gndermesini ister. Kaynak veriyi hat grubuna ileterek, alcya cevap verir. Verinin alc tarafndan alnabilecek sre kadar hatta kalmas gerekir. Darbenin den kenarna kadar veri hatta kalr ve transfer ilemi tamamlanr. Pek ok bilgisayarda darbe zaman devresinde retilen saat darbeleri tarafndan kontrol edilir. CPU daima hat grubunun kontrol ve d birime veri transferi bilgisini gndermekle ykmldr.

4.3.2. El-Skma
Darbe metodunun temel dezavantaj veri transferini balatan tarafn (kaynak veya alc taraf olabilir) verinin kar tarafa ulatn anlayamamasdr. Bu problemi "el skma" metodu zer. ki-hatl el-skma (two-wire handshaking) metodunun temel prensibine gre bir hat veri ak ile ayn yndedir. Kaynak tarafndan verinin hat grubuna yerletirildiini alc tarafa haber verir. kinci hat ise alc tarafn veriyi alp almadn kaynak tarafa iletir. Veri transferini balatan taraf kontrol dizisini balatr. Aadaki ekilde kaynak tarafndan balatlan el-skmal veri transfer prosedr gsterilmitir.

97

Bu sistemde veri geerli ve veri kabul edildi hatlar kullanlmaktadr. Zaman diyagram iki birim arasnda verinin nasl iletildiini gstermektedir. Sistem drt durumdan birinde olabilir. Kaynak veri geerli iaretini hatta vererek veriyi veri hat grubuna verir. Alc u veriyi hattan alrsa veri kabul edildi iaretini kar tarafa gnderir. Kaynak veri geerli iaretini keser, sonra alc uta veri kabul edildi iareti keser. Sistem balangtaki durumuna dnm olur. Veri transferinin hz en yava olan u tarafndan tayin edilir.

4.3.3. Alc Tarafndan Balatlan El-Skmal Veri Transferi


Aadaki ekilde alc tarafndan balatlan el-skmal veri transferi gsterilmitir.

Alc u tarafnda retilen iaretin ismi veri iin hazr olarak deitirilmitir. Alc u, anlamna uygun iaret ismi ile kaynak tarafna veri almak iin hazr olduunu iletir. Bu

98

noktadan sonra veri alveri kalb kaynak tarafndan balatlan el-skma ileminin ayns olur. Dikkat edilirse veri iin hazr komutunun komplementi veri alnd komutu olmaktadr. Kaynak tarafndan balatlm ve alc tarafndan balatlm veri transferlerinin temel fark balang durumlarnn farkl olmasdr. El-skma yntemi, kaynak ve alc ularn veri transfer ilemine aktif olarak katlmas nedeniyle esnek ve gvenilir bir yntemdir. Eer bir uta hata olumu ise veri transferi tamamlanamayacaktr. Byle bir hata "zaman dolmas" (timeout) mekanizmas ile kestirilebilecektir. Veri transferi nceden planlanan zamanda bitmemise sistem alarm verecektir. "Zaman dolmas" prosedr saat darbeleriyle gereklenir: ulardan biri elskma iaretini verdikten sonra geri dn iareti alnamyorsa balatan taraf bir hata olutuunu varsayabilir. Zaman dolmas iareti bir kesinti prosedrn balatp, bir servis rutininin hatann giderilmesi iin koturulmasna neden olabilir.

4.3.4. Kaynak ve Alc Ular Arasndaki Veri Transferi


Kaynak ve alc ular arsndaki veri transferi paralel veya seri olabilir. Paralel veri iletiiminde n-bit veri n paralel hat tarafndan, ayn zamanda kar tarafa iletilir. Paralel iletiim hzl fakat pahaldr. Dolaysyla ksa mesafeler arasnda kullanlr. Seri iletiimde ise mesajn her biti bir zamanda bir tane olmak zere kar tarafa iletilir. Seri iletiim daha az hzl fakat ucuzdur

4.3.4.1. Seri letiim


Seri iletiim e zamanl ve e zamanl olmayan olmak zere iki trl yaplabilir.

99

4.3.4.2. E Zamanl Olmayan Seri letiim


Seri, e zamanl olmayan veri iletiim teknii (serial asynchronous data transmission) yaygn olarak pek ok interaktif ular arasnda kullanlr: Bir karakter kodunun iki ucuna da zel bitler yerletirilir. Bu teknikte, bir karakter paradan oluur:

100

4.3.4.3. E Zamanl Olmayan Seri letiim (Devam)


E zamanl olmayan seri iletiim format aadaki ekilde gsterilmitir.

Aadaki iletiim kurallarna gre gnderilen karakter alc uta kestirilebilir:

Bu kurallar kullanarak alc balang bitini kestirir. Alcdaki saat hatt belli zamanlarda kontrol ederek, transfer oranna gre karakterde bulunan bitleri alr. Bir veya iki tane stop (yeni dzenler 1 stop biti kullanmakta) biti gnderilir ve erevenin sonunda hat 1durumuna dner. Stop bitleri 1 veya 2 bit sresince hibir yeni karakterin gelmeyeceini garanti eder. Bir rnek zerinde seri iletiim hakknda saysal deerler verelim: bir terminalin seri iletiim transfer oran 10 karakter/saniye olsun. Her iletilen karakter 1 balang, 8 enformasyon ve 2 stop biti olmak zere 11 bitten olusun. Saniyede 10 karakterlik iletiim hz demek, 1 karakterin 0.1 sn de iletimi anlamna gelir. Bu srede 11 bit iletileceinden, 1 bit iin 9.09 ms. gerekir. Sonuta, 10 karaketer/sn'lik ileti hz 11-bit format iin 110 baud (bit/sn) transfer oranna kar der. Tipik olarak bir kullanc terminalinde bir klavye ve bir yazc bulunur. Her bir tua baslnca, 11 bitlik bilgi hatta verilir. Bir karakteri basmak iin ise 11-bitlik bilgi hat yoluyla yazcya iletilir. Terminal balants verici ve alcdan olumutur. Bilgisayardan alnan 8-bitlik karakter 11-bit olarak alcya gnderilir, vericiden alnan 11-bitlik bilgi 8-bit karakter deeri olarak bilgisayara aktarlr. Tmdevreler (integrated circuits: IC) bilgisayar ile terminaller arasnda balanty salarlar. Bu rnekte kullanlan devreye "genel E zamanl olmayan alc-verici" (universal asynchronous receiver-transmitter (UART)) ad verilir.

4.3.5. E Zamanl Olmayan letiim Balants


E zamanl olmayan iletiim balantsnn blok diyagram aadaki ekilde gsterilmitir.

101

Balant hem verici hem de alc olarak kullanlabilir. Balant kontrol belleine yklenen kontrol bayt'nn deerine gre belirli bir moddan balatlabilir. letiim bellei veri hat grubu yoluyla CPU'dan veri alr ve bu veri kaydrmal bellek kullanlarak seri olarak alcya iletilir. Alc ksm ise dier bir vericideki kaydrmal bellekten seri olarak bilgi alr ve veri tamamlannca alc belleine aktarlr. CPU alc belleini seerek veriyi okuyabilir. Durum belleinin bitleri giri ve k bayraklar olarak kullanlrlar ve koullar ve oluan hatalar gsterirler. CPU durum belleini okuyarak durum bayraklarn kontrol ederek oluan hatalar renmi olur. CS (devre seimi) ve RD/WR (okuma/ yazma) kontrol hatlar CPU ile balantldr. CS adres hatlarna bal olup, dzenin seimini salar. RS (bellek seme) ise RD/WR ile ilikilidir. ki bellek yalnzca okuma (durum ve alc) ve dier ikisi ise yalnzca yazma (iletiim ve kontrol) iin kullanlrlar. Yukardaki ekildeki tabloda gsterildii gibi bellek seimi ve RD/WR ular seimi birbiriyle ilikilidir.

4.3.5.1. E Zamanl Olmayan Seri letiim Balants


E zamanl olmayan seri iletiim ilemi CPU'dan kontrol belleine gnderilen bayt ile balar. Balang ilemi belirli bir ilem "modu" iin parametrelerin tanmlanmasdr. Baud hz, karakter bana bit says, parite kontrol ve retimi ve karakter bana ka stop biti kullanlaca belirlenir. Durum belleindeki 2 bit bayrak olarak kullanlr: Bir bit iletiim belleinin bo olup olmadn ve dier bit ise alc belleinin dolu olup olmadn gsterir.

102

4.3.5.2. E Zamanl Olmayan letiim Balantsnda Verici Blmndeki lemler


Verici blmndeki ilemler yledir: CPU durum belleini okuyarak, iletiim belleinin bo olup olmadn kontrol eder. Eer bo ise CPU karakteri iletiim belleine gnderir ve bayra temizleyerek bellein dolu olduunu gsterir. letiim belleine bal kaydrma belleinin ilk biti 0 yaplarak balang biti elde edilir. Sonra karakter bitleri kaydrma belleine aktarlr ve arkadan stop bitleri eklenir. Sonra iletiim bellei 0 yaplr. Bundan sonra karakter bitleri verilen baud hznda birer birer kar tarafa iletilir. CPU durum belleindeki bayra kontrol ederek yeni karakteri iletiim belleine aktarr. Balant, bir karakter gnderildikten sonra teki hazr olduundan, "ift nbellekli" (double buffered) olarak adlandrlr.

103

4.3.5.3. Ezamanl Olmayan letiim Balantsnda Alc Blmndeki lemler


Alc blmndeki ilemler verici blmndeki ilemlerin benzeridir: Alc veri girii hatlarda veri yok iken 1-durumundadr. Alc kontrol 0 balang bitinin geldiini kontrol ederek hatlarda veri olduunu belirler. Balang biti kestirildikten sonra dier bitleri baud hzna uygun olarak kaydrmal bellekte kaydrlr. Veri bitlerinden sonra parite ve stop bitlerinin kontrol yaplr. Balang ve stop bitleri olmakszn karakter biti kaydrmal bellekten alc belleine transfer edilir. Bayrak ile alc belleinin dolu olduu belirtilir. CPU durum belleini kontrol eder, bayra okur, eer bayrak 1 ise alc belleinden veriyi okur.

4.3.5.4. Balant Dzeninde letiim Srasnda Hata Trleri


Balant dzeninde iletiim srasnda oluacak hatalar iin durum bellei kontrol edilir. CPU herhangi bir zamanda meydana gelen hatay durum belleinden okuyarak belirleyebilir. Karlalabilecek hata trleri aadaki gibidir.

104

4.3.6. lk-Gelen lk-kar nbellei (First-In First-Out: FIFO Buffer)


Ezamanl olmayan iletiim balantsnn blok diyagram aadaki ekilde gsterilmitir. lk-gelen ilk-kar (FIFO) bilgiyi ilk gelen ilk kacak ekilde saklayan bir bellek birimidir. FIFO yaps nbellek birimiyle birlikte tasarlanr. Bylece giri ve k verisini farkl veri oranlarnda almas mmkn olabilir ve farkl transfer hzlarndaki giri ve k verisinin transferi salanr. rnein, kaynak verisi alcdan daha yava ise nbellek yava olarak doldurulabilir ve hzla boaltlabilir. Eer kaynak alcdan daha hzl ise FIFO ok faydal olur. FIFO, nbellee youn bir ekilde gelen bilginin bir ksmn ya da tamamn boaltabiliyorsa gelen verinin ok youn anlar kolaylkla geitirilebilir. Sonu olarak, FIFO ezamanl olmayan uygulamalarda kullanlan nemli bir elemandr. Aada 2 adet 4-bitlik hzl bellekten oluan FIFO yaps rnek olarak verilmitir.

rnek yap 2 4-bitlik kelimeyi saklayabilmektedir. Kelimelerdeki bit says hzl bellekteki bit says arttrlarak, saklanacak kelime says ise hzl bellek says arttrlarak arttrlabilir. FF'ler Fi, i=1,2 olarak gsterilmi olup, kontrol hzl bellekleri verinin hareketini salar. Fi=1 4-bitlik verinin R(I) belleine aktarlmasn salar. Her ne zaman Fi=1 ve F'i+1=1 olduunda, saat darbesi R(I+1) bellei R(I) dan veri kabul etmesine neden olur. Ayn saat darbesinde Fi+1 1 ve Fi da 0 olur. Bu ise kontrol bayrann veri ile birlikte 1 bit saa hareket etmesini salar. Bylece dalgack eklinde bir veri hareketi olumu olur. Ana temizle (master clear) tm kontrol belleklerini 0 yapar.

105

Veri nbellee "giri hazr" iareti aktive edilerek verilir. Bu ilk FF F1'in reset edilerek, bo olduunun bildirilmesiyle oluur. Veri R1 hzl belleine "veri gir" (insert) kontrol hatt uyarlarak girilir. Ayn saat darbesi F1'i set yaparken, "giri hazr" kontrolnn aktivasyonunu kaldrr ve FIFO'nun o an megul olduunu belirtir. Yana aktarma (ripple through) ilemi R2'nin bo olmas ile balar. R1'deki veri R2'ye aktarlp, R1 temizlenir. Bu ise " giri hazr" hattn aktive ederek R1'in yeni gelecek veri iin hazr olduunu gsterir. FIFO dolu olduunda ise F1 set durumunda ve "giri hazr" ise 0 olarak kalr. ki kontrol iareti "giri hazr" ve "veri gir" alcnn balatt "el-skma" ilemini oluturmu olurlar. Hzl bellekten gelen veri k ucunda toplanr. "k hazr" kontrol iareti F2 (genel olarak N kelimelik FIFO iin FN)'de verinin hazr olduunu belirtir. R2 k alc u tarafndan alndktan sonra "sil" aktive edilir. Bu F2'yi reset eder, ayn zamanda "k hazr" deaktive edilir ve kta verinin hazr olmad belirtilmi olunur. Yalnzca "sil" iaretinden sonra R1'deki veri R2'ye kaydrlr. Eer FIFO'da veri yoksa R1'de veri olmayaca iin R2 reset durumunda kalacaktr. "k hazr" ve " sil" kontrol iaretleri kaynak tarafndan balatlm "el-skma" ilemini oluturmu olurlar.

4.4. GR ve IKITA KULLANILAN TRANSFER MODLARI


D dzenlerden alnan bilgi daha sonra yaplacak veri ilemleri iin ana bellekte saklanr. Bilgi ana bellekte iken CPU komutlaryla ilenebilir. D dzenlerden bilgi transferinin deiik modlar vardr:

4.4.1.Dorudan Bellek Eriimi


Dorudan bellek eriimi (DMA) ynteminde bellek hat grubu kullanlarak veri ana bellekten okunur veya ona yazlr. DMA ilemi CPU tarafndan balatlr. Bu srada CPU transferin balang adresini ve transfer edilecek kelime saysn salar ve ilemi balatr. Transfer srasnda DMA bellek hat grubu yoluyla bellek zaman ister (memory cycles). Bu bellek kontrolr tarafndan verilince DMA veriyi dorudan ana bellee gnderir. CPU hz d dzenin hzndan daha fazla olaca iin DMA transferleri daha az kullanlr. Gnmzde pek ok bilgisayar balant lojii gereksinimleriyle DMA istemlerini IO ilemcisi (input-output processor: IOP) ad verilen dzende toplar. IOP pek ok perifer dzeni DMA ve kesinti prosedr yoluyla bir arada ynetir. Bu tr sistemlerde bilgisayar ayr modle blnmtr:

106

4.4.2. Program Kontroll I/O


Program kontroll I/O bilgisayarda transfer I/O komutlar yoluyla olur. Her veri transferi programdaki komutlarla balatlr. Genellikle transfer, CPU'daki hzl bellek ile perifer dzen arasnda olur ve sonra ana bellee aktarm salanr. Program kontroll transferde perifer dzenin srekli izlenmesi gerekir. Veri transferi balatldktan sonra tekrar yaplp yaplmayacann izlenmesi nem kazanr. Program kontroll I/O'da, CPU perifer dzen transfer iin hazr olduunu bildirene kadar srekli bir evrim ierisinde bulunur. Bu gereksiz yere ilemciyi megul tutmaktr. Bu durumdan "kesinti prosedr" kullanlarak saknlabilir. Kesinti ileminde kesinti bayra ve komutlar izlenerek, normal koullarda ilemci kendi programn kotururken kesinti balatldnda kesinti prosedryle I/O ilemini yapmaya balar. Kesinti I/O dzeninden gelecek veri hazr iaretiyle balatlr. I/O ilemini bitirdikten sonra, ilemci kendi serbest rutinine dner. Program kontroll I/O metodunda, I/O dzeni ana bellekle dorudan balantya sahip deildir. Veri transferi birka I/O komutunun koturulmasyla salanr. Bunlar verinin I/O dzeninden alnp, ana bellee saklanmasn salar. Transfer srasnda, verinin hazr olduunu bildiren ve transfer edilen kelimelerin saysn sayan komutlar da gereklidir. Aadaki ekilde CPU ile I/O dzeni arasnda veri transferi salayan rnek sistem gsterilmitir. Dzenler hazr olunca veri baytlar halinde transfer edilir. 1 bayt veri hazr olduunda, d dzen onu I/O hat grubuna yerletirir ve veri geerli iareti yaynlar. CPU veriyi kabul edip, veri kabul hattn aktive eder. Balant durum belleindeki F bayran set eder. Dzen veri geerli hattn deaktive eder. Yeni veri gelene kadar sistem bekler. Bu "el-skma" ilemidir.

Bir program ile durum belleindeki F bayra kontrol edilerek verinin veri belleine yerletirilip yerletirilmedii kontrol edilir. Bunun iin durum bellei CPU'ya aktarlr ve okunur. Eer F=1 ise CPU veri belleindeki veriyi okur. Sonra F biti temizlenir. Bu ilem balantya gre CPU veya d dzen tarafndan yaplr. Sonra tekrar yeni veri transferi ilemine balanabilir.

4.4.2.1. D Dzen Tarafndan Yaplan Transfer


D dzenin gnderdii bayt'n transferi iin komut gereklidir:

107

Her bayt CPU'ya okunur sonra da ana bellee saklanr. Program kontroll I/O kk, dk hzl bilgisayarlarda srekli izleme ile uygulanabilir. Fakat CPU ve d dzen arasndaki hz fark nedeniyle ok verimli deildirler.

4.4.3. Kesinti ile Balatlan I/O


CPU'nun srekli olarak bir bayra izleyip I/O yapmasna bir alternatif ise veri transfere hazr olduunda ilemciye bildirilmesidir. Bu I/O modu kesinti ilemini kullanr. Normal koullarda ilemci program koturuyorken bayra kontrol etmez, bayrak set edildiinde CPU annda bayra kontrol edip koturulan programa bayran set edildiini haber verir. CPU koturduu programdan ayrlp, I/O veri transfer ilemine balar. Bu veri transferi bittikten sonra eski programn koturmaya devam eder. CPU kesinti iaretine, (o andaki PC adresini yna (stack) atarak) I/O transferinde kullanlan servis rutinine dallanmasyla cevap verir. Dallanma adresinin seimi bir servis rutininden dierine fark eder. Kesinti iareti aadaki gibi iki trl adlandrlr.

4.4.4. Yazlm zellikleri

I/O rutinleri kontrol kelimeleri kullanarak ilemci ve perifer dzenleri aktive ederler ve perifer dzenin durumunu kontrol ederek veri transferine uygun olduu zaman belirlerler. Hazr iareti alndnda veri kelime kelime transfer edilir. Bu srada kontrol kelimeleri (manyetik eridi durdur vb.) ve hata kontrol gibi admlarda kullanlr. Kesintikontroll I/O 'da, bir bayrak set edilerek kesinti rutini balatlr. DMA transferinde ise I/O yazlm DMA kanaln balatr. I/O dzeninin yazlm ile kontrol karmak bir ilem olduu iin, bu yazlm yapmc firma tarafndan salanr.

108

4.5. NCELKL KESNT ve ETLER


CPU ile I/O dzeni arasndaki veri transferi CPU tarafndan balatlr. Fakat I/O dzeni hazr olmadka CPU bu ileme balayamaz. D dzen transfere hazr olduunu bir kesinti iaretiyle bildirir. Tipik bir uygulamada birka I/O dzeni bilgisayara bal olabilir. Bu nedenle bilgisayarn kesintinin kaynan belirlemesi ilk ii olacaktr. Dier taraftan ayn zamanda birden ok d dzen kesinti istemise hangisinin ncelikli olduunu sistemin belirlemesi gerekir.

Ayrca sistem hangi koullarda kesinti yaplacan belirler. ncelikli kesinti seviyeleri, gecikme veya kesinti durumunda, sonularn nemine gre belirlenir. Bilgisayar, ayn anda kesinti istemi iki cihazdan, ncelii olana ilk servisi verir. Ayn anda yaynlanan kesinti istemlerinin nceliinin belirlenmesi yazlm veya donanm yoluyla yaplr. Bir "ncelik belirleme" (polling) ilemiyle en ncelii olan kesinti "yazlm" yoluyla belirlenir. ncelik belirleme metodunda genel bir dallanma adresi kullanlr. Bir program ncelikli dallanma adreslerine gre kesinti isteyen adresleri srayla kontrol eder. Bu ilem bir ncelik srasna gre yaplr. En ncelikli kesinti kayna kontrol edilir, eer kesinti iareti "1" ise kontrol o servis rutinine dallanr. Aksi halde, bir dk seviyeli kesinti kayna kontrol edilir. Bu metodun temel dezavantaj ncelik kontrol iin harcanan zamann kesinti servisi iin harcanan zamandan fazla olabilecei durumlarn sz konusu olmasdr. Bu durumda donanm ncelikli kesinti kullanlarak ncelik seme sreci hzlandrlabilir. Donanm ncelikli kesinti birimi genel bir ynetici olarak ilem grr. Pek ok kesinti kaynandan kesinti istemlerini alr ve hangisine ncelikle servis verilmesine karar verir. Bu ilemi hzlandrmak iin her kesinti kayna kendi "kesinti vektrn" gnderir. Herhangi bir ncelik belirleme sz konusu deildir. Donanm kesinti ncelik fonksiyonu seri veya paralel balantlarla salanr. Seri metoda "papatya-zincirlemesi" (daisychaining) ad verilir.

4.5.1. Papatya-Zincirlemesi Metodu


Papatya-zincirlemesi balants kesinti isteyen dzenlerin seri olarak balant kurmasyla oluur. En yksek ncelii olan dzen en ne yerletirilir. Daha sonra gelen her bir dzenin ncelii bir ncekine gre bir dk olur. Aadaki ekilde d dzenin papatya-zincirlemesi balantsyla CPU'ya balanmas gsterilmitir.

109

Btn d dzenlerin kesinti istemleri bir lojik balama edeeriyle (negatif OR kaps) CPU'ya iletilir. Herhangi bir kesinti istemi yoksa hat yksek-seviyededir. Eer bir dzen kesinti isteminde bulunursa, "kesinti istek" hatt dk seviyeye geer. Kesinti istemi CPU'ya ulatnda, o "kesinti onaylama" hattn aktive ederek cevap verir. Bu iaret birinci d dzen tarafndan ncelik giriinde (PI: priority in) karlanr. Eer birinci dzen kesinti istemise, ncelik k (priority out:PO)'a 0 yerletirerek, onaylama iaretini bloke eder. Kendi "vektr adresini" (VAD) CPU'ya gndermek iin veri hat grubuna koyar ve kesinti ileminin balamasn salar. ncelik sras balantya gre belirlenmi olduu iin kesinti istemine kar kesinti onay balant lojii yoluyla cihazlardan geerek kesinti isteminin sahibini bulur. Eer cihaz kesinti istememise PO kna 1 gndererek dier cihaza 1 gnderir. Bylece dier cihazn kesinti isteyip istemedii belirlenir. Papatyazincirlemesinde, cihaz birinci posizyondan uzaklatka ncelii azalr.

4.5.2. Papatya-Zincirlemesi Balantsnn Lojik Yaps


Aadaki ekilde papatya-zincirlemesi balantsnda her cihazn i lojik yaps gsterilmitir. Cihaz kesinti istediinde RF FF'sini 1 yaparak CPU'ya bildirir. Ak-kolektr (open collector) dzenlemesi yoluyla genel kesinti hattna bal olduundan CPU bunu renir ve "kesinti onaylama" hattn 1 yapar. Kesinti istemeyen cihazn RF FF'yi 0 deeri alacandan PI=1 olsa da P0=1 olup, VAD deaktive olacaktr. Bu durumda onaylama iareti ncelii daha sonra gelen cihaza aktarlacaktr. Eer RF=1 olduunda PI=1 ise, P0=0 olup VAD veri hat grubuna aktarlacaktr. Bylece her cihaz kendi vektr adresini hatta koyacak, CPU bu adresi aldktan sonra RF'yi reset edecektir.

110

4.5.3. Paralel ncelikli Kesinti


Paralel ncelikli kesinti metodunda her bir d cihazn iaretleri "kesinti belleinin" bitlerini set eder. ncelik kesinti belleindeki bit posizyonuna baldr. Dier taraftan "maske bellei" kullanlarak ncelikli cihazn kesinti servisi srasnda daha az ncelii olan cihazn kesintisi deaktive edilir. Aadaki ekilde drt kesinti kaynann ncelik lojii gsterilmitir.

Kesinti ve maske bellekleri AND kaps ile "ncelik enkoderine" (PE: priority encoder) balanmtr. Kesinti belleinin bitleri d cihazlar tarafndan set edilir, kesinti program komutlar tarafndan reset edilir. ncelik enkoderinin maskelenmi cihaza kar den biti 1 olur ve PE VAD'nin 2 bitini oluturarak CPU'ya gnderir. PE'nin dier girii kesinti durum biti IST (interrupt status) set eder. Kesinti onayla IEN biti (IEN: interrupt enable) kesinti sistemini kontrol eden program tarafndan set veya reset edilir. CPU kesinti olduu bilgisini IST ANDed IEN iaretleriyle alr. CPU'dan gelen kesinti onaylama iareti INTACK yoluyla VAD'nin veri hat grubuna yklenmesini salar.

4.5.4. PE Doruluk Tablosu


PE devresi aadaki tabloda gsterilen ncelik fonksiyonunu gerekletirir. Ayn anda gelen birden ok sayda giri iaretinden en ncelii olan ilk servisi alr. I0, I1, I2 ve I3 bitlerinden ncelik srasna gre dierleri ne olursa olsun I0 en ncelii, I1 daha sonraki ncelii alr ve dierlerinin ncelii sonra gelir.

111

4.5.5. Kesinti Faz


Her komutun koturma faznn sonunda CPU, IEN ve IST iaretlerini kontrol eder. Her iki iaret de 0 ise, kontrol sonraki komuta geer. Eer her ikisi de 1 ise kesinti faz balar. Kesinti faz srasnda aadaki mikroilem dizisi koturulur: SP <= SP - 1 Yn gsterici 1 azaltlr. M[SP] <= PC PC yna atlr. INTACK <= 1 Kesinti onaylama set edilir. PC <= VAD Vektr adres PC'ye transfer edilir. IEN <= 0 Dier kesintiler deaktive edilir. Sonraki komutu alma fazna geilir.

CPU dn adresini yna aktarr, INTACK ile kesinti istemini onaylar. PE devresi VAD'yi veri hat grubuna gnderir, CPU bunu PC'ye ynlendirir ve sonraki komuta gemeden nce IEN'i temizler. Bilgisayar yazlm (servis) rutinleri yoluyla kesinti istemlerine servis verir ve kesinti donanm belleklerini kontrol eder. Herhangi bir servis rutinine VAD'de bulunan JMP komutu ile eriilebilir. Sembolik rutin ad programn balama adresini belirtir. Yn ise kesinti program koturulduktan sonraki dn adresini saklar. Aadaki ekilde kesinti servisleri iin kullanlan programlarn ana bellekte saklan ema ile gsterilmitir.

112

4.5.5.1 Fazlalk (Overhaed) ve Dzen Salama (Housekeeping Chorus) lemleri


Her kesinti servis rutini, kesinti donanmnn hzl belleklerini "balang" ve "sonu" ilem dizisiyle kullanr. Kesinti servis rutinini kullanrken aadaki balang ilem dizisi gereklenir:

En yksek ncelikli cihaza kesinti hakk tanmak iin daha az ncelikli cihazlarn maske belleinin yksek ncelikli bitleri belirlenir. Sonra ncelikli kesinti ilemi balar. lemci belleklerinin ierikleri saklanr, IEN 1 yaplr ve bilgisayar servis rutinini koturmaya balar. Kesinti rutini tamamlandktan sonra aadaki sonu ilemleri yaplr:

Yeni kesintilerde yeniden kullanlabilmesi iin kesinti belleinde gerekli bit reset yaplmas gerekir ve IEN biti temizlenir. lemci bellekleri eski ieriklerine dndrlr. Maske belleinin daha dk ncelikli bitleri 1 yaplarak kesinti balatlmas salanr. PC'nin eski deeri tekrar salanarak programa dn yaplr ve IEN biti set edilir. IEN bitinin bata

113

temizlenip, ilemler sonunda set edilme nedeni 2 ve 5 admlar arasnda ilemcinin herhangi bir kesinti kabul etmesini nlemektir. Bir kesintinin kabul edilmesi dn adresinin kaybolmasna neden olabilir. Yukarda tanmlanan "balang ve sonu" admlar "fazlalk" ilemleri (overhaed operations) ve "dzen salama ilemleridir" (housekeeping chorus). Kesinti ilemini yapan servis programnn bir paras deillerdir.

4.6. DORUDAN ANA BELLEK BALANTISI (DIRECT MEMORY ACCESS: DMA)


Dorudan ana bellek balants (DMA) hzl saklama dzeniyle CPU arasndaki veri transferinin daha hzl olmasn salamak iin, perifer dzenin ana bellek hat grubunun kontroln CPU'dan devralarak transfer ilemi yapmasdr. CPU'yu bo duruma getirip ana bellek hat grubunun ynetimini almann eitli yollar arasnda sklkla kullanlan bir yol, hat isteme (bus request: BR) ve hat verme (bus granted: BG) giri ve klarnn kullanlmasdr. Aadaki ekilde DMA iin kullanlan CPU iaretleri gsterilmitir.

BR girii DMA kontrolr tarafndan CPU'nun hat grubunu brakmas iin kullanlr. CPU hali hazrda koturduu komutu bitirir, veri, adres hatlar ve okuma ve yazma hatlarn yksek empedans (high impedance) durumuna geirir. Yksek empedans durumu "ak devre" gibidir, yani CPU'nun hat gruplaryla balants kalmaz. CPU BG iaretini gnderir ve hatlarn kontroln DMA brakr. DMA ana bellek transferleri iin bu hatlar kullanr, ilem bittikten sonra BR hatt deaktive edilir, buna karlk CPU BG hattn deaktive eder ve tekrar normal ilemlere dnlr. DMA ile ana bellek arasndaki transfer "ykl transfer" (burst transfer) ve " zaman alma" (cycle stealing) yntemleriyle yaplabilir. "Ykl transfer" metodunda DMA cihaz tm veriyi, veri hat grubu zerinden youn bir ekilde geirerek transferi gerekletirir. Bu transfer modunda hzl dzenlerin kullanlmas gerekir, veri transferinin yavalatlmas veya durdurulmas mmkn olamaz. "Zaman alma" metodunda DMA kontrolr CPU'dan hat gruplarn devralarak 1 kelime transfer eder ve sonra tekrar hat grubunu CPU'ya devreder. CPU ilemlerini sadece bir ana bellek zaman kadar geciktirmi olur, 1 ana bellek zaman "alnm" denilir.

4.6.1. DMA Kontrolr


DMA kontrolrnn CPU ve I/O dzeni ile haberlemesi iin zel devreler gerekir. Aadaki ekilde DMA kontrolrnn blok diyagram gsterilmitir.

114

DMA kontrolr CPU ile veri hat grubu ve kontrol hatlar yoluyla haberleir. DMA adres hat grubu, DS (DMA se) ve RS (hzl bellek se) ular yoluyla CPU balantsn salar. ki ynl RD (oku) ve WR (yaz) ular verinin transfer ynn belirler. BG (hat ver) =0 olduunda CPU DMA belleklerinin ieriini okuyabilir veya onlara yazabilir. BG=1 olduunda DMA, RD veya WR ularnn tayin ettii yne gre ana bellek ile adres hatlarnda belirlenen adres yoluyla balant kurar. DMA ve d cihaz balants ise "DMA istek" ve "DMA onaylama" hatlar yoluyla "el skma" prensibine gre salanr.

4.6.2. DMA Kontrolrnn Bellekleri


DMA kontrolrnn bellei vardr:

115

DMA CPU tarafndan balatlr. Balama prosedr DMA belleklerini seen ve I/O komutlarndan oluan bir programdan ibarettir. Sonra veri transferi balar ve tm veri blou transfer edene kadar devam eder. CPU DMA'y aadaki bilgiyi gndererek balatr:

Balang adresi adres belleinde saklanr. Kelime says kelime-sayma belleinde ve kontrol bilgisi de kontrol belleinde saklanr. DMA ilemi baladktan sonra, CPU ya kesinti nedeniyle veya transfer edilen kelime saysn renmek iin ilemi durdurabilir.

4.6.3. DMA Transfer


Aadaki ekil bilgisayar sisteminde DMA transferini gsterir.

DMA ilemlerinin balamas iin CPU, DS ve RS (DMA kontrolrnde) ularn adres hatlaryla seer ve veri hatlaryla DMA ilemini balatr. DMA kontrolr balat komutunu aldktan sonra, CPU ile perifer dzen arasnda veri transferini balatr.

116

Perifer cihaz DMA istemi gnderdiinde, DMA kontrolr BR ucunu aktive ederek CPU'dan hat gruplarn brakmasn ister. CPU BG ucuyla DMA kontrolrne hatlar braktn belirtir. Sonra DMA adres deerini adres hattna verir, RD veya WR iaretini oluturur ve perifer cihaza DMA onaylama iaretini gnderir. RD ve WR hatlarnn iki ynl olduuna dikkat edilmelidir. Yn BG =0 ise CPU'nun DMA bellekleriyle balant kurmasn salar. BG=1 ise DMA'nn RD ve WR ular RAM'den (random access memory) okuma veya yazma ilemine gre veri alnp verilmesini salar. Perifer cihaz DMA onaylama iareti aldnda veri hatlarndan veri alr (okuma) veya veri verir (yazma). DMA okuma ve yazma ilemlerini kontrol eder ve ana bellek adresini temin eder. Perifer cihaz ve ana bellek veri hat grubu vastasyla veri alveriinde bulunur. Her transfer edilen kelime iin adres bellei 1 arttrlr, kelime-sayma bellei ise 1 azaltlr. Kelime saysnn 0 olmad durumlarda DMA perifer cihazdan gelen istem hattn kontrol eder. Perifer cihazn hzna gre transfer biter bitmez bu hat tekrar aktif olur (yava cihazlarda ksa bir bekleme sreci olabilir). Yava periferlerin oluturduu beklemeler srasnda CPU normal komut koturma ilemine devam edebilir. Kelime says 0 olduunda DMA BR istemini kaldrr ve transfer durur. CPU'da ilemin bittiini kesinti ilemi olarak bildirir. CPU kelime-sayma belleinin ieriini okuyarak bu kesintiye cevap verir. Eer ierik 0 ise transfer ilemi baaryla bitmi olur. Ayrca CPU herhangi bir zamanda transfer ileminde aktarlan kelime saysn okuyabilir. DMA kontrolrnn birden ok kanal olabilir. Her kanaln istem ve onaylama kontrol iaretleri ayr olur. Ayrca her kanaln adres ve kelime sayma bellekleri vardr. Kanallar aras ncelik oluturulabilir. Yksek ncelikli kanala nce servis verilir. DMA byk veri miktarlarnn bilgisayara hzl olarak aktarlmasn salayan yararl bir yntemdir. eitli uzun video, grnt, sensr ve ses verileri bu yntemle ksa srede bilgisayara aktarlabilir.

4.7. GR-IKI LEMCLER ve ZELLKLERNN TANITILMASI


CPU'nun her bir d balant ile uramas yerine, bilgisayarlar bir veya daha fazla sayda d ilemci kullanarak I/O dzenleriyle haberleme salayabilirler. Giri-k ilemcisi (input-output processor: IOP) CPU'nun benzeridir, grevi sadece giri ve k ilemlerini grmektir. CPU'nun komutlaryla alan DMA'nn tersine, IOP kendi komutlarn koturur. IOP I/O transferlerini gereklemek zere retilmitir fakat dier devleri de yapabilir: aritmetik, lojik, dallanma vs. Aadaki ekilde de bilgisayarda CPU ve IOP'n blok diyagram gsterilmitir. Ana bellek ortada yer alm olup, her iki ilemciyle DMA anlamnda haberleebilir. CPU hesaplama ilemlerinin sonucunun elde edilmesinden sorumludur. IOP ise I/O dzenleri ve ana bellek arasndaki veri transferinden sorumludur.

117

CPU genellikle I/O ileminin balamasn salar, sonra IOP CPU'dan bamsz veri transfer ilemini gerekletirir. Perifer dzenlerin veri formatlar ile ana bellek ve CPU'nun veri formatlar farkl olabilir. IOP veriyi bilgisayar formatna getirip hazrlarken, CPU kendi komutlarn koturabilir. IOP veriyi CPU formatna getirdikten sonra " zaman alma" (cycle stealing) yntemiyle CPU komut koturma fazlarndan zaman alarak ana bellee transfer edebilir. CPU ve IOP arasndaki haberleme bilgisayar yapsna bal olarak deiebilir. Bu bilgisayar tasarmnn baarsna gre deiebilir. Gnmzde pek ok bilgisayarda CPU efendi (master), IOP ise kle ilemci konumundadr. CPU btn ilemlerin balatlmas grevini stlenir. IOP ise I/O komutlarnn koturulmasn stlenir. CPU giri-k komutlarnn balatlmasn ve I/O durumunun test edilip gerekli I/O kararlarn alnmasn salar. IOP ise kesinti ilemiyle CPU'nun dikkatini ekebilir.

4.7.1. CPU ile IOP Haberlemesi


Deiik CPU ve IOP haberleme ekillerinden en yaygn olan iin aada grlen blok diyagram gsterebiliriz.

118

lem dizisi ak diyagramyla gsterilmitir. CPU, IOP yoluna komut gnderir. IOP ana bellee CPU'nun okumas iin "durum kelimesi" gnderir. Durum kelimesinin bitleri I/O dzeninin durumunu gsterir. Bu durumlar "IOP youn" (IOP overload), "transfer iin d cihaz megul" veya "transfer iin d cihaz hazr" olabilir. CPU bu durum kelimesine gre ne yaplacana karar verir. Her ey yolunda ise CPU veri transferinin balatlmas iin komut gnderir. Bu komuttaki adresi kullanarak IOP giri-k programnn yerini bulur. CPU kendi programn kotururken IOP'de I/O programyla meguldur. IOP transferi tamamladktan sonra CPU'ya kesinti istemini bildirir. CPU gnderdii komut ile IOP'nin durumunu renir. Transferin baaryla bitirilip bitirilmedii ve hatalarn ne olduunu bu durum kelimesinden renmek mmkn olur. IOP deiik veri tiplerinin transferini salarken CPU kendi programn koturur. IOP ve CPU ana bellek kullanm iin yarrlar. Ana bellee eriebilecek I/O dzenlerinin says ana bellek "eriim zaman" ile kstldr. Pek ok I/O dzeniyle ana bellek eriimini doyuma ulatrmak uygun olmaz.

Blm zeti
Bu blmde saysal bilgisayarn d dnyadan veri alp vermesini salayan giri-k alt-sistemi anlatlmtr. Bilindii gibi programlar ve veri bilgisayarn belleinde sakl olarak durmakta ve istenildii zaman kullanc tarafndan koturularak, sonular elde edilebilmektedir. Bilgisayarn faydal bir ama iin kullanlabilmesi ancak giri ve k dzenleri yoluyla d dnyadan veri alveriinde bulunmasyla salanr. Bu blmde giri-k balantlar, ezamanl olmayan veri transferi anlatlarak ncelikli kesinti, dorudan bellek balants konularna deinilmitir. Giri-k ilemcileri ve seri haberleme konularyla blm tamamlanmtr.

119

120

121

122

123

124

125

126

127

128

129

130

ANA BELLEK ORGANZASYONU


Bu blmde ele alnacak olan konular aadaki gibi sralanabilir: Bellek hiyerarisi Ana bellek Yardmc bellek Assosiyatif bellek Ara bellek (cache memory) Sanal bellek Bellek dzenleme donanm

Blm Hedefi
Bu haftalarda ana bellek organizasyonu zerine younlap eitli bellek tiplerini rneklerle aktaracaz. Bilgisayarn temel donanm paralarndan biri olan bellek parasn eitleri ve kullanm yerleriyle tantacaz. Gnmz bilgisayarlarnda ana bellek program ve veri saklamak iin kullanlan ksmdr. Ana bellekte saklanan veri, program komutlar yardmyla ilenir ve sonular tekrar oraya saklanr. Bu blmde bellek yaplarn tartp bilgisayar yapsndaki kullanm yerlerini belirleyeceiz.

5.1. BELLEK HYERARS


Genel amal bilgisayarlarda ana bellek CPU ile dorudan haberleen bellek parasdr. Yedek saklama kapasitesi salayan cihazlara yardmc bellek ad verilir. En sk kullanlanlar manyetik disk ve erittir. (gnmz teknolojisindeki CD ve DVDler) Yardmc bellekler sistem programlar, geni veri dosyalar ve dier yedek bilgi iin kullanlrlar. Kullancnn yazd tm programlar ve veri ana bellekte saklanr, gerektii zaman yedek bellekten istenen veri ve programlar ana bellee tanabilir. Manyetik Disk

5.1.1. Tipik Bellek Hiyerarisinin Elemanlar


Bilgisayar tarafndan kullanlan bellek elemanlarnn yavatan hzlya, yksek kapasiteliye doru kullanm bellek hiyerarisini oluturur. Aadaki ekilde tipik bellek hiyerarisinin elemanlar gsterilmitir.

131

Bellek hiyerarisinin en altnda yava manyetik eritler yer alr. Burada saklanan dosyalar ana bellekte kullanlmalar gerektiinde buradan alnrlar. Manyetik diskler yedekleme birimi (backup memory) olarak kullanlrlar. CD ve DVDlerin bilgisayarda veri depolama iin kullanmlar biraz buna benzer. Ana bellek, bellekler arasnda merkezi konumda olup, CPU ve IOP yardmyla yedek belleklerle haberleir. ok zel bir bellek ise ara belek (cache memory) olarak adlandrlr. Hz arttrmak iin halihazrda kullanlmakta olan programlarn ve verinin CPUya hzl bir ekilde aktarmn salar. CPU lojiinin hz ana bellekten daha fazladr. Temel olarak ilem hz ana bellee eriim hzyla snrldr. ki farkl ilem hzn birbirine uydurmak iin kullanlan bir teknik kk arabellein CPU ile ana bellek arasnda kullanlmasdr. Ara belek, programlar ve veriyi CPUya daha hzl bir ekilde sunarak bilgisayarn performansn arttrr. IOP manyetik disk ve erit gibi bellek dzenleriyle ana bellek arasndaki veri transferini salarken, ara bellek ana bellek ile CPU arasndaki veri transferini salar. Her birisi iki farkl seviyede hiyerariyi oluturur. ki farkl seviyede veri depolanmasnn kullanm nedeni tamamen ekonomiktir. Hzl belleklerin bilgi kapasiteleri arttka fiyatlar da artar. Dier taraftan yardmc bellekler daha hzl olur. Tm sistem olarak bellek hiyerarisinin amac en yksek bellek eriim hzn en dk maliyetle elde etmek olarak tanmlanabilir.

5.1.2. Yedek ve Ara Bellekler


Yedek ve ara bellekler farkl amalar iin kullanlrlar.

CPUnun ara bellee dorudan eriimi olduu halde yedek bellee IOP yoluyla eriimi sz konusudur. Yedek bellekten ana bellee transfer, byk veri bloklarnn DMA ile tanmasyla yaplr. Tipik ara ve ana bellek oran 1e 7dir. rnein ara bellein eriim

132

zaman 100 ns ise ana belleinki 700 ns'dr. Yedek bellein eriim zaman ana bellee gre 1000 kere daha fazladr. Yedek bellein blok bykl 256dan 2048a kadar deiirken ara bellek bykl 1 ile 16 kelime arasndadr.

5.1.3. okluprogramlama (Multiprogramming)


Bugn pek ok iletim sistemi CPUnun bamsz programlar ayn zamanda koturmasn salayacak ekilde tasarlanmtr. Bu kavrama okluprogramlama (multiprogramming) ad verilir. Bu ekilde bilgisayarn hemen hemen btn paralarn megul tutmak mmkn olur. okluprogramlamada bir program I/O ilemleri iin urarken dier bir program CPUyu kullanarak koturulabilir.

okluprogramlama tekniinde ksmi programlar koturma ihtiyac doar. Ana bellek tm programlarn koturulmas iin yetmez. Belli bir hiyerari iersinde yardmc bellekten alnarak belli bir bilgi ak ierisinde koturulmas uygun olur. Bilgisayarn ana ve yardmc bellekler arasnda bilgi alveriini dzenleyen ksm bellek dzenleme sistemi (memory management system) adn alr.

5.2. ANA BELLEK


ROM Krm Ana bellek bilgisayarn merkezi ksmdr. Program ve verinin sakland bal olarak hzl ve geni bellek parasdr. Gnmz kiisel bilgisayarlarnda Gbaytlar mertebesine ulamtr.

RAM Krm Ana bellekler, yariletken teknolojisiyle retilen olasl eriilebilen bellek (random access memory: RAM) krmklar (chip) olarak iki tipte retilirler: statik ve dinamik. Statik RAM yaps FFlerden oluur. Devreye g uyguland srece bilgi bu bellek yapsnda kalr. Dinamik RAM yapsnda bilgi elektrik yk eklinde

133

kapasitelere uygulanr. Kapasiteler MOS transistrlerin ierisindedir. Kapasitelerdeki yk zaman iersinde boalacandan, ierikleri periyodik olarak gncellenmelidir. Gncellenme her birka milisaniyede yk boalmaya yz tutunca yaplr. Dinamik RAM dk g tketimi olan yksek depolama kapasiteli bir bellek trdr. Statik RAM ise kullanm kolay ve hzl okunup yazlabilen bir yapdr. Pek ok bilgisayar yapsnda ana bellek yaps RAM tmdevrelerinden oluur, bellein bir ksm ise ROM ile oluturulur. Yalnzca okunabilen bellek (Read-only memory: ROM) RAMde olduu gibi olasl olarak eriilebilinen bellektir. RAM okunup yazlabilen bellek olduu halde ROM yalnzca okunabilir (veya teknolojisine bal olarak nadiren ierii deitirilir). ROM srekli kullanlan ve deimeyen (iletim sistemi, vs.) programlarn saklanmasn salar. Kullanlan dier programlarn yannda, ROM balama programn (bootstrap loader) saklar. Balama program bilgisayara g verildiinde balayan yazlmdr. RAM yaps volatil (g kesildiinde bellek ierii kaybolur) olduundan balama program ROMda saklanr. Bilgisayara g verildiinde donanm program saycy (PCyi) balama programnn ilk adresine kurar. Balama program iletim sisteminin bir parasn diskten

5.2.1. RAM Krmklar


RAM krm CPU ile daha iyi iletiecek ekilde eitli kontrol girileriyle donatlmtr. ki ynl veri hat grubu vastasyla CPU ile hem okuma hem de yazma ynnde iletiir. ki ynl hat grubu -durumlu nbellek (three-state buffer) elemanlarndan olumutur. -durumlu elemanlar durumdan birinde bulunabilir: lojik 1, lojik 0 ve yksek empedans durumu. Yksek empedans durumunda eleman ak devre olarak davranr veya k herhangi anlaml bir deer tamaz. Aadaki ekilde RAM krmnn blok diyagram gsterilmitir. Kk bir rnek olarak (512x8bit) kapasite incelenmitir. Krmk iin 9 bit adres ve 8 bit veri hat grubu gerekir.

Okuma yazma girileri ana bellek ileminin ynn ve iki CS krmk seim girii de mikroilemci tarafndan krmn seimini salar. Krmn fonksiyon tablosu yukarda gsterilmitir. CS1 = 1 ve CS2 = 0 iken krmk seilmi ve aktive edilmi olur. Dikkat

134

edilirse CS1 lojik 1'de, CS2 de lojik 0'da aktive edilir. Krmk seildikten sonra okuma veya yazma kontrol hatlarndan birisi aktive edilir. Bellek adres hat grubuyla seilen adresten 1 kelime veya bayt veri hat grubuna konulan 8 bit ierik yardmyla okuyabilir veya yazabilir. Bu ilemin iki-ynl olduuna dikkat edilmelidir.

5.2.2. ROM Krmklar


Aada ROM krmnn blok diyagram gsterilmitir.

ROM sadece okunabileceinden veri hat grubu okuma modundadr. RAM ile ayn byklkte bir ROM krm gsterilmitir. 9 adres hatt ROMda saklanm 512 kelimeden birini iaret eder ve bu kelime veri hat grubuna iletilir. CS1=1 ve CS2=0 ile krmk seimi salanr. Dier durumlarda hat yksek empedans konumundadr.

5.2.3. Bellek Adreslerinin Oluturulmas


Bilgisayarn tasarmcs tipik bir uygulamada kullanlacak RAM ve ROM miktarn belirler ve sistemin adreslemesi bir tablo yoluyla oluturulur. Bu tabloya bellek adres oluturulmas (memory address map) ad verilir. Aadaki tabloda 512 x 8 bitlik RAM ve ROM kapasitesi iin hazrlanm bellek adres oluturulma konfigrasyonu gsterilmitir.

Bileen stununda RAM ve ROM, onaltl adres konumunda ise verilen adres blgesi belirtilmitir. Adres hat grubunun alaca deerler ise nc stunda gsterilmitir. Toplam 16 hattan sadece 10 tanesi verilmitir. Geri kalan 6 tanesi 0 deerini almaktadr. Her adres hatt ayr ayr gsterilmi olup, x ile gsterilen hatlarn RAM ve ROM adres hatlarna balanmas gerekir. 128 baytlk RAM krmklarnn her biri iin 7 adres hatt

135

kullanlrken, ROM krm iin 9 hat kullanlmtr. Her iki yapda (4 RAM ve 1 ROM) eriilebilecek adres blgesi eit olup 512 olmaktadr. RAM ile ROM arasndaki fark ise bir dier adres hatt tarafndan yaplmaktadr. 10. hat "0" iken, CPU RAMi seer, ayn hat "1" iken ise ROMa eriir. Edeer onaltl gsterilimde ikili hat gruplarnn ald deerler 4lk gruplara blnp her bir grupta alnan deere kar den onaltl deer kullanlr.

5.2.4. Bellek ve CPU Balants


Aadaki ekilde RAM ve ROM bellekler ile CPU balants gsterilmitir.

136

RAM ve ROM bellekler adres ve veri hat gruplar vastasyla CPUya balanrlar. Dk mertebeden adres hatlar (rnein, 0dan 7ye kadar olanlar) krmk iersindeki adresleri semek iin, dierleri ise tmdevreleri semek iin kullanlrlar. ekildeki toplam RAM kapasitesi 512x8 bit olup, 2x4 dekoder ile her bir RAMi semek mmkndr. 2x4 dekoderin girileri 8 ve 9 nolu adres hatlarna baanm olup, 00 girii RAM1i, 01 girii RAM2yi,.. seer. ROM kapasitesi de 512x8 bit olup, tek bir tmdevre kullanlmtr. Mikroilemcinin RD ve WR klar her bir RAMin ayn adl girilerine uygulanmtr. RAMler ve ROM krmklarnn seimi 10 nolu adres hatt yardmyla yaplmaktadr. 10 nolu hat "1" olduunda RAMler, "0" olduunda ROMlar seilir. 1 ve 9 adres hatlar ROMun iersindeki adresleri semekte kullanlr. Bu balant yapsna gre 0 ile 511 arasndaki adresler RAM iin, 512 ile 1023 arasndaki adresler ise ROM iin kullanlr. ROMun veri hat grubu yalnzca veri kna, RAMlerin veri hat gruplar ise bilginin iki ynde transferine uygundur. Sonu olarak, yukarda tanmladmz rnek bellekCPU balants bu tr balantlarda hangi hatlarn kullanlacan gsterir. Daha ok sayda bellek balantsnda karmakln artacana fakat balant kurallarnn ayn kalacana dikkat edilmelidir.

5.3. YARDIMCI BELLEK


Manyetik disk Gnmz bilgisayar sistemlerinde genel olarak kullanlan yardmc bellekler arasnda en yaygn olanlar disk bellekler, manyetik teyp ve manyetik eritlerdir. Yardmc belleklerin alma prensibini anlamak iin optik, elektronik, manyetik ve elektro mekanik sistemler hakknda fikir sahibi olmak gerekir. Fiziksel zellikleri karmak olsa da, lojik zellikleri birka parametre ile karlatrlp, karakterize edilebilir. Bellek cihaznn en nemli karakteristikleri olarak eriim modu (access modu), eriim zaman (access time), transfer zaman (transfer rate), kapasitesi ve maliyeti saylabilir. Bellein belli bir adresine erimek iin gerekli ortalama zamana eriim zaman ad verilir. Disk ve eritler gibi elektromekanik sistemlerde eriim zaman aratrma zaman (seek time) ve transfer zamanndan oluur. Aratrma zaman, okuma-yazma kafasnn verinin bulunduu adrese ulamas iin gereken zamandr. Transfer zaman ise verinin bellekten transfer edilmesi veya bellee transfer edilmesi iin gereken sre olarak tanmlanr. Aratrma zaman transfer zamanndan ou zaman ok daha uzundur. Bu nedenle yardmc bellek kayt veya bloklar halinde dzenlenir. Okuma ve yazma kayt veya blok birimleri halinde yaplr. Transfer oran, transfer edilen karakter veya kelimelerin says cinsinden tanmlanr. Manyetik disk (disks) ve silindirler (drums) ilem bakmndan birbirine benzer. Her ikisi de hzl olarak dnen, manyetik malzeme kapl ortamlardr. Manyetik plakann dnen yz silindir, manyetik disklerin dnen yz ise dz bir tabakadr. Kayt yaplan yzey sabit bir hzla dner, eriim srasnda balatlamaz ve durdurulmaz. Bitler manyetik yzey zerinde noktacklar olarak yazma kafas denen mekanizmayla yazlr. Saklanan bitler ise okuma kafas denen mekanizma ile okunur. Diskler gnmz bilgisayarlarnda yksek kapasiteleri nedeniyle ok yaygndrlar. Gnmz bilgisayarlarnn bellek ykn tayan mekanizmalar disklerdir. Bunu on ve yz Mbaytlar mertebelerindeki DRAM (dinamik RAM) bellek kapasitelerine kar, on ve yz Gbayt kapasitelerindeki disklerden de karmak mmkndr. Maliyeti daha dk olan diskler nemli kapasite deerlerine erimektedirler.

137

5.3.1. Manyetik Diskler


Manyetik diskler, metal veya plastik dairesel bir tabakann manyetik madde ile kaplanmasndan oluur. Disklerin her iki taraf da kullanlmaktadr. Okuma/yazma kafalar vastasyla bilgi alverii mmkn olur. Diskler durmakszn dnerler ve bitler manyetik alana ayn eksendeki yollar (track) zerindeki noktalar vastasyla saklanrlar. Yollar sektr ad verilen paralara blnr. Pek ok diskte, transfer edilebilecek minimum bilgi miktar sektrlerdir. Aada manyetik diskin ematik yaps gsterilmitir.

Baz bilgisayarlarda disk yzeyinin yollar tek bir okuma/yazma kafasyla okunur. Bu tr sistemlerde yollarn adres bitleri kafay mekanik olarak gerekli pozisyona hareket ettirir, sonra okuma veya yazma ilemi yaplr. Disk sistemlerinde, her bir yolda ayr okuma/yazma kafalar mevcuttur. Adres bitleri elektronik olarak dekoder kndan gerekli okuma/yazma kafasna iletilir. Bu tr daha ok byk bilgisayarlarda kullanlr. Srekli zamanlama yollar vastasyla bitlerin senkronizasyonu ve sektrlerin tannmas yaplr. Disk sistem disk numarasn, disk yzeyini, sektr numarasn ve sektr iersindeki yolu adres bitleri vastasyla renir. Okuma/yazma kafas gerekli yola yerletirildikten sonra sistem dnen diskin belirlenen sektre gelmesini bekler. Sektrn bana eriildikten sonra bilgi transferi ok hzl olur. Diskin d kenarna yakn yollarn uzunluu merkezine yakn yollardan daha fazladr. Eit younluklu bitler diske saklanm olsayd, baz yollar daha ok bit depolayacakt. Btn sektrlerdeki kaytlar eit yapabilmek iin baz diskler deiken younluk kullanrlar. Merkeze yakn yollar yksek younlukta, kenara yakn olanlar ise dk younlukta olurlar. Bu yollardaki bit saysn eitler.

5.3.2. Manyetik Disk eitleri


Hard Disk Sisteme srekli olarak eklenmi diskler herhangi bir kullanc tarafndan karlamazlar ve katdisk (hard disk) adn alrlar. Bir disk src kullanlarak sisteme ilitirilenlere ise flopi disk ad verilir. Flopi diskler kk, karlabilen disklerdir. 3.5 in olanlar (1.2 Mbayt kapasitesinde) yaygn olarak kullanlmaktadr. Gnmzde flopi disk gibi yaygnlaan dier bir bellek ise CDlerdir. Her bilgisayarda flopi disk srclerinin yannda bir de CD srcler bulunmaktadr.

138

5.3.3. Manyetik erit


Manyetik erit manyetik malzeme ile kaplanm plastik bir erittir. Bilgi bitleri erit zerinde birka yoldan oluan noktalara saklanmtr. Genel olarak 7 9 kadar bit ayn anda saklanarak bir karakteri oluturur. Manyetik eritler balatlabilir, durdurulabilir, ileri veya geriye hareket ettirilebilirler veya tekrar sarlabilirler. Fakat teker teker karakterler iin durmalar yerine bloklar iin durmak daha uygun olur. Bloklar arasna aralklar eklenerek durma noktalar belirlenir. Manyetik erit

5.4. ASSOSYATF BELLEK


erikle adreslenen bellekler (content adressable memory-CAM) eitli veri ileme uygulamalarnda, bellekte tablo ierisinde saklanan bir elemannn bulunmas gerekir. rnein, bir assembler program sembol-adres tablosunda sembollerin ikili edeerini arar. Bir arama prosedryle istenilen elemann tablo iersinde aranmas mmkn olur. Tablo ierikleri adreslerde saklar. Verimli bir arama stratejisiyle istenilen eleman tablo iersindeki adreslerden karlatrma ile aranr. Bu karlatrma eitlik (match) olana kadar devam eder. Olasl (random) veya dizisel (sequential) eriilebilen belleklerde aranlan elemann bulunmas iin pek ok arama algoritmas mevcuttur. Eer bir eleman adres yerine, ieriiyle adreslenirse, arama zaman ok daha ksa olur. eriiyle adreslenebilen belleklere ierikle adreslenen bellekler (content adressable memory-CAM veya assosiyative memory) ad verilir. Bir kelime CAMe yazldnda herhangi bir adres verilmez. Bellek kullanlmam veya bo yerleri bulma zelliine sahiptir. Eitlik ile istenilen ierik bellekten aranr ve bulunduunda eriim salanm olur. Organizasyonu nedeniyle CAM paralel aramalar iin ok uygundur. CAM, RAMden daha pahaldr. nk her hcre hafza kapasitesinin yannda lojik adresleme kapasitesini de iermek zorundadr. Bu nedenle CAMin bilgisayarlardaki uygulamalar ok kritik ve ksa olur.

5.4.1. Donanm Organizasyonu


Assosiyatif bellein blok diyagram aada gsterilmitir.

139

Yap "m" adet "n" bit kelimeden oluan bellek dizisi ve lojikten oluur. Argman bellei A (argument register) ve anahtar bellei K (key register) "n" bitten oluur; uyum bellei (match register) M ise "m" bitten oluur. CAMdeki her kelime A'nn ierii ile karlatrlr, A'nn bitlerine uyan kelimeler M belleinin bitlerini set eder. Okuma M belleini set eden kelimelere dizisel eriimle salanr. K bellei Ann belli bir alan veya biti iin maske salamak amacyla kullanlr. Knn btn bitleri 1 ise, Ann tm bitleri karlatrma ileminde kullanlr. Aksi halde, Ann sadece K belleinde 1lere kar den ksmlaryla karlatrma yaplr. Bylece belli bir ksm veya tm kelimeler iin karlatrlarak uyan kelimelerin bulunmas salanr. Basit bir rnekle K belleinin ilevini gsterelim.

Yukardaki kelimelerin ilk 3 bitleri karlatrlrsa Kelime 2de uyum saland grlebilir.

5.4.2. Bellek Dizisi ve D Bellekler Arasndaki liki


Bellek dizisi ve d bellekler arasndaki iliki aadaki ekilde gsterilmitir. Bellek hcreleri Cij iki boyutlu koordinatlarla gsterilmitir. Cij i kelimesinin jinci bitini gsterir. Kj=1 ise Ann Aj biti o stundaki btn bitlerle karlatrlr (j=1, 2, ....n).

140

5.4.3. Assosiyatif Bellein Cij Hcresinin Yaps


Uyum salanan bitler Mi deerleri 1 yaplarak uyum bellei yoluyla gsterilmi olur. A belleinin ve assosiyatif bellein uyumlu olmayan bitleri M belleinin kar den bitlerini 0 yapar. Aada assosiyatif bellein Cij hcresinin i yaps gsterilmitir.

Cij hcresi bir FF eleman Fij ile okuma, yazma ve uyum iin gerekli ksmlardan oluur. Yazma ilemiyle bit deeri hcrede saklanrken, okumayla bit deeri darya alnr. Uyum lojii (match logic) assosiyatif bellekteki kelimelerle argman belleinde K belleindeki 1'ler (maske uygulamas) tarafndan seilenleri karlatrr ve sonucu M'deki bitlerle bildirir.

141

5.4.4. Uyum Lojii


Her kelime i iin A argman belleinin Aj= Fij (j=1, 2, ...,n) bitleri karlatrlr ve iki bitin eit olup olmadna karar verilir. Bununla ilgili Boole fonksiyonu Xj = Aj Fij + AjFij eklindedir. Karlatrlan bitler eit ise Xj=1, aksi halde Xj=0 olur. Tm Xj deerleri 1 ise kelime i, A belleindeki ierie eittir denir: Mi =x1 x2 x3.... xn i kelimesinin tm bitleri iin AND ilemi uygulanarak sonu alnr. Karlatrma iin gerekli lojik Kj biti Aj ve Fij bitlerinin karlatrmaya girip girmemesinde etkili olur. Kj=0 ise karlatrmaya gerek yoktur, Kj= 1 ise bu bitlerin karlatrlmalar gerekir, bylece Xj eer Kj=1 Xj + Kj = 1 eer Kj=0 Kj=1 olduunda karlatrma yaplan bitlerin etkisi vardr. Assosiyatif bellein kelimelerinden i iin uyum lojii aadaki Boole fonksiyonuyla gsterilir: Mi = (x1 + K1) (x2 + K2)... (xn + Mn) Eitlikteki her terim Kj=0 ise 1 olur ve tm terimler 1 ise bir uyum (match) salanm olunur. lk Xj tanmn Mi eitliinde yerine koyarsak, Mi = (Aj Fij + Aj Fij + Kj) terimlerinin j=1den nye kadar arpmlarn oluturmu oluruz. Mi fonksiyonlarndan her bir kelime iin bir tane olmak zere m tane yazmamz gerekir.

5.4.5. Okuma lemi


Eer birden fazla kelime argman alanna uyarsa, M belleinin tm uyan bitleri 1 olur. M belleinin uyan bitleri her bir kelime iin okuma hattna iaret gnderilerek, srayla taranr. Milerin 1 deerini alan bitleri uyan kelimelerdir.

142

Birok uygulamada eit terimler bulundurmayan tablolar vardr. Bylece sadece belirli pozisyondaki bir kelimenin uyduu tespit edilir. Bu durumda uyan kelime dorudan doruya kta gsterilebilir.

5.4.6. Yazma lemi


Assosiyatif bellek okumann yannda yazma ilemini de gereklemelidir. Uygulamalara bal olarak, daha nceden tm kullanlm olan bellein belirli bir adresine yazabilmek iin adres bilgisine ihtiya vardr. Bu durumda CAMa olasl eriim salanacaktr. Adres hatlar RAMde olduu gibi dekode edilmitir. CAMde m adres hatt yerine (her kelime iin 1 hat), d hat (m = 2d) kullanlabilir. Kullanlmayan ve yeni kelimeleri ayrt etmeye yarayacak yeni bir zel bellee ihtiya vardr. Buna etiket bellei (tag register) ad verilir ve CAMde bulunan kelime says kadar bite sahiptir. Aktif kelimeler iin bit deeri 1, silinen kelimeler iin ise 0 deerini alr. = bitleri yeni kelimeler iin kullanlabilecek adresleri belirler. Yeni kelime yerletirildikten sonra bit deeri 1 olur.

143

5.5. ARA BELLEK


ok sayda tipik programn analizi sonucunda, belli bir zaman aralnda ana bellek referanslarnn belli bir aralkta snrl olduu gzlenmitir. Bu olguya referanslarn yerellii (locality of references) ad verilir. Ksa bir srede tipik bir program gzlendiinde (evrimler ve alt rutin arma gibi komutlar v.s.) yerel bir ana bellek adres aralnda tekrar edecektir. Referanslarn yerellii olgusu deiik program tiplerinde ksa zaman aralnda gzlenen bir olgudur. Eer programn aktif ksmlar ve veri kk, hzl bir bellekte saklanrsa ortalama eriim zaman, dolaysyla programn koturulma zaman ksaltlm olur. Bu kk ve hzl bellee ara bellek (cache memory) ad verilir. Ara bellein temel fikri sklkla kullanlan komut ve verileri ara bellee aktararak program koturulmasna hz kazandrmaktr. Ara bellek ana bellein kk bir paras olup, programn byk bir paras ksa zamanlarda ara bellee aktarlarak hzl olarak koturulabilir. Ara bellein temel ilemi CPU ile ana bellek arasndaki eriimi salamaktr denebilir: CPU ana bellee erimek istediinde ara bellei kontrol eder. CPUnun arad kelime ara bellekte ise oradan alnr. Kelime ara bellekte yoksa ana bellee eriilerek oradan evresindeki kelime blouyla birlikte alnr. Blok bykl 1 kelimeden 16 kelimeye kadar deiebilir. Gelecek referanslarn ara bellekten alnmas daha byk olaslkla mmkn olduundan ilemlerin hz artm olur.

5.5.1. Ara Bellein Performans


Ara bellein performans isabet oran (hit ratio) ile llr. CPU arad kelimeyi ara bellekte bulursa bu isabet olur. Kelime ara bellekte bulunmayp, ana bellekte bulunursa bu karma (miss) olur. sabetlerin toplam bellek eriimlerine (isabet + karma)olan oranna isabet oran ad verilir. sabet oran en iyi rnek programlarn koturulmas yoluyla bulunabilir. sabet orannn 0.9 ve daha yksek deerleri gzlenmitir. Bu orann yksek deeri referanslarn yerellii kuralnn salandn gsterir. Ortalama bellek eriim zaman ara bellek kullanlarak nemli lde azaltlabilir. rnein, ara bellek eriim zaman 100 ns ise ana bellek eriim zaman 1000 ns olsun. Ortalama eriim zaman 0.9 isabet oranyla 200 ns deerlerine kadar azaltlr. Ara bellein temel zellii hzl eriim zaman salamasdr. Burada kelime aramak iin ya hi zaman harcanmaz veya ok az zaman harcanr. Verinin ana bellekten ara bellee aktarlmasna dnm (mapping) ad verilir. Pratik uygulamalarda ara bellek kullanmnda tip dnm prosedr kullanlr

144

5.5.2. rnek Ara Bellek Sistemi


tip dnm prosedrnn aklanmasnda aada verilen ekildeki rnek sistem kullanlacaktr.

Ana bellek bykl 32Kx12 bit, ara bellek 512x12 bit kullanlmaktadr. Ara bellekte kullanlan her kelimenin ikinci kopyas ana bellekte tutulacaktr. CPU ilkin 15 bit adresi ara bellee gnderir, eer isabet olursa 12 bit veriyi ara bellekten alr. Aksi halde ana bellee gider.

5.5.3. Assosiyatif Dnm


En hzl ve esnek ara bellek organizasyonu assosiyatif dnmdr. Aadaki ekilde bu organizasyon gsterilmitir. Assosiyatif dnm hem adresi hem de veriyi saklar.

Bu ekilde ana bellekten istenilen verinin saklanmas mmkn olur. Assosiyatif dnmde veriler adres-veri iftleri eklinde saklanm olduklarndan, adreslerin uyumu sonucu verinin bellekte olup olmadna karar verilir. Yukarda grlen ekilde 15 bit adres ve 12 bit veri gsterilimi iin octal deer kullanlmtr. Uyum olduunda ierik bellekten alnr, uyum bulunamazsa ana bellee eriilerek evresindeki veriler ara bellee yerletirilir. Hangi kurala gre adres-veri iftlerinin seilecei tasarmcya baldr (FIFO vs.).

145

5.5.4. Dorudan Dnm


Assosiyatif belleklerin pahal olmalar kullanmlarn RAM gibi baka belleklere brakmalarna neden olur. Aadaki ekilde RAM'in ara bellek olarak kullanm gsterilmitir.

15 bitlik CPU adresi, en az anlaml 9 bitten oluan indeks alan ve dier 6 biti kapsayan etiket alan olmak zere iki alana ayrlr. ndeks alan ara bellek kapasitesine kar der. Genel olarak ara bellekte 2k kelime ve ana bellekte 2n bulunur. n bit bellek adresi k-bit indeks alan ve n-k bit ise etiket alan iin ayrlr. Dorudan dnmde n-bit adresle ana bellek eriimi, k-bit adresle ise ara bellek eriimi salanr. Yeni kelime veri ve etiket ksmlarndan oluur. CPU indeks alan ara bellek adresi indeks alan tarafndan belirlenir, etiket alan karlatrlarak veri ara bellekte aranr. Ara bellekte arama etiketler uyarsa isabetle sonulanr, aksi halde karma olur ve ana bellee eriilir. Veri oradan okunur ve ara bellein eski deerleri yerine bu deerler saklanr. Ara bellek eriiminde bloklarn kullanlmas yaygndr. Bu durumda indeks alan, blok alan ve kelime alan olmak zere iki blme ayrlr. rnein 512 kelimelik ara bellek 8 kelimelik 64 bloa ayrlabilir. 6-bit blok ve 3-bit kelime alan tanmlanr. Her karma olutuunda ana bellekten 8 kelimelik bir blok ana bellekten ara bellee transfer edilir. Dorudan dnmde, arka arkaya eriilen iki veya daha fazla kelimenin indeksleri ayn fakat etiketleri farkl ise, bu isabet orann azaltr. Byle kelimeler farkl uzak adreslere konursa (rnein 512nin katlarna) bu olaslk azaltlm olunur.

5.5.5. Set-assosiyatif Bellek Dnm


Ayn indeksli ve farkl etiketli verilerin ayn zamanda ara bellekte bulunamamas dorudan dnm ynteminin bir dezavantajdr. Set-assosiyatif dnmde ara bellein her kelimesi iki veya daha fazla kelimeyi ayn etiket altnda saklayabilir. Her veri kelimesi etiketi, etiket-veri iftleri says ile bit set oluturacak ekilde saklanr. Aadaki ekilde set-assosiyatif ara bellek organizasyonu set bykl 2 iin gsterilmitir.

146

12 bitlik 2 kelimenin etiket bitleri says 6 olup, kelime uzunluu 2 x (6+12) = 36 olur. Ara bellek bykl 512 x 36 bit olup, ara bellek 1024 ana bellek kelimesini saklayabilir. Genel olarak, k kelimelik set-assosiyatif ara bellek organizasyonunda k ana bellek kelimesi bir ara bellek kelimesi olarak saklanabilir. Bylece birden ok kelime ayn indeks deerinde olduundan, isabet oran ykseltilmi olur. Karma olduunda set-assosiyatif ara bellei doludur denilir ve etiket-veri elemanlar yenleriyle deitirilmelidir. En ok kullanlan deitirme algoritmalar: olasl deitirme, ilk-giren ilk-kar (FIFO) ve en son kullanlandr (least recently used-LRU). Olasl deitirme algoritmas yeni olasl bir etiket-veri eleman seerek deitirme yapar. FIFO ara bellekte en uzun sre kalan eleman deitirir. LRU algoritmas ise en son kullanlan eleman deitirir.

5.5.6. Ara Bellee Yazma


Ara bellee yazma yntemleri aada verilmitir.

Ara bellein balatlmas iin izlenen yol yledir: Bilgisayar balatldnda ana bellee yardmc bellekten tm programlar yklenir ve ara bellek bo durumdadr. Her kelime iin bir geerli bit (valid bit) ile ara bellein geerli veri ierip iermedii gsterilir. Balangta geerli bit 0'dr, ana bellekten kelime aktarldka deeri 1 olur. Yeni deer gelmedike geerli bit 1 yaplmaz.

147

5.6 SANAL BELLEK


Sanal bellek kullancya programlarn ok geni bir bellek alannda (yardmc belleklerin tamamnda) oluturma olana salayan kavramdr. Sanal bellek, bilgisayarn bal olarak daha kk olan ana belleinin daha byk olduu illzyonunu yanstr. Sanal bellek sistemi program tarafndan oluturulan adresleri doru ana bellek adreslerine dntrr. Bu CPU tarafndan dinamik olarak yaplr.

Sanal Bellek

5.6.1. Adres Alan ve Bellek Alan


Programc tarafndan kullanlan adrese sanal adres ad verilir. Bu adreslerin oluturduu kmeye adres uzay ad verilir. Ana bellekte tanmlanan adrese yerel veya fiziksel adres ad verilir. Bu adreslerin oluturduu uzaya bellek uzay ad verilir. Pek ok bilgisayarda adres ve bellek uzay eittir. Sanal bellekte adres uzay bellek uzayndan daha byk olabilir. rnein, ana bellek kapasitesi 64K (kelime) (K= 1024). 16 bitlik hat grubu fiziksel adres iin kullanlr. Yardmc bellek kapasitesi 220 = 1024 K (kelime)'dir. Bu durumda yardmc bellek 32 ana bellek kapasitesini saklama imknna sahiptir. Adres uzay N=1024 K, bellek uzay M=32 K olur. Program ve veri paralar bellekte arka arkaya bulunmak zorunda deildir. nk bellein bo yerleri dalm olarak bulunabilir. Sanal adresleri fiziksel adresler dntrmek iin bir tablo gerekir. Dntrme dinamik olarak her kelime iinde yaplr. Aadaki ekilde sanal adresler iin dntrme tablosunun kullanl grlmektedir. ekilde 20 bitlik sanal adres 15 bitlik fiziksel adrese dntrlmtr. Dntrme tablosu iin ek bir bellek kullanlabilir. Dier taraftan ana bellein bir paras da tablo iin kullanlabilir. nc alternatif ise assosiyatif bellek kullanmdr.

148

5.6.2. Sayfalar Kullanarak Adres Dntrme


Fiziksel bellek eit byklkte blok denen gruplara (64den 4096 kelimeye kadar) ayrlr. Sayfa ayn byklkte adres gruplarna verilen addr. Sayfa adres uzaynn organizasyonunu gsterirken, blok bellek uzaynn organizasyonunu gsterir. Programlar sayfalara blnrler. Program paralar yardmc bellekten ana bellee eit byklkte sayfalar halinde aktarlrlar.

Sayfa Gsterimi Assosiyatif bellek sayfa tablosunu ana bellekteki bloklarn saysna eit kelimelerle oluturup, assosiyatif belleklerle gereklemek, verimli bir sayfa tablosu oluturma yoludur. Belleklerdeki kelimeler sayfa ve blok numarasna gre dzenlenir. Kelimenin sayfa alan sanal adresteki sayfa numarasyla karlatrlr, birbirlerine uyuyorlarsa blok o sayfadan okunur.

5.6.3. Sayfa Yerletirme


Bellek dzenleme yazlm sistemi bellek uzaynn verimli olarak kullanlmasn salar. Yardmc bellekten ana bellee ne zaman sayfa transfer edilmesi gerektii, hangi eski sayfann kaldrlp yerine hangi yeni sayfann yerletirilmesi gerektii ve sayfann ana bellekte nereye yerletirilmesi gerektii karar verilir. Ana bellekte koturulan programn referans sayfasnn hl yardmc bellekte bulunmas durumuna sayfa hatas ad verilir. Sayfa hatas durumunda halihazrda koturulan program durdurulur ve istenilen sayfa ana bellee alnana kadar beklenir.

149

5.6.3.1. FFO ve Least Recently Used (LRU)


ilk-giren ilk-kar (FIFO) ve en son kullanlan (least recently used -LRU) en sk kullanlan yerletirme algoritmalarndan iki tanesidir. FIFOda her sayfa bir kimlik numarasyla FIFO ynna saklanr. Yeni sayfa yklendiinde en son getirilen FIFOdan kaldrlr. FIFOnun gereklenmesi kolaydr fakat sklkla sayfa yklemek ve kaldrmak gerekir. LRU algoritmasnda ise en son kullanlan yerine en az kullanlan sayfa kaldrlr. LRU algoritmasnn gereklenmesinde yalanma bellei ad verilen bir sayc kullanlr. Sayc sayfann ne kadar zaman nce referans olarak kullanldn gsterir.

5.7 BELLEK DZENLEME DONANIMI


Bellek dzenleme sistemi (memory management system) ana bellekte bulunan programlarn dzenlenmesini salayan yazlm ve donanm prosedrlerinden oluur.

150

Programlar lojik olarak uygun segmentlere blp dinamik bellek yerletirme yapmak daha uygun bir yntemdir. Lojik olarak birbiriyle ilgili komutlarn veya verinin setine segment ad verilir. Segmentler programc veya iletim sistemi tarafndan oluturulur. Segment rnekleri alt rutin, veri dizisi, sembol tablolar ve kullanc programdr. okluprogramlama uygulamalarnda programlarn paylalmas ve aralarnda istenmeyen ilikilenme olmamas gerekir. Segmentlenmi bir programn oluturulduu adrese lojik adres ad verilir. Lojik adres sanal adrese benzer fakat lojik adres uzay deiken uzunluklu segmentlerden oluur. Paylalan programlar her kullancnn lojik adres uzaynda tek bir segmente yerletirilir ve bylece bu kopya paylalabilir.

5.7.1. Bellek ve Dzenleme Biriminin Lojik ve Fiziksel Adresleri


Bellek dzenleme birimi lojik adres ve fiziksel adresler olarak dnlmelidir. Lojik adreslerin fiziksel adreslere dntrlmesi iki tablo yardmyla yaplr: Lojik adresin segment numaras segment tablosundaki adresi gsterir. Sayfa tablosu deeri toplanarak sayfa tablosunda bir blok numarasna dntrlr. Blok alanyla kelime alannn yan yana gelmesiyle son fiziksel adres bulunur. Aadaki ekilde segmentlenmi-sayfa bellek dzenleme biriminin dnm gsterilmitir.

151

Yukardaki iki tablo ana bellekte gereklenebilir. Bu durumda CPU tarafndan bellek referans yapldnda eriim sz konusu olur: segment tablosuna, sayfa tablosuna ve ana bellein kendisine. Bu hz azaltan bir etki yapar. Bunu engellemek iin bir assosiyatif bellekle son referanslarn kayd tutulur. Bu nbellee evirme nbellei (translation lookaside buffer-TLB) ad verilir. Bellek dzenleme birimiyle ilgili daha detayl bilgiler kitaplarda bulunabilir.

Blm zeti
Bu blmde, bilgisayarn temel donanm paralarndan biri olan bellek eitleri, kullanm yerleriyle tantlmtr. Gnmz bilgisayarlarnda ana bellek program ve veri saklamak iin kullanlan ksmdr. Ana bellekte saklanan veri, program komutlar yardmyla ilenir ve sonular tekrar oraya saklanr. Bu blmde, ana bellek ve yardmc bellek kullanm ve rnekleri bellek hiyerarisi iinde anlatlmtr. Bilgisayarda kullanlan dier bellek trleri olan assosiyatif bellek ve ara bellek tantlarak, sanal bellein ne anlama geldii aklanmtr. Son olarak, bellek dzenleme donanm aktarlmtr.

152

153

154

155

156

157

158

159

160

OKLU LEMC YAPILARI


Bu blmde ele alnacak olan konular aadaki gibi sralanabilir: oklu ilemcilerin karakteristikleri oklu ilemcilerin balant yaplar Ayn zamandaki ilemci isteklerin sralamas oklu ilemcilerin haberlemesi ve ezamanlamalar Ara bellekle ilgili problemler (cache coherence)

Blm Hedefi
oklu ilemci sistemi 2 veya daha fazla CPUnun ana bellek ve I/O cihazlaryla balantsyla elde edilir. Tek bir CPU ve IOPlerden oluan sistem oklu ilemci tanmnda kabul edilmez. oklu ilemci tanm genel olarak birden ok CPU ile IOPlerden oluabilir. oklu ilemciler oklu komut ve oklu veri dizisinden oluan MIMD (multiple instruction and multiple data) sistemlerinden oluur. Bu blmde oklu ilemciler zerine younlap karakteristiklerini tantacaz. Aralarndaki balantlarn yaplarn inceleyip, ilemciler arasndaki iletiimi ele alacaz. Bunun iin sistemin bileenleri arasnda hat grubu yoluyla bilgi transferine deineceiz. Daha sonra, ilemciler arasndaki haberleme ve ezamanllk tantlp, ara bellek koullar anlatlacak. Sonu olarak, bu blmde oklu ilemci yaplarnda problemler tantp, zmleri aratracaz.

6.1. OKLU LEMCLERN KARAKTERSTKLER


oklu ilemciler oklu bilgisayarlar ile oklu ilemciler arasnda benzerlikler olmasna ramen nemli farklar da mevcuttur. oklu bilgisayarlar birbirlerine bilgisayar a vastasyla bal olduklar halde oklu ilemciler ortak bir iletim sistemi tarafndan kontrol edilir. Bu iletim sistemi ilemciler arasnda interaktif iletiimi ve dier tm bileenlerin ortak olarak problem zmnde kullanlmasn salar. Baz byk-skalal bilgisayarlarda birden ok CPU kullanld bilinse de, temel motivasyon mikroilemcilerin bir arada deerlendirilmesidir. Mikroilemcilerin ucuz olmalar ve kk bir alan kaplamalar aralarnda balant yaplarak, birleik bir sistem oluturulmasna olanak salamtr. ok byk lekli tmletirme (BT) (very large scale integrationVLSI) bilgisayar bileenlerinin maliyetini drp, oklu ilemcilerin kullanlmasn ekici hale getirmitir.

161

oklu bilgisayarlar

6.1.1. oklu leme


oklu ileme, sistem gvenilirliini arttrr. Sistemin bir parasnda oluan hata sistemin dier ksmnda snrl bir etki oluturur. Hata sonucu bir ilemcinin grevini yapamamas durumunda ayn grev dier bir ilemciye verilerek grevin tamamlanmas salanr. Sistemin verimliliini drmeden fonksiyonunu srdrerek verilen grevleri yapar. oklu ilemede sistem performansnn yaplmasyla mmkn olur. arttrlmas, hesaplamalarn paralel olarak

6.1.2. Paralel Hesaplama


Yaplmas gereken tm ilem, belli sayda ilemlere ayrlarak her bir ilemci tarafndan yaplabilir. Sistemin yapmas gereken iler zel ilemcilere verilerek, verimli bir ekilde ilerin yaplmas salanr. rnein, bir sre (proses) kontrol ve sensrlerin alglanmas fonksiyonu paralara blnebilir; bir ilemci sre kontroln yaparken dieri sensrlerin (scaklk, kuak hz, vs) alglanmasnda kullanlabilir. Benzer i blm normal bilgisayarlarda rutin veri ileme ve hareketli-nokta verisinin ilenmesinde de kullanlmaktadr. CPU normal verileri kendi ilerken, hareketli-nokta gsterilimdeki veriler ise hareketli-nokta ilemcisi tarafndan ilenir.

162

oklu ilemede program paralel olarak ilenebilen modllere ayrarak performans artm salanabilir. Kullanc baz ilemleri paralel olarak tanmlayarak programn paralel koturulmasn salayabilir. Bu da programn paralel segmentlere yklenmesiyle gerekleir. oklu ilemci reticileri, uygun iletim sistemi ve programlama dili hazrlayarak paralel ilemeye uygun artlar salarlar. Daha uygun dier bir yol ise oklu ilemci yazlm ve derleyicisinin paralelizm yapsn kullanc programndan kestirmesidir. Derleyici programda veri bamlln (data dependency) kontrol eder. Veriye ballk kontrol edilip, hangi ksm verinin kullanlmasn gerektiriyorsa o program parasnn ilk olarak koturulmas gerekir. Veriyi gerektirmeyen iki ayr program paras ayn anda koturulabilir. Paralelizm derleyicisi btn program kontrol ederek veri bamllklarn kontrol eder. Veri bamll olmayan paralar ayn zamanda koturulmak zere zamanlanr (scheduling).

6.1.3. oklu lemcilerin Ana Bellein Organizasyonuna Gre Snflandrlmas


oklu ilemciler ana bellein organizasyonuna gre snflara ayrlabilirler. Bir oklu ilemci sistemi ortak kullanlan bellee gre snflandrlabilir. Bu sistemlere paylalm bellek veya sk-ilintili oklu ilemciler (shared-memory veya tightly coupled multiprocessor) ad verilir. Bu durum her bir ilemcinin yerel belleinin olmamas sonucunu dourmaz. Bu tr oklu ilemciler genellikle bir CPU ve ara bellek olarak tasarlanrlar. Ek olarak, global bellek bulunmaktadr. Bylece, ikili bilgi global bellek yoluyla ilemciler arasnda paylalm olur.

163

6.1.3.1. Dank Bellek (Distributed-Memory)


Dier bir oklu ileme modeli ise dank bellek veya gevek-ilintili oklu ilemciler (distributed-memory veya loosely-coupled multiprocessor) olarak bilinir. Gevek ilintili her bir ilemcinin kendine ait bir yerel bellei vardr. lemciler bir anahtarlama ilemiyle baldr ve ikili bilgi bir ilemciden dierine mesaj iletme sistemiyle geer. lemciler program ve veriyi paketler halinde dier ilemcilere datr. Tipik bir paket, adres, veri ierii ve hata kestirme ksmlarndan oluur. lemciler arasndaki iletiimin cinsine gre, paketler ya belli bir ilemciye veya ilk hazr olan ilemciye gnderilirler. Gevek-ilintili sistemler paylalan iler arasnda interaktiflik zellii az ise daha verimli olurlar. Skilintili sistemler ise daha yksek seviyede interaktiflik iin daha uygundur.

Dank Bellek

6.2. OKLU LEMCLERN BALANTI YAPILARI


oklu ilemci sisteminin bileenleri CPUlar, IOPler yoluyla balanan dzenler ve modllere ayrlm ana bellek birimidir. Bileenler arasndaki balant deiik konfigrasyonlarda olabilir. Transfer iin kullanlan yollarn says ve ana bellein paylalm olmas veya gevek ilintili olmasna gre farkl konfigrasyonlar dzenlenebilir. Bu ksmda baz konfigrasyonlar tantlacaktr:

164

6.2.1. Zaman-Paylamal Ortak Hat Grubu (Time-Shared Common Bus)


Ortak hat gruplu, ok ilemcili sistem belirli sayda ilemcinin ortak bir yolla ana bellek birimine balanmasyla oluur. Aadaki ekilde be ilemciden oluan zaman-paylamal ortak hat grubu sistemi gsterilmitir.

Herhangi bir zamanda sadece bir ilemci ana bellekle iletiim kurabilir. Transferler ilemci hat grubu kontroln aldktan sonra yaplabilir. Transfer balatmak isteyen herhangi bir ilemci hat grubunun hazr olup olmadn kontrol etmelidir. Bir komut yaynlanarak alc u ile hangi ilemin yaplaca belirtilir. Kendi adresini hatlardan tanyan alc taraf, kontrol iaretiyle verici tarafa hazr olduunu iletir ve transfer balar. Transferler srasnda oluabilecek hat karmaalar, hat kontrolr vastasyla ncelik deerlendirilmesi yaplarak zmlenir.

6.2.1.1. Zaman-Paylamal Ortak Hat Grubunun Performans


Tek bir ortak hat grubunun performans bir zamanda bir transfer ile snrldr. Transfer iin hatlar kullanan ilemcinin dndaki ilemciler ya i ilemleriyle megul olmal veya hatlar kullanabilmek iin bo konumda bekliyor olmaldrlar. Bunun sonucunda, toplam transfer oran tek bir hat grubunun hzyla snrldr. ki veya daha fazla bamsz hat grubunun kullanlmasyla, sistem birden ok transfere izin verir hale gelir. Bu ise sistemin hzn ve maliyetini arttrr. Aada daha ekonomik bir zm gsterilmitir.

165

Bu konfigrasyonda belirli sayda yerel hat grubu, yerel bellek ve bir veya daha ok ilemcinin balants iin kullanlr. Her yerel hat grubu bir CPU, bir IOP ve ilemcilerin herhangi bir kombinasyonuna baldr. Yerel hat gruplar, ortak hat grubuna bir hat grubu kontrolr vastasyla baldr. I/O dzenleri yerel hat grubuna ilemciler ve yerel belleklerle birlikte balanrlar. Ortak hat grubuna bal bellek tm ilemciler tarafndan paylalr. Herhangi bir zamanda yalnzca bir ilemci bellee balanabilir. Dier ilemcilerin baka ilemleri yapmas veya beklemesi gerekir. CPUya bal yerel belleklerden birisi ara bellek olarak kullanlrsa eriim zamann CPU'nun zamanna (cycle time) yaklatrlm olunur.

6.2.2. ok-Kapl Ana Bellek


ok-kapl ana bellek (multiport memory) sistemi her CPU ile bellek modl arasnda ayr hat gruplar kullanr. Aadaki ekilde drt CPU modlyle drt bellek modlnn balants gsterilmitir. Her bir ilemci hat grubu bir bellek modlne balanmtr.

166

Bir ilemci hat grubu adres, veri ve kontrol hatlarndan oluur. Ana bellek modl drt kaps vastasyla drt hat grubuna alyor denilir. Bu modln i karar verme lojii vastasyla bir zamanda hangi kapnn kullanldnn belirlenmesi gerekir. Bellek eriim karmaalar, kaplara ncelik verilerek zmlenir. ncelik kap pozisyonuna gre verilebilir. Buna gre CPU1in ncelii CPU2, CPU3 ve CPU4ten daha fazladr. CPU4 en dk ncelie sahiptir. ok-kapl bellek organizasyonunun avantaj, oklu yollar nedeniyle elde edilen yksek transfer orandr. Buna kar kontrol lojii, balant ve konnektr gibi faktrler nedeniyle maliyet artar. Az sayda ilemcinin bulunduu konfigrasyonlarda uygulanabilir.

6.2.3. Kesien Anahtar


Kesien anahtar organizasyonunda ilemci hatlar ile bellek modllerinin arasna belirli sayda kesime noktalar yerletirilir. Aadaki ekilde drt CPU ve drt bellek balants iin kesien anahtar balantlar gsterilmitir. Kk karecikler kesime noktalarn gsterir ve ilemci ve bellek arasndaki yolu belirler.

Her anahtar noktasnda kontrol lojii vastasyla adres ve oklu hat grubu istemleri kontrol edilir ve transfer yolu karar verilir. oklu hat grubu istemlerinde nceden belirlenmi ncelik sistemi uygulanr.

167

6.2.3.1. Kesien Anahtarn Fonksiyonel Tasarm


Aada kesien anahtarn fonksiyonel tasarm ve bellek modlne balants gsterilmitir.

Kesien anahtar devresi, bir CPUdan bir bellek modlne erimek iin veri, adres ve kontrol hatlarn semeye yarayan oullayc (MUX)lardan oluur. Uzlama (arbitration) lojii ile ayn zamanda istenen balantlarn ncelikleri saptanr. MUXlar ncelik enkoderinden (priority encoder) kan klarla kontrol edilir ve ncelikli ynlendirme salanr. Kesien anahtar organizasyonu ayn andaki transferleri de destekleyebilir fakat bunun iin daha karmak bir anahtar sistemi gerekir.

6.2.4. ok Katmanl Anahtarlama A


ok katmanl an temel bileeni iki-giri ve iki-kl deitirme anahtardr. Aadaki ekilde 2x2 temel anahtar ve A, B girileriyle 0, 1 klar gsterilmitir. Kontrol iaretleri (ekilde gsterilmemitir) vastasyla A ve B girileri istenilen klara balanabilir. Anahtar ayn zamanda gelen akan balant istemlerini zmleme kabiliyetine de sahiptir.

168

6.2.4.1. kili Aa Yaps ile ok Katmanl Anahtarlama A


Aadaki ekilde ise ikili aa yapsyla ok katmanl a gereklenmesi gsterilmitir. Yap 2x2 temel anahtarn kullanmaktadr. Belirli sayda alc ve verici ular arasnda iletiimi kontrol eden ok katmanl a temel anahtar elemanlar ikili aa yapsyla oluturulmutur.

Bu ekil iin P1 ve P2 ilemcileri sekiz bellek modlne balanm ve balant numaralar 000dan 111e kadar ikili saylarla gsterilmitir. Verici taraftan alcya olan yol bu balant numaralaryla belirlenmitir. Alc taraftaki ilk bit, ilk seviyedeki balanty, sonraki bit ise ikinci seviyedeki balanty gsterir. Sonra bu balant metodu devam eder. rnein, P1 ilemcisini 100 belleine balamak iin ilk seviyede k 1, ikinci seviyede ise 0 alnr. Son seviyede ise dier bir 0 alnarak gerekli bellek balantsna ulalm olunur. rnek sistemde, P1 ve P2'nin sekiz bellek balans yaplabilir. Ancak birbirine geen paternlerin karmaa yarataca gzlenmelidir; eer P1 000dan 011e kadar olan belleklere balanm ise P2 sadece 100dan 111e kadar olan belleklere balanabilir.

6.2.4.2. Omega Anahtarlama A


Sk ve gevek ilintili olmak zere farkl ok katmanl alar ilemci-bellek balantsn kontrol etmek zere kullanlmtr. Bunlar iinde anahtarlama iin kullanlan omega a aada gsterilmitir.

169

Omega anda verici ile alc arasnda balant salayan en az bir yol vardr. Fakat baz istek paternleri ayn anda salanamaz. rnein, ayn zamanda, iki verici 000 ve 111 paternlerine balanamaz. Verici 3-bitlik deerle alc u numarasn gnderir. An her seviyesinde ikili patern kontrol edilip 2x2 anahtarlar yoluyla ilerler. Birinci seviye en anlaml biti, ikinci seviye sonraki biti ve nc seviye de en az anlaml biti kontrol eder. 2x2 anahtarlarnn giriine gelen giri deeri 0 ise st k, 1 ise alt ka ynlendirme yaplr. Sk-ilintili oklu ilemci sisteminde verici bir ilemci, alc ise bellek birimidir. ki-geili a kurma ilemi yaplr. lk geite a kurulur, sonradan da veri transferi gereklenir. Gevek-ilintili sistemde ise verici ve alc ilemci elemanlardr. Aradaki balant salandktan sonra verici alcya mesaj transfer eder.

6.2.5. Hiperkp Balants


Hiperkp (hypercube) veya n-kp oklu ilemci yaps gevek-ilintili N=2 n ilemcinin n boyutlu uzayda balanmasyla oluan sistemdir. Her bir ilemciye dm (node) ad verilir. Her dm yalnzca CPU deil, ayn zamanda yerel bellek ve I/O balants ierir. Her ilemcinin yanndaki n-ilemciye iletiim balants vardr. Bu balantlar kenar (edge) adn alr ve 2n adres n-bitle gsterilir. Her bir ilemcinin adresi yanndakinden 1 bit fark eder. Aadaki ekil hiperkp yapsn n = 1, 2 ve 3 (N=2n ilemci) iin gstermektedir.

n=1 iin kp 2 ilemci, n=2 iin 4 ilemci ve n=3 iin ise 8 ilemciden oluur. Her bir dm iin bir ikili adres kullanlr ve komu dmlerin adresleri 1 bit pozisyonu deiir. rnein, 000 dmnn komular 010, 001 ve 100dr. n-kp yapsnda balant mesajlar (routing messages) yoluyla verici ve alc iletiimi salanr. rnein, 3-kp yapsnda 000 dm 100 dmyle dorudan balant kurarken, 111 dmne ulamas iin en azndan iki dm ve balant gemesi gerekir, 000 dmnden 111 dmne ulamak iin yollardan biri 100 ve 101 dmlerinden gemektir. XOR kaplarn, verici ve alc adreslerini kullanarak bir balant prosedr gelitirmek mmkndr. Sonuta elde edilen ikili deer kar den

170

eksenlerde 1 deeri alacaktr. Mesaj 1 olan eksenler yoluyla gnderilir. rnein, 3-kp yapsnda verici adresi 101 ve alc adresi ise 011 olsun. ki adresin XORu 110 olur. kili bilgi 101 dmnden birinci eksen ve sonra da ikinci eksen yoluyla 011 dmne gnderilir. rnek olarak gsterilebilecek hiperkp yaplarndan bir tanesi Intel iPSC bilgisayar kompleksidir. 128 (n=7) mikrobilgisayardan oluan ve iletiim kanallaryla birbirine bal olan bir yapdr. Her dmde bir CPU, bir hareketli-nokta ilemcisi, yerel bellek ve seri iletiim balants mevcuttur.

6.3. AYNI ZAMANDAK LEMC STEKLERNN SIRALANMASI


Bilgisayar sistemleri ikili bilgiyi sistemler arasnda transfer etmek zere hat gruplarn kullanr. Dier taraftan CPU, ALU ve hzl bellekler arasnda bilgi aktarm iin hat gruplarn kullanr. Ana bellek hat grubu veri, adres ve kontrol hatlarndan oluur. Dier taraftan I/O hat grubu bilginin giri-kn salar. ok ilemcili bir sistemin CPUlar, IOPlar ve bellekler gibi temel bileenlerini birbirine balayan hat grubuna sistem hat grubu (system bus) ad verilir. Fiziksel olarak, hat gruplar bask devre zerinde gereklenir ve her bir modln hat gruplar birbirlerine konnektrler yardmyla balanr. ok ilemcili paylalan bellek sisteminde, ilemciler ortak bellei paylarlar. Eer dier ilemciler bellee erimemilerse, kullanma isteini gnderdii iaretle belirten ilemci bellei kullanabilir. Bellei baka bir ilemci kullanyorsa istek belirten ilemci beklemelidir. Eer ilemciler tarafndan ayn zamanda bellek kullanma istei belirtilmise, ortak bellein oklu ilemciler tarafndan kullanm belirli bir kurala gre olur. Ortak bellek kullanmn salayan lojik dzen (arbitration lojik) sistem hat grubu ve yerel hat grubu arasnda sistem hat grubu kontrolrnn bir parasdr.

6.3.1. Sistem Hat Grubu


Sistem Hat Grubu Tipik bir sistem hat grubu yaklak 100 hattan oluur. Hatlar fonksiyonel gruba ayrlrlar: Veri, adres ve kontrol. rnein, IEEE standart 796 oklu hat grubu sistemi 16 veri, 24 adres, 26 kontrol ve 20 g hattnn toplam olan 86 hattan oluur. Veri hatlar ilemciler ve bellek arasndaki veri transferini salarlar ve en tipik saylar 8 veya katlar 16, 32'dir. Adres hatlar alcnn (bellek veya I/O dzeni, ..) adresini belirlemek iin kullanlr. 24 hatla bellekteki 224 (16 Mega) kelimenin adresini belirlemek mmkndr. Veri hatlar iki-ynl, adres hatlar tek ynldr. Sistem hat grubu zerinde veri transferi ezamanl veya ezamanl olmayan olmak zere iki trl yaplmaktadr.

171

Ezamanl transferde, veri verici ve alc ular arasnda nceden bilinen bir zaman aralnda transfer edilir ve bu transfer ortak bir saat devresi ile salanr. Dier bir prosedrde ise ezamanlama iaretleri (saat darbeleri) sistemde periyodik olarak transfer edilir. Ezamanl olmayan transferde ise el-skma iaretleri kullanlarak veri verici ve alc arasnda transfer edilir. Kontrol hatlar bilgi transfer birimleri arasnda kontrol iaretlerini salarlar. Zamanlama iaretleri veri ve adresin geerli olduu zamanlar tanmlar. Tipik kontrol hatlar, okuma, yazma, transfer onaylama, kesinti istek ve hat grubu istek, verme iaretleri ve sra isteme (arbitration signals) iaretleridir. IEEE 796 standartnda 16 veri ve 24 adres hatt dnda dk-aktivasyon seviyeli kontrol iaretlerini izleyebiliriz. Veri transferi iaretlerine rnek olarak bellek ve I/O iin ayr ayr tanmlanm okuma ve yazma iaretleri gsterilebilir. Bellek veya I/O transferi bitince dzenler transfer onaylama iareti ile cevap verirler. Ayn dzende, seri ve paralel sra isteme iin kullanlan sra isteme iaretleri de tanmlanmtr.

6.3.2. Seri Sra steme Prosedr


Genel olarak sralama prosedr oluturulmu ncelie gre servis verirler. Donanm hat grubu ncelii oluturulmas, sistem hatlarnn kontroln isteyen birimlerin seri veya paralel balanmasna gre yaplr. Seri ncelik teknii, hat grubu sralamas tekniklerinin papatya balants (kesinti nceliinde olduu gibi) eklinde balanmalaryla elde edilir. lemcilerin ncelik kontrol hatlarna balanmalarna gre ncelikleri belirlenir. En yakn dzen en yksek ncelii alr. ok sayda dzenin ayn zamanda hat grubu kullanm isteklerini belirtmeleri durumunda, en yksek ncelii olan dzen hat grubu eriimini alr. Aadaki ekilde papatya balantsyla drt dzenin sralamas gsterilmitir.

Her ilemcinin kendi hat grubu sralama lojii, ncelik-giri (PI) ve ncelik-k (PO) hatlar olduu kabul edilmitir. Sralamada ncelikli ilemcinin POsu, sonraki ncelikteki ilemcinin PIsna balanmtr. En ncelikli ilemcinin PI girii 1 yaplr, hat grubu eriimi stnl bu ilemcide olacaktr. Eer bu ilemcinin PI=1 ise fakat sistem hat grubunu kullanmak istemezse PO deeri 1 olur. Bylece ncelik kendinden sonraki ilemciye aktarlm olur. Dier daha az ncelikli ilemcilerin PI ve PO deerleri 0 olur. Hat grubu kontrol, PI=1 ve PO=0 olan ilemcide olacaktr. Bir ilemci hat transfer ileminin ortasnda iken ncelii daha fazla olan bir dier ilemci hatt kullanma istemini bildirebilir. ncelii daha az olan ilemci hattaki ilemini bitirmelidir. Hattn kullanlmakta olduunu hat megul (bus busy) iaretiyle dier ilemcilere yukardaki ekilde grld gibi iletir. Hat megul hatt her ilemcide akkollektr devresinden gelir ve her devre iin balantl-OR (wired-OR) balantsn (OR ilemi yapan girilerden oluan eleman) salar. Bir ilemcideki sralama devresi hat grubu

172

kontroln alrsa (PI=1 ve PO=0), hat megul hattn kontrol eder. Eer hat aktif deilse, herhangi bir ilemci hatt kullanmamaktadr anlam kar. lemci hat kontroln alr ve megul iaretini hatta verir. Eer hat megul aktif ise (lojik 1), baka bir ilemcinin hat grubunu kulland belirlenir. lemcinin sralama lojii hat megul iareti bitene kadar hatt kontrol ederek bekler. Hat grubu kullanm bittikten sonra hat megul lojik 0 (inaktif) olur, ncelii byk olan ilemci hat megul iareti yaynlayarak hat grubu kontroln ele alr.

6.3.3. Paralel Sralama Lojii


Paralel hat grubu sralama teknii bir ncelik enkoderi ve bir dekoder kullanr. Her ilemcinin sralaycs bir hat istek k ve hat onaylama girii ile iletiim salar. Her sralaycnn hat istek hatt ncelik enkoderine balanr. Enkoder klar ise dekoder girilerine baldr. ncelii seilen ilemci dekoder knda belli olur ve hat onaylama girii olarak o ilemciye balanr. Aadaki ekilde drt ilemcinin paralel sralamas gsterilmitir.

Drt ilemciden kan hat istek klar 4x2 ncelik enkoderine balanmtr. Bu enkoderin 2 k ise 2x4 dekoderin girilerine balanmtr. Dekoder klar ise uygun ilemcinin hat onaylama giriini aktive ederek, sistem hat grubunun kontroln o ilemciye brakr.

6.3.4. Dinamik Sralama Algoritmas


Yukarda anlatlan seri ve paralel sralama algoritmalarnda statik ilemci ncelikleri her bir ilemcinin nceden balantsnn yaplmasyla belirlenmitir. Buna karn dinamik ncelik belirleme algoritmas sistem iindeki ilemcilerin nceliklerinin deimesine de

173

olanak salar. Dinamik ncelik algoritmalarnda kullanlan prosedrlerin bazlarndan aada bahsedilmitir.

OKLU LEMCLERN HABERLEMES ve E ZAMANLAMALARI


oklu ilemcilerin oluturduu yapda ilemciler arasnda haberleme I/O kanallarnn oluturduu yol ile yaplr. Paylalan ana bellek yapsnn bir paras tm ilemcilerin eriebilecei gibi dzenlenir. Ortak bellek ksmnn temel amac posta kutusuna benzer bir mesaj merkezi gibi almasdr. Her ilemci bu ksma mesaj brakabilir veya alabilir. Verici ksmndaki ilemci istek, mesaj veya prosedr gibi haberleme birimlerini kutusuna brakr ve ortak bellekteki durum bitini oluan koullar gsterir. ilemcinin ne tr bir durumu bildirdii bu bitlerden anlalr. Alc utaki ilemci kutusunu periyodik olarak kontrol ederek, kendisi iin bir bilgi olup olmadna posta Hangi posta karar

174

verir. Bu ilemin cevap zaman uzun olabilecei iin, dier bir yol da verici ilemcinin alc ilemciye bir mesaj gndererek kesinti anlamnda gerekli iletiimi salamasdr. Bu ilemciler aras yazlmla balatlm kesinti olarak tanmlanabilir. lemcinin koturduu programda bir komut ikinci ilemcinin d kesinti koullarna girmesini salar. oklu ilemcilerin oluturduu yapda bellek yannda dier kaynaklar da paylalabilir. rnein, manyetik diskte saklanm sistem programlarnn IOP yardmyla dier CPUlar tarafndan paylalmas sz konusu olur.

175

6.4.1. oklu lemcilerin letim Sisteminin Tasarm


Birka ilemcinin kaynaklarnn paylam iletim sistemi tarafndan gereklenir. oklu ilemcilerin iletim sisteminin tasarmnda organizasyon kullanlr: Efendi (Master)-kle (slave) konfigrasyonu, ayr iletim sistemi ve dank iletim sistemi.

Gevek-ilintili ilemcilerin oluturduu sistemlerde ana bellek ilemciler arasnda dalm olduundan, yapda ortak bir bellek alan bulunmaz. lemciler arasnda haberleme bir ilemci tarafndan I/O kanal vastasyla balatlr. letiim salamak istedii ilemciye bir ar prosedr gnderir. Verici ve alc ilemci arasnda bir haberleme kanal oluturulur. Gnderilen mesajlar, bir balk ve veri formatnda olup, farkl dmler arasnda iletilirler. Her dmn iletim sistemi yol (routining) bilgisini ierir. Bu bilgi dmler arasndaki alternatif yollar tanmlar. lemciler arasndaki haberlemenin verimlilii haberleme protokol, ilemci hz, veri link hz ve a topolojisine baldr.

6.4.2. lemcileraras E Zamanlama


lemcilerin Haberlemesi oklu ilemcilerin komut seti ortak ilem yapan ilemcilerin haberlemesi ve e zamanlamasn da salar. Haberleme farkl ilemciler arasndaki veri iletiimini, e zamanlama ise veri iletiimindeki zel iaretleri tanmlar. E zamanlama doru ilem dizisinin uygulanmasn ve doru verinin aktarlmasn garantileyen ilemdir.

176

oklu ilemciler eitli e zamanlama mekanizmalarn ierirler. Alt-seviyeli (primitive) olanlar dorudan donanm tarafndan gereklenirler. Daha karmak olanlar yazlm yoluyla gereklenirler. Ortak dlama (mutual exclusion) iin kullanlan donanm mekanizmalarnn en popleri ikili semafor (binary semaphore) kullanmdr.

6.4.3. Semafor ile Ortak Dlama


Uygun ilem gren oklu ilemci sisteminin paylalan bellek ve kaynaklara zaman iinde srayla eriimi garanti etmesi gerekir. Verinin iki veya daha fazla ilemci tarafndan ayn zamanda deitirilmemesi nemlidir. Bu ileme ortak dlama (mutual exclusion) ilemi ad verilir. Ortak dlama salanan ilemci kritik ksmda (critical section) iken dier ilemcilerin eriimini durdurarak ve kilitleyerek paylam engeller. Programn kritik ksm baladnda, bu ksmn sonuna kadar dier ilemciler paylalan bellek ksmna eriemezler. Semafor denen ikili deiken ilemcinin kritik ksmda olup olmadn gsterir. Semafor ortak bellekte saklanan ve her ilemcinin eriim salayabilecei, yazlm kontroll bir bayraktr. Semafor 1 iken bir ilemci kritik program ksmn koturuyordur denilir. 0 iken istek sahibi ilemci ortak bellek eriimini yapabilir. Programn kritik ksm bittikten sonra semafor 0 yaplr.

lemci1 ilemci2 ilemci3 ilemci4 yazsn iinde bellek yazan uzunca bir dikdrtgen olsun. Bir de bir kenarda iinde 0 yazan sar bir bayrak olsun. lemcinin herhangi birinden bir izgi kp bellee gitsin ve bu srada bayran rengi krmzya dnerek iinde 1 yazzsn. lemciden bellee giden ok kaybolana kadar bayrak an ekilde krmz kalsn ok kaybolduu anda bayrak yine sar olsun ve iinde 0 yazsn. Hemen sonra baka bir ilemci iin ayn eyler tekrarlansn. Ve bu sre hi durmasn. Semaforun durumunun kontrol edilmesi de kritik bir ilemdir ve tek bir blnemeyen para halinde yaplmaldr. Aksi halde, iki veya daha fazla sayda ilemci semaforu test ederek ayn zamanda kritik ksma girebilirler. Bir semafor test ve set komutuyla balatlabilir ve bir donanm kilit (hardware lock) mekanizmasna baldr. Donanm kilidi mekanizmas ilemci tarafndan yaratlan bir iaret olup, semafor aktif olduu mddete sistemin dier ilemciler tarafndan

177

kullanlmasn nler. Bu mekanizma semaforun test ve set aamasnda dier ilemciler tarafndan eriilmesini engeller.

16:33 15.07.2003

6.4.4. Semafor ile Ortak Dlamaya Ait rnek


rnek olarak bellek kelimesinin en az anlaml bitini SEM semafor olarak gsterelim. TSL semboln ise -kilitli iken test ve set- ilemi iin kullanalm.

Komutu iki bellek faznda kullanlr fakat bu komutlara etki etmez:

Semafor deeri R ilemci hzl belleine transfer edilip test edilir ve arkasndan set 1 yaplr. Eer ilemci R=1 bulursa semaforun hl hazrda set edildiini anlar. Bu dier bir ilemcinin kritik ksmda olduunu gsterir. Eer R=0 ise semafor set 1 yaplabilir ve dier bir ilemcinin bellek eriimi engellenmi olunur. Programn kritik ksm koturulur ve sonunda SEM 0 yaplr. Kilit iaretinin test ve set komutlarnn koturulmas srasnda aktif olmas gereklidir.

6.5. ARA BELLEKLE LGL PROBLEMLER


Ara bellein tekli ilemcilerde ortalama bellek eriim zamann ksaltt daha nce aklanmt. lemci arad kelimeyi ara bellekte bulursa ana bellek eriimine gerek kalmaz. Eer ilem yazma ilemiyse tamamyla yazma protokolne gre hem ara bellek hem de ana bellek her yazma ileminde yenilenir. Geri yazma protokolnde sadece ara bellek ierii yenilenir, belirlenen yer sonradan ana bellee aktarlr. Paylalan bellek oklu ilemci sistemlerinde ortak olarak paylalan bellein yannda, yerel ilemcilerin kulland bellek veya ara bellekler bulunur. Her ilemciye ait ara bellek bellek eriim hzn arttrm olur. Ayn ikili bilgi hem ara belleklerde hem de ana bellekte bulunur. Sistemin doru olarak almasn kontrol etmek iin oklu kopyalar eit olarak tutulurlar. Bu koul bir ara bellek doruluu (cache coherence) problemi oluturur. Bellek, ayn adrese son olarak yklenen ve alnan bilgi ayn isedorudur denilir. Ara uygun zm bulunmadan oklu ilemci sistemleri

bellek doruluu kullanlamaz.

problemine

178

6.5.1. Doruluk in Koullar


oklu ilemcili sistemlerde doruluk problemi zel ara belleklerin yazlabilen veriyi paylamalar nedeniyle oluur. Yalnzca okunabilen sistemlerde veri gvenli olarak paylalabilir. Aadaki ekilde ilemcinin zel ara bellekleri grlmektedir.

P1, P2 ve P3 ilemcileri ve zel ara bellekleri ortak hat grubu sistemiyle ana bellee balanmlardr. X=64 deeri ykleme ilemi sonucu ara bellekte de saklanm olsun. lemcilerden biri ara bellee bir deer saklarsa ara bellekler tutarl olmaz. Ana bellek yenileme protokolne gre ara bellekler ile ana bellekte tutarl bir deer saklayamazlar. P1 ilemcisinin ara belleinde X=130 deeri saklansn. Bu tamamyla yazma protokolne gre ana bellekte X=130 deerini alr. Fakat dier iki yerel ara bellek (P2 ve P3 e ait) eski deeri alacaklardr. Geri yazma protokolne gre P1'in ara belleine yazma ilemi srasnda ana bellek yenilenmeyecei iin X=52 deeri kalacak, bu durumda P2 ve P3'n ara bellekleriyle ana bellekteki deerler tutarl olmayacaktr. Tutarllk problemleri dorudan bellek eriimi (DMA) ve IOP balantl sistem hat gruplarnda da olumaktadr. rnein, veri girii srasnda DMA ana bellei ara bellekte yenileme yapmadan yenileyebilir.

6.5.2. Ara Bellek Doruluu Probleminin zmleri


oklu ilemcilerin oluturduu sistemlerde ara bellek doruluu probleminin zm iin eitli neriler vardr.

179

Basit bir zm olarak, ilemcilerin zel ara bellekleri yerine ortak kullanlan bir ara bellek ana bellekle birlikte kullanlabilir. Bu neri CPUnun ara bellee yaknl prensibini bozar. yi ilem performans iin, zel ara belleklerin kullanm gerekir. Bir yol grubunu kullanmay nerir: Paylalamayan ve yalnzca okunabilen belleklenebilen veriler yalnzca okunabilenler, ara belleklenemeyenler ise yazlan veri olmaktadr. Ara belleklenemeyen veri ana bellekte kalr. performans azaltr. da iki veri veri. Ara paylalan, Ek yazlm

Dier bir yaklam da, yazlabilen veri sadece bir ara bellekte bulunabilir eklindedir. Bunun iin merkezi global tablo (centralized global table) bellek bloklarnn hangisinin yazlp, hangisinin yazlamayacann kaydn tutar. Yalnzca okunabilen (read only-RO) ve yazlp okunabilen (read and write-WR) bloklar ayrlr ve zel ara belleklerde RO bloklarn kopyalar bulunur. Ara bellek doruluu problemine yazlm ve donanm kkenli zmler nerilebilir. zmler zel ara belleklerde bulunan kopyalar yenileyebilirler veya geerli saymazlar. Bir hat grubu kontrolr bunu izler. Bu olaya ara bellek kontrolr (snoopy cache controller) ad verilir.

Blm zeti
Bu blmde oklu ilemcilerin karakteristikleri tantlp, aralarndaki balantlarn yaplar incelenmitir. oklu ilemci sistemi 2 veya daha fazla CPU'nun ana bellek ve I/O cihazlaryla balantsyla oluturulmutur. Tek bir CPU ve IOP'lerin oluturduu sistem oklu ilemci tanmnda kabul edilmez. Bu durumda sistemin bileenleri arasnda hat grubu yoluyla bilgi transferi nem kazanmaktadr. lemciler arasndaki haberleme ve ezamanllk tantlp, ara bellek koullar anlatlmtr. Sonu olarak, bu blmde oklu ilemci yaplarnda problemler tantlarak, zmleri

aratrlmtr.

180

181

182

183

184

185

186

187

"Bilgisayar Mimarisi" dersinin sonuna gelmi bulunmaktayz. Bu almamzn tm rencilerimize faydal olmas dileiyle... Snavlarnzda baarlar... Prof. Dr. Fikret Grgen

188

You might also like