You are on page 1of 320

Bilgisayar Yapıları

Bilgisayar Yapıları

Dr. Öğr. Üyesi Rüştü Akay

2021-2022 Güz

Mekatronik Mühendisliği
Bilgisayar Yapıları
Giriş

Bölüm -1-
Temel Kavramlar - Giriş
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Temel Bilgi Teknolojileri


Bilgisayarların Tarihçesi
İlk Bilgisayarlar
Kişisel Bilgisayarlar ve Sonrası
Bilgisayarların Yapısı ve Bileşenleri
Donanım Birimleri (Ana Donanım Birimleri, Çevre Birimler)
Taşınabilir Teknolojiler
Bilgisayar ve Yazılım (Sistem Yazılımları, Uygulama
Yazılımları)
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Bilgisayarın tanımı
Elektronik Beyin (TDK)
Bu elektronik beyin, aritmetiksel ve mantıksal işlemlerden
oluşan bir işi, önceden verilmiş programa göre yapıp
sonuçlandıran elektronik bir araçtır. (”TDK”, 2015)
Özel amaçlı bilgisayarlar (Özel bir amaç için tasarlanmış ve
sadece o amaç için kullanılan bilgisayarlar, klasik hesap
makineleri, bankamatikler (ATM), tıpta ve endüstride
kullanılan çeşitli bilgisayar)
Genel amaçlı bilgisayarlar (Farklı yazılımları çalıştırabilen, farklı
amaçlarla kullanılabilen bilgisayarlar )
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

İlk Bilgisayar
Bugünkü bilgisayarların temeli John William Mauchly
tarafından 1945’de geliştirilen ENIAC’dır.
70.000 adet direnç, 10.000 adet kondansatör, 600 adet
anahtar, 19.000 adet elektron lambası, 50 ton ağırlık, 5 milyon
el ile yapılmış lehim
Saniyede 5.000 işlem, Hafızasında 200 sayı tutabiliyordu
Eşitlikleri karşılaştırabiliyor, çarpabiliyor, bölebiliyor,
toplayabiliyor, çıkartabiliyor ve karekökleri hesaplayabiliyordu
8 yıl hizmet (1947-1955)
Hidrojen bombası hesaplamalarında kullanıldı.
Delikli kartlardan veri okunması
Programlaması zor (6 operatör tarafından programlanıyor)
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

İlk Bilgisayar
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Bilgisayarın gelişim kuşakları


Elektron Lambalı (Vakum Tüplü) Bilgisayarlar (ENIAC)
Transistörlü Bilgisayarlar (1950’lerin sonunda transistörün
icadı ile çok daha küçük, az enerji harcayan, daha ucuz, daha
az ısınan ve daha dayanıklı )
Entegre Devreli Bilgisayarlar
Üçüncü nesil
Transistörler yerlerini birçok transistörü üzerinde barındıran
entegre devreler
Mikroişlemcili Bilgisayarlar
Beşinci Kuşak Bilgisayarlar (Zeki Bilgisayarlar)
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Bilgi İşlem Kavramı


Bilgi İşlem: çok sayıdaki verinin kısa sürede işlenerek anlamlı
bazı sonuçların elde edilmesidir.
Veri (DATA):Ölçülebilir terimlerle açıklanabilir her türlü
sembole veri denir. Bir deneyin sonuçları, hastaların laboratuar
tetkik sonuçları, bir denklemin katsayıları, mal stok miktarları
yada personel sicil bilgileri
Bilgi (Information): Bilgisayara aktarılan verilerin birbiriyle
ilişkilendirilmesi ile elde edilen anlamlı sonuçlardır. Personel
bilgileri üzerinde işlem yapılarak elde edilen maaş değerleri
veya hasta verileri kullanılarak tespit edilen hastalık türü
Bilgisayar Yapıları
Giriş
Donanım

Bilgisayar ve Donanım
Bilgisayarın fiziksel ve elektronik yapısını oluşturan ana
birimlerin ve çevre birimlerin tümüne donanım denir
Bilgisayar Yapıları
Giriş
Donanım

Bilgisayar ve Donanım
Ana Donanım Birimleri
Anakart (Motherboard, mainboard)
İşlemci (CPU)
RAM
Sabit Disk (Harddisk)
Ekran Kartı (Graphics Card) vb?
Ek Donanım Birimleri
Ses Kartı
Ağ Kartı (Ethernet Kartı)
Yazıcı, Tarayıcı
Web Kamerası, Hoparlör, Mikrofon vb?
Bilgisayar Yapıları
Giriş
Donanım

Anakart
Bilgisayar Yapıları
Giriş
Donanım

Bilgisayar ve Donanım
Anakart, bir bilgisayarın tüm parçalarını üzerinde barındıran ve
bu parçalar arasındaki iletişimi sağlayan elektronik devredir.
İşlemci, kendisine gelen komut ve bilgileri uygun şekilde
işleyerek çıktıları ilgili birimlere aktarır. Bilgisayarda beyin
görevi görür.
İntel, AMD
i5, i7, i9, Xeon, Atom
32-bit, 64-bit
Hyper treading (çekirdek sayısının sanal olarak arttırılması)
Turbo boost (emniyet sınırları içerisinde çekirdek hızlarının
arttırılması)
RAM, işletim sistemi de dahil olmak üzere bilgisayarda aktif
olarak çalışan uygulamaların tutulduğu bellektir
Ana bellek, geçici bellek
512 MB, 1 GB, 2 GB, 4 GB
DDR2 - DDR3 - DDR4
Bilgisayar Yapıları
Giriş
Donanım

Bilgisayar ve Donanım
ROM (Read Only Memory) ,sadece okunabilir bellek.
Üretici firma tarafından hazırlanır. Bilgileri okunabilir fakat
üzerinde değişiklik yapılamaz.
Bu bilgiler makineyi kapatma veya elektrik kesintisinden
etkilenmez veya silinmezler.
Farklı özelliklere sahip ROM bellekler kullanılmaktadır.
(PROM, EPROM, EEPROM)
BIOS (Basic Input Output System), bilgisayarın ilk açılma
işlevini yerine getiren yazılımdır
Donanım özelliklerini denetler ve işletim sisteminin doğru
yüklenmesini sağlar.
BIOS yazılımı eski model kartlarda ROM bellek üzerinde,
günümüzde EEPROM belleklerde tutulur
Bilgiler elektrik gittiği zaman bile silinmez.
BIOS pili, Award BIOS, Phoenix BIOS
Bilgisayar Yapıları
Giriş
Donanım

Bilgisayar ve Donanım
Sabit Disk, (Harddisk, HDD) işletim Sistemi de dahil olmak
üzere tüm bilgilerin kalıcı olarak depolandığı aygıttır.
Elektromekanik yapıdadır.
İkincil bellek olarak da adlandırılır.
Kapasitesi GB (Gibabyte) ve TB (Terabyte) gibi kavramlarla
ölçülür.
Dönüş hızları: 5400, 7200, 15000 rpm
SSD Disk (Solid State Disk) mekanik olmayan veri depolama
aygıtı.
Çok daha hızlı okuma ve yazma,
Daha dayanıklı,
Daha az elektrik, Daha az ısınma,
Yüksekfiyat ve kısıtlı kapasite
Bilgisayar Yapıları
Giriş
Donanım

Bilgisayar ve Donanım
Yongaseti (chipset), işlemci, önbellek, sistem veriyolu, çevre
birimleri gibi bilgisayar içindeki bütün bileşenler arasındaki veri
akışını denetler.
Chipset bir tip işlemcidir.
Kuzey köprüsü RAM, CPU ve ekran kartı arasındaki veri
iletişimini sağlar.
Güney köprüsü ise anakartın diğer arabirimlerini denetler.
(BIOS, IDE, SATA, USB vb.)
Bilgisayar Yapıları
Giriş
Donanım

Yongaseti
Bilgisayar Yapıları
Giriş
Donanım

Bilgisayar ve Donanım
Ekran Kartı (Graphics Card) işlemciden alınan verileri
monitöre görüntü sinyali olarak gönderen donanım.
256 MB, 512 MB, 1 GB, 2 GB
Paylaşımlı - Paylaşımsız
Onboard
Ati, Nvidia
Çıkış portları:
VGA (Video Graphics Array),
DVI (Digital Video Interface),
HDMI (High Definition Multimedia Interface)
DisplayPort (Yeni nesil görüntü aktarma teknolojisi)
Bilgisayar Yapıları
Giriş
Donanım

Bilgisayar ve Donanım
Monitörde görüntünün kaç piksel ile oluşturulduğu
çözünürlükle ilgilidir. Yüksek çözünürlüklerde piksel boyutu
küçülmekte ve görüntü detayları artmaktadır.
Çözünürlük dpi (dot per inch) ile ifade edilir ve bir inçlik alana
düşen nokta sayısıdır
Yine görüntülerin oluşturulmasında kullanılan renk detayları
da kullanılan bit sayısı ile belirlenmektedir
Ekran Boyutu: Köşegen uzunluğu ile ölçülür ve birimi inch’tir.
Frekans: ekranda görüntülenen bir görüntünün saniyede kaç
kez tekrarlandığını ifade eder, birimi Hertz (Hz)’dir.
Monitör (CRT, LCD, LED, IPS)
Teknoloji, güç tüketimi, tepki süresi, görüntüleme, fiyat
Bilgisayar Yapıları
Giriş
Donanım

Bilgisayar ve Donanım
Cache Bellek (Önbellek), çalışmakta olan programa ait
komutların ve verilerin geçici olarak saklandığı yüksek hızlı
hafızalardır.
1 MB, 2 MB, 4 MB, 8 MB ?
Yüksek maliyet
Bir uygulamayı ikinci kez çalıştırdığımızda, ilk açılışından çok
daha hızlı açılması (?)
Güç Kaynağı (Power Supply, PSU) 220 V şebeke gerilimini
sistemin çalışabilmesi için gerekli olan 5V - 12V gerilim
değerine dönüştürür
Arkasında soğutucu fan bulunur, 300 - 600 Watt
Kasa, bilgisayar bileşenlerini fiziksel etkilere karşı korumak,
bileşenlerin yerleştirileceği yuvalar içermek
Desktop, mini tower, midi tower, high tower, mount rack
Bilgisayar Yapıları
Giriş
Donanım

Bilgisayar ve Donanım
Ses Kartı (Sound Card) bilgisayarda analog ve dijital ses
işlevlerini yerine getiren elektronik birimdir.
Ağ Kartı (Network Interface Card ? NIC ) bilgisayarları ve
diğer cihazları ağa bağlamada kullanılan karttır. Ethernet kartı
olarak da bilinir.
Flash Bellek (USB Bellek) güç kesintisinde dahi içerdiği
bilgileri kaybetmeyen ve tekrar tekrar yazılıp silinebilen bir
bellek çeşididir
Yapısı RAM’lere, kullanımı Harddisk’lere benzer
Sessiz, hafif, hızlı erişim
USB 2.0 - USB 3.0
Bilgisayar Yapıları
Giriş
Donanım

Bilgisayar ve Donanım
Sistem Yolu (BUS), Anakart üzerinde bulunan ve bileşenlerin
birbiriyle haberleşmesini sağlayan tüm devrelere sistem yolu
adı verilir
3 kısımdan oluşur: adres yolu, veri yolu ve kontrol yolu.
Farklı veri yolları ana kart üzerinde farklı boyut ve farklı
renkleri ile birbirinden ayırt edilebilecek şekilde üretilmektedir
ISA (Industry Standard Architecture)
PCI (Peripheral Component Interconnect)
AGP (Advanced Graphics Port)
PCI Express
SATA (Serial Advanced Technology Attachment)
USB (Universal Serial Bus)
Bilgisayar Yapıları
Giriş
Donanım

Bilgisayar ve Donanım (Giriş Birimleri)


Bilgisayarlarda veri girişi yapmak için kullanılan birimlere denir.
Klavye (Keyboard): Üzerinde harfler, sayılar, işaretler ve bazı
özel işlevler taşıyan tuşlar bulunur. Q klavye - F klavye.
Fare (Mouse): Ekranda gözüken imleç yardımıyla veri girişi
yapmaya yarar. Fare kullanılarak işaretleme, sürükleme,
tıklama işlemleri yapılır.
Tarayıcı (Scanner): Kâğıt üzerindeki resim, grafik ve yazıları
bilgisayar ortamına aktarır.
Mikrofon: Seslerin bilgisayar ortamına aktarılmasını sağlayan
aygıt.
Kamera, Joystick, Barkod Okuyucu
Bilgisayar Yapıları
Giriş
Donanım

Bilgisayar ve Donanım (Çıkış Birimleri)


Bilgisayarlarda işlenmiş verinin sonuç olarak kullanıcıya
verilmesini sağlayan birimlerdir.
Ekran (Monitör): Görüntü sergilemek için kullanılan elektronik
ya da elektro-mekanik aygıt.
Yazıcı (Printer): Bilgisayar ortamında üretilen şekil, grafik ve
yazıların kağıda aktarılmasını sağlayan donanım. Nokta
Vuruşlu Yazıcı, Mürekkep Püskürtmeli Yazıcı, Lazer Yazıcı
Kulaklık ve Hoparlör: Bilgisayar tarafından üretilen veya
kaydedilmiş sesleri, müzikleri dinlemek için kullanılan aygıtlar.
Çizici (Plotter): Özellikle çizim ve grafik çıktıların alınmasında
kullanılan büyük boyutlu yazıcılar.
Bilgisayar Yapıları
Giriş
Donanım

Bilgisayarın Performansı)
İşlemci hızı ve ön bellek miktarı
Ana kart hızı
RAM bellek türü ve büyüklüğü
Sabit disk kapasitesi ve hızı
Ekran kartı türü ve büyüklüğü
Bilgisayar Yapıları
Giriş
Donanım

Bilgisayarın Çeşitleri)
Ana Bilgisayarlar (Sunucu, Server)
Kişisel Bilgisayarlar (PersonalComputer? PC)
Dizüstü Bilgisayar (Notebook)
Tablet Bilgisayar
Mini Bilgisayarlar (Netbook)
Bilgisayar Yapıları
Giriş
Donanım

Bilgisayar ve Donanım
Mikroişlemci
Sadece CPU
Genel amaçlı, çok yönlü
Pahalı
ROM, RAM, I/O ile tasarlanır
Mikrodenetleyici
CPU, RAM, ROM, I/O, Timer bulunur
Özel amaçlıdır
Ucuz
Tasarım gerekmez
Alarmlı saat, mikrodalga fırın, bulaşık makinası, buz dolabı,
ABS, dijital kamera vb
Bilgisayar Yapıları
Giriş
Yazılım

Bilgisayar Yazılım
Elektronik aygıtların belirli bir işi yapmasını sağlayan
programların tümüne yazılım denir.
Sistem Yazılımları
İşletim Sistemleri (Operating Systems)
Aygıt Sürücüleri
Derleyiciler (Compilers)
BIOS
Uygulama Yazılımları
MS Office,
Photoshop,
Winamp,
Öğrenci İşleri Otomasyonu?
Bilgisayar Yapıları
Giriş
Yazılım

İşletim Sistemi
Bilgisayar kullanıcısı ile bilgisayarı oluşturan donanım
arasındaki iletişimi sağlayan, aynı zamanda diğer uygulama
yazılımlarını çalıştırmaktan sorumlu olan sistem yazılımı.
Aygıt yönetimi
Bellek yönetimi
İşlem yönetimi
Dosya yönetimi
Bilgisayar Yapıları
Giriş
Yazılım

İşletim Sistemi Türleri


Windows İşletim Sistemi, Microsoft firması ürünü
MS-DOS (1981 yılı)
Windows 1.0, 2.x, 3.x
Windows 95, 98, ME, 2000, XP, Vista
Windows 7, Windows 8, Windows 8.1, Windows 10
Linux İşletim Sistemi, gönüllü bireyler ya da firmalar tarafından
geliştirilen ücretsiz ve açık kaynak kodlu işletim sistemi.
1991 yılı, LinusTorvalds, Helsinki Üniversitesi
Ubuntu, Debian, CentOS, Fedora, RedHat, Pardus(Türkiye’de
TÜBİTAK tarafından geliştirilen bir Linux dağıtımı)
MAC OS (Macintosh), Apple firması ürünü
Mobil İşletim Sistemleri
Taşınabilir araçlarda kullanılan işletim sistemleri,
Normal işletim sisteminde göre daha basit yapıda,
PDA, Tablet Bilgisayar, Akıllı Cep Telefonları
Android, Bada,IOS (iPhone), Windows Mobile,Symbian
Bilgisayar Yapıları
Giriş
Yazılım

Bilgisayarın Çalışma Mantığı


Elektronik devreler akım ve gerilim sinyallerini kullanarak
çalışır. Sinyaller ise analog ve sayısal olmak üzere iki temel
guruba ayrılmaktadır.
Bilgisayarları oluşturan donanımlar temelde tepkileri sadece iki
durumu gösterebilen devrelerden oluşur. var-yok yada
açık-kapalı
Bu ikili durumlar matematiksel olarak ikili (binary) sayı
sistemindeki 0 ve 1 ile ifade edilmektedir
1 (evet, açık, doğru)
0 (hayır, kapalı, yanlış)
Bilgisayar Yapıları
Giriş
Yazılım

Bit-Byte Kavramları

1 Byte= 8 bit
1 Kilobyte(KB) = 1024 Byte
1 Megabyte(MB) = 1024 KB
1 Gigabyte(GB) = 1024 MB
1 Terabyte(TB)= 1024 GB
Petabyte, Exabyte, Zettabyte, Yottabyte?
Bilgisayar Yapıları
Giriş
Yazılım

Dosya, Klasör, Sürücü

Dosya (File): Bilgisayardaki bilgi kümeleri


Klasör (Dizin) (Folder): Dosyaları kategorize etmek için
kullanılan yapılar.
Sürücü (Driver): Dosya/Klasörlerin saklandığı ortam
Bilgisayar Yapıları
Giriş
Yazılım

Dosyalar
İsim olarak 2 parçadan oluşur.
Dosya adı
Dosya uzantısı (Dosyanın türünü belirler)
Dosya adları Windows’ta 255 karakter uzunluğunda olabilir,
uzantılar ise genelde 3 karakter uzunluğundadır
Bilgisayar Yapıları
Giriş
Yazılım

Dosya Sistemi (File System)


Bir dosyanın bir disk üzerinde nasıl saklandığını ve bilgisayarın
dosyaları yönetebilmek için erişimi nasıl sağladığını kontrol
eden sistemdir
FAT 32 , NTFS (Windows)
EXT3, EXT4 , XFS , ReiserFS(Linux)
Bilgisayar Yapıları

Bilgisayar Yapıları

Dr. Öğr. Üyesi Rüştü Akay

2021-2022 Güz

Mekatronik Mühendisliği
Bilgisayar Yapıları
Giriş

Bölüm -1-
Temel Kavramlar - Giriş
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Ders Konuları
Bilgisayar Mimarisi
Bilgisayarın bileşenleri
İşlemci, veri yolu ve kontrol birimi
Önbellek
Komut kümesi özellikleri
Komut kümesi adresleme modları
Mikroişlemci organizasyonu
CISC ve RISC mimarisi
Pipelining
Komut seviyesinde paralel çalışma
Kontrol birimi
Multicore işlemciler
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Bilgisayar Mimarisi Tanımı


Bilgisayar tasarımında işlevsel, performans ve maliyet
hedeflerini karşılayacak şekilde donanım bileşenlerinin seçilmesi
ve bağlanması.
Bir bilgisayarın tasarımının arkasındaki teori
Bir bilgisayar sisteminin kavramsal tasarımı ve temel
operasyonel yapısı.
Bilgisayar bileşenlerinin düzeni ve ilişkileri.
Organizasyon programcıya görünmeyen kısımlarla ilgilenir
(kontrol sinyalleri, hafıza teknolojisi, arayüzler)
Örn:Çarpma işleminin olup olmadığı bilg. mimarisinin,
çarpmanın ne şekilde yapıldığı bil. organizasyonunun
konusudur
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Mimarinin genel belirleyici özellikleri


