Chapter 9
Perangkat Keras 8086/8088
1. Pendahuluan kembali
Latar Belakang
Sebelum kita dapat merancang sistem yang kompleks dan menghubungkan komponen seperti memori atau perangkat Input/Output (I/O) ke mikroprosesor, kita mutlak harus memahami dasar-dasar perangkat kerasnya. Pemahaman mendalam tentang fungsi setiap pin dan ritme waktu (timing) bus adalah fondasi esensial untuk dapat melakukan interfacing dengan benar. Informasi dalam bab ini merupakan dasar yang sama untuk mikroprosesor Intel yang lebih baru sekalipun, menjadikannya pengetahuan fundamental.
Perbedaan Utama: 8086 vs. 8088
Meskipun keduanya adalah mikroprosesor 16-bit, ada beberapa perbedaan perangkat keras yang krusial:
Tujuan Pembelajaran
Tujuan utama dari mempelajari bab ini adalah agar kita mampu:
Mendeskripsikan fungsi dari setiap pin pada 8086 dan 8088.
Memahami cara menyediakan sinyal clock yang tepat menggunakan clock generator 8284A.
Menghubungkan buffer dan latch untuk melakukan demultiplexing dan memperkuat sinyal bus.
Menginterpretasikan diagram waktu (timing diagram) untuk memahami siklus baca dan tulis.
Menjelaskan perbedaan antara mode operasi minimum dan maksimum.
kembali
2. Karakteristik DC kembali
A. Karakteristik Input
Karakteristik input pada 8086/8088 dirancang agar kompatibel dengan hampir semua komponen logika standar yang ada.
Tegangan (Voltage):
Arus (Current):
Arus yang dibutuhkan oleh setiap pin input sangat kecil, yaitu
maksimal ±10 µA (mikroampere).
Alasannya: Pin-pin input ini adalah gerbang (gate) dari MOSFET di dalam chip, yang secara alami hanya menarik arus bocor (leakage current) yang sangat kecil.
B. Karakteristik Output
Karakteristik output menentukan kemampuan mikroprosesor dalam "mengemudikan" komponen lain.
Tegangan (Voltage):
Arus (Current):
Isu Penting: Berkurangnya Noise Immunity
Ada sedikit ketidakcocokan. Level tegangan logika 0 dari 8086/8088 (maks 0.45 V) lebih tinggi dari standar sirkuit logika umum (maks 0.4 V). Perbedaan 0.05 V ini
mengurangi noise immunity (kemampuan sistem untuk mentolerir gangguan/noise listrik) dari standar 400 mV menjadi 350 mV. Hal ini bisa menjadi masalah jika menggunakan kabel yang panjang atau menghubungkan terlalu banyak beban, yang dapat menyebabkan masalah waktu (timing).
3. Fan-Out (Kemampuan Menggerakkan Beban)
Fan-out adalah jumlah maksimum input dari gerbang logika lain yang dapat dihubungkan ke satu pin output mikroprosesor.
Karena adanya pengurangan
noise immunity, sangat direkomendasikan untuk tidak menghubungkan lebih dari 10 beban (unit loads) ke satu pin output tanpa menggunakan buffer (penguat).
Berikut adalah kemampuan fan-out 8086/8088 ke beberapa keluarga logika umum:
TTL (74): Hanya bisa menggerakkan 1 beban.
TTL (74LS): Bisa menggerakkan 5 beban.
TTL (74ALS): Bisa menggerakkan 10 beban.
CMOS (74HC): Bisa menggerakkan 10 beban.
Pilihan komponen terbaik untuk dihubungkan langsung adalah dari keluarga
74LS, 74ALS, atau 74HC. Jika dibutuhkan lebih dari 10 beban, maka sistem
harus menggunakan buffer.
Pin - Pin Mikroprosessor 8086
kembali
3. Clock Generator kembali
Mikroprosesor 8086/8088 tidak bisa bekerja sendirian. Ia memerlukan komponen pendukung vital yang disebut 8284A Clock Generator. Tanpa chip ini, diperlukan banyak sirkuit tambahan yang rumit untuk menjalankan sistem. 8284A adalah sebuah sirkuit terintegrasi 18-pin yang secara spesifik dirancang untuk menyediakan tiga fungsi krusial: pembangkitan clock, sinkronisasi sinyal RESET, dan sinkronisasi sinyal READY.
Fungsi utama 8284A adalah menghasilkan "detak jantung" atau sinyal waktu (clock) yang stabil dan presisi untuk CPU.
Cara Kerja: Sebuah komponen bernama kristal osilator, yang berfungsi seperti garpu tala elektronik, dihubungkan ke pin X1
dan X2
pada 8284A. Kristal ini bergetar pada frekuensi yang sangat tinggi dan stabil (misalnya, 15 MHz).
Pembagian Frekuensi: Sinyal dari kristal ini kemudian dimasukkan ke dalam sirkuit counter internal yang membagi frekuensi tersebut menjadi tiga.
Output Sinyal CLK: Hasilnya adalah sinyal CLK yang frekuensinya sepertiga dari frekuensi kristal (contoh: kristal 15 MHz menghasilkan CLK 5 MHz). Sinyal output ini memiliki
duty cycle 33% (sepertiga waktu bernilai high dan dua pertiga waktu bernilai low), yang merupakan persyaratan wajib untuk operasi internal 8086/8088.
Sinyal Tambahan (PCLK): 8284A juga menghasilkan sinyal PCLK
(Peripheral Clock) dengan frekuensi seperenam dari kristal (misal: 2.5 MHz), yang berguna untuk komponen periferal lain dalam sistem.
Fungsi Pin-Pin Clock Generator
Pins for Clock Source & Generation
Kelompok pin ini berfungsi untuk menentukan sumber detak dan menghasilkan sinyal clock utama.
X1, X2: Pin-pin ini terhubung ke kristal osilator eksternal yang menjadi sumber waktu utama untuk semua fungsi generator clock.
F/C (Frequency/Crystal select): Pin ini memilih sumber clock. Jika diatur low, 8284A akan menggunakan kristal internal yang terhubung di X1 dan X2. Jika diatur high, 8284A akan menggunakan sinyal clock eksternal dari pin EFI.
EFI (External Frequency Input): Menjadi jalur masuk untuk sinyal clock eksternal jika pin F/C diatur high.
CLK (Clock Output): Pin output utama yang terhubung ke pin CLK pada mikroprosesor 8086/8088. Frekuensinya adalah
sepertiga (1/3) dari frekuensi kristal dan memiliki duty cycle 33% sesuai kebutuhan CPU.
PCLK (Peripheral Clock): Pin output yang menyediakan sinyal clock untuk komponen periferal lainnya. Frekuensinya adalah seperenam (1/6) dari frekuensi kristal dan memiliki duty cycle 50%.
OSC (Oscillator Output): Menghasilkan sinyal dengan frekuensi yang sama dengan kristal. Sinyal ini dapat digunakan sebagai input EFI untuk 8284A lain dalam sistem multi-prosesor.
Pins for READY & Wait State Control
Kelompok pin ini berfungsi untuk mengelola dan menyinkronkan sinyal READY
untuk menyisipkan wait states.
RDY1, RDY2: Pin input yang digunakan bersama dengan pin AEN untuk meminta wait state dari mikroprosesor.
AEN1, AEN2: Pin "Address Enable" yang berfungsi untuk meng-kualifikasi atau mengaktifkan sinyal RDY1 dan RDY2.
ASYNC (Ready Synchronization select): Pin input yang memilih satu atau dua tahap sinkronisasi untuk sinyal RDY. Ini memberikan fleksibilitas untuk kebutuhan timing yang berbeda.
READY: Pin output yang terhubung langsung ke pin READY pada mikroprosesor 8086/8088. Pin ini mengeluarkan sinyal yang sudah disinkronkan.
Pins for RESET & Synchronization
Kelompok pin ini mengelola fungsi reset untuk CPU.
RES (Reset Input): Pin input aktif-rendah yang sering dihubungkan ke sirkuit RC (resistor-kapasitor) untuk menyediakan reset otomatis saat daya dinyalakan (power-on reset).
RESET: Pin output yang terhubung langsung ke pin RESET pada mikroprosesor.
Pins for System Configuration & Power
Pin-pin ini digunakan untuk konfigurasi sistem dan catu daya.
CSYNC (Clock Synchronization): Digunakan untuk sinkronisasi pada sistem multi-prosesor yang menggunakan input EFI. Jika hanya menggunakan kristal internal, pin ini harus di-ground-kan.
VCC: Pin catu daya yang terhubung ke +5.0 V.
GND: Pin ground atau koneksi tanah.
 |
