Sunucu Bilgisayarlarda Kullanılan CISC ve RISC İşlemcilerin Performans Karşılaştırımı



Benzer belgeler
Sunucu Bilgisayarlarda Kullanılan CISC ve RISC İşlemcilerin Performans Karşılaştırımı

ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM GELİŞTİRME OLANAKLARI HAKKINDA BİR İNCELEME

BİLGİSAYAR MİMARİSİ. Komut Seti Mimarisi. Özer Çelik Matematik-Bilgisayar Bölümü

Bilgisayar Mimarisi ve Organizasyonu Giriş

İşletim Sistemlerine Giriş

İŞLEMCİLER (CPU) İşlemciler bir cihazdaki tüm girdilerin tabii tutulduğu ve çıkış bilgilerinin üretildiği bölümdür.

MİKROİŞLEMCİ MİMARİLERİ

BM-311 Bilgisayar Mimarisi

Mimari Esaslar. Mikroişlemcinin mimari esasları; Kaydediciler Veriyolları İş hatları dır.

BM-311 Bilgisayar Mimarisi

Bilgisayar Mimarisi Nedir?

Çok Çekirdekli İşlemciler ve Paralel Yazılım Geliştirme Olanakları Hakkında Bir İnceleme

Mikrobilgisayar Sistemleri ve Assembler

Dr. Feza BUZLUCA İstanbul Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü

DOKUZ EYLÜL ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ DEKANLIĞI DERS/MODÜL/BLOK TANITIM FORMU. Dersin Kodu: CME 2006

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi

PARALEL HESAPLAMA ÇAĞRI GİDER ENES BİLGİN

Bilgisayar Mimarisi ve Örgütleşimi (COMPE 331) Ders Detayları

Yrd.Doç.Dr. Celal Murat KANDEMİR

Veritabanı. Ders 2 VERİTABANI

İşletim Sistemleri (Operating Systems)

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN

BM-311 Bilgisayar Mimarisi

SİSTEM İHTİYAÇLARI (Tiger Enterprise / Tiger 3 Enterprise)

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

SİSTEM İHTİYAÇLARI (Tiger Plus / Tiger 3)

İleri Bilgisayar Mimarileri (COMPE 532) Ders Detayları

MİKROİŞLEMCİLER. Mikroişlemcilerin Tarihsel Gelişimi

DONANIM. 1-Sitem birimi (kasa ) ve iç donanım bileşenleri 2-Çevre birimleri ve tanımlamaları 3-Giriş ve çıkış donanım birimleri

İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır.

Öğr.Gör. Gökhan TURAN Gölhisar Meslek Yüksekokulu

SPARC v8 İŞLEMCİ SİMÜLASYONU

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS. Bilgisayar Organizasyonu BIL

İşlemci Tasarımı ve Aşamaları

4. HAFTA KBT104 BİLGİSAYAR DONANIMI. KBUZEM Karabük Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi

İleri Bilgisayar Mimarileri (COMPE 532) Ders Detayları

İşletim Sistemi. BTEP205 - İşletim Sistemleri

Ders - 1. BİL 221 Bilgisayar Yapısı GİRİŞ. Ders Hakkında. Ders İzlencesi

Bilgisayar Sistemlerine Genel Bakış

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar) Öğr.Gör. Dr. Dr. Şirin KARADENİZ

İŞ İSTASYONU SEÇİM REHBERİ

DOKUZ EYLÜL ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ MÜDÜRLÜĞÜ DERS/MODÜL/BLOK TANITIM FORMU. Dersin Kodu: CSE 5051

Oracle Exadata Version 2 İlk OLTP Veritabanı Makinesi

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu

Kursad MANGALOGLU Sales Specialist Power Systems Systems & Technology Group IBM Turkey

Yönelticiler ve Ağ Anahtarları Teorik Altyapı

BM-311 Bilgisayar Mimarisi

Bilgisayar Donanım 2010 BİLGİSAYAR

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

Embedded(Gömülü)Sistem Nedir?

YRD. DOÇ. DR. AGÂH TUĞRUL KORUCU Kernel çeşitleri

Pre-requisite : EE240

MİKROBİLGİSAYAR SİSTEMLERİ. Teknik Bilimler Meslek Yüksekokulu

Bilgisayar Temel kavramlar - Donanım -Yazılım Ufuk ÇAKIOĞLU

Basit Mimari, Katmanlı Mimari ve doğrudan çalıştırma olarak üçe ayrılır.