Komut kümesi özellikleri
Veri gösterim yöntemleri
Sayı sistemleri, aritmetik kodlar ve kelime uzunluğu
CPU’daki temel donanım birimleri
Register sayısı ve tipleri
Ana bileşenlerin işlevleri
Ana bileşenlerin bağlantıları
Bellek organizasyonu
Bellek adresleme modları
G/Ç mekanizmaları ve bunların kontrolü
...
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Bilgisayar
Bilgisayar bir veri işleme makinesidir ve aşağıdaki işlevleri
yerine getir.
Veri işleme
Veri depolama
Veri iletişimi
Kontrol
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Bilgisayar
Bilgisayarın temel bileşenleri:
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Bilgisayar Mimarisi
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Von Neuman ve Harvard mimarileri


Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Von Neuman Mimarisi


Komutlar ve veriler için aynı fiziksel hafıza adresini kullanır.
Hem veri aktarımları hem de komutlar için kullanılan tek bir
taşıta sahiptir
İşlemci, bir komutu tamamlamak için iki saat döngüsüne
ihtiyaç duyar.
Daha basit olan kontrol ünitesinin tasarımı ve geliştirilmesi
ucuz ve hızlıdır.
Veri aktarımı ve komutu getirme işlemleri aynı anda
gerçekleştirilemez
Kişisel bilgisayarlarda, dizüstü bilgisayarlarda ve iş
istasyonlarında kullanılır.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Harvard Mimarisi
Komutlar ve veriler için ayrı hafıza adresleri kullanır.
Komutlar ve veriler için aynı anda aktarım yapılmasına izin
veren ayrı taşıtları vardır.
İşlemcinin bir komutu tamamlamak için bir saat döngüsüne
ihtiyac duyar.
İki taşıt olduğu için kontrol ünitesi daha karmaşıktır ve bu da
tasarımı ve geliştirmeyi zorlaştırır, maliyet artar.
Veri aktarımı ve komut getirme işlemleri aynı anda
gerçekleştirilebilir.
Mikrodenetleyici ve sinyal işlemede kullanılır.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Bilgisayarın temel prensipleri


Günümüzde kullanılan hemen hemen tüm modern bilgisayar
tasarımları Von Neuman mimari ilkelerine dayanmaktadır. Bu
mimaride:
Veri ve komutlar tek bir okuma/yazma belleğinde saklanır.
Belleğin içeriği, orada saklananlar dikkate alınmaksızın,
konuma göre adreslenebilir.
Komutlar açıkça değiştirilmedikçe sırayla (bir komutdan
diğerine) uygulanır.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Neden Von Neuman mimarisi?


Genel amaçlı, programlanabilir. (Çok farklı problemler farklı
programlar uygulanarak çözülebilir.)
Komutları yürütme otomatik olarak yapılır.
Çok basit elektronik bileşenler ile inşa edilebilir:
Veri işleme fonksiyonu elektronik kapılar tarafından
gerçekleştirilir.
Veri depolama fonksiyonu bellek hücreleri tarafından sağlanır.
Veri iletişimi elektrik kabloları ile sağlanır.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Moore Yasası
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Moore Yasası bitiyor mu?


Bilgisayar Yapıları
Giriş
CPU ve Komut Yürütme

Merkezi İşlemci Birimi (CPU)


CPU’nun temel işlevi, ana bellekte saklanan komutları
yürütmektir. Temel bileşenleri:
Bilgisayar Yapıları
Giriş
CPU ve Komut Yürütme

Merkezi İşlemci Birimi (CPU)


Bir CPU’nun temel işlevi, ana bellekte saklanan komutları
yürütmektir.
Bir komut, CPU’ya temel işlemlerinden birini
gerçekleştirmesini söyler.
CPU, kontrol bilgilerini, verileri ve ara sonuçları tutmak için
kullanılan geçici depolama cihazları olan bir dizi register içerir.
Kontrol ünitesi (CU), ALU ve registerlar arasında veri hareket
yolları sağlayan bir iç veri yolu altyapısını da içerir.
CU, yürütülecek talimatı yorumlar (çözer) ve diğer bileşenlerin
ne yapacağını söyler.
Bilgisayar Yapıları
Giriş
CPU ve Komut Yürütme

Register
CPU’nun komutları yerine getirebilmek için çalışma (geçici
depolama) alanlarına ihtiyaç duyar.
Bu depolama birimleri register olarak adlandırılır.
Resgisterlar bellek hiyerarşisindeki en üst düzey bileşenlerdir.
Resgisterların sayısı ve işlevleri bilgisayarlar arasında değişiklik
gösterir.
Register organizasyonu en önemli tasarım kararlarından biridir.
Bilgisayar Yapıları
Giriş
CPU ve Komut Yürütme

Komutlar
CPU, makine kodunu yalnızca makine formatı olarak
adlandırılan ikili formatta çalıştırabilir.
Bir makine komutu aşağıdaki bilgileri belirtir:
Ne yapılması gerekiyor (operasyon kodu)
İşlemin kime uygulandığı (kaynak işlenenler)
Sonuç nereye gidecek (hedef işlenen)
İşlem bittikten sonra nasıl devam edilir (bir sonraki komutun
adresi).
Makine komutları dört tiptir:
Aritmetik ve mantıksal işlemler.
Veri Hareket Komutları (Data Movement Instructions)
Bellek ve CPU kayıtları arasında veri aktarımı.
G/Ç aktarımı.
Kontrol Komutları
Bilgisayar Yapıları
Giriş
CPU ve Komut Yürütme

Komut Seti Tasarımı


Bir komut setinin tasarımı, bir bilgisayar sisteminin işlemleri
için kritik öneme sahiptir. En önemli konular şunlardır:
Komut repertuarı - Gerçekleştirilecek operasyonların neler
olacağı
Komut formatı - Uzunluk, adres sayısı, çeşitli alanların
büyüklüğü vb.
Veri türleri - Hangi veri türlerinin destekleneceği.
Register - CPU registerlarının sayısı ve kullanımı.
Adresleme - Hangi adresleme modlarının sağlanacağı
Bu konular birbiriyle bağlantılı olduğu için birlikte
düşünülmelidir.
Bilgisayar Yapıları
Giriş
CPU ve Komut Yürütme

Komut Yürütme Mekanizması


Bilgisayar Yapıları
Giriş
CPU ve Komut Yürütme

Komut Yürütme Mekanizması


Bir komutun yürütülmesi birden fazla çevrim süresinde olur.
Fetch: Bellekten işlemciye gelmesi.
Decode: Kod çözme işlemi. Komut için bazı ek bilgiler talep
edilebilir.
Execute: Komutun yürütülmesi.
Write Back: işlem sonucunun komutla öngörülen yere
yazılması.
Bir sonraki komuta geçmeden bunlar bitmeli
Bilgisayar Yapıları
Giriş
CPU ve Komut Yürütme

Makine Kodu
İşlemciler mimarileri gereği sadece ikili sayı sistemi ile
gönderilen komutları anlamaktadır.
Dolayısıyla işlemciler yüksek seviyeli diller (C, C++, Pascal,
vb.) ile yazılmış komutları işletemezler.
İşlemcilere ikili sayı sistemi ile gönderilen komutlara makine
kodu adı verilir.
Her işlemcinin gerçekleştirebileceği belirli sayıda komut
bulunmaktadır.
Bu komutların bütününe Komut Seti adı verilir
Bilgisayar Yapıları
Giriş
CPU ve Komut Yürütme

Assembly Dili
İkili sayı sistemi bizlerin çalışması için uygun değildir.
Onun yerine anlamlı kelirmeleri tercih ederiz.
Örneğin bir hafıza hücresindeki veriyi başka bir hücreye
taşımak için move, toplama işlemi için add, çarpma işlemi için
mul, çıkarmada ise sub kelimelerini kullanırız.
Bu temsili komutların hepsi Assembly (Sembolik) dilini
oluşturur.
Bilgisayar Yapıları
Giriş
CPU ve Komut Yürütme

Assembler
Bu dil ile program yazmak makine diline göre çok daha
kolaydır.
Fakat işlemci sembolik dil ile yazılmış olan komutları
anlayamaz.
İşlemciye gönderilmeden önce assembly dili ile yazılmış olan
kodların makine diline çevrilmesi gerekir.
Assembly dilini makine koduna çeviren programlara Assembler
adı verilir.
Bilgisayar Yapıları
Giriş
CPU ve Komut Yürütme

Makine Çevrimleri ve Performansı


Bir komutun yürütülmesi bir makine döngüsünde
gerçekleştirilir (komut döngüsü).
CPU, birbiri ardına birçok komut yürütür
Bir bilgisayarın makine çevrim süresi (veya komut yürütme
süresi), performansının (hız) bir göstergesidir.
Farklı komutların yürütülmesi için farklı zamana ihtiyaç
duyması nedeniyle, ortalama komut yürütme zamanı sıklıkla
kullanılır.
Bilgisayar Yapıları
Giriş
CPU ve Komut Yürütme

Genel Bilgiler
İşlemci hızı ve bilgisayar hızı farklı kavramlardır.
Hesaplama hız birimi işlem/saniye
Hesaplamak çok zordur, komutların sayısı çok olduğu için
hangi komut seçilecek???
Toplama işleminde A işlemcisi B’den, çarpma işleminde B
işlemcisi A’dan hızlı olabilir.
Günümüzde yaygın olarak FLOPS (FLoating-Point Operations
PerSecond) kullanılmaktadır.
Yöntemler:
Gibson Yöntemi
Knight Yöntemi
Benchmark Problem
Bilgisayar Yapıları
Giriş
CPU ve Komut Yürütme

Gibson Yöntemi
Y.C.Gibson bilgisayarda çözülen problemin türünün,
bilgisayarın hızını etkilediğini belirlemiş ve buna göre
bilgisayarda çözülecek olan problemleri belli türlere (1959)
ayırmıştır.
Bilimsel-teknik, istatistik, mantıksal vb. gibi problemler
Bu problem alanlarının her biri bazı işlemlerin çok, diğerlerinin
ise az kullanılması ile farklılaşmaktadır
Örneğin bilimsel-teknik problemler daha çok aritmetik ve
mantık işlemleri kullanır,giriş ve çıkış işlemleri burada az
kullanılmaktadır. İstatistiksel problemler alanında ise giriş-çıkış
işlemlerinin belirli ağırlığı mevcuttur.
Bilgisayar Yapıları
Giriş
CPU ve Komut Yürütme

Gibson Yöntemi
Bilgisayarın çalışama süresinde bütün işlemlerin yürütülmesi
toplam ihtimali %100 kabul edilir
Ayrı ayrı işlemlerin ağırlıkları her bir problem alanı için
hesaplanabilir.
Örneğin bilimsel ve teknik problem alanında toplama/çıkarma
işleminin ağırlığı 0.33,çarpmanın ki 0.6 ve bölmenin ki 0.02’dir.
Bu ağırlıklar her bir problem alanı için önceden belirlenmiştir.
ti , i. işlemin komutu yerine getirmek için harcanan süredir ve
bilgisayar üreticisi tarafından hazırlanan el kitabında belirtilir.
gi , Gibson Karışımı, yani işlemin ağırlığı ve n ise bilgisayarın
yaptığı işlemlerin sayısıdır.
Bilgisayar Yapıları
Giriş
CPU ve Komut Yürütme

Knight Yöntemi
K.E.Knight bilgisayar hızını basit bir şekilde hesaplamak için
bir takım denklemler geliştirdi(1966).
Yöntem, tipik bir problemin tipik bir programa
dönüştürülmesini ortalama olarak yansıtır.
Fakat bu yöntem, programcıya ve programın bilgisayarın iç
mimarisine ne kadar uygun olarak hazırlandığına bağlıdır.
Bilgisayar Yapıları
Giriş
CPU ve Komut Yürütme

Benchmark Problem
Küçük standart programların kullanılması olarak bilinir.
Bu programlar bilgisayar kullanıcıları komitesi (SPEC, System
Performance Evalnation Cooperative) tarafından belirlenir ve
Benchmark standart programları olarak adlandırılırlar.
Örneğin bir işlemcinin tamsayı ile çalışma performansını
belirlemek için SPECint92 , SPECint95; kayan noktalı çalışma
performansı için ise SPECfl92 veya SPECfl95 Benchmark
programları kullanılmaktadır.
Benchmark yönteminde hız belli bir ölçüde yazılıma bağlıdır
Programlama dili (assembly, yüksek seviyeli diller)
İşletim sistemi
Derleyici (compiler), yorumlayıcı (interpreter)
Bilgisayar Yapıları
Giriş
CPU ve Komut Yürütme

Benchmark Problem
The complexity of the algorithm is reflected by (Tb2 − T 1)/T 0
T 1 is the time needs to evalute function F for 200000 times
T 2 is the time taken by algorithm to solve function F with
200000 function evaluations
T 0 is the time calculated by running the following test
problem:
f or i = 1 : 1000000
x = 0.55 + (double)i; x = x + x; x = x/2; x = x ∗ x;
x = sqrt(x); x = log(x); x = exp(x); x = x/(x + 2);
end;
Bilgisayar Yapıları
Giriş
CPU ve Komut Yürütme

Komut Kümesinin Donanım Yorumu


Bilgisayar mimarisinde bilgi işleme veya kontrol birimlerinin
tamamı belli sayıda lojik kapıdan ve bu kapılar arasındaki
bağlantılardan oluşur.
(a) B değişkeninin değerinin 0 veya 1 olmasına bağlı olarak
dallandırma devresinin lojik yapısı, (b) bu devrenin
çalışmasının algoritmik yorumu
Bilgisayar Yapıları
Giriş
CPU ve Komut Yürütme

Komut Kümesinin Donanım Yorumu


X1 ve X2 şartlarını kontrol eden algoritma ve bu algoritmanın
donanımsal karşılığı olan lojik devre
Bilgisayar Yapıları
Giriş
CPU ve Komut Yürütme

Boole Cebri
Bilgisayar Yapıları
Giriş
CPU ve Komut Yürütme

Özet
Bir bilgisayar, ana belleğinde saklanan bir dizi yönergeyi
(program adı verilen) tekrarlar.
Programlar tarafından belirtilen veri işleme işlemlerini
gerçekleştirir.
İnsan müdahalesine gerek kalmadan programları otomatik
olarak çalıştırır.
İşlemleri çok yüksek hızlarda gerçekleştirebilir.
Çok miktarda veri saklayabilir ve kullanabilir.
Verimli bir şekilde iletişim kurabilir.
Program ve verileri aynı şekilde temsil eder, bu da esnekliğe
yol açar.
Bilgisayar Yapıları

Bilgisayar Yapıları

Dr. Öğr. Üyesi Rüştü Akay

2021-2022 Güz

Mekatronik Mühendisliği
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Komut Kümesi Mimarisi


İşlemcinin yapacağı iş makine komutları ile belirlenir.
İşlemcinin tüm komutlarına komut kümesi (Instruction set)
denir.
Mimari tasarımda komut kümesinin Fonksiyonel Tamlığı
mutlaka sağlanmalıdır. Yani, temel olarak öyle işlemler
seçilmeli ve tanımlanmalıdır ki bilgisayar bu işlemleri
kullanarak karşılaşabileceği bütün problemlere çözüm
üretebilmelidir.
Farklı lojik kapıların muhtelif şekillerde birbirlerine
bağlanmasıyla farklı işlemleri gerçekleştirebilen donanımlar
tasarlanabilir.
Gereken işlemleri gerçekleştirecek prosedürlerin
gerçekleştirilme ağırlıkları donanım ve yazılım üzerine farklı
oranlarda kaydırılabilir. Ancak ne donanımdan ne de
yazılımdan tümüyle vazgeçilmesi mümkün değildir.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Komut Kümesi Mimarisi


Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Komut Kümesi Mimarisi


F 0 = {:= 0, := 1, = 0} (En basit komut kümesi )
F 1 = {:= 0, := 1, = 0, +, −}
F 2 = {:= 0, := 1, = 0, +, −, x, /}
F 3 = {:= 0, := 1, = 0, +, −, x, /, V, &,0 }
F 4 = {:= 0, := 1, = 0, +, −, x, /, V, &,0 , exp(x), ln(x), sin(x), ...}

(:=) atama operatörü,


(=) dallanma operatörü
Komut kümesi geliştikçe bilgisayar mimarisi tasarımında
yazılım ve donanımsal yükler aynı oranda artmaktadır.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Komut Kümesi Mimarisi


Makine komutunun bileşenleri:
Operation code: Kısaca opcode olarak adlandırılır ve
gerçekleştirilecek işlemi belirler.
Source operand: Gerçekleştirilecek işlem için girişleri belirler.
Result operand: İşlem sonucu oluşan sonucu gösterir.
Next instruction: bir sonraki komutu gösterir.
Source ve result operand’lar hafızada bir adresi, CPU
içerisindeki bir registerı veya I/O cihazı referans olarak
gösterebilirler.
Birçok komut kümesi birden çok formata sahiptir.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Komut Kümesi Mimarileri


Bilgisayarın performansını etkileyen en önemli iki unsur:
CLK hızı (frekans)
Bir komutun gerçekleştirilmesi için gereken CLK’ların ortalama
sayısı
Bir komutun gerçekleştirdiği işlemin karmaşıklığı arttıkça
komutun sürdürülme süreside artar.
Komut Kümesi, yazılımla donanım arasında tek Anlaşma
Dilidilir
Komut kümesindeki herhangi bir olumsuzluk hem yazılıma
hem de donanıma katlanarak yansıyabilir.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Komut Kümesi Mimarileri


Komut Kümesi Mimarisi belirlenirken; gereken fonksiyonelliği,
esnekliği ve performansı sağlayacak minimum komut kümesi
oluşacak şekilde belirlenmelidir.
Maliyet/Performans kriterine bağlı olarak iki alternatif
yaklaşımdan birisini tercih eder
Mümkün olduğunca güçlü işlemler kullanmak
Mümkün olduğunca az sayıda komut kullanmak
Bu yaklaşımlardan birincisi CISC mimarisine, diğeri ise RISC
mimarisine götürür.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

CISC ve RISC Mimariler


CISC (Complex Instruction Set Computer - Komut Kümesi
Karmaşık olan Bilgisayar)
RISC (Reduced Instruction Set Computer - Komut Kümesi
Asgari olan Bilgisayar)
TP yi minimum elde etmek için S, A ve TA minumum değerler
olsun istenir. Ancak bu üç parametrenin aynı anda minimum
olması mümkün değil.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

CISC ve RISC Mimariler


CISC mimarisi, S parametresini minimize etme yolunu seçmiş,
bu sırada A ve TA parametrelerinin değerlerinin
yükselmesinden doğacak kayıpların kazanca nispeten az
olacağını iddia etmektedir.
RISC mimarisi, (A x TA ) çarpanını minimize etme yolunu
seçmiş, bu sırada S’in değerinin yükselmesinden doğacak
kayıpların kazanca nispeten daha az olacağını iddia etmektedir.
CISC ve RISC mimarileri birbirlerini reddeden mimariler
olmayıp, bir sistem dahilinde bir araya getirilebilmeleri
mümkün olan mimarilerdir
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

CISC Mimariler
Bu mimaride temel ideoloji, her bir problemi minimum sayıda
komut kullanan programla çözmektir.
Temel işlemler için gereken komutlarla birlikte, düşünülen
uygulama alanında yoğun olarak karşılaşılması olası ve
nispeten karmaşık işlemler için de komutlara sahiptirler.
En basit CISC işlemcilerin bile kullandığı komut sayısı 100
civarındadır. Genel amaçlı CISC işlemcilerin komut sayıları ise
birkaç yüze ulaşabilmektedir
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

