Ünite 3: Bilgisayarda Veri İşleme

Giriş

Bilgisayarda veri işleme ünitesinde veri işlemenin tanımı yapılmış; işlemci mimarisi ve programların çalışma esasları anlatılmıştır. Bilgi sisteminde yer alan temel kavramlar veri, enformasyon ve bilgidir. Bu kavramlar hakkında detaylı açıklama, veri işlemenin tanımı ve veri işleme döngüsü “Veri İşleme Nedir?” başlığında belirtilmiştir. Modern bilgisayarların beyni olarak tanımlanan merkezî işlem biriminin yapısı, özellikleri ve görevleri “İşlemci Mimarisi” başlığında açıklanmıştır. Programların ana belleğe alınması, program komutlarının çalıştırılması, komut çevrimi gibi temel programlama esasları ise ünitenin son ana başlığı olan “Programların Çalışma Esasları”nda incelenmiştir.

Veri İşleme Nedir?

Veri, Enformasyon ve Bilgi Kavramları

Bir bilgisayar sisteminde verinin nasıl işlendiğini anlayabilmek için bilgi sistemindeki temel kavramların açıklanması gerekir. Birbirleriyle ilişkili olan ve yakın anlamlar içeren bu kavramlar veri, enformasyon ve bilgidir. Veri, enformasyon ve bilgi kavramları üst üste eklenerek bilgi piramidini oluşturur. Bu piramidin basamaklarında yukarı doğru çıkılırken; içerik daralır, anlam genişler.

Veri, ilişkide olduğumuz dünyanın durumlarını belirten ham olgulardır. Sayısal veya sözel bir simge hâlinde bulunabilen veri, tek başına bir anlam taşımaz. Enformasyon, verinin belirli bir konu çerçevesinde işlenmiş hâlidir. Seçilmiş verilerin bir anlam oluşturacak şekilde işlenmesiyle enformasyon oluşur. Bilgi, enformasyonların birleşimiyle meydana gelir. Enformasyonu yorumlamak için gereken kuralların anlaşılmasıyla bilgi oluşur. Veri, enformasyon ve bilgi kavramlarını açıklamaya çalışan bir örnek Tablo 1’de verilmiştir.

Tablo 1.

Veri İşleme

En basit tabirle veri işleme, veri üzerinde çeşitli işlemler uygulayarak ham veriden bilgi elde etmektir. Veri işlemede temel amaç, farklı kaynaklardan elde edilen verinin yönetilmesini sağlamak ve anlamlı bilgiye sahip olmaktır. Girdi, işleme ve çıktı adımlarından oluşan veri işleme süreci, genel bir sistem olarak tarif edilebilir. Veri işleme sistemlerinde girdi olarak veri kullanılırken, çıktı olarak anlamlı bilgi beklenir.

Şekil 1. Veri İşleme Temel Yapısı

Veri işleme sistemleri, verinin işlenme türüne göre üç gruba ayrılır:

  • Manuel veri işleme: Bu sistemlerde verinin işlenmesi insanlar tarafından manuel olarak yapılır. Genellikle kâğıt ve kalem kullanılan, birçok ofiste görülen evrak kayıt yöntemi ve evrak klasörleri, veri işlemenin insanlar tarafından el ile yapıldığı sistemlere örnek olarak gösterilebilir.
  • Mekanik veri işleme: İnsanların bir mekanik cihaz yardımıyla veri girişi ve veri işleme yaptığı sistemlerdir. Daktilo, hesap makinesi, muhasebe makinesi gibi cihazlar, bu sistemlerde sıklıkla kullanılır.
  • Elektronik veri işleme: Veri işlemenin bilgisayarlar tarafından yapıldığı otomatik sistemlerdir. Hız, kolaylık, güvenilirlik ve erişilebilirlik bakımından sağladığı avantajlar sayesinde, elektronik sistemler günümüzün popüler veri işleme yöntemidir. Dijital verinin büyüklük ve kapsam olarak ileri seviyelere ulaşmasıyla, elektronik sistemlere olan ihtiyaç da oldukça artmıştır.

Veri İşleme Döngüsü

Bir veri işleme sistemi temel olarak girdi, işleme ve çıktı adımlarıyla gösterilir. Fakat ham veriden bilginin elde edildiği veri işleme süreci, farklı bileşenlerin yer aldığı ve farklı işlemlerin yapıldığı daha detaylı aşamalardan oluşur. Bilgisayar sistemlerinde veri işleme süreci, birbirini takip eden aşamalar hâlinde ilerler. Süreçteki aşamaların birleşerek oluşturduğu döngülere veri işleme döngüsü adı verilir. Veri işleme döngüsü veri toplama, veri hazırlama, veri girişi, veri işleme, çıktı ve yorumlama ile depolama olmak üzere altı aşamadan meydana gelir.