Diagram blok internal clock generator 8284A
|
Sinkronisasi RESET
Mikroprosesor 8086/8088 memiliki aturan waktu yang ketat kapan sinyal RESET harus aktif dan non-aktif. Fungsi 8284A adalah memastikan aturan ini selalu terpenuhi.
Masalah: Sinyal reset dari luar (misalnya dari tombol reset) bisa jadi tidak stabil atau tidak sinkron dengan clock CPU.
Solusi 8284A: Bagian reset di dalam 8284A terdiri dari Schmitt trigger buffer (untuk membersihkan sinyal input) dan sebuah D-type flip-flop.
Proses Sinkronisasi: Flip-flop ini "menangkap" sinyal reset dari luar dan menyelaraskannya dengan clock sistem. Sinyal RESET akhir akan dikirimkan ke CPU tepat pada tepi negatif (transisi 1-ke-0) dari sinyal clock.
Mengapa Penting?: CPU 8086/8088 sendiri memeriksa (sampling) kondisi pin RESET pada tepi positif (transisi 0-ke-1) clock. Dengan mengirimkan sinyal yang sudah stabil sebelumnya, 8284A menjamin bahwa CPU tidak akan salah membaca kondisi reset, sehingga proses reset berjalan dengan andal.
Sinkronisasi READY (Untuk Menangani Wait States)
Sama seperti RESET, sinyal READY dari memori atau I/O yang lambat juga harus memenuhi syarat waktu yang ketat. 8284A berperan sebagai perantara untuk memastikan sinyal ini sampai ke CPU dengan benar.
Masalah: Jika memori yang lambat langsung terhubung ke pin READY CPU, sinyalnya mungkin datang terlambat atau terlalu cepat, sehingga menyebabkan CPU gagal menyisipkan wait state dengan benar.
Solusi 8284A: Sirkuit sinkronisasi di dalam 8284A (menggunakan input RDY1
dan RDY2
) akan "menangkap" sinyal permintaan tunggu dari memori/I/O.
Proses Sinkronisasi: Sinyal RDY
dari luar ini akan dilewatkan melalui satu atau dua tahap flip-flop sinkronisasi di dalam 8284A. Proses ini menjamin bahwa output READY yang dikirim ke CPU memiliki setup dan hold time yang sempurna sesuai dengan yang dibutuhkan oleh CPU 8086/8088. Dengan demikian, penyisipan wait state menjadi andal dan terjamin.
kembali
4. Demultiplexing dan Buffering Bus kembali
 |