RISC Mimariler
Bu mimaride temel ideoloji, yalnızca en temel lojik,
matematik, kontrol ve transfer işlemlerini gerçekleştirebilecek
minimal bir komut kümesi kullanılmasıdır.
Her bir komutun basit donanımla ve yüksek hızlarda
gerçekleştirilebilmesine dikkat edilir.
Komutların derleyiciler için kolay olması önemlidir.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

CISC ve RISC Mimariler


Az komut
CISC (Intel, AMD)
Çok sayıda, uzunlukları farklı komutlar bulunur.
Programlar daha az sayıda komut ile gerçekleştirilir.
Programların bellekte tuttuğu yerden tasarruf sağlar.
Genel amaçlı register sayısı az (8), bu yüzden bellek daha fazla
kullanılır.
CU karmaşık, mikroprogramlama yöntemi ile yapılıyor.
İşlemci karmaşık, yazılım kolay
RISC (Power, Sunspace, ARM) Çok komut
Az sayıda, uzunlukları sabit komutlar bulunur.
Programlar çok sayıda komut ile gerçekleştirilir. (1.66 kat)
Genel amaçlı register sayısı fazla.
Boruhattı (pipeline) tekniği kullanılmakta.
Donanım basit ve az, tasarım süresi kısadır.
İşletim sistemi ve derleyiciye daha çok yük biniyor.
CU donanımsal olarak tasarlanıyor.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Donanım Yazılım Dönüşümlülüğü


Bilgisayar mimarisinin en temel anlayışlarından biriside,
Donanım ve Yazılımın Dönüşümlülüğü’dür.
Eğer özel şartlar tanımlanmamış ise, neyin donanımla neyin
yazılımla gerçekleştirileceğine karar vermek zordur
Donanım ve yazılım arasındaki iş yükü paylaşımı zaman,
maliyet, boyut, performans v.b. parametreler göz önünde
tutularak yapılmalıdır.
Genellikle donanım ile gerçekleştirilen bir işlem, yazılımla
gerçekleştirilen aynı işlemden daha hızlı olur. Çünkü, temel bir
işlem için donanım bir veya birkaç CLK döngüsü (CLK
periyodu) kullanırken, yazılımla sürdürülen aynı işlem için her
biri en azından bir CLK döngüsü gerektiren 4-5 aşama gerekir
(komutu bellekten okuma ve çözme, verileri bellekten okuma,
gereken işlemi gerçekleştirme).
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Donanım Yazılım Dönüşümlülüğü


Bir işlem ister donanımla ister yazılımla gerçekleştirilsin,
mutlaka algoritmasının olması gerekir. Fakat çoğu zaman aynı
işlem için donanım ve yazılımın algoritmaları birbirinden
farklıdır
(A+B)/16 işlemi:
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Donanım Yazılım Dönüşümlülüğü


Mühendisler açısından yazılım ve donanım eşdeğerdir.
Kullanıcılar herhangi bir işlemin yazılım veya donanım ile
yapılması ile ilgilenmezler
Kullanıcılar yalnızca işlemin anlamı, fiyat ve performansı ile
ilgilenir.
Yazılımla gerçekleştirim çok iyi bir algoritma kullanılırken,
donanımla gerçekleştirim kötü bir algoritmayı temel alıyorsa
yazılım daha hızlı olabilir.
Her iki çözüm arasındaki çözüm mikroprogram. Yazılımsal
çözümdeki esneklik ve donanımsak çözümdeki yüksek hız.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Komut Kümesi Mimarileri


Genel bilgisayar mimarisi açısından her bir işlemcide bulunması
gereken en önemli temel komutlar:
Yükleme (Load)
Depolama (Store)
Toplama (Add)
Çıkarma (Sub)
Ve (And)
Gönderme:Reg-Reg
Özel veya (Exor)
Kaydırma (Shift)
Dallanma (Branch)
Atlama (Jump)
Eşitliğe Karşılaştırma (Compare Equal)
Eşitsizliğe Karşılaştırma (Compare Not Equal)
Çağırma (Call)
Geri dönme (Return)
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Komut Kümesi Mimarileri


Komutların işledikleri veri tipleri:
Adresler
Lojik veriler
Bit, Bit dizileri, Standart Bit Grupları
4 bit - Yarım byte (Nibble)
8 bit - Byte
16 bit - Yarım kelime (Half Word)
32 bit - Kelime (Word)
64 bit - Çift Kelime (Double Word)
Karakterler
7 Bit ASCII
Genişletilmiş ASCII 8 Bit
16 Bit UNICODE kodu
Sayılar
BCD sayılar
Tam sayılar
Kayan noktalı Sayılar+
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Komut Kümesi Mimarileri


Komut Kümesi için temel mimariler:
Akümülatör
Yığın (Stack)
Genel Amaçlı Register
Register-Bellek (Register-Memory) mimarisi
Yükle-Depola (Load-Store) mimarisi
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Komut Kümesi Mimarileri (Akümülatör)


Akümülatör Mimarisinde, adı komutlarda geçmeyen, her
zaman operantlardan birini hafızasında tuttuğu için bütün
işlemlere katılan ve sonucun elde edildiği bir register vardır ki
bu register, Akümülatör olarak isimlendirilir.
Her bir komut, yalnız ikinci operandın yerini gösteren adrese
sahip olur.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Komut Kümesi Mimarileri (Yığın)


Yığın Mimarisinde register yoktur. İşlemci içerisinde basit bir
LIFO (Last in first out) prensipli bellek bulunur.
Komutlar operantlar için adres kullanmazlar.
Rasgele erişilemez
Etkili kod oluşturulması zor
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Komut Kümesi Mimarileri (Yığın)


Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Komut Kümesi Mimarileri (Yığın)


Polish notasyonu bilgisayar bilimleri alanındaki önemli
konulardan bir tanesidir.
Operatörleri, operandlardan önce veya sonra gösterme metodu
olarak tanımlanabilir.
Infix: Bilinen klasik gösterim.
Prefix: Operatörler operanlardan önce yazılır.
Postfix: Operatörler operanlardan sonra yazılır.
in, pre ve post, operatörün operand’lara göre yerine karsılık
gelir. Örneğin A + B işleminde
operatör (işlemci): +
operands (işlenenler): A, B
infix gösterim: A + B
prefıx gösterim: +AB
postfix gösterim: AB+
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Komut Kümesi Mimarileri (Yığın)


Postfix formda bazı örnekler:
345 ∗ +=?
34 + 5∗=?
infix formda yazılmış bir notasyonun postfix notasyonuna
çevrilmesinde yığın kullanılır.
Çevrim örnekleri:
A + B − C = AB + C−
(A + B) ∗ (C − D) = AB + CD − ∗
Bir postfix ifadenin 3 2 ∗ 5 6 ∗ + sonucunun hesaplanması
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Komut Kümesi Mimarileri (Genel Amaçlı Register)


Register-Bellek Mimarisine göre en az 8 Register kullanılır ve
her bir komut ile belleğe başvurulabilir.
Genellikle 2 ve 3 adresli komutlar kullanılır.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Komut Kümesi Mimarileri (Genel Amaçlı Register)


Yükle-Depola Mimarisinde belleğe başvurular mutlaka LOAD
ve STORE komutları ile yapılır.
Bu mimari Register-Register Mimarisi olarakta adlandırılır.
Genellikle 3 adresli komutlar kullanılır.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Komut Kümesi Mimarileri (Yığın)


Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Komut Kümesi Mimarileri (Akümülatör)


Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Komut Kümesi Mimarileri (Register-Bellek)


Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Komut Kümesi Mimarileri (Register-Register)


Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Adres Sayısı
0, 1, 2 ve 3 işlenenli komutlar kullanılabilir.
İlk işlenen genellikle hedef olur. (intel ve motorola ters)
Genelde, üç işlenen kullanıldığında, en az biri register olur.
Eğer iki adresli buyruklar kullanılıyorsa, bir adres genellikle bir
register olur. (OP mem, mem) şeklinde bir kullanım geçerli
değildir. Bir bellek bölgesinde başka bir bellek bölgesine veri
aktarımı yoktur.
Sabit bir değer doğrudan Segment Registerine atanamaz.
Aritmetik ve mantık komutları daha çok adrese ihtiyaç duyar.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Adres Sayısı / Örnek


Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Adres Sayısı / Değerlendirme


Adres arttıkça
Daha karmaşık(güçlü) komutlar
Programlarda daha az sayıda komut
Operandlar register adresleme yapıyorsa daha çok register
İşlemcinin kontrol sisteminin karmaşıklığı
Adres azaldıkça
Daha basit komutlar
Düşük donanım sarfiyatı
Programlarda daha çok sayıda komut
Komutların daha hızlı fetch/execution yapılması
Yüksek bellek trafiği ve bundan doğan değişik darboğazlar
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Adres Sayısı / Örnek


For the following assume that values A, B, C, D, E, and F
reside in memory. Also assume that instruction operation
codes are represented in 8 bits, memory addresses are 64 bits,
and register addresses are 6 bits, and data values are 32-bit
integers (4 bytes each).
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Adres Sayısı / Örnek


In the stack code, there are 4 operations done on 3 memory
addresses.
8 * operations + 64 * addresses = 8*4 + 64*3 = 224
In the accumulator code, there are 3 operations done on 3
memory addresses.
8 * operations + 64 * addresses + = 8*3 + 64*3 = 216
In the register-memory code, there are 4 register address
accesses and 3 memory accesses
8 * operations + 64 * addresses + 6 * registers = 8*3 + 64*3
+ 6*4 = 240
In the register-store code, there are 6 register address accesses
and 3 memory accesses
8 * operations + 64 * addresses + 6 * registers = 8*4 + 64*3
+ 6*6 = 260
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Adres Sayısı / Örnek


Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Adres Sayısı / Örnek


Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Adresleme Modları
Adresleme Modları, bir register’ın veya bellek alanının adresini
belirleyecek olan bilgilerin, başvurulan komutun adres
alanlarında gösterilebilme biçimlerini tanımlar.
Adresleme Modları, farklı bilgi işlem ortamları için bilgi
adresleme esnekliği sağlamak amacıyla geliştirilmiş
mekanizmalardır
Değişik adresleme modları kullanmakla, adresleme yöntemleri
esnekleştirilir ve adreslenebilen bellek alanı genişletilebilir.
Fakat bunun bedeli olarak adres hesaplama için gereken
donanım ve zaman artar. Bu nedenle, bir mikroişlemci için
adresleme modları seçilirken, hangi modun maliyet ve
performans açısından ne getirip ne götüreceğini ciddi bir
şekilde değerlendirmek gerekir.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Temel Adresleme Modları


Adresleme Modları, belleğin nasıl kullanıldığını, belleğe nasıl
erişileceğini ve verilerin belleğe nasıl yerleştirileceğini belirler.
Operand: İşlenen
Register: Kaydedici(Yazmaç)
Memory: Bellek
Immediate: Acil veri, doğrudan veri
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Temel Adresleme Modları


Register Adresleme: Her iki operand da kaydedicidir.
Hazır (Immediate):Doğrudan sabit bir değer bir kaydediciye
aktarılır. Sabit değerin büyüklüğü ile register uyumlu olmalıdır.
Direkt (Mutlak): Doğrudan bir adres değeri kullanılır. Bir
adresten bir kaydediciye veri aktarımı gerçekleştirilir.
Registerle Dolaylı: Kaydediciye dayalı dolaylı adresleme
İndisli/Temel: Dolaylı adreslemede köşeli parantez içinde kalan
kaydedicilere bir indis değeri eklenerek kullanılır.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Komut Türleri
Komut türleri genel olarak 3 grupta düşünülebilir:
Veri Hareket Komutları (Data Movement Instructions)
Aritmetik ve Lojik Komutlar
Kontrol Komutları
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Veri Hareket Komutları


Verinin bilgisayarın farklı birimleri arasında transferini sağlayan
komutlardır.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Veri Hareket Komutları (Örnek)


Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Aritmetik ve Lojik Komutlar


Aritmetik ve Lojik Komutlar, register ve bellek içeriklerinin
aritmetik/lojik olarak işlenmesini gerçekleştiren komutlardır.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Aritmetik ve Lojik Komutlar (Örnek)


Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Aritmetik ve Lojik Komutlar (Örnek)


Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Kontrol Komutlar
Komutların çalıştırıldığı sıralamayı değiştirmek için kullanılır.
Şartlı Atlama,
Şartsız Atlama,
Çağırma formlarındadır
Program Counter (PC) değerini değiştirirler.
PC, her zaman bir sonraki erişilecek komut adresini tutar.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Kontrol Komutlar
Taşıma, her biri n basamaklı olan iki işaretsiz sayı
toplandığında sonuç n yada n+1 basamak olabilir. n+1
basamak olduğunda taşıma biti 1 olur.
Am, Am-1,..., A1, A0 ile Bm, Bm-1,..., B1, B0 ile parça parça
toplandığında Ai,Bi toplamından kalkmış olan taşıma
Ai+1,Bi+1 toplamında elde olarak kullanılır.
Taşma, her biri n basamaklı işarette dahil iki sayı toplama
yapıldığında sonuç n yada n+1 olabilir. n+1 olduğunda taşıma
n. değil (n-1). bitten kalkmış olur.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Kontrol Komutlar (Örnek)


Bilgisayar Yapıları

Bilgisayar Yapıları

Dr. Öğr. Üyesi Rüştü Akay

2021-2022 Güz

Mekatronik Mühendisliği
Bilgisayar Yapıları
Giriş
Bellek Sistemi

Motivasyon
Neye ihtiyacımız var?
İşlemciyle karşılaştırılabilir bir hızda çalışan, çok büyük
programları ve verileri saklamak için bir hafızaya
Gerçek:
Bir hafıza ne kadar büyükse, o kadar yavaş olur;
Daha hızlı bir hafızada bit başına düşen maliyet artar.
Çözüm:
Birleşik bir bellek sistemi kurmak
Yani küçük ve hızlı bir belleği büyük ve yavaş bir bellekle
birleştirerek büyük ve hızlı bir bellek gibi davranmasını
sağlamak
Bu iki seviyeli ilke, birçok seviyeden bir hiyerarşiye
genişletilebilir.
Bilgisayar Yapıları
Giriş
Bellek Sistemi

Bellek Hiyerarşisi
Bilgisayar Yapıları
Giriş
Bellek Sistemi

Bellek Hiyerarşisi
Kapasite artar
Erişim süresi artar
Bit başına maliyet düşer
CPU tarafından erişim sıklığı azalır.
Bilgisayar Yapıları
Giriş
Bellek Sistemi

Bellek Hiyerarşisi
İşlemci ile aralarındaki temas şekillerine göre:
İşlemci ve ana bellek ile direkt temasta olan Önbellek (Cache)
İşlemci, önbellek ve yardımcı bellekle direkt temasta olan Ana
bellek (Esas bellek, Main Memory)
Yalnız Ana bellekle direkt temasta olan Yardımcı bellek
5 ayrı bellek çeşidi, 3 ayrı bellek alt sistemi:
Bilgisayar Yapıları
Giriş
Bellek Sistemi

Ön Bellek
Önbellek, ana bellek ile CPU arasına yerleştirilen çok hızlı bir
bellektir.
Programın ana bölümlerini ve verilerini tutmak için kullanılır.
Bilgisayar Yapıları
Giriş
Bellek Sistemi

Zebo nun Ön Bellek Modeli


Yüksek hızlı okuyucu için kişisel kütüphane
Bilgisayar ”öngörülebilir ve yinelemeli bir okuyucudur.”
Nispeten küçük bir önbellekle (örneğin,% 0.1 bellek boyutu)
ile yüksek önbellek isabet oranı, ör.,% 96 elde edilebilir.
Bilgisayar Yapıları
Giriş
Bellek Sistemi

Ön Bellek Özellikleri


Programcılar için şeffaftır.
CPU ana bellek deki adreslerine göre komutları/verileri ifade
eder.
Ana bellekteki programın/verinin sadece çok küçük bir
kısmının kopyasına sahiptir (örneğin, 8GB belleğe sahip 8MB
önbellek).
CPU önbellekte olmayan programa/verilere erişmek isterse
ana belleğin ilgili bloğu önbelleğe kopyalanır.
Önbellekler aslında Statik RAM’lerdir. Statik RAM’ler:
Çok hızlı çalışır.
Kapasiteleri düşüktür.
Çok enerji tüketirler.
Birim boyuta kapladıkları alan fazladır. Maliyet Yüksek.
Veri yenilemeye ihtiyaç duymaz.
Bilgisayar Yapıları
Giriş
Bellek Sistemi

Neden Yüksek Kapasiteli Önbellek Olmuyor?


Yer kısıtlığı
Isınma problemi
Kapasite arttıkca işlemci ile bağlantının uzaması ve bilgi alış
verişi için gerekli sürenin artması.
Bu sebeplerden ötürü 2 seviyeli önbellek uygulamaları tercih
edilir.
Bilgisayar Yapıları
Giriş
Bellek Sistemi

Neden Yüksek Kapasiteli Önbellek Olmuyor?


Ana bellek, L1 ve L2 önbellekleri arasındaki çalışmada
aşağıdaki şartların sağlandığı varsayılır,
Ana belleğe başvuru süresinin Te , L2 önbelleğe başvuru süresi
Tk2 ve L1 önbelleğe başvuru süresi Tk1 ise
Aranmakta olan bilginin ana bellekte bulunma olasılığı P3 , L2
önbellekte bulunma olasılığı P2 ve L1 önbellekte bulunma
olasılığı P1 ise
Tk1 < Tk2 < Te ve P1 < P2 < P3 olur.
Bilgisayar Yapıları
Giriş
Bellek Sistemi

Ön Bellek Özellikleri


Geçici yerellik: Bir öğeye erişildiğinde, yakında tekrar erişme
eğiliminde olacaktır.
Mekânsal yerellik: Bir öğeye erişilirse, adresleri yakın olan
öğelere yakında erişilebilir
Bu erişim deseni, von Neumann mimarisinin temel
özelliklerindendir:
Sıralı komut saklama ve yürütme.
Döngüler ve yinelemeler (ör. Altprogram çağrıları).
Sıralı veri depolama (ör. Dizi).
Bilgisayar Yapıları
Giriş
Bellek Sistemi

Önbellek Tasarımı
Kopyalanan bloğun boyutu ve niteliği, önbellek dolu olduğunda
hangi bloğun kaldırılacağı dikkatlice tasarlanmalıdır.
Önbellek blok boyutu (çizgi boyutu).
Toplam önbellek boyutu.
Haritalama işlevi.
Yedek yöntem.
Yazma politikası.
Önbellek sayısı ve biçimi:
Tek, iki veya üç seviyeli önbellek.
Birleştirilmiş ve bölünmüş önbellek.
Bilgisayar Yapıları
Giriş
Bellek Sistemi

Önbellek Organizasyonu
Önbellek kullanılırken bir verinin önbellek üzerinde nereye
yazılacağını belirleyen farklı yöntemler bulunmaktadır:
Direkt Haritalama (Direct Mapping), veri önbellek üzerinde tek
bir yere yazılabilir.
Asosyatif Haritalama (Associative Mapping), veri önbellek
üzerinde birden fazla yere yazılabilir.
Grup Asosyatif (Set Associative), veri önbellekteki her yere
yazılabilir. Bu iki yöntemin bir araya getirilmesinden oluşan ve
önbellek uygulama şartlarını gerek hız gerekse donanım sarfiyatı
açısından karşılayabilen ve en yaygın olarak kullanılan yöntem.
Bilgisayar Yapıları
Giriş
Bellek Sistemi

Direct Mapping
Bilgisayar Yapıları
Giriş
Bellek Sistemi

