Kodun bir geliştirici tarafından yazıldığı ve insanların bilgisayarlarla nasıl iletişim kurduğu yaygın bir bilgidir. Ancak, kod gibi yazılımların CPU (Merkezi İşlem Birimi) gibi bilgisayar donanımı ile nasıl etkileşime girdiğini hiç düşündünüz mü? Cevabınız evet ise, o zaman doğru yere geldiniz.

Bir bilgisayarda kodun nasıl yürütüldüğünü anlamak için, bir bilgisayarı neyin işaretlediğini ve nasıl manipüle edilebileceğini anlamalısınız. İlk olarak, şeylerin yazılım tarafına geçmeden önce bilgisayar donanımının temel fikirlerinden bahsedelim.

İkili Nedir?

Binary, işlemcilerin ve belleğin kodu yürütmek için kullandığı 2 tabanlı bir sayı sistemidir. İkili sayılar yalnızca 1 veya 0 olabilir, bu nedenle adı. Sekiz ikili sayıyı (00000000) gruplandırırsanız, bayt olarak bilinen şeyi elde edersiniz, tek bir ikili sayı (0) ise bit olarak adlandırılır.

Basit Bir Anahtar İkili Sinyalleri Nasıl Üretir?

Makinelerle bilgi işlem yapmakla ilgili mantıklı olan her şey basit geçişle başlar. Basit bir anahtarın iki iletkeni ve bir bağlantı ve bağlantı kesme mekanizması vardır. Her iki iletkeni birbirine bağlamak, iletkenin diğer ucuna bir sinyal üreten akımın akmasına izin verir. Öte yandan, iletkenlerin bağlantısı kesilirse akım akmaz, yani sinyal üretilmez.

instagram viewer

Resim Kredisi: 991joseph/Wikimedia Commons

Bir anahtar yalnızca bir durumda açık veya kapalı olabileceğinden, kare dalga sinyalleri üretmek için kullanılan yüksek ve düşük sinyalleri yapmak için ideal mekanizmayı sağlarlar.

Bir anahtara dokunduğunuzda, bir sinyal veya bir bit veri üretir. Bir akıllı telefondan çekilen normal bir fotoğraf, 40.000.000 bite eşit olan yaklaşık beş Megabayt veri olacaktır. Bu, akıllı telefonunuzdan çekilen bir fotoğraf için yeterli veriyi üretmek için düğmeye on milyonlarca kez basmanız gerektiği anlamına gelir.

Bir anahtarın mekanik sınırlamaları ile mühendisler, herhangi bir hareketli parçası olmayan ve daha yüksek anahtarlama hızları sağlayan bir şeye ihtiyaç duydular.

Anahtar Olarak Kullanılan Transistörler

Transistör Görüntü Kredisi: Evan-Amos/Wikimedia ve Kare Dalga Görüntü Kredisi: Sponk/Wikimedia

Dopingin (silikon gibi yarı iletkenlerin elektriksel iletkenliğini manipüle eden) keşfi sayesinde, mühendisler transistörler olarak bilinen elektrikle kontrol edilen anahtarları yapabildiler. Bu yeni buluş, güç için çok az voltaj gerektiren daha hızlı işlem hızlarına izin verdi ve sonuçta bu transistörlerin bir milyardan fazlasını tek bir modern CPU üzerinde istiflemeyi mümkün kıldı.

CPU Mimarisi Nedir?

Transistörler daha sonra mantık kapıları, yarım toplayıcılar, toplayıcılar, flip floplar, çoklayıcılar, kaydediciler ve CPU'yu işlevsel kılan çeşitli bileşenler yapmak için akıllıca düzenlenir. Bu bileşenlerin istiflenme şekli, CPU mimarisi olarak bilinen şeyi tanımlar.

CPU mimarisi ayrıca bir işlemcinin ISA'sını (Komut Seti Mimarisi) belirler. Bir ISA, bir CPU'nun yerel olarak yürütebileceği yerleşik bir talimat listesine sahiptir. Bu talimatlar daha sonra bir program olarak bilinen şeyi yapmak için bir programlama dili aracılığıyla sırayla karıştırılır. Genellikle, bir CPU'da toplama, çıkarma, taşıma, kaydetme ve yükleme dahil olmak üzere yüzlerce talimat kolayca bulunur.

İşte bir talimat seti örneği:

Komut seti örneği

Bir talimat setindeki her talimatın, işlem kodu olarak bilinen kendi ikili adresi vardır. İşlem kodu, komut setinden hangi işlemin kullanılacağını söyleyen ilk birkaç ikili bit olacaktır.

Montaj-talimat-sözdizimi

İşlem kodunun ardından işlenen gelir. İşlenen, işlem kodunun kullanılacağı değerleri ve adresleri içerir.

