Bu kolay bir cevabı olmayan geniş bir sorudur; Bakır teller boyunca kaybolan elektronlardan Firefox'ta bir web sitesi oluşturmak için çok uzun bir yol. Size alttan üste bir genel bakış vermeye ve sizi aramak için doğru şeylere işaret etmeye çalışacağım.
Kodlama Numaraları
01
Ayrıca sayıları ikili olarak kodlamanın birden fazla yolu olduğunu unutmayın. İlk işlemcinizi kurduktan sonra, işleri belli şekillerde yapmanın avantajlarını fark edersiniz. Popüler örnekler, iki tamamlayıcı ve IEEE yüzerleridir . Başlangıç olarak, kendinizi düz doğal sayılarla sınırlandırın.
kapıları
İkili kodlama kullandığımızı varsayalım. İlkokulda nasıl ekleyeceğinizi düşünün ve aynı sayıyı ikili sayılar için yazın. Görünüşe göre, Boole cebirinin yapı taşları zaten sizin için orada; mantık geçitlerini kullanarak basit bir toplayıcı (ve diğer aritmetik fonksiyonlar) oluşturmak kolaydır .
Bu kapıların nasıl inşa edileceği bilgisayar bilimi kapsamı dışındadır; Elektrik mühendisliği , örneğin tüpler veya transistörler kullanarak çok sayıda çözüm sağlamıştır . Bununla ilgili sorularınız için Elektrik Mühendisliği Yığın Borsasına gidin .
Saat ve devlet
Tüm kapılar eşit derecede hızlı değildir ve bir hesaplamanın tüm bölümlerinde aynı sayıda kapı yoktur. Bu nedenle, bireysel operasyonların birbirini sollamamasına özen göstermeliyiz. Küresel bir saat kullanmak yararlı oldu ; Belirli bir kapı ağının sonucu, devrin sonundaki çıkış tellerinin durumudur (kapılar kendi bireysel son durumlarına doğru basarken çılgınca değişebilir).
Bu, bir döngü sonuçlarının, örneğin döngü bağlarsanız, bir sonraki döngü başlamadan önce saklanması gerekebileceği anlamına gelir. Değişen etki için kullanabileceğiniz birkaç temel unsur vardır, hepsi kapılardan oluşur; bazılarına parmak arası terlik denir . Bunlar, kayıtları oluşturmak için de kullanılır , gereken sayıda saat döngüsü için sayıları saklayan öğeler.
Mimarlık ve Komutlar
Şimdi yapacak çok sayıda tasarım seçeneğiniz var. İşlemciniz hangi aritmetik işlemleri sağlıyor? Komutların neye benziyor? Diğer tasarımlara göre erken formları kolay olan MIPS mimarisine bakmak eğitici olabilir . Planlara bir göz atın :
Http://ube.ege.edu.tr/~erciyes/CENG311 adresinden orijinal
Temel olarak, komutları, bir dizi kayıt, bir ALU ve kontrolün getirilmesi ve sökülmesidir . Komutlar, hangi ALU işleminin hangi işleçlerde (tutuldukları kayıt sayısına göre), program sayacının ² nasıl işleneceğini ya da belleğe / belleğe yüklenmek / depolamak için nasıl kayıt yapılacağını gerçekleştirmek üzere kodlar.
Diğer Hususlar
Şimdiye kadar, modern anlamda çalışan bir işlemciniz var, bir hafızanın nasıl oluşturulacağını ve onu komutları beslemenin bir yolunu bulduğunuzu varsayarsınız. Modern bir makineye giderken, birçok seçim yapılması gerekiyor. İşte bazıları:
Alternatifler
Yukarıdakiler, tarihin nasıl ortaya çıktığından büyük ölçüde etkilenmiştir. Farklı zihinlere sahip farklı bir dünyada, bilgisayarlar farklı şekilde çalışabilir. Aslında, çoğu durumda gerçek makineler için soyutlama olarak faydalı olmasını sağlayan avantajları olan birçok hesaplama modeli vardır . Beyinlerimizin çalışma şeklini, sinirsel hesaplamayı mümkün kılmak veya daha genel olarak en belirgin şekilde DNA ve kuantum hesaplamak için doğada gözlemlenen problem çözme ve bilgi saklama stratejilerinden yararlanmak için taklit etme girişimleri vardır .
Öyleyse belki (umarım?) Yukarıdaki bilgiler bundan böyle 50 ya da 100 yıl önceki tüm antik tarihlerdir.
- Bugün bilgisayarlarla yaptığımız tüm süslü şeyler, işlemcinin tek tek yürüttüğü birçok küçük aritmetik işlere bölünüyor.
- Modeliniz programın kontrol akışını değiştirmesine izin veriyorsa, bu işlemcinin bir sonraki talimatı aldığı hafıza adresi olacaktır. Ayrıca, yalnızca belirli bir talimat setini, örneğin bir kasetten okuyan makineleri de düşünebilirsiniz. Aslında, erken uygulamalar bunu yaptı. Hiçbir sıçrama, hiçbir döngü anlamına gelmez; bir program verilere bağlı olarak tamamen açılmış / açılmış bir dizi talimattı. Açıkçası, aynı programı çoklu giriş verileri için kullanabilmek daha güçlü.
- Hafızanın olduğunu varsayarsak; İşlemciniz sorunsuz çalışıyor ancak bir kerede yalnızca bu kadar çok değerle başa çıkabiliyor. İlk bilgisayarlar tüm verilerini bantlardan okudular ve kayıtlara koydular. Bugün bildiğimiz kadarıyla yazılabilir, kalıcı bir depolama alanı bırakmadan, hiçbir bellek yoktu.