İlgili olabilecek en düşük seviyeden başlayacağım (daha düşük seviyeden başlayabilirim, ancak muhtemelen çok da alakasızdırlar), Atom, Elektrik, Transistörler, Mantık Kapıları, Entegre Devreler (Chip / CPU) ) ve Mecliste bitirir (daha yüksek seviyelere aşina olduğunuzu varsayarım).
Başlangıçta
atom
Atom , elektronlardan, protonlardan ve nötrondan oluşan bir yapıdır (kendileri temel parçacıklardan oluşur ). Atomun bilgisayarlar ve elektronikler için en ilginç kısmı elektronlardır çünkü elektron hareketlidir (yani hareket etmeleri daha zor olan proton ve nötronların aksine nispeten kolay hareket edebilir) ve içinde serbestçe dolaşabilirler. bir atom.
Genellikle, her bir atomun eşit sayıda proton ve elektronu vardır, biz buna "nötr" durum diyoruz. Olduğu gibi, bir atomun fazladan elektron kaybetmesi veya kazanması mümkündür. Bu dengesiz durumda atomların sırasıyla "pozitif yüklü" atom (elektronlardan daha fazla proton) ve "negatif yüklü" atom (protondan daha fazla elektron) olduğu söylenir.
Elektronlar yapılamaz ve tahrip edilemez (kuantum mekaniğinde öyle değil, bu bizim amacımızla alakalı değil); eğer bir atom bir elektronu kaybederse, yakındaki bazı diğer atomlar fazladan elektronları almak zorunda kaldı veya elektron serbest elektronu serbest bırakmak zorunda kaldı, aksi halde elektron yapılamaz olduğundan, fazladan elektron elde etmek için, bir atomun yakındaki atomları salıvermesi gerekiyordu. veya serbest bir yüzen elektrondan. Elektronların mekaniği, pozitif yüklü bir atomun yanında negatif yüklü bir atom varsa, o zaman bazı elektronlar her iki atom aynı yüke sahip olana kadar göç edeceklerdir.
Elektrik
Elektrik , çok fazla sayıda negatif yüklü atom bulunan bir bölgeden yalnızca çok sayıda pozitif yüklü atom içeren bir bölgeye bir elektron akışıdır. Bazı kimyasal reaksiyonlar, çok sayıda negatif yüklü atom içeren bir düğümümüz ("anot" olarak adlandırılır) ve çok sayıda pozitif yüklü atom içeren bir düğüm ("katod" olarak adlandırılır) oluşturabilir. Karşılıklı olarak yüklü iki düğümü bir tel ile bağlarsak, anottan katoda elektron kütleleri akacaktır ve bu akış "elektrik akımı" dediğimiz şeydir.
Tüm teller elektronları eşit derecede kolay iletemezler, elektronlar "iletken" malzemelerde "dirençli" malzemelerden daha kolay akarlar. "İletken" bir malzeme düşük elektrik direncine sahiptir (örneğin, kablolardaki bakır teller) ve "dirençli" bir malzemenin elektrik direnci yüksektir (örneğin, kauçuk kablo yalıtımı). Bazı ilginç malzemelere yarı iletkenler (örneğin siliconlar) denir, çünkü dirençlerini kolayca değiştirebilirler, bazı koşullar altında yarı iletken bir iletken gibi davranabilir ve diğer koşullarda bir rezistansa dönüşebilir.
Elektrik her zaman en az dirençli malzemeden geçmeyi tercih eder, bu nedenle bir katod ve anot iki tel ile bağlanırsa, biri çok yüksek dirençli ve diğeri çok düşük dirençli ise, elektronların çoğu düşük dirençli kablodan akacak ve neredeyse hiçbiri yüksek dirençli malzemeden akmaz.
Orta Çağ
Anahtarlar ve Transistörler
Anahtarlar / Parmak arası Terlikler normal ışık anahtarlarınız gibidir, elektrik akışını kesmek ve / veya geri yüklemek için iki kablo parçası arasında bir anahtar yerleştirilebilir. Transistörler, bir elektrik şalterinin fiziksel olarak bağlanması ve ayrılması yerine, bir transistörün, temel düğümde elektrik olup olmadığına bağlı olarak direncini değiştirerek ve daha önce tahmin etmiş olabileceğiniz gibi, elektrik akımını bağlaması / bağlantısını kesmesi dışında tamamen bir ışık anahtarıyla aynı şekilde çalışır. Transistörler yarı iletkenlerden yapılır, çünkü yarı iletkenleri elektrik akımlarını bağlamak veya kesmek için bir direnç veya iletken olarak değiştirebiliriz.
Yaygın bir transistör tipi olan NPN Bipolar Junction Transistörünün (BJT) üç düğümü vardır: "baz", "toplayıcı" ve "yayıcı". Bir NPN BJT'de, elektrik "yayıcı" düğümden "toplayıcı" düğüme yalnızca "taban" düğümü yüklendiğinde akabilir. Temel düğüm şarj edilmediğinde, pratik olarak hiçbir elektron akamaz ve temel düğüm şarj edildiğinde elektronlar verici ve toplayıcı arasında akabilir.
Transistörün davranışı
(Ben çok okumak önermek bu interaktif grafiklerle benden iyi açıklayabilir olarak, devam etmeden önce)
Diyelim ki, üssünde ve kolektöründe bir elektrik kaynağına bağlı bir transistörümüz var ve sonra kolektörünün yakınında bir Çıkış kablosu bağlıyoruz (bkz. Şekil 3, http://www.spsu.edu/cs/faculty/bbrown/web_lectures / transistörler / ).
Ne baz ne de kollektöre elektrik verdiğimizde, konuşacak elektrik olmadığından elektrik akamaz.
B C | E O
0 0 | 0 0
Toplayıcıya elektrik verdiğimizde ancak tabana elektrik uygulayamadığımız zaman, elektrik vericiye akmaz, çünkü taban yüksek dirençli bir malzemedir, bu nedenle elektrik Çıkış kablosuna kaçar:
B C | E O
0 1 | 0 1
Tabana elektrik uygular ancak kollektöre değil, kollektör ile vericinin şarj farkı olmadığından elektrik de akamaz:
B C | E O
1 0 | 0 0
Hem tabana hem de kollektöre elektrik uyguladığımızda, transistörden elektrik akıyor, ancak transistör artık Çıkış telinden daha düşük bir dirence sahip olduğundan, Çıkış telinden neredeyse hiçbir elektrik akımı geçmiyor:
B C | E O
1 1 | 1 O
Mantık kapıları
Bir transistörün (E1) vericisini başka bir transistörün (C2) toplayıcısına bağladığımızda ve sonra ilk transistörün (O) tabanının yakınında bir çıkış bağlarız (bkz. Http: //www.spsu.edu'da Şekil 4). / cs / faculty / bbrown / web_lectures / transistors / ), sonra ilginç bir şey olur. Ayrıca her zaman ilk transistörün (C1) toplayıcısına elektrik uyguladığımızı ve bu yüzden sadece transistörlerin temel düğümleriyle (B1, B2) oynadığımızı varsayalım:
B1 B2 C1 E1/C2 | E2 O
----------------------+----------
0 0 1 0 | 0 1
0 1 1 0 | 0 1
1 0 1 0 | 0 1
1 1 1 1 | 1 0
Masayı özetleyelim ki sadece B1, B2 ve O’yu görelim:
B1 B2 | O
---------+-----
0 0 | 1
0 1 | 1
1 0 | 1
1 1 | 0
Bakın ve görüyorsunuz, eğer Boole Mantığı ve / veya Mantık Kapıları hakkında bilginiz varsa, bunun tam olarak NAND kapısı olduğunu fark etmelisiniz. Ve Boolean Logic ve / veya Logic Gates ile tanışıyorsanız, bir NAND'in (NOR'un da) işlevsel olarak tamamlandığını , yani yalnızca NAND'ın kullanıldığını, diğer tüm mantık kapılarını ve gerçeğin geri kalanını inşa edebileceğinizi de bileceksiniz. tablolar. Başka bir deyişle, tek başına NAND geçitlerini kullanarak bütün bir bilgisayar çipi tasarlayabilirsiniz.
Aslında, çoğu CPU yalnızca NAND kullanılarak tasarlanır (ancak eskiden kullanılır mı?), Ancak NAND, NOR, AND, OR, vb.
Diğer boole işleçlerini NAND'dan türetme
Tüm boolean operatörleri nasıl yapacağımı tarif etmem, sadece NOT ve AND geçidi, gerisini başka bir yerde bulabilirsin.
Bir NAND operatörü verildiğinde, bir NOT geçidi inşa edebiliriz:
Given one input B
O = NAND(B, B)
Output O
Bir NAND ve NOT işleci verildiğinde, bir AND geçidi yapabiliriz:
Given two inputs B1, B2
C = NAND(B1, B2)
O = NOT(C) // or NAND(C,C)
Output O
Benzer bir şekilde diğer mantık kapılarını da yapabiliriz. NAND geçidi işlevsel olarak tamamlandığından , 2'den fazla giriş ve 1'den fazla çıktılı mantık kapıları oluşturmak da mümkün, bu tür mantık kapılarının burada nasıl kurulacağını tartışmayacağım.
Aydınlanma Çağı
Boolean Gates'den bir Turing Makinesi Oluşturmak
Bir CPU, Turing Makinesinin sadece daha karmaşık bir versiyonudur. CPU kayıtları Turing Machine'in dahili durumudur ve RAM bir Turing Machine'in bandıdır.
Bir Turing Makinesi (CPU) üç şey yapabilir:
- Banttan 0 veya 1 oku (RAM’den bir bellek hücresi)
- iç durumunu değiştir (kayıtlarını değiştir)
- sola veya sağa kaydır
- Kasete 0 veya 1 yazın (RAM’e bir bellek hücresine yazın)
Amacımız için, Wolfram'ın 2 durumlu 3 sembol Turing Makinesi'ni birleştirici mantık kullanarak inşa ediyoruz (modern CPU'lar mikro kod kullanır, ancak bunlar bizim amacımız için gerekenden daha karmaşıktır).
Wolfram'ın (2,3) Turing Makinesi durum tablosu aşağıdaki gibidir:
A B
0 P1,R,B P2,L,A
1 P2,L,A P2,R,B
2 P1,L,A P0,R,A
Yukarıdaki durum tablosunu doğruluk tablosu olarak yeniden kodlamak istiyoruz:
Let I1,I2 be the input from the tape reader (0 = (0,0), 1 = (0,1), 2 = (1,0))
Let O1,O2 be the tape writer (symbol encoding same as I1,I2)
Let M be connected to the machine's motor (0 = move left, 1 = move right)
Let R be the machine's internal state (A = 0, B = 1)
(R(t) is the machine's internal state at timestep t, R(t+1) at timestep t+1)
(Note that we used two input and two outputs since this is a 3-symbol Turing machine.)
R 0 1
I1,I2
(0,0) (0,1),1,1 (1,0),0,0
(0,1) (1,0),0,0 (1,0),1,1
(1,0) (0,1),0,0 (0,0),1,0
The truth table for the state table above:
I1 I2 R(t) | O1 O2 M R(t+1)
-------------+--------------------
0 0 0 | 0 1 1 1
0 0 1 | 1 0 0 0
0 1 0 | 1 0 0 0
0 1 1 | 1 0 1 1
1 0 0 | 0 1 0 0
1 0 1 | 0 0 1 0
Gerçekten böyle bir mantık kapısı inşa etmeyeceğim (SE'de nasıl çizileceğinden emin değilim ve muhtemelen oldukça büyük olacak), ancak NAND kapısının işlevsel olarak tamamlandığını bildiğimiz için, bir yolumuz var. Bu doğruluk tablosunu uygulayacak bir seri NAND kapısı bulmak için.
Turing Makinesinin önemli bir özelliği, sadece sabit durum tablosuna sahip bir Turing makinesini kullanarak depolanmış bir bilgisayarı taklit etmenin mümkün olmasıdır . Bu nedenle, herhangi bir Universal Turing Makinesi, talimatlarını dahili durum tablosuna kodlamak zorunda kalmak yerine, programını Teypten (RAM) okuyabilir. Başka bir deyişle, (2,3) Turing Machine, mantık kapısı uygulamasında (donanım olarak) kodlanmış olmak yerine, talimatlarını I1, I2 pinlerinden (yazılım olarak) okuyabilir.
Microcodes
Modern CPU'ların artan karmaşıklığından ötürü, bütün bir CPU'yu tasarlamak için tek başına birleştirme mantığını kullanmak çok zorlaşıyor. Modern CPU, genellikle mikrokod talimatlarının yorumlayıcısı olarak tasarlanmıştır; bir mikro kod, gerçek makine kodunu yorumlamak için CPU tarafından kullanılan CPU'da bulunan küçük bir programdır. Bu mikro kod yorumlayıcısının kendisi genellikle birleşimsel mantık kullanılarak tasarlanmıştır.
Kayıt Ol, Önbellek ve RAM
Yukarıda bir şey unuttuk. Bir şeyi nasıl hatırlıyoruz? Kaseti ve RAM'i nasıl uygularız? Cevap, Kapasitör adı verilen elektronik bir bileşendir. Bir kondansatör şarj edilebilir bir pil gibidir, bir kondansatör şarj edildiğinde ekstra elektronları tutar ve elektronları devreye geri gönderir.
Bir kondansatöre yazmak için, kondansatöre elektronla doldurun (yazma 1) veya kondansatördeki tüm elektronları boşalana kadar boşaltın (yazma 0). Bir kondansatörün değerini okumak için boşaltmaya çalışıyoruz. Eğer deşarj etmeye çalıştığımızda, elektrik akışı olmazsa, o zaman kapasitör boştur (okuma 0), ancak elektrik tespit edersek, o zaman kondansatör şarj edilmelidir (okuma 1). Bir kondansatör okumanın elektron deposunu boşalttığını fark edebilirsiniz, modern RAM'lerde kapasitörün periyodik olarak şarj edilmesi için bir devre vardır, böylece elektrik olduğu sürece hafızalarını koruyabilirler.
Bir CPU'da kullanılan birçok kapasitör tipi vardır, CPU kayıtları ve daha yüksek seviyedeki CPU önbellekleri, aslında transistörlerden yapılmış çok hızlı "kapasitörler" kullanılarak yapılır (bu nedenle okuma / yazma için neredeyse hiçbir "gecikme" yoktur). onlara), bunlar statik RAM (SRAM); Ana bellek RAM'i düşük güç kullanılarak yapılırken, ancak daha yavaş ve daha ucuz kapasitörler kullanılarak bunlara Dinamik RAM (DRAM) denir.
Saat
Bir CPU'nun çok önemli bir bileşeni saattir. Bir saat, işlemi senkronize etmek için düzenli olarak "keneler" yapan bir bileşendir. Bir saat tipik olarak iyi bilinen ve göreceli olarak sabit salınım periyoduna sahip bir kuvars veya başka malzemeler içerir ve saat devresi zaman salımını korumak için bu salınımı korur ve ölçer.
İşlemci işlemleri saat keneleri arasında yapılır ve tüm bileşenlerin senkronize olarak hareket etmesini ve orta hallerde birbirine geçmemesini sağlamak için kenelerdeki okuma / yazma işlemleri yapılır . (2,3) Torna Tezgahımızda, saat keneleri arasındaki elektrik, girişten (I1, I2, R (t)) çıktısını hesaplamak için mantık geçitlerinden geçer; ve de saat keneler, bant yazar banda O1, O2 yazacak, M değerine bağlı olarak hareket edecek, motor ve iç yazmacı R değerinden yazılır (t + 1), daha sonra şerit okuyucu Geçerli bandı okuyacak ve I1, I2'ye yük atacak ve dahili kayıt R (t) 'ye geri dönecektir.
Çevre Birimleriyle Konuşmak
(2,3) Turing Makinesi'nin motoruyla nasıl bir araya geldiğine dikkat edin. Bu, bir CPU'nun isteğe bağlı bir donanım ile nasıl bir araya gelebileceğini çok basitleştirilmiş bir görünümdür. İsteğe bağlı donanım, girişler / çıkışlar için belirli bir kabloyu dinleyebilir veya yazabilir. (2,3) Turing Makinesi için, motorla olan arayüzü, motora saat yönünde veya saat yönünün tersine dönmesini söyleyen tek bir teldir.
Ne bu makinede söylenmemiş bırakılır Motorlu Makine'nin iç "saat" başlamasını ve yayınının durdurulmasını bilmek ile eşzamanlı çalışan başka bir "saat" olması gerektiğini, bu nedenle bu bir örneğidir eşzamanlı veri iletimi . Yaygın olarak kullanılan diğer bir alternatif olan asenkron iletim, CPU ve asenkron cihaz arasındaki senkronizasyon noktalarını iletmek için kesme hattı adı verilen başka bir kablo kullanır.
Dijital yaş
Makine kodu ve montaj
Assembly dili, makine kodları için okunabilir bir anımsatıcıdır. En basit durumda, montaj ile makine kodu arasında bire bir eşleme vardır; Her ne kadar modern montaj dillerinde bazı talimatlar çoklu kodlara eşlenebilir.
Programlama dili
Hepimiz buna aşinayız değil mi?
Phew, nihayet bitti, bütün bunları sadece 4 saatte yazdım, bu yüzden bir yerde bir yanlışlık olduğundan eminim (öncelikle bir programcıyım, elektrik mühendisi veya fizikçi değilim, bu yüzden kesinlikle yanlış olan birkaç şey olabilir). Lütfen bir hata bulursanız, temsilciniz varsa veya tamamlayıcı bir cevap oluşturduysanız, bir @yell vermekten çekinmeyin veya kendiniz düzeltin.