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