RISC ´┐Ż´┐Żlemciler

Giri´┐Ż

Bug´┐Żne kadar hep duymu´┐Żuzdur, RISC makine diye hep bahsederler iyidir guzeldir derler fakat bu RISC nedir ? neden h´┐Żzl´┐Żd´┐Żr ? iyi midir? k´┐Żt´┐Ż m´┐Żd´┐Żr ? kimse bahsetmez. Hatta ne oldu´┐Żu bile s´┐Żylenmez RISC denir ge´┐Żilir.

Bu konuyu biraz a´┐Żal´┐Żm dedim. ´┐Żlk olarak RISC'in a´┐Ż´┐Żl´┐Żm´┐Żn´┐Ż soyleyelim : "Reduced Instruction Set Computer". Instruction, CPU(processor) nun ´┐Żal´┐Ż´┐Żt´┐Żrabildi´┐Żi en ufak program komudu oldu´┐Żuna g´┐Żre bu a´┐Ż´┐Żl´┐Żma g´┐Żre bizim i´┐Żlemcimizin komut say´┐Żs´┐Żn´┐Żn azalt´┐Żlm´┐Ż´┐Ż oldu´┐Żu sezinlenir. Peki neden azaltal´┐Żm ? Bunun alt´┐Żndaki mant´┐Żk, fazla kar´┐Ż´┐Ż´┐Żk komutlar´┐Ż i´┐Żlemcinin i´┐Żinde tan´┐Żmlamayarak h´┐Żz´┐Ż artt´┐Żrmak. Bir ´┐Żekilde mikro´┐Żipin i´┐Żinde silikonda bo´┐Żalan yeride daha fazla register tan´┐Żmlamak i´┐Żin kullanabiliriz. Maliyet d´┐Ż´┐Żecek, h´┐Żz artacak, ne kadar g´┐Żzel de´┐Żil mi ?

Geli´┐Żme

Peki bunlar do´┐Żrusuysa biz bunu neden kullanm´┐Żyoruz da ba´┐Żka bir´┐Żey (hatta ne) kullan´┐Żyoruz diyeceksiniz. CISC (Complex Instruction Set Computer) dedi´┐Żimiz tam kar´┐Ż´┐Ż d´┐Ż´┐Ż´┐Żnceyi savunan bir metodolojiyi kullan´┐Żyoruz. Yani karma´┐Ż´┐Żk komutlar´┐Ż da tan´┐Żmlarsak birka´┐Ż basit i´┐Żlem yapmak yerine bir atomik i´┐Żlemde hallederiz de performans´┐Ż artt´┐Żr´┐Żr´┐Żz diye bir g´┐Żr´┐Ż´┐Ż. CISC'ler en az 200 komut destekler. RISC'te bu say´┐Ż daha azd´┐Żr. Halen CISC kullanmam´┐Żz´┐Żn yegane sebebiyse zaman´┐Żnda y´┐Żksek seviyeli programlama dillerinde (high-level programming languages) kolayl´┐Żk sa´┐Żlamak. Tabi o g´┐Żnler geride kald´┐Ż derleyiciler (compiler) geli´┐Żti, bence gelecekte RISC'e geri d´┐Żn´┐Ż´┐Ż ka´┐Ż´┐Żn´┐Żlmaz olacakt´┐Żr.

Birazda i´┐Żlemcinin i´┐Żine girip performans analizi yapal´┐Żm. CPU iki bol´┐Żmden olu´┐Żur : Arithmetic Logic Unit (ALU) ve Control Unit (CU). ALU aritmetik ve mant´┐Żksal i´┐Żlemleri yaparken CU (Control Unit) da komutlar´┐Ż bellekten (memory) ´┐Żeker (fetch), yorumlar (decode) ve ´┐Żal´┐Ż´┐Żt´┐Żr´┐Żr (execute) gerektik´┐Że ALU yu kullan´┐Żr (Yani fetch/execute d´┐Żng´┐Żs´┐Żn´┐Ż ger´┐Żekle´┐Żtirir). Bu fetch/execute i´┐Żlemleride i´┐Żlemcinin i´┐Ż yap´┐Żs´┐Ż ve bus yap´┐Żs´┐Ż/say´┐Żs´┐Żna g´┐Żre birtak´┐Żm mikro-komutlardan (micro-instruction) olu´┐Żur. (Hani derler ya ´┐Żu instruction ´┐Żu kadar CPU d´┐Żng´┐Żs´┐Ż (CPU cycle) s´┐Żrer diye i´┐Żte o bu komutun ´┐Żal´┐Ż´┐Żmas´┐Ż i´┐Żin ´┐Żal´┐Ż´┐Żan toplam micro-instruction say´┐Żs´┐Żn´┐Żn ta kendisidir). RISC i´┐Żlemcilerin bir di´┐Żer olay´┐Ż "Pipelined" olmalar´┐Żd´┐Żr. Pipelined dedi´┐Żimiz ´┐Żey her bir CPU d´┐Żng´┐Żs´┐Żnde (CPU cycle) bir komut ´┐Żal´┐Ż´┐Żt´┐Żrabilmek. Bunu ba´┐Żarman´┐Żn anahtar´┐Żda bir komudu ´┐Żal´┐Ż´┐Żt´┐Żr´┐Żrken (execute) bir sonra gelecek olan´┐Ż bellekten (memory) ´┐Żekerek (fetch) olur. Normal i´┐Żlemcilerde ise bir komut ´┐Żal´┐Ż´┐Żt´┐Żrmak birden fazla CPU i´┐Żlemi gerektirir. Tablo 1 ve Tablo 2 de CISC ve RISC i´┐Żim t zaman´┐Żnda yap´┐Żlan i´┐Żlemleri g´┐Żrebilirsiniz.

