Sunteți pe pagina 1din 8

lemci Nedir? lemci normal bir bilgisayarn kalbidir, masast, sunucu yada tanabilir olmas fark etmez.

Kullandnz ilemci bir Pentium, Athlon, PowerPC, Sparc, intel yada herhangi bir ey olabilir fakat hepsi aa yukar ayn eyi ayn yoldan yaparlar. Oyun oynarken veya bir yaz yazarken ilemcilerin alma eklini ve saysal mantn nasl ilediini merak ediyorsanz okumaya devam edin. Tarihe lemci yada dier ismiyle CPU (central processing unit - merkezi ilem birimi) aslnda bir yonga (chip) zerine yerletirilmi bir hesap makinesinden baka bir ey deildir. lk ilemci Intel 4004 1971 retildiinde ok gl deildi. Yapabildii tek ey toplama ve karmayd ve bir kerede sadece 4 bit ilem yapabiliyordu. Fakat her eyin bir chip zerine sdrlm olmas o zamanlar iin gerekten bir baaryd. 4004'n retiminden nce mhendisler bilgisayarlar ok sayda chip ve paralarn birleiminden yapabiliyorlard. 4004 ilk tanabilir elektronik hesap makinesine hayat verdi. Ev bilgisayarlar iin kullanlan ilk ilemci Intel 8080'di. 1974 ylnda retilen bu ilemci 8bit'lik bir chipti. Fakat piyasalar asl etki yapan ilemci yine Intel'in 8088 adl ilemcisiydi ve bu ilemci 1979 ylnda retildi. IBM PC makinelere hayat veren bu ilemci tam olarak adn 1982 ylnda duyurmaya balad. Eer bilgisayarlarla biraz ilgiliyseniz PC pazarnn 8088'den 80286 oradan 80386, 80486, Pentium, Pentium II, Pentium III ve son olarak Pentium 4'e getiini bilirsiniz. Btn bu ilemciler Intel tarafndan retildi ve hepside temelde 8088 tasarmnn gelitirilmesiyle ortaya kt. Gnmzde kullandmz Pentium 4, 8088'lerdeki her hangi bir kodu altrabilir fakat 5000 kez daha hzldr. Aadaki tablo Intel ilemciler arasnda nasl farklar olduunu grmenize yardmc olacak: sim 8080 8088 80286 80386 80486 Pentium Pentium II Pentium III Pentium IV Tarih 1974 1979 1982 1985 1989 1993 1997 1999 2000 Transistr 6,000 29,000 134,000 275,000 1,200,000 3,100,000 7,500,000 9,500,000 42,000,000 Mikron 6 3 1,5 1,5 1 0,8 0,35 0,25 0,18 Saat Hz 2 MHz 5 MHz 6 MHz 16 MHz 25 MHz 60 MHz 233 MHz 450 MHz 1,5 MHz Veri Genilii 8 bit 16 bit-8 bit 16 bit 32 bit 32 bit 32 bit-64 bit 32 bit-64 bit 32 bit-64 bit 32 bit-64 bit MIPS 0,64 0,33 1 5 20 100 ~300 ~510 ~1,700

Tablo hakknda bilgi :


Tarih, ilemcinin ilk retildii tarihtir. ou ilemcinin daha sonra daha hzl versiyonlar da kmtr. Mikron, yonga zerindeki en kk kablonun geniliidir. Karlatrmak iin insan sann 100 mikron kalnlnda olduunu syleyebiliriz. Yonga zerindeki kablo kalnl azaldka transistr saysnn arttn grebiliriz. Saat Hz, yongann ayarlanabildii en yksek saat hzdr. Bir sonraki blmde ayrntl olarak incelenecektir.

Veri Genilii, ilemcinin ALU (arithmetic/logic unit - aritmetik/mantk birimi) biriminin geniliidir. 8 bitlik bir ALU 2 adet 8 bitlik say zerinde topla, karma, arpma, blme yapabilirken, 32 bitlik bir ALU 32 bitlik 2 say zerinde ayn ilemleri yapabilir. 8 bitlik bir ALU 32bitlik 2 say zerinde 4 seferde ilem yaparken, 32 bitlik bir ALU ayn ilemi 1 kerede yapabilir. Genellikle d veri yolu genilii ALU veri geniliiyle ayn olur. Fakat 8088 ilemciler 16 bit ALU' ya sahipken 8 bit veri yollar vard. Modern Pentiumlar ise 32bit ALU' ya 64 bit veri yoluyla hizmet sunarlar. MIPS, "millions of instructions per second" yani saniyede yaplan ilem miktardr ve ilemcinin performans hakknda genel bir bilgi verebilir. Gnmzde ilemcilerde kullanlan farkl teknikler bu MIPS deerinin nemi azaltsa da, genel anlamda ilemci performansyla ilgili bilgi verebilir. Yonga, genellikle kk, ince bir silikon paras zerine asitle oyularak yerletirilen transistrlerin oluturduu btnleik devredir. Bir yonga 2-3 cm bykle milyonlarca transistr sdrlarak retilir.