Diyagramda 8 bitlik bir talimat gösterilmektedir. Bir CPU 64 bit mimariye sahipse, yönergeler talimat genişliğinde 64 bit'e kadar yayılabilir ve bu da onu daha yetenekli bir işlemci yapar.

İlişkili: RISC ve CISC CPU'ları Nasıl Farklıdır?

montajcı

Artık ikili sinyalleri anladığınıza göre, bilgisayarınızın bu sinyalleri nasıl yorumladığını öğrenebilirsiniz. Makine kodunun nasıl yorumlanacağı, bir montajcıda kullanılan mantığın türüne bağlıdır (kodu çözmek ve uygun ikili koda birleştirmek için kullanılan düşük seviyeli bir program).

Örneğin, derleyicimiz ASCII (Bilgi Değişimi için Amerikan Standart Kodu) standardını kullanıyorsa, montajcımız verilen makine kodunu alır ve tablodaki ASCII ile aynı şekilde yorumlar. altında.

00101001 A 00101111 G 00110101 m 00111011 S 01000001 Y
00101010 B 00110000 H 00110110 n 00111100 T 01000010 Z
00101011 C 00110001 Bence 00110111 0 00111101 sen
00101100 D 00110010 J 00111000 P 00111110 V
00101101 E 00110011 K 00111001 Q 00111111 W
00101110 F 00110100 L 00111010 r 0100000 x

Derleyicimiz ASCII (8 bitlik sürüm) kullandığından, ikili dosyadaki her sekiz ikili sayı bir karakter olarak yorumlanır. Montajcı bu baytı alır ve verilen standartlara göre yorumlar. Örneğin, 01000001 01101001 01010100, "bit" kelimesine çevrilir.

Assembly Dilini Anlamak

Assembly Dili, bir CPU mimarisinin işlem kodlarını ve işlenenlerini doğrudan yöneten, insan tarafından okunabilen düşük seviyeli bir programlama dilidir.

Aşağıda, daha önce gösterilen komut setini kullanan basit bir montaj kodu örneği verilmiştir:

1. LODA #5 
2. LODB #7
3. R3 EKLE
4. STRE M12

Bu kod bloğu, CPU her bir kod satırını birer birer getirene kadar RAM'de saklanır.

CPU Getirme, Kod Çözme ve Yürütme Döngüsü

CPU, kodu Fetch, Decode ve Execute olarak bilinen bir döngü aracılığıyla yürütür. Bu sıra, bir CPU'nun her bir kod satırını nasıl işlediğini gösterir.

Gidip getirmek: CPU içindeki talimat sayacı, CPU'nun daha sonra hangi talimatın yürütüleceğini bilmesini sağlamak için RAM'den bir satır talimat alır.

Kodu çöz: Assembler, insan tarafından okunabilen kod bloğunun kodunu çözecek ve onu bilgisayarın anlaması için uygun biçimde biçimlendirilmiş ikili dosyalar olarak bir araya getirecektir.

1. 00010101 
2. 00100111
3. 00110011
4. 01011100

Uygulamak: Ardından CPU, opcode tarafından belirtilen talimatları sağlanan işlenenlere uygulayarak ikili dosyaları yürütür.

bilgisayar uygulamak aşağıdaki gibi:

  1. İlk kaydı 5 ile yükle
  2. İkinci kaydı 7 ile yükle
  3. 5 + 7 = 12, 12'yi üçüncü register'a kaydet
  4. Üçüncü kaydın değerini RAM adresi M12'ye kaydedin

Bilgisayar başarıyla iki sayıyı birbirine ekledi ve değeri belirtilen RAM adresinde sakladı.

Harika! Artık bir bilgisayarın kodu nasıl çalıştırdığını biliyorsunuz. Ancak, orada bitmiyor.

daha ileri gitmek

Uygun donanım, bir montajcı ve bir montaj dili ile insanlar kodu makul bir kolaylıkla çalıştırabilir. Ancak, hem programlar hem de bilgisayar donanımı daha da karmaşık hale geldikçe, mühendisler ve programcılar programlamayı daha az sıkıcı hale getirmenin ve farklı CPU türleri ile uyumluluğu sağlamanın bir yolunu düşünün mimari. Böylece derleyicilerin ve yorumlayıcıların oluşturulması.

Derleyici ve Yorumlayıcı Nedir?

Derleyici ve yorumlayıcı, kaynak kodu alan çeviri programlarıdır. üst düzey programlama dilleri) ve bunları montajcının daha sonra kodunu çözeceği montaj diline çevirin. ikiliye.

Bir Tercüman bir satır kod alacak ve hemen çalıştıracaktır. Bu genellikle Linux Bash Shell terminali ve Windows PowerShell terminali gibi terminallerde kullanılır. Tek seferlik basit görevleri gerçekleştirmek için harika.

