İçeriğe atla

RISC

İndirgenmiş Buyruk Küme Bilgisayar (İngilizce: Reduced Instruction Set Computer, kısaca RISC), işlemci tasarım alanında 1980'li yıllarda önerilen ve giderek CISC'in yerini alan bir buyruk kümesi mimarisidir.

Tarihsel gelişimi

1980'lerin başında bilgisayar kullanımını kolaylaştıran işletim sistemi ve programlama dilini makine diline otomatik tercüme eden derleyici gibi önemli yazılımlar, o dönemki derleyicilerin yeterince verimli olmaması nedeniyle makine diline bire bir eş kavramlar içeren Assembly dilinde yüksek emek sarfıyla yazılırdı. Her şeyin C programlama dili ile yazıldığı Unix işletim sistemi o sıralarda büyük kabul görmeye başladı. Daha sonra CISC mimarisinde bulunan çoğu Assembly komutunun aslında pek kullanılmadığı, bu yüzden sadece kesin kullanılacağı bilinen, az sayıda ve daha özenle tasarlanmış bir komut takımının hem zaman, hem enerji israfını azaltacağı savı tutulmaya başladı. RISC terimi ilk David Patterson tarafından önerildi.[1]

Berkeley RISC projesi 1982'de CISC tasarımlarında ortalama 100.000 transistöre karşılık sadece 44.420 transistörden oluşan ve 32 komut içeren RISC-I işlemcisini teslim etti. RISC-I çipi diğer tüm tek çipli tasarımlardan daha iyi bir performans gösteriyordu. Peşinden 1983 yılında 40.760 transistör, 39 komut içeren ve RISC-I'den üç kat daha hızlı RISC-II geldi.

Stanford RISC projesi 1981'de Stanford Üniversitesi'nde John L. Hennessy tarafından lisansüstü bir dersten gelişti. 1983'te çalışan bir sistem ile, 1984'te basit programları çalıştırabilen bir çözüm ile sonuçlandı. Aynı yıl kurulan MIPS Computer Systems 1985'te MIPS ve R2000 microprocessor ürünlerini pazarlar hale geldi.

Hewlett Packard 1986'da PA-RISC, 1987'de SUN Microsystems SPARC, IBM 1990 ve 1995'te kendi RISC temelli server ürünleri ile gelişme devam etti. Günümüzde hem yüksek kapasiteli merkezi sistemler, hem de küçük ölçekte ve kullanıcıya yakın çözümlerde özellikle ARM, MIPS, SH4, PowerPC, AVR temelli sistemler çoğunluktadır.

CISC bile artık donanım seviyesinde (fazladan devrelerle) RISC'e derlenip aslında RISC kullanarak gerçekleştirilmektedir.

2010 yılında Berkeley'de başlayıp 2014'te sonuç veren RISC-V projesi ile güncel ihtiyaçlara cevap veren ilk açık kaynak RISC hayata geçti.[2]

Öbür mimarilerden farkları

Bilgisayar tasarımında önemli noktalardan birisi işlemcinin buyruk kümesinin belirlenmesidir. Belirli bir bilgisayar için seçilen buyruk kümesi bu bilgisayarın makine diliyle yazılımlanmasını belirler. Eski bilgisayarlarda küçük ve basit buyruk kümeleri mevcuttur. Bunun nedeni komutları yürütecek donanımın küçük tutulmasıydı. Sayısal donanım ucuzlamaya başlayıp, tüm devreler daha ileri bir seviyeye ulaşınca bilgisayar komutları da hem sayı hem de karmaşıklık olarak arttı. Bazı bilgisayarlar 100 hatta 200'ün üzerinde buyruk kümesine sahip oldular. Bu bilgisayarlar çok farklı veri tiplerini kullanabiliyorlar ve çok sayıda adresleme kipi bulunuyordu. Bilgisayar donanımlarının karışık olma eğilimi birçok etkenin sebep olduğu bir olaydır. Örneğin mevcut kiplerin güncellenmesi, yüksek seviyeli dilden makine diline geçişin sağlanması ve yazılım temelli işlevlerin donanım temelli olmasının sağlanması bu nedenlerden bazılarıdır. Çok sayıda komutları bulunan bir bilgisayar CISC olarak adlandırılır.