8088 demultiplexer |
 |
8086 demultiplexer |
Bagaimana Cara Melakukan Demultiplexing?
Proses ini dilakukan menggunakan dua komponen utama: sebuah latch transparan dan sinyal kontrol ALE
dari mikroprosesor.
Komponen Utama:
Latch Transparan: Sirkuit terintegrasi seperti 74LS373 atau 74LS573. "Latch" berarti pengunci, dan "transparan" berarti ia bisa menjadi seperti kawat tembus.
Sinyal ALE (Address Latch Enable): Sinyal kontrol dari mikroprosesor yang berfungsi sebagai pemicu untuk latch.
Proses Langkah-demi-Langkah:
ALE Aktif (High): Pada awal siklus bus (state T1), mikroprosesor menempatkan alamat memori/I/O pada bus AD dan secara bersamaan membuat sinyal ALE
menjadi high (logika 1).
Latch Menjadi Transparan: Ketika pin ALE
ini high, latch 74LS373 menjadi "transparan". Artinya, apapun sinyal (dalam hal ini, alamat) yang ada di inputnya akan langsung diteruskan ke outputnya, seolah-olah hanya melewati kabel biasa.
ALE Non-Aktif (Low): Sesaat kemudian, sinyal ALE
kembali menjadi low (logika 0).
Alamat Terkunci: Tepat pada saat transisi dari high ke low ini, latch "mengunci" atau "mengingat" data terakhir yang ada di inputnya. Akibatnya, alamat yang tadinya hanya muncul sesaat di bus AD, kini tertahan secara stabil di pin-pin output latch.
Hasil Akhir: Setelah proses ini, kita memiliki bus alamat yang terpisah dan stabil (dari output latch) dan bus data yang juga terpisah (dari pin AD asli, yang kini bebas untuk digunakan mentransfer data). Dengan begitu, mikroprosesor dapat berkomunikasi dengan memori dan I/O secara benar.
 |
