Satu Pada tahun 1974, Hewlett-Packard mengembangkan mikroprosesor untuk mengontrol berbagai fungsi pada produknya, dari drive floppy disk hingga voltmeter. Prosesor sederhana ini tidak memenuhi mikroprosesor standar - bahkan tidak mendukung penambahan atau pengurangan - sehingga disebut "prosesor nano". Fitur utama Nanoprocessor adalah biaya rendah dan kecepatan kerja yang tinggi: dibandingkan dengan Motorola 6800 modern seharga $ 360, Nanoprocessor berharga $ 15, dan operasi kontrolnya jauh lebih cepat.
Meskipun tidak memiliki operasi penambahan, Nanoprocessor dapat (perlahan) menambahkan angka dengan menambah atau mengurangi berulang kali (operasi yang didukungnya). Dalam kasus lain, misalnya, dengan voltmeter dari Hewlett-Packard, chip ALU (74LS181) ditambahkan ke produk, yang digunakan sebagai tambahan cepat - mereka diakses sebagai perangkat I / O. Secara alami, menjadi Turing yang lengkap, Nanoprocessor secara teoritis dapat melakukan segalanya mulai dari menghitung fungsi floating point hingga meluncurkan game Crysis; itu hanya akan sangat lambat.
Photomask prosesor dapat diunduh di sini (122 MB PSD).
HP Nanoprocessor, 1820-1691. , -2,5 , โ . , .
Dalam beberapa dekade berikutnya, prosesor tetap tidak dikenal sampai saat ini pengembangnya, Larry Bauer, berbagi foto dan dokumentasi untuk chip tersebut dengan CPU Shack. Di sana mereka memindai photomasks dan menulis artikel tentang Nanoprocessor. Setelah Antoine Berkovichi menjahit gambar menjadi satu, saya menulis ulasan tentang Nanoprocessor berdasarkan itu . Ini adalah bagian kedua dari artikel dimana saya membahas beberapa detail dari rangkaian Nanoprocessor saat melakukan reverse engineering berdasarkan photomasks. Blok fungsional Nanoprocessor menarik untuk dipelajari, karena ia melewati implementasi minimal dari fungsi yang diperlukan, sambil tetap menjadi mikroprosesor yang berguna.
Di dalam Nanoprocessor
Seperti kebanyakan prosesor dari era itu, Nanoprocessor adalah 8-bit. Namun, itu tidak mendukung memori akses acak, dan kode dijalankan dari ROM 2KB eksternal. Ini memiliki 16 register 8-bit - lebih dari kebanyakan prosesor dan cukup untuk menutupi kekurangan memori untuk banyak aplikasi. Nanoprocessor memiliki 48 instruksi - jauh lebih sedikit dari 72 instruksi untuk Motorola 6800. Namun, Nanoprocessor memiliki seperangkat bit set yang praktis, operasi yang jelas dan periksa yang tidak dimiliki oleh prosesor lain pada waktu itu. Ini juga memiliki beberapa perintah I / O yang mendukung port I / O dan pin I / O tujuan umum, sehingga mudah untuk mengontrol perangkat lain dengannya.
Nanoprocessor tidak memiliki instruksi untuk mendukung penanganan memori, karena dirancang untuk operasi yang tidak memerlukan penyimpanan data. Namun, dalam beberapa aplikasi, Nanoprocessor menggunakan RAM sebagai perangkat I / O. Sebuah alamat dikirim ke salah satu port I / O, dan satu byte data dibaca dari yang lain. Nanoprocessor menggabungkan photomasks (dapat diklik) Dari gambar photomask di atas, kita dapat menyimpulkan bahwa Nanoprocessor sederhana. Garis biru adalah konduktor logam di atas chip, garis hijau adalah silikon dengan kotoran. Kotak hitam di sekeliling - 40 bantalan untuk komunikasi dengan kontak eksternal IC. Area hitam kecil di dalamnya adalah transistor. Jika Anda melihat lebih dekat, Anda dapat menghitung 4.639 jumlahnya.
Jika kita memperhitungkan bahwa decoder instruksi terdiri dari pasangan transistor kecil, yang dilakukan untuk kenyamanan pengaturan komponen, dan menghitung pasangan ini sebagai satu, maka kita mendapatkan 3829 transistor. Dari jumlah tersebut, 1061 adalah pull-up, dan 2668 aktif. Sebagai perbandingan, 6502 memiliki 4.237 transistor, 3.218 di antaranya aktif. 8008 memiliki 3500 transistor, sedangkan Motorola 6800 memiliki 4100.
Diagram blok di bawah ini menunjukkan struktur internal dari Nanoprocessor. Di tengah ada 16 register induk. Pembanding memungkinkan Anda membandingkan dua nilai untuk menyediakan percabangan bersyarat. Unit logika kontrol berhubungan dengan operasi increment, decrement, shift, dan bit dari akumulator. Ia tidak memiliki operasi aritmatika dan logika dari ALU standar. Penghitung program (kanan) mengambil instruksi dari register instruksi (kiri); interupsi dan panggilan subrutin memiliki tumpukan satu item sendiri untuk menyimpan alamat pengembalian.
Diagram alir kerja dari instruksi untuk Nanoprocessor
Izinkan saya menekankan bahwa, meskipun kesederhanaan dan kurangnya operasi aritmatika, Nanoprocessor bukanlah sejenis prosesor "mainan" yang mengganti jalur kontrol. Ini adalah prosesor yang cepat dan kuat yang digunakan untuk melakukan operasi yang kompleks. Misalnya, modul jam waktu nyata HP 98035 menggunakan Nanoprocessor untuk memproses dua lusin string kontrol ASCII yang berbeda, serta untuk menghitung jumlah hari dalam sebulan.
Proyek yang menarik untuk bersenang-senang adalah pembuatan Nanoprocessor versi FPGA - karena Nanoprocessor mungkin adalah versi paling sederhana dari prosesor komersial yang sebenarnya. Instruksi untuk itu menjelaskan semua perintah dan memberikan contoh kode yang dapat Anda jalankan.
Mendaftar
Foto kristal di bawah ini menunjukkan bahwa bagian penting dari Nanoprocessor ditempati oleh 16 registernya. Mereka berkomunikasi dengan komponen lainnya melalui bus data. Rantai di atas memilih register tertentu. Daftarkan R0, di sebelah kanan, di sebelah pembanding.
Bagian penting dari Nanoprocessor digunakan oleh 16 registernya.
Blok penyusun register adalah dua inverter dalam loop umpan balik, menyimpan satu bit seperti yang ditunjukkan di bawah ini. Jika konduktor atas 0, inverter kanan akan mengeluarkan 1 ke konduktor bawah, kemudian inverter kiri akan mengeluarkan 0 ke konduktor atas, menyelesaikan siklus. Sirkuit tetap stabil dengan "mengingat" 0. Dengan cara yang sama, jika konduktor atas adalah 1, konduktor itu dibalik menjadi 0 di bagian bawah, dan kembali ke 1 di atas. Net dapat menyimpan 0 atau 1 dengan cara ini, membentuk lokasi memori 1-bit.
Dua inverter dalam rangkaian penyimpanan bit yang stabil
Diagram di bawah menunjukkan bagaimana dua penyimpanan inverter ini diterapkan pada sebuah chip. Lokasi fisik komponen ditampilkan di sebelah kiri, berdasarkan photomask. Tata letak dioptimalkan sehingga sel menggunakan ruang sesedikit mungkin. Garis biru - lapisan logam, hijau - silikon. Di tengah, diagram sirkuit yang sesuai dengan transistor ditampilkan. Setiap inverter terdiri dari sepasang transistor seperti yang ditunjukkan di sebelah kanan. Transistor di bagian atas dan bawah - "melalui", mereka menyediakan akses ke sel penyimpanan.
Menyimpan satu bit di Nanoprocessor. Setiap bit diimplementasikan pada 6 transistor (6T SRAM cell).
Satu set register terdiri dari matriks sel bit semacam itu. Bus pilihan register memilih satu register (satu kolom) untuk membaca atau menulis. Transistor atas dan bawah kemudian menghubungkan inverter ke garis bit horizontal masing-masing. Untuk membaca, garis bit atas memberikan nilai yang disimpan dalam sel; ada delapan baris bit untuk delapan bit yang disimpan di register. Untuk penulisan, nilai ditransfer ke garis bit atas dan nilai terbalik ditransfer ke yang lebih rendah. Nilai-nilai ini menggantikan sinyal dari inverter, menyebabkan mereka mengambil nilai yang diinginkan dan menyimpan bit ini. Jadi, kisi garis bit horizontal dan garis pilih vertikal memungkinkan nilai dibaca atau ditulis ke register tertentu.
Perintah decoding
Sirkuit decoding digunakan untuk mengambil kode biner dari instruksi (misalnya, 01101010), dan menentukan apa instruksinya (dalam hal ini, "beban akumulator dari register 10"). Dibandingkan dengan banyak prosesor, instruksi Nanoprocessor cukup sederhana: ia memiliki relatif sedikit (48), dan kode instruksi selalu satu byte. Diagram di bawah menunjukkan bahwa logika decoding instruksi (merah) mengambil porsi yang signifikan dari chip. Register instruksi (hijau) adalah satu set delapan kait yang menahan instruksi saat ini. Register perintah terletak di sebelah pin data, yang perintahnya berasal dari ROM. Di bagian ini, kami akan memecah rantai decoding yang ditunjukkan dengan warna kuning.
Decoding dilakukan oleh gerbang NOR. Setiap gerbang NOR mengenali perintah atau kelompok perintah tertentu. Gerbang NOR menerima bit perintah atau komplemennya sebagai input. Ketika semua bit yang masuk adalah nol, gerbang NOR melaporkan kecocokan. Ini memungkinkan Anda untuk mencari pertandingan baik di seluruh tim secara keseluruhan, dan sebagian dari tim. Misalnya, perintah "muat akumulator dari register R" memiliki format biner 0110rrrr, di mana empat bit terakhir menunjukkan register yang diperlukan. Gerbang NOR (bit7 + bit6 '+ bit5' + bit4) 'akan cocok dengan perintah ini.
Dekoder instruksi yang terstruktur dengan cara ini bagus karena dapat dirakit dari sirkuit yang kompak dan berulang. Ini sering disebut PLM (Programmable Logic Array). Idenya adalah bahwa sinyal yang masuk ke matriks diumpankan secara horizontal, dan yang keluar diumpankan secara vertikal. Di setiap persimpangan bisa ada transistor, dan kemudian sinyal input adalah bagian dari gerbang; jika tidak ada transistor, masukan ini diabaikan. Hasilnya katup NOR tersusun kompak. Pada mikroprosesor awal, dekoder sering dibuat dari matriks gerbang NOR - misalnya, kasus 6502.
Diagram di bawah ini menunjukkan tiga dekoder yang diperbesar di sisi kanan, yang dilingkari dengan warna kuning pada diagram di atas. Diagram ini sesuai dengan dekoder paling kiri. Perhatikan korespondensi transistor pada diagram ke titik merah muda transistor pada tata letak. Idenya adalah jika ada sinyal input yang mengaktifkan transistor, maka transistor menarik output ke ground. Jika tidak, output ditarik oleh resistor. Inverter di bagian bawah memperkuat sinyal sehingga ada cukup arus untuk memberi daya pada delapan bagian baterai. Menariknya, tata letak ini menggunakan pasangan transistor dengan ground dan output terhubung - Saya tidak melihat keuntungan apa pun hanya dengan menggunakan satu transistor. Bagaimanapun, perhatikan bagaimana PLM menyediakan pengaturan decoder yang padat.
Perhatikan bahwa inverter dalam dekoder instruksi ditarik hingga 12 V, bukan 5 V. Ini karena Nanoprocessor menggunakan transistor gerbang logam alih-alih transistor gerbang silikon yang lebih maju yang ditemukan di mikroprosesor lain pada zaman itu. Kerugian dari transistor dengan pintu gerbang logam adalah tegangan ambang yang meningkat, sehingga tegangan keluaran transistor jauh lebih rendah daripada tegangan pada gerbang. Output dari inverter konvensional terlalu kecil untuk memberi makan gerbang transistor pass-through, karena tegangan outputnya akan turun lagi. Solusinya adalah dengan menggunakan power supply 12 V untuk inverter dari decoder yang mengontrol transistor pass-through baterai, kemudian sinyal akan memiliki tegangan yang cukup untuk mengaktifkan transistor pass-through. Dengan kata lain, Nanoprocessor membutuhkan tambahan 12+ V,karena ia menggunakan transistor gerbang logam dan bukan transistor gerbang silikon yang lebih canggih.
Salah satu rangkaian decoder Nanoprocessor. Diagram di sebelah kiri sesuai dengan dekoder paling kiri dari tiga yang ditunjukkan di sebelah kanan.
Sirkuit ini menghasilkan sinyal increment / decrement yang diumpankan ke sirkuit akumulator. Rung mendeteksi kecocokan ketika level sinyal generator clock, request, bit perintah ke-6, dan bit perintah ke-2 rendah - kecocokan ditemukan sebagai x0xxx0xx selama fase eksekusi. Perintah ini termasuk "Increment Binary" (00000000), "Increment BCD" (00000010), "Decrement Binary" (00000001), dan "Decrement BCD" (00000011).
Rantai yang ditunjukkan dalam diagram mencari kecocokan dengan perintah dalam bentuk x0xxx0xx, sehingga kecocokan ditemukan pada lebih banyak perintah daripada hanya kenaikan dan penurunan. Mengapa tidak mencari kecocokan yang lengkap? Alasannya adalah jika akumulator tidak digunakan, aktivasi sinyal increment / decrement tidak relevan. Dengan memperluas daftar opsi pencocokan, pengembang dapat menyingkirkan beberapa transistor di sirkuit. Penting agar rantai mengganti instruksi terkait akumulator lainnya seperti "Hapus akumulator" (00000100) atau "Muat akumulator dari register" (0110rrrr).
Pembanding
Rangkaian nanoprosesor yang penting adalah pembanding yang membandingkan nilai yang disimpan dalam akumulator dengan nilai dari register R0. Komparator menggunakan sirkuit tunggal tapi rumit untuk membandingkannya. Intinya, algoritme membandingkan dua angka yang dimulai dengan bit paling signifikan. Jika bitnya sama, lanjutkan ke bit yang lebih rendah. Perbedaan bit pertama menentukan nilai mana yang lebih besar (misalnya, dalam kasus 10101010 dan 10100111, ini menentukan bit ke-4 dari kanan).
Algoritme diimplementasikan dalam delapan langkah, satu langkah pada satu waktu, dimulai dengan bit paling signifikan di bagian bawah. Setiap langkah terdiri dari dua bagian simetris - satu menentukan apakah pertidaksamaan A> R0 berlaku, dan bagian tambahannya memeriksa pertidaksamaan A <R0. Jika angkanya masih sama, tetapi ditemukan perbedaan pada tahap ini, tahap menghasilkan sinyal "lebih" atau "lebih sedikit". Jika tidak, keputusan tersebut akan diteruskan ke tingkat yang lebih rendah. Keputusan akhir dibuat oleh anak tangga paling atas. Harap dicatat bahwa perbandingan kesetaraan dalam pembanding tidak dikenai biaya - jika tidak ada sinyal โlebihโ atau โkurangโ pada keluaran, maka nilainya sama.
Salah satu tahapan komparator 8-bit
Diagram di bawah menunjukkan tata letak fisik dari dua tahap pembanding. Salah satu trik dalam tata letak komparator adalah ia berada di antara register 0 di kiri dan akumulator di kanan, yang meminimalkan panjang kabel. Pembanding mengakses register 0 secara langsung, melewati register biasa dan jalur pemilihan bus data.
Dua tahap pembanding - seperti yang ditentukan pada photomask
Perintah percabangan bersyarat nanoprosesor dapat memeriksa keluaran komparator. Sirkuit cabang bersyarat cukup sederhana: beberapa bit dari instruksi cabang memilih pemeriksaan tertentu melalui multiplekser. Kemudian bit ke-7 dari perintah memutuskan apakah akan memilih "cabang ini jika benar" atau "cabang ini jika salah". Tidak seperti kebanyakan prosesor, Nanoprocessor tidak mengizinkan percabangan ke alamat mana pun. Ini hanya melewatkan dua byte perintah jika kondisinya terpenuhi (dan biasanya dua byte ini berisi perintah untuk pergi ke target yang diinginkan, tetapi terkadang ada perintah lain). Skema skipping sederhana: penghitung program dipanggil lagi, sambil menaikkan nilainya bukan 1, tetapi 2, melompati dua perintah. Ternyata Nanoprocessor mengimplementasikan berbagai pemeriksaan kondisional pada sejumlah kecil jaringan.
Nanoprocessor memiliki sekumpulan besar kondisi percabangan - sangat besar untuk prosesor yang sederhana. Anda dapat memeriksa kondisi berikut: A> R0, A> = R0, A <R0, A <= R0, A == R0, atau A! = R0. Selain itu, pencabangan bersyarat dapat bergantung pada apakah nilai dalam akumulator adalah nol atau tidak, apakah bit tertentu dari nilai yang disimpan dalam akumulator sama dengan nol, apakah tanda overflow disetel, atau apakah bit tertentu dari register I / O disetel.
Baterai dan perangkat logika kontrol
Akumulator adalah register 8-bit khusus yang menyimpan byte yang sedang diproses. Pengoperasian dengan baterai dilakukan oleh perangkat logika kontrol (ULU), yang dalam instruksi untuk prosesor disebut "jantung dari Nanoprocessor" ULU setara dengan unit logika aritmatika (ALU) di sebagian besar prosesor, hanya saja ULU tidak melakukan operasi aritmatika atau logika. Pada saat yang sama, ULU tidaklah sia-sia seperti yang terlihat pada pandangan pertama. Itu dapat menambah atau mengurangi nilai dalam akumulator, baik dalam biner atau dalam desimal berkode biner (BCD). BCD menyimpan dua tempat desimal dalam satu byte. Ini adalah mode yang sangat berguna untuk I / O atau tampilan. Selain itu, ULU dapat menemukan komplemen biner akumulator atau mengatur ulangnya, serta mengatur dan menghapus bit tertentu. Akhirnya,ini mendukung operasi shift kiri dan kanan.
Rangkaian Terkait Baterai
Diagram di atas menunjukkan rangkaian baterai dan ULD. Pada bagian pertama, berbagai jaring ditempatkan, menentukan nilai nol, mendukung BCD, dan menyediakan carry slip - generasi carry yang cepat dari 4 bit yang paling tidak signifikan. Bagian kedua berisi baterai utama dan sirkuit ULU. Bagian ketiga mendistribusikan sinyal kontrol dari logika decoding di atas ke delapan bagian akumulator. Bagian terakhir berisi logika decoding instruksi yang mendekode operasi bit dan mengirimkan sinyal ke bagian akumulator yang diinginkan.
Badan utama akumulator / ULU terdiri dari 8 bagian, satu per bit, dengan bit paling tidak signifikan di bagian atas. Kita akan melihat empat sirkuit dari masing-masing bagian: generator pembawa untuk operasi kenaikan / penurunan, generator bit untuk operasi kenaikan / penurunan, multiplekser untuk memilih nilai akumulator baru, dan kait tempat menyimpan nilai akumulator.
Setiap bagian dari perangkat increment / decrement (di bawah) diimplementasikan menggunakan setengah penambah. Arah rantai increment / decrement menentukan opcode: 0 di bit orde rendah dari opcode mengatakan increment dan 1 untuk decrement. Rantai pembawa di sebelah kiri menghasilkan sinyal pembawa. Untuk selisih, buat keluaran carry jika masukan carry diterima dan bit saat ini adalah 1 (karena itu akan bertambah menjadi biner 10). Untuk penurunan, garis pembawa menandakan peminjaman , sehingga keluaran yang dibawa dihasilkan ketika ada masukan pembawa (yaitu, meminjam) dan bit saat ini adalah 0.
Satu bagian dari rantai kenaikan / penurunan
Anak tangga di sebelah kanan memperbarui bit saat ini dengan kenaikan atau penurunan. Bit saat ini diubah ketika input carry ada - pada dasarnya implementasi XOR melalui tiga gerbang NOR. Salah satu kesulitannya adalah menyesuaikan BCD. Untuk operasi kenaikan BCD, carry terjadi saat digit 9 bertambah, dan untuk operasi penurunan BCD, digit 0 berkurang menjadi 9, bukan biner 1111.
Multiplexer mengatur berbagai operasi baterai. Tergantung pada operasinya, transistor satu lintasan diaktifkan, memilih nilai yang diinginkan. Misalnya, untuk operasi increment / decrement, transistor atas memilih output dari rangkaian increment / decrement yang dijelaskan di atas. Transistor mengaktifkan dekoder instruksi yang dijelaskan sebelumnya, yang telah menemukan instruksi kenaikan / penurunan yang sesuai. Demikian juga, perintah shift kanan mengaktifkan transistor shift kanan dengan menerapkan n + 1 bit baterai ke setiap bagian akumulator untuk menggeser nilainya.
Sirkuit untuk kait yang menyimpan satu bit baterai dan multiplekser yang memilih input untuk baterai
Kait menyimpan satu bit untuk akumulator. Ketika transistor penahan baterai diaktifkan, dua gerbang NOR membentuk loop penahan. Jika transistor beban baterai diaktifkan sebagai gantinya, baterai memuat nilai yang diinginkan dari multiplekser. Garis untuk menghapus n bit dan menyetel n bit memungkinkan perintah untuk mengubah bit individu akumulator; multiplekser kemudian memperbarui semua bit akumulator sekaligus.
Counter dan pengalamatan program
Blok rantai besar lainnya adalah penghitung program 11-bit yang terletak di sudut kiri bawah Nanoprocessor. Juga di blok ini ada latch yang menyimpan alamat pengirim dari subrutin, dan latch lain yang menyimpan penghitung program setelah interupsi. Pikirkan mereka sebagai tumpukan satu elemen. Penghitung perangkat lunak memiliki perangkat tambahan yang bertanggung jawab untuk berpindah ke perintah berikutnya. Ia juga tahu bagaimana menambah dua sekaligus, memungkinkan instruksi cabang bersyarat untuk melewati dua instruksi (perangkat kenaikan seperti itu diimplementasikan hanya dengan meningkatkan bit ke-1, bukan ke-0). Untuk mempercepat pengoperasian perangkat increment, ia memiliki fungsi carry-over; jika keenam bit paling signifikan adalah 1, itu akan menambah bit ke-6 sekaligus, tanpa menunggu carry melalui semua bit yang paling tidak signifikan.
Kontrol dan frekuensi jam
Bagian terakhir dari Nanoprocessor adalah rangkaian kontrol. Dibandingkan dengan mikroprosesor lain, skema kontrol nanoprosesor tampak hampir sepele: prosesor beralih dari jam permintaan ke jam eksekusi dan mundur (dengan interupsi berkala). Sirkuit kontrol hanyalah sepasang sandal jepit dan gerbang, jadi tidak banyak yang bisa dikatakan tentang itu.
Kesimpulan
Diagram di bawah ini menunjukkan blok fungsional utama dari Nanoprocessor. Nanoprocessor berhasil menyesuaikannya dengan sangat erat, jauh lebih baik daripada yang saya harapkan dari teknologi shutter metal yang sudah ketinggalan zaman. Rekayasa terbalik menunjukkan bahwa blok fungsional ini diimplementasikan dengan sirkuit yang sederhana namun dirancang dengan hati-hati.
Nanoprosesor menggunakan transistor gerbang logam, sedangkan mikroprosesor lain sudah mulai beralih ke transistor gerbang silikon selama beberapa tahun. Perbedaannya mungkin tampak tidak dapat dipahami, tetapi memiliki efek signifikan pada lokasi komponen: dalam pembuatan transistor dengan gerbang silikon, lapisan polisilikon dengan konduktor ditambahkan. Hasilnya, penempatan komponen menjadi lebih mudah, karena Anda memiliki dua lapisan dengan konduktor yang dapat Anda gunakan, yang mampu melewati lapisan yang berdekatan. Jika Anda hanya memiliki lapisan logam, akan jauh lebih sulit untuk memposisikan komponen karena konduktornya menghalangi. Di chip lain yang telah saya pelajari yang menggunakan teknologi transistor gerbang logam,tata letak komponen menjijikkan - sekumpulan kabel kusut membawa sinyal ke setiap transistor menjaga kepadatan transistor tetap rendah. Di sisi lain, blok fungsi Nanoprocessor dirancang dengan sangat hati-hati dan semua sinyal dapat diterima dengan baik. Ada sedikit ruang ekstra, misalnya, untuk bus data, tetapi secara keseluruhan saya terkesan dengan kepadatan tata letak Nanoprocessor.
Komponen fungsional nanoprosesor berdasarkan rekayasa balik saya
Nanoprocessor - prosesornya tidak biasa. Pada pandangan pertama, itu bahkan bagi saya seperti "prosesor palsu", karena kurangnya operasi aritmatika dasar. Namun, setelah mempelajarinya lebih detail, saya tetap terkesan. Desainnya yang sederhana memungkinkannya bekerja lebih cepat daripada prosesor lain pada masa itu. Set perintah dapat melakukan lebih dari yang terlihat. Hewlett-Packard menggunakan Nanoprocessor di banyak produknya pada tahun 1970-an dan 1980-an, dalam peran yang lebih kompleks daripada yang diharapkan - misalnya, mengurai string dan melakukan komputasi. Setelah topengnya diterbitkan, kita dapat mempelajari semua rahasia rantai berkat Nanoprocessor bekerja.
Nanoprocessor (chip putih) sebagai bagian dari modul pengaturan waktu presisi Hewlett-Packard. Perhatikan voltase tulisan tangan; setiap chip membutuhkan tegangan biasnya sendiri.