Yüksek düzeyli dillerde yazılmış olan yazılımların CISC makinelerde derlenmesi ile elde edilen kodlar incelendiğinde:

  • Çok sayıda atama (A=B) yapıldığı
  • Erişilen verilerin çoğunlukla yerel ve skaler (dizi ve matris olmayan) veriler olduğu
  • Makine dili yazılımlarda en büyük yükü altyazılım çağrılarının oluşturduğu
  • Altyazılımların büyük çoğunluğunun (%98) 6 veya daha az parametre aldığı
  • Altyazılımların büyük çoğunluğunun (%92) 6 veya daha az yerel değişken kullandığı
  • Altyazılım çağırma derinliğinin büyük çoğunlukla (%99) 8'den daha az olduğu

belirlenmiştir. Yüksek düzeyli yazılımlama dillerinin oluşturduğu bu veriler dikkate alınarak merkezi işlem birimlerinin verimlerini artırmak amacıyla daha az bellek erişimi yapan ve:

  • Daha az sayıda komut
  • Daha az sayıda adresleme kipi
  • Sabit uzunlukta komut yapısı (komut çözme işi kolaydır)
  • Doğrudan bellek üzerinde işlem yapan komutlara sahip olmayıp, işlemlerin iç saklayıcılarda yapılması
  • Belleğe sadece okuma/yazma işlemleri için erişme
  • Tek çevrimde alınıp yürütülebilen komutlar (komut işhattı sayesinde)
  • Devrelendirilmiş (hardwired) donanım birimi

özelliklerine sahip olan RISC işlemciler tasarlanmıştır. Bazıları tüm RISC makinelerde bulunmayan bazıları ise CISC makinelerde de rastlanılabilen RISC işlemciler için özellikle önemli özellikler ise:

  • Çok sayıda saklayıcı (register file)
  • Kesişimli saklayıcı penceresi (overlapped register window)
  • Komutlar için optimize edilebilen işhattı(pipeline)
  • Derleyici desteği

olarak sayılabilir.

Ayrıca bakınız

Kaynakça

  1. ^ Reilly, Edwin D. (2003). Milestones in computer science and information technology. ss. 50. ISBN 1-57356-521-0. 
  2. ^ Waterman, Andrew; Lee, Yunsup; Patterson, David A.; Asanovi, Krste. "The RISC-V Instruction Set Manual, Volume I: Base User-Level ISA version 2 (Technical Report EECS-2014-54)". University of California, Berkeley. 19 Ağustos 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Aralık 2014. 

İlgili Araştırma Makaleleri

Komut kümesi mimarisi, CPU'nun yazılım tarafından nasıl kontrol edileceğini tanımlayan bilgisayar soyut modelinin bir parçasıdır. ISA, işlemcinin ne yapabileceğini ve bunu nasıl yapacağını belirterek donanım ve yazılım arasında bir arayüz gibi davranır.

MIPS, Microprocessor without Interlocked Pipeline Stages, MIPS teknolojileri adlı firma tarafından 1985 yılında geliştirilmiş indirgenmiş komut kümesi türü bir mikroişlemci mimarisidir.

<span class="mw-page-title-main">Derleyici</span> kaynak kodunu bilgisayarın işleyebileceği koda dönüştüren program

Derleyici, kaynak kodu makine koduna dönüştüren yazılımdır. Bir programlama dilinin derleyicisi, o programlama dili kullanılarak yazılmış olan kodu hedef işlemci mimarisine göre uygun şekilde makine koduna derler ve genellikle çıktı olarak yürütülebilir dosyanın oluşturulmasını sağlar. Bu eyleme derleme denir. Bir başka ifadeyle derleyici, bir tür yazı işleyicidir; girdi olarak yazı alır ve çıktı olarak yazı verir.

<span class="mw-page-title-main">Merkezî işlem birimi</span> bir bilgisayar programının talimatlarını, talimatlar tarafından belirtilen temel aritmetik, mantıksal, kontrol ve giriş/çıkış (G/Ç) işlemlerini gerçekleştirerek yürüten ve diğer bileşenleri koordine eden bir bilgisayar içindeki elektro

Merkezî işlem birimi, dijital bilgisayarların veri işleyen ve yazılım komutlarını gerçekleştiren bölümüdür. Çalıştırılmakta olan yazılımın içinde bulunan komutları işler. Mikroişlemciler ise tek bir yonga içine yerleştirilmiş bir merkezî işlem birimidir. 1970'lerin ortasından itibaren gelişen mikroişlemciler ve bunların kullanımı, günümüzde MİB teriminin genel olarak mikroişlemciler yerine de kullanılması sonucunu doğurmuştur.