Buffered 8088 |
 |
Buffered 8086 |
2. Buffering: Memperkuat Sinyal Bus
Setelah bus dipisahkan melalui proses demultiplexing, langkah selanjutnya dalam sistem yang besar adalah buffering. Buffering adalah proses memperkuat sinyal-sinyal listrik pada bus alamat, data, dan kontrol.
Mengapa Buffering Diperlukan?
Keterbatasan Fan-Out: Mikroprosesor 8086/8088 memiliki kemampuan keluaran (output) listrik yang terbatas, sebuah konsep yang dikenal sebagai fan-out. Secara spesifik, setiap pin output hanya dirancang untuk menggerakkan maksimal 10 beban unit standar (unit loads).
Beban pada Sistem Besar: Dalam sistem yang besar yang terdiri dari banyak chip memori, perangkat I/O, dan komponen lainnya, jumlah total beban yang terhubung ke bus akan dengan mudah melebihi batas 10 unit tersebut.
Konsekuensi Overload: Jika pin-pin bus ini kelebihan beban, kualitas sinyal akan menurun drastis. Hal ini dapat menyebabkan error waktu (timing) dan membuat sistem tidak andal atau bahkan gagal beroperasi sama sekali. Buffer bertindak sebagai penguat sinyal untuk memastikan sinyal tetap kuat dan jelas di seluruh sistem.
Bagaimana Cara Melakukan Buffering?
Buffering dilakukan dengan menambahkan sirkuit terintegrasi (IC) buffer khusus pada setiap bus. Jenis buffer yang digunakan tergantung pada arah aliran sinyal.
Komponen Utama:
74LS244 (Octal Buffer): Ini adalah buffer satu arah (unidirectional). Sangat ideal untuk bus yang sinyalnya hanya mengalir ke satu arah—dari mikroprosesor ke komponen lain. Ini digunakan untuk bus alamat dan bus kontrol.
74LS245 (Octal Bidirectional Bus Buffer): Ini adalah buffer dua arah (bidirectional), yang sangat penting untuk bus data, karena data perlu mengalir ke dua arah: dari CPU ke memori (tulis) dan dari memori ke CPU (baca).
Implementasi:
Bus Alamat & Kontrol: Dihubungkan melalui buffer 74LS244 karena arahnya selalu keluar dari CPU.
Bus Data: Dihubungkan melalui buffer 74LS245. Operasi buffer ini dikontrol oleh dua sinyal dari mikroprosesor:
DT/R (Data Transmit/Receive): Terhubung ke pin DIR
(Direction) pada 74LS245 untuk mengatur arah aliran data (mengirim atau menerima).
DEN (Data Enable): Terhubung ke pin G
(Enable) pada 74LS245 untuk mengaktifkan buffer hanya saat ada transfer data yang sedang berlangsung.
kembali
Timing bus adalah serangkaian aturan waktu yang mengatur bagaimana mikroprosesor berkomunikasi dengan memori dan I/O. Memahami timing ini sangat penting untuk memilih komponen yang kompatibel dan memastikan transfer data berjalan tanpa kesalahan.
Siklus Bus (Bus Cycle)
Operasi paling dasar yang dilakukan mikroprosesor adalah membaca atau menulis data. Setiap operasi ini dilakukan dalam satusiklus bus.
Sebuah siklus bus terdiri dari empat periode clock standar, yang disebut T-states (T1,T2,T3,T4).
Jika mikroprosesor berjalan pada frekuensi 5 MHz, maka satu periode clock (T-state) adalah 200 nanosekon (ns). Dengan demikian, satu siklus bus lengkap memakan waktu 4 x 200 ns = 800 ns.Uraian Tugas Setiap T-State Setiap T-state memiliki peran spesifik dalam sebuah siklus bus:
Waktu Akses Memori (Memory Access Time)
Ini adalah parameter paling kritis saat memilih chip memori. Ini adalah rentang waktu yang diizinkan oleh mikroprosesor bagi memori untuk menyediakan data setelah alamat diberikan.
kembali
6. 8088 AC Karakteristik kembali
Tabel ini menyajikan parameter untuk dua versi mikroprosesor: 8088 standar (5 MHz) dan 8088-2 (8 MHz). Kolom utamanya adalah:
Symbol: Kode singkatan untuk parameter waktu.
Parameter: Deskripsi singkat tentang apa yang diukur.
Min.: Waktu minimum yang dibutuhkan.
Max.: Waktu maksimum yang diizinkan.
Berikut adalah beberapa parameter paling penting dari tabel tersebut dan artinya:
Parameter Input Penting (Timing Requirements)
Ini adalah syarat waktu yang harus dipenuhi oleh sinyal yang masuk ke mikroprosesor.
Parameter Output Penting (Timing Responses)
Ini adalah spesifikasi waktu untuk sinyal yang keluar dari mikroprosesor.
kembali
7. Minimum Mode vs Maximum Mode kembali
 |