Associative Mapping
Hash tablosuna bilgi yerleştirme gibi çalışır.
Lineer, Quadratic, Double hashing
Bilgisayar Yapıları
Giriş
Bellek Sistemi

Önbellek Organizasyonu
Önbellek stratejileri, merkezi işlemcinin Bellekten Okuma /
Belleğe Yazma işlemlerinde önbellekle çalışmasının nasıl
gerçekleşeceğini belirlerler. Bu stratejiler 3 gruba ayrılır:
Okuma Stratejisi
Yazma Stratejileri
Hemen Yazma Stratejisi
Geri Yazma Stratejisi
Yenileme Stratejileri
Okuma Stratejisi çok basittir. İşlemci bellekten okuma için
önce önbelleğe başvurur. Aradığı bilgiyi bulduğunda (Cache
Hit) ana belleğe başvurmaksızın işini devam ettirir. Aradığı
bilgiyi önbellekte bulamadığında ise (Cache Miss), ana
bellekten okuma yapar ve bir sonraki başvurular için okumuş
olduğu bilginin bir kopyasını da önbelleğe koyar. Bu yolla
önbellek doldurulur.
Bilgisayar Yapıları
Giriş
Bellek Sistemi

Önbellek Organizasyonu-Yazma stratejileri


Hemen Yazma Stratejisi, önbelleği yalnızca okuma için
kullanır. Yazma için yapılan başvuruların tamamı ise ana
belleğe yönlendirilir. Fakat yazma için ana belleğe yapılan her
bir başvuru, önbellekte de kontrol edilir. Eğer başvuru adresi
önbellekte varsa, o zaman bu adresteki alanın yeni içeriği
önbelleğe de yazılır.
Geri Yazma Stratejisi, Hemen yazma stratejisinden sadece
yazma prosedüründeki değişiklikle farklıdır. Kopyası önbellekte
bulunan bütün bilgilerin yeni durumları yalnızca önbelleğe
yazılır. Bu durumda önbellekle ana belleğin aynı bloklarının
içerikleri farklı olabilecektir. Fakat bu durumun bir sakıncası
yoktur, çünkü okuma işlemi de önbellekte yapılmaktadır.
Bilgisayar Yapıları
Giriş
Bellek Sistemi

Önbellek Organizasyonu-Yenileme stratejileri


Önbelleğe getirilmesi gereken yeni bilginin dolu olan bloklardan
hangisine yazılması gerektiğine karar veren stratejidir. Dolu
bloktaki veri böylece değiştirilmiş yani yenilenmiş olur. Çok
sayıda Yenileme Stratejisi mevcut olmasına karşın, pratik
olarak en çok uygulanan strateji : İçeriği Yenilenmesi Gereken
Blok En Az Kullanılan Bloktur stratejisidir.
Bu stratejiye göre her bir blok için bir bitlik Dolu/Boş
işaretlemesi kullanılır. Bu işaretlere göre boş blok bulunursa,
yeni bilgi bloğu öncelikle bu boş bloğa yazılır. Boş blok
bulunmadığı taktirde, blokların kullanılma yoğunluğunu
gösteren kodlar analiz edilir ve yeni bilgi en düşük yoğunlukta
kullanılan bloğa yazılır.
Bilgisayar Yapıları
Giriş
Bellek Sistemi

Ana Bellek
İşlemci ile direkt (önbellek kullanılmadığında) veya önbellek
üzerinden temastadır.
Sadece Okunabilir Bellek (Read Only Memory : ROM)
Rasgele Erişimli Belleği (Random Accsess Memory : RAM)
Hem ROM bellek hem de RAM bellek rasgele erişimli
belleklerdir.
Rasgele Erişimli ifadesi, ana belleği oluşturan hücrelerin
herhangi birine herhangi bir anda direkt olarak
başvurulabileceği anlamına gelmektedir.
Okuma ve yazma süresi bütün hücreler için aynıdır.
Ana bellekler aslında Dinamik RAM’lerdir. Dinamik RAM’ler:
Statik RAM’e kıyasla daha yavaş
Kapasiteleri yüksektir
Az enerji tüketirler.
Birim boyuta kapladıkları alan azdır.
Yenilemeye ihtiyac duyarlar.
Bilgisayar Yapıları
Giriş
Bellek Sistemi

Ana Bellek, ROM


Sabit bellek olarak da tanımlanmaktadır.
Bir kere programlandıktan sonra ömür boyu içeriğini korur.
Enerji kesilmelerinde dahi içeriği kaybolmaz, istenildiği zaman
ve istenildiği kadar okunulabilir.
Bilgisayarda devamlı olarak kalması gereken bilgiler bu bellekte
tutulur. BIOS, anakartın bazı temel fonksiyonları, seri
numaraları gibi değiştirilemeyen bilgiler ve I/O kartlardaki
sabit bilgiler (ör, ağ kartındaki MAC adresi gibi)
BIOS (Basic Input Output System-Temel Giriş Çıkış Sistemi),
bilgisayarın tüm fonksiyonel birimlerini test eder ve sonra sabit
diskin Boot sektöründe bulunan programı yükleyerek kendisi
devreden çıkar.
Bilgisayar Yapıları
Giriş
Bellek Sistemi

Ana Bellek, RAM


RAM bellekte tutulması gereken bilgiler istenildiği anda bu
belleğe yazılabilir, istenildiği anda bu bellekten silinebilir.
Bir kere yazılmış olan bilgi istenildiği kadar okunabilir.
Besleme gerilimi kesildiğinde RAM’in içeriğindeki bilgiler
kaybolur.
Bilgisayar Yapıları
Giriş
Bellek Sistemi

Sanal Bellek
RAM belleklerde o anda aktif olarak çalışan programlara ait
dosyalar saklanır. Eğer o anda çok sayıda program aktif olarak
kullanılıyor ve RAM kapasitesi bunlara yetmiyorsa, RAM
öncelikli olarak üzerinde çalışılmakta olan programlara ait
dosyaları üzerinde tutarken açık fakat o anda kullanılmayan
programlara ait dosyaları Hard Disk’e yönlendirir (Paging).
Böylece Hard Diskin belli bir bölümünü RAM olarak kullanır
ve bu bölüm Sanal Bellek olarak isimlendirilir.
Bilgisayar Yapıları
Giriş
Bellek Sistemi

Veri Transferi
İşlemci < −− > Önbellek (Komut/Operant)
Önbellek < −− > Ana bellek (Blok)
Ana bellek < −− > Yardımcı bellek (Sektör/Sayfa/Segment)
Yardımcı bellek < −− > Arşiv bellek (Dosya)
Ana bellek ile önbellek arasında veri aktarımı her zaman bir
blokta yapılır.
Bilgisayar Yapıları
Giriş
Bellek Sistemi

CPU ve Main Memory Hız Uyuşmazlığı


İşlemciden sonra, bilgisayarın performansını en çok etkileyen
birim Ana Bellek birimidir.
Ana belleğin işlemci ile senkronizasyonu (zaman uyumu)
önemli bir performans parametresidir.
Bilgisayar Yapıları
Giriş
Bellek Sistemi

CPU ve Main Memory Hız Uyuşmazlığı


Genellikle, ana bellek hız açısından işlemciden geri kalır ve
bundan dolayı işlemci ile senkron çalışabilmesi için ilave CLK
periyotlarına ihtiyaç duyar.
Ana bellek ile işlemci arasındaki bu senkronizasyon farkı ya
işlemcinin beklemesi ya da daha düşük frekansla çalışan taşıt
CLK’ları ile karşılanabilir.
Adres çözme ve okunmuş olan verilerin tamponlardan geçme
süreleri gibi zaman kayıpları nedeni ile işlemcinin hızı ile
belleğin hızının aynı olduğu durumda bile ek CLK periyotları
gerektirir. Bu değerler arasındaki oran yükseldikçe bekleme
için gereken ek CLK periyotlarının sayısı da artacaktır.
Bilgisayar Yapıları
Giriş
Bellek Sistemi

CPU ve Main Memory Hız Uyuşmazlığı


Bilgisayar Yapıları
Giriş
Bellek Sistemi

Bellekte Veri Yerleştirme ve Adresleme


Bellekte veri yerleştirmenin iki temel prensibi vardır :
Küçükten Başlayarak Yerleştirme (Little Endian) ve
Büyükten Başlayarak Yerleştirme (Big Endian)
Little Endian prensibine göre, verinin en düşük değerli baytının
adresi aynı zamanda verinin kendi adresidir. Yani verinin en
küçük değerli baytı en küçük adreste, en büyük değerli baytı
ise en büyük adreste yerleşir.
Big Endian prensibine göre ise, verinin en yüksek değerli
baytının adresi aynı zamanda verinin kendi adresidir. Yani
verinin en büyük değerli baytı en küçük adreste, en küçük
değerli baytı ise en büyük adreste yerleşir.
Bilgisayar Yapıları
Giriş
Bellek Sistemi

Bellekte Veri Yerleştirme ve Adresleme


INTEL mikroişlemciler sayılar için Little Endian prensibi,
karakter bilgileri içinse Big Endian prensibi kullanmaktadırlar.
MOTOROLA ve RISC mikroişlemciler ise hem sayılar hem de
karakterler için yalnız Big Endian prensibi kullanmaktadırlar.
En düşük değerli bit d0 ve en yüksek değerli bit dn−1
olmaktadır.
Bilgisayar Yapıları
Giriş
Bellek Sistemi

Bellekte Veri Yerleştirme ve Adresleme


Aşağıda, INTEL mikroişlemci mimarisine ait örnek bir hafıza
yerleşme düzeni verilmiştir.
Bilgisayar Yapıları
Giriş
Bellek Sistemi

Bellekte Veri Yerleştirme ve Adresleme


16 tabanlı C65D38BH sayısında en sondaki H harfi bu sayısın
Hexadecimal yani 16 tabanında olduğunu göstermektedir. Bu
nedenle H hafızaya kaydedilmez
Örneğin, 8 tabanında bir sayı verilseydi sonuna O (Octal)
yazılırdı ve bu O harfi hafızaya kaydedilmezdi.
Little Endian yöntemine göre, en düşük değerli bitten
başlayarak 2’şerli ayırırsak 8B, D3, 65, 0C (C tek bit kaldığı
için başına sıfır koyduk) değerlerini hafızadaki herhangi bir
bayt?tan başlayıp daha yüksek baytlara doğru yerleştiririz.
Belleğin bir baytında, sayısal bilgi durumunda iki rakam,
karakter bilgisi durumunda ise bir karakter yerleştiğine dikkat
edelim.
Metin içerisindeki sayısal bilgilerde ayrı ayrı karakter olarak
değerlendirilir.
Bilgisayar Yapıları
Giriş
Bellek Sistemi

Bellekte Veri Yerleştirme ve Adresleme


Veri ağlarında(TCP, FTP, HTTP, SMTP, IPv4 ve IPv6) Big
Endian prensibi kullanılır.
Herhangi bir bilgi paketi (IP adresi, paket uzunluğu, kontrol
değeri) gönderileceği zaman en önemli byte önce gönderilir.
Mikroişlemciler temel olarak Little Endian prensibi kullanıyor.
Bilgisayar Yapıları

Bilgisayar Yapıları

Dr. Öğr. Üyesi Rüştü Akay

2021-2022 Güz

Mekatronik Mühendisliği
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Veri Taşıtları ve Veri Yolları


Veri Taşıtı, iki ve daha çok birim arasında veri iletişimi
yapmak için kullanılan bağlantı tellerini ifade etmektedir.
Veri taşıtları ihtiyaç duyulması halinde sinyal güçlendiriciler,
sinyal biçimlendiriciler, kilit registerlar ve özel kontrol devreleri
gibi ek donanımlar ile entegre edilebilirler.
Veri taşıtlarının tek fonksiyonu bilgiyi bir birimden diğer bir
birime veya birimlere taşımaktır.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Veri Taşıtları ve Veri Yolları


Veri Yolu ise, işlem gören verinin girişten çıkışa kadar geçtiği
yolu ifade eder. Bu yolda hem fonksiyonel birimler hem de
taşıtlar olabilir.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Veri Taşıtları ve Veri Yolları


Taşıtlar, herhangi A ve B birimleri arasında bilgi (veri, adres,
komut, kontrol sinyalleri ve durum sinyalleri) transferini
gerçekleştirir.
Genel amaçlı işlemcilerin çoğunda Sistem Taşıtı, üç ayrı
kategoriden sinyalleri taşıyan üç farklı taşıt türünden oluşur.
Adres Taşıtı (Address Bus)
Veri Taşıtı (Data Bus)
Kontrol Taşıtı (Control Bus)
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Veri Taşıtları
Adres Taşıtı, hangi birimin (bellek alanlarından birisinin mi
veya çevre birimlerinin portlarından birisinin mi) işlemci ile
bilgi iletişimine gireceğini bildiren adresleri taşır. Diğer bir
tanımla, CPU ile ana hafızayı birbirine bağlayan ve ana
hafızadaki belirli adresleri tanımlamak için kullanılan iletken
teller adres taşıtını oluşturur.
Veri Taşıtı, adres taşıtı ile belirlenmiş olan birimle işlemci
arasında veriyolu oluşturur.
Kontrol Taşıtı, adreslenmiş olan birimin (SLAVE) ne
yapacağını bildiren sinyaller taşır. Bu sinyallere göre söz
konusu birim, merkezi işlemci (CPU) veya başka bir yöneten
birim (MASTER) tarafından veri taşıtına koyulmuş olan bilgiyi
alır (Yazma-Write) veya kendi içerisindeki bilgiyi veri taşıtına
koyar (Okuma-Read).
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Veri Taşıtları
DMA (Direct Memory Access-Doğrudan Belleğe Ulaşım): Bir
çevre birimi ile RAM bellek arasında büyük gruplar halinde
bilgi transferi yapılması gerektiğinde, bu işi genellikle merkezi
işlemcinin yerine DMA birimi yapar.
Bu durumda, işlemci ile çevre birimleri arasında dönmesi
gereken olaylar DMA ile çevre birimleri arasında döner
Sistem taşıtları PCI mimarisinde yapılmakta olan günümüz
modern bilgisayarlarının ana kartlarında kullanılmakta olan
daha geliştirilmiş ve gerektiğinde MASTER gerektiğinde ise
SLAVE olarak davranabilen DMA’lar, Busmaster veya Ultra
DMA olarak tanımlanmaktadırlar.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Veri Taşıtları
Kontrol Kodu: İşlemcinin çevre birimlerine gönderdiği veri, her
zaman operant tipi (üzerinde işlem yapılmakta olan) veri
olmayabilir. Bazen çevre birimlerinin neleri nasıl yapacakları
hakkında kontrol bilgileri de veri taşıtı üzerinden iletilir. Bu
tür bilgiler, Kontrol Kodu olarak isimlendirilir.
Bazen özel durumlar oluştuğunda işlemci, çevre biriminin
Durum Kodunu da veri taşıtı üzerinden alır.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Taşıt Bağlantıları
Taşıt bağlantıları iki temel prensibe göre gerçekleştirilmelidir
Bütün birimler lojik olarak birbirine bağlanabilmelidirler
Değişik tipteki birimler farklı bağlantı şekillerini gerektirebilirler
Değişik birim tipleri, aşağıdaki sınıflara bölünebilir,
Esas bellek
Giriş/Çıkış (Çevre Birimleri)
Merkezi İşlemci
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Taşıt Bağlantıları
Veri taşıtları genellikle çift yönlü (Bidirectional) olarak
yapılandırılırlar.Hher bir zaman diliminde aşağıdaki yönlerden
birisinde bilgi taşır,
Girişten belleğe (İşlemci veya DMA üzerinden)
Bellekten çıkışa (İşlemci veya DMA üzerinden)
Bellekten işlemciye veya DMA’ya
İşlemciden veya DMA’dan belleğe
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Taşıt Bağlantıları
Bellek Bağlantısı, belleğin MASTER’dan (bilgi transferini
yöneten birimden - İşlemci veya DMA) adres almak, kontrol
sinyalleri almak, veri almak ve MASTER’a veri göndermek
görevlerini destekler
Giriş/Çıkış Bağlantısı, çevre birimleri portlarının MASTER’dan
adres almak, kontrol sinyalleri almak, MASTER’dan veri alıp
çevre birimlere vermek, çevre birimlerden veri alıp MASTER’a
vermek ve gerektiğinde işlemciden kesme yolu ile hizmet
istemek görevlerini destekler
İşlemci Bağlantısı, İşlemcinin; bellekten komut almak,
bellekten ve çevre birimlerin portlarından veri almak, çevre
birimlerden kesme sinyalleri almak, belleğe ve çevre birimlerin
portlarına adres, veri ve kontrol sinyalleri göndermek gibi
faaliyetleri destekler.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Birimler Arası Veri Transferi


İşlemci Üzerinden Veri Transferinde
Giriş biriminden belleğe:
İşlemci Okuma sinyali ile Giriş portundan bir bilgi alır (veri
taşıtı üzerinden)
Aldığı bilgiyi yeniden veri taşıtına koyarak Yazma sinyali ile
belleğe yazar.
Bellekten Çıkış birimine:
İşlemci Okuma sinyali ile bellekten bir bilgi alır (veri taşıtı
üzerinden)
Aldığı bilgiyi yeniden veri taşıtına koyarak Yazma sinyali ile
Çıkış Portuna yazar.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Birimler Arası Veri Transferi


DMA Üzerinden Veri Transferinde
Giriş biriminden belleğe:
DMA giriş biriminden ’Hazır’ sinyalini bekler (veri taşıtı
üzerinden)
Bu sinyal geldiğinde belleğe yazma sinyali göndererek taşıttaki
bilgiyi aldırır.
Bellekten Çıkış birimine:
DMA çıkış biriminden ’Hazır’ sinyalini bekler
Bu sinyal geldiği anda iletilecek bilgiyi bellekten okuyup veri
taşıtına koyar
Çıkış portuna Yazma sinyali göndererek veri taşıtındaki bilgiyi
aldırır
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Fonksiyonel Birimler
Çevre Birimi, giriş veya çıkış işlemini yerine getiren fonksiyonel
birimdir
Çevre Birimi Kontrolörü, çevre birimini yöneten ve merkezi
işlemci ile bilgi (komut, veri, kontrol, durum) alışverişini
gerçekleştiren yerel kontrol devresidir.
Port Grubu, her bir çevre birimi işlemci ile iletişimde
bulunabilmek için Giriş, Çıkış, Kontrol ve Durum portlarına
sahip olmalıdır. Bazen bu portların yerine aynı amaca yönelik
registerlar kullanılır. Bu durumda iletişim tek bir port
üzerinden yapılır. Söz konusu porta gelen bir bilginin hangi
registera gönderileceği ise bu porta ilave edilmiş olan adres
bitleri ile veya başka bir porta verilen adres kodu ile belirlenir.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Fonksiyonel Birimler
Çevre Biriminin Giriş Portu, işlemcinin veri taşıtı üzerinden
gönderdiği bilgiyi almak için kullanılır. İşlemci taşıta yeni veri
koyduğunu çevre birimine bildirir. Çevre birimi bu veriyi kendi
portuna alır. Bazı sistemlerde veriyi porta yazma işlemini de
işlemci gerçekleştirir.
Çevre Biriminin Çıkış Portu, çevre biriminden işlemciye veri
taşıtı üzerinden veri göndermek için kullanılır. Çevre Birimi
Kontrolörü porta yeni veri koyduğunu işlemciye bildirir.
İşlemci bu bilgiyi veri taşıtından ve porttan alır.
Giriş/Çıkış Portu, modern mikroişlemcilerde hem giriş hem de
çıkış için çift yönlü portlar kullanılmaktadır. Bu durum ise,
sisteme çok büyük bir uygulama esnekliği kazandırır.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Giriş/Çıkış Portları
Paralel Port
Seri Port
USB Port
PS/2 Port
VGA Monitor Port
Ethernet Port
Modem RJ-11 Port
Firewire IEEE 1394 Port
Audio Portu
S-Video Port
DVI Monitor Port
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Fonksiyonel Birimler
Kontrol Portu, İşlemci, çevre biriminin ne yapması gerektiğini
bildiren kontrol kodunu bu registera gönderir veya yazar.
Kontrol portu da aslında bir giriş portudur.
Durum Portu, işlemci ile uyumlu bir şekilde çalışabilmesi için,
çevre biriminin gerekli çalışma koşullarını sağlıyor olması
gerekir. Bu nedenle, çevre biriminin kontrolörü ait olduğu
birimin durumunu durum portuna yazar. Genellikle işlemci, bir
çevre birimi ile alışverişe başlamadan önce onun durum
portunu okur ve çevre biriminin gereken durumda
bulunduğuna emin olduktan sonra veri aktarımına başlar. Aksi
halde hata mesajı verir, örneğin, Klavye bağlı değil, Yazıcıda
kağıt yok, Boş disk alanı yok?v.s. Durum portu da aslında bir
çıkış portudur.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Çok Taşıtlı Sistemler