BİLGİ TEKNOLOJİSİNİN TEMEL KAVRAMLARI. 1-Bilgisayar, donanım ve yazılım kavramları 2-Bilgisayar çeşitleri 3-Bilgisayarlar arsındaki farklılıklar

Bilgi ve Olay Yönetim Sistemi

BİLGİSAYAR MİMARİSİ. Bilgisayar Bileşenleri Ve Programların Yürütülmesi. Özer Çelik Matematik-Bilgisayar Bölümü

Bitirme Ödevi Sunumu PLATFORM BAĞIMSIZ BENZETİM PROGRAMI. Danışman : Yrd.Doç.Dr. D Feza BUZLUCA Gökhan Akın ŞEKER

Çok İşlemcili Yapılarda Sinyal İşleme Yazılımlarının Geliştirilmesi Uygulaması. Sinan Doğan, Esra Beyoğlu

Otomatik overclock yapma, fansız soğutma, kolay erişim noktası ve ağ bağlantı monitorleme için gelişmiş özellikler ASUS Intelligence'da buluştu

Quiz:8086 Mikroişlemcisi Mimarisi ve Emirleri

Temel Mikroişlemci Tabanlı Bir Sisteme Hata Enjekte Etme Yöntemi Geliştirilmesi. Buse Ustaoğlu Berna Örs Yalçın

Gömülü Sistemler. (Embedded Systems)

BİLGİSAYAR MİMARİSİ. << Bus Yapısı >> Özer Çelik Matematik-Bilgisayar Bölümü

Çalışma Grupları Eğitimleri. TÜBİTAK ULAKBİM / ANKARA 5-9 Nisan 2010

Mikrobilgisayar Mimarisi ve Programlama

Sabit ve Taşınabilir Diskler BÖLÜM-2 Pata Diskler İçin Master-Slave Ayarları Disk Biçimlendirme Harici Diskler Olası Sabit Disk Arızaları RAID

İşletim Sistemlerine Giriş

BİLGİSAYAR MİMARİLERİ

Mikroişlemcili Sistemler ve Laboratuvarı 6.Hafta

William Stallings Computer Organization and Architecture 9 th Edition

Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ. MİB Yapısı. MİB in İç Yapısı. MİB Altbirimleri. MİB in İç Yapısı

Bilgisayar Sistemleri

İŞLETİM SİSTEMLERİ. (Operating Systems)

Veri Yönetiminde Son Nokta. Sedat Zencirci, Teknoloji Satış Danışmanlığı Direktörü, Orta Asya ve Türkiye

Ara Katman Yazılımları İçin İşlemci Değer Birimi Lisanslaması

Von Neumann Mimarisi. Mikroişlemciler ve Mikrobilgisayarlar 1

8. MİKROİŞLEMCİ MİMARİSİ

Ağ Donanımları NIC. Modem. Modem. Ağ Cihazları (Aktif Cihazlar) Repeater (Yineleyici)

Çalışma Açısından Bilgisayarlar

Bölüm 4. Sistem Bileşenleri. Bilgisayarı. Discovering. Keşfediyorum Computers Living in a Digital World Dijital Dünyada Yaşamak

Donanımlar Hafta 1 Donanım

BİLGİ TEKNOLOJİLERİ VE UYGULAMALARI

Sistem Yapılanması ve Tanıtım

Yazılım Mühendisliğine Giriş 4. Hafta 2016 GÜZ

Doğu Akdeniz Üniversitesi Bilgisayar ve Teknoloji Yüksek Okulu Bilgi teknolojileri ve Programcılığı Bölümü DERS 1 - BİLGİSAYAR VE ÇEVRE ÜNİTELERİ

Bilgisayar Donanımı. Temel Birimler ve Çevre Birimler. Öğr.Gör.Günay TEMÜR / KAYNAŞLI MESLEK YÜKSEOKULU

Bilgisayar İşletim Sistemleri BLG 312

İŞLEMCİLER. Yrd. Doç. Dr. Mehmet Ali Aktaş

Hem lw hem de sw komutlarının ofseti 16-bitlik işaretli tamsayıdır.

Enterprise Power Platformu. F. Korhan ALTAN Teknik Satış Uzmanı Power Sistemler Systems & Technology Group IBM Turkiye

Computer Architecture. RAID: (Redundant Array of Independent/Inexpensive Disks)

Küme Bilgisayarlar. Enabling Grids for E-sciencE. Onur Temizsoylu. Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi ODTÜ, Ankara

İşlem Yönetimi (Process Management)