Bellek bilgisayarı oluşturan 3 ana bileşenden biridir.. İşlemcinin çalıştırdığı programı, lar ve programa ait bilgiler bellek üzerinde saklanır. Bellek geçici bir depolama alanıdır. Bellek üzerindeki bilgiler güç kesildiği anda kaybolurlar. Bu nedenle bilgisayarlarda programları daha uzun süreli ve kalıcı olarak saklamak için farklı birimler mevcuttur.

<span class="mw-page-title-main">PIC</span>

PIC, Microchip firmasının ürettiği mikrodenetleyicilere verilen addır

Karmaşık komut setli bilgisayar, bilgisayarın işlemcisinin komutlarının tipini ifade eder. Komutları karmaşık olan bir işlemci de her komutun işlemci tarafından decode edilmesi uzun sürer ve devrenin bu biçimi silikon üzerinde de fazladan yer kaplar. RISC işlemciler komut sayısını azaltarak, performans kazanmayı hedeflemişlerdir.

<span class="mw-page-title-main">Mikroişlemci</span> ana işlem biriminin fonksiyonlarını tek bir yarı iletken tümdevrede birleştiren programlanabilir sayısal elektronik bileşen

Mikroişlemci, işlemci olarak da bilinen, merkezî işlem biriminin (CPU) fonksiyonlarını tek bir yarı iletken tüm devrede (IC) birleştiren programlanabilir bir sayısal elektronik bileşendir.

<span class="mw-page-title-main">Assembly</span> uygulanan işlemlerle programlama dilinin birbirine çok yakın olduğu düşük seviye programlama dilleri

Assembly dili, bir işlemcinin komut kümesi üzerine tanımlanmış alt seviye bir dildir. Assembly dili kolay hatırlanabilir semboller tanımlar ve böylece işlemcinin makina koduna karşılık gelen sayı dizilerinin bilinmesine gerek kalmaz. Assembly dili, platformdan bağımsız yüksek seviyeli programlama dillerinin aksine, işlemci mimarisine bağımlıdır. Tipik uygulamaları; cihaz sürücüleri, alt seviyeli dahili (embedded) ve gerçek zamanlı sistemlerdir. Bır assembly programı assembler kullanılarak makine koduna çevrilir.

<span class="mw-page-title-main">Bilgisayar mimarisi</span>

Bilgisayar mimarisi, en küçüğe ve en başarılıya ulaşmayı hedeflerken aynı zamanda maliyeti de göz önünde bulundurduğu için sanat ve bilimin ortak buluştuğu nokta olarak da tanımlanır. Bilgisayar Mimarisi, bilgisayar parçalarının iç yapıları ve aralarındaki haberleşme bağlantıları ile ilgilidir.

Yazmaçların yeniden adlandırılması, işlemcilerde, yürütülen buyruklardaki, aynı yazmaçların tekrar kullanımından doğan sahte bağımlılıkları gidermek için kullanılan bir yöntemdir.

<span class="mw-page-title-main">Itanium işlemcisi</span>

Itanium işlemcisi, Intel firmasının 64-bit işlemci ailesinden olup IA-64 mimarisi kullanan işlemcilerinin devamı olarak bilinir. Itanium ve Itanium2 olarak sunulan bu işlemci ilk olarak Ekim 2001'de piyasaya sürülmüştür. Itanium işlemcilerin asıl hedefi yüksek performansa sahip bilgisayarlardı. Bu işlemcinin mimarisinin gelişimi ilk olarak Hewlett-Packard tarafından yapılmıştır ve devamında ise Intel ve Hewlett-Packard ortak olarak birlikte gerçek Itanium mimarisini geliştirmişlerdir.

Sayfalama ya da bellek adresleme, durgun sanal bellek sayfalarının ikincil bellekte (teker) saklanarak daha sonra ihtiyaç duyulduğunda ana belleğe yüklenmesi işlemini içerir. Bir diğer anlamı, adres uzayının belli oranlarda bloklara ayrılmasıdır. Sayfalama, bellek mahallerine ulaşımı ve adreslemeyi kolaylaştırır. 6502 mikroişlemcili bir sistemde 65536'lık adres uzayı 256 adet 256 Baytlık hayalı sayfalara ayrılır. Genelde 6502 işlemcili sitemlerde 1. sayfa yığın olarak ayrılırken 0. sayfaya bakış tabloları veya veri blokları yerleştirilir.

<span class="mw-page-title-main">IBM POWER mimarisi</span>

