Seorang insinyur Inggris membangun prosesor diskrit 500 kg. Tahapan kerja dan wawancara dengan pencipta

Megaprocessor adalah prosesor 16-bit dengan empat register tujuan umum. Panel terpisah berisi diagram untuk berbagai keperluan, termasuk memori, unit aritmatika, input / output, dan lainnya. Sistem ini menggunakan unit ALU 16-bit dan penambah 16-bit. Megaprocessor dilengkapi dengan 10.000 LED, yang berkedip yang menunjukkan setiap tahap proses perhitungan, menunjukkan arah pergerakan data sesuai dengan skema. Kapasitas memori adalah 256 byte. Blok memori termasuk 27.000 transistor. Jumlah total transistor dalam sistem melebihi 40 ribu. Massa prosesor adalah 500 kg. Prosesor beroperasi pada frekuensi 20 kilohertz.



Mengapa semua ini dibuat? Penulis proyek, seorang insinyur elektronik dari Inggris, James Newman, ingin memahami cara kerja prosesor modern. Dia memutuskan bahwa cara terbaik untuk mendapatkan jumlah maksimum informasi tentang prinsip-prinsip pengoperasian transistor dan prosesor adalah dengan membuat prosesor sendiri. Menurutnya, proses belajar menjadi tidak terkendali, dan berubah menjadi pekerjaan sehari-hari.

“Komputer itu buram. Melihat mereka, orang tidak dapat memahami cara kerjanya. Yang ingin saya lakukan adalah memanjat ke dalam dan memahami apa yang sedang terjadi. Masalahnya adalah ini tidak dapat dilakukan dengan prosesor berukuran reguler. Tetapi kita dapat membangun prosesor besar dengan tangan kita sendiri - dan kemudian akan menjadi jelas apa yang terjadi di dalam. Untuk menampilkan aliran data, ada baiknya menambahkan LED, yang dilakukan, ”kata James Newman. Sekarang Megaprocessor dapat ditonton secara real time, dan siapa pun dapat memahami elemen apa yang terdiri dari prosesor dan bagaimana setiap unit bekerja.

Megaprocessor menempati sebagian besar ruang tamu di rumah insinyur, menyebabkannya mengalami ketidaknyamanan tertentu.

Untuk menunjukkan kemampuan komputasi prosesor, insinyur memutuskan untuk memilih game tetris. Elemen permainan ditampilkan pada layar LED besar dengan resolusi 32 * 64 LED. Selama permainan dalam waktu nyata, semua yang terjadi di dalam prosesor terlihat.

"Komputer Anda mungkin jutaan kali lebih cepat daripada sistem yang saya buat, tetapi jauh lebih menarik ... Saya tidak berpikir saya bisa menjual proyek saya, tetapi saya ingin Megaprocessor disajikan sebagai pameran di museum atau lembaga pendidikan "Kata Newman.

Perakitan sistem


Megaprocessor terdiri dari sejumlah besar elemen yang dirakit dalam blok. Blok terpisah ditempatkan di atas dudukan. Ketinggian dudukan adalah 2 meter. Lebar - dari 1,2 hingga 1,6 meter. Di setiap dudukan, sejumlah kecil modul dipasang - dari 2 hingga 4. Dudukan berfungsi sebagai tempat untuk meletakkan modul dan perlindungannya. Setiap modul melakukan serangkaian fungsi tertentu. Misalnya, ada modul ALU, dekoder, dan lainnya. Modul terdiri dari papan individual.

Berdiri


Bingkai terbuat dari aluminium yang diekstrusi. Di semua tribun terdapat deskripsi terperinci tentang fungsi yang dilakukan oleh unit komputasi tertentu. Berikut ini adalah blok register tujuan khusus:



Frame memiliki saluran untuk kabel listrik. Baterai ditutupi dengan perlindungan logam sehingga tidak ada yang bergerak seandainya dudukan dipindahkan:


