Uploaded by BOR ROW

Sunu-4-(veri-isleme)

advertisement
VERİ İŞLEME
Araş. Gör. Dr. İbrahim ŞANLIALP
Bilgisayar Mimarisi
 Verinin işlenmesini kontrol eden devreye Merkezi İşlem Birimi denir. (Central
Processing Unit or CPU)
CPU
 Toplama – Çıkarma gibi aritmetik
işlemlerin yapıldığı birim
 İşlemcinin aktivitelerini kontrol eden birim
 Yazmaçlar (Geçici bellek)
 Genel
 Özel?
 Genel yazmaçlar verinin / sonucun geçici olarak saklandığı ve işlendiği
birimlerdir.
 CPU ve Ana Bellek birbirlerine veriyolu (Bus) adı verilen bir grup tel ile
bağlıdır.
 Bellketeki iki sayıyı bir biri ile
toplamak için arka planda bir çok
işlemler dönmektedir.
Ön bellek
 CPU nun üzerinde fiziksel olarak mevcut olan yüksek hızlı bellek parçasıdır.
 Ön bellek → Ana Bellek → Yığın Bellek
 İşlemler yazmaçlar ile önbellek arası gerçekleşir.
Saklı – Program kavramı
 Her cihazın yürüteceği adımlar üretim sırasında kontrol birimi içerisinde
makinanın bir parçası olarak tanımlanır ve değiştirilemezdi. (Hesap Makinesi)
 Bir bilgisayarın kendi çalıştıracağı programın kendi ana belleğinde
kaydedilmesi «saklı program kavramı» (The Stored-Program Concept) olarak
adlandırılır.
Makine Dili
 Saklı program kavramını uygulamak için CPU’ bit desenleri ile kodlanmış ve
CPU’ya ne yapacağını söyleyen kodlamara ihtiyaç vardır.
 Belirli temel özellikleri yerine getiren bir bilgisayar için yeni özellikler eklemek
bilgisayar kapasitesine bir katkısı olmayacaktır.
 RISC vs CISC
İndirgenmiş Komut Takımlı Bilgisayar
(reduced instruction set computer)
RISC
Karmaşık Komut Takımlı Bilgisayar
(complex instruction set computer)
CISC
Ana Argüman: Donanım
Ana Argüman: Yazılım
Belleğe sadece “load” ve “store”
komutlarıyla erişilmelidir.
CISC mimarisinin karakteristik iki
özelliğinden birisi, değişken uzunluktaki
komutlar, diğeri ise karmaşık komutlardır.
Komut kümesi çok azdır.
Geniş komut kümesi vardır.
Donanıma güvenir.
Mikrokod kullanır.
CISC mimari ile bir satırda çözülecek kod için RISC de 3-4 satır kod yazmak gereklidir.
CPU’daki komut işleme daha hızlı
Her bir komut daha yetenekli olmaya
olacağından bu hızda çalışan CPU’ya hızlı başladığından verilen bir görevi yürütmek
RAM ve büyük önbelleklere ihtiyaç vardır. için daha az komut kullanılır. Bu, nispeten
yavaş ana belleğin daha etkili
kullanımını sağlar.
Farklı uzunlukta komutların okunması çok
çevrim gerektirdiğinden performans
düşüklüğü olabiliyor.
Sanal Bir
Makine
• 0’dan 15’e kadar
numaralandırılmış 8 bitlik 16
Yazmaca sahip
• 256 adet ana bellek
hücresine sahip
• 16 bitlik 12 temel koda sahip
bir işlemci
 Bir makine komutunun kodlanmış hali iki bölümden oluşur.
 İşlem kodu (op-code)
 İşlenen (operand)
 Bu sanal makine için her komutun ilk 4 biti (16 lık sistemde ilk basamak) işlem
kodudur.
 Örnek: 70C5 komutu
 (7: Yazmaçlarda bulunan iki veriyi OR işlemine tabi tutma)
 C ve 5 adresli yazmaçlarda bulunan veriyi OR işlemine tabi tut ve sonucu 0