Resim Kredisi: Rlistmedia/Wikimedia Ortak

Buna karşılık, bir derleyici birden fazla kod satırı alacak ve bunları bir program yapmak için derleyecektir. Bu programlara örnek olarak Microsoft Word, Photoshop, Google Chrome, Safari ve Steam verilebilir.

Derleyicilerin ve yorumlayıcıların oluşturulmasıyla birlikte üst düzey programlama dilleri oluşturulmuştur.

Üst Düzey Programlama Dilleri

Üst düzey programlama dilleri, montaj kodundan sonraki herhangi bir dildir. Aşina olabileceğiniz bu dillerden bazıları C, Python, Java ve Swift'dir. Bu programlama dilleri, programlamayı Assembly dilinden daha insan tarafından okunabilir ve daha basit hale getirdi.

Montajda programlamanın Python gibi üst düzey bir programlama diline göre ne kadar zor olduğunu gösteren yan yana bir karşılaştırma:

Her iki kod da "Merhaba Dünya" yazacaktır.

Bu programlama dilleri ile geliştiriciler oyunları, web sitelerini, uygulamaları ve sürücüleri makul sürelerle programlayabilirler.

İlişkili: Python'a karşı Java: 2022 İçin En İyi Dil

Bilgisayarlar Her Türlü Kodu Yürütebilir

Bilgisayar, yalnızca ikili dosyaları okuyabilen bir aygıttır. Bu ikili dosyalar, bir CPU içinde paketlenmiş bir milyardan fazla mikroskobik boyutlu transistör tarafından üretilir. Transistör düzenlemesi, bir CPU'nun işlem kodu kod aracılığıyla çağrıldığında kolayca gerçekleştirebileceği yüzlerce talimat sağlayan bir CPU'nun ISA'sını (Komut Seti Mimarisi) belirler. Geliştiriciler, oyun motorları, web tarayıcıları, uygulamalar ve sürücüler gibi bir programın tamamını oluşturan bu talimatları sırayla karıştırır ve eşleştirir.

Bir CPU, kodu getirme, kod çözme, yürütme döngüsü olarak bilinen bir dizi aracılığıyla yürütür. Bir kod parçası RAM'e yüklendiğinde, CPU içeriğini birer birer getirecek, içeriğin kodlarını derleyici aracılığıyla ikili koda çözecek ve ardından kodu çalıştıracaktır.

Derleyici yalnızca CPU mimarisi için açıkça yapılmış kodu çevirebildiğinden, derleyiciler ve yorumlayıcılar, farklı CPU türleri üzerinde çalışmak için birleştiricinin (bir adaptör gibi) üzerine inşa edilmiştir. mimari. Bir tercüman bir komut alacak ve hemen yürütecektir. Buna karşılık, bir derleyici tüm komutlarınızı alacak ve bunları yeniden kullanılabilir bir programda derleyecektir.

Python, C ve Java gibi üst düzey programlama dilleri, programlamayı daha kolay, daha hızlı ve kullanışlı hale getirmek için oluşturulmuştur. Kullanımı kolay üst düzey programlama dilleri bir derleyici aracılığıyla derlemeye çevrilebildiğinden, programcıların büyük çoğunluğu artık Assembly dilinde kodlama yapmak zorunda değildir.

Umarım artık bilgisayarların temellerini ve kodları nasıl yürüttüklerini daha iyi anlamışsınızdır.

Bilgisayar Nasıl Çalışır ve İçinde Ne Var?

Bu basit bir soru, ancak herkesin zaman zaman düşündüğü bir soru: Önünüzdeki o bilgisayar gerçekte nasıl çalışıyor?

Sonrakini Oku

PaylaşCıvıldamakE-posta
İlgili konular
  • Teknoloji Açıklaması
  • Programlama
  • Bilgisayar İşlemcisi
  • İşleme
Yazar hakkında
Jayric Maning (5 Makale Yayınlandı)

İşlerin nasıl yürüdüğünü öğrenmek için can atan Jayric Maning, gençlik yıllarında her türlü elektronik ve analog cihazla uğraşmaya başladı. Baguio Üniversitesi'nde adli tıp eğitimi aldı ve burada bilgisayar adli tıp ve siber güvenlik ile tanıştı. Şu anda çok sayıda kendi kendine çalışma yapıyor ve nasıl çalıştıklarını ve bunları hayatı kolaylaştırmak (veya en azından daha havalı) için nasıl kullanabileceğimizi bulmak için teknolojiyle uğraşıyor.

Jayric Maning'dan Daha Fazla

Haber bültenimize abone ol

Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!

Abone olmak için buraya tıklayın