Blok koneksi dipasang di sisi dudukan.



Setiap dudukan memiliki papan servis, yang dipasang di sisi kanan bawah.


Setiap papan layanan memiliki dua fungsi. Yang pertama adalah menghubungkan dan memonitor saluran listrik. Yang kedua adalah menyediakan akses ke terminal daya. Ada 7 stand dalam sistem.

Modul



Megaprocessor dibagi menjadi beberapa modul. Berikut ini adalah modul dari otomat kontrol:


Di sini Anda dapat melihat set papan yang menerapkan logika untuk subsistem tertentu. Papan dirangkai dalam sebuah sirkuit yang menunjukkan apa yang terhubung dengan apa dan bagaimana. Sirkuit dicetak pada karton yang direkatkan ke kayu lapis untuk memberikan kekakuan pada seluruh struktur. Semua kabel penghubung dibawa kembali agar tidak merusak tampilan modul. Awalnya, kabel ada di depan, tetapi tidak terlihat terlalu cantik.



Agar tidak membingungkan apa pun, ada juga daftar seluruh skema di belakang.



Menghubungkan semua elemen dengan kabel membutuhkan waktu yang sangat lama.



Biaya



Sejak awal, saya memutuskan bahwa PCB akan digunakan dalam proyek. Tanpa mereka, mustahil untuk menciptakan sesuatu yang rumit, karena hanya koneksi dalam sistem lebih dari 100.000. Sebagian besar dana proyek jatuh ke tangan dewan. Awalnya, saya ingin membuat papan besar, tetapi ternyata menjadi sangat sulit, jadi kemudian saya memutuskan untuk membagi semuanya menjadi papan kecil, yang dilakukan. Untuk desain, saya menggunakan CadSoft Eagle.



Papan lainnya dapat dilihat di sini .

Periksa


Pemeriksaan dilakukan terus-menerus, pada setiap tahap proyek:
  • Setiap papan diuji sebelum pemasangan dalam modul;
  • Setiap modul diuji setelah pekerjaan selesai;
  • Setiap dudukan diuji setelah menyelesaikan pemasangan modul;
  • Setelah menghubungkan setiap dudukan baru, seluruh sistem diuji.


Untuk memverifikasi pengoperasian papan, modul, dan dudukan, peralatan dari BlueChip Technologies digunakan.







Komponen keuangan


Secara total, Newman menghabiskan sekitar 40.000 pound. Pada tingkat saat ini (setelah referendum tentang penarikan dari Uni Eropa, pound turun 30% terhadap dolar) ini adalah $ 53071.

Biaya berbagai elemen struktural:

Elektronik£ 19.000
Biaya£ 14.000
Aluminium£ 3,500
Alat-alatnya£ 2.000
Ukiran£ 900
Mewarnai dan Mencetak£ 900
Pengencang, kayu lapis, dll.£ 500


Biaya komponen elektronik:

Transistor£ 2000
Kabel£ 1800
Konektor£ 5.000
Chips (untuk debugging)£ 850
Resistor£ 370
Nutrisi£ 800
LED£ 1300
Solder£ 370
"Sisanya adalah besi"£ 1100



Statistik umum

Beberapa statistik:
Transistor42.400
Resistor50.500
LED10.500
Konektor770
Terminal Kontak7,700
Kontak yang Disolder272.300
Berat solder4,25 kg
Berat timbal2,5 kg
Kawat tunggal
1.500 m
Kabel pita 20 pin420 m
Total panjang konduktor9,9 km



Papan yang digunakan dalam proyek

Jenis papanTransistor
pada masing-masing
LED
pada masing-masing
jumlah yang
 digunakan
