Memetakan prosesor ke diagram sirkuit

11

Saya adalah seorang pengembang perangkat lunak (menggunakan bahasa tingkat tinggi seperti .NET, C, C ++ dll) mencoba memahami bagaimana komputer bekerja pada tingkat yang lebih rendah.

Saya kenal dengan diagram ini:

Saya mencoba untuk mendapatkan wawasan tingkat tinggi tentang bagaimana diagram di tautan memetakan ke diagram sirkuit seperti ini:

Misalnya, lihat pernyataan bahasa majelis:

ADD 1,2

Saya mencoba memahami bagaimana prosesor menghasilkan '3' sebagai output. Saya menyadari bahwa pertanyaan ini mungkin sulit dijawab dengan istilah sederhana. Jika ya, maka tautan akan membantu, mungkin ke sebuah buku.

w0051977
sumber
Dengan mengacu pada diagram pertama yang Anda posting, detail yang Anda butuhkan dari aritmatika aktual semuanya tersembunyi di blok besar berlabel "ALU": setiap blok lain pada diagram itu hanya ada untuk mendapatkan 1,2 dan "menambahkan" ke dalam ALU dan hasilnya keluar lagi. Mengetahui hal itu, Anda dapat mulai membaca cara kerja ALU, jika itu yang Anda tanyakan ..
Brian Drummond
5
Diagram pertama Anda memetakan ke CPU Z80 pada diagram kedua.
starblue

Jawaban:

7

Masalahnya adalah bahwa untuk memahami bagaimana komputer mencapai 1 + 2 = 3 Anda harus memahami tentang 2 level lebih dalam daripada yang Anda alami.

Secara kasar komputer diorganisasikan (dalam hal bidang studi) seperti ini dari tingkat abstraksi tertinggi hingga realitas paling fisik:

  1. Aplikasi perangkat lunak
  2. Mesin virtual
  3. Sistem operasi
  4. BIOS
  5. Sistem Tertanam
  6. Blok IP (Sub-unit / Periferal)
  7. Blok logis
  8. Tingkat Gerbang
  9. Tingkat Transistor
  10. Semikoduktor
  11. Fisika Perangkat

Untuk memahami mengapa komputer dapat menghasilkan 2 + 1 = 3, Anda harus terlebih dahulu memutuskan apa yang ingin Anda terima "berdasarkan keyakinan" dan apa yang tidak akan Anda percayai sampai Anda menginternalisasikannya. Sepotong informasi itu akan berada di tingkat dua di bawah hal yang Anda pahami. Jadi, jika Anda ingin memahami rangkaian penambah pada level logis, Anda perlu memahami dasar-dasar transistor "digital" (khususnya CMOS).

Menggunakan situs Anda sebelumnya sebagai contoh, pertimbangkan sumber ini . Ini membahas "Full Adder" - sirkuit tujuan umum minimum yang mampu ditambah / dikurangi termasuk carry-in dan carry-out.

Anda juga perlu memahami bagaimana angka direpresentasikan dalam komplemen 2's (sistem angka yang digunakan pada komputer modern untuk aritmatika integer).

Jika Anda benar-benar menginginkan kursus pengantar kelas dunia, saya tidak bisa merekomendasikan Profesor Scott Wills di Georgia Tech dengan sangat baik. Dia meninggal tahun lalu karena kanker, tetapi jalannya tetap hidup . Kelas Georgia Tech ECE2030 (pengantar teknik komputer) memiliki buku teks dan semua latihan online.

Semoga berhasil!

DrFriedParts
sumber
Terima kasih untuk ini. +1. Saya adalah pengembang .NET, meskipun saya memiliki pengalaman dengan C dan C ++. Saya mengerti bahwa C # dikompilasi ke Bahasa Perantara dan kompiler JIT menargetkan arsitektur komputer dengan mengkompilasi kode IL dengan cepat. Saya mencoba memahami bagaimana mikrokontroler dapat menerima operan dan opcode dan menghasilkan output. Saya berpengetahuan (tingkat GCSE) tentang komponen elektronik seperti: Transistor, Kapasitor dll.
w0051977
... maka saya akan mulai dengan "Beralih Desain" di Bacaan dan maju dalam pelajaran dari sana.
DrFriedParts
Daftar topik Anda berhasil memasukkan beberapa yang tidak relevan dengan pertanyaan, sambil melewatkan yang paling relevan.
Chris Stratton
@ Chris - Tidak, tidak.
DrFriedParts
3

Saya harus belajar hal yang sama di universitas, dan kami menggunakan buku Computer Organisation and Design yang sangat detail (tapi mungkin terlalu detail untuk kebutuhan Anda).

Patterson dan Hennesy menggunakan beberapa prosesor MIPS "sederhana" dan menunjukkan seluruh fungsi CPU dengan beberapa kode sampel di Assembler.

Secara umum, saya pikir itu akan menjadi ide bagus untuk mengambil beberapa prosesor "sederhana" (Arduino atau lebih) dan mencoba untuk memahami fungsinya, karena perbedaan dari yang lebih kompleks lebih pada seberapa besar kode instruksi yang diterapkan.

PS Mungkin mikroprosesor dasar dari Google Code akan sangat membantu. Ini adalah mikroprosesor yang disimulasikan di Jawa.

Thomas Fischer
sumber
2

Buku gratis Bagaimana Komputer Bekerja - Prosesor dan Memori Utama oleh Roger Young akan menjawab pertanyaan Anda, ia menggunakan relay bukannya transistor untuk pemahaman yang lebih baik.

rvnd_kk
sumber
2
Sementara buku itu memang terlihat bermanfaat, sunting jawaban untuk memasukkan judul lengkap dan informasi penulis. Dengan begitu jika tautannya pernah berubah, masih mungkin untuk melacaknya di masa mendatang.
PeterJ
Ini terlihat seperti apa yang saya cari saat itu. +1. Saya akan melihat dan kemudian kembali.
w0051977
-1

Saya menemukan jawaban saya di sini . Ini adalah ikhtisar tingkat tinggi dari proses penambahan angka.

w0051977
sumber
4
Akan lebih bermanfaat bagi pembaca di masa mendatang jika Anda meringkas materi dalam jawabannya. Hanya dengan memberikan tautan ke sumber daya eksternal tidak menambah banyak ke EE.SE.
The Photon
Harap perhatikan apa yang dikatakan @ThePhoton di sini. Meskipun video youtube itu dapat membantu Anda, dapatkah Anda meringkas apa yang Anda pelajari sehingga jika tautan video itu putus ini masih merupakan jawaban?
Kortuk