IBM POWER, IBM tarafından geliştirilen RISC tabanlı bir komut kümesi mimarisidir. POWER serisi mikroişlemcileri ana işlemci olarak birçok IBM sunucusunda, küçük bilgisayarlarda, iş istasyonlarında ve süper bilgisayarlarda kullanılıyor. POWER3 ve sonrasında gelen POWER mikroişlemci serilerinde tamamıyla 64-bit PowerPC mimarisi uygulanmıştır. POWER3 ve üstü mikroişlemcilerde eski POWER komutları uygulanmamıştır.

IA-32 (32-bit Intel mikromimarisi, çoğunlukla i386, x86-32 veya x86 olarak bilinir,bugün bile Intel'in en başarılı ticari mikroişlemci mimarisi olarak kabul edilir., Grubun ilk üyesi Intel 80386 dır bundan önceki x86 tasarımları 16 bittir -Intel 8086, 80186 ve 80286 işlemcileri. Bu mikromimari komut kümeleri dünyadaki kişisel bilgisayarların büyük çoğunluğu içinde bulunan mikroişlemciler için geçerlidir.

Bir buyruk kümesinde tanımlı adresleme yöntemi ya da adresleme kipi, makine dili buyruklarının bir işleneni nasıl işleyeceğini tanımlar. Bilgisayar programlamada adresleme yöntemleri doğrudan simgesel dilde kod yazan derleyici yazanların ilgi alanına girer. Pek çok RISC makinede sadece 5 tane adresleme yöntemi vardır ancak DEC Vax gibi CISC makinelerde onlarca bulunur.

<span class="mw-page-title-main">Çoklu kullanım</span>

Çoklu kullanım özelliğine sahip bilgisayarlar birden fazla iş parçacığını donanım desteği sayesinde çalıştırabilir. Çoklu işlem yapabilen sistemlerden gelişen bu yöntem tek bir çekirdeğin kaynaklarını paylaşmak zorundadır. Bu kaynaklar: aritmetik mantık birimi, yazmaçlar (registers), işlemci ön belleği ve adres dönüştürme ön belleğidir. Çoklu işlem yapabilen sistemlerde, işlem birimlerinin tamamı ayrı çekirdeklerde olmasına rağmen, çoklu kullanım tek bir çekirdeğin kullanılabilirliğini iş-parçacığı seviyesinde ve buyruk düzeyinde daha verimli hale getirir. Bu iki teknik birbirini tamamlayan tekniklerdir.

Çok uzun buyruk kelimesi, buyruk düzeyindeki paralelliğin avantajından yararlanmak için geliştirilmiş bir işlemci tasarımıdır. Her buyruğu arka arkaya çalıştıran işlemciler, işlemci kaynaklarını verimsiz bir şekilde kullanabilmekte ve bu durum da başarımın düşmesine neden olmaktadır. Başarım, sıralı çalışan buyrukların çalıştırılma basamaklarında farklı aşamalarda olmasıyla veya aynı anda birden fazla buyruğun birbirinden bağımsız olarak çalıştırılmasıyla arttırılabilir. Bu yöntemlerin daha da iyileştirilmesi, buyrukların programdaki sırasından farklı bir sırada çalıştırılması ile sağlanabilir; bu yönteme de Sırasız yürütüm denir.

İşlem kodu, bilgisayar teknolojisinde makine dili komutunun, gerçekleştirilecek işlemi belirten kısmıdır. Bunların özellikleri ve biçimi, söz konusu işlemcinin komut kümesinde ortaya koyulur. Bir komutta, normalde işlem kodundan yanı sıra üzerinde işlem gerçekleştirilmesi gereken bir veya daha fazla belirteçleri vardır. Fakat bazı işlemlerde örtük (implicit) işlem kodları olabilir veya hiçbir işlem kodu olmayabilir. İşlem kodları ve işlenen (operand) belirteçleri için neredeyse tekdüze alanları olan komut setleri vardır. Bazılarında ise daha karmaşık ve çeşitli uzunluk yapıları vardır.

Uygulamaya özel komut seti işlemcisi (UÖKİ) veya ASIP, yongada sistem tasarımında kullanılan bir bileşendir. Aynı zamanda bir tasarım yöntemi olarak kullanılır. Bir UÖKİ'nin komut seti, belirli bir uygulamaya fayda sağlayacak şekilde uyarlanmıştır. Çekirdeğin özelleşmesi, genel amaçlı bir CPU'nun esnekliği ve bir ASIC'in performansı arasında denge sağlar.