Bagaimana kebanyakan ALU dibangun, dan apakah mungkin untuk 'membangun milik Anda sendiri'?

11

Saya BENAR-BENAR benar-benar mencoba belajar tentang tingkat komputer yang sangat rendah. Saya telah melihat banyak halaman homebrew dan cukup banyak untuk diterima. Saya mengambil kelas di bidang teknik elektronik di perguruan tinggi, tetapi kami tidak benar-benar membahas topik ini secara mendalam (itu adalah ilmu komputer, jadi kebanyakan itu sebenarnya algoritma dan semacamnya).

Lagi pula, bagaimana / sebagian besar ALU dibangun? Saya menyadari bahwa itu bukan satu-satunya bagian dari komputer, tetapi tetap merupakan bagian yang penting.

Dan bisakah Anda membangun semacam ALU Anda sendiri hanya menggunakan gerbang logika (untuk tujuan pembelajaran)? Saya mengerti ini mungkin terdengar bodoh bagi mereka yang lebih berpengetahuan, tapi saya hanya mencoba untuk mengerti. (Heck, bahkan penambah sederhana akan menjadi proyek yang rapi.) Jika demikian, bagaimana hal ini dilakukan? Apakah ada contoh perangkat keras? (Saya telah melihat-lihat Google, tetapi saya tidak dapat menemukan apa pun yang memiliki panduan langkah demi langkah menjelaskan hal-hal semacam itu)

Brian Carlton
sumber
1
Anda mungkin tertarik dengan ini .
Dean
6
Berbicara dari dalam tim chip CPU, jika Anda tertarik pada arsitektur komputer dan CPU maka buku kanonik adalah "Organisasi dan Desain Komputer: Antarmuka Perangkat Keras / Perangkat Lunak" diikuti oleh "Arsitektur Komputer: Pendekatan Kuantitatif". Ini disebut sebagai "Patterson dan Hennessy" dan "Hennessy dan Patterson", masing-masing.
Ross Rogers
@Dean - Ya, kabel kode warna adalah untuk banci! :-)
stevenvh
Proyek semester kami di EE360M di UT Austin pada tahun 1994 adalah ALU 4-bit berbasis tumpukan yang diimplementasikan pada papan demo Xilinx dengan XC3000-sesuatu, digunakan sebagai tumpukan 16-tingkat yang mendorong nilai tertinggi ke layar 7-segmen LED , dan XC4000-sesuatu yang merupakan ALU yang sebenarnya. Atur input dan operasi Anda pada DIP switch, tekan tombol dan di sana Anda pergi. XC4k memiliki osilator internal dengan beberapa frekuensi dari 63 kHz hingga 8 MHz, dan nilai kami sebagian didasarkan pada seberapa cepat desain kami dapat berjalan dan masih berfungsi.
Mike DeSimone
1
@Shubham: Setelah saya melihat bahwa saya tahu saya harus menjauh dari Minecraft ... Saya tidak akan melakukan apa-apa lagi ... O_o
Mike DeSimone

Jawaban:

15

Anda dapat membangunnya sepenuhnya dari gerbang logika dasar , dan hasilnya akan menjadi karya seni yang bagus :-).

Seri logika 74xx juga mengandung 74LS181 , 4-bit slice ALU , yang menyederhanakan banyak hal secara drastis. Irisan bit ALU digunakan untuk membangun ALU yang lebih kompleks (baca: panjang kata lebih panjang), tetapi teknologi yang lebih baru telah membuat IC semacam ini menjadi usang.
Catatan: TTL (74xx) hanyalah salah satu teknologi yang digunakan untuk gerbang logika. Jarang digunakan lagi. Itu diikuti oleh Low-Power Schottky: 74LSxx, secara tegas juga merupakan bentuk TTL. Saat ini ada lusinan keluarga logika, semua berdasarkan CMOS kecepatan tinggi (74HCxx, 74HCTxx, 74ACxx, ...)

Saat ini cara yang tepat untuk membuat ALU adalah dengan melakukannya di CPLD atau FPGA . Ini memberi Anda banyak gerbang, dan HDL (Hardware Description Language) yang Anda gunakan untuk mendesain ALU jauh lebih mudah dan lebih sedikit rawan kesalahan daripada mencoba mencari tahu bagaimana membuat koneksi sendiri dengan gerbang logika. VHDL dan Verilog adalah HDL hari ini.

