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