Yukarda ki tablodan saat hzyla MIPS arasnda bir balant olduunu grebilirsiniz. En yksek saat hz yongann retim teknolojisine baldr. Ayrca transistr says ve MIPS arasnda da bir balant vardr. rnek olarak 8088 ilemci 5 Mhz hznda alt halde 0.33 MIPS (yaklak olarak 15 saat turunda 1 ilem) yapabilmektedir. Gnmzde ise modern ilemciler yaklak olarak her saat turunda 2 ilem yapabilmektedir LEMCLERN YAPISI lemcilerin nasl altn anlamak iin i yaplarn bilmek ve retim teknolojilerinin arkasnda ne yattn bilmek yardmc olabilir. Bu aamada assembly dilini ve mhendislerin ilemci hzlarn artrmak iin neler yaptn renebilirsiniz. Bir ilemci belli bir ilemi yapabilmek iin belli bir talimat dizisi altrr, bunu yaparken ey yapar:

Bir ilemci ALU birimini kullanarak toplama, karma, arpma ve blme gibi matematiksel ilemler yapabilir. Modern ilemciler zerlerinde daha karmak ilemler yapabilmek iin kayar nokta ilemcisi (FPU- floatin point processin unit) bulundururlar. Bir ilemci bir bellek adresindeki veriyi baka bir bellek adresine gnderebilir. Bir ilemci kararlar verip o kararlar uygulamak iin yeni talimatlar dizisine atlayabilir.

Bir ilemci ok kark ilemler yapabilir fakat asl olan 3 temel ilem vardr. Aada ki ak emasnda bu temel ii yapabilen ok basit bir ilemci gryorsunuz.

ekilde grlen en basit ilemcinin sahip olmas gereken olmazsa olmaz paralar:

Adres yolu (8 bit , 61 bit ve 32 bit olabilir) bellee adres gnderebilmek iin. Veri yolu (8 bit , 61 bit ve 32 bit olabilir) bellee veri gnderip almak iin. RD (read - okuma) hatt ve WR (yazma - hatt) bellee veriyi gndermek mi yoksa okumak m istediini belirtmek iin. Saat hatt, saat vurularn sisteme gndermek iin. Sfrlama hatt, yazlm sayacn sfrlamak ve yrtmeye yeniden balamak iin.

Bu rnek iin adres yolu ve veri yolunu 8 bit olarak kabul edelim. imdi bu basit ilemcinin paralar:

Ktk (register) A,B ve C basite flip-flop devrelerden oluan kilitlerdir. Adres kilidi (latch) ise ktk A,B ve C ile ayndr. Yazlm sayac ise, emir geldii zaman 1'lik bir art salayabilen basit bir kilittir. ALU sadece 8 bit saylar toplayabilecek kadar basit olabilecei gibi, toplama, karma, arpma ve blme yapabilenleri de vardr. Deneme (test) kt zerinde deer tutabilen zel bir kilittir ve ALU tarafndan yaplan karlatrmalarda kullanlr. ALU iki sayy bu kilit sayesinde karlatrabilir ve birbirine eit mi yoksa hangisinin daha byk olduuna karar verebilir. Deneme kt ayrca bir toplama ileminde oluan elde sayy tutmak iinde kullanlabilir. Bu ktk verileri flip-flop devrelerde saklar ve sonra talimat zcs bu verileri karar vermekte kullanr. ekilde "3-State" ad altnda 6 kutucuk gryorsunuz. Bunlara durum tamponu (tristate buffer) denir. Bir durum tamponu zerinden 1, 0 geirebilir veya gerektii takdirde kendini sistemden ayrabilir. Bir durum tamponu oklu sonularn bir kabloya balanmasn salar. Talimat kt ve talimat zcs ise dier bileenlerin denetlenmesinden sorumludur

Ayrca bu ekilde gzkmeyen baka hatlarda vardr:


A ktne veri yolundaki deeri kilitlemesini syle B ktne veri yolundaki deeri kilitlemesini syle C ktne veri yolundaki deeri kilitlemesini syle Yazlm sayac ktne veri yolundaki deeri kilitlemesini syle Adres ktne veri yolundaki deeri kilitlemesini syle Talimat ktne veri yolundaki deeri kilitlemesini syle Yazlm sayacna deeri bir arttrmasn syle Yazlm sayacna yeniden balamasn syle Alt durum tamponundan birine almasn syle (Bunun iin alt ayr yol kullanlr) ALU' ya hangi ilemi yapacan syle Deneme kilidine ALU' nun deneme deerlerini tutmasn syle RD (okuma) hattn etkinletir WR (yazma) hattn etkinletir