total
transistor
total
led
2AND5372360216
3dan741812672
4dan9554525
2OR5354270162
3OR7434238136
4OR9523207115
5OR1161617696
8OR179610254
Xor7353515
2x2 AND_OR14947658423
2x3 AND_OR1811712677
4x2 AND_OR261716416272
8x2 AND_OR50339450297
1BUF22285656
4BUF8854040
4dec197815256
16DEC82217574147
2x16MUX118523354156
4x16MUX241932048201860
16REG2263381808264
8ADD30218751510935
8LOGIC1581263474378
SPLIT BUS161611919041904
BUS SPLIT (tanpa LED)00900
3x2 DIGIT (7 segmen)00800
4 DIGIT (7 )001100
16 DIGIT (7 )00200
BUS 2 BUS004000
2 TEE001700
4 TEE001500
BYTE_2_WORD001300
SHIFT37348296272
8B RAM7666432245122048
4 MEM MUX25240102520400
2 MEM MUX14124114124



:4237010500



Transistor yang dipasang dengan tidak benar.

Untuk memudahkan tugasnya, Newman membuat papan sirkuit kecil dengan penunjukan elemen maksimum. Di setiap papan, nilai resistor dan metode pemasangan transistor ditunjukkan.



Semuanya sederhana. Tetapi ada kesalahan dalam proses - sekitar selusin transistor, James diinstal dengan tidak benar. Dan untuk menemukan mereka adalah tugas yang sulit, mengingat jumlah elemen-elemen ini dalam proyek. Coba lakukan sendiri. Pada foto di bawah ini, ada papan di mana salah satu transistor tidak dipasang dengan benar.



Penulis proyek menghabiskan waktu berjam-jam untuk menemukan masalahnya. Seringkali ia memeriksa transistor yang salah dipasang beberapa kali tanpa memperhatikannya.

Konektor

Menghubungkan dengan konektor adalah tugas yang sederhana. Tetapi jika ada sekitar 500 senyawa seperti itu, ada kemungkinan kesalahan tinggi. Dan James salah beberapa kali.

Kabel miring



Pada foto Anda dapat langsung melihat masalahnya - kabel miring, dan beberapa kontak tidak digunakan. Tetapi untuk mendeteksi kesalahan seperti itu dalam massa kabel dan koneksi sangat sulit. Newman berpikir bahwa masalahnya ada di salah satu modul, dan menghabiskan banyak waktu memeriksa modul. Tetapi saya harus memeriksa kabelnya.

Gigi melengkung

Ada juga jenis koneksi seperti IDC (Insulation Displacement Connector). Sebuah kabel dimasukkan di antara gigi-gigi tajam yang insulasi menembus selama pemasangan dan kabel terhubung ke gigi. Semuanya sederhana. Dalam satu kasus, "gigi" kontak membungkuk dan menyentuh yang tetangga, menutup sirkuit. Menemukan masalah sangat sulit.



Dan satu lagi masalah yang sifatnya serupa. Hanya dalam kasus ini, "gigi" yang bengkok tidak memberikan kontak yang tepat dengan kawat.



Kabel

Pemasangan kabel patch yang salah adalah masalah lain. Selain itu, itu paling sering terdeteksi setelah menghubungkan kabel tersebut ke modul atau dudukan individual. James terkadang keliru dalam memposisikan konektor pada kabel. Secara alami, sirkuit tidak bekerja. Dan lagi, jam pencarian berlanjut, lonceng sirkuit, verifikasi elemen. Foto menunjukkan kabel berkerut yang benar dengan konektor dan kabel masalah (di atas).



Dan di sini ada alasan umum lainnya untuk sirkuit yang rusak - kabel yang belum terpasang yang tidak memberikan kontak yang tepat. Penutupan



kontak

Hubungan pendek ke perumahan

Ada dua papan, salah satunya tidak berfungsi sebagaimana mestinya. Ternyata, alasannya adalah bahwa James merusak papan dengan obeng dan menguncinya ke pengencang, dan yang satu - ke seluruh dudukan. Hampir tidak mungkin untuk memperhatikan ini dengan mata telanjang.



Solder