Çok sayıda cihazın tek bir sistem taşıtına bağlanması,
koordinasyon probleminin ağırlaşmasına, taşıtların
uzunluğunun artmasına sebep olur. Hız ve performans düşer.
Bu nedenle, yüksek performans gerektiren durumlarda sistem
taşıtları da hiyerarşik prensibe (aynen hiyerarşik yapılı bellek
sisteminde olduğu gibi) tabii tutulurlar.
Birimler hıza göre gruplanır. Her bir grup için özel bir taşıt
kullanılır. En hızlı grubun taşıtı işlemciye en yakın, en düşük
hızlı grubun taşıtı ise işlemciye en uzak olarak yerleştirilir.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Çok Taşıtlı Sistemler


Hiyerarşik taşıt yapısında, komşu seviyelerde bulunan taşıtlar
arası irtibatlar Köprüler, Genişleticiler veya Adaptörler olarak
adlandırılan bağdaştırıcılar ile sağlanır.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Taşıt Hakemliği
Genellikle taşıtın kontrolünü sadece merkezi işlemci değil,
başka diğer birimlerde üstlenebilmektedir. Bunlardan en çok
bilineni DMA birimidir.
Eğer bir sistemde birkaç DMA varsa, bu DMA’lar taşıtların
kullanımı hususunda gerek işlemci ile gerekse birbirleri
arasında rekabete girerler.
Bu durumun önlenmesi için, Taşıt Hakemliği denilen bir
mekanizma kullanılır.
Taşıt Hakemi, bütün MASTER’lardan gelen talepleri kabul
eder. Fakat herbir zaman diliminde yalnızca bir MASTER’ın
taşıtı kontrol etmesine müsaade eder ve bunu yaparken
MASTER’ın öncelik seviyesini dikkate alır.
Bilgisayar Yapıları
Giriş
Kavramlar ve Tanımlar

Öntaşıt ve Yerel Taşıt Kavramları


Çok katlı taşıt sisteminde sistem birden fazla taşıttan oluştuğu
için, Sistem Taşıtı genel kavramı yerine çok katlı sistemin her
bir taşıtı özel bir isimle tanımlanır
İşlemci ile direkt temasta olan taşıt Öntaşıt (Front Side
Bus-FSB) olarak,
Diğer taşıtlar ise özel adları ile tanımlanır.
Gerçek taşıt örnekleri:
İlk PC Taşıt
ISA Taşıt
EISA (Extended ISA) Taşıt
PCI Taşıt
Bilgisayar Yapıları

Bilgisayar Yapıları

Dr. Öğr. Üyesi Rüştü Akay

2021-2022 Güz

Mekatronik Mühendisliği
Bilgisayar Yapıları
Merkezi İşlemci Birimi

Merkezi İşlemci Birimi (CPU)


CPU bir bilgisayarın beynidir.
Temel fonksiyonu programları çalıştırmak ve devam
ettirmektir.
Giriş birimlerini, çıkış birimlerini ve bilgisayarın diğer
bileşenlerini de kontrol eder.
CPU tarafından çalıştırılacak ve devam ettirilecek olan
program esas bellekte kaydedilir. CPU, çalıştıracağı bu
programa ait komut kodlarını esas bellekten alır ve bu kodları
çözer.
Bir programa ait komutların çalıştırılabilmesi için ihtiyaç
duyulan veriler CPU registerlarında veya esas bellekte kayıtlı
olabilir. Bir programın tüm komutları gerçekleştirildiğinde,
CPU o programın çıktılarını üretir. Bu çıktılar programın
komutlarına göre ya esas belleğe kaydedilir veya çıkış
birimlerine gönderilir.
Bilgisayar Yapıları
Merkezi İşlemci Birimi

Merkezi İşlemci Birimi (CPU)


Bir CPU’nun ana bölümleri:
Aritmetik- Lojik Birim (ALU)
Kontrol Birimi
Akümülatör ve Genel/Özel amaçlı registerlar
Bilgisayar Yapıları
Merkezi İşlemci Birimi

Aritmetik- Lojik Birim (ALU)


Aritmetik-Lojik Birimin fonksiyonu aritmetik ve lojik işlemleri
gerçekleştirmektir. ALU genellikle aşağıda verilen aritmetik ve
lojik işlemleri gerçekleştirir.
Toplama, Çıkarma
Çarpma, Bölme
Lojik AND, OR, EXOR, NOT
Artırma (ör., 1 ekleme), Azaltma (ör., 1 çıkarma)
Sağa veya Sola Kaydırma
Silme
Logaritmik, trigonometrik, üstel ve floating-point gibi diğer
matematiksel işlemler ALU tarafından gerçekleştirilemez.
Bu tip işlemler Floating-Point Birim (FPU) olarak adlandırılan
özel amaçlı matematik işlemcileri vasıtasıyla gerçekleştirilirler.
Bilgisayar Yapıları
Merkezi İşlemci Birimi

Aritmetik- Lojik Birim (ALU)


Modern işlemcilerde FPU birimi işlemciye gömülü olarak
üretilmektedir (on-chip FPU).
Fakat daha basit yapılı işlemciler gömülü bir FPU birimine
sahip değildirler.
Bu tip basit yapılı işlemcilerde matematiksel işlemler yazılım
vasıtasıyla gerçekleştirilir. Bu tip matematiksel işlemlerin
gerçekleştirilmesinde yazılımı kullanmak bilgisayarı önemli
ölçüde yavaşlatmaktadır.
FPU’lar bilgisayarı hızlandırırken aynı zamanda programlama
karmaşasını da ortadan kaldırmaktadır.
Bilgisayar Yapıları
Merkezi İşlemci Birimi

Kontrol Birimi
CPU’nun kontrol birimi, bilgisayardaki bütün işlemleri kontrol
eden birimdir.
Kontrol birimi, gerçekleştireceği işleme ait komutları esas
bellekten alır; bu komutları çözer ; gerçekleştirilecek görevlerin
neler olduğunu anlamak için komutları yorumlar; ve komutların
gerçekleştirilmesine yardımcı olacak bilgisayarın diğer
birimlerine uygun kontrol sinyallerini gönderir.
CPU ile CPU’nun çevre birimleri (hafıza dahil) arasındaki veri
akışını kontrol eder.
Bütün işlemler için, ihtiyaç duyulacak olan zamanlama ve
kontrol sinyallerini üretir.
Bilgisayar Yapıları
Merkezi İşlemci Birimi

Register
Bir CPU, herhangi bir program çalışmaya devam ederken
verilerin geçici olarak depolanacağı registerlar içerir.
İhtiva edilen register sayısı her bir işlemcide farklı
olabilmektedir.
Üç gruba ayrılır:
Genel amaçlı registerlar
Akümülatör
Özel amaçlı registerlar
Bilgisayar Yapıları
Merkezi İşlemci Birimi

Genel Amaçlı Register


Programcıların istedikleri bilgi türü için ve istedikleri amaçla
kullanabildikleri registerlardır.
BX - the base address register - adres ba?langıcı (BH / BL).
CX - the count register - sayma (CH / CL).
DX - the data register - veri (DH / DL).
SI - source index register - kaynak indisi.
DI - destination index register - hedef indisi.
BP - base pointer - temel gösterici.
SP - stack pointer - yığıt gösterici.
Programcı, genel amaçlı register’ları istediği gibi kullanabilir.
Register’ların ana amacı, bir değişkeni tutmaktır.
Bilgisayar Yapıları
Merkezi İşlemci Birimi

Register (Akümülatör)
Akümülatör, çoklu fonksiyonlara sahip olan en önemli genel
amaçlı registerdır.
Veri transferlerinde, aritmetik ve lojik işlemlerde en verimli
registerdır.
CPU ile diğer birimler/portlar arasındaki veri transferi
Akümülatör vasıtasıyla gerçekleştirilir.
Bilgisayar Yapıları
Merkezi İşlemci Birimi

Özel Amaçlı Register


Bir CPU aşağıda verilen bazı özel amaçlı registerların bazılarını
veya hepsini de içerebilir.
Program Counter (PC)
Stack Pointer (SP)
Status Register
Instruction register (IR)
Index register
Memory adress register (MAR)
Memory buffer register (MAR) veya Data register (DR)
Input/Output address Register (I/O AR)
Input/Output buffer Register (I/O BR)
Bilgisayar Yapıları
Merkezi İşlemci Birimi

Özel Amaçlı Register


Program Counter (PC) Register, bir sonraki adımda
yürütülecek olan komutun adresini takip eder. Yani, esas
bellekten alınacak olan bir sonraki komutun bellekteki
konumunu tutar.
Stack Pointer (SP) Register, Yığın, kullanıcı tarafından
tanımlanmış olan bir dizi bellek konumlarıdır. Bu register,
yığın içerisindeki bellek adreslerinden en son kullanılanını
kaydeder. Böylece, yığının en son hangi bellek adresine kadar
doldurulduğu tespit edilmiş olur.
Bilgisayar Yapıları
Merkezi İşlemci Birimi

Özel Amaçlı Register


Status Register (veya Flag Register), bir programda
dallanmalar düzenlenirken her bir dallanma noktasında bir
şartın kontrol edilmesi ve bu şartın durumuna bağlı olarak
dallardan birisine gidilmesi gerekir.
Dallanma noktasında kontrol edilecek olan şart,
ya en son gerçekleştirilen işlemin sonucunu karakterize eden
değişkenlere göre,
ya da işlemciyi özel fonksiyonlar gerçekleştirmeye yönlendiren
değişkenlere göre, belirlenir.
Söz konusu değişkenlere Bayrak (Flag) bu değişkenlerin
tutulduğu register’a ise Bayrak registerı denir.
Bir Flag aslında işlemci tarafından Set veya Reset edilebilen
bir flip- flop ’tur.
Bilgisayar Yapıları
Merkezi İşlemci Birimi

Status Register
Carry, 8bit işlem sonucu 9 bit ortaya çıkarsa
Zero, aritmatik veya mantıksal işlemin sonucu sıfır ise
IRQ, Kesme yetkisizliği, kesmeleri dikkate alma.
Desimal, işlemler BCD yada ikili modda yapılacak
Break, Program durduğunda
Overflow, işlem -128,+127 aralığını geçiyorsa
Negative,sonuç negatif ise
Bilgisayar Yapıları
Merkezi İşlemci Birimi

Özel Amaçlı Register


Instruction Register (IR), bir komut çözümleninceye (decode)
kadar bu registerda saklanır. Bazı bilgisayarlar iki adet IR
register içerir böylece mevcut komutun işlenmesine devam
edilirken bir sonraki komut esas bellekten alınarak
kaydedilebilir.
Index Register, adresleme için kullanılan registerdır. Index
Register olarak bir veya daha fazla sayıda register
tanımlanabilir. Bir operandın (operand: bir işleme katılan veri
çeşidi ya da büyüklük) bellekteki adresi, bu registerın içeriği ile
bir sabitin toplanmasıyla elde edilir.
Bilgisayar Yapıları
Merkezi İşlemci Birimi

Özel Amaçlı Register


Memory Adress Register (MAR), esas bellekten alınacak olan
komutun veya verinin adresini tutar. CPU bir sonraki komutun
adresini Program Counter’dan alarak MAR’a (hafıza adres
registerına) transfer eder. MAR bu adres bilgisini Adres Taşıtı
üzerinden belleğe gönderir.
Memory Buffer Register (MBR) veya Data Register (DR),
bellekten alınan veya belleğe gönderilen komut kodunu veya
veriyi tutar. Bu register veri taşıtına bağlıdır. Hafızaya
yazılmış olan veriler YAZMA işlemi tamamlanıncaya kadar bu
register içerisinde saklanırlar. Böylece, CPU’dan Hafızaya veya
hafızadan CPU’ya veri akışı daima MBR üzerinden
gerçekleştirilir. MBR, CPU içerisinde gömülü olarak tasarlanır.
Bilgisayar Yapıları
Merkezi İşlemci Birimi

Özel Amaçlı Register


Input/Output address Register (I/O AR), veri taşıtı üzerindeki
bilginin gönderileceği Giriş/Çıkış biriminin adresinin tbelirleyen
register.
Input/Output buffer Register (I/O BR), veri taşıtı üzerindeki
bilgiyi I/O AR tarafından belirlenen birime aktaran register.
Bilgisayar Yapıları
Merkezi İşlemci Birimi

Belleğe Yazma
Bilgisayar Yapıları
Merkezi İşlemci Birimi

Bellekten Okuma
Bilgisayar Yapıları

Bilgisayar Yapıları

Dr. Öğr. Üyesi Rüştü Akay

2021-2022 Güz

Mekatronik Mühendisliği
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Motivasyon
Bilimsel hesaplama ve mühendislik alanlarında ortaya çıkan
problemlerin karmaşıklıkları devamlı olarak artmaktadır.
Performansı daha yüksek olan bilgisayar arayısı devam
etmektedir
Neden mikroişlemci üreticileri daha hızlı tek işlemci
üretmiyorlar?
Neden paralel hesaplama sistemleri yapılıyor?
Neden seri olarak yazdığımız programlar çoklu işlemcileri
kullanacak şekilde paralel programlara çevrilmiyor?
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Genel Bilgiler
1986 dan 2002 ye kadar mikroişlemci performans her yıl
ortalama olarak %50 artarken 2002’den sonra bu artış %20’ye
düşmüştür.
2005’ten sonra bir den fazla çekirdeğe sahip mikroişlemciler
üretilmeye başlanmıştır.
Bir den fazla çekirdeğe sahip mikroişlemciler seri olarak
gerçekleştirilen programlar üzerinde ciddi performans artışı
göstermeyecektir.
Çünkü programlar tek işlemci üzerinde çalışmak üzere
planlanmıştır. Sistemde bir den fazla işlemci olması
performansı artırmayacaktır.
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Daha fazla performans


İklim Modelleme: İklim değişiklerinin doğru bir şekilde
modellenmesi için pek çok faktörün göz ününde
bulundurulması gerekmektedir. Karbondioksit salınımlarından
kutuplardaki buz kütlelerinin miktarına, yıllık erime
miktarlarına kadar.
Protein katlaması: Yanlış katlanmış proteinlerin çeşitli
hastalıklara sebep olduğu bilinmektedir. Parkinson, Alzheimer
gibi. Karmaşık moleküllerin yapısının anlaşılması için hıza
ihtiyaç vardır.
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Daha fazla performans


Yeni ilaçların elde edilmesi. Kimyasal maddelerin vücut
bileşenlerinin nasıl etkilediğinin araştırılması ve yeni ilaçların
geliştirilmesi
Enerji araştırması: Yenilenebilir enerji kaynaklarının daha etkin
kullanılabilmesi yani daha verimli enerji üretilmesi için
hesaplama hızına ihtiyaç duyabilir.
Veri analizi: Dünyada kaydedilen verilen her yıl iki kat
artmaktadır. Bu veriler kaydedilmiş haliyle kullanım alanı
sınırlıdır. Bu verilerin işlenmesi ve anlamlı bilgilerin çıkarılması
için daha fazla işlem kapasitesine ve hıza ihtiyaç duyulur.
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Neden paralel sistemler


Hızın olağan üstü artışı kullanılan transistör sayısının
artmasıyla gerçekleşmiştir. Zamanla transistörlerin küçülmesi
ile birlikte daha fazla transistörler kullanılabilir hale gelmiştir.
Transistör sayısının artması enerji tüketimini de artırmıştır. Bu
enerji ısı olarak ortaya çıkmaktadır.
Isınan entegre kararsız çalışmaktadır.
Tek bir karmaşık hızlı bir işlemci yerine çözüm olarak tek bir
işlemci yerine daha basit ve çoklu çekirdek teknolojisine
geçilmiştir.
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Neden paralel programlama


Seri olarak yazılmış olan programlar paralel donanımları etkin
olarak kullanamamaktadır.
Seri olarak yazılan programlar paralel hale getirilmek
zorundadır.
Seri olarak yazılan programlar paralel hale otomatik hale
getirilebilir mi?
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Seri hesaplama nedir


Geleneksel olarak, yazılımlar seri hesaplama için yazılmıştır.
Yazılım bilgisayar üzerindeki tek Merkezi İşlem Birimi (CPU)
üzerinde çalışmaktadır.
Problem komutlara ayrılmıştır.
Komutlar ardışık olarak çalıştırılmaktadır.
Herhangi bir anda sadece bir komut çalıştırılabilmektedir.
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Paralel hesaplama nedir


Bir problemi çözmek için çok sayıdaki hesaplama kaynağını
aynı anda kullanmaktır.
Program çok sayıda CPU üzerinde çalışmaktadır.
Problem eşzamanlı olarak çözülebilecek komutlara ayrılır.
Her bir parça kümesi komutlara ayrılır.
Her bir parçanın komutları aynı anda farklı CPU’lar üzerinde
çalıştırılır.
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Örnek
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Örnek
Toplam 24 sayının toplanacağını ve sekiz çekirdeğimiz
olduğunu varsayalım.
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Örnek
Çekirdeklerden bir tanesi master core olmak zorundadır.
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Örnek
Aynı örneği farklı bir şekilde yapabiliriz.
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Örnek
İki şekilde yapılan örneği dikkate alırsak birinci yöntemde n-1
adımda, ikinci yöntemde de yaklaşık 2n adımda
gerçekleştirildiği görülmektedir.
1000 çekirdekli bir makine ile işlemleri gerçekleştirdiğimizi
düşünürsek birinci yöntemde 999 adet veriyi alma ve toplama
işlemi yaparken ikinci yöntemde 10 adımda bitecektir. Arada
100 kat fark vardır.
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Moore Yasası
1965 yılında Gordon Moore tarafından formüle edilmiştir.
Bu yasaya göre devre karmaşıklığı ve işlemci performansları
her 18 ay iki kat artmaktadır.
İşlemci performanslarını
Saniyedeki Komut Sayısı, Instructions Per Second (IPS)
Saniyede gerçeklestirilen Kayan Nokta Sayılı işlem Sayısı,
Floating-Point Operations Per Second (FLOPS)
Gerçek uygulamalar üzerinde ölçmeye çalışan güçlü benchmark
yazılımları
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Paralel Hesaplama Donanımları ve Yazılımları


Verimli bir paralel hesaplama için hem donanım hem de
yazılım kabiliyetlerine ihtiyaç vardır.
Paralel hesaplamayı gerçeklestirmek için çok çesit donanım
mimarisi ve bu mimarileri destekeyen yazılım modelleri
mevcuttur.
Donanım mimarilerini mantıksal bir sınıflandırma yapmak zor
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Flynn Taksonomisi
Michael J. Flynn tarafından 1966 yılında ortaya konan
sınıflandırma
Bilgisayar mimarileri komut ve veri olmak üzere iki bağımsız
boyut üzerinden sınıflanırlar
Bu boyutlardan her biri tek veya çok olmak üzere iki olası
durumda olabilir.
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Single Instruction Single Data, SISD