Zeyilname. Zeyilname No:1

Transkript:

Sunucu Bilgisayarlarda Kullanılan CISC ve RISC İşlemcilerin Performans Karşılaştırımı Performance Comparison of CISC and RISC Processors Used in Server Computers Aylin Kantarcı Bilgisayar Mühendisliği Bölümü, Ege Üniversitesi Özet- Bu çalışmada, sunucu sistemlerinde kullanılan RISC (SPARC) ve CISC (İntel) sınıflarına ait 2 işlemcinin performansları karşılaştırılmıştır. Güvenilir bir organizasyon olan Transaction Processing Council (TPC) tarafından gerçekleştirilen TPC-H performans testi sonuçlarından yola çıkılmış ve 2 işlemcinin donanım ve mikromimari seviyesi detaylarına dayanarak performans test sonuçlarının nedenleri analiz edilmiştir. Anahtar kelimeler- RISC, CISC, sunucu, çok çekirdekli işlemci, iş parçacığı Abstract- In this study, performances of 2 processors, one from the RISC family (SPARC) and the other from the CISC family (Intel) have been compared. The starting point is the results of the TPC-H test conducted by a reliable organization Transaction Processing Council (TPC). Then, the results of that test have been analysed based on the hardware and microarchitecture level details of those processors. Key Words RISC, CISC, server, multicore processor, thread 1. GİRİŞ Genel amaçlı işlemciler CISC (Complex Instruction Set Computers) ve RISC (Reduced Instruction Set Computers) işlemciler olmak üzere iki sınıfa ayrılırlar. CISC işlemcilerde birincil tasarım amacı geriye uyumluluktur. Geriye uyumu sağlamak için işlemcilerin komut setleri ve komut formatları zaman içinde gittikçe karmaşık hale gelmiştir. Ayrıca, bu işlemcilerin komutları aynı anda birçok işi yerine getirecek şekilde tasarlanmıştır. Maliyet açısından bu komutların işletileceği donanımın mümkün olduğunca basit tutulması gereklidir. Karmaşık CISC komutları bu basit donanımlar üzerinde doğrudan çalıştırılamazlar. Bir yorumlayıcı (interpreter) yardımı ile her biri temel bir işlemi yerine getiren bir mikrokomutlar dizisine dönüştürülürler. Yorumlama işlemi işlemcinin performansını (hızını) düşüren bir dönüşüm işlemidir. 1

CISC işlemcilerden daha sonra geliştirilen RISC işlemcilerin tasarımında geriye uyumluluk kaygısı gözetilmemiştir. Bu işlemcilerde donanım gibi komutlar da basit bir yapıya sahiptirler. Bir RISC komutu yorumlayıcı kullanılmadan donanımsal devrelerle kontrol sinyallerine dönüştürülürler ve tek bir adımda işletilirler [1]. CISC işlemcilere örnek olarak İntel işlemcileri, RISC işlemcilere örnek olarak da SPARC işlemcileri verilebilir. İntel işlemcilerinde basit CISC komutlarını yorumlama yapmadan kontrol sinyallerine dönüştüren bir RISC çekirdeği de bulunmaktadır. Günümüzde hem CISC, hem RISC işlemcilerinin performansları paralel donanım tasarımları kullanılarak arttırılmaya çalışılmaktadır. Bu tasarımlar 2 farklı türde paralel mimariyi birlikte barındıran tasarımlardır. Bunlardan ilki süperskalar mimaridir. Bu mimaride birden fazla işletim evresine sahip bir boruhattı (pipeline) mimarisi ile birden fazla komutun farklı evrelerinin aynı anda işletilmesi ile eşzamanlılık düzeyinde bir paralellik sağlanır [2]. Günümüz işlemcileri için geçerli ikinci mimari ise çok çekirdekli mimaridir. Bu mimaride işlemci üzerinde her biri bir işletim birimi, bir kayıtçı seti ve 1. ve 2. seviye önbellek içeren eş yapılı birden fazla çekirdek bulunur. Bu mimarilerde her çekirdek üzerinde aynı anda farklı bir komut çalıştırılarak gerçek anlamda paralellik sağlanabilir. Her bir çekirdeğe ait işletim birimi ise süperskalar mimariye sahiptir. Günümüz işlemcilerinde bu iki tür mimariyi bir arada bu şekilde kullanarak en yüksek düzeyde performans sağlanmaya çalışılmıştır [3]. Bu inceleme çalışmasında sunucu sistemlerinde kullanılan çok çekirdekli işlemcilerinin performansı üzerine bir değerlendirme yapılmıştır. Bunun için, biri SPARC, diğeri İntel işlemcisi kullanan 2 sunucu bilgisayarın güvenilir bir kuruluş tarafından gerçekleştirilmiş ve İnternet te yayınlanmış resmi performans test sonuçlarından yola çıkılmıştır. Söz konusu 2 işlemcinin donanım ve mikromimari seviyesi detaylarına dayanarak performans test sonuçlarının nedenleri analiz edilmiştir. 2. METOT Çalışmada biri RISC diğeri CISC işlemciye sahip iki sunucu makinanın tabi tutulduğu, Transaction Processing Council (TPC) tarafından gerçekleştirilmiş TPC-H performans testi sonuçlarından yola çıkılmıştır (Tablo 1) [4]. Bu testte SPARC işlemciler içeren SPARC T5-4 ve İntel işlemciler içeren HP ProLiant DL980 G7 sunucuları karşılaştırılmıştır. İki sunucu modeli de üreticilerinin en güçlü işlemcilerini barındıran ürünleridir. Test sonuçları SPARC T5-4 sunucusunun diğerinden 2,4 kat daha hızlı olduğunu ortaya çıkarmıştır. SPARC T5-4 sistemi diğerine göre her saatte yaklaşık 4 kat fazla sorguya cevap vermesi nedeniyle verim açısından da yaklaşık 4 kat daha yüksek performansa sahiptir. Ayrıca SPARC T5-4 sunucusunun satış fiyatının HP ProLiant DL980 G7 nin satış fiyatının 210.000 TL/ 100.000TL=2,1 katı olmasına rağmen, sorgu başına maliyet hesaplaması yapıldığında SPARC T5-4 ün yaklaşık %30 ucuz olduğu görülmektedir. 2