nolu yazmaca yaz.
CPU için küçük işlem adımları
İki Sayının Toplanması
Toplanacak sayılardan birini bellekten al ve bir yazmaca yerleştir.
Bellekten diğer sayıyı al ve başka bir yazmaca yerleştir.
Adım 1 ve 2’deki yazmaçları giriş olarak kullanacak ve sonucu başka bir
yazmaca yazacak şekilde toplama işlemini yap.
Sonucu belleğe kaydet.
Dur.
İki sayının toplamı
Kodlanmış Komut
Çevrimi
156C
Yazmaç 5’e 6C adresli bellek
hücresinin içeriğini yükle.
166D
Yazmaç 6’ya 6D adresli bellek
hücresinin içeriğini yükle.
5056
Yazmaç 5 ve 6 içeriğini topla ve
sonucu yazmaç 0’da tut.
306E
Yazmaç 0’ın içeriğini 6E adresli bellek
hücresine kaydet.
C000
Dur.
Sanal Makinamızın Bazı Komutları
İşlem
Kodu
Açıklama
Açıklama - Örnek
1
Yükleme (LOAD)
14A3: A3 adresindeki hafıza hücresinin değerini 4 nolu yazmaca yükle.
2
Yükle (LOAD)
24A3: 4 nolu yazmaca A3 değerini yükle
3
Kaydet (STORE)
35B1: 5 numaralı yazmacın içeriğinin belleğin B1 adresine yerleştirilmesine
sebep olur.
4
Taşı (MOVE)
40A4: A yazmacının içeriğini, yazmaç 4 de kopyala
5
Topla (ADD)
2’ye tümleyen devresi ile toplama alma.
5526: yazmaç 2 ve 6’daki içeriğin 2’ye tümleyen yöntemi ile toplanıp
sonucunun 5 nolu yazmaca yüklenmesi.
7
Veya (OR)
7CB4: yazmaç B ve 4’teki içeriğin OR işlemine tabi tutulması ve sonucun C
yazmacına alınması
8
Ve (AND)
8CB4: yazmaç B ve 4’teki içeriğin AND işlemine tabi tutulması ve sonucun C
yazmacına alınması
9
Özel veya (XOR)
9CB4: yazmaç B ve 4’teki içeriğin XOR işlemine tabi tutulması ve sonucun C
yazmacına alınması
A
Sağa kaydır
A403: 4 nolu yazmacın içeriğini 3 bit sağa kaydır.
B
Atla (JUMP)
B43C: 4 nolu ile 0 nolu yazmaç içerikleri birbirleri ile aynı ise program sayacına
3C yüklenir.
C
Durdurma (HALT)
Program durdurma.
 AA adresli bellek içeriği ile 2 no’lu yazmacın içeriğini karşılaştırıp eğer eşit ise
program sayacını FF adresine yönlendirecek program komutlarını yazınız?
Bir Programın Yürütülmesi
 Program komutları belirli bir sıra ile CPU belleğine alınarak işlenir. (Kesmeler
Hariç)
 Komut Yazmacı (Instruction Register)
 Program Sayacı (Program Counter)
Bir Program Yürütme Örneği
 Bellekte olan iki sayının toplanıp tekrar belleğe yerleştirilmesi:
 Programımızın Ana Bellekte A0 adresinden başlayarak yerleştirildiğini farz
edelim.
Yazmaç
5
6
0
İçerik
Adres
6C
6D
6E
İçerik
05
03
 Öncelikle A0 adresinden program komutu çekilir.
 (156C) – (Getir - Fetch)
Adres
6C
6D
6E
İçerik
05
03
 Program sayacı 2 artırılır. Ardından 156C komutunu işleyerek, 6C
konumundaki içeriği yazmaç 5’e yükler. (Çöz, Çalıştır. – Decode, Execute)
Yazmaç
5
6
0
İçerik
5
Adres
6C
6D
6E
İçerik
05
03
 Sonrasında A2 adresindeki program komutu çekilir.
 166D
 Program Sayacı 2 artırılır.
 6D adresindeki veri 6 no’lu yazmaca getirilir.
Yazmaç
5
6
0
İçerik
5
3
Adres
6C
6D
6E
İçerik
05
03
 Sonrasında A4 adresindeki program komutu çekilir.
 5056
 Program Sayacı 2 artırılır.
 Aritmetik Mantık Birimi ilgili devrelerini çalıştırarak 5 ve 6 nolu yazmaç
değerlerini toplar. Sonucunu 0 nolu yazmaca yükler.
Yazmaç
5
6
0
İçerik
5
3
8
Adres
6C
6D
6E
İçerik
05
03
 Sonrasında A6 adresindeki program komutu çekilir.
 306E
 Program Sayacı 2 artırılır.
 0 nolu yazmacın içeriği, 6E adresli belleğe kaydedilir.
Adres
6C
6D
6E
İçerik
05
03
08
 Sonrasında A8 adresindeki program komutu çekilir.
 C000
 Program Sayacı 2 artırılır.
 Yürütme durur ve program tamamlanmış olur.
Örnek?
Adres
İçerik
00
14
01
02
02
34
03
17
04
C0
05
00
Program sayacı 00’dan başlarsa, program
tamamlandığında 17 nolu adres belleğinde hangi içerik
yer alır?
Aritmetik/Mantık Komutları
 CPU’da « Aritmetik/Mantık İşlem Birimi » içerisinde aritmetik/mantık işlemlerini