Tek Komut Tek Veri
Seri bilgisayarlar
Mimari, bir işlemci ve bir kontrol biriminin olduğu klasik Von
Neumann mimarisinin özelliklerini taşır.
İşlemcide aynı anda yalnızca bir tek komut işletir
Aynı anda işlenen veri sayısı da en fazla bir olabilir
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Single Instruction Multiple Data, SIMD


Tek Komut Çok Veri, Paralel hesaplama sistemidir
Sistem tek bir kontrol birimine ve birden fazla işlemci birimine
sahiptir.
Yürütülen her bir işlem aynı saat sinyaliyle aynı komutu farklı
veriler ile çalıştırmaktadır.
Tüm işlemciler bir kontrol birimi tarafından kontrol edilirler.
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Multiple Instruction Single Data, MISD


Çok Komut Tek Veri
Farklı komut setleri farklı işlemciler ile aynı veri üzerinde
işletilmektedir.
Tasarlanması zor, birçok problem için uygun değil.
Yaygın kullanılmamaktadır.
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Multiple Instruction Multiple Data, MIMD


Çok Komut Çok Veri
Farklı işlemciler farklı komutları farklı veri setleri üzerinde
işletebilmektedir
Kontrol birimlerinin sayısı birden fazla
İşlemciler ara sonuçları birbirlerine iletebilmektedirler.
Belleklere erişim yöntemlerine göre paylaşımlı bellekli veya
dağıtık bellekli olarak sınıflandırılırlar.
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Paralel Bilgisayarlar
Paralel bilgisayarlar olarak adlandırılan günümüz süper
bilgisayarları Flynn’nın sınıflandırmasına göre SIMD ve MIMD
olarak iki temel prensipte tasarlanmaktadır.
Bu sistemler çok çekirdekli işlemciler, ortak ağa bağlı birçok
bilgisayar, özel bir donanım veya bunların herhangi bir
kombinasyonu olabilir.
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Paylaşılan bellekli sistemler


İşlemciler, ortak bir belleği paylaşırlar ve bu bellek üzerinden
iletişim kurarlar (veri paylaşırlar).
İşlemcilerin, ayrıca, kendi yerel bellekleri de (cep bellek)
bulunabilir.
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Dağıtılmış bellekli sistemler


Bağımsız işlemciler (bilgisayarlar), bir arabağlantı ağı ile
bağlanarak, bir küme (cluster) oluştururlar.
Bilgisayarlar arasında iletişim, ya sabit bağlantılar ya da bir
bilgisayar ağı üzerinden sağlanır.
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Paylaşımlı Dağıtılmış bellekli sistemler


Her iki bellek mimarisinin bir arada kullanıldığı yapılardır.
Günümüzde çok hızlı bilgisayarlar bu mimari ile
gerçekleştirilmektedir.
Her iki mimarinin avantajlarından faydalanılmaktadır.
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

İşlemcilerin Organizasyonu
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Ortak bellekli sistemler


Tek bir fiziksel adres uzayı vardır
İşlemciler, ortak bellekteki paylaşılan değişkenler üzerinden
iletişim kurarlar.
Tüm işlemciler, ortak belleğin tüm alanlarına erişebilirler.
Sistem, ortak bir işletim sistemi tarafından kontrol edilir.
Paylaşılan değişkenler nedeniyle, işletim sistemi, işlemciler
arasında senkronizasyonu da desteklemelidir.
İki tür paylaşılan bellekli sistem vardır:
Symmetric multiprocessor (SMP) veya Uniform memory access
(UMA):Bellek erişim süresi, hangi adrese erişilirse erişilsin, tüm
işlemciler için hemen hemen aynıdır.
Nonuniform memory access (NUMA): İşlemciler, mantıksal
olarak, aynı (tek bir) adres uzayını paylaşırlar; ancak, bellekler,
fiziksel olarak, sistemin içinde dağıtılmışlardır. Bir işlemci,
kendisine fiziksel olarak yakın olan bellek modüllerine,
uzaktakilere göre, daha hızlı erişir.
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Ortak bellekli sistemler (SMP, UMA)


Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Ortak bellekli sistemler (NUMA)


Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Dağıtılmış bellekli sistemler


Her işlemci, kendi fiziksel adres alanına sahiptir.
Bu işlemciler, mesaj geçirme (message passing) yoluyla
haberleşir.
Mesaj geçirme sisteminin en yaygın örneği, kümelerdir
(clusters).
Kümeler, standart ağ donanımları üzerinden birbirlerine bağlı
bilgisayar koleksiyonlarıdır.
Bu kümelerin boyutu, on binlerce sunucuya ve daha fazlasına
ulaştığında, depo ölçekli (warehouse-scale) bilgisayarlar (cloud
computing) olarak adlandırılırlar.
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Dağıtılmış bellekli sistemlerin yararları


Ölçeklenebilirlik (Scalability):
Bir küme, her biri çok işlemcili olan onlarca, yüzlerce, hatta
binlerce makine içerebilir.
Kümeye, küçük artışlarla, yeni sistemler eklemek mümkündür.
Yüksek erişilebilirlik (availability):
Bir kümedeki her düğüm, bağımsız bir bilgisayardır. Bu
nedenle, bir düğümdeki arıza, servis kaybı anlamına gelmez.
Üstün fiyat/performans:
Ucuz, kolayca bulunabilen yapı taşları kullanarak, büyük
hesaplama gücü olan bir küme oluşturmak mümkündür.
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Dağıtılmış bellekli sistemlerin


Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Paralel Algoritmalar
Algoritma, verilen bir problemi çözmek için uygulanan bir
yöntem ve izlenecek adımlardır.
Giriş, Çıkış, Sonlu, Doğru, Genel, Açık ve Verimli olmalı
Gerçekleştirimleri, çalışma alanları, karmaşıklıkları gibi farklı
özelliklerine göre sınıflandırılabilirler.
Seri ve paralel algoritmalar şeklinde yapılan sınıflandırma
algoritmaların gerçekleştirimlerine göre yapılmaktadır.
Seri algoritmalar seri hesaplama sistemleri üzerinde, paralel
algoritmalar paralel hesaplama sistemleri üzerinde bir
problemin çözümünü gerçekleştiren işlem adımlarıdır.
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Paralel Algoritmalar
İlk olarak çözümün paralelleştirmeye uygun olup olmadığına
bakılmalı
Daha sonra eş zamanlı çalışacak işlem adımları belirlenmeli
İşlemciler arası senkronizasyon planlanmalı
Mümkün olduğunca işlemciler arası haberleşmelerden
kaçınılmalı
En uygun işlemci sayısı belirlenmelidir
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Paralel Algoritmaların Tasarımı


Algoritmaların seri modelinin incelenerek paralelleştirilebilir
kısımlarının tespit edilmesi yada seri modeline bakılmaksızın
yeni bir paralel algoritma geliştirilmesi tercih edilebilir.
Paralel algoritma tasarım metodları:
Bölümleme (Partitioning)
Böl ve yönet (Divide and conquer)
İş hattı (Pipelining)
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Bölümleme (Partitioning)
Verilen bir problemi hemen hemen eşit büyüklükte özdeş
olmayan birkaç alt probleme parçalayan ve bu alt problemleri
eş zamanlı olarak çözen bir metottur.
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Böl ve yönet (Divide and conquer)


Orijinal problemi aynı formda alt problemlere bölen, bölünen
alt problemleri özyinelemeli olarak çözen ve bu çözümlerin
birleştirilmesi ile orijinal problemin çözümünü elde eden bir
metottur.
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

İş hattı (Pipelining)


Büyük bir problemin küçük alt problemlere bölünmesi ve bu alt
problemlerin kendi aralarında paralel olarak yürütülmeleridir.
Çok tekrarlanan ve alt parçalara bölünebilen problemlerde
kullanılır.
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Paralel Algoritmaların Uygulanması


Tasarlanan paralel algoritmalar paralel hesaplama sistemleri
üzerinde uygulanmak istendiğinde görevlerin ayrıştırılması,
atanması, iletişimlerinin planlanması ve senkronizasyon gibi
bazı problemler ortaya çıkmaktadır.
Ayrıştırma yapılırken bilgisayarların görevlerinin dengeli
dağılmasına ve ilgili görevler arasındaki iletişimin az olmasına
dikkat edilmelidir.
Veri kümesi ayrıştırma (Domain Decomposition)
Fonksiyonel ayrıştırma (Functional Decomposition)
Örnek : Hoca ve 4 asistandan oluşan bir grubun 5 soruluk
sınavdan oluşan sınavın kâğıtlarının okunması örnek olarak
verilebilir. (Herkesin farklı bir soruyu okuması, sınav
kağıtlarının paylaştırılması)
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Paralel Algoritmaların Uygulanması (Yük dengeleme)


Alt problemlerin uygun işlemcilere atanması ve yürütme
sırasına karar verilmesi gereklidir
Tüm işlemciler her zaman meşgul olacak şekilde dağıtılmaya
çalışılır
Bir çizelgeleme problemidir.
Eşit kapasiteye sahip işlemciler ile çalışırken kolaylıkla
aşılabilirken, farklı kapasiteye sahip işlemcilerle çalışırken bazı
analiz araçları ile ölçümler yapılması ve farklı çizelgeleme
tekniklerinin kullanılması gerekebilir.
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Paralel Algoritmaların Uygulanması (İletişim)


Paralel çalışan görevler arasında iletişimin gerekliliği, şekli ve
sıklığı tasarlanan algoritmaya bağlıdır.
Bazı uygulamalar işlemciler arası hiç bir iletişim olmadan
gerçekleştirilebilirken birçok uygulama görevler arası veri
paylaşımına ve iletişime ihtiyaç duyar.
İşlemciler arası iletişim uygulamaya ek bir yük getirdiğinden
algoritma tasarımı esnasında mümkün olduğu kadar
azaltılmaya çalışılır.
İletişim iki işlemci arasında olabileceği gibi bir işlemci ile bir
grup işlemci arasında da olabilir.
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Paralel Algoritmaların Uygulanması (Senkronizasyon)


Senkronizasyon problemini çözmek için kullanılan farklı
mekanizmalar bulunmaktadır.
Bu teknikler genel olarak görevlerin senkronize olmasını
sağlarken aynı kaynağa aynı anda erişim gibi kilitlenme
durumlarını da engellerler
Bariyer: Paralel görevler bariyer adı verilen senkronizasyon
noktalarında birbirlerini beklerler. Tüm görevler bariyer
noktasına ulaşınca devam edilir.
Kilit/Semafor: Birden fazla paralel görev tarafından erişilen
kaynaklar kontrol edilir. Eğer bir görev bir kaynağa erişmiş ise
kaynak kilitlenir ve diğer görevlerin erişimi engellenir.
Eş zamanlı erişim: Birbirleri ile haberleşen görevler arasında
verilerin alınıp, gönderilmesi süresince her iki tarafın
işlemlerinin bitene kadar bloke olması
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Paralel Algoritmaların Performanslarının Değerlendirilmesi


Paralel algoritmaların performanslarını ölçmek için kullanılan
çeşitli yöntemler ve ölçümler bulunmaktadır. Bu yöntem ve
ölçümlerin en önemlileri:
Hızlanma
Verimlilik
Ölçeklenebilirlik
İşlemci sayısının artması ile işlemciler arası iletişim ihtiyacının
artması, iletişim yollarında yaşanacak gecikmeler ve programın
paralelleştirilemeyen kısımları bu yöntemleri etkileyen en
önemli faktörlerdir.
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Paralel Algoritmaların Performansları (Hızlanma)


Hızlanma, problem çözümünün tek bir işlemci ile
gerçekleştirildiğinde harcanan zamanın paralel hesaplama
sistemleri ile gerçekleştirildiğinde harcanan zamana oranı
İdealde elde edilen hızlanma değerinin kullanılan işlemci
sayısına eşit olması beklenir.
Zaman1 islemci
Hızlanma = (1)
Zamanm islemci
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Paralel Algoritmaların Performansları (Verimlilik)


Verimlilik, ne kadar işlemci ile ne kadar hızlanma sağlandığının
ölçüsüdür.
İdealde elde edilen verimlilik değerinin 1 olması beklenir.
Hızlanma
V erimlilik = (2)
m
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Paralel Algoritmaların Performansları (Ölçeklenebilirlik)


Ölçeklenebilirlik, bir bilgisayar sisteminin performans ve
işlevsellik talebini karşılamak için artan kaynak üzerinde
göstermiş olduğu sonuçlarla ilgilidir.
Makine boyutu ölçeklenebilirlik, ilave işlemciler ile
performansın ne kadar iyileştirildiği ile ilgilenir
Problem boyutu ölçeklenebilirlik, artan veri ve problem boyutu
için kullanılan sistemlerin problemin üstesinden gelip
gelemeyeceği ile ilgilenir.
Teknolojik ölçeklenebilirlik, değişen teknoloji ile ne kadar iyi
performans artışı elde edildiği ile ilgilenir.
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Paralel Algoritmaların Performansları (Örnek)


%80 paralelleştirilebilen bir program seri olarak 1 işlemci
üzerinde 10 birim zamanda çalıştığını düşünelim. Bu program
8 işlemci üzerinde çalıştırıldığında programın paralel kısmı 1
birim zaman, seri kısmı 2 birim zaman olmak üzere toplam 3
birim zaman harcanacaktır. Bu program 16 işlemci üzerinde
çalıştırıldığında paralel kısmı 0.5 birim zaman, seri kısmı yine 2
birim zaman olmak üzere toplam 2.5 birim zaman
harcanacaktır. Görüldüğü gibi işlemci sayısını 8 ’e
çıkardığımızda 3.33 kat hızlanma elde ederken işlemci sayısını
16’ya çıkardığımızda sadece 4 kat hızlanma elde edilebilmiştir.
Ayrıca bu hesaplama yapılırken işlemciler arası iletişim maliyeti
ve diğer kısıtlamalar dikkate alınmamıştır.
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Amdalh Yasası
Amdalh yasasına göre bir programın paralelleştirilmesi ile elde
edilecek hızlanma o programın seri kısımlarının programda ne
kadar yer kapladığına bağlıdır.
Eşitlikte ψ hızlanma, p işlemci sayısı, f programın
paralelleştirilemeyen kısmının programın toplam çalışma
zamanına oranıdır ve 0 ≤ f ≤ 1 arasında bir değerdir. Amdalh
yasasına göre paralelleştirme sadece az sayıda işlemci için ya
da f ’in çok küçük olduğu problemlerde kullanışlıdır. Bu
yüzden paralel programlama ile f değeri mümkün olduğu
kadar küçük tutulmaya çalışılır.

1
ψ≤ 1−f
(3)
f+ p
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Amdalh Yasası
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Gustafson Yasası
Yeterince büyük bir problemin verimli bir biçimde
paralelleştirilebileceğini öngörmektedir
Bu yasa paralel işlemciler üzerindeki sabit hesaplama yükünü
kaldırarak yerine ölçekli hızlanmayı sağlayan sabit zaman
kavramını getirmektedir.
Eşitlikte ψ hızlanma, p işlemci sayısı, s programın
paralelleştirilemeyen kısmıdır.

ψ ≤ p + (1 − p)s (4)
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Amdalh ve Gustafson Yasası


Amdahl ve Gustafson yasaları karşılaştırıldığında özetle
Gustafson yasası, programların paralelleştirilmeyen kısmının
çok sayıda işlemcinin kullanıldığı paralel sistemlerde bile sabit
kaldığı, Amdahl yasası ise programların paralelleştirilemeyen
kısmınınbaşarım üzerindeki etkisinin işlem sayısıyla doğru
orantılı biçimde artış gösterdiğidir.
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Paralel İşlemenin Zorlukları


Programlarda sınırlı paralellik. Bazı işlemciler kullanılamaz
(yük dağılımı).
İletişimin getirdiği ek yük. İşlemciler arasında iletişimin yüksek
maliyeti.
Paralel program yazmak zordur.
Benzer yükleri olan bağımsız bölümlere ayırma: Çizelgeleme
(scheduling) ve yük dengeleme problemi.
Senkronizasyon: Bağımlılıklar, kritik bölümler (Dependencies,
critical sections)
Bilgisayar Yapıları
Temel Kavramlar - Giriş
Genel Bilgiler

Performans engeli ve yeni çözüm arayışları


Bilgisayarların performansları, yarı iletken elamanlar
(transistörler) ve bilgisayar mimarisindeki gelişmeler (cep
bellek, iş hattı) sayesinde artmıştır.
Tasarımcılar, bilgisayarların işlem gücünü arttırmak için, saat
işaretini ve/veya tümleşik devredeki transistör sayısını
arttırmaktadır. Ancak, bu ısınma/soğutma problemine neden
olmaktadır.
İş hattı ve çok çekirdekli sistemler gibi mimari yapıların da,
kendilerine özgü sorunları bulunmaktadır.
Bununla birlikte, büyük veri, makine öğrenmesi ve güvenlik
gibi uygulama alanları için geliştirilen yeni yazılım sistemlerinin
performans gereksinimleri, 1 saniyede 1 milyon trilyon kayan
noktalı sayı işlemini (1 exaflop) geçmektedir.
Endüstrideki birçok uzman, yakın gelecekte bilgisayarların
uzun süre önce öngörülen performans engeline ulaşacağına
November 2, 2021

Mekatronik Mühendisliği
Harici Bellek (External Memory)

Bellek Organizasyonu
Harici Bellek (External Memory)

Harici Bellek (External Memory)


Manyetik diskler halen harici belleklerin en önemli bileşeni
olmaya devam ediyorlar.
Taşınabilir ya da sabit, hard diskler, kişisel bilgisayarlardan
süper bilgisayarlara kadar bütün sistemlerde kullanılmaktadır.
Harici Bellek (External Memory)

Harici Bellek Türleri


Manyetik Disk
RAID teknolojisi
Taşınabilir veya sabit
Optik
CD-ROM
Yazılabilir CD (CD-Recordable (CD-R))
CD-R/W
DVD
Manyetik Bant
Harici Bellek (External Memory)

Manyetik Disk
Disk mıknatıslanabilir bir malzeme ile kaplanır
Diskin kendisi, alüminyum veya alüminyum alaşımı ile yapılırdı
Şimdi cam kullanılıyor
Daha güvenli
Daha dayanıklı
Okuma yazma hataları daha az
Daha yüksek depolama kapasitesi ve hız
Harici Bellek (External Memory)

Manyetik Disk (Okuma ve Yazma Mekanizmaları)


Yazma ve okuma ’kafa’ olarak adlandırılan iletken bobin
üzerinden gerçekleştirilir
Tek bir oku/yaz kafası veya ayrı ayrı kafalar olabilir
Okuma/yazma sırasında, kafa sabit durur, disk döner
Yazma
Bobinden geçen akım manyetik alan oluşturur
Kafaya darbeler gönderilir
Manyetik bilgi kafanın altındaki yüzeye kaydedilir
Okuma (geleneksel)
Manyetik alana yaklaşan bobin üzerinden alanın yönüne bağlı
bir akım geçer
Okuma ve yazma için aynı bobin kullanılır
Harici Bellek (External Memory)

Verinin Yerleşimi ve Biçimlendirme


Her plakada iki yüzey
Eş merkezli halkalar veya izler (tracks)-(binlerce)
İzler sektörlere bölünmüştür, (her izde yüzlerce,
boşluklarla(gaps) ayrılmıştır)
Her sektörde (büyük çoğunlukla) 512 byte bulunur
Veri bloklar halinde (sektörler) transfer edilir
Harici Bellek (External Memory)