Tablo 1. TPH-C performans testi resmi sonuçları TPC-H@10000GB, Non-Clustered Systems System Processor Proc/Core/Threads Memory Composite (QphH) $/perf ($/QphH) Power (QppH) Throughput (QthH) Database Available SPARC T5-4 3.6 GHz SPARC T5 4/64/512 2048 GB HP ProLiant DL980 G7 2.4 GHz Intel Xeon E7-4870 8/80/160 4096 GB 377,594.3 $4.65 342,714.1 416,024.4 Oracle Database 11gRelease 2 158,108.3 $6.49 185,473.6 134,780.5 SQL Server 2012 11/25/13 4/15/13 Tablo 1 de verilen sonuçlar RISC işlemcilerin CISC işlemcilerden daha yüksek performansa sahip olduğunun resmi kanıtıdır. Bildirimizde bu performans testinde kullanılan 2 sunucuya ait işlemcilerin teknik özelliklerini ve çalışma prensiplerini inceleyerek bu üstünlüğün işlemciden kaynaklanan nedenlerini ortaya koyacağız. Tablo 2 de hem tek işlemci hem de tüm sunucu bazında bu iki sisteme ait teknik özellikler verilmektedir: Tablo2. Analizde kullanılan sistemlerin teknik özellikleri Mikromimari teknolojisi SPARC T5-4 HP Proliant DL980 G7 İşlemci Sunucu İşlemci Sunucu OSA2011 Ivy Bridge (5),Nehalem (3) İşlemci frekansı 3.6 GHz [1.86-2.9] GHz 3*10 + 3*8 + Çekirdek sayısı 16 16*4=64 10,8,6,4 2*6 =66 Çekirdek başına iş parçacığı sayısı Eş zamanlı iş parçacığı sayısı 8 2 16*8=128 128*4=512 2*çekirdek sayısı Bellek Frekansı 1.066 GHz 1.600 GHz 66*2=132 İşlemci başına Bellek Port Sayısı 4 1 Önbellek Miktarı 8 MB 8*4=32 MB [18-30] MB 180 MB Ek Özellik Dynamic Threading Hyperthreading 3