Veri Toplama

Veri işleme döngüsünde ilk adım verinin toplanmasıdır. Bu aşamada yapılan işlemler, veri işleme sürecinin sonucuna doğrudan etki eder. Veri işleme sürecinde kullanılan verinin kalitesi, sürecin genel başarısı üzerinde de önemli paya sahiptir. Elde edilen verinin düzgün ve amaca uygun olması, veri toplamanın temel ilkesidir.

Veri Hazırlama

Veri toplama aşamasından sonra gelen adım, verilerin hazırlanmasıdır. Çeşitli kaynaklardan toplanan verilerin işlenebilmesi ve analiz edilebilmesi için verilerin bir hazırlanma aşamasından geçmesi gerekir. Ham verinin doğruluk ve uygunluk açısından kontrolü, veri işlemenin başarısını doğrudan etkiler. Bu aşamada veriler, belirli formatlar doğrultusunda düzenlenir ve incelenir.

Veri Girişi

Bir verinin bilgisayar tarafından işlenebilmesi için, verinin dijital hâle getirilmesi gerekir. Bilgisayar sistemlerinin klavye, fare, tarayıcı, dijital kamera gibi girdi üniteleri sayesinde veri girişi yapılır. Veri girişi, kullanıcılar veya otomatik sistemler tarafından gerçekleştirilebilir. Bu aşamanın gerçekleştirilmesinde farklı yazılımlardan veya mevcut verilerden de yararlanılabilir.

Veri İşleme

Veri girişi sayesinde dijital hâle getirilen ham veri, bilgisayar sistemleri tarafından işlenebilir durumdadır. Veri işleme, bir programın veri üzerinde belirli yöntemler uyguladığı aşamadır. Programın bünyesinde bulunan komutlar, veri üzerinde çalışarak aktif hâle gelir. Veri büyüklüğü, veri uygunluğu, yazılım kalitesi, bilgisayarın işlem gücü gibi faktörler, veri işleme aşamasının sonuçlanmasını etkiler.

Çıktı ve Yorumlama

İşlenen veri, bilgisayar kullanıcısına iletilmelidir. Verilerin kullanıcıya aktarımında ses, görüntü, basılı materyal gibi birçok format kullanılır. Bilgisayar sistemlerinin yazıcı, monitör, projektör ve hoparlör gibi çıktı üniteleri sayesinde veriler kullanıcıya ulaşır ve kullanıcı tarafından yorumlanarak değerlendirilir. Kullanıcı sayesinde işlenmiş veriden enformasyon ve bilgi elde edilir.

Depolama

Veri işleme döngüsünün son adımında, işlenen veriler ve elde edilen sonuçlar depolanır. Tüm bilgisayar sistemlerinde depolama üniteleri bulunur. Bu sayede, veri işleme sürecinde elde edilen sonuçlar tekrar tekrar kullanılabilir. Bilgisayar sistemlerinde depolama yapılabilmesi, veri işleme sürecini kısaltan önemli bir faktördür.

İşlemci Mimarisi

Günümüz bilgisayarlarında merkezî işlem biriminin tüm fonksiyonları, yarı iletken bir tümleşik devrede toplanmıştır. Program komutlarını çalıştırmak ve verileri işlemek için gerekli olan tüm elektronik devreler, programlanabilir bir elektronik bileşen olan bu tümleşik devrenin içinde bulunur. Merkezî işlem birimi olarak görev yapan bu devre, kısaca “işlemci” olarak adlandırılır. Bilgisayar sistemlerinde veri işleme, merkezî işlem birimi tarafından gerçekleştirilir. Mikroişlemciler, bellekten komut alır, komut çözer, aritmetik ve mantık işlemlerini gerçekleştirir, girdi/çıktı aygıtları ile iletişim kurar.

Merkezî İşlem Birimin Yapısı

Merkezî işlem birimi, işlenecek veriyi ve kullanılacak programı belleğe yükleyerek verinin işlenmesini sağlar. Fiziksel olarak çok küçük, performans olarak çok hızlı olan mikroişlemcilerin üç ana parçası vardır:

  • Aritmetik ve Mantık Birimi (ALU – Arithmetic and Logic Unit)
  • Kontrol Birimi (CU – Control Unit)
  • Yazmaçlar (Registers)

Aritmetik ve Mantık Birimi