Talimat zcsne gelenler ise deneme ktnden, saat hattndan ve talimat ktnden gelir. Bir nceki blmde adresler, veri yollar , RD ve WR hatlarndan bahsetmitik. Bu yollar ve hatlar ayn zamanda RAM' e ve ROM' a da balanrlar. Bizim rneimizde ilemcimiz 8 bitlik bir adres yolu ve 8 bitlik bir veri yolumuz var. Bu ilemcimiz (2^8) 256 byte bellek adresleyebilir demektir ve her seferinde sadece 8 bit okuyup yaza bilir. Birde ilemcimizin 128 byte ROM'a sahip olduunu varsayalm, adresler 0'dan balayp 128'e kadar gitsin, 128'den 256'ya kadar ise 128 byte RAM olsun. ROM (read-only memory) sadece okunabilir bellek anlamna gelir. Bu ROM yongas daha nceden belirlenmi ve deitirilemez verilerden olumaktadr. Adres yolu ROM yongasnda hangi verinin okunup veri yoluna verileceini syler. RD hatt durum deitirdii zaman ROM yongasnda kaytl olan deer veri yoluna aktarlr RAM (random acces memory) rastgele eriilebilen bellek anlamna gelir ve ilemci RD ve WR hatlarnn durumuna gre bu yongaya veriyi yazar. Fakat RAM yongalarnn nemli bir eksii elektrik kesildii zaman verileri unutmasdr. Bu sebepten dolay ilemciler iin ROM bellekler vazgeilmezdir. Neredeyse btn bilgisayarlar belli bir miktar ROM kullanrlar (RAM'i olmayan basit bir bilgisayar yapmak kolaydr fakat ROM'u olmayan bir bilgisayar yapmak imkanszdr). Bir bilgisayarda ROM ncelikle BIOS' ta (Basic Input/Output System - Basit Giri/k Sistemi) kullanlr. lemci almaya balad zaman BIOS' ta kaytl olan talimatlar altrmaya balar. BIOS' ta ki talimatlar, sistem aygtlarnn denemesi ve sabit disk' in al dilimindeki (boot sector) veriyi bulmas gibidir. Al dilimi baka bir yazlmdr ve BIOS bu yazlm bir kere okuduktan sonra RAM' de depolar. Daha sonra ilemci balang dilimindeki talimatlar RAM' den okuyup yapmaya balar. Balang dilimi iletim sisteminin yklenmesi iin gerekli olan dosyalar sabit diskten bulup ykletir. Bu ilem, iletim sistemi tamamen yklenene kadar srer. lemci Talimatlar

LOADA mem - Ktk A' da ki verileri belirtilen bellek adresinden al LOADB mem - Ktk B' de ki verileri belirtilen belek adresinden al CONB con - Ktk B' ye sabit bir deer ata

SAVEB mem - Ktk B' yi belirtilen bellek adresine kaydet SAVEC mem - Ktk C' yi belirtilen bellek adresine kaydet ADD - A ve B' yi topla sonucu C' ye kaydet SUB - A' dan B' yi kart ve sonucu C' ye kaydet MUL - A ve B' yi arp ve sonucu C' ye kaydet DIV - A' y B' ye bl ve sonucu C' ye kaydet COM - A ve B' yi karlatr ve sonucu Deneme Ktnde tut JUMP addr - Belirtilen bellek adresine atla JEQ addr - Eer eitse belirtilen bellek adresine atla JNEQ addr - Eer eit deilse belirtilen bellek adresine atla JG addr - Eer bykse belirtilen bellek adresine atla JGE addr - Eer bykse veya eitse belirtilen bellek adresine atla JL addr - Eer kkse belirtilen bellek adresine atla JLE addr - Eer kkse veya eitse belirtilen bellek adresine atla STOP - Yrtmeyi durdur

Eer C dilini biliyorsanz aada greceiniz kodun 5'in faktriyelini (5*4*3*2*1=120) hesapladn greceksiniz. a = 1; f = 1; while(a <= 5) { f = f * a; a = a + 1; } Bu programn sonunda f deikeni 5'in faktriyeline karlk gelmektedir.Bir C derleyicisi bu C kodunu assembly diline evirir. Bu ilemcide RAM' in 128 no' lu adresten ve ROM' un (assembly dilini aklnda tutan) ise 0 adresinden baladn varsayarsak, bizim basit ilemcimiz iin assemble dili yle gzkecek: // a' nn 128 no'lu adresten baladn varsay // f' nin 129 no' lu adresten baladn varsay 0 CONB 1 // a=1; 1 SAVEB 128 2 CONB 1 // f=1; 3 SAVEB 129 4 LOADA 128 // eer a > 5 ise 17'ye atla 5 CONB 5 6 COM 7 JG 17 8 LOADA 129 // f=f*a; 9 LOADB 128 10 MUL 11 SAVEC 129 12 LOADA 128 // a=a+1; 13 CONB 1 14 ADD 15 SAVEC 128