CPU Kontrolcüsü Söz konusu sistemlerin spesifikasyon dökümanları incelendiğinde göze çarpan en önemli nokta İntel sisteminin SPARC sisteminden farklı olarak değişik model işlemcilerden oluşmasıdır [5, 6]. İntel sisteminde Ivy Bridge mikro mimarisine sahip e7-4800 sınıfından 5, Nehalem mikromimarisine sahip 7500 sınıfından 3 farklı işlemci kullanılmaktadır. İntel sisteminde farklı sınıf ve farklı model işlemcilerin kullanım nedeninin güç tüketimini mümkün olduğunca düşük tutarak verimi arttırmak olduğunu düşünüyoruz. Ancak, farklı mikromimarilere sahip işlemcilerin aynı ortamda bir araya getirilmelerinin güvenilirliği olumsuz etkileyeceği aşikardır. Ayrıca, tüm işlemcilerin frekansları, çekirdek sayıları, önbellek kapasiteleri gibi önemli noktalarda farklılık göstermesinin uyum sorunu yaratacağı kesindir. Şekil 1 ve 2'de sırasıyla Tablo1 de verilen testte kullanılan sunucuların işlemcilerine (HP sunucu için en ileri model işlemci) iç yapıları taslak olarak gösterilmektedir. Bu şekillerde göze çarpan önemli bir nokta SPARC işlemcisinin 4 bellek portunun, İntel işlemcisinin ise sadece 1 bellek portunun bulunmasıdır. Tek bir bellek portunun bulunması işlemci-bellek trafiğini büyük ölçüde kısıtlar. İşlemci performansının bellek performansı ile sınırlı olduğu çok iyi bilinen bir gerçektir. Ayrıca, CISC işlemciler çok sayıda belleğe referans yapan komutlara sahip olduğu için RISC işlemcilere göre daha çok bellek işlemi yaparlar. RISC işlemcilerde sadece LOAD ve STORE komutları belleğe erişim yapar. LOAD komutu ile değişkenler işlemci içindeki kayıtçılara alınırlar. İşlemler bu kayıtçılar üzerinden yürütülür. Son işlemden sonra STORE komutu ile kayıtçıdaki son değer belleğe yazılır. Bu nedenle SPARC işlemcisinde belleğe erişim İntel işlemcisine oranla daha azdır. Tek bir bellek portu ve belleğe referans yapan çok sayıda komuta sahip olmanın yaratacağı bellek trafiği göz önüne alındığında İntel işlemcisinin ne denli büyük bir darboğazla karşı karşıya olduğu net olarak görülmektedir Şekil 1 ve 2'de göze çarpan diğer bir önemli nokta, iki işlemcide çekirdekler ve önbellekler arası bağlantı sağlayan mekanizmadaki farklılıktır. İntel halka, SPARC anahtar bağlantı kullanır. Halka bağlantılarda gecikmelerin yüksek olduğu, anahtar bağlantıların ise daha hızlı ve tahmin edilebilir olduğu bilinen bir gerçektir. Dolayısı ile İntel işlemcide halka bağlantının kullanılıyor olması performansı olumsuz yönde etkilemektedir. Bellek Arayüzü Bellek Arayüzü Bellek Arayüzü Bellek Arayüzü IO Arayüzü Çokluişlemci Arayüzü Anahtar Bağlantı Ç0 Ç1 Ç2 Ç3 Ç4 Ç5 Ç6 Ç7 Ç8 Ç9 Ç10 Ç11 Ç12 Ç13 Ç14 Şekil 1. SPARC T5 işlemci iç yapısı 4