CISC
t=0 t=1 t=2 t=3
fetch(a) execute(a) fetch(b) execute(b)

Tablo - 1

RISC
t=0 t=1 t=2 t=3
fetch(a) execute(a) execute(b) execute(c)
  fetch(b) fetch(c) fetch(d)

Tablo - 2

Control Unit'in (CU) yap´┐Żs´┐Żn´┐Ż biraz inceleyelim, "Hard-wired Control Unit" ve "Microprogrammed Control Unit" diye ikiye tiptir. "Hard-wired Control Unit" de mikro-komutlar´┐Żn tamam´┐Ż elektronik devre olarak tan´┐Żmlanm´┐Ż´┐Żt´┐Żr dolay´┐Żs´┐Żyla extra h´┐Żzl´┐Żd´┐Żr, "Microprogrammed Control Unit" de ise mikro-komutlar belirli bir medyada (ROM vs.) yaz´┐Żl´┐Żd´┐Żr. Yani bu mikro-komutlar kodlar´┐Ż bir yerden okunur (gereginde oraya yeniden yaz´┐Żlabilirler). Yeniden yaz´┐Żlabilmesinden dolay´┐Ż "Microprogrammed Control Unit" daha esnektir. Prensip olarak RISC "Hard-wired Control Unit" e, CISC te "Microprogrammed Control Unit" e tekabul eder. ´┐Żoyle bir kar´┐Ż´┐Żla´┐Żt´┐Żrma yapabiliriz :

RISC (Hard-wired Control Unit) CISC (Microprogrammed Control Unit)
H´┐Żzl´┐Ż Nispeten yava´┐Ż
Ucuz Pahal´┐Ż
Yeniden dizayn zor Esnek
Daha az komut (instruction) Daha fazla komut (instruction)
Daha fazla saklay´┐Żc´┐Ż bellek (register) Daha az saklay´┐Żc´┐Ż bellek (register)

Tablo - 3

Sonu´┐Ż

Bu kar´┐Ż´┐Żla´┐Żt´┐Żrma boyle s´┐Żr´┐Żp gider, unutmay´┐Żn hayat bir pazarl´┐Żkt´┐Żr. Bir yerden verirsiniz bir yerden al´┐Żrs´┐Żn´┐Żz. Ama´┐Żsa bu de´┐Żi´┐Żkenlerle oynayarak optimum sonuca ula´┐Żmakt´┐Żr.

´┐Żok ilgin´┐Żtir RISC & "Hard-wired Control Unit" eskiden kullan´┐Żlm´┐Ż´┐Ż olup CISC & "Microprogrammed Control Unit" daha yenidir. Ama sonu´┐Ż olarak gidi´┐Żhat ikinciden yanad´┐Żr ama gelecek tabiiki iyinin olacakt´┐Żr, bana g´┐Żvenin. :)))

K´┐Żsaltmalar ve Tan´┐Żmlar :

RISC : (Reduced Instruction Set Computer) ´┐Żndirgenmi´┐Ż Komut Setli Bilgisayar
CISC : (Complex Instruction Set Computer) Kar´┐Ż´┐Ż´┐Żk Komut Setli Bilgisayar
CPU : (Central Processing Unit) Merkezi ´┐Ż´┐Żlem Birimi, Prosessor, ´┐Ż´┐Żlemci
CU : (Control Unit) Kontrol (Denetim) Birimi
Instruction : Komut
Register : Saklay´┐Żc´┐Ż Bellek
CPU Cycle : CPU d´┐Żng´┐Żs´┐Ż, her bir fetch+execute i´┐Żlemi

Levent Karakas <levent at mektup dot at>

 

Son g´┐Żncelleme : 21.05.2001