Merkezî işlem biriminin aritmetik ve mantık işlemlerinden sorumlu bileşeni aritmetik ve mantık birimidir. Bu birim, tüm işlemcilerin temel yapı taşıdır. Bilgisayar biliminde kısaca ALU olarak ifade edilen aritmetik ve mantık biriminde toplama, çıkarma, çarpma, bölme gibi aritmetik işlemler ve AND, OR, XOR, NOT gibi mantık işlemleri gerçekleştirilir.

Kontrol Birimi

Bilgisayarda yapılan tüm işlemleri kontrol eden birimdir. Kontrol birimi; giriş ve çıkış birimlerinin denetimini, bellek ile ilgili işlemleri, komutların yorumlanmasını ve bilgisayarın bir bütün olarak çalışmasını sağlar

Yazmaçlar

Kaydedici olarak da adlandırılan yazmaç, mikroişlemciler tarafından kullanılan dâhili geçici hafızalardır. İşlemci içerisinde bulunan özel amaçlı yazmaçlar, aritmetik işlemlerin yapılmasında önemli rol oynar. Yapısal özellikleri sayesinde, karmaşık hesaplamaların daha hızlı yapılabilmesini sağlar.

Komut Kümesi Mimarisi

Bir programda yer alan her komut, merkezî işlem birimi tarafından yapılacak bir işleme denk gelir. Merkezî işlem biriminin yapabileceği işlemlerin makine dilinde karşılığı bulunur ve bu işlemlerin tümünü içeren kümeye komut kümesi (instruction set) adı verilir. Komut kümesi mimarisi, bilgisayar sistemlerinde donanım ve yazılım arasında ayırma katmanı olarak yer alır. Bir işlemcinin gerçekleştirebileceği işlemler ile işlemcinin komut kümesi arasında doğrudan bir ilişki vardır. İşlemcinin tasarım aşamasında, komut kümesinde yer alacak komutlar ve komut kümesi mimarisi belirlenmelidir. Komut kümesinin belirlenmesini sağlayan iki yaklaşım bulunur:

  • RISC (Reduced Instruction Set Computer): Dilimize “Azaltılmış Komut Kümeli Bilgisayar” olarak geçen bu yaklaşımda, komut kümesinin olabilecek en yalın seviyeye indirgenmesi hedeenir. Bu yaklaşıma göre, bir işlemcinin komut kümesinde temel komutların olması yeterlidir ve temel komutların çeşitli organizasyonuyla, her türlü karmaşık işlem yapılabilir. Bu yaklaşımın çıkış noktası, hızlı, verimli ve ucuz bilgisayarlar üretmektir. RISC modelini kullanan işlemci üretici firmalar, Power PC ve Sun Sparc olarak örneklendirilebilir.
  • CISC (Complex Instruction Set Computer): Dilimize “Karmaşık Komut Kümeli Bilgisayar” olarak geçen bu yaklaşımda, işlemcilerin çok sayıda farklı komutu çalıştırabilecek kapasitede olması hedeflenir. Komut çeşitliliği sayesinde, gelişen ve karmaşıklaşan yazılımlar ile daha rahat başa çıkılabilir. Bu yaklaşım doğrultusunda tasarlanan işlemcilerin komut kümesinde, temel komutların yanı sıra, teknik olarak çok fazla ihtiyaç duyulmayan komutlar da bulunur. CISC modelini kullanan işlemci üretici firmalar, İntel ve AMD olarak örneklendirilebilir.

Komut Elemanları

Bir işlemcinin görevini yerine getirmesi için gerekli olan bilgi, program komutlarının içinde yer almalıdır. Program komutlarını oluşturan elemanlar, işlemci için gerekli olan bilgileri taşır. Makine dilindeki bir komutu oluşturan dört ana eleman aşağıda listelenmiştir:

  • İşlem kodu (Operation code – opcode): Merkezî işlem birimi tarafından yapılacak işlemi belirler.
  • İşlenen kaynak referansı (Source operand reference): Yapılacak işlemde girdi olarak kullanılan elemanlardır. Bir işlemde, bir veya birden çok işlenen kaynak olabilir.
  • İşlenen sonuç referansı (Result operand reference): Bazı işlemlerde sonuç elde edilebilir. Bu işlemlerde, çıktı olarak işlenen sonuç kullanılır.
  • Sıradaki komut referansı (Next instruction reference): İşlem tamamlandıktan sonra, işlemcinin hangi komutu bulması gerektiğini belirten elemandır.

Komut Çeşitleri