Bellek Arayüzü IO Arayüzü Çokişlemci Arayüzü İşlemci Kontrolcüsü Halka Bağlantı Ç0 Ç1 Ç2 Ç3 Ç4 Ç5 Ç6 Ç7 Ç8 Ç9 Şekil 2. İntel işlemcinin iç yapısı Şimdi de iki işlemciye ait mikromimari yapıyı ve makine komutlarının ne şekilde işletildiğini inceleyelim: Bir SPARC çekirdeği 16 evreli bir pipeline'a dayalı süperskalar bir yapıya sahiptir (Şekil 3). Bu süperskalar yapıda işletim evresi 2 tamsayı (EXU), 1 ondalıklı sayı/grafik (fgu), 1 de bellek erişimi için kullanılan LOAD/STORE ünitesi (lsu) olmak üzere 4 birimi içerir. Bir SPARC komutu donanımsal bir devreyle tek adımlık bir kontrol sinyali grubuna (mikrokomut) dönüştürülür. Mikrokomutlar 128 girişli bir Reorder Buffer (ROB pick queue) ünitesinde tutulurlar. Buradan alınan komutlar ISSUE ünitesine yönlendirilir ve oradan da yukarıda bahsedilen 4 işlem biriminden birine gönderilirler. Mikrokomutlar bu aşamaya gelene dek pipeline'ın evrelerinde ikişerli gruplar halinde ilerlerler. İşletim evresi diğer evrelerden çok daha fazla zaman alır ve bu evredeki her bir birim bir mikrokomutun işlemini farklı sürelerde bitirebilir. Bu durum işletim evresinde aynı anda 4'e kadar mikrokomutun paralel çalışmasına olanak tanır. Bir İntel çekirdeğinde ise komutlar şu şekilde işletilir: Kısa sürede tamamlanan basit komutlar RISC'de olduğu gibi donanımla tek adımlık kontrol sinyal grubuna dönüştürülür. Ancak, bu tür komutların sayısı azdır. Çoğunluğu oluşturan kompleks komutlarsa bellekteki işlemci sürücüsünde bulunan bir yorumlayıcı (interpreter) yardımıyla mikrokomut dizilerine dönüştürülürler. İntel'in süperskalar mimarisindeki evre sayısı 14-19 arasında değişir. Bunun sebebi CISC mimarisine sahip işlemcide belleğe referans yapan çok komutun bulunmasıdır. Belleğe erişim yapan komutlar, bellek erişimi için bellek erişimi yapmayan komutların kullanmadığı pipeline evrelerini kullanır. SPARC işlemcisinde daha önce de açıklandığı gibi sadece LOAD ve STORE komutları bellek erişimi yapar. Tüm komutlar aynı sayıda pipeline evresinden geçer ve bu da mikrokomut işleyişini daha düzgün kılar. İntel de komutların farklı sayıda evre kullanmaları beklemeleri arttırır ve işlemci performansını düşürür. İntel işlemcide 192 girişlik bir ROB kullanılır. ISSUE evresi bu ROBdan aldığı mikrokomutları 4 ALU ve 4 bellek erişim biriminin bulunduğu işletim birimine yönlendirir (Şekil 4). İntel mimarisinde tüm ALUlara hem tamsayı hem ondalıklı işlem yaparlar. SPARC mimarisinde tamsayı işlem ve ondalıklı işlem birimleri ayrıdır. Bu nedenle İntel ALUları SPARC işlem birimlerine göre çok daha karmaşıktır ve bu da çekirdeğin daha düşük hızda çalışmasına sebep olur. 5

SPARC işlemcisinde her saat döngüsünde 2 mikrokomut işletim evresine gönderilirken, İntel işlemcisinde 4 mikrokomut işletim evresine dağıtılır. İntel pipeline'nında aynı anda daha fazla mikrokomutun birlikte ilerlemesi bu işlemcideki pipeline evrelerinin donanımsal olarak daha kompleks olduğunu gösterir. Şekil 3. Bir SPARC çekirdeğinin mikromimarisi [5] 6

Şekil 4. Bir İntel çekirdeğinin mikromimarisi [1] Şimdi, Tablo 2'ye dönerek iki işlemcide çekirdek içi performansı arttırmaya yönelik 2 ayrı tekniği inceleyelim: İntel içerik anahtarlama (context switch) yükünü düşürmek için hyperthreading (HT) mekanizmasını geliştirmiştir. Bu teknik çekirdek üzerinde aynı anda sadece 2 iş parçacığının eşzamanlı çalışmasına olanak verir. HT desteği için 2. iş parçacığı için 2. bir kayıtçı setine ve durum saklama ünitesine ihtiyaç duyulur. Çalışmasına ara veren bir iş parçacığı tekrar çalışmaya hazır hale geldiğinde durum bilgisini 2 durum saklama ünitesinden birinde bulursa çekirdek içi performans iyileşir. Diğer durumda bu iş parçacığının çalışmasına devam edebilmesi için ana bellekten durum bilgisinin getirilmesini sağlayan geleneksel içerik anahtarlama işlemi gerçekleştirilir. Bir çekirdekte sürekli aynı 2 iş parçacığının bulunma olasılığı düşüktür. Bu nedenle geleneksel içerik anahtarlama ve buna bağlı bellek işlemlerinin sayısı yine çok yüksektir. Dolayısı ile HT'nin ne derece yüksek performans sağladığı şüphelidir. SPARC işlemcileri HT kullanmaz. Bir SPARC çekirdeği OS iş dağıtıcısında 8 eş zamanlı iş parçacığı kabul edebilir. Bu iş parçacıkları ön bellekte kullandıkları alana bakılarak öncelik sınıflarına atanırlar. Önbellekte en çok yer kullanan iş parçacıkları en büyük öncelik değerini alır. Bunlar, önbellekte en çok yer kapladıkları için muhtemelen daha az bellek transferine sebep olacaktır varsayımı ile ilk önce işletilerek bitirilirler. Bu şekilde önbellek daha çabuk temizlenir ve bellek transferlerinin sayısı düşer. Aynı öncelik sınıfında birden fazla iş parçacığının bulunması durumunda çekirdek kaynakları bu iş parçacıkları arasında paylaştırılır ve eş zamanlı/paralel çalıştırılır. SPARC'ın kullandığı bu teknik Dynamic Threading (DT) olarak isimlendirilir. 7

