CHAPTER 9 : 8086/8088 HARDWARE SPECIFICATION
Gambar ini menampilkan pin-out prosesor Intel 8086 dalam dua mode operasi:
-
Gambar (a): Maximum Mode
-
Digunakan saat 8086 bekerja dengan koprosesor (misalnya 8087).
-
Beberapa pin berubah fungsi menjadi sinyal status (S0, S1, S2) dan sinyal kontrol tambahan.
-
Kendali bus eksternal tidak dihasilkan langsung oleh CPU, melainkan oleh chip pengendali bus 8288.
-
-
Gambar (b): Minimum Mode
-
Digunakan ketika 8086 berdiri sendiri (tanpa koprosesor).
-
Semua sinyal kontrol bus (RD, WR, INTA, ALE, DT/R, DEN, M/IO) dihasilkan langsung oleh prosesor.
-
Lebih sederhana dan murah, tetapi kurang fleksibel untuk multiprosesor.
-
Perbedaan Pin
-
Data/Address Bus (AD0–AD15)
-
Merupakan bus multiplex: pada awal siklus membawa alamat, lalu berubah fungsi menjadi data.
-
Inilah sebabnya perlu latch eksternal (misalnya 74LS373) untuk memisahkan alamat dan data.
-
-
Address Lines A16–A19 / Status Lines (S3–S6)
-
Bersifat multiplex: bisa membawa bit alamat tinggi (untuk mengakses hingga 1 MB memori) atau membawa bit status.
-
Status S3–S4 menunjukkan segmen yang sedang diakses, S5 menunjukkan kondisi flag IF, S6 selalu 0.
-
-
Kontrol Bus
-
Minimum mode: prosesor langsung menghasilkan sinyal RD, WR, M/IO, INTA, ALE, DT/R, DEN.
-
Maximum mode: pin yang sama berubah fungsi menjadi S0, S1, S2, QS0, QS1, RQ/GT0, RQ/GT1, LOCK, lalu dikodekan oleh chip 8288 bus controller menjadi sinyal kontrol memori/I/O.
-
-
Pin Khusus
-
MN/ MX (pin 33) → menentukan mode operasi. Disambungkan ke +5 V untuk minimum mode, atau ke GND untuk maximum mode.
-
BHE (Bus High Enable) → mengaktifkan byte tinggi (D15–D8) pada operasi 16-bit (penting pada 8086, tidak ada di 8088).
-
RQ/GT0 dan RQ/GT1 (hanya di maximum mode) → digunakan untuk permintaan DMA (Direct Memory Access).
-
QS0 dan QS1 → menunjukkan status queue instruksi internal (berguna untuk sinkronisasi dengan 8087)
Gambar 9–2 menampilkan pin-out IC 8284A Clock Generator, yaitu sebuah chip eksternal yang dirancang khusus untuk bekerja dengan mikroprosesor 8086/8088.
Tanpa 8284A, sistem 8086/8088 membutuhkan rangkaian tambahan cukup banyak hanya untuk menghasilkan sinyal clock, reset, dan sinkronisasi. Maka 8284A berfungsi sebagai “jantung waktu” sistem.
Fungsi Utama 8284A
-
Clock Generation (sumber clock utama CPU)
-
Menghasilkan sinyal CLK yang diberikan ke 8086/8088.
-
Frekuensi keluarannya adalah 1/3 dari frekuensi kristal yang dipasang pada pin X1 dan X2.
-
Duty cycle diset 33% (1/3 high, 2/3 low) → sesuai kebutuhan internal 8086/8088.
-
-
Peripheral Clock (PCLK)
-
Memberikan sinyal clock ke perangkat eksternal (peripheral).
-
Frekuensinya 1/6 dari frekuensi kristal, dengan duty cycle 50%.
-
-
RESET Synchronization
-
Menghasilkan sinyal RESET yang sesuai timing untuk prosesor.
-
Biasanya terhubung ke rangkaian RC atau tombol reset.
-
Menjamin prosesor mulai eksekusi dari alamat FFFF0H dengan kondisi stabil.
-
-
READY Synchronization
-
Sinkronisasi sinyal RDY1/RDY2 dari memori atau I/O ke input READY pada CPU.
-
Digunakan untuk menambah wait state jika perangkat terlalu lambat merespons.
-
Penjelasan Pin-Pin Penting
Dari gambar:
-
X1, X2 → Input kristal eksternal (misalnya 15 MHz).
-
EFI (External Frequency Input) → Alternatif input clock kalau tidak pakai kristal.
-
F/C (Frequency/Crystal Select) → Pemilih sumber clock: kristal (X1–X2) atau EFI.
-
CLK → Output clock utama ke prosesor (1/3 dari kristal).
-
PCLK → Clock untuk peripheral (1/6 dari kristal).
-
OSC → Output sinyal osilator, sama frekuensinya dengan kristal/EFI (sebelum dibagi).
-
RESET (output) → Reset untuk 8086/8088.
-
RES (input) → Input reset eksternal (dari RC atau tombol).
-
RDY1, RDY2 → Sinyal “kesiapan” dari memori/I/O → diproses jadi READY.
-
AEN1, AEN2 → Address Enable, untuk mengaktifkan RDY1/RDY2.
-
ASYNC / CSYNC → Pengaturan sinkronisasi ready (1 atau 2 tahap sinkronisasi, dan sinkronisasi multiprosesor).
-
READY → Output ke CPU, hasil sinkronisasi RDY1/RDY2.
-
VCC, GND → Power supply +5 V.
Gambar ini memperlihatkan diagram blok internal IC 8284A clock generator.
Fungsinya untuk menunjukkan bagaimana sinyal dari kristal atau sumber clock eksternal diproses, lalu dibagi, disinkronisasi, dan didistribusikan ke prosesor maupun perangkat lain.
Bagian-Bagian Utama (sesuai blok pada gambar)
-
Crystal Oscillator (X1–X2 / EFI + F/C)
-
X1–X2: bila dipasang kristal → menghasilkan osilasi pada frekuensi kristal.
-
EFI (External Frequency Input): alternatif kalau ingin pakai sumber clock eksternal.
-
F/C (Frequency/Crystal Select): memilih apakah sumber clock berasal dari kristal (X1–X2) atau EFI.
Output dari tahap ini disebut OSC (frekuensinya sama dengan kristal atau EFI).
-
Divider/Counter Section
-
Sinyal osilator (OSC) masuk ke pembagi frekuensi (divide-by-3) → menghasilkan CLK (clock untuk 8086/8088).
-
Dari divider ini juga dihasilkan PCLK (divide-by-6, clock untuk peripheral, duty cycle 50%).
Jadi, misalnya kristal = 15 MHz →
-
CLK = 5 MHz (15 ÷ 3).
-
PCLK = 2.5 MHz (15 ÷ 6).
-
Reset Section
-
Input RES (dari RC atau tombol reset) diproses oleh Schmitt Trigger + Flip-Flop.
-
Outputnya → RESET yang dikirim ke CPU dengan timing yang benar.
-
Tujuannya agar saat power-on, prosesor benar-benar mulai dalam kondisi stabil.
RESET harus high minimal 4 siklus clock dan ≥ 50 µs.
-
Ready Synchronization Section
-
Input RDY1 dan RDY2 (dari memori/I/O) masuk ke gerbang AND bersama AEN1/AEN2.
-
Outputnya digabung (OR) → masuk ke flip-flop sinkronisasi.
-
Ada pilihan 1 tahap sinkronisasi (ASYNC=1) atau 2 tahap sinkronisasi (ASYNC=0) untuk menghindari metastability.
-
Hasil akhirnya → READY, yang masuk ke 8086/8088.
READY digunakan untuk menyisipkan wait state bila perangkat terlalu lambat merespons.
Gambar ini memperlihatkan hubungan langsung antara IC 8284A Clock Generator dengan mikroprosesor 8086/8088.
Tujuannya adalah memperlihatkan bagaimana clock utama, reset, dan sinyal sinkronisasi dihasilkan dan diberikan ke prosesor.
Penjelasan Bagian-Bagian pada Gambar
-
Sumber Clock
-
Sebuah kristal 15 MHz dipasang ke pin X1–X2 pada 8284A.
-
8284A akan membagi frekuensi kristal → menghasilkan:
-
CLK = 5 MHz (15 ÷ 3) → diberikan ke input clock 8086/8088.
-
PCLK = 2.5 MHz (15 ÷ 6) → digunakan oleh perangkat peripheral.
-
OSC = 15 MHz → bisa digunakan untuk menggerakkan 8284A lain (misalnya di sistem multiprosesor).
Di gambar terlihat bahwa pin F/C dan CSYNC di-ground → artinya dipilih sumber dari kristal internal, bukan EFI (external frequency input).
-
Reset Circuit
-
Pada pin RES dari 8284A, terdapat rangkaian RC (Resistor + Capacitor) dan push button.
-
Saat power pertama kali ON, kapasitor masih kosong → memberikan logika 0 ke RES → lalu perlahan naik ke logika 1 (karena pengisian kapasitor).
-
8284A kemudian menghasilkan sinyal RESET yang dikirim ke CPU.
-
RESET ini dipastikan memenuhi syarat 8086/8088:
-
harus aktif minimal 4 siklus clock,
-
dan bertahan setidaknya 50 µs.
Dengan demikian, CPU mulai eksekusi dari alamat FFFF0H secara stabil.
-
READY Synchronization
-
Pin RDY1 dan RDY2 pada 8284A bisa dihubungkan ke perangkat memori/I/O.
-
Jika memori terlalu lambat, maka RDY1/RDY2 = 0 → 8284A menghasilkan sinyal READY = 0 → CPU akan menambahkan wait state.
-
Jika RDY1/RDY2 = 1, maka CPU melanjutkan eksekusi normal tanpa wait state.
Pada gambar, jalur ini diperlihatkan sebagai input yang bisa dihubungkan ke perangkat eksternal.
Gambar ini memperlihatkan mikroprosesor 8088 dengan rangkaian tambahan berupa latch 74LS373/74LS573 untuk demultiplexing bus alamat/data.
Ingat: pada 8088 (dan juga 8086), bus alamat dan bus data berbagi jalur fisik yang sama (multiplexed) → untuk menghemat jumlah pin.
Artinya:
-
Pada awal siklus, jalur AD0–AD7 berisi alamat.
-
Setelah itu, jalur yang sama berubah fungsi jadi data.
Agar perangkat memori/I/O bisa bekerja dengan benar, kita perlu memisahkan (demultiplexing) sinyal alamat dan data.
Crystal Oscillator (X1–X2 / EFI + F/C)
-
X1–X2: bila dipasang kristal → menghasilkan osilasi pada frekuensi kristal.
-
EFI (External Frequency Input): alternatif kalau ingin pakai sumber clock eksternal.
-
F/C (Frequency/Crystal Select): memilih apakah sumber clock berasal dari kristal (X1–X2) atau EFI.
Output dari tahap ini disebut OSC (frekuensinya sama dengan kristal atau EFI).
Divider/Counter Section
-
Sinyal osilator (OSC) masuk ke pembagi frekuensi (divide-by-3) → menghasilkan CLK (clock untuk 8086/8088).
-
Dari divider ini juga dihasilkan PCLK (divide-by-6, clock untuk peripheral, duty cycle 50%).
Jadi, misalnya kristal = 15 MHz →
-
CLK = 5 MHz (15 ÷ 3).
-
PCLK = 2.5 MHz (15 ÷ 6).
Reset Section
-
Input RES (dari RC atau tombol reset) diproses oleh Schmitt Trigger + Flip-Flop.
-
Outputnya → RESET yang dikirim ke CPU dengan timing yang benar.
-
Tujuannya agar saat power-on, prosesor benar-benar mulai dalam kondisi stabil.
RESET harus high minimal 4 siklus clock dan ≥ 50 µs.
Ready Synchronization Section
-
Input RDY1 dan RDY2 (dari memori/I/O) masuk ke gerbang AND bersama AEN1/AEN2.
-
Outputnya digabung (OR) → masuk ke flip-flop sinkronisasi.
-
Ada pilihan 1 tahap sinkronisasi (ASYNC=1) atau 2 tahap sinkronisasi (ASYNC=0) untuk menghindari metastability.
-
Hasil akhirnya → READY, yang masuk ke 8086/8088.
READY digunakan untuk menyisipkan wait state bila perangkat terlalu lambat merespons.
Gambar ini memperlihatkan hubungan langsung antara IC 8284A Clock Generator dengan mikroprosesor 8086/8088.
Tujuannya adalah memperlihatkan bagaimana clock utama, reset, dan sinyal sinkronisasi dihasilkan dan diberikan ke prosesor.
Penjelasan Bagian-Bagian pada Gambar
-
Sumber Clock
-
Sebuah kristal 15 MHz dipasang ke pin X1–X2 pada 8284A.
-
8284A akan membagi frekuensi kristal → menghasilkan:
-
CLK = 5 MHz (15 ÷ 3) → diberikan ke input clock 8086/8088.
-
PCLK = 2.5 MHz (15 ÷ 6) → digunakan oleh perangkat peripheral.
-
OSC = 15 MHz → bisa digunakan untuk menggerakkan 8284A lain (misalnya di sistem multiprosesor).
-
Di gambar terlihat bahwa pin F/C dan CSYNC di-ground → artinya dipilih sumber dari kristal internal, bukan EFI (external frequency input).
-
-
Reset Circuit
-
Pada pin RES dari 8284A, terdapat rangkaian RC (Resistor + Capacitor) dan push button.
-
Saat power pertama kali ON, kapasitor masih kosong → memberikan logika 0 ke RES → lalu perlahan naik ke logika 1 (karena pengisian kapasitor).
-
8284A kemudian menghasilkan sinyal RESET yang dikirim ke CPU.
-
RESET ini dipastikan memenuhi syarat 8086/8088:
-
harus aktif minimal 4 siklus clock,
-
dan bertahan setidaknya 50 µs.
-
Dengan demikian, CPU mulai eksekusi dari alamat FFFF0H secara stabil.
-
-
READY Synchronization
-
Pin RDY1 dan RDY2 pada 8284A bisa dihubungkan ke perangkat memori/I/O.
-
Jika memori terlalu lambat, maka RDY1/RDY2 = 0 → 8284A menghasilkan sinyal READY = 0 → CPU akan menambahkan wait state.
-
Jika RDY1/RDY2 = 1, maka CPU melanjutkan eksekusi normal tanpa wait state.
Pada gambar, jalur ini diperlihatkan sebagai input yang bisa dihubungkan ke perangkat eksternal.
-
Gambar ini memperlihatkan mikroprosesor 8088 dengan rangkaian tambahan berupa latch 74LS373/74LS573 untuk demultiplexing bus alamat/data.
Ingat: pada 8088 (dan juga 8086), bus alamat dan bus data berbagi jalur fisik yang sama (multiplexed) → untuk menghemat jumlah pin.
Artinya:
-
Pada awal siklus, jalur AD0–AD7 berisi alamat.
-
Setelah itu, jalur yang sama berubah fungsi jadi data.
Agar perangkat memori/I/O bisa bekerja dengan benar, kita perlu memisahkan (demultiplexing) sinyal alamat dan data.
Komponen pada Gambar
-
IC 8088
-
Memiliki bus AD0–AD7 (alamat/data bawah) + A8–A15 (alamat atas permanen) + A16/S3–A19/S6 (alamat/status).
-
Latch 74LS373/74LS573
-
Transparan (melewatkan data langsung) ketika ALE (Address Latch Enable) = 1.
-
Mengunci (menyimpan alamat) ketika ALE = 0.
Ada dua latch pada gambar:
-
Latch bawah → menyimpan A7–A0 (dari AD7–AD0).
-
Latch atas → menyimpan A16–A19 (dari A16/S3–A19/S6).
-
ALE (Address Latch Enable)
-
Sinyal dari CPU yang menandakan “sekarang jalur AD berisi alamat”.
-
Saat ALE aktif, latch akan mengambil alamat.
-
Saat ALE nonaktif, bus berubah fungsi jadi jalur data, tetapi latch sudah menyimpan alamat sebelumnya.
IC 8088
-
Memiliki bus AD0–AD7 (alamat/data bawah) + A8–A15 (alamat atas permanen) + A16/S3–A19/S6 (alamat/status).
Latch 74LS373/74LS573
-
Transparan (melewatkan data langsung) ketika ALE (Address Latch Enable) = 1.
-
Mengunci (menyimpan alamat) ketika ALE = 0.
Ada dua latch pada gambar:
-
Latch bawah → menyimpan A7–A0 (dari AD7–AD0).
-
Latch atas → menyimpan A16–A19 (dari A16/S3–A19/S6).
ALE (Address Latch Enable)
-
Sinyal dari CPU yang menandakan “sekarang jalur AD berisi alamat”.
-
Saat ALE aktif, latch akan mengambil alamat.
-
Saat ALE nonaktif, bus berubah fungsi jadi jalur data, tetapi latch sudah menyimpan alamat sebelumnya.
Hasil dari Demultiplexing
-
Alamat penuh A19–A0 tersedia secara stabil:
-
A7–A0 → dari latch bawah.
-
A8–A15 → langsung dari CPU.
-
A16–A19 → dari latch atas.
-
Data D7–D0 tetap tersedia di bus AD0–AD7 setelah ALE kembali 0.
-
Dengan demikian, sistem mendapatkan bus alamat permanen dan bus data terpisah, sesuai kebutuhan memori/I/O.
Hasil akhirnya: 8088 bisa mengakses 1 MB ruang alamat (20-bit address bus) meskipun hanya punya 40 pin paket fisik.
Gambar ini memperlihatkan mikroprosesor 8086 dengan rangkaian tambahan latch 74LS373 untuk demultiplexing bus alamat/data, mirip dengan gambar 9–5 (8088), tapi lebih kompleks.
Kenapa? Karena 8086 punya bus data 16-bit (AD0–AD15), sehingga jumlah pin multiplexed lebih banyak daripada 8088.
-
Alamat penuh A19–A0 tersedia secara stabil:
-
A7–A0 → dari latch bawah.
-
A8–A15 → langsung dari CPU.
-
A16–A19 → dari latch atas.
-
-
Data D7–D0 tetap tersedia di bus AD0–AD7 setelah ALE kembali 0.
-
Dengan demikian, sistem mendapatkan bus alamat permanen dan bus data terpisah, sesuai kebutuhan memori/I/O.
Hasil akhirnya: 8088 bisa mengakses 1 MB ruang alamat (20-bit address bus) meskipun hanya punya 40 pin paket fisik.
Gambar ini memperlihatkan mikroprosesor 8086 dengan rangkaian tambahan latch 74LS373 untuk demultiplexing bus alamat/data, mirip dengan gambar 9–5 (8088), tapi lebih kompleks.
Kenapa? Karena 8086 punya bus data 16-bit (AD0–AD15), sehingga jumlah pin multiplexed lebih banyak daripada 8088.
Bus Multiplexed pada 8086
-
AD0–AD15 → membawa alamat (A0–A15) saat ALE = 1, lalu berubah jadi data (D0–D15) saat ALE = 0.
-
A16/S3 – A19/S6 → multiplex antara alamat tinggi (A16–A19) dan status bit (S3–S6).
-
BHE/S7 → Bus High Enable + status tambahan (digunakan untuk memilih byte tinggi D15–D8).
AD0–AD15 → membawa alamat (A0–A15) saat ALE = 1, lalu berubah jadi data (D0–D15) saat ALE = 0.
A16/S3 – A19/S6 → multiplex antara alamat tinggi (A16–A19) dan status bit (S3–S6).
BHE/S7 → Bus High Enable + status tambahan (digunakan untuk memilih byte tinggi D15–D8).
Jadi total 20-bit alamat (A0–A19) harus diekstrak dari jalur yang multiplexed.
Cara Demultiplexing pada Gambar
-
Latch Pertama (74LS373 bawah)
-
Menyimpan A7–A0 dari AD7–AD0.
-
Latch Kedua (74LS373 tengah)
-
Menyimpan A15–A8 dari AD15–AD8.
-
Latch Ketiga (74LS373 atas)
-
Menyimpan A19–A16 dari A16/S3–A19/S6.
-
Input ekstra juga dipakai untuk BHE/S7, yang penting dalam pengalamatan byte tinggi.
-
Sinyal ALE (Address Latch Enable)
-
Saat ALE = 1 → latch “terbuka”, alamat masuk.
-
Saat ALE = 0 → latch “mengunci” alamat, sementara bus AD berubah jadi data bus (D0–D15).
Latch Pertama (74LS373 bawah)
-
Menyimpan A7–A0 dari AD7–AD0.
Latch Kedua (74LS373 tengah)
-
Menyimpan A15–A8 dari AD15–AD8.
Latch Ketiga (74LS373 atas)
-
Menyimpan A19–A16 dari A16/S3–A19/S6.
-
Input ekstra juga dipakai untuk BHE/S7, yang penting dalam pengalamatan byte tinggi.
Sinyal ALE (Address Latch Enable)
-
Saat ALE = 1 → latch “terbuka”, alamat masuk.
-
Saat ALE = 0 → latch “mengunci” alamat, sementara bus AD berubah jadi data bus (D0–D15).
Hasil dari Demultiplexing
Setelah latch dipasang, sistem mendapatkan:
-
Address bus permanen: A19–A0
-
Data bus permanen: D15–D0 (16-bit)
-
Control bus: RD, WR, M/IO, dll.
Dengan ini, 8086 bisa mengakses 1 MB alamat memori (20-bit) dengan bus data 16-bit penuh.
Setelah latch dipasang, sistem mendapatkan:
-
Address bus permanen: A19–A0
-
Data bus permanen: D15–D0 (16-bit)
-
Control bus: RD, WR, M/IO, dll.
Dengan ini, 8086 bisa mengakses 1 MB alamat memori (20-bit) dengan bus data 16-bit penuh.
Komentar
Posting Komentar