gerçekleştirmek için gereken devreler yer almaktadır.
 Bu birimde kullanılan program komutlarını inceleyelim.
Maskeleme Yapma
 AND ile işlem yapmanın avantajları
 Örneğin 00001111 yüksek öncelikli 4 bitin 0 olacağı bellidir.
 OR işleminin avantajı
 Örneğin 11110000, ile işlem yapılacak verinin sonucunda ilk 4 bitin 1 olacağı
bellidir.
 Bit Eşlem lerde maskeleme oldukça fazla kullanılan bir yöntemdir.
 Örneğin 8 bitlik bir sayının yüksek değerlikli 3.biti nin 0 olup olmadığının ölçümü
 Örneğin sadece 3.biti sıfır yapmak istiyorsak
 3.Biti 1 yapmak için OR ile maskeleme yapılabilir.
 XOR ile maskeleme yapmak ise bitleri ters çevirmek için kullanılabilir.
Döndürme ve Kaydırma İşlemleri
 Yön ve dairesel olup olmaması önemlidir.
1100 1100
 (Döndürme veya dairesel kaydırma)
1100 1100
 (Mantıksal Kaydırma)(0)
 Sola kaydırmak iki ile çarpmaktır.
 Sağa kaydırmak iki ile bölmektir.
 Eğer işaret biti korunuyorsa « Aritmetik Kaydırma » denir.
Diğer Cihazlar İle Haberleşme
 Yazıcı, Klavye, Fare gibi çevresel birimler ile haberleşmek için «Denetleyici»
birimi kullanılır.
 Her çevresel birimin kendi denetleyicisi mevcuttur.
 Bellek Haritalı Giriş / Çıkış
 Bellek alanında belirli adres alanları ayrı ayrı denetleyiciler için ayrılır.
 Bazı denetleyicilerin CPU yu aracı yapmadan direk ana belleğe ulaşmasına
« Doğrudan Bellek Erişimi » denir. (DMA, Direct Memory Access.)
USB vs FireWire
El Sıkışma & Durum Sözcüğü
 Veri kaybı olmaması için « El Sıkışma » yöntemleri kullanılmaktadır.
(Yazıcı  → CPU)
Paralel ve Seri Haberleşme
 Klasik Sabit Telefonlarda veri arka arkaya ses tonları şeklinde iletilirdi. Bu işlem
için telefon içerisinde modemler kullanılırdı.
Modem (MODulator-DEModulator)
 DSL (Digital Subscriber Line – Sayısal Abone Hattı)
 Fiber Optik İletim
Haberleşme Hızları
 Bit / Saniye (bps – Bits per second)
 Kilobit / Saniye (Kbps – Kilobits per second) (1000 bps ye eşit.)
 Mbps
 Gbps
 Klasik telefon hattı ile bağlantı: 57.6 Kbps
 DSL ile bağlantı: 54 Mbps
Sayılarda ön ekler
 0b → Binary (ikilik sayı sistemi için)
 0x → Hexadecimal (onaltılık sayı sistemi için)
Yazılan Programın İşlemesi
int main(){
int su_sicakligi = 0;
su_sicakligi = readTemp();
if(su_sicakligi>60){
printf(" Tehlike\n ");
}
}
Küme Komut İşleme (Pipelining)
 Elektrik sinyalleri bir iletken tel içerisinde ışık hızının altında bir hızla ilerler.
 Işık hızı 1 ns de 30 cm.
 Sinyal hızı 2 ns de 30 cm.
 CPU nun iki veriyi ana bellekten çekmesi, işlemesi ve tekrar yerine koyması
belirli bir zaman alır.
 İşlemlerin hızlı olması için «Pipelining» kullanılır. Yani bir komut işlemeye
alınırken bir sonraki komutun getirilmesi işlemidir.
Çok çekirdekli işlemciler
 Aynı çipin üzerinde birden fazla işlemci ve paylaşılmış bir ön belleğin
olmasıdır.
 Yazılım destekli olmaz ise sadece bir çekirdek çalışır.
 Çift çekirdek iki kat hız değildir.
 Hız, Güç, Isınma, Fiyat, Performans
YAZILIM HER ŞEYDİR.
Çok işlemcili
makineler
 Birden fazla birbirinden
bağımsız çalışabilen
işlemcilerin aynı anda
kullanılmasıdır.
 Bir CPU büyük bir iş yükü
geldiğinde, bu yükün bir
kısmını program olarak diğer
işlemcinin ana belleğine
yazabilir.
Download