Bir SPARC çekirdeğinde o an çalışmakta olan iş parçacığından 2 komut alınır ve SPARC pipeline'a gönderilir ve bu 2 komut mikrokomuta dönüştürülerek daha önce açıklandığı şekilde pipeline da ilerlemeye başlar. HT ve DT mekanizmalarını karşılaştırmak gerekirse SPARCta daha çok sayıda iş parçacığı çekirdeğe kabul edilebildiği (SPARC:8 İntel:2) ve çalıştırılacak iş parçacığı seçilirken önbellek kullanımı dikkate alındığı için daha yüksek performans elde edilebilir. Bu noktaya kadar verilen bilgiler ışığı altında önemli bir noktaya daha değinmek yerinde olur: İşlemci performansında bellek performansının etkili olduğunu biliyoruz. Bu iki birim arasındaki hız farkının yüksekliği, başka bir deyişle saat frekansı farkı yüksekliği, işlemcinin bellek darboğazına girmesine sebep olacaktır. SPARCta bu fark yüksektir ancak İntel'de yaşanan darboğaz bu işlemcide yaşanmamaktadır. Bunun nedenini daha detaylı olarak şu şekilde açıklayabiliriz: SPARC işlemcide sadece LOAD ve STORE komutları belleğe erişim yaptıkları için bellek trafiği İntel işlemcisine göre çok daha azdır. Bu durum 2 işlemcinin önbellek büyüklüklerinden de kolayca anlaşılabilir. SPARC için 8MBlık önbellek yeterli iken İntel için bu değer 30 MB'tır. Bunu yanısıra İntel işlemcide kullanılan ROBlar daha büyüktür (İntel:192, SPARC: 128 girişli). İntel işlemcide 30 MBlık önbelleğe rağmen yine problem yaşanır. Sadece tek bir bellek portu olması nedeni ile ROBda bellekten veri bekleyen komutlar birikir. SPARC işlemci hem daha az bellek erişimi yapar hem de 4 bellek portu vardır. O yüzden problem yaratacak derece ROB sıkışıklığı ortaya çıkmaz. Son olarak, başka bir çalışmamızda tespit ettiğimiz İntel işlemcileri ile ilgili bir duruma değinmek yerinde olur: Bir çekirdek 3 kaynaktan gelen süreç/iş parçacıklarını çalıştırır: 1. Periyodik OS görevleri 2. Kullanıcı uygulamaları 3. Bellekte yer alan işlemci sürücüsünün kodu. İşlemci üzerindeki kontrolcü işlemcinin çalışmasını sürekli düzenlemek zorunda olduğundan sürekli bellekteki sürücüsü ile iletişimde olmak zorundadır. Çekirdek sayısı arttıkça ve donanım kompleksleştikçe sürücünün karmaşıklığı ve büyüklüğü de artmakta, bellekten işlemciye getirilen kod parçası daha da büyük olmaktadır. HT işlemini gerçekleştiren kod da sürücü yazılımında yer almaktadır. Tüm bunlar zaten LOAD/STORE mimari kullanmamaktan dolayı yüksek olan bellek trafiğini daha da arttırır ve ROB kısa süre içinde bellek beklemesi yapan komutlarla dolar. ROB dolunca sürücünün acil durum kodu devreye girer ve ROBa mikrokomut akışı durdurulur. Başka bir deyişle, dolan ROBun çekirdeğinde çalışmakta olan iş parçacığı/süreç durdurulur. ROBda bekleyen mikrokomutlar verileri geldikçe işletimlerini tamamlayıp ROBdan ayrılırlar. Bunun üzerinde durdurulmuş iş parçacığı/sürecin çalışmasına kaldığı yerden devam edilir ve ROBa mikrokomut alımı başlar. SPARCta bellek-işlemci saat frekansı daha yüksektir. SPARC işlemcisinin frekansı İntel işlemcisinden daha yüksektir. Ayrıca bu işlemcide bellek frekansı da İntel işlemcisindekinden çok daha düşüktür (İntel: 1,600 GHz, SPARC:1,066 GHz). SPARCın daha yüksek performansa sahip olması önemli boyutta ROB sorunun yaşanmadığını göstermektedir. Bunun nedenlerinin SPARCın 4 bellek portu ve LOAD/STORE yapısı ile ilgili olduğunu söylemiştik. Ayrıca, SPARC bir RISC işlemci olarak donanımsal olarak daha basittir. İşlemci sürücüsü yazılımı da doğal olarak daha basittir. Bu durum çekirdek yüklerinin daha düşük olması şeklinde büyük bir avantaj getirir. Dolayısı ile 1,066 MHzlık saat frekansı yeterli olmuştur. Yoksa Tablo 1'de verilen performans üstünlüğü elde edilemezdi. Bunun yanısıra, İntel işlemci daha büyük saat frekanslı bellek kullansaydı bellekten veri ve komutlar daha büyük bir hızla gelecekti ve ROB şimdikinden çok daha kısa sürede dolacaktı. Bu durumda daha ağır ROB problemleri ortaya çıkacaktı. ROB 8