Kadang-kadang, selama penyolderan, muncul masalah karakteristik - korslet kontak dengan jembatan dari solder. Dalam foto gambar diperbesar beberapa kali. Sangat sulit untuk melihat penurunan seperti itu - Anda perlu memeriksa secara rinci semua elemen di papan tulis.



James adalah seorang insinyur wilayah dengan profesi, dan ia telah menyolder sejak masa kecilnya. Pada foto di atas, alasannya adalah setetes timah di sirkuit. Itu adalah kasus yang terisolasi sepanjang waktu, tetapi ada banyak keributan dengannya - tidak mudah untuk menemukan solder yang salah. Awalnya James mulai memeriksa semua koneksi papan dan baru kemudian memutuskan untuk memeriksa tempat penyolderan.

Masalah serupa lainnya, ditemukan hanya dengan kaca pembesar - jembatan yang dibentuk oleh solder memiliki ketebalan rambut manusia.



Dan menyolder,

dan di sini James, entah kenapa, lupa menyolder kontak. Serangkaian kaki transistor ternyata "telanjang", tidak melekat pada apa pun. Masalah ini dengan cepat ditemukan dan diselesaikan.



Cacat transistor

Ini adalah salah satu masalah paling serius. Ada ribuan transistor dalam rangkaian. Dan kegagalan hanya satu transistor gagal berarti Megaprocessor yang tidak berfungsi. Untuk menghindari masalah, James memeriksa setiap transistor sebelum menyolder. Kemudian - setelah menyolder. Lalu - semua transistor di sirkuit. Dan ternyata beberapa papan tidak bekerja, dan yang salah adalah transistor yang rusak. Penyebab kerusakan biasanya adalah pelepasan muatan listrik statis. Transistor tipe 2N7000 sangat sensitif terhadap tipe paparan ini.

Apalagi jika dewan bekerja kemarin, hari ini tidak bisa lagi bekerja. Mengapa Alasannya tidak biasa. Ini ... penyedot debu bernama Henry.



James Newman berpikir bahwa transistor rusak ketika kekuatan beberapa rangkaian dinyalakan. Setelah memeriksa ternyata tidak demikian. Dan hanya setelah berjam-jam upaya sia-sia untuk menemukan sumber statis, ia ingat bahwa ia menerima sengatan listrik kecil, menyentuh penyedot debu. Dan dengan penyedot debu ini, ia membersihkan beberapa dudukan setelah siap, benar-benar lupa tentang masalah apa yang mungkin terjadi dengan penyedot debu (khususnya, membersihkan komputer dan laptop dengan pembersih non-penyedot debu - banyak produsen PC memperingatkan tentang ini). Akibatnya, Henry pergi membersihkan karpet, dudukannya dibersihkan dengan tangan. Dan transistor berhenti gagal.

Masalah lainnya

Ada sejumlah besar dari mereka. Newman bekerja di proyek selama lima tahun, dan tentu saja, sesuatu terjadi hampir setiap hari. Kesalahan, kegagalan fungsi teknis, hubungan pendek, pemodelan salah, dan banyak lagi - ini hanya sebagian kecil dari masalah. Tidak mungkin untuk menggambarkan semua ini dalam satu artikel. Lebih baik membaca apa yang James sendiri tulis tentang masalah selama implementasi proyek.

Wawancara dengan James Newman



Saya tidak bisa hanya menulis tentang proyek megah ini tanpa mengajukan beberapa pertanyaan kepada penulis. James segera setuju untuk berbicara sedikit tentang proyeknya untuk pembaca Geektimes.

Bagaimana Anda mendapatkan ide untuk membuat proyek ini?

