Bilgisayarlar modern hayatımızın değişilmez bir parçasıdır ve günlük hayatımızda yeteri kadar farkında olmasak da her anımızda yaşantımızı kolaylaştırır. Peki günlük hayatımızla bu kadar iç içe geçmiş cihazların gerçek anlamda nasıl çalıştığını hiç düşündünüz mü? Bu konuya az çok ilgi duyan kişiler aslında her şeyin 1 ve 0’lardan oluştuğunu söyleyecektir. Peki 1 ve 0 rakamları bizler için bir anlam ifade ederken bilgisayarlar için bu tam olarak neyi ifade etmektedir? Bilgisayarlar 1 ve 0’ın ne olduğunu nasıl bilmektedir? Bu yazıda bu sorulara cevap vermeye çalışacağız.
Öncelikle bu sorulara cevap vermeden konuya temel oluşturmak amacıyla insanlığın sayı saymak için kullandığı bazı sistemlerden bahsedeceğim. İnsanlık tarih boyunca farklı sistemler denemiştir. Bunlardan bir tanesi çentik yöntemidir. Şekil 1’de görülen her bir çentik birbirini ardışık olarak takip eden sayıları ifade eder. Bu yöntem çok verimli değildir çünkü özellikle büyük sayılar için birbiri arkasına çok sayıda çentik kullanmak gerekir. Bu nedenle sayma işlemini biraz olsun kolaylaştırmak için beşinci çentiği çapraz olarak atarak gruplama yapılmıştır ancak yine de çentik atarak sayı saymak çok verimli değildir.
Çentik yöntemi dışında günümüzde de hala kullandığımız onluk sayma sistemi de yaygın olarak kullanılmıştır. Bunun sebebiyse oldukça basittir; çünkü 10 parmağımız var J. Parmaklar sayesinde onluk sayma sistemi oldukça kullanışlıdır. Onluk sayma sistemi tarihte ilk defa Mısırlılar tarafından kullanılmıştır. Onluk sayma sistemini daha verimli hale getirmek için çentik yöntemini aksine ardışık işaretler yerine sistemdeki her bir değere karşılık gelen rakam (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) denilen on adet sembol kullanıyoruz. Peki bu noktada en büyük rakam olan 9’dan bir sonraki sayıyı ifade etmek istediğimizde ne yapıyoruz? Bu noktada 9’dan daha büyük bir rakam elimizde bulunmadığı için 9 rakamının solunda olduğunu varsaydığımız hayali 0 değerini 1 arttırıp ki buna onlar basamağı diyoruz, birler basamağını tekrardan en başa döndürüp 10 sayısını elde ediyoruz. Bu sayede sadece on tane rakam ve basamak mantığıyla çok büyük sayıları dahi çok hızlı bir şekilde ifade edebiliyoruz.
Buradaki verimliliği bir örnekle de açıklayabiliriz. Issız bir adaya düşüp 315 günün sonunda kurtulduğumuzu ve o güne kadar her bir günü çentik yöntemiyle bir kayanın üzerine yazdığımızı düşünelim. Son gün hesaplama yapmaya çalıştığımızda yüzlerce çentik göreceğiz ve gün sayısını tam olarak hesaplamak için en baştan çentikleri teker teker saymamız gerekmektedir. Oysa bunu onluk sayma sistemiyle yapsaydık sadece 3 tane rakam kullanarak çok basit ve hızlıca yapabilecektik.
Sayma sistemlerinin insanlık için ne ifade ettiğini ve insanlığın bunu nasıl anlamlandırdığını kısaca anlattıktan sonra esas konumuz olan bilgisayarlara geri dönebiliriz. Bilgisayarlar aslında binary (ikili) diliyle konuşur. Hatta bu konuyla ilgili “Dünya’da 10 tip insan vardır: ikili sistemden anlayanlar ve anlamayanlar” şeklinde meşhur bir espri vardır. Bu espriyi yazının sonunda açıklayacağım J.
Peki bilgisayarlar neden insanların çok daha aşina olduğu onluk sisteme göre değil de ikilik sisteme göre tasarlanmıştır? Aslında her ne kadar insanlar onluk sistemle yaşasa da bunun tarihsel olarak en temel sebebinin 10 parmağımızın bulunması olduğunu yazının önceki kısımlarında ifade etmiştik. İnsanlar için onluk sistem çok mantıklı gözükse de bilgisayarların mekanik yapısındaki en temel özellik açık ya da kapalı durumda olmaktır. Bu nedenle onluk sistemdeki rakamlar yerine açık ve kapalıyı temsil eden 0 ve 1 yeterli olmaktadır. Peki sadece bu iki rakam günümüzün modern yaşamını oluşturmak için nasıl yeterli olabiliyor ve bilgisayarlar aynı insanlar gibi 1 ve 0’ı nasıl anlamaktadır? Aslında bilgisayarlar temelde elektronik devrelerinden oluşur ve doğal olarak elektrik ile çalışır. Bu nedenle konuyu anlayabilmek için elektronik devrelerine biraz daha yakından bakmak gerekiyor.
Elektrik devreleri basitçe bir güç kaynağının akım oluşturarak bir direnç üzerinden geçirilmesiyle günlük hayatta neredeyse her noktada kullandığımız sisteme verilen isimdir. Örneğin Şekil 2’de görüldüğü gibi ampuller direnç kaynağı oldukları için üzerinden akım geçtiğinde bu elektrik akımını ısı ve ışığa dönüştürür.
Modern elektronik devrelerinde sinyalin 5 volt olması açık durumunu ve 0 volt olması kapalı durumunu belirtmektedir. Tam da bu noktada bahsettiğimiz teorik bilgiyi pratiğe çeviren şey ise elektronik devrelerde kullanılan transistördür. Transistör aslında üç tane yarı iletken maddenin birbirine eklenmiş halidir ve basit bir elektronik devre elemanıdır. Temel görevi üzerinde belli bir akım gelirse kapanıp akımın geçmesine izin vermektir. Her ne kadar basit bir devre elemanı olsa da transistörler sayesinde yapabildiklerimiz göz önünde bulundurulduğunda kimilerine göre insanlık tarihinin en önemli icatlarından biridir. Transistör üzerine gelen 5 voltluk sinyali geçirince 1 sayısına, geçirmezse 0 sayısına ulaşmış oluyoruz. Bu sayede aslında bilgisayarlara 0 ve 1’in ne olduğunu anlatmış oluyoruz. Burada verilen 5 volt ve 0 volt değerleri kullanılan farklı protokollere göre değişkenlik gösterebilir ama bu yazıda kullandığımız örnekleri 5 volt ve 0 volt değerleri üzerinden vereceğiz.
Transistörlerin ikili sayma sistemiyle nasıl bir mantıkta çalıştığını örneklerle açıklayalım. Örneğin 2 sayısına ulaşmak istiyoruz ve elimizde sadece 3 transistörümüz var. Transistörün açık olma durumunu yeşil renkle, kapalı olma durumunu da kırmızı renkle temsil ediyoruz. Bu durumda ikilik sayma sisteminin yerine önceki kısımda bahsettiğimiz çentik yöntemini kullanırsak Şekil 3’teki gibi bir yapı kurgulamamız gerekir fakat burada örneğin 6’ya kadar saymak olanaksızdır.
Bu noktada çentik sistemi yerine ikili sistemi kullanırsak transistörlerin kapalı olması durumu da sayı saymak için kullanılabilir. Bu sayede yine 3 transistörle Şekil 4’te görüldüğü gibi 6’ya kadar rahatlıkla sayabiliriz. 6 sayısı ikili sistemde 110 olarak ifade edilir. Buradaki mantık onluk sayma sistemiyle aynıdır. Sağdan başlayarak 2’nin kuvvetleriyle basamağı çarparak sayma işlemini gerçekleştirebiliriz. Yani aslında aynı sayıda transistörle sayma yöntemini değiştirerek 3 yerine 7’ye kadar sayma yapabiliriz.
Elektronik devreler için açık ya da kapalı olma durumu da oldukça hızlı gerçekleştirebildiği için elimizde yeteri kadar transistör varsa çok fazla işlemi kısa sürede yapabilmekteyiz. Günümüzde kullandığımız standart bilgisayarların işlemcisinde bu transistörlerden milyonlarca vardır ve bilgisayarların gücü buradan gelmektedir. Bilgisayarların kullandığı en temel kavramlardan birisi olan BIT (Binary Digit) kavramı da bu transistörlere karşılık gelmektedir. Bir BIT 1 ya da 0 değerini alabilmektedir ki bu da transistörün açık ya da kapalı olması durumunu ifade etmektedir. 8 BIT bir araya geldiğinde 1 BYTE oluşmaktadır. Bilgisayarlar ikili sistem kullandığı için diğer bütün kavramlar da doğal olarak 2’nin katlarıyla ifade edilmektedir.
Buraya kadar işin teorik kısmını anlattıktan sonra biraz da pratik kısmını anlamamız gerekiyor. Bilgisayarların 1 ve 0’ları nasıl anlamlandırdığını açıkladık ama bu yine de klavyeden bir sayıya bastığımızda ekranda o sayının nasıl gözüktüğünü açıklamıyor. Burada bize yardımcı olan en önemli konu uluslararası protokollerdir. Uluslararası protokoller sayesinde bütün bilgisayarlar Dünya’nın her yerinde aynı dili konuşabilmektedir. Klavye örneğimize geri dönersek aslında burada yapılan şey temelde 1 ve 0’ları karakter kodlamaya dönüştürmektir. ASCII (American Standard Code for Information Interchange) bunun için kullanılan protokollerden bir tanesidir. Şekil 5’te klavye üzerinde kullandığımız tuşlara karşılık gelen onluk, ikili, sekizlik ve on altılık sistemlere göre değerler gösterilmiştir.
Örneğin klavyeden 5 sayısına basıldığında binary formatta buna karşılık gelen 1 BYTE’lık 00110101 dizisini nanosaniyeler içinde işlemciye gönderir. İşlemci de gelen bilgiyi yine aynı mantıkla ekranın ilgili piksellerini oluşturan led ışıklara gönderir ve klavyeden bastığımız 5 sayısı ekranda belirir.
Bu noktada açıklanması gereken bir diğer konu da örneğin 1 rakamının binary formatta karşılığı olan 00110101 dizisinin işlemci tarafından sağdan sola olarak nasıl anlamlandırıldığıdır. Aslında yazının ilk kısımlarında devrenin açık olması durumunda 5 volt, kapalı olması durumunda ise 0 volt yani herhangi bir elektrik akımının olmadığını ifade etmiştik. Konunun daha anlaşılır olması için Grafik 1’de bu durum gösterilmiştir.
Peki bu noktada en sonda 2 kere arka arkaya olan 0 volt sinyalini nasıl anlamaktadır? Çünkü 0 volt demek aslında hiç sinyal yok demektir ve burada örneğin 1 kere değil de 2 kere sinyal gelmediği işlemci tarafından nasıl algılanmaktadır? Bu konuyu çözmek için parçalar arasındaki iletişim yine önceden belirlenmiş protokoller ile belirlenmiş zaman aralıklarına bölünmektedir. Örneğin kullanılan protokole göre her bir zaman aralığı 100 nanosaniye olarak belirlenmişse ve toplamda 200 nanosaniyelik voltaj kesintisiyle doğal olarak 2 bitlik 0 değeri elde edilecektir.
Bilgisayarların 1 ve 0’ı nasıl anlamlandırdığını ve bu konunun arkasındaki temel mantığı basitçe anlatmaya çalıştım. Yazının sonuna gelmişken “Dünya’da 10 tip insan vardır: ikili sistemden anlayanlar ve anlamayanlar” esprisini açıklayarak konuyu noktalayalım. Aslında çoğunuz muhtemelen neyin kastedildiğini anlamışsınızdır ama yine de anlamayanlar olabilir diye kısaca açıklayayım. İkili sayma sisteminde 10 ifadesi onluk sayma sistemindeki 2 sayısına denk gelir ve bu nedenle ikili sayma sistemi için bu espri meşhur olmuştur.
Kaynakça: