HTG Bir İşlemciyi Aslında Nasıl Çalışır?
Bir bilgisayardaki çoğu şeyin anlaşılması oldukça kolaydır: RAM, depolama, çevre birimleri ve yazılım bir bilgisayarın çalışması için birlikte çalışır. Ancak sisteminizin kalbi, CPU, birçok teknoloji insanına bile sihir gibi görünüyor. Burada, bozmak için elimizden geleni yapacağız..
Bu makale için yapılan araştırmaların çoğu J. Clark Scott tarafından “Ancak Nasıl Biliyor?” Yazıyor. Harika bir okuma, bu makalenin çok daha derinine gidiyor ve Amazon'daki çift paraya değer..
Başlamadan önce bir not: Modern CPU'lar, burada ana hatlarıyla anlattığımızdan daha karmaşık büyüklükteki emirlerdir. Bir kişinin bir çipin her bir nüansını milyarlarca transistörle anlaması neredeyse imkansız. Bununla birlikte, hepsinin nasıl bir araya geldiğinin temel ilkeleri aynı kalır ve temelleri anlamak size modern sistemleri daha iyi anlamanızı sağlayacaktır..
Küçük Başlangıç
Bilgisayarlar ikili olarak çalışır. Sadece iki durumu anlarlar: açık ve kapalı. Hesaplamaları ikili olarak yapmak için transistör denilen şeyi kullanırlar. Transistör, geçit boyunca akım varsa kaynak akımın yalnızca kanalizasyona akmasına izin verir. Temel olarak, bu bir ikinci giriş sinyaline bağlı olarak kabloyu kesen bir ikili anahtar oluşturur..
Modern bilgisayarlar hesaplamaları yapmak için milyarlarca transistör kullanır, ancak en düşük seviyelerde, kapılar olarak bilinen en temel bileşenleri oluşturmak için sadece bir avuç yeterlidir..
Mantık kapıları
Birkaç transistörü düzgün şekilde istifleyin ve mantık geçidi olarak bilinen şeye sahip olun. Lojik kapılar iki ikili giriş alır, üzerinde bir işlem gerçekleştirir ve bir çıktı döndürür. Örneğin OR geçidi, girişlerden herhangi biri doğruysa true değerini döndürür. AND geçidi, her iki girişin de doğru olup olmadığını kontrol eder, XOR, girişlerden yalnızca birinin doğru olup olmadığını kontrol eder ve N varyantları (NOR, NAND ve XNOR), taban kapılarının ters çevrilmiş versiyonlarıdır..
Gates ile Matematik Yapmak
Sadece iki kapı ile temel ikili ekleme yapabilirsiniz. Yukarıdaki şemada, mantık kapıları için ücretsiz bir çevrimiçi oyun alanı olan Logicly kullanılarak oluşturulan yarım bir toplayıcı gösterilmektedir. Buradaki XOR geçidi, girişlerden yalnızca biri açıksa açılacaktır, ancak ikisi birden açılmayacaktır. Her iki giriş açıksa, VE geçidi açılır, ancak giriş yoksa kapalı kalın. Eğer her ikisi de açıksa, XOR uzak durur ve AND geçidi açılır ve ikisinin doğru cevabına gelir:
Bu bize üç farklı çıktı ile basit bir kurulum sağlar: sıfır, bir ve iki. Ancak bir bit 1'den daha yüksek hiçbir şeyi depolayamaz ve bu makine mümkün olan en basit matematik problemlerinden sadece birini çözdüğü için çok kullanışlı değildir. Ancak bu sadece yarı bir toplayıcıdır ve ikisini başka bir girdiye bağlarsanız tam bir toplayıcı elde edersiniz:
Tam toplayıcının üç girişi vardır; eklenecek iki sayı ve bir “taşıma”. Taşıma, son sayı tek bir bitte depolanabilecek değeri aştığında kullanılır. Tam ekleyiciler bir zincir halinde bağlanacaktır ve taşıma bir toplayıcıdan diğerine geçirilir. Taşıyıcı, ilk yarı toplayıcıdaki XOR geçidinin sonucuna eklenir ve bu durumda olması gereken her iki durumda da ele alınması gereken fazladan bir OR geçidi vardır..
Her iki giriş açıkken, taşıma açılır ve bunu zincirdeki bir sonraki tam toplayıcıya gönderir:
Ve bu, eklemenin aldığı kadar karmaşık. Daha fazla bit taşımak, aslında sadece uzun bir zincirde daha fazla tam toplayıcı anlamına gelir.
Diğer matematik işlemlerinin çoğu ekleme ile yapılabilir; çarpma, sadece tekrarlanan toplama işlemidir, çıkarma, bazı süslü bit inversiyonu ile yapılabilir ve bölme, sadece tekrarlanan çıkarma işlemidir. Tüm modern bilgisayarlarda daha karmaşık işlemleri hızlandırmak için donanım tabanlı çözümler bulunurken, teknik olarak hepsini tam toplayıcı ile yapabilirsiniz.
Otobüs ve Bellek
Şu anda, bilgisayarımız kötü bir hesap makinesinden başka bir şey değil. Bunun nedeni hiçbir şeyi hatırlayamaması ve çıktılarıyla hiçbir şey yapmamasıdır. Yukarıda gösterilenler hepsini yapabilen bir hafıza hücresidir. Kaputun altında, çok sayıda NAND geçidi kullanıyor ve gerçek hayatta depolama tekniğine bağlı olarak oldukça farklı olabilir, ancak işlevi aynı. Bazı girişler verirsiniz, 'yazma' bitini açın ve girişleri hücre içinde saklar. Bu sadece bir hafıza hücresi değil, ayrıca ondan bilgi okumak için bir yola ihtiyacımız var. Bu, bellekteki her bir bit için AND geçitleri topluluğu olan bir etkinleştirici ile yapılır, hepsi başka bir girişe, “okunan” bit'e bağlıdır. Yazma ve okuma bitlerine genellikle "set" ve "enable" ("etkin") de denir..
Bu paketin tamamı sicil olarak bilinen şeye sarılıyor. Bu kayıtlar, tüm sistemde çalışan ve her bileşene bağlı bir kablo demeti olan bus'a bağlanır. Modern bilgisayarların bile bir veri yolu var, ancak çoklu görev performansını artırmak için birden çok veri yolu da olabilir..
Her yazıcının hala bir yazma ve okuma biti vardır, ancak bu kurulumda giriş ve çıkış aynı şeydir. Bu aslında iyi. Örneğin. Eğer R1'in içeriklerini R2'ye kopyalamak isteseydiniz, R1'in okuma bitini R1'in içeriğini veri yolunun üzerine itecek şekilde açacaktınız. Okuma biti açıkken, veri yolu içeriğini R2'ye kopyalayacak olan R2 için yazma bitini açarsınız.
Kayıtlar RAM yapmak için de kullanılır. RAM, genellikle kablolar iki yöne giden bir ızgaraya yerleştirilir:
Kod çözücüler ikili giriş alır ve karşılık gelen numaralı kabloyu açar. Örneğin, “11” ikili, 3, en yüksek 2 bitlik sayıdır, bu nedenle dekoder en yüksek kabloyu açar. Her kesişme noktasında bir kayıt var. Bunların hepsi merkezi veriyoluna ve merkezi bir yazma ve okuma girişine bağlanır. Hem okuma hem de yazma girişi, yalnızca yazmaçtan geçen iki tel de açıksa açılacaktır, yazacağınız ve okuyacağınız yazmacıyı seçmenize izin verecektir. Yine, modern RAM çok daha karmaşık, ancak bu kurulum hala çalışıyor.
Saat, Stepper ve Kod Çözücü
Kayıtlar her yerde kullanılır ve verileri dolaşıp CPU'da bilgi depolamak için temel araçtır. Peki onlara şeyleri hareket ettirmelerini söyleyen ne?
Saat, CPU'nun çekirdeğindeki ilk bileşendir ve hertz cinsinden ölçülen veya saniyedeki devirleri kapatıp açacaktır. İşlemcilerin yanında reklamını gördüğünüz hız budur; 5 GHz'lik bir çip, saniyede 5 milyar döngü gerçekleştirebilir. Saat hızı genellikle bir CPU'nun ne kadar hızlı olduğu için çok iyi bir ölçümdür.
Saatin üç farklı durumu vardır: ana saat, etkinleştirme saati ve ayarlanan saat. Baz saat, yarım devir için açık ve diğer yarısı için kapalı olacaktır. Etkinleştirme saati, kayıtları açmak için kullanılır ve verilerin etkinleştirildiğinden emin olmak için daha uzun süre açık olması gerekir. Ayarlanan saatin daima etkin olan saatle aynı anda açık olması gerekir, aksi takdirde yanlış veriler yazılabilir..
Saat, bir adımdan maksimuma kadar sayılacak ve bitince kendini bir taneye sıfırlayacak olan kademeye bağlanır. Saat ayrıca, CPU'nun yazabileceği her bir kayıt cihazı için AND geçitlerine de bağlıdır:
Bu AND geçitleri, komut çözücüsü olan başka bir bileşenin çıktısına da bağlanır. Komut kodu çözücüsü “SET R2 TO R1” gibi bir komut alır ve onu CPU'nun anlayabileceği bir şeye dönüştürür. Mevcut işlemin depolandığı “Talimat Kayıt Defteri” olarak adlandırılan kendi iç kayıt defteri vardır. Bu tam olarak nasıl çalıştığınıza bağlı olarak çalışıyor, ancak bir kez deşifre edildikten sonra doğru seti açacak ve saate göre ateşlenecek doğru kayıtlar için bitleri etkinleştirecek.
Program talimatları RAM'de (veya CPU'ya yakın, modern sistemlerde L1 önbellek) saklanır. Program verileri kayıtlarda saklandığından, diğer tüm değişkenler gibi, programın etrafında atlamak için anında değiştirilebilir. Programların kendi yapıları, döngüleri ve if ifadeleri ile bu şekilde olur. Bir atlama komutu, mevcut kodu, talimat kod çözücüsünün farklı bir yere okuduğu hafızada ayarlar..
Her şey nasıl bir araya geliyor
Şimdi, bir CPU'nun nasıl çalıştığını gösteren brüt basitleştirmemiz. Ana veri yolu tüm sistemi kapsar ve tüm kayıtlara bağlanır. Tam ilave ediciler, bir sürü başka işlemle birlikte, Aritmetik Mantık Birimi veya ALU içine paketlenir. Bu ALU’nun otobüse bağlantıları olacak ve üzerinde çalıştığı ikinci numarayı depolamak için kendi kayıt defterlerine de sahip olacak.
Bir hesaplama yapmak için, program verileri sistem RAM'inden kontrol bölümüne yüklenir. Kontrol bölümü RAM'den iki sayı okur, birincisini ALU'nun talimat defterine yükler ve ardından ikincisini veri yoluna yükler. Bu arada, ALU'ya ne yapması gerektiğini söyleyen bir talimat kodu gönderir. ALU daha sonra tüm hesaplamaları yapar ve sonucu CPU'nun okuyabileceği farklı bir kayıt defterinde saklar ve işleme devam eder..
Resim Kredisi: Rost9 / Shutterstock