16 JUMP 4 // baa dn 17 STOP imdi soru ise btn bu talimatlarn ROM' da nasl kaytl olduu. Btn bu assembly dili talimatlar birer ikili sayyla temsil edilir demitik. Anlamas kolay olsun diye her talimatn u saylara karlk geldiini dnn:

LOADA - 1 LOADB - 2 CONB - 3 SAVEB - 4 SAVEC mem - 5 ADD - 6 SUB - 7 MUL - 8 DIV - 9 COM - 10 JUMP addr - 11 JEQ addr - 12 JNEQ addr - 13 JG addr - 14 JGE addr - 15 JL addr - 16 JLE addr - 17 STOP - 18

Bu ikili saylar opcode (operation codes - ilem kodlar) olarak bilinir ve bizim kk yazlmmz ROM' da u ekilde grnr: // a' nn 128 no'lu adresten baladn varsay // f' nin 129 no' lu adresten baladn varsay Addr opcode deeri 0 3 // CONB 1 11 2 4 // SAVEB 128 3 128 4 3 // CONB 1 51 6 4 // SAVEB 129 7 129 8 1 // LOADA 128 9 128 10 3 // CONB 5 11 5 12 10 // COM 13 14 // JG 17 14 31 15 1 // LOADA 129 16 129 17 2 // LOADB 128 18 128 19 8 // MUL 20 5 // SAVEC 129

21 129 22 1 // LOADA 128 23 128 24 3 // CONB 1 25 1 26 6 // ADD 27 5 // SAVEC 128 28 128 29 11 // JUMP 4 30 8 31 18 // STOP Grld gibi 7 satr olan C kodumuz 17 satrlk assembly diline dnm oldu ve bu kod ROM'da 31 byte yer tutar. Talimat zc gelen opcode' lar sinyal dizilerine evirir ve her birini ilemcinin iinde ilgili olan yere ynlendirir. rnek olarak toplama talimatn ele alalm. 1.lk saat turunda talimat yklenir. Buna gre talimat zcs unlar yapar:

Yazlm sayac iin durum tamponunu altr RD hattn etkinletir Talimat talimat ktne kilitle

.kinci saat turunda toplama talimat zlr. Bunu iin unlar yaplr:

ALU toplama ilemi iin ayarlanr ALU' nun yapt ilemin sonucunu Ktk C' ye kaydet.

3.nc saat turunda yazlm sayac bir arttrlr. (Teoride bu ilem ikinci saat turunada kaydrlabilir.) Btn talimatlar yukarda grld gibi ilemciyi oluturan paralarn anlayaca ilemler dizisi haline getirilir. Baz talimatlar rnekte olduu gibi 3 saat turu zaman alrken bazlar 5 hatta 6 tura kadar kabilirler. lemcilerin Performanslar lemci zerindeki transistr saysnn ilemci hz zerindeki etkisi gerekten byktr. Daha nceden grld gibi saat arpann tasarmndan dolay 8088 bir ilemcide basit bir talimat 15 saat turu sryordu. Hatta bu ilemcide 16 bitlik bir sayy arpmak 80 saat turu sryordu. Daha fazla transistrle daha gl saat arpanlarla bu sayy 1 saat turuna kadar indirmek mmkn. Ayrca daha ok transistr boru hatt dediimiz bir teknolojiyi de mmkn klyor. Boru hatt zelliine sahip olan bir mimaride ilemler bir biri zerine bindirilerek bota kalan transistrlerinde kullanlmas saland iin ciddi performans artlar grlr. Yani 5 saat turu srecek olan bir ilemde ayn anda her aamada farkl bir ilem yaplarak 5 tur sonunda her saat turunda bir ilem tamamlanm olur. Gnmzde modern ilemciler her birinin ayr boru hatt olan birden fazla talimat zc kullanrlar. Bu oklu talimat akn salar ve ilemciye her saat turunda birden ok ilem yapabilme zellii katar. Bu retimi zor olan bu teknoloji fazla sayda transistr kullanlmasyla olur.

lemci retiminde eilim, hzl kayar nokta ileyicili (FPU), boru hatt yrtmeli, oklu talimat akna izin veren ve tam 32 bit ALU destei olan ilemcilere doru kaymtr. Ayrca zel ilem talimatlarn da (MMX, SSE gibi) gelime olarak saylabiliriz. Bu zel talimatlar birden ok talimat verimli ekilde altrarak hz arttrmay salar. Tabi baka tekniklerde sz konusu rnek olarak donanmsal sanal bellek destei ve L1 tampon bellek gibi teknolojilerde hz arttrmann yan sra transistr saysn da arttrmlardr.

S-ar putea să vă placă și