Bilgisayarlar neden sıfır ve birlerle hesap yapar
Modern işlemciler bilgiyi yalnızca ikili sayı sistemi (taban 2) ile işler. Bu, metinlerden ve görüntülerden karmaşık hesaplamalara kadar tüm verilerin çip içinde sıfır ve birlerin (bitlerin) dizisi olarak temsil edildiği anlamına gelir. Alışkın olduğumuz onlu sistem (taban 10) yalnızca kullanıcı tarafından veri girişi yapılırken ve sonuçlar ekrana yansıtılırken kullanılır. İkili sistemin seçimi yarı iletkenlerin fiziksel özelliklerinden kaynaklanır: elektronik için iki durumu («akım var» / «akım yok») ayırt etmek, on farklı voltaj seviyesini ayırt etmeye göre daha kolay ve güvenilirdir.
İkili mantık seçimindeki fiziksel nedenler
Mekanik hesaplama makinelerinden elektronik olanlara geçiş, parazite karşı dayanıklı ve ölçeklenebilirliği kolay bir temel gerektiriyordu. İkili sistem, işlemcinin ana yapı taşı olan transistörün doğası sayesinde bu görevleri mükemmel şekilde yerine getirir.
Sinyal güvenilirliği
Analog veya çok seviyeli bir sistemde, 0'dan 9'a kadar olan rakamları kodlamak için örneğin 10 farklı voltaj seviyesini ayırt etmek gerekirdi. En ufak bir güç düşüşü, çipin ısınması veya elektromanyetik parazit sinyali bozabilirdi: işlemci «7»yi «8» olarak algılayabilirdi.
İkili sistemde yalnızca iki net durum vardır:
- Mantıksal 1: Yüksek voltaj seviyesi (örneğin besleme voltajına yakın, modern çiplerde ~1,0–1,2 V).
- Mantıksal 0: Düşük voltaj seviyesi (toprağa yakın, ~0 V).
Bunların arasında geniş bir «gri bölge» (gürültü marjı) bulunur ve mantık devresi bunu göz ardı eder. Bu durum, yüksek frekanslarda ve transistörlerin minyatür boyutlarında bile hesaplamaların hatalara karşı son derece dirençli olmasını sağlar.
Donanım uygulamasının basitliği
Transistör bir anahtar gibi çalışır: ya açıktır (akım iletir) ya da kapalıdır (akım iletmez). Böyle bir anahtarı uygulamak, 10 farklı durumu hassas bir şekilde stabilize edip okuyabilen bir eleman oluşturmaya kıyasla teknolojik olarak daha kolay, daha ucuz ve enerji açısından daha verimlidir.
Temel gerçek: Bir transistör 1 bit bilgi saklayabilir. Çip üzerindeki milyarlarca transistör en karmaşık devreleri oluşturur, ancak her birinin temel prensibi son derece basittir: açık/kapalı.
CPU içindeki hesaplamalar nasıl çalışır
İşlemci, sayıları insanlardaki gibi «anlamaz». Elektriksel sinyalleri Boolean cebiri kurallarına göre manipüle eder.
Mantık kapıları ve ALU
İşlemcinin temel bileşenleri, transistörlerden oluşan mantık kapılarıdır (VE, VEYA, DEĞİL, VE-DEĞİL). Bunları birleştirerek mühendisler Aritmetik Mantık Birimi (ALU) oluşturur.
Herhangi bir matematiksel işlem, bitler üzerinde yapılan basit eylemler zincirine indirgenir:
- Toplama: «Yarı toplayıcı» ve «tam toplayıcı» uygulayan kapı kombinasyonları aracılığıyla gerçekleştirilir. Bunlar hem biti hem de düşük basamaktan gelen elde bitini dikkate alır.
- Çarpma ve bölme: Aslında kaydırma ve toplama (çarpma için) veya çıkarma (bölme için) işlemlerinin bir serisidir.
RAM'deki ve işlemci register'larındaki tüm veriler ikili kodlar şeklinde saklanır. Örneğin, 5 sayısı 8 bitlik bir register'da 00000101 olarak görünür.
Neden üçlü veya başka bir sistem değil?
Tarihsel olarak, teorik olarak bilgi depolama yoğunluğu açısından daha verimli olabilecek üçlü bilgisayarlar (taban 3) ile deneyler yapılmıştır. Ancak, ikili mantığa odaklanmış silikon elektroniğinin teknolojik üstünlüğü belirleyici olmuştur. Endüstri ikili kodu standartlaştırarak yazılım ve donanım için tek bir ekosistem yaratmayı mümkün kılmıştır.
Onlu sistemin rolü: Nerelerde karşımıza çıkar?
İşlemci ikili sistemde çalışıyorsa, neden ekranda onlu sayılar görüyoruz? Onlu sistem, «insan-makine» arayüzünün önemli olduğu yerlerde kullanılır.
Veri dönüştürme (Konversiyon)
Hesap makinesinde 100 sayısını girdiğinizde:
- Klavye denetleyicisi tuş basışlarını kaydeder.
- İşleme programı «1», «0», «0» karakterlerini ikili koda dönüştürür (bu durumda
01100100). - İşlemci hesaplamaları ikili formatta gerçekleştirir.
- Ekrana yansıtılmadan önce sonuç tekrar ikili koddan onlu karakter dizisine dönüştürülür.
Bu dönüştürme kaynak tüketir, ancak modern işlemciler için ana hesaplamaların hızı yanında bu fark edilmez düzeydedir.
BCD kodlaması (Binary-Coded Decimal)
Bazı özel görevlerde (finansal hesaplamalar, eski mikrodenetleyiciler, gerçek zamanlı saatler) ikili-onlu kod (BCD) kullanılır. Bu formatta her onlu rakam (0–9) ayrı bir dört bitten oluşan grupla (tetrat) kodlanır.
| Onlu rakam | İkili kod (normal) | BCD kodu (tetrat) |
|---|---|---|
| 0 | 0000 | 0000 |
| 5 | 0101 | 0101 |
| 9 | 1001 | 1001 |
| 10 | 1010 | 0001 0000 |
Önemli: BCD, saf ikili koda kıyasla bellekte daha fazla yer kaplar ve aritmetik işlemler için daha karmaşık devreler gerektirir. Bu nedenle yüksek performanslı hesaplamalarda (oyunlar, render alma, bilimsel simülasyonlar) neredeyse hiç kullanılmaz.
Yaygın yanlış inanışlar
- «İşlemci ondalık kesirleri anlar.» Hayır. Ondalık sayılar kayan nokta formatında (IEEE 754 standardı) saklanır ve bu da ikilidir. Bu nedenle programlamada para ile ilgili hesaplamalarda sıklıkla yuvarlama hataları ortaya çıkar (örneğin, ikili kayan nokta aritmetiğinde
0.1 + 0.2 ≠ 0.3). - «Sayı sistemi tabanı ne kadar büyükse, bilgisayar o kadar hızlıdır.» Hız, saat frekansına, pipeline mimarisine ve transistör sayısına bağlıdır, sayı sisteminin tabanına değil. 10'luk sisteme geçiş, sinyallerin tanınmasındaki zorluk nedeniyle bilgisayarı yavaşlatırdı.
SSS
İşlemci onlu sistemde çalışabilir mi? Fiziksel olarak — hayır, genel amaçlı standart silikon CPU'lar (x86, ARM) söz konusu olduğunda. Finansal işlemler için BCD'ye yönelik donanım talimatlarını destekleyen özel işlemciler mevcuttur, ancak bunların dahili veri yolu ve mantığı yine de ikili sinyallere dayanır.
Programcılar neden onaltılık sistemi (Hex) kullanır? Onaltılık sistem (0–9, A–F), insanlar için uygundur çünkü bir Hex rakamı tam olarak 4 bite (bir tetrata) karşılık gelir. Bu, uzun ikili kodların, bellek adreslerinin veya makine talimatlarının kompakt bir şekilde yazılması için pratik bir yoldur. İşlemci Hex'te çalışmaz; bu sadece mühendisler için ikili verileri temsil eden kullanışlı bir dildir.
Sayı sistemi internet hızını etkiler mi? Hayır. Veriler ağlarda da bitlerin dizisi olarak (optik fiberdeki ışık sinyalleri veya radyo dalgaları) iletilir. Veri paketleme protokolleri, kullanıcıyı sıfır ve birlerin fiziksel iletim seviyesinden soyutlar.