50 Tahun Sejak Peluncuran Zilog Z80
(goliath32.com)- Zilog Z80 yang dirilis pada Juli 1976 digunakan luas dari komputer pribadi dan hobi hingga perangkat embedded dan industri, sehingga menjadi representasi era mikroprosesor 8-bit
- Sambil mempertahankan kompatibilitas biner Intel 8080, Z80 memperluas register, pengalamatan, instruksi, dan fitur interrupt, serta dirancang dengan koneksi elektrik yang lebih sederhana
- Stack terbatas dan ruang alamat 14-bit pada 8008 ditingkatkan pada 8080 menjadi stack berbasis memori dan ruang alamat 16-bit, lalu Z80 menambahkan register indeks, bank register alternatif, dan instruksi blok
- Berkat catu daya 5V tunggal, clock tunggal, sinyal kontrol MREQ·IORQ·RD·WR, dan refresh DRAM bawaan, komputer dapat dibangun dengan lebih sedikit chip periferal
- Keluarga Z80 melahirkan banyak turunan seperti Sharp LR35902 pada Game Boy dan eZ80, sementara Z80 asli menjalani umur panjang di industri sebelum dihentikan pada Juni 2024
Dari Datapoint 2200 ke Intel 8008
- Computer Terminal Corporation (CTC) mengembangkan terminal terprogram Datapoint 2200 yang dibekali prosesor 8-bit dari chip TTL diskret
- Rencana mengganti sebagian rangkaian TTL dengan IC kustom kemudian meluas menjadi upaya menempatkan seluruh CPU dalam satu chip, dengan Texas Instruments dan Intel masing-masing menangani desain
- Kedua perusahaan sama-sama gagal menyelesaikan desain tepat waktu, dan saat chip Intel siap, CTC sudah menjual terminal berbasis TTL
- Para insinyur CTC juga tidak puas dengan performa chip tersebut, dan arsitektur terminal generasi berikutnya pun sudah diubah
- TI menghentikan desainnya, tetapi Intel mengganti nama produk yang semula 1201 menjadi nama pemasaran 8008 lalu mengomersialkannya
Struktur dan keterbatasan 8008
- 8008 menyediakan 7 register: A·B·C·D·E·H·L
- A adalah akumulator, dan H serta L membentuk pointer memori HL
- Pseudo-register M merepresentasikan byte memori yang ditunjuk HL
- Status ALU disimpan dalam flag Carry, Parity, Zero, dan Sign, lalu dipakai untuk jump, call, dan return bersyarat
- Program counter sulit ditangani secara langsung, dan pemanggilan fungsi memakai stack alamat balik 8 tingkat di dalam prosesor
- Ini berasal dari keputusan desain bahwa Datapoint 2200 akan memakai memori serial sehingga stack panggilan berbasis memori bisa menjadi bottleneck
- Alamat memori berukuran 14-bit dan tersedia 32 port I/O dalam ruang alamat terpisah
- Saat interrupt terjadi, perangkat periferal menaikkan instruksi RST ke data bus dan CPU mengeksekusinya
- RST memanggil salah satu dari 8 slot di bagian awal ruang alamat
- Karena tidak ada stack memori serbaguna dan semua akses memori membutuhkan HL, penyimpanan register saat menangani interrupt mengharuskan latch eksternal pada bus I/O dipakai sebagai register sementara
- Chip ini memakai sekitar 3.500 transistor dan paket DIP18, serta memultipleks alamat dan data bus
- Rangkaian eksternal harus melatch bus dan menafsirkan sinyal status internal CPU
- Diperlukan dua clock 500kHz dengan fase berbeda serta catu daya +5V dan -9V
Dari 8008 ke 8080
- Bahkan sebelum pengembangan 8008 selesai, sudah dimulai diskusi untuk memperbaiki keterbatasannya, tetapi manajemen Intel ingin lebih dulu melihat respons pasar
- Federico Faggin mendorong pengembangan versi perbaikan, namun karena menunggu hingga pesaing mengumumkan produk 8-bit mereka, Intel kehilangan keunggulan waktu 9 bulan
- Bahkan sebelum proyek disetujui, Faggin merekrut Masatoshi Shima dari Busicom untuk ikut merancang 8080
- Kritik dan masukan dari calon pelanggan saat demo 8008 juga diadopsi, dan sejak awal diputuskan untuk melepaskan kompatibilitas biner dengan 8008
Arsitektur 8080
- 8080 mempertahankan susunan register yang mirip dengan 8008, tetapi menghapus stack alamat balik internal dan memperkenalkan stack memori yang ditunjuk SP
- Pasangan register BC, DE, HL, dan AF bisa didorong ke stack atau diambil kembali
- Dalam assembly Intel, AF disebut PSW sebagai program status word
- Ruang alamat diperluas menjadi 64KB 16-bit, dan port I/O bertambah menjadi 256
- Akses tidak langsung terbatas lewat BC dan DE menjadi mungkin
- Akumulator dan HL bisa membaca atau menyimpan ke alamat yang ditentukan secara langsung
- Operasi 16-bit seperti penambahan/pengurangan pasangan register ditambahkan sehingga perhitungan pointer dan counter 16-bit dapat ditangani
- Karena blok operasi ini tidak memengaruhi flag ALU, setelah mengurangi BC perlu pemeriksaan terpisah apakah kedua byte sudah 0
- Interrupt tetap memakai pendekatan berbasis RST, tetapi kini bisa diaktifkan atau dinonaktifkan lewat perangkat lunak
- Berkat stack memori yang eksplisit, hardware I/O untuk penyimpanan register tidak lagi diperlukan
- Assembly Intel 8080 memiliki korespondensi mnemonik dan opcode yang hampir 1:1 sehingga implementasi assembler mudah, tetapi bisa kurang nyaman dibaca manusia
- Instruksi pasangan register hanya memakai nama salah satu register, dan X pada INX dipakai untuk membedakannya dari INC satu byte
Antarmuka elektrik 8080
- Untuk meningkatkan kecepatan, logika NMOS digunakan sehingga dibutuhkan tiga catu daya -5V·+5V·+12V dan dua clock dengan fase berbeda
- Berkat paket 40-pin, jalur alamat dan data dipisahkan, tetapi sebagian status kontrol tetap dimultipleks ke data bus sehingga latch dan decoder eksternal masih diperlukan
- Intel menjual chip pendukung untuk decoding status dan pembangkitan clock, dan tergantung sistemnya bisa juga diperlukan interrupt controller, timer, dan DMA controller
- Timer yang dapat diprogram setidaknya bisa dimanfaatkan untuk menggerakkan refresh DRAM
- Penerusnya, 8085, memakai catu daya 5V tunggal dan clock 5V tunggal serta menambahkan sebagian sinyal kontrol, tetapi masih memerlukan chip pendukung khusus
Pendirian Zilog dan pengembangan Z80
- Tidak puas dengan keterlambatan persetujuan proyek 8080 dan konflik dengan manajemen Intel, Faggin meninggalkan Intel bersama kepala divisi mikroprosesor Ralph Ungermann untuk mendirikan perusahaan baru
- Awalnya mereka mempertimbangkan mikrokontroler, tetapi menilai marginnya terlalu rendah untuk startup semikonduktor fabless
- Setelah itu mereka memutuskan merancang Super 80, versi perbaikan 8080, dan produk inilah yang berujung pada Zilog Z80
- Mereka mendapatkan pendanaan dari Exxon dan juga merekrut Shima dari Intel
- Tim yang menangani layout, simulasi perangkat lunak, dan lain-lain pun diperluas menjadi total 11 orang
- Tujuannya adalah mempertahankan kompatibilitas biner 8080 sambil menambahkan register, mode pengalamatan, dan instruksi, serta mengadopsi fitur dari prosesor sezaman seperti 6800
- Kecepatan lebih tinggi daripada 8080 dan koneksi elektrik yang lebih sederhana juga menjadi target
- Hingga prototipe pertama yang berfungsi, biaya yang dikeluarkan sekitar 400 ribu dolar, lebih rendah daripada anggaran 500 ribu dolar dari Exxon dan tetap sesuai jadwal
- Produksi akhirnya bergantung pada Mostek setelah terjadi konflik dengan Synertek, mitra kontrak awal
- Setelah investasi tambahan dari Exxon, mereka membangun fab sendiri, tetapi tetap mempertahankan multi-sourcing untuk Z80
Perluasan arsitektur Z80
- Z80 sepenuhnya kompatibel secara biner dengan set instruksi 8080
- Z80 menambahkan register indeks 16-bit IX dan IY yang terinspirasi dari 6800
- Melalui prefix opcode, register ini bisa dipakai menggantikan HL dan juga mendukung offset langsung
- Pasangan register AF, BC, DE, dan HL memiliki bank alternatif sehingga bisa dialihkan dengan cepat saat menangani interrupt
- Interrupt menyediakan tiga mode
- Mode 0 adalah cara yang kompatibel dengan 8080
- Mode 1 selalu memanggil alamat tetap
- Mode 2 menggunakan nilai pada bus sebagai indeks untuk bercabang ke tabel pemanggilan, dengan register terpisah yang menunjuk alamat dasar tabel di memori
- Ditambahkan operasi rotasi, pemeriksaan, dan penyetelan bit, operasi BCD, instruksi pengulangan dengan BC sebagai counter, serta transfer blok, perbandingan, dan operasi string
- Seluruh loop penyalinan byte dapat diganti dengan satu instruksi pengulangan mandiri, LDIR
- Karena Intel mengklaim hak cipta atas mnemonic assembly, Z80 mengadopsi sintaksnya sendiri
- Operand ditulis lebih eksplisit dan mnemonic dasar dioverload agar lebih mudah dibaca dibanding sintaks 8080
Desain bus yang disederhanakan
- Z80 hanya membutuhkan catu daya 5V tunggal dan clock tunggal
- Status yang pada 8080 harus dilatch dan ditafsirkan oleh rangkaian eksternal kini disediakan langsung lewat sinyal khusus
- MREQ dan IORQ membedakan akses memori dan I/O
- RD dan WR menunjukkan baca dan tulis
- M1 memberi tahu bahwa akses memori saat ini adalah instruction fetch
- Komputer dasar bisa dibuat hanya dengan menghubungkan langsung jalur alamat dan data, lalu memakai rangkaian sederhana seperti satu 74xx138 untuk memilih EEPROM, RAM, dan UART
- Counter refresh internal mengeluarkan nilai ke address bus selama siklus decoding instruksi dan mengaktifkan jalur kontrol untuk menangani refresh DRAM
- Jika memakai interrupt mode 1, satu perangkat bisa langsung dihubungkan ke pin interrupt tanpa interrupt controller eksternal
- Banyak perangkat pun bisa ditangani dengan rangkaian sederhana seperti priority encoder 74xx148 dan latch
Perkembangan setelah Z80
- Bahkan sebelum Z80 dirilis pada Juli 1976, desain awal Z8000 16-bit sudah dimulai, dan produknya dirilis pada 1979, setelah Intel 8086 namun sebelum Motorola 68000
- Z8000 memakai memori tersegmentasi seperti 8086, tetapi nomor segmen dikeluarkan ke bus dan MMU eksternal menangani translasi alamat linear serta pemeriksaan batas dan izin
- Dalam set instruksi 8086, selain garis keturunan dari 8080, juga tercermin karakteristik instruksi blok berulang, string, dan loop milik Z80
- Desain MMU Z8000 juga memengaruhi protected mode 16-bit berbasis descriptor table pada 286
Exxon, IBM PC, dan perubahan di Zilog
- Zilog membidik pasar komputer sejak masa ketika mikroprosesor masih dianggap sebagai pengganti rangkaian logika, tetapi hubungannya dengan Exxon menjadi salah satu alasan IBM memilih Intel 8088 untuk PC-nya, bukan Zilog
- Exxon berupaya membangun lini bisnis komputasinya sendiri untuk menyaingi IBM, dan berinvestasi strategis pada produsen mesin tik, word processor, printer, dan lainnya
- Sebagian dari mereka merancang produk berbasis komponen Zilog dan menggerus pangsa pasar produk IBM
- Kedekatan dengan Exxon juga memicu konflik antara Faggin dan Ungermann, dan Ungermann keluar sebelum Zilog menjadi anak perusahaan penuh Exxon pada 1980
- Zilog kembali dipisahkan dari Exxon pada 1989 dan melantai di bursa pada 1991
- Setelah itu kepemilikannya beberapa kali berpindah antara perusahaan private equity dan perusahaan elektronik, dan kini dimiliki oleh Littelfuse
- Z80 lama digunakan sebagai prosesor embedded sebelum akhirnya dihentikan pada Juni 2024
Pengalaman pribadi dengan Z80 dan pengaruh jangka panjangnya
- Z80 serta 8080 dan 8085 yang kompatibel secara biner membantu membentuk standar hardware de facto untuk mikrokomputer 8-bit, sekaligus menjadi landasan bagi CP/M dan Microsoft BASIC sebagai standar software de facto
- Z80 digunakan pada komputer pribadi awal, komputer rumahan dan hobi, serta berbagai sistem embedded dan industri
- Muncul pula klon dan turunan arsitektur, termasuk Sharp LR35902 pada Game Boy original
- Setelah meninggalkan lini turunan 16 dan 32-bit, Zilog kembali ke mikrokontroler berbasis Z80 seperti eZ80 yang memakai pipeline dan clock lebih tinggi
- Setelah menemukan bahwa Z80 masih dijual dalam katalog komponen elektronik saat akhir masa remaja, penulis merancang komputer kecil dan meminjam kamar gelap fotografi sekolah pada malam hari untuk mengetsa PCB
- Dari para guru, ia mendengar pengalaman tentang komputer rumahan dan konsol lama, serta komputer rakitan wire-wrap dalam kotak Tupperware yang menjalankan CP/M dan WordStar
- Ia juga menerima komponen MCS-85 serta chip Z80, 8085, 6502, dan 6522 untuk dipakai dalam proyek buatannya sendiri
- Dari proses ini, ia belajar bahwa reset saat power-on yang andal ternyata lebih sulit dari perkiraan, linker jauh lebih sulit diimplementasikan daripada assembler, dan orang perorangan pun benar-benar bisa membuat compiler
1 komentar
Komentar Hacker News
Mulai pemrograman dengan assembly language pada 1978, dan ingin memahami bukan hanya software tetapi juga cara kerja hardware
Setelah merakit kit Z80, belajar elektronika digital dengan logic probe dan osiloskop, lalu mempelajari instruction set dengan mendalami manualnya. Sekarang usianya hampir 70 tahun, tetapi semuanya masih terasa seperti kemarin, dan Z80 benar-benar CPU yang hebat
Belajar sendiri dengan men-disassembly ROM dan merujuk kartu ringkasan Motorola tanpa kelas atau buku, tetapi kemudian mendirikan beberapa startup dan membangun karier yang sukses. Belajar komputer dari prinsip pertama di lapisan paling bawah tetap punya nilai yang tak tergantikan
Game simulasi logika digital tempat pemain membuat rangkaian dasar dari gerbang NAND, menggabungkan unit fungsional dan instruction decoder untuk membangun arsitektur Turing-complete, lalu memprogramnya dengan assembly yang didefinisikan sendiri. Jika butuh opcode baru, bisa mengimplementasikannya sendiri, jadi memang sulit tetapi sangat memuaskan; game ini makin dekat ke rilis resmi dan trailernya juga sudah dirilis
FORK86-64Saat berusia 12 tahun, merakit komputer Z80 dari kit program TV ‘Klein Microcomputer Sebstgebaut und Programmiert’
Menggunakan transformator Märklin sebagai catu daya dan tape recorder Telefunken sebagai perangkat penyimpanan data, lalu memasukkan game pendarat bulan dalam machine language Z80 dan takut programnya hilang sehingga tidak mematikan listrik selama dua minggu
Rasanya seperti kembali ke era 1980-an ZX Spectrum, saat 128KB RAM adalah kemewahan yang sulit dijangkau. Sedikit mirip dengan sekarang juga
https://spectrumcomputing.co.uk/entry/2000237/Book/Mastering...
http://www.primrosebank.net/computers/zxspectrum/docs/Comple...
Ingat pernah melihat tabel referensi instruksi Z80 di bagian akhir manual pengguna ZX-81 dan tidak mengerti apa pun. Tidak seperti abstraksi tingkat tinggi seperti BASIC, butuh waktu lama untuk memahami bagaimana CPU benar-benar menjalankan program
JPsetaraGOTO,CALLsetaraGOSUB,CPsetaraIF,JP ZsetaraTHEN GOTO, danLDsetaraLETUngkapan “Z80 sepenuhnya kompatibel secara biner dengan instruction set 8080” sebenarnya tidak benar jika register flag juga diperhitungkan. Pada beberapa operasi, perilaku parity flag berbeda
Selain itu, program yang memakai opcode tak terdefinisi pada 8080 bisa berjalan dengan cara sewenang-wenang, tetapi Z80 memakai ulang opcode itu untuk instruksi baru
Berkat itu, parity flag bisa dipakai ulang sebagai overflow flag, dan itu adalah perluasan yang sangat berguna. Datapoint 2200, Intel 8008, Intel 8080, dan RISC-V adalah instruction set langka yang hardware-nya tidak mendeteksi overflow; tidak seperti desain awal yang sederhana dan murah, RISC-V tidak punya alasan, dan ini dianggap sebagai kesalahan terbesarnya
Pada awal 1983, masuk ke dunia pemrograman dengan assembly Z80 di TRS-80 Model I. Buku-buku Bill Barden dan serial ‘The Next Step’ karya Hardin Brothers di majalah 80 Micro membuka jalan, dan pengalaman saat itu dirangkum dalam tulisan ini
Penjelasannya sangat jelas hingga anak-anak pun bisa mengerti, jadi dibaca dari awal sampai akhir, dan meski tidak pernah benar-benar menyentuh Z80, itu menjadi dasar untuk memahami 6502 dan mikrokontroler awal seperti 8051 dan PIC tanpa banyak kesulitan. Sampai sekarang pun rasanya masih memahami mikroprosesor modern dengan membandingkannya ke Z80, dan saya merekomendasikan mempelajari mikroprosesor 8-bit yang cukup sederhana untuk dipahami secara utuh oleh orang biasa
Mulai dengan Z80 pada masa ketika compiler bahasa tingkat tinggi mahal dan shareware juga tidak semudah open source sekarang untuk didapat. Untuk memahami apa yang diperintahkan kepada mesin, semua orang setidaknya harus belajar sedikit assembly, dan Z80 cukup sederhana untuk dipahami
35 tahun lalu, harus meng-assemble program dengan tangan lalu memasukkan machine code heksadesimal ke board. Untuk mempermudahnya, menulis assembler sendiri, dan pengalaman itu kemudian berlanjut ke bidang developer tools hingga mengerjakan compiler C++ utama
Yang terlewat adalah kalkulator TI-84 yang sampai sekarang masih dipakai jutaan siswa di AS dan bisa diprogram dengan BASIC. Model hitam-putih memakai Z80, sedangkan model layar warna memakai eZ80
Saya menghabiskan banyak waktu membuat program kecil dengan TI-BASIC bersama teman-teman untuk dipamerkan, tetapi tidak sampai belajar assembly Z80. Saya sempat mencetak seluruh manual assembly Z80 untuk TI-84 Plus dan mulai membacanya, tetapi sampai sekarang belum menulis satu baris pun