Internet, iletisim ve bilgi kaynagi olarak hayatimizda önemli bir
yere sahip. Peki bu dev iletisim aginin altyapisinin nasil
isledigini hiç merak ettiniz mi?
Bu yazinin dizilmesi sirasinda kullandigimiz bilgisayar bu isi
yapabilmek için bir mikroislemci kullandi. Mikroislemci dedigimiz
sey, bir masaüstü, bir sunucu ya da bir dizüstü olabilir hiç fark
etmez, herhangi bir bilgisayarin kalbidir. Kullandiginiz
mikroislemci bir Pentium, bir K6, bir PowerPC, bir Sparc ya da
herhangi bir marka olabilir, fakat hepsi de ayni isi hemen hemen
ayni yolla yaparlar.
Bilgisayarinizdaki mikroislemcinin ne yaptigini ya da mikroislemci
tiplerinin arasindaki farklari merak ediyorsaniz bu yaziyi okuyun.
Bu bölümde ister bir belgenin yazim denetimi isterse bir oyun
olsun, bilgisayarin bu isleri yapmasini saglayan en basit dijital
mantik tekniklerini ögreneceksiniz.
Mikroislemcinin tarihi
Merkezi islem birimi (CPU/Central Processing Unit) olarak da
bilinen mikroislemci, tek bir chip üzerine islenmis tastamam bir
hesap makinesidir. Ilk mikroislemci 1971 yilinda üretilen Intel
4004'dü. 4004 çok güçlü degildi -bütün yapabildigi toplama ve
çikarmaydi ve bunu bir kerede yalnizca 4 bit ile yapabiliyordu.
Fakat sasirtici olan her seyin tek bir chip üzerinde olmasiydi.
4004'ten önce, mühendisler ya çok sayida chip'i bir araya getirerek
ya da ayri ayri parçalari (o zamanlar kablo ile birbirlerine
baglanan transistörler) birbirlerine baglayarak bilgisayar
yapiyorlardi. 4004 ilk portatif elektronik hesap makinelerine güç
verdi.
Chip Nedir?
Tümlesik devre ye da entegre devre olarak da adlandirilan chip,
küçük ve ince bir silikon parçasidir. Bu silikon parçasina
mikroislemciyi olusturan transistörler yerlestirilmistir. Bir inç
büyüklükteki bir chip on milyonlarca transistörü içerebilir. Basit
islemciler birkaç milimetre karelik bir chip üzerinde birkaç bin
transistörü içerebilirler.
Ev bilgisayarini yaratan mikroislemci Intel 8080'dir. 1974 yilinda
yapimi gerçeklestirilen bu bilgisayar 8 bit'likti. Pazarda gerçek
bir siçrama yapan ilk mikroislemci ise, 1979'da üretilip IBM PC
içersine yerlestirilen Intel 8088'dir. Bu bilgisayarin pazara
çikisi 1982'yi buldu. Eger PC pazari ve tarihini az çok
izlemisseniz, PC pazarinin 8088'den 80286'ya, ardindan 80386'ya,
sonra 80486'ya, derken Pentium'a, Pentium'dan Pentium II'ye,
Pentium III'e ve Pentium 4'e dogru yol aldigini bilirsiniz. Bu
mikroislemcilerin hepsi Intel tarafindan yapildi ve 8088'in temel
tasarimi üzerine gelistirildi. Pentium 4 orijinal 8088 üzerinde
çalisan herhangi bir kod parçasini çalistirir; fakat bes bin kat
daha hizli olarak!..
Asagidaki tablo Intel'in yillar boyunca ürettigi çesitli
islemcilerin aralarindaki farklari anlamaniza yardimci
olacaktir.
|
|
|
|
|
|
|
|
|
Isim |
Tarih |
Transistörler |
Mikron |
Saat hizi |
Veri genisligi |
MIPS |
|
8080 |
1974 |
6,000 |
6 |
2 MHz |
8 bits |
0.64 |
|
8088 |
1979 |
29,000 |
3 |
5 MHz |
16 bits |
|
|
|
|
|
|
|
8-bit bus |
0.33 |
|
80286 |
1982 |
134,000 |
1.5 |
6 MHz |
16 bits |
1 |
|
80386 |
1985 |
275,000 |
1.5 |
16 MHz |
32 bits |
5 |
|
80486 |
1989 |
1,200,000 |
1 |
25 MHz |
32 bits |
20 |
|
Pentium |
1993 |
3,100,000 |
0.8 |
60 MHz |
32 bits |
|
|
|
|
|
|
|
64-bit bus |
100 |
|
Pentium II |
1997 |
7,500,000 |
0.35 |
233 MHz |
32 bits |
|
|
|
|
|
|
|
64-bit bus |
~300 |
|
Pentium III |
1999 |
9,500,000 |
0.25 |
450 MHz |
32 bits |
|
|
|
|
|
|
|
64-bit bus |
~510 |
|
Pentium 4 |
2000 |
42,000,000 |
0.18 |
1.5 GHz |
32 bits |
|
|
|
|
|
|
|
64-bit bus |
~1,700 |
Tablo hakkinda bilgi:
?Tarih, islemcinin ilk üretildigi yili gösterir. Birçok islemci
orijinal üretim tarihinden daha sonra daha hizli saat hiziyla
yeniden üretilebilir.
? Transistörler, chip üzerindeki transistör sayisini gösterir. Bir
chip üzerindeki transistör sayisinin her geçen yil hizla arttigini
görüyorsunuz.
?Mikron, chip içindeki en ince telin kalinligini mikron cinsinden
gösterir. Mikronun büyüklügü hakkinda bir fikir vermek için bir
insan saçinin 100 mikron kadar oldugunu söyleyelim. Chip üzerinde
yer alan elemanlari n boyutlari küçüldükçe, buraya sigdirilabilecek
transistor sayisi da artacaktir.
?Saat hizi, chip'in bir saat ritmi verebilecegi en yüksek orandir.
Saat hizi ileride ayrintilariyla açiklanacak.
? Veri Genisligi ALU'nun (Arithmetic/Logic Unit: Matematik/Mantik
Birimi) genisligini gösterir. 32 bit'lik bir ALU 32 bit sayiyi
isleyebilirken, bir 8 bit ALU iki adet 8 bit sayiyi toplayabilir,
çikarabilir, çarpabilir... Bir 8 bit ALU 32 bit'lik iki sayiyi
toplamak için 4 komutu yerine getirirken, 32 bit ALU ayni seyi
sadece bir komutla yerine getirir. Birçok durumda, dis veri yolu
ALU ile ayni genisliktedir, ama bu her durum için geçerli degildir.
8088'in 16 bit'lik bir ALU'su ve 8 bit'lik bir yolu vardi. Oysa
modern Pentium'lar, üzerinde bulundurduklari 32 bit ALU'lar için
bir defada 64 bit veri tasirlar.
? MIPS (Millions of Instructions per Second/ saniyede islenen
milyon cinsinden komut) CPU'nun performansinin ölçüsünü kabaca
gösterir. Modern CPU'lar birbirlerinden farkli öylesine çok is
yaparlar ki, MIPS degerleri büyük ölçüde anlamlarini
kaybetmektedir. Fakat siz yine de bu sütundan CPU'larin göreli
güçleri hakkinda genel bir bilgi edinebilirsiniz. Bu tablodan genel
olarak, saat hizi ile MIPS arasinda bir iliskinin oldugunu
görebilirsiniz. Maksimum saat hizi üretim sürecinin bir sonucudur.
MIPS ile transistör sayisi arasinda da bir iliski vardir. Örnegin,
8088 5 MHz saat hizindaydi, fakat sadece 0.33 MIPS'te islem
görüyordu (her 15 saat döngüsünde bir komut). Modern islemciler bir
saat döngüsüne iki komut oraninda islem görebilirler. Bu gelisme
dogrudan chip üzerindeki transistorlarin sayisiyla ilgidir.
Mikroislemcinin Içi
Bir mikroislemcinin nasil çalistigini anlamak için, içine bakmak ve
üretilisinde kullanilan mantigi ögrenmek gerek. Bu süreçte
mühendislerin bir islemcinin hizini artirmak için yapabildikleri
seylerin birçogunu ve bir mikroislemcinin anadili olarak
adlandirilan assembly dilini de ögrenebilirsiniz.
Bir mikroislemci, islemciye ne yapmasi gerektigini söyleyen bir
dizi makine komutunu yerine getirir. Mikroislemci komutlara göre
baslica üç islem yapar:
Bir mikroislemci ALU'sunu kullanarak toplama, çikarma, çarpma ve
bölme gibi matematiksel islemleri yapar. Modern mikroislemciler,
son derece karmasik islemleri gerçeklestirebilen kayan nokta
islemcileri (Floating point processor) içeriyorlar.
?Bir mikroislemci verileri bir bellek alanindan digerine hareket
ettirir.
?Bir mikroislemci karar verir ve bu verilmis kararlar uyarinca yeni
bir komut setine siçrar. Mikroislemcinin yaptigi çok karmasik
seyler olabilir, fakat bunlarin hepsi aslinda üç baslik altinda
toplanabilecek faaliyetleridir.
Asagidaki sema, bu üç faaliyeti yürütebilecek kapasitesi olan bir
hayli basit bir mikroislemciyi gösteriyor.
![]() |
Bu mümkün olabildigince basit bir mikroislemcinin yaptiklaridir. Bu
mikroislemcide sunlar vardir:
? Bir adres yolu (8, 16 ya da 32 bit genisliginde olabilir):
Bellege bir adres gönderir.
?Bir veri yolu (8, 16 ya da 32 bit genisliginde olabilir): Bellege
veri gönderir ya da bellekten veri alir.
? Bir okuma (RD/read) ve yazma (WR/write) hatti: Bellege,
adreslenmis alandan veri
almak ya da bu alana veri aktarmak isteyip istemedigini
bildirir.
? Bir saat hatti: Islemciye bir saat ritmi verir.
?Bir reset (sifirlama) hatti: Program sayacini sifira (ya da
belirtilen bir degere) yeniden yerlestirir (reset eder) ve
uygulamayi yeniden baslatir. Örnegimizde hem adres hem de veri
yolunun 8 bit genisliginde oldugunu farz edelim. Bu basit
mikroislemcinin bilesenleri asagida siralandigi gibidir:
? A, B ve C register'leri (saklayici, yazmaç)
Flip-Flop'lardan (ikidurumlu) olusan basit açma kapama (mandal,
latch) devreleridir.
? Adres mandal devresi (latch) aynen A, B ve C register'lari
gibidir.
?Program sayaci kendisinden istendiginde birer birer artis gösterme
ve kendisinden istendiginde sifira reset olma yetenegine sahip bir
mandal devresidir.
? ALU 8 bit toplayici kadar basit olabilir ya da baska bir deyisle
8 bit'lik degerleri toplar, çikarir, çarpar ve böler.
? Test register'i özel bir latch'dir (mandal). ALU içinde
gerçeklestirilmis karsilastirmalardan çikan degerleri tutar. Bir
ALU normal olarak iki sayiyi karsilastirir ve bunlarin esit olup
olmadiklarini, hangisinin digerinden büyük oldugunu tespit eder.
Test register'i ayrica normal olarak toplayicinin son asamasindan
bir tasima bit'i tutar. Bu degerleri Flip-Flop'lar içinde depolar
ve komut çözücü (instruction decoder) karar vermek için bu
degerleri kullanabilir.
?Semada "3 durum" olarak isaretlenen alti kutu var. Bunlar
tri-state (üç-durum) tamponlari dir. Bir tri-state tampon bir adet
1 ya da bir adet 0 geçmesine izin verir, baska bir deyisle devreyi
açar ya da kapatir. Bir tri-state tampon çok sayida çiktinin bir
kabloya baglanmasina izin verir. Fakat bunlardan sadece bir tanesi
hat üzerinde bir adet 1 veya bir adet 0 tasir.
? Komut register'i (instruction register) ve komut çözücüsü
(instruction decoder) diger bütün parçalari kontrol etmekle
yükümlüdür. Bu semada gösterilmemis de olsa, komut çözücüden
asagidaki islemleri yapan kontrol hatlari çikabilir:
A register'ina veri yolundaki mevcut degeri
mandallamasini/tutmasini söyler.
B register'ina veri yolundaki mevcut degeri
mandallamasini/tutmasini söyler.
C register'ina veri yolundaki mevcut degeri
mandallamasini/tutmasini söyler.
Program sayaci yazmacina (register) veri yolu üzerindeki
halihazirdaki degeri mandallamasini/ tutmasini söyler.
?Adres register'ina veri yolu üzerindeki halihazirdaki degeri
mandallamasini/tutmasini söyler.
? Komut register'ina veri yolu üzerindeki mevcut degeri
mandallamasini/tutmasini söyler.
?Program sayacina artmasini söyler.
? Program sayacina sifira reset olmasini söyler.
? Alti tri-state tamponundan (alti ayri hat) herhangi birini
etkinlestirir.
? ALU'ya yerine getirmesi gereken uygulamayi söyler.
? Test register'ina ALU'nun test bit'lerini
mandallamasini/tutmasini söyler.
?Okuma hattini etkinlestirir.
?Yazma hattini etkinlestirir.
Komut çözücüsüne gelenler, test register'i ve saat hatlarindan
(clock line) gelen bit'lerin yani sira komut register'inden gelen
bit'lerdir.
RAM ve ROM
Önceki bölümde adres ve veri yolu kadar Okuma ve Yazma hattindan da
söz ettik. Bu yollar ve hatlar RAM'i ya da ROM'u -genellikle her
ikisini- birlestirir. Bizim örnek mikroislemcimizde 8 bit
genisliginde adres yolu ve 8 bit genisliginde veri yolu var. Bu
demektir ki, mikroislemci bellekte 256 byte (28) veri
adresleyebilir ve bellekten bir keresinde 8 bit'lik veri okuyup ya
da yazabilir. Bizim basit mikroislemcimizde ROM'un 0 adreste
baslayan 128 byte ve 128 adreste baslayan RAM'inin 128 byte'a sahip
oldugunu farz edelim. ROM salt okunur (read-only) bellegin adidir.
Bir ROM chip, önceden yerlestirilmis kalici byte'larla
programlanmistir. Adres yolu ROM chip'e veri yolu üzerinde hangi
byte'i alacagini ve yerlestirecegini söyler. Okuma hatti durum
degistirdiginde, ROM chip'i veri yolu üzerinde seçilmis byte'i
gösterir. RAM rasgele erisimli (randomaccess) bellek anlaminda
kullanilir. RAM bilgi byte'larini kapsar ve mikroislemci
isaretlenmis okuma hattindan mi yoksa yazma hattindan mi sinyal
geldigine bagli olarak bu byte'lari okuyabilir ya da yazabilir.
Günümüz RAM chip'lerinin problemi, bilgisayar bir kez kapandiginda
her seyi unutmalaridir. Iste bu nedenledir ki bilgisayarin ROM'a
ihtiyaci vardir.
Hazir sirasi gelmisken sunu da ekleyelim. Hemen hemen bütün
bilgisayarlar belli miktarda ROM içerirler (RAM içermeyen basit
bilgisayarlar üretmek mümkündür -birçok mikrokontrolör bir miktar
RAM byte'ini islemci üzerinde koyarak yapar- ama genel olarak
konusursak, ROM'u olmayan bir bilgisayar üretmek mümkün degildir).
PC'deki ROM'lara BIOS (Basic Input/Output System) denir.
Mikroislemci çalismaya basladiginda, BIOS içerisinde bulunan
komutlari yürürlüge koymaya baslar. BIOS komutlari, bilgisayar
içindeki donanimlari test etmek gibi isler yapar ve ardindan
sabitdiske giderek boot (açilis) sektörü saptar. Bu boot sektör de
bir diger küçük programdir ve BIOS bu programi diskten okuduktan
sonra RAM'e yerlestirir.
Mikroislemci ardindan RAM'den aldigi boot sektör komutlarini yerine
getirmeye baslar. Boot sektör programi, mikroislemciye sabitdiskten
RAM'e baska bir sey alip getirmesini söyler, mikroislemci ardindan
bunu yerine getirir ve bu böyle sürer gider. Mikroislemci bütün
isletim sistemini iste böyle yükleyip çalistirir.
Mikroislemci Komutlari
Inanilmaz derecede basit olan ilk örnegimizde gösterilen
mikroislemci bile çok sayida komut dizisini alip isleyebilir. Bir
komut yigini, bit modelleri olarak çalistirilir. Bu bit modelleri
ise komut register'ina yüklendiklerinde farkli anlamlara sahip
olurlar. Insan hafizasi bit modellerini hatirlamakta pek iyi
degildir, bu yüzden bir dizi kisa kelime farkli bit modellerini
temsil etmek için tanimlanir. Bu kelimelerin toplami islemcinin
assembly dili olarak adlandirilir. Bir assembler, bit modellerinin
içindeki kelimeleri kolaylikla çevirir ve ardindan assembler'in
çiktisi mikroislemcinin çalismasi için bellege yerlestirilir. Iste
tasarimcisinin bizim örnegimizdeki basit mikroislemci için
olusturdugu assembly dilinin bazi komutlari:
LOADA mem - Load register A from memory address (A register'ini
bellek adresinden yükle)
LOADB mem - Load register B from memory address (B register'ini
bellek adresinden yükle)
CONB con - Load a constant value into register B (B register'ina
sabit deger yükle)? SAVEB mem - Save register B to memory address
(B register'ini bellek adresine kaydet) SAVEC mem - Save register C
to memory address (C register'ini bellek adresine kaydet)
ADD - Add A and B and store the result in C (A ile B'yi topla,
sonucu C'de sakla)
SUB - Subtract A and B and store the result in C (A ile B'yi çikar,
sonucu C'de sakla)
MUL - Multiply A and B and store the result in C (A ile B'yi çarp,
sonucu C'de sakla)
DIV - Divide A and B and store the result in C (A ile B'yi böl,
sonucu C'de sakla)
COM - Compare A and B and store the result in test (A ile B'yi
karsilastir, sonucu C'de sakla)
JUMP addr - Jump to an address (Bir adrese siçra)
JEQ addr - Jump, if equal, to address (Eger esitse, adrese
siçra)
JNEQ addr - Jump, if not equal, to address (Eger esit degilse,
adrese siçra)
JG addr - Jump, if greater than, to address (Eger büyükse, adrese
siçra)
JGE addr - Jump, if greater than or equal, to address (Eger büyükse
ya da esitse, adrese siçra)
JL addr - Jump, if less than, to address (Eger küçükse, adrese
siçra)
JLE addr - Jump, if less than or equal, to address (Eger küçükse ya
da esitse, adrese
siçra)
STOP - Stop execution (Islemi durdur)
C programlama dilinin nasil çalistigi hakkinda biraz fikri olanlar,
bu basit C kodunun (5=5!=5*4*3*2*1=120) 5 faktöryeli
hesaplayacagini bilirler.
a=1;
f=1;
while (a <= 5)
{
f = f * a;
a = a + 1;
}
Programin isletilmesinin sonunda, f degiskeni 5 faktöryeli içerir.
Bir C derleyicisi bu C kodunu assembly diline çevirir. RAM'in bu
islemci içerisinde adres 128'de ve ROM'un (assembly dili programini
kapsar) adres 0'da çalismaya basladigini farz edelim. Bu durumda
bizim basit mikroislemci için assembly dili asagidakine
benzer:
/ Assume a is at address 128
(adres 128'deki a'yi al)
// Assume F is at address 129
(adres 129'daki F'yi al)
0 CONB 1 // a=1;
1 SAVEB 128
2 CONB 1 // f=1;
3 SAVEB 129
4 LOADA 128 // if a > 5 the jump to 17
(eger 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 // loop back to if
(4. satirdaki eger kosuluna geri dönüs)
17 STOP
Simdi su soruyu sorabiliriz: "Bu komutlari n hepsi ROM'da nasil
görünüyor?" Bu assembly dili komutlarinin her biri bir ikili sayi
tarafindan temsil edilmeli. Basitlik için, asagida göreceginiz gibi
her assembly dili komutuna bir tek sayi verildigini farz
edelim:
? 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
Rakamlar opcode (opcode/islem kodu) olarak adlandirilir denir.
Bizim küçük programimiz ROM'da böyle görünecektir:
// Assume a is at address 128
128'deki a'yi al)
// Assume F is at address 129
(adres 129'daki f'yi al)
Addr opcode/value
0 3 // CONB 1
1 1
2 4 // SAVEB 128
3 128
4 3 // CONB 1
5 1
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
C kodunda yedi satirda islenen komutlar, assembly dilinde 17'ye
çikiyor ve bunun da ROM içinde 31 byte tuttugunu görebilirsiniz.
Komut çözücü, her islem kodunu mikroislemci içindeki farkli
parçalari çalistiran bir dizi sinyale dönüstürür. ADD (topla)
komutunu örnek alip nelere ihtiyaç duyacagina bakalim:
1. Birinci saat döngüsü sirasinda, komutun güncel
yüklenmesine ihtiyaç duyariz. Bundan dolayi komut çözücü sunlara
ihtiyaç duyar:
? program sayaci için tri-state tamponunu etkinlestirmek
? Okuma hattini etkinlestirmek
? tri-state tampon içindeki veriyi etkinlestirmek
? komutu komut register'ina aktarmak
2. Ikinci saat döngüsü sirasinda, ADD komutu
çözülür. Bu komutun simdi yapacak fazla isi yoktur:
? ALU'nun islemini toplamaya kurmak
?ALU'nun çiktisini C register'ina aktarmak.
3. Üçüncü saat döngüsü sirasinda, program sayaci
yükseltilir (teorik olarak, ikinci saat döngüsüyle çakisabilir bu).
Her komut, bu sekilde birer islem dizi seklinde parçalara
ayrilabilir. Bu Mikroislemcinin parçalarinin düzgün bir sekilde
çalismasini saglar. Bazi komutlar ise, yukarida örnek verdigimiz
ADD komutu gibi, iki ya da üç saat döngüsü alabilirken, bes ya da
alti saat döngüsü alabilen komutlar da vardir.
Mikroislemcinin Performansi
Mevcut transistörlerin sayisi islemcinin performansini önemli
ölçüde etkiler. Yukarida da gördügümüz gibi, 8088'e benzeyen bir
islemcideki tipik bir komutun yürürlüge sokulmasi 15 saat döngüsü
alacaktir. Çarpma islemi komutunun tasarimindan dolayi, 8088'de 16
bit'lik bir çarpma islemini yapmak için yaklasik olarak 80 döngüye
ihtiyaç vardir. Daha fazla transistör ile tek bir döngüde çok daha
fazla çarpma islemi yapilabilir. Daha çok transistor ayrica ardisik
düzen (pipelining) denen teknolojiye de izin veriyor. Bir ardisik
düzen mimarisinde, komut isletimi çakistirilabilir, yani ayni anda
birden fazla komutun farkli asamalari islenebilir. Böylece her bir
komutu yerine getirmek için bes saat döngüsüne ihtiyaç duyulmasina
ragmen bazen komutlarin yerine getirilmesi sirasinda ayni anda bes
komut isleniyor olabilir. Her saat döngüsünde bir komutun
tamamlanmasi gibi.
Birçok modern islemcide, her biri kendi ardisik düzenine sahip
çoklu komut çözücüleri vardir. Bu durum çoklu komut akisina izin
verir. Bu da birden fazla komutun bir saat döngüsünde yerine
getirilmesini saglar. Bu teknigi uygulamak çok karmasik olabilir,
bu nedenle çok fazla transistöre ihtiyaç duyulur. Islemci
tasariminda, çoklu komut akisiyla ardisik düzen isletimli ve hizli
kayan nokta islemcisi içeren 32-bit ALU'ya dogru bir egilim var.
Belli islemleri etkin bir biçimde gerçeklestiren özel komutlara
(MMX komutlari gibi) dogru bir yönelim de buna eslik ediyor.
Islemci chip'ine L1 önbellegi ve donanim haline getirilmis sanal
bellek eklemek de bir egilim olarak görünüyor. Tüm bu egilimler,
transistörün önemini daha da artiriyor. Bu islemciler bir saniyede
bir milyar kadar komutu yerine getirebilecekler!
Marshall Brain
Copyright 2000 HowStuffWorks.com