Laman » bagaimana untuk » HTG Menjelaskan Bagaimana CPU berfungsi Sebenarnya?

    HTG Menjelaskan Bagaimana CPU berfungsi Sebenarnya?

    Kebanyakan perkara dalam komputer agak mudah difahami: RAM, penyimpanan, peralatan, dan perisian semuanya berfungsi bersama untuk membuat fungsi komputer. Tetapi hati sistem anda, CPU, kelihatan seperti sihir walaupun kepada banyak orang teknologi. Di sini, kami akan melakukan yang terbaik untuk memecahkannya.

    Kebanyakan kajian untuk artikel ini berasal dari "Tetapi Bagaimana Ia Tahu?" Oleh J. Clark Scott. Ia adalah satu pembacaan yang hebat, masuk ke jauh lebih mendalam daripada artikel ini, dan bernilai beberapa dolar di Amazon.

    Satu nota sebelum kita mulakan: CPU moden adalah pesanan magnitud yang lebih rumit daripada apa yang kita huraikan di sini. Ia hampir mustahil bagi seseorang untuk memahami setiap nuansa cip dengan lebih satu bilion transistor. Walau bagaimanapun, prinsip-prinsip asas bagaimana ia sepadan bersama tetap sama, dan memahami asas-asas akan memberi anda pemahaman yang lebih baik tentang sistem moden.

    Bermula Kecil

    Komputer beroperasi dalam binari. Mereka hanya memahami dua negeri: on dan off. Untuk melakukan pengiraan dalam binari, mereka menggunakan apa yang disebut sebagai transistor. Transistor hanya membenarkan arus sumber mengalir melalui saliran jika terdapat arus di seberang pintu. Pada dasarnya, ini membentuk suis binari, yang memotong dawai bergantung pada isyarat input kedua.

    Komputer moden menggunakan berbilion transistor untuk melakukan pengiraan, tetapi pada tahap yang paling rendah, anda hanya perlu segelintir untuk membentuk komponen yang paling asas, yang dikenali sebagai gerbang.

    Logik Gates

    Tumpukan beberapa transistor dengan betul, dan anda mempunyai apa yang dikenali sebagai pintu masuk logik. Pintu logik mengambil dua input binari, melakukan operasi ke atasnya, dan mengembalikan output. Gerbang ATAU, contohnya, mengembalikan benar jika salah satu masukan adalah benar. Pintu AND memeriksa jika kedua-dua input adalah benar, pemeriksaan XOR jika hanya salah satu daripada input yang benar, dan varian N (NOR, NAND, dan XNOR) adalah terbalik versi pintu asas mereka.

    Melakukan Matematik Dengan Gerbang

    Dengan hanya dua pintu, anda boleh melakukan tambahan binari asas. Rajah ini di atas menunjukkan setengah penambah, dicipta menggunakan Logicly, taman permainan dalam talian percuma untuk pintu logik. Pintu XOR di sini akan dihidupkan jika hanya satu input yang dihidupkan, tetapi tidak keduanya. Gerbang DAN akan menghidupkan jika kedua-dua input berada, tetapi teruskan jika tiada input. Oleh itu, jika kedua-duanya berada, XOR akan kekal, dan pintu gerbang AND seterusnya akan datang kepada jawapan yang betul dua:

    Ini memberikan kita persediaan mudah dengan tiga output yang berbeza: sifar, satu, dan dua. Tetapi satu bit tidak dapat menyimpan sesuatu yang lebih tinggi daripada 1, dan mesin ini tidak terlalu berguna kerana ia hanya menyelesaikan salah satu masalah matematik yang paling mudah yang mungkin. Tetapi ini hanya setengah penambah, dan jika anda menyambungkan dua daripadanya dengan input lain, anda akan mendapat penambah penuh:

    Penambah penuh mempunyai tiga input-dua nombor untuk ditambah, dan "bawa." Bawa digunakan apabila nombor akhir melebihi apa yang dapat disimpan dalam satu bit. Penambah penuh akan dihubungkan dalam rantaian, dan bawa itu diluluskan dari satu penambah ke seterusnya. Bawa ini ditambah kepada hasil pintu XOR pada penambah separuh pertama, dan ada pintu ATAU tambahan untuk mengendalikan kedua-dua kes apabila itu perlu dilakukan.

    Apabila kedua-dua input dihidupkan, pengalih menghidupkan, dan menghantarnya ke penambah penuh berikutnya dalam rantai:

    Dan ini adalah lebih rumit kerana penambahan. Berpindah ke bit lebih pada dasarnya hanya bermakna penambah penuh dalam rantai yang lebih lama.

    Kebanyakan operasi matematik lain boleh dilakukan dengan tambahan; pendaraban hanya ditambah lagi, pengurangan boleh dilakukan dengan beberapa penyongsangan sedikit yang mewah, dan pembahagian hanya diulang penolakan. Dan sementara semua komputer moden mempunyai penyelesaian berasaskan perkakasan untuk mempercepat operasi yang lebih rumit, secara teknikal boleh melakukan semuanya dengan penambah penuh.

    Bas dan Memori

    Sekarang, komputer kita tidak lebih daripada kalkulator yang buruk. Ini kerana ia tidak dapat mengingati apa-apa, dan tidak melakukan apa-apa dengan outputnya. Ditunjukkan di atas adalah sel memori, yang boleh melakukan semua itu. Di bawah tudung, ia menggunakan banyak pintu NAND, dan dalam kehidupan sebenar boleh agak berbeza bergantung pada teknik penyimpanan, tetapi fungsinya sama. Anda memberikan beberapa input, menghidupkan bit 'tulis', dan ia akan menyimpan input di dalam sel. Ini bukan sekadar sel memori, kerana kita juga memerlukan cara untuk membaca maklumat daripadanya. Ini dilakukan dengan enabler, yang merupakan koleksi AND gate bagi setiap bit dalam ingatan, semua terikat pada input lain, "baca" sedikit. Bit menulis dan baca sering dipanggil "set" dan "membolehkan" juga.

    Pakej keseluruhan ini dibungkus ke dalam apa yang dikenali sebagai daftar. Daftar ini dihubungkan dengan bas, yang merupakan satu rangkaian kabel yang berjalan di seluruh sistem, disambungkan ke setiap komponen. Malah komputer moden mempunyai bas, walaupun mereka mungkin mempunyai beberapa bas untuk meningkatkan prestasi multitasking.

    Setiap daftar masih mempunyai sedikit menulis dan baca, tetapi dalam persediaan ini, input dan output adalah perkara yang sama. Ini sebenarnya baik. Sebagai contoh. Jika anda mahu menyalin kandungan R1 ke R2, anda akan menghidupkan bit baca untuk R1, yang akan mendorong kandungan R1 ke dalam bas. Sedang bit baca sedang aktif, anda akan menghidupkan bit tulis untuk R2, yang akan menyalin kandungan bas ke R2.

    Daftar digunakan untuk membuat RAM juga. RAM sering diletakkan dalam grid, dengan wayar masuk dalam dua arah:

    Decoder mengambil input binari dan menghidupkan wayar bernombor yang bersamaan. Sebagai contoh, "11" adalah 3 dalam binari, nombor 2 bit tertinggi, jadi penyahkod akan menghidupkan wayar tertinggi. Di setiap persimpangan, terdapat daftar. Semua ini disambungkan ke bas tengah, dan ke pusat menulis dan membaca input. Kedua-dua bacaan dan input input hanya akan dihidupkan jika kedua-dua wayar menyeberangi daftar juga aktif, dengan berkesan membolehkan anda memilih daftar yang hendak ditulis dan dibaca. Sekali lagi, RAM moden jauh lebih rumit, tetapi persediaan ini masih berfungsi.

    Jam, Stepper, dan Decoder

    Pendaftaran digunakan di mana-mana dan merupakan alat asas untuk memindahkan data dan menyimpan maklumat dalam CPU. Jadi apa yang memberitahu mereka untuk bergerak perkara di sekeliling?

    Jam adalah komponen pertama dalam inti CPU dan akan dimatikan dan pada selang yang ditetapkan, diukur dalam hertz, atau kitaran sesaat. Inilah kelajuan yang anda lihat yang diiklankan bersama CPU; cip 5 GHz boleh melakukan 5 bilion kitaran sesaat. Kelajuan jam sering metrik yang sangat baik untuk berapa cepat CPU.

    Jam mempunyai tiga keadaan berbeza: jam asas, jam membolehkan, dan jam yang ditetapkan. Jam asas akan dihidupkan untuk setengah kitaran, dan off untuk setengah yang lain. Jam menghidupkan digunakan untuk menghidupkan daftar dan perlu lebih lama untuk memastikan data didayakan. Jam set sentiasa perlu pada waktu yang sama dengan dayakan jam, atau data yang salah boleh ditulis.

    Jam disambungkan ke stepper, yang akan dikira dari satu ke langkah maksimal, dan menetapkan semula dirinya semula kepada satu ketika ia selesai. Jam juga disambungkan ke AND gate untuk setiap register yang CPU boleh menulis ke:

    Pintu dan gerbang ini juga dihubungkan dengan output komponen lain, dekoder arahan. Decoder arahan mengambil arahan seperti "SET R2 TO R1" dan mendekodkannya menjadi sesuatu yang dapat difahami oleh CPU. Ia mempunyai daftar dalaman sendiri, yang disebut "Daftar Arahan," yang mana operasi semasa disimpan. Betapa tepatnya ini datang ke sistem yang anda jalankan, tetapi sebaiknya ia diod, ia akan menghidupkan set yang betul dan membolehkan bit untuk pendaftaran yang betul, yang akan mematikan mengikut jam.

    Arahan program disimpan dalam RAM (atau cache L1 pada sistem moden, lebih dekat dengan CPU). Oleh kerana data program disimpan dalam daftar, sama seperti pembolehubah lain, ia dapat dimanipulasi dengan cepat untuk melompat di sekitar program. Ini adalah bagaimana program mendapatkan struktur mereka, dengan gelung dan jika pernyataan. Arahan melompat menetapkan lokasi semasa dalam ingatan bahawa pembacanya arahan membaca dari ke lokasi lain.

    Bagaimana Ia Semua Bersama

    Kini, oversimplification kasar kami bagaimana kerja CPU selesai. Bas utama merangkumi seluruh sistem dan menghubungkan ke semua daftar. Penambah penuh, bersama dengan sekumpulan operasi lain, dimasukkan ke Unit Logika Aritmetik, atau ALU. ALU ini akan mempunyai sambungan ke bas, dan juga akan mempunyai daftar sendiri untuk menyimpan nombor kedua yang beroperasi.

    Untuk melakukan pengiraan, data program dimuat dari sistem RAM ke bahagian kawalan. Bahagian kawalan membaca dua nombor dari RAM, memuat yang pertama ke dalam daftar arahan ALU, dan kemudian beban yang kedua ke bus. Sementara itu, ia menghantar ALU suatu kod arahan yang memberitahu apa yang perlu dilakukan. ALU kemudian melakukan semua perhitungan dan menyimpan hasilnya dalam daftar yang berbeza, yang dapat dibaca CPU dan kemudian meneruskan proses.

    Kredit Imej: Rost9 / Shutterstock