Günümüzde kullanılan üst düzey programlama dilleri ile yazılmış programlar, bilgisayarın anlayacağı makine diline çevrilebilmelidir. Bu gereksinimi karşılamak için, farklı komut türleri oluşturulmuştur. Modern komut kümelerindeki komut çeşitleri aşağıdaki listede verilmiştir:

  • Veri işleme: Aritmetik ve mantık komutları
  • Veri depolama: Bellek komutları
  • Veri taşıma: Girdi/Çıktı komutları
  • Kontrol: Test ve dallanma komutları

Komutların Gösterimi

Bilgisayar sisteminde komutlar 0 ve 1’lerden oluşan dizilimler ile ifade edilir. Her komut, belirli alanlardan oluşur ve bu alanlar değişkenlik gösterebilir. Şekil 2’de basit bir komut formatı gösterilmiştir.

Şekil 2. Basit bir komut formatı

Makine dilindeki komutların programcılar tarafından rahatça anlaşılabilmesi ve program yazımının kolaylaşması için, komutların ifade edilmesinde sembolik gösterimler kullanılır. Bazı işlem kodlarının sembolik gösterimi Tablo 2 de verilmiştir.

Tablo 2.

Programların Çalışma Esasları

Programların Ana Belleğe Kopyalanması

Bilgisayar sisteminde bir programın çalışması için, o programın başlatılması ve ana belleğe kopyalanması gerekir. Bir programın başlatılmasını sağlayan komut, işletim sistemi, kullanıcı veya farklı bir yazılım tarafından verilebilir. Bir program başlatıldığında, programın çalıştırılabilir hâli ve programın çalışması için gereken öncelikli dosyalar, saklandığı ikincil depolama aygıtından bilgisayarın ana belleğine kopyalanır. Bu kopyalama işlemi sayesinde, merkezî işlem birimi programa doğrudan ve hızlıca ulaşabilir.

Program Komutlarının Çalıştırılması

Bilgisayar sistemlerinde bir program ana belleğe kopyalandıktan sonra, programdaki komutlar merkezî işlem birimi tarafından çalıştırılabilir. Program komutlarının çalıştırılması için gerçekleşen adımlar aşağıda listelenmiştir:

  • Bir programın başlatılması için merkezi işlem birimi, programa ait ilk komutu ana bellekten almalıdır.
  • Merkezi işlem birimi, adres yoluna komutun ana bellekte bulunduğu adresi koyar.
  • Adres yolundaki bellek adresi sayesinde komut ana bellekte bulunur.
  • Komut, veri yolu üzerinden ana bellekten merkezi işlem birimine taşınır.
  • Komut, merkezi işlem birimi tarafından çözülür.
  • Çözme işlemi sayesinde, merkezi işlem birimi ne yapması gerektiğini belirler.
  • Merkezi işlem birimi, gerekli işlemi gerçekleştirir.
  • Merkezi işlem birimi, bilgisayarın diğer donanım bileşenlerine komutun işlendiğini belirten sinyaller gönderir.

Komut Çevrimi

Komut çevrimi, bir programdaki komutların, merkezî işlem birimi tarafından çalıştırılması sürecine verilen isimdir.

Bilgisayar açık olduğu sürece tekrarlanan komut çevrimi, bilgisayar sistemlerindeki en temel işlemdir. Bir programdaki her komut için gerçekleşen bu çevrim, bulma, çözme ve çalıştırma adımlarından meydana gelir. Birçok kaynakta komut çevriminin bu üç adımla adlandırıldığı (Fetch-Decode-Execute Cycle) da görülmektedir.

  • Bulma (Fetch) : Bir program, birçok makine dili komutunu içerir. Komut çevrimindeki ilk adımda, sıradaki komut ana bellekte bulunur ve merkezî işlem birimine taşınır. Komut, merkezî işlem biriminin yazmaçlarında geçici olarak saklanır.
  • Çözme (Decode) : Makine dilindeki bir komut, merkezî işlem biriminin yapacağı işlemi belirten, ikili sayı sisteminde bir sayıdır. Bu aşamada merkezî işlem birimi, bellekten gelen komutu çözerek, hangi işlemi yapacağına karar verir.
  • Çalıştırma (Execute) : Komut çevriminin son aşaması, makine diline dönüştürülmüş komutun çalıştırılmasıdır. Merkezî işlem birimi, işlenen komutla ilgili gereken işlemleri yapar. İşlemin sonucu farklı bir yazmaçta saklanır. İşlem tamamlandıktan sonra, merkezî işlem birimi yeni bir komut çevrimi için kendini hazırlar.