Itu terjadi lima tahun lalu. Gagasan muncul di bawah pengaruh dua faktor. Saya melakukan percobaan dengan transistor untuk memahami secara detail bagaimana mereka bekerja. Selain itu, di tempat kerja saya, rekan-rekan mulai membahas kemungkinan membangun sistem komputer dari sirkuit logika diskrit. Dan saya ingin membuat komputer bukan dari sirkuit mikro terpisah, tetapi dari transistor diskrit. Saya ingin membuat sistem di mana seseorang yang bisa menonton bagaimana semua ini bisa cocok. Seperti apa bentuknya?

Berapa banyak waktu yang telah berlalu antara ide dan awal proyek?

Tidak terlalu banyak. Saya mulai melakukan pekerjaan persiapan untuk implementasi seluruh proyek menciptakan sistem komputer dengan segera. Sekitar satu tahun dihabiskan untuk pekerjaan dan eksperimen ini.

Dan seberapa besar perbedaan antara rencana awal dan durasi aktual proyek?

Sepertinya saya bisa mewujudkan ide saya dalam setahun. Tetapi proyek ini memakan waktu hampir lima tahun. Ini terjadi karena sudah mulai bertindak, saya memutuskan untuk membangun sesuatu yang lebih muluk daripada yang saya rencanakan.

Apa yang bisa Anda sebutkan masalah besar atau kecil yang terjadi selama bekerja? Yang mana dari mereka yang kritis?

Masalah utama yang berhenti bekerja untuk sementara waktu adalah pengembangan multiplexer. Untuk beberapa waktu saya bekerja untuk menyelesaikan masalah efek dioda parasit, yang relevan untuk transistor MOS . Menyingkirkan dioda ini sarat dengan kesulitan teknologi yang signifikan, sehingga mereka belajar untuk bertahan dengan itu dan bahkan menggunakannya dalam solusi sirkuit. - Ed. ). Sebagai hasilnya, saya mengembangkan papan yang memperbaiki masalah, tetapi mereka lebih besar dari yang saya harapkan.

Masalah lain adalah kompleksitas membuat rak, desainnya terlalu rumit. Saya tidak memiliki imajinasi spasial yang baik.

Selain itu, saya harus terus-menerus menyelesaikan masalah kecil, hanya ada sejumlah besar dari mereka selama proses desain dan selama implementasi rencana yang direncanakan.

Jika Anda tahu tentang semua masalah ini, apakah Anda akan mengerjakan suatu proyek?

Saya curiga bahwa hal seperti ini akan terjadi. Itu tidak akan menghentikan saya. Awalnya, saya hanya ingin tahu cara kerja semuanya. Tetapi jika saya tahu seberapa besar prosesornya, dan berapa banyak uang yang masuk ke proyek, saya tidak akan melakukannya. Megaprosesor terlalu besar untuk rumah saya, dan saya ingin mencari rumah lain untuk itu.

Apakah Anda memiliki pemikiran untuk menghentikan pekerjaan selama proyek berlangsung?

Ada beberapa kasus ketika antusiasme saya habis, yang berarti perlambatan. Pada saat yang sama, saya tidak membiarkan diri saya rileks sepenuhnya. Setiap hari dalam kasus-kasus seperti itu, saya memaksakan diri untuk melakukan sesuatu, tidak peduli betapa pentingnya tugas ini. Saya berkata pada diri sendiri: "Kamu bisa makan gajah, kamu hanya perlu menggigit sepotong demi sepotong."

Proyek Anda menjadi sangat terkenal. Apakah ada penawaran komersial? Mungkin Anda sudah memutuskan untuk memberikan Megaprocessor ke beberapa museum atau universitas?

Tidak ada penawaran komersial! Saya tidak berpikir bahwa saya dapat memulihkan uang yang dihabiskan, dan ini tidak pernah tujuannya. Saya ingin memberikan Megaprocessor ke museum atau organisasi serupa lainnya. Negosiasi sudah berlangsung.

Apakah sistem memerlukan perawatan khusus?

Tidak, tidak ada yang diperlukan. Hanya kehati-hatian yang dibutuhkan. Ini terutama berlaku untuk listrik statis - muatan kecil dapat merusak sesuatu.