Maximum mode 8088 system |
 |
Minimum mode 8088 system.
|
Mode Operasi: Minimum vs. Maksimum
Mikroprosesor 8086 dan 8088 memiliki dua mode operasi yang dapat dipilih, yaitu mode minimum dan mode maksimum. Pilihan mode ini secara fundamental mengubah bagaimana mikroprosesor mengeluarkan sinyal kontrol dan berinteraksi dengan komponen lain dalam sistem. Pemilihan mode dilakukan melalui pin MN/MX.
Mode Minimum Simple System
Mode minimum adalah cara yang paling sederhana dan hemat biaya untuk mengoperasikan 8086/8088. Mode ini mirip dengan arsitektur mikroprosesor 8-bit Intel sebelumnya, seperti 8085A.
Sebuah sistem mode minimum, seperti yang ditunjukkan pada Gambar 9-19, tidak memerlukan 8288 Bus Controller.
Mode Maksimum Coprocessor System
Mode maksimum dirancang untuk sistem yang lebih kompleks dan berkinerja tinggi, terutama yang melibatkan penggunaan coprocessor.
Aktivasi: Mode ini dipilih dengan menghubungkan pin MN/MX ke GND (ground).
Karakteristik:
Berbagi Tugas: Dalam mode ini, beberapa pin kontrol pada mikroprosesor digantikan oleh sinyal status (S2,S1,S0) dan sinyal lain yang berfungsi untuk koordinasi dengan coprocessor.
Membutuhkan 8288 Bus Controller: Karena CPU tidak lagi menghasilkan sinyal kontrol bus secara langsung, sistem ini wajib menggunakan komponen eksternal, yaitu 8288 Bus Controller. Chip 8288 ini akan membaca kode status dari pin
S0−S2 dan membangkitkan (merekonstruksi) sinyal-sinyal kontrol yang diperlukan, seperti MRDC (Memory Read), MWTC (Memory Write), dan lainnya.
Penggunaan Ideal: Mode ini digunakan secara eksklusif pada sistem yang memiliki coprocessor, seperti 8087 Math Coprocessor.
kembali
8. The 8288 Bus Controller kembali
Saat mikroprosesor 8086/8088 dioperasikan dalam Mode Maksimum, ia tidak lagi menghasilkan sinyal-sinyal kontrol bus secara langsung. Sebagai gantinya, ia mengeluarkan kode status pada pin S2,S1,S0. Di sinilah 8288 Bus Controller berperan. Chip ini adalah komponen
wajib dalam mode maksimum yang berfungsi untuk membaca kode status tersebut dan membangkitkan (merekonstruksi) sinyal-sinyal kontrol yang dibutuhkan oleh memori dan I/O.
Cara Kerja Internal (Berdasarkan Block Diagram)
Diagram blok pada Gambar 9-21 (a) menunjukkan cara kerja 8288:
Status Decoder: Blok ini menerima input kode status (S2,S1,S0) dari mikroprosesor. Fungsinya adalah menerjemahkan kode ini untuk mengetahui jenis siklus bus apa yang sedang diminta oleh CPU (misalnya, baca memori, tulis I/O, dll.).
Control Logic: Blok ini menerima sinyal-sinyal kontrol seperti CLK
(untuk timing) dan CEN
(Control Enable) untuk mengatur kapan sinyal-sinyal output harus diaktifkan.
Command & Control Signal Generator: Setelah mengetahui jenis siklus yang sedang berjalan, dua blok generator ini akan menghasilkan sinyal-sinyal output yang sesuai. Hasilnya adalah bus kontrol yang lengkap dengan sinyal-sinyal terpisah untuk memori dan I/O.
Fungsi Pin-Pin Utama (Berdasarkan Pin-Out)
Pin-out pada Gambar 9-21 (b) menunjukkan koneksi input dan output dari 8288. Berikut adalah fungsi pin-pin yang paling penting:
Input Pins
S2,S1,S0 (Status Inputs): Terhubung langsung ke pin status mikroprosesor untuk menerima kode siklus bus.
CLK (Clock): Menerima sinyal clock dari 8284A untuk sinkronisasi internal.
CEN (Control Enable): Pin input yang mengaktifkan pin-pin output perintah (command output pins).
Output Pins (Sinyal yang Dihasilkan)
Ini adalah sinyal-sinyal yang dihilangkan dari CPU pada mode maksimum dan dibangkitkan kembali oleh 8288.
ALE (Address Latch Enable): Sinyal untuk mengunci (latch) alamat, sama seperti pada mode minimum.
DEN (Data Bus Enable): Mengaktifkan buffer bus data eksternal.
Penting: Sinyal DEN
ini aktif-tinggi (active high), berlawanan dengan sinyal DEN pada mode minimum.
DT/R (Data Transmit/Receive): Mengontrol arah buffer bus data.
MRDC (Memory Read Command): Sinyal perintah untuk membaca dari memori.
MWTC (Memory Write Command): Sinyal perintah untuk menulis ke memori.
IORC (I/O Read Command): Sinyal perintah khusus untuk membaca dari port I/O.
IOWC (I/O Write Command): Sinyal perintah khusus untuk menulis ke port I/O.
INTA (Interrupt Acknowledge): Sinyal untuk memberitahu perangkat bahwa permintaan interupsinya telah diterima.
kembali
Tidak ada komentar:
Posting Komentar