Disk
Harici Bellek (External Memory)

Disk Erişim Süresi


Bir diskin ortalama erişim süresi (Ta ) üç bileşenden oluşur.
Ta = Ts + Tr + Tt
Ts = Konumlanma süresi
Tr = Dönüş gecikmesi
Tt = Aktarım Süresi
Ortalama konumlanma süresi (Seek time) (Ts ):
Okuma/yazma kafasının ilgili ize konumlanması için geçen
süre. Yaklaşık 9ms (3-15ms)
Harici Bellek (External Memory)

Disk Erişim Süresi


Ortalama dönüş gecikmesi (Rotational latency ) Tr :
Okuma/yazma kafasının, iz içinde ilgili sektörün başına
konumlanması için geçen süre. Kafa diskte ilgili izin üstüne
konumlandıktan sonra gerekli olan sektörün gelmesi için
plakanın dönmesini bekler.
Bu bekleme süresi ortalama olarak diskin bir turunu
tamamlaması için gerekli olan sürenin yarısı kadardır.
1
Tr = r (1)
2

r, diskin bir tur dönüş süresi (saniye)


Harici Bellek (External Memory)

Disk Erişim Süresi


Genellikle disklerin dönüş hızları tur/dakika (RPM: Revolution
per minute) olarak verilir. Buna göre dönüş gecikmesi saniye
cinsinden aşağıdaki gibi hesaplanabilir.
1 60
Tr = (2)
2 RP M

Örnek: 7200 RPM disk bir turunu 8.3 ms’de tamamlar. Buna
göre ortalama dönüş gecikmesi yaklaşık 4.16ms?dir. 10000
rpm: 3ms, 15000 rpm: 2ms
1 saniye =1000 milisaniye
Harici Bellek (External Memory)

Disk Erişim Süresi


Aktarım Süresi (Transfer time) (Tt ): İki farklı şekilde ifade
edilebilir: Bir sektörü aktarmak için geçen süre ya da belli
miktarda byte aktarmak için geçen süre.
Bir sektörü aktarmak için geçen süre Tts :
1 60
Tts = [saniye] (3)
ort.sektor/iz RP M

Veri aktarım süresi (Ttb ):


b 60
Ttb = [saniye] (4)
N RP M

b: Aktarılacak byte sayısı, N : Bir izdeki byte sayısı


Harici Bellek (External Memory)

Disk Erişim Süresi


Örnek: Bir diskin dönüş hızı 7200 RPM ise ve bir izinde
ortalama olarak 400 sektör varsa, ortalama konumlanma süresi
9ms ise disk erişim süresi Ta =?
Dönüş gecikmesi(Tr ):
Tr = 1/2 x (60 s/7200 RPM) x 1000 ms/s = 4 ms.
.
Aktarım süresi(Tt ):
Tts = 60/7200 RPM x 1/400 sektör/iz x 1000 ms/sec = 0.02 ms
.
Erişim süresi Ta = Ts + Tr + Tt
Ta = 9 ms + 4 ms + 0.02 ms
Harici Bellek (External Memory)

Disk Erişim Süresi (Sonuc)


Erişim süresinin belirleyici bileşenleri konumlanma süresi ve
dönüş gecikmesidir.
Sektörün ilk bitine ulaşmak zaman kaybettirir.
Disk SRAM’dan 40,000 kat daha yavaştır,
Disk DRAM’dan 2,500 kat daha yavaştır.
Harici Bellek (External Memory)

RAID
RAID: (Redundant Array of Independent/Inexpensive Disks)
Fazlalıklı Bağımsız/Ucuz Diskler Dizisi
Amaç: Performansı ve güvenirliği arttırmak.
Paralel ve bağımsız diskler performansı arttırır.
Fazlalık bilgi, hataları sezmek ve düzeltmek için kullanılır.
Düzeyler (RAID 1 - RAID 7): 7 değişik düzey ve bunların
bileşiminden oluşan bileşik düzeyler vardır
Ayrıca tam bir RAID düzeyi olmamakla birlikte konuyu
anlamak için kullanılan RAID 0 En çok RAID 3 ve 5 kullanılır.
Harici Bellek (External Memory)

RAID (Ortak özellikler)


Birden fazla fiziksel disk vardır. İşletim sistemleri bunları bir
bütün, tek bir mantıksal disk olarak görür (gösterir).
Mantıksal olarak peş peşe gelen veriler belli büyüklükteki
bloklar (şerit-”strip”) halinde farklı fiziksel disklere paralel
olarak yerleştirilirler.
Fazlalık olarak eşlik bilgileri (parity) yerleştirilir. Disklerden
biri fiziksel olarak bozulduğunda bu diskteki bilgi tekrar
oluşturulabilir.
Harici Bellek (External Memory)

RAID (Ortak özellikler)


Strip (şerit): Belli miktarda veri. Bir sektörden bir kaç MB’a
kadar değişebilir.
Stripe (bant): Farklı disklerdeki mantıksal olarak birbirini
izleyen şeritlerin oluşturduğu yapı.
Strip (şerit) boylarının performansa etkisi:
Eğer mantıksal olarak peş peşe gelen büyük bloklara erişiliyorsa
paralel erişim sağlayabilmek için mantıksal olarak birbirini
izleyen verilerin mümkün olduğu kadar farklı fiziksel disklere
dağıtılması istenir. Bu durumda küçük şeritler performansı
arttırır.
Eğer sık G/Ç istekleri varsa ve küçük bloklara erişiliyorsa
(örneğin kısa ve sık veri tabanı sorguları) erişimlerin farklı
disklere olması için büyük şeritler tercih edilir.
Harici Bellek (External Memory)

RAID 0
Fazlalık ve eşlik biti yok. Hatalar düzeltilemez.
Tam bir RAID sistemi değildir.
Veriler paralel erişilebilen fiziksel disklere dağıtılır, performans
artımı sağlanır
Harici Bellek (External Memory)

RAID 1
Veriler aynalanır (mirroring). Her veri iki ayrı diske yazılır.
İki disk paralel (aynı anda) okunmaya başlanır. Daha hızlı
olandan veri alınır.
Yazarken veri iki diske de paralel yazılır. Bu durumda daha
yavaş olan disk beklenir.
Bir disk bozulduğunda veri diğerinden alınır. Fiziksel olarak
hangi diskin bozulduğu bellidir.
Fazla disk kullandığı için pahalı bir yöntemdir.
Harici Bellek (External Memory)

RAID 2
Hata sezme/düzeltme için eşlik bitleri eklenir.
Hata sezme için Hamming kodu kullanılır.(Hamming kod.
belleklerde ve iletişimde hata sezme/düzeltme için kullanılır.)
Diskler senkrondur, tüm disklerdeki kafalar aynı yere konumlan
Küçük strip’ler kullanılır. Sürekli ve büyük blok erişimlerinde
avantajlı.
4 bitlik veriye hata sezme için 3 bitlik eşlik eklenmiştir.
Disklerin fiziksel olarak bozulduğunu anlamak mümkün olduğu
için disklerde Hamming kodlaması gereksiz yere karmaşıklığı
arttırmakta ve maliyeti yükseltmektedir.
Harici Bellek (External Memory)

RAID 3
RAID 2’de olduğu gibi diskler senkron çalışır, tüm disklerdeki
kafalar aynı yere konumlanır.
Küçük strip’ler kullanılır. Sürekli ve büyük blok erişimlerinde
avantajlı.
Hata sezme/düzeltme için daha basit bir kodlama kullanılır ve
tek eşlik biti eklenir.
Eşlik (parity) biti, veri bitleri ”ya da”lanarak belirlenir. X0-X3
veri sözcükleri, X4 ise eşlik sözcüğü olmak üzere eşlik bitleri
aşağıdaki gibi hesaplanır. Burada 1’lerin toplam sayısı çift olur.
Harici Bellek (External Memory)

RAID 3
Normalde bu eşlik yöntemi sadece tek sayıdaki hataları
sezebilir ama düzeltemez. Ancak fiziksel olarak hangi diskin
bozulduğu belli ise eşlik bilgilerinden yararlanılarak o diskteki
bilgiler yeniden oluşturulabilir.
Örneğin 1 numaralı disk bozulursa:
X1(i) = X0(i) ⊕ X2(i) ⊕ X3(i) ⊕ X4(i)
Her yazmada eşlik diskine de erişmek gerekir.
Diskler senkron çalıştığı için bağımsız olarak disklerin farklı
bölgelerine erişmek mümkün değildir.
Sık, bağımsız erişimlerde performans düşer
Harici Bellek (External Memory)

RAID 4
Diskler bağımsız çalışır (senkron değil).
Büyük strip’ler (blok) kullanılır. Sık ve bağımsız okuma
erişimlerinde avantajlı.
Hata sezme/düzeltme için eşlik biti eklenir.
Tek bir eşlik diski vardır.
Okumada eşlik diski okunmaz ancak yazma işlemlerinde
disklerin farklı yerlerine aynı anda yazmak mümkün olmaz
çünkü eşlik diski tektir, beklemek gerekir.
Harici Bellek (External Memory)

RAID 4
Yazma cezası (write panalty): Bir diske yazılırsa, örneğin disk
1, eşlik hesaplanırken:
X4’(i) = X0(i) ⊕ X1’(i) ⊕ X2(i) ⊕ X3(i)
Bu durumda 3 diskten okumak (X0,X2,X3), 2 diske yazmak
(X4,X1) gerekir.
Biraz kolaylaştırmak için sağ tarafa ⊕ X1(i) ⊕ X1(i) eklenir.
X4’(i) = X4(i) ⊕ X1’(i) ⊕ X1(i) olur
Bu durumda eşlik hesabı yapabilmek için iki okuma iki yazma
gereklidir. Değiştirilecek verinin ve eşlik bitlerinin eski
değerleri okunur yeni değerleri yazılır.
Harici Bellek (External Memory)

RAID 5
RAID 4’e benzer. Diskler bağımsız çalışır (senkron değil).
Büyük strip’ler (blok) kullanılır. Sık ve bağımsız okuma
erişimlerinde avantajlı.
Hata sezme/düzeltme için eşlik biti eklenir.
RAID 4’ten farklı olarak eşlik bilgileri disklere dağıtılır.
Böylece her yazma işleminde aynı eşlik diskinin beklenmesi
önlenmiş olur.
Harici Bellek (External Memory)

RAID 6
İki eşlik bilgisi kullanılır böylece hata sezme miktarı arttırılmış
olur.
Fazladan bir diske gerek vardır.
Harici Bellek (External Memory)

Belleklerde Hata Sezme/Düzeltme


Güvenirlik gerekli sistemlerde hata düzeltici kodlama (error
correcting code, ECC) kullanılır.
Harici Bellek (External Memory)

Bir bitlik hata düzelten Hamming Kodları


(Single Error Correction, SEC)
Veri bitlerine, bir bitlik hatanın yerini bulmayı sağlayacak
şekilde eşlik bitleri eklenir.
Eşlik bitlerini farklı şekillerde hesaplamak mümkündür.
Örnek: 4:7 Hamming kodu. (Richard Wesley Hamming
(1915-1998), ABD ) 4 bitlik veriye 3 bit eşlik eklenir toplam 7
bit iletilmiş (yazılmış) olur.
di : veri biti, pi : eşlik bitidir.
Harici Bellek (External Memory)

Bir bitlik hata düzelten Hamming Kodları


İletilen kod sözcüğü: d0 d1 d2 d3 p0 p1 p2 4 bit veri + 3 bit eşlik
Alınan (okunan) sözcük: d00 d01 d02 d03 p00 p01 p02 bozulmuş olabilir.
Alınan tarafta eşlikler tekrar hesaplanır:
p000 = d00 ⊕ d01 ⊕ d02
p001 = d01 ⊕ d02 ⊕ d03
p002 = d00 ⊕ d01 ⊕ d03
Alınan eşlikler ile hesaplanan eşlikler karşılaştırılır.
s0 = p00 ⊕ p000
s1 = p01 ⊕ p001
s2 = p02 ⊕ p002
Sendrom bitlerinin (si ) hepsi sıfırsa hata yok demektir.
Sendrom sıfırdan farklı ise hatalı bitin yeri belirlenir ve
tümlenerek düzeltilir.
Harici Bellek (External Memory)

Bir bitlik hata düzelten Hamming Kodları


Sendrom etkileşim tablosu:Hangi sendrom bitinin hangi kod
sözcüğü bitinden etkilendiğini gösterir.
Harici Bellek (External Memory)

Bir bitlik hata düzelten Hamming Kodları


Eşlik bitlerinin sayısının belirlenmesi:
Veri bitleri sayısı: m
Eşlik bitleri sayısı: k
2k − 1 bitlik bir kod sözcüğü içinde 1 bit hata düzeltilebilir
Buna göre: m + k ≤ 2k − 1 olmalıdır.
Harici Bellek (External Memory)

Bir bitlik hata düzeltme,iki bitlik hataları sezme


Single error correction - double error detection SEC-DED
Bir bitlik hataları düzeltmeye ek olarak iki bitlik hataları
sezmek üzere kod sözcüğünün sonuna bir eşlik biti daha
eklenir.
Bu eşlik biti 1’lerin sayısını tek ya da çift yapacak şekilde
seçilir.
Eğer sendrom sıfırdan farklı (hata var) ve ek eşlik biti ”hata
yok” sonucu veriyorsa çift sayıda hata olmuş demektir.
En yaygın kullanılan 64 + 7 + 1 bitlik kodlamadır. %12.5
fazlalık var
January 7, 2021

Mekatronik Mühendisliği
İş Hattı (Pipeline)

İş Hattı (Pipeline)


İş hattında (pipeline) birden fazla iş (örneğin komutlar) paralel
olarak aynı anda yürütülürler.
Bir iş hattının verimli olarak çalışabilmesi için
Farklı veriler üzerinde defalarca tekrarlanan işler olması gerekir,
İşler paralel yürütülebilen küçük alt işlere bölünebilmeli.
İş Hattı (Pipeline)

İş Hattı - Örnek


Bir otomobil fabrikasındaki üretim/montaj bandı
Burada iş/görev (task) bir otomobilin montajının yapılmasıdır.
Bu iş farklı otomobiller için sürekli tekrar edilir.
İş (otomobilin montajı), küçük adımlardan oluşur;
kapıların takılması,
tekerleklerin montajı,
camların takılması.
...
Bu adımların her biri için iş hattında (montaj bandı) bir
istasyon oluşturulur.
Bu istasyonlarda aynı anda paralel olarak farklı otomobiller
üzerinde çalışılır.
Örneğin i. işçi bir otomobilin camını takarken aynı anda (i+1).
sıradaki işçi bir önceki otomobilin tekerleklerini takmaktadır.
İş Hattı (Pipeline)

Bir iş hattının genel yapısı


Her katman (işlem birimi) belli, sabit bir işi yapar.
Her saat çevriminde işlem birimi farklı veriler üzerinde çalışır.
R1, R2 gibi saklayıcılar ara sonuçları tutarlar.
Tüm segmanlar ortak bir saat işareti ile denetlenirler ve eş
zamanlı çalışırlar.
Bir önceki verinin bütün adımları tamamlanmadan (sonuç
üretilmeden) önce iş hattının girişinden yeni veriler alınır.
İş hattının bütün segmanları dolduktan sonra her saat
çevriminde çıkışta yeni bir sonuç üretilir.
İş Hattı (Pipeline)

Bir iş hattının genel yapısı


Örnek: A, B ve C dizisinin elemanları önce bellekten okunacak
ardından aşağıdaki işlem yapılacaktır. Ai*Bi + Ci i=1,2,3,....
İş Hattı (Pipeline)

Bir iş hattının genel yapısı


Bu örnekte görev üç alt işleme bölünmüştür: Okuma, çarpma,
toplama
Verinin önceden hazır olduğu veya bellek okuma süresinin
diğer işlemlere göre çok kısa olduğu sistemlerde bellekten
okuma ayrı bir alt işlem olarak ele alınmaz. Bu durumda
sadece aritmetik işlemi yapan iş hattı 3 yerine 2 katmanlı
olarak tasarlanabilirdi.
Üç segmanlı olarak tasarlanan iş hattının çalışması:
İş Hattı (Pipeline)

Uzay-Zaman Diyagramı (Space-Time Diagram)


Bir iş hattında belli bir anda hangi işin hangi segmanda işlem
gördüğünü göstermek için uzay-zaman diyagramları kullanılır.
Aşağıdaki tabloda, saat çevrimleri (adımlar) sütunlara,
segmanlar satırlara, o anda yapılan iş (task) (veya işleme giren
veriler) de tablonun içine yazılmıştır.
İş Hattı (Pipeline)

Uzay-Zaman Diyagramı (Space-Time Diagram)


Uzay-zaman diyagramları farklı şekilde de oluşturulabilir.
Aşağıdaki diyagramda saat çevrimleri (adımlar) sütunlara,
veriler (işler) satırlara, o anda etkin olan segman da tablonun
içine yazılabilir.
İş Hattı (Pipeline)

İş Hattının sağladığı hızlanma (Speedup):


İş hattındaki tüm segmanlar eşzamanlı (synchronous) işlem
yaptığından, saat işaretinin periyot uzunluğu (çevrim zamanı)
(cycle time) en yavaş segmanın gerek duyduğu çalışma zamanı
(gecikmesi) tarafından belirlenir.
Çevrim zamanı (cycle time) (saat işaretinin periyodu) tp
aşağıdaki gibi hesaplanır:
tp = max(τi ) + dr = τm + dr (1)
tp : çevrim zamanı (cycle time)
τi : i. katmandaki devrenin gecikmesi
τm : en büyük gecikme (en yavaş katman)
dr : saklayıcıların gecikmesi
İş Hattı (Pipeline)

Hızlanma (Speedup)
k: İş hattındaki segman sayısı
tp : saat periyodu (En yavaş birime göre ayarlanır)
n: İş sayısı (işin tekrar sayısı)
tn :İş hattı kullanılmasaydı bir işin süresi
1.iş için k adet saat darbesi gerekli T (1) = k.tp
Kalan n − 1 işin tamamlanması içi (n − 1) çevrim gereklidir.
Gerekli süre:(n − 1)tp
Is hatti olmadan gereken sure
Hizlanma(S) = (2)
Is hatti ile gerekli olan sure
n.tn
S= (3)
(k + n − 1).tp
İş Hattı (Pipeline)

Hızlanma (Speedup)
İş sayısı çok artarsa
limn→∞
tn
S= (4)
tp

Eğer tn = k.tp varsayımı yapılırsa


Ana işi k adet eşit süreli küçük alt işleme bölmek mümkünse:
Smax = k (Teorik maksimum hızlanma)
İş hattının verimini arttırmak için bir işi mümkün olduğu kadar
eşit sürelerdeki küçük alt işlere bölmek gerekir.
Eğer alt işlemlerin süreleri kısa olursa saat işaretinin çevrim
süresi de kısalır.
Hatırlatma; en yavaş birim çevrim süresini belirler.
İş Hattı (Pipeline)

Hızlanma (Speedup) Yorum


İş hattındaki katman sayısının etkileri:
Olumlu:
Eğer iş çok sayıda kısa süreli alt işlere bölünebiliyorsa segman
sayısını arttırmak saat işareti hızlandırır ve iş hattının verimi
arttırır.
Olumsuz:
İş hattının maliyeti artar.
Her katmanın sonuna yerleştirilen saklayıcılar maliyet, enerji
tüketimi, boyut açısından sisteme yükler getirir.
İlk baştaki 1. iş için bekleme süresi artar. T (1) = k.tp
Dallanma cezaları artar.
Bir iş hattı tasarlanırken bütün bu olumlu ve olumsuz noktalar
birlikte dikkate alınmalıdır.
İş Hattı (Pipeline)