Bagaimana Anda memasukkan data ke dalam sistem?

Saat ini saya menggunakan versi Venom Arcade Stick yang dimodifikasi. Pada awalnya, saya berencana untuk menggunakan antarmuka serial yang memungkinkan saya untuk menggunakan PC. Saya mengembangkan, membuat antarmuka, tetapi belum mengujinya.

Berapa konsumsi daya sistem?

Saya pikir sekitar 300 watt. Sebagian besar beralih ke LED.

Apakah ada yang merusak sistem setelah Megaprocessor siap?

Satu-satunya masalah yang saya temui adalah sistem yang lebih lambat dari yang direncanakan. Ternyata, alasannya adalah resistor pull-up nominal yang salah dipilih. Itu perlu untuk memilih resistor dengan nilai nominal tidak 10k, tetapi hanya 470. Hal lain bukanlah masalah, tetapi keinginan saya. Saya ingin memberikan kemampuan untuk mengatur kecerahan tampilan. Tapi sekarang sudah terlambat untuk memikirkannya.

Megaprocessor memiliki banyak bagian puluhan ribu. Apa kemungkinan bahwa semuanya akan bekerja tanpa kerusakan dari waktu ke waktu?

Pertanyaan yang sangat bagus Dan menakutkan. Saya pikir jika Anda tidak memindahkan atau menyentuh komponen elektronik dari keseluruhan sistem, semuanya akan baik-baik saja. Tetapi masalahnya adalah Megaprocessor terletak di ruang tamu saya, dan saya harus memindahkan dudukannya. Setiap kali saya melakukan ini, ada kemungkinan kerusakan pada koneksi. Probabilitasnya kecil. Mungkin 10%. Sabtu lalu, saya menemukan kerusakan pada salah satu papan. Ada masalah saat memindahkan dudukan sebelumnya. Oleh karena itu, saya menghitung bahwa sekali dari sepuluh, kerusakan terjadi selama pergerakan tribun. Jika saya memasukkan semuanya ke dalam mobil dan menginstal sistem di rumah baru, saya yakin saya akan mendapatkan beberapa kesalahan fungsi. Sekitar sepuluh.

Apakah Anda punya ide untuk proyek baru?

Hal pertama yang harus saya lakukan adalah merapikan rumah dan kebun. Mereka ditinggalkan selama beberapa tahun. Setelah itu, saya akan melihat apa lagi yang harus dilakukan.

Apa yang dapat Anda beri tahu kepada orang-orang yang berencana melakukan hal serupa?

Saran praktis: ketika mengerjakan proyek sebesar ini, Anda harus memiliki gagasan yang jelas tentang apa yang Anda lakukan. Anda harus menjadi seorang profesional di bidang Anda dan menjadi profesional di setiap langkah. Saat mengembangkan sesuatu, Anda harus yakin bahwa semua elemen yang dibuat akan kompatibel satu sama lain pada tahap perakitan.

Tip abstrak: memulai itu mudah, sulit untuk diselesaikan. Mengapa Anda ingin melakukan ini? Segera setelah Anda mulai melakukan sesuatu, Anda kemudian akan menyadari bahwa ini dapat dilakukan dengan lebih baik, dan Anda akan mulai melakukan langkah ini lagi. Dan lagi dan lagi. Dua tahun yang lalu, saya menyadari bahwa jika saya mengulang semuanya, saya tidak akan menyelesaikan apa pun. Dan saya memutuskan untuk berhenti di panggung dengan penilaian "tidak buruk", karena tahap ini dalam banyak kasus sesuai dengan rencana. Saya tahu bahwa ada banyak kesalahan dalam proyek dan banyak hal yang bisa dilakukan dengan lebih baik. Tapi saya masih menyelesaikan proyek saya, dan saya senang.

Source: https://habr.com/ru/post/id395919/


All Articles