Metode alternatif untuk membuat ALU (tidak menggunakan gerbang logika), adalah EEPROM / Flash paralel tunggal . Anda menggunakan input A dan B dan operasi sebagai input (alamat) dan mendapatkan hasil operasi sebagai output (data). Yang harus Anda lakukan adalah mengkompilasi konten ROM, artinya Anda harus menulis di setiap alamat apa hasil operasi untuk input A, B, dan operasi yang sesuai. Ukuran kata akan dibatasi oleh ukuran ROM terbesar yang dapat Anda temukan.

stevenvh
sumber
5

Anda dapat membangun ALU Anda sendiri, tetapi bahkan komputer lama dengan chip TTL diskrit menggunakan beberapa integrasi untuk itu. Misalnya, lihat chip 74x181. Itu adalah sepotong 4 bit ALU, dan digunakan di beberapa komputer TTL untuk mengimplementasikan ALU lengkap dengan menggunakan salah satu dari chip ini untuk masing-masing 4 bit.

Olin Lathrop
sumber
Maaf kedengarannya bodoh, tetapi seberapa tepatnya chip TTL berbeda dari gerbang Logika? dan apakah TTL digunakan sebelum atau sesudah gerbang logika? atau apakah mereka dibuat dari gerbang logika: confused:
@Sauron - Saya menambahkan catatan pada keluarga logika untuk jawaban saya
stevenvh
5

Saya akan mulai di dunia HDL pertama. Tulis beberapa Verilog, gunakan verilator atau icarus Verilog untuk mensimulasikannya. Tulis kode sedemikian rupa sehingga menyerupai diskrit dan, atau, dan bukan gerbang, lalu jika demikian cenderung menemukan beberapa bagian seri 74xx (daur ulang?) Dan papan tempat memotong sesuatu. ATAU, ada sejumlah $ 50 plus atau minus CPLD dan papan FPGA yang dapat dimiliki dan Anda dapat menempatkan alu di salah satu yang datang dengan semacam antarmuka di luar untuk melihat apakah itu berfungsi. Saya berpendapat bahwa pendidikan HDL adalah sama dengan Anda mempelajari dasar-dasar dari penambah, dll dan menyesuaikan input dan output dan operasi. Tetapi Anda dapat melakukannya di lingkungan yang mudah digunakan dan melihat sebelum membawanya ke perangkat keras. Sangat mirip bagaimana orang melakukannya hari ini, mendesain dan mensimulasikan kemudian menyebarkan.

old_timer
sumber
1
Benar. Simulasikan dulu. Maka jika Anda harus memiliki perangkat keras, FPGA paling praktis. Mengawinkan 74xx TTL untuk sesuatu yang kompleks ini akan menjadi proyek besar yang tidak boleh ditangani sampai desain benar-benar dipikirkan.
Chris Stratton
5

Untuk buku saya pasti yang kedua buku "Patterson dan Hennessy" (IIRC ada 3, menyamar sebagai 3 edisi, tetapi dalam kenyataannya buku yang sama sekali berbeda. Jika Anda serius: dapatkan semuanya.)