İşi alt işlemlere bölmenin hızlanma üzerindeki etkisi


Örnek olarak toplam süresi 100 ns olan bir T işini ele alalım.
Durum A: İş 2 eşit katmana bölünüyor. Saklayıcıların
gecikmesinin 5 ns olduğu varsayılırsa saat çevrimi
tp = 50 + 5 = 55ns
Durum B: İş 3 adet dengesiz katmana bölünüyor. Saat çevrimi
tp = 50 + 5 = 55ns (en yavaş katman τm =50ns )
Durum C: İş 3 adet yakın süreli katmana bölünüyor. Saat
çevrimi tp = 40 + 5 = 45ns (en yavaş katman τm =40ns )
İş Hattı (Pipeline)

İşi alt işlemlere bölmenin hızlanma üzerindeki etkisi


Durum A ve B karşılaştırıldığında:
Durum B ’de iş hattında daha fazla katman olmasına rağmen
Durum A’ya göre bir hızlanma sağlanmamıştır.
Ayrıca iş hattının maliyeti de artmıştır.
İlk işin tamamlanma süresi uzamıştır. T (1) = k.tp
Durum C için saat işareti Durum A ve B’ye göre hızlanmıştır.
Sonuc: İş hattının hızlanma sağlayabilmesi için işi çok sayıda,
kısa süreli ve dengeli alt işe bölmek gerekir.
Örneğin yukarıdaki örnek iş, her biri 20ns süreli 5 adet alt
işleme bölünebilirse saat işaretinin periyodu 25ns olur.
İş Hattı (Pipeline)

İşi alt işlemlere bölmenin hızlanma üzerindeki etkisi


Durum A ve B karşılaştırıldığında:
Durum B ’de iş hattında daha fazla katman olmasına rağmen
Durum A’ya göre bir hızlanma sağlanmamıştır.
Ayrıca iş hattının maliyeti de artmıştır.
İlk işin tamamlanma süresi uzamıştır. T (1) = k.tp
Durum C için saat işareti Durum A ve B’ye göre hızlanmıştır.
Sonuc: İş hattının hızlanma sağlayabilmesi için işi çok sayıda,
kısa süreli ve dengeli alt işe bölmek gerekir.
Örneğin yukarıdaki örnek iş, her biri 20ns süreli 5 adet alt
işleme bölünebilirse saat işaretinin periyodu 25ns olur.
İş Hattı (Pipeline)

Komut İş Hattı (Instruction Pipeline)


Merkezi işlem birimleri her komutu işlerken belli alt işlemleri
tekrar ederler. Bir komutun MİB’te işlenme sürecine komut
çevrimi (instruction cycle) denir.
Komut çevriminin genel olarak alt çevrimleri: Komut alma ve
çözme, operand alma, yürütme, kesme.
En basit iş hattı yapısı iki segmanlı olarak kurulabilir:
1) Komut alma ve çözme
2) Operandları alma ve komut yürütme
Komut yürütme birimi belleğe erişmediği zamanlarda komut
alma birimi sıradaki komutu bellekten alarak bir komut
saklayıcısına yazar.
Böylece o andaki komut yürütülürken sonraki komut bellekten
paralel olarak okunur. Komut düzeyinde paralellik denir.
(Instruction-Level Parallelism)
İş Hattı (Pipeline)

Komut İş Hattı (Instruction Pipeline)


Verimi arttırmak için komut işleme daha küçük alt işlemlere
bölünerek 6 segmanlı bir iş hattı oluşturulabilir:
1. Komut alma (Fetch instRUCtion) (FI):
2. Komut çözme (Decode instruction) (DI):
3. Operand adresi hesabı (Calculate adr. of operands)(CO)
4. Operand alma (Fetch operands) (FO)
5. Komut yürütme (ExecUTe instRUCtion) (EI)
6. Sonucu yazma (Write operand) (WO)
Bu kadar ayrıntılı bölmeleme aşağıdaki problemler nedeniyle
verimli olmaz:
Segmanların süreleri farklıdır.
Her komut bütün alt işlemlere gerek duymaz.
Değişik segmanlar aynı anda bellek erişimine gerek duyar.
Örneğin 80486’da 5 segmanlı, Pentium 4 ailesinin
işlemcilerinde 20 segmanlı iş hatları bulunmaktadır.
İş Hattı (Pipeline)

Dört Segmanlı Komut İş Hattı


1. FI (Fetch Instruction): Komut alma
2. DA (Decode, Address): Komutu çöz , efektif adresi hesapla
3. FO (Fetch Operand): Operand al
4. EX (Execution): Yürütme (İşlem yap, saklayıcıları güncelle)
Komut ve operand alma işlemlerinin aynı anda yapılabilmesi
için komut ve veri belleklerinin ayrı oldukları varsayılmıştır.
Komut iş hattının zaman diyagramı (ideal durum):
İş Hattı (Pipeline)

İş Hattında Oluşabilen Sorunlar


Denetim Sorunları (Control Hazards), Dallanma ve Kesmeler
(Branches, Interrupts)
Koşulsuz Dallanma (Unconditional Branch)
Koşullu Dallanma (Conditional Branch):
Koşullu dallanma (koşul yanlışsa):
Koşullu dallanma (koşul doğru ise):
Kaynak Çatışması (Resource Conflict), Yapısal Sorun
(Structural Hazard):
Veri Çatışması (Data Conflict), Veri Bağımlılığı (Data
Dependency):
Operand bağımlılığı:
Adres Bağımlılığı:
İş Hattı (Pipeline)

Dallanma ve Kesmeler
İş hattında komutlar paralel olarak yürütüldüğünden bir
dallanma komutu işlenirken bellekte ondan sonra gelen ancak
dallanma nedeniyle yürütülmeyecek olan komut (veya
komutlar) da iş hattına alınmış olur.
Eğer önlem alınmazsa programın mantığı gereği
yürütülmemesi gereken komutlar da yürütülmüş olur.
İş Hattı (Pipeline)

Dallanma ve Kesmeler
Koşulsuz dallanma komutu JUMP işlenirken Komut 3 de iş
hattına girmiş olur. Programın yanlış çalışmasını önlemek için
iş hattını durdurmak (stall) ve Komut 3 çalışmadan önce iş
hattını boşaltmak gerekir.
İş Hattı (Pipeline)

Koşulsuz Dallanma (Unconditional Branch)


Koşulsuz dallanma komutu çözüldüğü (anlaşıldığı) anda olası
önlemlerden biri iş hattına yeni komut alma işlemini (FI
segmanını) durdurmaktır.
Dallanma komutunun yürütülmesi sonucu hedef komutun
adresi hesaplanıp program sayacı (PC) güncellendikten sonra
komut alma işlemi tekrar başlar.
İş Hattı (Pipeline)

Koşullu Dallanma (Conditional Branch):


Koşullu dallanma komutları yürütülürken iki durum oluşur;
1. Koşul yanlıştır (dallanma olmaz),
2. koşul doğrudur (dallanma olur)
İş Hattı (Pipeline)

Koşullu dallanma (koşul yanlışsa)


Koşul doğru değilse iş hattını durdurmaya veya boşaltmaya
gerek yoktur, çünkü program bir sonraki komut ile devam
edecektir.
Koşulun doğru olup olmadığı ancak dallanma komutu
yürütüldükten sonra belli olur.
Eğer koşul doğru çıkarsa programın yanlış çalışmasını önlemek
için çözüm yöntemleri uygulamak gerekir (koşulsuz
dallanmada olduğu gibi).
İş Hattı (Pipeline)

Koşullu dallanma (koşul doğru ise)


Dallanma cezasının süresi iş hattındaki segmanların sayısına ve
işlevlerine bağlıdır.
Bu örnek iş hattında dallanma cezası 3 saat çevrimidir; ancak
başka yapılardaki iş hatlarında bu süre farklı olabilir.
İş Hattı (Pipeline)

Kaynak Çatışması (Resource Conflict)


İş hattında aynı anda işlenen iki komut aynı kaynağa (bellek,
ALU) gerek duyarsa kaynak çatışması oluşur.
Bellek çatışması: İki farklı segmanda aynı bellek modülüne
erişilmek istenirse Örneğin komut alma ile operand
okuma/yazma aynı anda olamaz.
Çözümler:
Komutların belli bölümleri paralel değil, peş peşe seri işlenir. İş
hattının belli segmanları durdurulur. Bu çözüm performansı
düşürür.
Harvard mimarisi: Komutlar ve veriler için ayrı bellek
Komut kuyruğu veya cep bellek: Bir komut işlenirken belleğe
erişilmediği anlarda sıradaki komutlar bellekten okunarak bir
kuyruğa yazılır.
İş Hattı (Pipeline)

Kaynak Çatışması (Resource Conflict)


İşlem birimi (ALU, FPU) çatışması: İki farklı segmanda aynı
işlem birimine (Arithmetic Logic Unit-ALU, Floating Point
Unit-FPU) gerek duyulursa.
Çözümler:
İşlem birimlerinin sayısı arttırılır. Örneğin adres hesabı ve veri
işleme için iki ayrı ALU kullanılır.
İşlem birimleri de iş hattı olarak tasarlanarak paralellik sağlanır.
Örnek FPU
İş Hattı (Pipeline)

Veri Çatışması (Data Conflict)


İki farklı komut aynı bellek bölgesine erişmek istediğinde
oluşabilir. Bu sorun çözülmezse program yanlış sonuç üretebilir
Operand bağımlılığı: Bir komutun kaynak operandı diğer bir
komutun sonucuna bağlıdır
Adres Bağımlılığı: Veri çatışması (bağımlılığı) adres
saklayıcılarında (işaretçi - pointer) da oluşabilir.
İş Hattı (Pipeline)

Veri Çatışması (Data Conflict)


Üç farklı tipte veri çatışması (data hazard) oluşabilir:
1-Yazmadan sonra okuma (Read after write) (RAW): Bu türe
gerçek bağımlılık da denir.
Bir komut bir saklayıcıyı veya bellek gözünü değiştirmektedir.
Daha sonra gelen bir komut da aynı saklayıcı veya bellek
gözünü okumaktadır.
Eğer iş hattı nedeniyle okuma işlemi yazmadan önce yapılırsa
veri çatışması sorunu oluşur.
2-Okumadan sonra yazma (Write after read) (WAR): Anti
bağımlılık da denir.
Bir komut bir saklayıcıyı veya bellek gözünü okumaktadır.
Daha sonra gelen bir komut da aynı saklayıcı veya bellek
gözüne yazmaktadır.
Eğer yazma işlemi okumadan önce yapılırsa veri çatışması
sorunu oluşur.
İş Hattı (Pipeline)

Veri Çatışması (Data Conflict)


3-Yazmadan sonra yazma (Write after write) (WAW): Çıkış
bağımlılığı da denir.
İki komut aynı saklayıcıyı veya bellek gözüne yazmaktadır.
Eğer yazma işlemleri programda belirtilenden farklı sırada
olursa veri çatışması sorunu oluşur.
İş Hattı (Pipeline)

Veri çatışması sorununun çözümleri


Operand yönlendirme (Operand forwarding or Bypassing)
Donanım Kilidi (Hardware interlock)
Derleyici Tabanlı Çözümler
İş Hattı (Pipeline)

Veri çatışması sorununun çözümleri


Operand yönlendirme (Operand forwarding or Bypassing):
ALU’nun çıkışı ile girişi arasında ek bir bağlantı (bypass)
oluşturulur.
Operand yönlendirme yöntemini açıklamak için RISC
işlemcilerde sık kullanılan aşağıdaki komut iş hattı yapısı
verilmişitir.
1. FI (Fetch Instruction)
2. DO (Decode, Operand fetch): Operand (saklayıcı değeri)
alınır.
3. EX (Execution): Saklayıcılar üzerinde işlem yapılır.
4. WO (Write Operand): Sonuç saklayıcılara yazılır.
İş Hattı (Pipeline)

Veri çatışması sorununun çözümleri (Operand yönlendirme)


SUB komutu R1’i henüz ADD komutu tarafından
güncellemeden önce okuyor
İş Hattı (Pipeline)

Veri çatışması sorununun çözümleri (Operand yönlendirme)


s girişi, iş hattının çatışma sezme (hazard detection) birimi
tarafından denetlenir.
ALU’nun girişine ya saklayıcılardan gelen değeri ya da
ALU’nun çıkışından doğrudan gelen değeri yönlendirir.
İş Hattı (Pipeline)

Veri çatışması sorununun çözümleri (Operand yönlendirme)


Eğer çatışma sezme birimi bir önceki ALU işleminin hedef
saklayıcısının şimdiki ALU işleminin kaynağı olduğunu sezerse
denetim birimi ALU’nun girişine saklayıcıdan gelen değeri
değil, ALU’nun çıkışından doğrudan gelen değeri yönlendirir.
Eğer sorunu operand yönlendirme ile çözmek mümkün olursa
iş hattını durdurmaya gerek olmaz ve performans düşmez.
İş Hattı (Pipeline)

Veri çatışması sorununun çözümleri


Donanım Kilidi (Hardware interlock):
Bir donanım tüm komutları izler. Veri bağımlılığı olan
komutların iş hattına girmesi geciktirilir.
İş hattının komut alma segmanı (FI) gerekli saat çevrimi kadar
durdurulur.
İş Hattı (Pipeline)

Veri çatışması sorununun çözümleri


Derleyici Tabanlı Çözümler:
Ek donanıma gerek yoktur, yazılım temelli çözümlerdir.
Gecikmeli Yükleme (Delayed Load):
Derleyici eğer mümkünse veri çatışmasına neden olan
komutların yerini değiştirir. Burada programın algoritmasının
değişmemesi sağlanır.
Bu mümkün değilse bağımlı komutlar arasına NOP (No
Operation) komutu koyar.
İş Hattı (Pipeline)

Dallanma sorunlarının ele alınması


Programlardaki dallanma komutları nedeniyle iş hatlarının
durulması ve boşaltılması gerektiği gösterilmişti
Aksi durumda işlemci program gereği atlanması gerek
komutları da yürütür.
İş hattını durdurmak veya boşaltmak sistemin performansını
düşürür.
Dallanma komutunun bellekte peşinden gelen komut yerine,
dallanmanın hedefi olan komutu iş hattına almak performans
düşüşünü önlemek için yararlı olur.
İş Hattı (Pipeline)

Dallanma sorunlarının ele alınması


Burada temel sorun koşullu dallanmada ortaya çıkar, çünkü
komut yürütülünceye kadar dallanmanın gerçekten olup
olmayacağı belli değildir.
Bu problemi çözmek için dallanma öngörü (branch prediction)
yöntemleri kullanılır.
Diğer bir problem ise dallanmanın hedef adresinin dallanma
komutunun ancak yürütme çevriminde belli olmasıdır.
Bu nedenle hangi hedef komutun iş hattına alınacağı önceden
belli değildir.
Bu problemi çözmek için dallanma hedef tablosu (branch
target table) kullanılır.
İş Hattı (Pipeline)

Dallanma problemine ilişkin çözümler


1-Önceden komut alma (Target Instruction prefetch):
Koşullu dallanmalarda hem dallanmadan sonraki komut (koşul
yanlış ise kullanılacak) hem de dallanma ile gidilmesi olası olan
hedef komut (koşul doğru ise kullanılacak) iş hattına alınır.
Hedef komutu önceden belirlemek için dallanma hedef tablosu
kullanılır.
İş Hattı (Pipeline)

Dallanma problemine ilişkin çözümler


Dallanma hedef tablosu (branch target table (buffer) ):
Son çalışan belli sayıdaki koşullu dallanma komutunun
adresleri ve son çalıştıklarında nereye gidildiği (gidilen yerdeki
komut) bir çağrışımlı bellekte (associative memory) tutulur.
Böylece gidilecek adres hesaplanmadan önce dallanma
komutundan sonraki komutlara erişilebilir.
Tutulan komut sayısı tablo boyutu ile sınırlıdır.
İş Hattı (Pipeline)

Dallanma öngörüsü (Branch prediction)


Statik dallanma öngörüsü stratejileri:
Her zaman ”dallanma yok” öngörüsü: Her zaman dallanma
olmayacağı öngörülür ve bellekte dallanmadan sonra gelen
komut iş hattına alınır.
Her zaman ”dallanma var” öngörüsü : Her zaman dallanma
olacağı öngörülür ve dallanmanın hedefi olan komut iş hattına
alınır.
Programların davranışını inceleyen çalışmalar, koşullu
dallanmaların %50’sinden fazlasında dallanmanın
gerçekleştiğini göstermişlerdir.
Bu nedenle ”her zaman dallanma var” öngörüsü performans
açısından daha iyi sonuç vermektedir.
İş Hattı (Pipeline)

Dallanma öngörüsü (Branch prediction)


Dinamik dallanma öngörüsü stratejileri:
Dinamik dallanma öngörüsü stratejileri o anda çalışan
programdaki tüm koşullu dallanma komutları ile ilgili istatistik
tutarak dallanmanın olup olmayacağını öngörmeye çalışırlar.
Programdaki her koşullu dallanma komutu ile bir veya daha
fazla sayıda öngörü biti (veya sayaç) (prediction bits)
ilişkilendirilir.
Komutların geçmişi ile ilgili bilgi (dallanma gerçekleşme oranı)
sağlayan bu bitler bir dallanma geçmişi tablosunda (branch
history table) tutulur.
İş Hattı (Pipeline)

Dallanma hedef tablosu ve dallanma geçmişi tablosu


Öngörü bitleri hızlı erişilebilen bir bellekte oluşturulan
dallanma geçmişi tablosunda (branch history table - BHT)
tutulur.
Dallanma geçmişi tablosunda, en son çalışan belli sayıdaki her
koşullu dallanma komutu için komutun bellek adresi, hedef
adresi ve durum (öngörü) bitleri tutulur.
Öngörü bitleri dallanma komutunun her çalışmasında
dallanma olup olmamasına göre değer alırlar
İş Hattı (Pipeline)

Dallanma hedef tablosu ve dallanma geçmişi tablosu


Koşullu dallanma komutu tekrar çalıştığında bu bitler iş hattı
denetim birimi tarafından karar vermek için kullanılır.
Eğer ”dallanma VAR” öngörüsü yapılırsa dallanma komutu
yürütülmeden önce tablodaki hedef adresi kullanılarak
gidilecek olan komut iş hattına alınabilir.
İş Hattı (Pipeline)

1 bit dinamik dallanma öngörü yöntemi


Her koşullu dallanma komutu için bir öngörü biti (pi ) tutulur.
Öngörü biti, ilgili komutun son çalışmasında dallanma olup
olmadığını gösterir.
Eğer komutun son çalışmasında dallanma olduysa bir sonraki
çalışmasında da dallanma olacağı varsayılır.
İş Hattı (Pipeline)

2 bit dinamik dallanma öngörü yöntemi


Her koşullu dallanma komutuna iki öngörü (durum) biti atanır.
Eğer komut 11 veya 10 durumlarındaysa ”dallanma VAR”
öngörüsü yapılır.
Eğer komut 00 veya 01 durumlarındaysa ”dallanma YOK”
öngörüsü yapılır.
İş Hattı (Pipeline)

Derleyici Tabanlı Çözümler


Gecikmeli Dallanma (Delayed branch):
1-Optimize gecikmeli dallanma (Optimized delayed branch):
Derleyici eğer mümkünse, programın davranışını değiştirmeden
bazı komutların yerini değiştirerek iş hattını durdurulmasına
veya boşaltılmasına gerek kalamadan dallanma sorunlarını
çözer.
Bu çözüm mümkün olursa performans kaybı yaşanmaz
2-NOOP (No Operation) komutlarının eklenmesi:
Eğer komutların yerini değiştirmek mümkün değilse, derleyici
dallanma komutlarının peşine gerekli sayıda NOOP komutu
yerleştirir.

You might also like