problemi, acil durum kodunu daha sık çalışacak ve bu da bellek trafiğini arttırarak ROB probleminin daha da ağırlaşmasına sebep olacaktı. Gerek kişisel bilgisayar olsun gerek sunucu bilgisayarlar olsun farklı işlemci frekanslarına sahip tüm İntel işlemcilerde aynı bellek frekansının kullanılması bu düşüncemizi doğrulamaktadır [7]. Ayrıca, İntel mühendislerinin çipe sadece tek bir bellek portu yerleştirmelerinin altında yatan neden de ancak bu olabilir. 3.SONUÇLAR Bu çalışmada bir RISC ve bir de CISC mimarisine sahip 2 sunucu işlemcisinin performanslarını karşılaştıran bir testten yola çıktık. Bu iki işlemciyi donanımsal ve işleyiş yönüyle inceledik ve performans farkının sebeplerini analiz ettik. Daha önceki bir çalışmamızda farklı çekirdek sayısına sahip kişisel bilgisayarlar için imal edilmiş 2 İntel işlemcisi için bir performans testi yazılımını biz kendimiz hazırlayarak bazı deneyler yapmıştık. Deney sonuçlarımız sadece 2 çekirdeğin yeterli olduğunu ve HTnin kazancından daha büyük kayıplar getirdiğini göstermişti. Bundan sonraki aşamada böyle bir test programını sunucu sistemlerde kullanılan İntel ve SPARC işlemcileri üzerinde çalıştırarak deneyler yapmak ve işlemcilerin durumunu gözlemeyi amaçlıyoruz. İşlemcilerin daha karmaşık oluşu ve 1 bellek portunun kullanılmasından dolayı bir önceki çalışmamızda elde ettiğimiz sonucun İntel'in sunucu işlemcileri için de geçerli olacağını tahmin ediyoruz. Geçmişteki çalışmamızda, SPARCın kişisel bilgisayar ürünleri bulunmadığı için SPARC işlemcilerini dikkate almamıştık. Dolayısı ile bu noktadan sonra ilk kez SPARC işlemcileri ile performans deneyleri yapmaya başlayacağız. Tahminimiz bu çalışmada gerçekleştirmiş olduğumuz analizde elde ettiğimiz bulguların deneysel olarak da kanıtlanacağı yönündedir. SPARC işlemcilerinin kişisel bilgisayarlarda da kullanılması en büyük arzumuzdur. KAYNAKLAR 1. A.S. Tanenbaum, A. Todd, Structured Computer Organization. 6th Ed. Prentice Hall, 2012. 2. J. Hennessy, D. A. Patterson, Computer Architecture: A Quantitative Approach. 5th Ed. Morgan Kaufmann, 2011. 3. G. Blake, R. G. Dreslinski, T. S. Mudge, A Survey of Multicore Processors'', IEEE Signal Processing Magazine, Vol: 26(6), pp. 26-32, 2009. 4. http://www.oracle.com/us/solutions/performance-scalability/sparc-t5-4-tpc-h-record-2065520.html 5. Data sheet:oracle's SPARC T5-2, SPARC T5-4, SPARC T5-8 and SPARC T5-1B Server Architecture, www.oracle.com 6. Data sheet: HP ProLiant DL980 G7 Server, www.hp.com 7. 4 th Generation Intel Processor List [Online]. Available: http://www.intel.com/content/www/us/en/processors/core/core-i7-processor.html 9