Jika Anda ingin bereksperimen dengan ALU dasar atau bahkan desain CPU: mulailah bereksperimen dengan simulator logika. Kami menggunakan DigitalWorks untuk kelas kami, tetapi saya tidak akan merekomendasikannya. Logisim ( http://sourceforge.net/projects/circuit/ ) terlihat menjanjikan. Yang perlu Anda kuasai adalah melapisi: membangun blok dasar seperti full-adder, selector, dan flip flop yang dipicu dari gerbang, lalu membuat register, ALU, mengurutkan logika dari blok-blok bangunan itu, hingga CPU. dengan memori. Ini sebenarnya tidak terlalu sulit untuk dibangun, katakanlah setara dengan CPU PIC (14-bit core), pasang banyak LED dan programkan untuk menampilkan layar Kitt.

Setelah itu akan menyenangkan untuk melakukan core 32-bit, port GCC untuk itu, sadari dalam FPGA dan jalankan Linux di atasnya. Tapi kamu tidak akan menjadi yang pertama ...

Wouter van Ooijen
sumber
4

Itu sama sekali bukan pertanyaan bodoh. The Wikipedia Halaman menunjukkan sirkuit gerbang-tingkat seperti untuk 2-bit ALU. ALU IC biasanya digunakan dalam 'slices' - biasanya 4-bit, yang bisa Anda gunakan untuk mendapatkan lebar bus yang lebih besar (lihat bit-slicing ).

The datasheet untuk Texas 74.181 4-bitslice ALU memiliki tingkat skema gerbang juga.

MikeJ-UK
sumber
4

Kisah CPU adalah salah satu hal yang meningkat jumlah per paket.

CPU paling awal selalu menggunakan ALU serial yang dibangun dari beberapa relay atau tabung vakum. Yang pertama melawan tradisi ini adalah Whirlwind 1947.

CPU transistorized awal membangun semuanya dari transistor individu.

Apollo Guidance Computer (AGM), mungkin komputer pertama yang dibangun dari sirkuit terintegrasi, hanya menggunakan satu jenis IC di luar memori: 3-input NOR gates. ALU dan setiap bagian lain dari CPU dibangun sepenuhnya dari sejumlah besar IC gerbang NOR. The (jauh lebih cepat) Cray 1 juga hanya menggunakan satu jenis IC di luar memori: jenis lain dari gerbang NOR.

Ketika orang menemukan cara menjejalkan lebih banyak transistor pada sebuah chip, kemudian CPU menggunakan (relatif) lebih sedikit chip untuk mengimplementasikan ALU.

ALU dapat dibangun seluruhnya dari multiplexer ( "Multiplexer: Nuke of Logic Design taktis" ), menggunakan banyak chip yang lebih sedikit daripada implementasi NOR.

Dieter Mueller memposting desain ALU 8-bit yang memiliki fungsionalitas lebih dari dua chip 74181 - 74181 tidak dapat bergeser ke kanan - dibangun dari lebih sedikit chip: 14 chip TTL kompleks: dua 74283 4-bit adders, sekitar 4: 1 mux, dan beberapa mux 2: 1.

Seperti banyak komputer komersial yang penting secara historis, banyak CPU buatan sendiri menggunakan beberapa versi 74181, ALU "lengkap" pertama dalam satu chip.

Banyak dari CPU tersebut membangun ALU 8-bit atau 16-bit (atau keduanya) dari beberapa 74181 chip dan beberapa 74182 chip - masing-masing 74181 hanya menangani operasi 4-bit-lebar. Mesin Homebrew biasanya menggunakan hal yang paling sederhana yang akan berhasil - membawa satu 74181 dimasukkan ke carry-in berikutnya, membentuk penambah riak-riak. Mesin komersial yang menggunakan chip 74181 biasanya menggunakan generator pembawa 74182 yang akan membawa penambahan dan pengurangan secara signifikan lebih cepat.

Saat ini sebagian besar ALU tersembunyi di dalam beberapa chip - sebagian kecil dari CPU, beberapa jenis ASIC, atau CPLD atau FPGA.

Bahkan setelah "komputer chip tunggal" tersedia, kadang-kadang seseorang akan membangun ALU yang kompatibel dengan 74181 dari GAL , atau ALU yang hanya menggunakan gerbang logika yang lebih sederhana, atau bahkan transistor atau relay individu, untuk tujuan pembelajaran.

Orang-orang telah melakukannya, oleh karena itu harus mungkin.

Panduan langkah demi langkah yang menjelaskan desain dan implementasi ALU terdengar seperti ide yang sangat bagus. Tolong bantu kami menulis satu di wikibook Desain Microprocess, mungkin bagian "ALU" atau "Wire Wrap" .

davidcary
sumber
2

Secara historis, beberapa pekerjaan ALU dilakukan dengan diskresi (ya, transistor dan semacamnya), dan beberapa dengan gerbang, dan banyak dengan chip 'slice' 4-bit (SN74181 TI adalah yang lebih awal, dan Fairchild 29F01 memiliki zamannya).
Tapi HARI INI, itu masalah membangun persamaan logika dalam gerbang-array atau bahasa deskripsi logika PLA. Ada modul prebuilt yang tersedia secara komersial yang akan memasukkan unit logika kecil yang dipilih ke dalam desain Anda, yang diperlukan hanyalah uang untuk melisensikan 'IP' (kekayaan intelektual).

Whit3rd
sumber
1
Ketika resistor relatif murah dibandingkan dengan resistor, ada sejumlah trik yang dapat memungkinkan untuk membangun ALU dengan jumlah transistor yang sangat rendah (misalnya penambah penuh menggunakan dua transistor per tahap). Sirkuit seperti itu haus daya dan tidak terlalu cepat, tetapi ketika transistor mahal mereka dapat menghemat biaya yang cukup besar.
supercat