8086/8088 Hardware

  PIN OUT DAN FUNGSI PIN


DAFTAR ISI
3.DASAR TEORI


1.Pendahuluan[Back]
Dalam bab ini, fungsi pin dari kedua mikroprosesor 8086 dan 8088 dijelaskan secara rinci, dan
informasi diberikan mengenai topik-topik hardware berikut: pembangkitan jam, penyangga bus,
penahanan bus, timing, keadaan tunggu, dan operasi mode minimum versus mode maksimum.
Mikroprosesor sederhana ini dijelaskan terlebih dahulu karena strukturnya yang lebih sederhana,
sebagai pengenalan terhadap keluarga mikroprosesor Intel.

Sebelum dapat menghubungkan atau mengantarmukakan apa pun ke mikroprosesor, penting
untuk memahami fungsi pin dan timing. Mikroprosesor dasar ini memiliki pin dasar yang sama
dengan mikroprosesor Pentium 4 atau Core2 terbaru. Oleh karena itu, informasi dalam bab ini
sangat penting untuk pemahaman yang lengkap tentang antarmuka memori dan I/O, yang akan
kita bahas dalam bab-bab selanjutnya dari teks ini.

2.Tujuan[Back]
Setelah menyelesaikan bab ini, Anda akan dapat:
  • Menjelaskan fungsi setiap pin pada 8086 dan 8088.
  • Memahami karakteristik DC mikroprosesor dan menunjukkan fan-out-nya ke keluarga logika umum.
  • Menggunakan chip generator clock (8284A) untuk menyediakan clock bagi mikroprosesor.
  • Menghubungkan buffer dan latch ke bus.
  • Menerjemahkan diagram waktu.
  • Menjelaskan keadaan tunggu dan menghubungkan sirkuit yang diperlukan untuk menyebabkan berbagai jumlah keadaan tunggu.
  • Menjelaskan perbedaan antara mode operasi minimum dan maksimum.

 

3.Dasar Teori[Back]
  • Pin Out
          Gambar 9–1 menggambarkan konfigurasi pin pada mikroprosesor 8086 dan 8088. Sebagai perbandingan yang mendetail menunjukkan, hampir tidak ada perbedaan antara kedua mikroprosesor ini—keduanya dikemas dalam paket dual in-line (DIP) dengan 40 pin.
Fig 9.1 (a) Konfigurasi pin 8086 dalam
mode maksimum; (b) konfigurasi pin 8086 dalam
mode minimum.
        Seperti yang disebutkan dalam Bab 1, 8086 adalah mikroprosesor 16-bit dengan bus data 16-bit, sedangkan 8088 adalah mikroprosesor 16-bit dengan bus data 8-bit. (Seperti yang terlihat pada konfigurasi pin, 8086 memiliki koneksi pin AD0–AD15, sedangkan 8088 memiliki koneksi pin AD0–AD7.) Lebar bus data oleh karena itu merupakan perbedaan utama antara kedua mikroprosesor ini. Hal ini memungkinkan 8086 untuk mentransfer data 16-bit dengan lebih efisien. Namun, terdapat perbedaan minor pada salah satu sinyal kontrol. 8086 memiliki M/IO sedangkan 8088 memiliki pin IO/M. Perbedaan hardware lainnya terdapat pada Pin 34 kedua sirkuit terpadu: pada 8088, pin tersebut adalah SS0, sedangkan pada 8086, pin tersebut adalah BHE/S7.

  • Persyaratan Sumber Tegangan
         Baik mikroprosesor 8086 maupun 8088 memerlukan tegangan pasokan +5,0 V dengan toleransi tegangan pasokan ±10 persen. Mikroprosesor 8086 menggunakan arus pasokan maksimum 360 mA, sedangkan 8088 menarik arus maksimum 340 mA. Keduanya beroperasi pada suhu lingkungan antara 32° F dan 180° F. Rentang ini tidak cukup luas untuk digunakan di luar ruangan pada musim dingin atau bahkan musim panas, tetapi versi dengan rentang suhu yang diperluas dari mikroprosesor 8086 dan 8088 tersedia. Ada juga versi CMOS, yang memerlukan arus suplai sangat rendah dan memiliki rentang suhu yang diperluas. 80C88 dan 80C86 adalah versi CMOS yang hanya memerlukan arus suplai 10 mA dan berfungsi dalam suhu ekstrem antara -40° F hingga +225° F.

Tabel 9.1 Karakteristik Input dari Mikroprosessor 8086 dan 8088
  • Karakteristik Input
        Karakteristik masukan mikroprosesor ini kompatibel dengan semua komponen logika standar yang tersedia saat ini. Tabel 9–1 menggambarkan tingkat tegangan masukan dan persyaratan arus masukan untuk setiap pin masukan pada kedua mikroprosesor. Tingkat arus masukan sangat kecil karena masukan tersebut merupakan koneksi gerbang MOSFET dan hanya mewakili arus bocor.

Tabel 9.2 Karakteristik Output Mikroprosessor 8086 dan 8088
Tabel 9.3 Rekomendasi untuk penggunaan koneksi fan-out dari pin mana pun pada 8086/8088.
  • Karakteristik Output
    Tabel 9–2 menggambarkan ciri-ciri keluaran dari semua pin keluaran mikroprosesor ini. Tingkat tegangan logika 1 pada 8086/8088 kompatibel dengan kebanyakan keluarga logika standar, tetapi tingkat tegangan logika 0 tidak. Sirkuit logika standar memiliki tegangan logika 0 maksimum 0,4 V, sedangkan 8086/8088 memiliki maksimum 0,45 V. Oleh karena itu, terdapat perbedaan 0,05 V.

    Perbedaan ini mengurangi ketahanan terhadap noise dari tingkat standar 400 mV (0,8 V – 0,45 V) menjadi 350 mV. (Ketahanan terhadap noise adalah selisih antara tegangan keluaran logika 0 dan tegangan masukan logika 0.) Penurunan ketahanan terhadap noise dapat menyebabkan masalah pada koneksi kabel yang panjangatau beban yang terlalu banyak. Oleh karena itu, disarankan agar tidak lebih dari 10 beban dari jenis apa pun atau kombinasi dihubungkan ke pin output tanpa penyangga. Jika faktor beban ini dilampaui, noise akan mulai menyebabkan masalah timing.
      
 Tabel 9–3 mencantumkan beberapa keluarga logika yang lebih umum dan fan-out yang direkomendasikan dari 8086/8088. Sink Current adalah Arus yang diserap (arus masuk ke input ketika logika rendah). Source Current adalah Arus yang diberikan (arus keluar dari output ketika logika tinggi). Sedangkan fan out adalah Jumlah maksimum input IC dari keluarga tersebut yang bisa digerakkan oleh satu output pin 8086/8088. Pilihan terbaik untuk jenis komponen yang digunakan dalam koneksi ke pin output 8086/8088 adalah komponen logika LS, 74ALS, atau 74HC. Perhatikan bahwa beberapa arus fan-out dihitung melebihi 10 unit beban. Oleh karena itu, disarankan agar jika fan-out melebihi 10 unit beban diperlukan, sistem harus di-buffer. Sink Current adalah Arus yang diserap (arus masuk ke input ketika logika rendah). Source Current adalah Arus yang diberikan (arus keluar dari output ketika logika tinggi). Sedangkan fan out adalah Jumlah maksimum input IC dari keluarga tersebut yang bisa digerakkan oleh satu output pin 8086/8088.

    Kita ambil contoh yaitu IC TTL 74LS, dimana IC ini memiliki karalteristik Sink Current sebesar -0.4 mA yang artinya sebuah pin output dari IC TTL 74LS mampu menyerap arus sebesar 0,4 mA ketika output dalam kondisi low (0). Dengan kata lain, jika pin output ini dihubungkan ke input IC lain, maka beban maksimal yang bisa ditarik ke ground hanya sampai 0,4 mA. IC ini juga memiliki source current sebesar 20 µA. Artinya, saat output dalam kondisi high (1), pin hanya mampu memberikan arus kecil sekitar 20 µA untuk mengalirkan ke input IC lain. Karena nilai arus yang disediakan sangat kecil, maka tidak bisa digunakan untuk menghidupkan beban langsung (misalnya LED tanpa resistor yang tepat). Dan yang terakhir yaitu IC ini memiliki fan out (jumlah maksimum input gate IC lain yang bisa digerakkan oleh satu output.) 5, artinya Dalam hal ini, sebuah output IC 74LS hanya dapat menggerakkan maksimal 5 input IC TTL lain agar tetap bekerja dalam batas arus yang direkomendasikan.

  • Koneksi Pin
  1. AD₇–AD₀
    Jalur bus alamat/data 8088 adalah bus alamat/data multipleks dari 8088 dan berisi 8 bit paling rendah dari alamat memori atau nomor port I/O ketika ALE aktif (logika 1) atau data ketika ALE tidak aktif (logika 0). Pin-pin ini berada pada kondisi impedansi tinggi selama hold acknowledge.
  2. A₁₅–A₈
    Bus alamat 8088 menyediakan bit alamat paruh atas yang tetap hadir sepanjang siklus bus. Jalur alamat ini masuk ke keadaan impedansi tinggi selama hold acknowledge.
  3. AD₁₅–AD₈
    Bus alamat/data 8086 menyusun bus alamat/data multipleks paruh atas. Jalur ini berisi alamat A₁₅–A₈ ketika ALE logika 1, dan berisi data D₁₅–D₈ ketika ALE logika 0. Jalur ini masuk ke keadaan impedansi tinggi selama hold acknowledge.

  4. A₁₉/S₆–A₁₆/S₃
    Jalur alamat/status adalah jalur multipleks yang menyediakan sinyal alamat A₁₉–A₁₆ dan juga sinyal status S₆–S₃. Jalur ini juga masuk ke keadaan impedansi tinggi selama hold acknowledge.
        a.) S₆ selalu logika 0.
        b.) S₅ menunjukkan kondisi bit IF (Interrupt Flag).
        c.) S₄ dan S₃ menunjukkan segmen mana yang sedang diakses selama siklus bus.

  5. RD
    Ketika sinyal read logika 0, bus data siap menerima data dari memori atau perangkat I/O. Pin ini mengambang ke impedansi tinggi selama hold acknowledge.

  6. READY
    Input READY digunakan untuk memasukkan wait state ke dalam mikroprosesor. Jika pin ini logika 0, prosesor berhenti pada wait state. Jika logika 1, tidak berpengaruh pada operasi.

  7. INTR
    Interrupt request digunakan untuk meminta interupsi perangkat keras. Jika INTR tetap logika tinggi saat IF=1, maka 8086/8088 akan mengeksekusi siklus pengakuan interupsi (INTA) setelah instruksi selesai.

  8. TEST
    Pin TEST digunakan oleh instruksi WAIT. Jika TEST=0, instruksi WAIT bertindak sebagai NOP. Jika TEST=1, instruksi WAIT menunggu hingga TEST=0. Biasanya dihubungkan ke prosesor numerik 8087.

  9. NMI
    Non-maskable interrupt mirip dengan INTR tetapi tidak dipengaruhi oleh bit IF. Jika aktif, NMI selalu menggunakan vektor interupsi 2.

  10. RESET
    Mengatur ulang mikroprosesor. Jika ditahan logika tinggi minimal 4 siklus clock, prosesor akan mulai mengeksekusi dari alamat FFFF0h dan menonaktifkan interupsi.

  11. CLK
    Pin clock menyediakan sinyal waktu dasar. Sinyal harus memiliki duty cycle 33% (tinggi 1/3, rendah 2/3) untuk sinkronisasi internal prosesor.

  12. VCC
    Catu daya +5 V ±10%.

  13. GND
    Ground sebagai jalur referensi. Terdapat dua pin ground pada 8086/8088 yang harus dihubungkan.

  14. MN/MX
    Memilih mode minimum atau maksimum. Jika mode minimum, pin MN/MX dihubungkan ke +5 V. Jika mode maksimum, dihubungkan ke GND.

  15. BHE/S₇
    Bus high enable digunakan untuk mengaktifkan byte paling signifikan (D₁₅–D₈) pada operasi baca/tulis. S₇ selalu logika 1.

  • Pin mode Minimum
    Operasi mode minimum 8086/8088 diperoleh dengan menghubungkan pin MN/ langsung ke +5.0 V. Jika pin ini dihunungkan ke +5.0 V melalui register pull-up, akan menyebabkan fungsi yang tidak benar.
  1. IO/M atau M/IO
    Menunjukkan apakah bus alamat berisi alamat memori atau port I/O.
  2. WR
    Sinyal write. Saat WR=0, data pada bus valid untuk ditulis ke memori atau I/O.
  3. INTA
    Interrupt acknowledge, sebagai respon terhadap INTR. Biasanya dipakai untuk mengaktifkan perangkat interupsi agar menaruh nomor vektor interupsi pada bus data.
  4. ALE
    Address latch enable, digunakan untuk latch alamat pada bus alamat/data.
  5. DT/ R̅
    Data transmit/receive, menunjukkan apakah prosesor sedang mengirim data (1) atau menerima data (0).
  6. DEN
    Data bus enable, mengaktifkan buffer bus data eksternal.
  7. HOLD
    Permintaan dari perangkat DMA agar prosesor menyerahkan kendali bus.
  8. HLDA
    Hold acknowledge, respon prosesor terhadap HOLD.
  9. SS0
    Pin status, setara dengan S0 di mode minimum. Digunakan bersama IO/M dan DT/ R̅ untuk mendekode siklus bus.
  • Pin Mode Maksimum
    Untuk mencapai mode maksimum saat digunakan dengan coprocessor eksternal, hubungkan pin MN/ ke ground.
  1. S₂, S₁, S₀
    Status bits yang menunjukkan fungsi siklus bus saat ini. Biasanya didekode oleh bus controller 8288.
  2. RQ/ G̅T̅1 dan RQ/ G̅T̅0
    Request/grant untuk akses memori langsung (DMA). Jalur ini bidirectional, digunakan untuk meminta dan memberikan izin DMA.
Tabel 9.4 Fungsi dan bit Status S3 dan S4
   Tabel 9-4 menjelaskan bahwa Prosesor 8086/8088 menggunakan jalur A₁₉/S₆–A₁₆/S₃ yang bersifat multiplexedArtinya, selain sebagai alamat, jalur ini juga bisa membawa bit status (S₃–S₆) yang memberikan informasi tambahan tentang segmen memori yang sedang digunakan dalam siklus bus tertentu. Bit S₃ dan S₄ secara khusus menunjukkan segmen mana yang sedang dipakai prosesor untuk operasi baca/tulis. Fungsi S₃ dan S₄ pada tabel adalah:
  • S₄=0, S₃=0 → Extra Segment (ES)
    Operasi sedang menggunakan Extra Segment.
  • S₄=0, S₃=1 → Stack Segment (SS)
    Operasi sedang menggunakan Stack Segment.
  • S₄=1, S₃=0 → Code Segment (CS) atau tidak ada segmen
    Digunakan saat prosesor sedang mengakses instruksi dari Code Segment.
  • S₄=1, S₃=1 → Data Segment (DS)
    Operasi sedang menggunakan Data Segment.
Tabel 9-5 Status Siklus Bus (8088) menggunakan SSO
Tabel 9-6 
TABEL 9–5 menunjukkan fungsi siklus bus pada prosesor 8088 dengan melihat kombinasi tiga sinyal:
  • IO/ M̅ → Menunjukkan apakah operasi menuju memori (M) atau I/O.

  • DT/ R̅ → Menunjukkan apakah prosesor sedang mentransmisikan data (DT) atau menerima data (R).

  • SS₀ → Status tambahan untuk melengkapi pengkodean siklus bus.

Kombinasi dari ketiga sinyal ini memberi tahu jenis operasi bus yang sedang berlangsung:
  • 000 → Interrupt acknowledge (pengakuan interupsi).

  • 001 → Memory read (membaca dari memori).

  • 010 → Memory write (menulis ke memori).

  • 011 → Halt (berhenti).

  • 100 → Opcode fetch (mengambil instruksi dari memori).

  • 101 → I/O read (membaca dari I/O).

  • 110 → I/O write (menulis ke I/O).

  • 111 → Passive (tidak ada aktivitas bus).

Tabel 9-6 ini berlaku untuk 8086/8088 dalam mode maksimum, di mana sinyal kendali bus dihasilkan oleh 8288 bus controller.

Tiga bit status S₂, S₁, S₀ menentukan fungsi siklus bus:

  • 000 → Interrupt acknowledge

  • 001 → I/O read

  • 010 → I/O write

  • 011 → Halt

  • 100 → Opcode fetch

  • 101 → Memory read

  • 110 → Memory write

  • 111 → Passive

Ini mirip dengan Tabel 9–5, hanya saja formatnya pakai status bit dari bus controller eksternal.

Tabel 9-7 menjelaskan status antrian instruksi (prefetch queue) pada prosesor.
Prosesor 8086/8088 punya mekanisme prefetch untuk mengambil instruksi lebih awal dan menyimpannya di antrian (queue).
Dua bit status QS₁ dan QS₀ menunjukkan kondisi antrian:
  • 00 → Queue idle (tidak ada aktivitas).
  • 01 → First byte of opcode (byte pertama dari instruksi baru diambil).
  • 10 → Queue empty (antrian kosong).
  • 11 → Subsequent byte of opcode (byte berikutnya dari instruksi dimuat ke antrian).

8284A adalah komponen tambahan untuk mikroprosesor 8086/8088. Tanpa generator clock,    banyak sirkuit tambahan diperlukan untuk menghasilkan clock (CLK) dalam sistem berbasis 8086/8088. 8284A menyediakan fungsi atau sinyal dasar berikut: pembangkitan jam, sinkronisasi RESET, sinkronisasi READY, dan sinyal jam periferal tingkat TTL. Gambar 9–2 menunjukkan konfigurasi pin generator jam 8284A.
Gambar 9-2 Pin Out 8284A Clock Generator

  • Fungsi Pin. 

            8284A adalah sirkuit terpadu 18 pin yang dirancang khusus untuk digunakan dengan mikroprosesor 8086/8088. Berikut adalah daftar setiap pin dan fungsinya.

  1. AEN1 dan AEN2
    Pin Address enable disediakan untuk memberikan sinyal enable bus ke RDY1 dan RDY2. Lihat Gambar 9–5 yang mengilustrasikan penggunaan pin ini, yang digunakan untuk menyebabkan wait states, bersama dengan input RDY1 dan RDY2. Wait states dihasilkan oleh pin READY dari mikroprosesor 8086/8088, yang dikendalikan oleh dua input ini.
  2. RDY1 dan RDY2
    Pin Bus ready inputs disediakan, bersama dengan pin AEN1 dan AEN2, untuk menyebabkan wait states dalam sistem berbasis 8086/8088.
  3. ASYNC
    Pin Ready synchronization selection input memilih antara satu atau dua tahap sinkronisasi untuk input RDY1 dan RDY2.
  4. READY
    Ready adalah output pin yang terhubung ke input READY dari 8086/8088. Sinyal ini disinkronkan dengan input RDY1 dan RDY2.
  5. X₁ dan X₂
    Pin Crystal oscillator terhubung ke kristal eksternal yang digunakan sebagai sumber waktu untuk pembangkit clock dan semua fungsinya.
  6. F/C
    Pin Frequency/crystal select input memilih sumber clock untuk 8284A. Jika pin ini ditahan logika tinggi, clock eksternal diberikan ke input EFI; jika ditahan logika rendah, osilator kristal internal menyediakan sinyal waktu. Input frekuensi eksternal digunakan ketika pin F/C dihubungkan ke logika tinggi. EFI memasok waktu ketika pin F/C logika tinggi.
  7. CLK
    Pin Clock output menyediakan sinyal clock CLK ke mikroprosesor 8086/8088 dan komponen lain dalam sistem. Sinyal CLK memiliki frekuensi sepertiga dari frekuensi kristal atau EFI, dan memiliki siklus kerja 33% sebagaimana dibutuhkan oleh 8086/8088.
  8. PCLK
    Peripheral clock signal adalah satu perenam dari frekuensi kristal atau EFI, dan memiliki siklus kerja 50%. PCLK menyediakan sinyal clock untuk peralatan periferal dalam sistem.
  9. OSC
    Oscillator output adalah sinyal level TTL dengan frekuensi sama dengan kristal atau EFI input. Pin OSC menyediakan input EFI ke generator clock 8284A lain dalam sistem multiprosesor.
  10. RES
    Reset input adalah input aktif-rendah ke 8284A. Pin RES ini sering dihubungkan ke rangkaian RC yang menghasilkan daya-reset.
  11. RESET
    Reset output terhubung ke input RESET dari 8086/8088.
  12. CSYNC
    Pin Clock synchronization digunakan setiap kali input EFI menyediakan sinkronisasi dalam sistem multiprosesor. Jika digunakan osilator kristal internal, pin ini harus dihubungkan ke ground.
  13. GND
    Pin Ground connection ke ground.
  14. VCC
    Power supply pin terhubung ke +5.0 V dengan toleransi ±10%.
Gambar 9-3 Block diagram internal dari 8284A Clock Generator

Berikut merupakan penjelasan dari Diagram Blok Internal 8284A Clock Generator:

  1. XTAL Oscillator (X1, X2)

    • Bagian ini merupakan osilator kristal internal.

    • Kristal eksternal dihubungkan ke pin X1 dan X2 untuk menghasilkan sinyal osilasi.

    • Hasil osilasi ini digunakan sebagai sumber clock utama jika pin F/C diatur untuk mode kristal.

    • Output-nya juga disalurkan ke OSC (Oscillator Output)

  2. F/C dan EFI (Frequency/Crystal Select & External Frequency Input)

    • Pin F/C menentukan sumber clock:

      • Low (0) → gunakan XTAL oscillator internal.

      • High (1) → gunakan clock eksternal dari pin EFI.

    • Output clock yang dipilih disalurkan ke rangkaian sinkronisasi (SYNC).

  3. CSYNC (Clock Synchronization)

    • Digunakan dalam sistem multiprosesor agar clock antar prosesor tetap sinkron.

    • Jika memakai kristal internal, pin ini harus di-ground.

  4. SYNC Blocks (+3 SYNC dan +2 SYNC)

    • Berfungsi untuk membagi frekuensi dan menghasilkan sinyal CLK dan PCLK:

      • CLK (Clock Output) = ⅓ dari frekuensi kristal/EFI, dengan duty cycle 33% (sesuai kebutuhan 8086/8088).

      • PCLK (Peripheral Clock) = ½ dari frekuensi kristal/EFI, dengan duty cycle 50% (untuk perangkat periferal).

  5. OSC Output

    • Memberikan sinyal osilasi mentah (frekuensi asli dari kristal/EFI) ke luar chip.

    • Bisa digunakan sebagai sumber EFI untuk clock generator lain (pada sistem multiprosesor).

  6. RESET Section (RES dan RESET)

    • RES = input reset aktif-rendah (biasanya dari rangkaian RC untuk power-on reset).

    • Masuk ke flip-flop D untuk disinkronkan dengan clock, lalu menghasilkan RESET output ke CPU (8086/8088).

  7. READY Synchronization Section (RDY1, RDY2, AEN1, AEN2, ASYNC)

    • Bagian ini bertugas untuk sinkronisasi sinyal READY dari memori atau perangkat I/O.

    • RDY1 dan RDY2 adalah sinyal "ready" dari memori, dikendalikan oleh AEN1 dan AEN2 (Address Enable).

    • Jika RDY1/RDY2 tidak aktif, akan menghasilkan WAIT state pada CPU.

    • Sinyal ini masuk ke dua flip-flop (FF1 dan FF2) untuk memastikan READY yang dikirim ke CPU sudah tersinkronisasi dengan clock.

    • Pin ASYNC memilih apakah sinkronisasi dilakukan satu tahap (FF1 saja) atau dua tahap (FF1 → FF2).

    8284A adalah komponen yang relatif mudah dipahami. Gambar 9–3 menggambarkan diagram waktu internal generator jam 8284A.

    Operasi Bagian Jam. Bagian atas diagram logika mewakili bagian jam dan sinkronisasi generator jam 8284A. Seperti yang ditunjukkan pada diagram, osilator kristal memiliki dua input: X1 dan X2. Jika kristal terpasang pada X1 dan X2, osilator menghasilkan sinyal gelombang persegi dengan frekuensi yang sama dengan kristal. Sinyal gelombang persegi ini disalurkan ke gerbang AND dan juga ke buffer inversi yang menghasilkan sinyal output OSC. Sinyal OSC kadang-kadang digunakan sebagai input EFI untuk sirkuit 8284A lain dalam sistem.

    Pemeriksaan gerbang AND menunjukkan bahwa ketika F/ adalah logika 0, keluaran osilator diarahkan ke penghitung pembagi 3. Jika F/ adalah logika 1, maka EFI diarahkan ke penghitung.

    Output dari pembagi 3 menghasilkan timing untuk sinkronisasi siap, sinyal untuk pembagi 2 lainnya, dan sinyal CLK ke mikroprosesor 8086/8088. Sinyal CLK juga dibuffer sebelum meninggalkan generator jam. Perhatikan bahwa output dari pembagi pertama disalurkan ke pembagi kedua. Kedua penghitung yang disusun secara berurutan ini menghasilkan keluaran pembagi 6 di PCLK, keluaran jam periferal.  

    Gambar 9–4 menunjukkan cara 8284A dihubungkan ke 8086/8088. Perhatikan bahwa F/ dan CSYNC dihubungkan ke ground untuk memilih osilator kristal, dan bahwa kristal 15 MHz menyediakan clock signal normal 5 MHz ke 8086/8088. Perhatikan bahwa F/ dan CSYNC dihubungkan ke ground untuk memilih osilator kristal, dan bahwa kristal 15 MHz menyediakan clcok signal normal 5 MHz ke 8086/8088, serta clock signal periferal 2,5 MHz.

  • Operasi Bagian Reset. 
            Bagian reset pada 8284A sangat sederhana: terdiri dari buffer Schmitt trigger dan sirkuit flip-flop tipe D tunggal. Flip-flop tipe D memastikan bahwa persyaratan waktu masukan RESET pada 8086/8088 terpenuhi. Sirkuit ini menerapkan sinyal RESET ke mikroprosesor pada tepi negatif (transisi 1 ke 0) setiap clock. Mikroprosesor 8086/8088 mengambil sampel RESET pada tepi positif (transisi 0 ke 1) clock; oleh karena itu, sirkuit ini memenuhi persyaratan waktu 8086/8088.

Gambar 9-4 Clock Generator yang terhubung ke Microprocessor 8086/8088

        Pada Gambar 9–4. Perhatikan bahwa sirkuit RC memberikan sinyal logika 0 ke pin input saat daya pertama kali diterapkan ke sistem. Setelah beberapa saat, input menjadi sinyal logika 1 karena kapasitor mengisi daya menuju +5,0 V melalui resistor. Tombol tekan memungkinkan mikrokontroler direset oleh operator. Waktu reset yang benar memerlukan sinyal RESET menjadi logika 1 paling lambat empat siklus jam setelah daya sistem diterapkan, dan harus dipertahankan pada level tinggi selama setidaknya 50 μs. Flip-flop memastikan RESET menjadi tinggi dalam empat siklus jam, dan konstanta waktu RC memastikan sinyal tersebut tetap tinggi setidaknya 50 μs.

Bagian bagian pada gambar meliputi:

  1. Kristal 15 MHz (X1, X2)

    • Dipasang pada pin X1 dan X2 dari 8284A.

    • Kristal menghasilkan frekuensi dasar 15 MHz.

    • Sesuai desain internal 8284A, output CLK yang diberikan ke mikroprosesor adalah ⅓ dari frekuensi kristal, yaitu 5 MHz.

  2. Rangkaian Reset (RES Pin)

    • Terdiri dari resistor 10 kΩ, kapasitor 10 µF, dan dioda.

    • Rangkaian ini berfungsi sebagai power-on reset.

    • Saat catu daya +5V baru masuk, kapasitor masih kosong sehingga tegangan RES = 0 (aktif).

    • Seiring waktu, kapasitor terisi → tegangan naik → RES menjadi tidak aktif.

    • Dioda dipasang agar saat daya dimatikan, kapasitor cepat dikosongkan (discharge).

  3. CSYNC (Clock Synchronization)

    • Pada gambar ini dihubungkan ke ground.

    • Artinya, sistem tidak menggunakan sinkronisasi clock eksternal (hanya single processor system).

  4. Output 8284A

    • CLK (5 MHz): diberikan ke pin CLK mikroprosesor 8086/8088.

    • RESET: diberikan ke pin RESET mikroprosesor.

    • Jadi 8284A tidak hanya memberi clock, tapi juga memberikan sinyal reset yang valid dan ter-sinkronisasi.

Alur Kerja:
  1. Clock Generation

    • Kristal 15 MHz → masuk ke 8284A → dibagi 3 → menghasilkan 5 MHz clock untuk CPU.

  2. Reset Generation

    • Saat power-on, rangkaian RC memberikan pulsa rendah ke input RES.

    • 8284A menyinkronkan sinyal ini dengan clock, lalu menghasilkan sinyal RESET yang sesuai untuk 8086/8088.

  3. System Reset

    • RESET dari 8284A juga bisa digunakan sebagai system reset untuk perangkat lain di sekitar CPU.

  • BUS BUFFERING AND LATCHING
Demultiplexing the Buses

Bus alamat/data pada 8086/8088 bersifat multiplexed (digabungkan) untuk mengurangi jumlah pin yang dibutuhkan pada rangkaian terpadu mikroprosesor 8086/8088. Sayangnya, hal ini membebani perancang perangkat keras dengan tugas untuk mengekstraksi atau demultiplexing informasi dari pin-pin yang digabungkan tersebut. Mengapa bus tidak dibiarkan tetap multiplexed saja? Alasannya, memori dan I/O memerlukan agar alamat tetap valid dan stabil selama keseluruhan siklus baca atau tulis. Jika bus bersifat multiplexed, alamat akan berubah pada memori dan I/O, sehingga menyebabkan mereka membaca atau menulis data di lokasi yang salah.

Semua sistem komputer memiliki tiga jenis bus, yaitu:

  1. Bus alamat yang menyediakan alamat memori atau nomor port I/O bagi memori dan perangkat I/O.

  2. Bus data yang mentransfer data antara mikroprosesor dengan memori dan perangkat I/O dalam sistem.

  3. Bus kontrol yang menyediakan sinyal kontrol ke memori dan perangkat I/O.

Ketiga bus ini harus ada agar dapat menghubungkan mikroprosesor dengan memori dan I/O 


Perhatikan rangkaian pada gambar, di sini kita melihat bagaimana mikroprosesor 8088 bekerja dengan sistem bus yang sifatnya multiplexed. Artinya, sebagian jalur pada pin prosesor digunakan secara bergantian, kadang untuk mengirim alamat, kadang untuk mengirim data. Contohnya adalah jalur AD0 sampai AD7. Pada awal suatu siklus, jalur ini dipakai untuk mengirim alamat A0 sampai A7, tetapi begitu alamat sudah dikeluarkan dan disimpan, jalur yang sama akan berubah fungsi menjadi data bus D0 sampai D7. Nah, supaya alamat tidak hilang ketika jalur ini berubah fungsi menjadi jalur data, maka kita membutuhkan suatu rangkaian latch, dalam hal ini digunakan IC 74LS373.

Sekarang kita perhatikan peran IC yang ada pada gambar. Ada dua buah latch 74LS373. Latch yang berada di bagian atas berfungsi untuk menyimpan bit alamat bagian tinggi, yaitu A16 sampai A19. Sedangkan latch yang berada di bagian bawah berfungsi untuk menyimpan alamat bagian rendah, yaitu A0 sampai A7, yang berasal dari jalur multiplex AD0–AD7. Mekanismenya sederhana tetapi sangat penting: ketika sinyal ALE atau Address Latch Enable aktif, data yang ada pada jalur AD0–AD7 pada saat itu, yang merupakan bagian dari alamat, akan ditangkap dan disimpan oleh latch. Begitu ALE kembali tidak aktif, maka jalur AD0–AD7 bebas dipakai untuk data, tetapi alamat A0–A7 tetap tersedia secara stabil pada output latch. Hal yang sama berlaku untuk alamat bagian tinggi, A16–A19, yang juga ditahan oleh latch atas sehingga prosesor tetap memiliki address bus lengkap dari A0 hingga A19.

Dengan cara inilah masalah multiplex dapat diatasi. Kita bisa membayangkan, tanpa adanya latch ini, begitu jalur AD0–AD7 berubah menjadi data, maka informasi alamat yang penting akan hilang dan prosesor tidak tahu lagi lokasi memori yang sedang diakses. Tetapi dengan adanya latch, alamat itu disimpan dan tetap ditampilkan ke address bus selama diperlukan.

Selanjutnya, rangkaian juga memperlihatkan adanya sinyal kontrol seperti RD, WR, IO/M, dan MN/MX. Sinyal-sinyal ini digunakan untuk mengatur apakah operasi yang dilakukan oleh prosesor adalah membaca atau menulis, serta apakah aksesnya menuju ke memori atau ke perangkat input/output. Jadi kalau prosesor ingin membaca data dari memori, ia akan mengeluarkan alamat pada address bus, lalu memberikan sinyal RD aktif, dan data dari memori akan muncul di data bus. Sebaliknya, jika ingin menulis, maka sinyal WR yang akan diaktifkan.

Dengan demikian, rangkaian ini memperlihatkan model dasar sistem bus pada 8088. Prosesor dapat mengakses memori dengan address bus selebar 20 bit, sehingga mampu menjangkau hingga 1 MB ruang alamat. Meskipun jumlah pin fisik prosesor terbatas, melalui teknik multiplexing dan bantuan latch 74LS373, semua alamat tetap dapat dipertahankan dengan stabil, dan data tetap bisa lewat pada jalurnya. Inilah yang menjadi ciri khas arsitektur mikroprosesor generasi tersebut, efisiensi penggunaan pin sekaligus fleksibilitas dalam sistem.

Demultiplexing pada 8086. Sama seperti 8088, sistem 8086 juga memerlukan bus alamat, data, dan kontrol yang terpisah. Perbedaannya terutama terletak pada jumlah pin yang dimultiplex. Pada 8088, hanya AD7–AD0 dan A19/S6–A16/S3 yang dimultiplex. Sedangkan pada 8086, pin yang dimultiplex meliputi AD15–AD0A19/S6–A16/S3, dan S7. Semua sinyal ini harus didemultiplex.

Gambar 9–6 memperlihatkan 8086 yang telah didemultiplex dengan ketiga bus lengkap: bus alamat (A19–A0)bus data (D15–D0), dan bus kontrol. Rangkaian yang ditunjukkan pada Gambar 9–6 hampir identik dengan rangkaian pada Gambar 9–5, kecuali bahwa sebuah latch tambahan 74LS373 ditambahkan untuk melakukan demultiplex pada pin bus alamat/data AD15–AD8, dan sebuah input S7 ditambahkan ke latch 74LS373 bagian atas untuk memilih bank memori orde tinggi dalam sistem memori 16-bit milik 8086. 

The Buffered System 

Jika lebih dari 10 unit load dihubungkan ke salah satu pin bus, seluruh sistem 8086 atau 8088 harus dibuffer. Pin-pin yang didemultiplex sudah dibuffer oleh latch 74LS373 atau 74LS573, yang telah dirancang untuk menggerakkan bus dengan kapasitansi tinggi yang ditemui dalam sistem mikrokontroler. Arus keluaran buffer telah ditingkatkan sehingga lebih banyak unit load TTL dapat digerakkan: keluaran logika 0 dapat menyediakan arus sink hingga 32 mA, dan keluaran logika 1 dapat menyediakan arus source hingga 5,2 mA.

Sinyal yang sepenuhnya dibuffer akan memperkenalkan delay waktu ke sistem. Hal ini tidak menimbulkan kesulitan kecuali jika perangkat memori atau I/O digunakan, yang berfungsi pada kecepatan mendekati maksimum bus. Bagian 9–4 membahas masalah ini dan delay waktu yang terlibat secara lebih rinci.

The Fully Buffered 8088.

Gambar 9–7 menggambarkan mikroprosesor 8088 yang sepenuhnya dibuffer. Gambar yang Anda lihat ini menunjukkan sistem bus pada mikroprosesor 8086 dengan menggunakan teknik demultiplexed address bus. Sama seperti 8088, mikroprosesor 8086 juga menggunakan bus yang sifatnya multiplexed, tetapi bedanya adalah lebar data bus pada 8086 adalah 16 bit, sedangkan 8088 hanya 8 bit. Artinya, jalur AD0 sampai AD15 pada 8086 dipakai secara bergantian sebagai address bus untuk A0 sampai A15 dan sebagai data bus untuk D0 sampai D15. Untuk mencegah alamat hilang saat jalur ini dipakai untuk data, digunakan rangkaian latch, dalam hal ini IC 74LS373.

Perhatikan, di sini terdapat tiga buah IC latch 74LS373. Fungsi utamanya sama, yaitu menyimpan sementara sinyal alamat pada saat sinyal ALE (Address Latch Enable) aktif, sehingga alamat tetap tersedia pada address bus walaupun jalur AD0–AD15 sudah berubah fungsi menjadi jalur data.

Mari kita ikuti alurnya. Pada awal suatu siklus, prosesor mengeluarkan alamat penuh. Untuk 8086, alamat terdiri dari 20 bit, yaitu A0 sampai A19. Alamat tinggi A16 sampai A19 keluar melalui pin status S3–S6, dan untuk dapat ditampilkan secara stabil ke address bus, sinyal ini dilatch oleh IC 74LS373 yang terletak di bagian atas gambar. Sinyal kontrol BHE (Bus High Enable) juga ikut dilatch bersama alamat tinggi, karena BHE digunakan untuk menandai apakah byte tinggi dari data 16-bit ikut diakses atau tidak. Jadi, IC 74LS373 bagian atas berfungsi untuk menyimpan A16–A19 beserta BHE, lalu menyalurkannya ke address bus.

Selanjutnya, alamat A0 sampai A15 keluar pada jalur AD0 sampai AD15. Karena jalur ini juga berfungsi sebagai data, maka diperlukan dua buah latch tambahan. Dua IC 74LS373 yang berada di tengah gambar masing-masing bertugas untuk menangkap dan menahan delapan bit alamat: yang satu untuk A0–A7, dan yang satunya lagi untuk A8–A15. Pada saat ALE aktif, kedua latch ini menyimpan alamat dari bus AD0–AD15. Begitu ALE kembali tidak aktif, jalur AD0–AD15 bisa digunakan sebagai data bus D0–D15, tetapi alamat A0–A15 sudah ditahan oleh latch dan tetap tersedia secara stabil pada address bus.

Dengan demikian, ketiga latch 74LS373 ini secara bersama-sama menyediakan address bus penuh dari A0 sampai A19. Address bus inilah yang dipakai untuk memilih lokasi memori atau port I/O yang akan diakses oleh prosesor.

Setelah fase alamat selesai, bus AD0–AD15 beralih fungsi menjadi data bus. Pada fase ini, jika prosesor melakukan pembacaan, data dari memori atau perangkat I/O akan masuk ke prosesor melalui D0–D15. Sebaliknya, jika prosesor menulis, maka data keluar dari prosesor menuju memori atau I/O lewat jalur yang sama. Apakah operasi yang dilakukan berupa pembacaan atau penulisan, ditentukan oleh sinyal kontrol RD dan WR, sedangkan apakah akses menuju memori atau I/O ditentukan oleh sinyal M/IO.

Dengan cara kerja ini, meskipun 8086 hanya memiliki jumlah pin terbatas, prosesor tetap bisa menangani address bus selebar 20 bit dan data bus selebar 16 bit. Hal ini memungkinkan 8086 untuk mengakses ruang alamat memori hingga 1 MB penuh, dengan kecepatan transfer data yang lebih tinggi dibanding 8088 karena data bus-nya selebar 16 bit.

Jadi, secara ringkas hubungan pin-pin IC pada gambar ini adalah sebagai berikut: IC 74LS373 bagian atas menangkap A16–A19 dan BHE dari prosesor lalu meneruskannya ke address bus; IC 74LS373 bagian tengah dan bawah menangkap A0–A15 dari jalur AD0–AD15 ketika ALE aktif lalu menahannya, sehingga bus AD0–AD15 bisa digunakan untuk data D0–D15 tanpa kehilangan informasi alamat. Sinyal kontrol ALE menjadi kunci untuk membedakan kapan bus membawa alamat dan kapan bus dipakai untuk data.

 

The Fully Buffered 8086.

Gambar 9–8 menggambarkan mikroprosesor 8086 yang sepenuhnya dibuffer. Kalau kita lihat gambar ini, perbedaannya dengan rangkaian sebelumnya adalah sekarang sistem sudah menggunakan buffer pada hampir semua jalur: control bus, address bus, dan data bus. Tujuan penggunaan buffer ini adalah untuk memperkuat sinyal sehingga prosesor 8088 bisa menggerakkan lebih banyak perangkat eksternal tanpa kehilangan kualitas sinyal. Ingat, pada sistem komputer nyata sering kali ada banyak memori, perangkat I/O, dan komponen lain yang semuanya terhubung ke bus. Kalau sinyal dari prosesor langsung disebarkan ke semua perangkat itu, beban listrik menjadi besar dan sinyal bisa melemah, terlambat, atau bahkan salah terbaca. Maka digunakan IC buffer, yaitu rangkaian penguat sederhana yang menjaga integritas sinyal.

Di sebelah atas, ada IC ’244, ini adalah octal buffer/driver yang satu arah. Pada rangkaian ini, IC ’244 digunakan untuk buffering sinyal kontrol seperti IO/M, RD, dan WR. Jadi sinyal kontrol dari prosesor masuk ke IC ’244, diperkuat, dan keluar sebagai buffered control bus yang siap dipakai oleh memori atau perangkat I/O. Dengan cara ini, meskipun banyak perangkat terhubung, beban tidak langsung mengenai prosesor tetapi ditanggung oleh buffer.

Lalu kita lihat ke bagian alamat. Ada IC ’373 di sisi atas yang digunakan untuk melatch alamat A16 sampai A19, sama seperti sebelumnya. Kemudian ada IC ’244 lagi yang digunakan untuk menyalurkan alamat A8 sampai A15. Alamat rendah A0 sampai A7 sendiri diperoleh dari bus multiplex AD0–AD7, yang dilatch oleh IC ’373 bagian bawah ketika ALE aktif. Jadi, sama prinsipnya seperti penjelasan rangkaian sebelumnya: jalur AD0–AD7 awalnya membawa alamat, lalu disimpan ke latch, setelah itu jalur yang sama bebas dipakai untuk data. Bedanya di sini, setelah alamat dilatch, jalur keluaran dari latch tidak langsung dipakai, melainkan juga melalui buffer sebelum benar-benar menjadi buffered address bus.

Selanjutnya kita lihat bagian data bus. Jalur AD0 sampai AD7 dari prosesor adalah jalur data 8-bit, tetapi supaya bisa diperkuat, digunakan IC ’245, yaitu bidirectional bus transceiver. IC ini berbeda dengan ’244, karena bisa bekerja dua arah. Artinya, data bisa mengalir dari prosesor ke bus, atau dari bus ke prosesor, tergantung pengaturan arah (DIR) dan enable (G). Pada gambar terlihat bahwa sinyal kontrol DT/ R̅ (Data Transmit/Receive) dan DEN (Data Enable) dari prosesor dihubungkan ke IC ’245 untuk mengatur arah aliran data. Kalau prosesor sedang menulis ke memori atau I/O, maka data mengalir keluar dari prosesor menuju bus; sebaliknya, kalau prosesor membaca, maka data dari bus dialirkan masuk ke prosesor. Dengan demikian, data bus benar-benar terbuffer sehingga tidak membebani prosesor secara langsung.

Kalau kita rangkum, alur kerjanya begini: ketika prosesor mengeluarkan alamat, bagian tinggi A16–A19 ditangkap oleh latch ’373 di atas, bagian menengah A8–A15 lewat buffer ’244, dan bagian rendah A0–A7 ditangkap oleh latch ’373 bawah. Setelah alamat stabil di address bus, jalur AD0–AD7 kemudian dipakai untuk data. Data yang keluar atau masuk dari prosesor selalu melalui buffer bidirectional ’245, sehingga arah aliran data ditentukan oleh sinyal kontrol DT/ R̅ dan DEN. Sementara itu, sinyal kontrol seperti RD, WR, dan IO/M juga diperkuat oleh buffer ’244 sehingga tetap stabil meskipun harus dikirim ke banyak perangkat eksternal.

Dengan cara ini, sistem bus pada 8088 menjadi fully buffered. Artinya, semua jalur penting—address, data, dan control—sudah dilengkapi buffer. Keuntungannya adalah prosesor tidak perlu langsung menangani beban berat dari banyak perangkat eksternal. Hal ini membuat sistem lebih andal, memungkinkan pemasangan lebih banyak chip memori atau I/O, dan menjaga kecepatan kerja prosesor tetap optimal.

 

  • BUS TIMING 
Basic Bus Operation

Ketiga bus pada 8086 dan 8088 (bus address/alamat, bus data, dan bus kontrol) berfungsi persis sama seperti pada mikroprosesor lainnya. Jika data ditulis ke memori (lihat timing sederhana untuk write pada Gambar 9–9), mikroprosesor mengeluarkan alamat memori pada bus alamat, mengeluarkan data yang akan ditulis ke memori pada bus data, dan mengirim sinyal write (WR) ke memori dengan = 0 untuk 8088 dan = 1 untuk 8086.

Jika data dibaca dari memori (lihat timing sederhana untuk read pada Gambar 9–10), mikroprosesor mengeluarkan alamat memori pada bus alamat, mengirim sinyal read memory (RD), dan menerima data melalui bus data. 

Timing in General

Mikroprosesor 8086/8088 menggunakan memori dan I/O dalam periode yang disebut siklus bus (bus cycles). Setiap siklus bus setara dengan empat periode clock sistem (T states). Mikroprosesor yang lebih baru membagi siklus bus menjadi sesedikit dua periode clock. Jika clock dioperasikan pada 5 MHz (frekuensi operasi dasar untuk kedua mikroprosesor ini), satu siklus bus 8086/8088 selesai dalam 800 ns.

Ini berarti mikroprosesor membaca atau menulis data antara dirinya dengan memori atau I/O pada kecepatan maksimum 1,25 juta kali per detik. (Karena adanya antrian internal, 8086/8088 dapat mengeksekusi hingga 2,5 juta instruksi per detik [MIPS] secara burst.) Versi lain dari mikroprosesor ini dapat bekerja pada laju transfer yang jauh lebih tinggi karena frekuensi clock yang lebih tinggi.

Gambar ini adalah siklus penulisan (write bus cycle) untuk prosesor 8086/8088. Timing diagram ini menjelaskan bagaimana prosesor mengatur alamat, data, dan sinyal kontrol supaya sebuah data bisa dituliskan ke memori atau ke perangkat I/O dengan benar. Semua proses penulisan ini terbagi dalam empat keadaan waktu atau T-state, yaitu T1, T2, T3, dan T4. Mari kita ikuti urutannya.

Pada bagian paling atas ada sinyal CLK, yaitu clock prosesor. Setiap satu siklus bus berlangsung selama empat periode clock. Jadi di sini kita lihat T1 sampai T4 menandai bagian-bagian dari siklus tersebut. Semua aktivitas bus akan disinkronkan dengan tepi clock ini.

Sekarang kita lihat sinyal ADDRESS. Pada saat T1, prosesor mengeluarkan alamat yang valid ke jalur bus alamat. Inilah alamat dari sel memori atau port I/O yang akan ditulisi data. Alamat ini tetap stabil selama proses berlangsung sehingga perangkat luar bisa mengenali ke mana data harus dikirimkan.

Namun kita tahu bahwa pada 8086/8088, jalur alamat rendah (A0–A15 atau AD0–AD15) bersifat multiplexed dengan jalur data. Itu artinya, pada awalnya jalur tersebut dipakai untuk alamat, tetapi kemudian akan digunakan untuk data. Oleh karena itu, pada bagian ADDRESS/DATA kita lihat bahwa pada T1 jalur ini berisi alamat, kemudian setelah itu beralih menjadi jalur data yang membawa nilai yang akan dituliskan ke memori. Jadi transisi ini terjadi ketika ALE sudah memicu latch untuk menyimpan alamat, sehingga alamat tidak hilang meskipun jalur AD berubah fungsi menjadi data.

Sekarang kita lihat sinyal kontrol WR (Write). Sinyal WR ini aktif rendah (biasanya ditandai garis atas pada WR), artinya ketika prosesor ingin menulis, ia menarik jalur WR ke level rendah. Pada timing diagram terlihat bahwa WR mulai aktif sekitar akhir T2, tetap aktif sepanjang T3, dan berakhir di T4. Jadi selama WR aktif, data yang ada di bus akan dianggap valid dan siap dituliskan ke memori atau I/O.

Jika kita rangkai menjadi sebuah cerita:

  • Pada T1, prosesor mengeluarkan alamat ke bus, dan ALE menandai bahwa informasi pada AD0–AD15 adalah alamat.

  • Pada T2, bus AD0–AD15 beralih membawa data yang akan ditulis. Pada saat inilah sinyal WR mulai aktif.

  • Pada T3, data sudah stabil di bus dan sinyal WR tetap aktif, sehingga perangkat memori bisa menangkap data tersebut.

  • Pada T4, sinyal WR kembali tidak aktif dan data sudah selesai ditulis, siklus penulisan berakhir.

Jadi kunci dari timing diagram ini adalah sinkronisasi antara alamat, data, dan sinyal WR. Prosesor memastikan bahwa alamat valid lebih dulu, kemudian data disiapkan, lalu sinyal WR diberikan agar data benar-benar tersimpan ke alamat tujuan yang tepat.  

memperlihatkan bagaimana prosesor melakukan siklus pembacaan data (read cycle) dari memori atau perangkat I/O. Sama seperti pada write cycle, seluruh proses pembacaan dibagi menjadi empat state, yaitu T1, T2, T3, dan T4, yang semuanya disinkronkan dengan clock (CLK) prosesor.

Mari kita ikuti satu per satu.

Pertama, lihat bagian CLK. Sama dengan sebelumnya, satu siklus bus terdiri atas empat periode clock. Inilah waktu acuan yang dipakai prosesor untuk mengatur kapan alamat valid, kapan data disiapkan, dan kapan sinyal kontrol aktif.

Kemudian lihat ke bagian ADDRESS. Pada saat T1, prosesor mengeluarkan alamat ke bus alamat. Alamat ini adalah lokasi memori atau port I/O dari mana data akan dibaca. Selama siklus berlangsung, alamat tersebut dijaga tetap valid, sehingga perangkat eksternal tahu dari mana data harus diambil.

Sekarang pindah ke ADDRESS/DATA. Karena pada 8086/8088 jalur AD0–AD15 bersifat multiplexed, maka pada awal T1 jalur ini berisi alamat. Setelah ALE memicu latch untuk menyimpan alamat, fungsi jalur ini beralih. Mulai dari akhir T2 hingga T3, jalur AD0–AD15 digunakan untuk menerima data yang dibaca dari memori. Jadi kita lihat di diagram, setelah bagian “ADDRESS” ada bagian “DATA FROM MEMORY”. Artinya, memori atau I/O mengirimkan data ke prosesor melalui jalur ini.

Lalu mari kita lihat sinyal kontrol RD (Read). Sinyal ini aktif rendah, artinya ketika prosesor ingin membaca, jalur RD ditarik ke logika rendah. Pada diagram terlihat bahwa RD mulai aktif sekitar awal T2 dan tetap aktif sampai menjelang akhir T3 atau T4. Ketika RD aktif, perangkat memori mengetahui bahwa prosesor sedang meminta data dari alamat yang sudah ditentukan, sehingga memori mengeluarkan datanya ke bus.

Kalau kita ceritakan prosesnya secara mengalir:

  • Pada T1, prosesor mengirim alamat ke bus. ALE memberi tahu latch untuk menyimpan alamat bagian rendah.

  • Pada T2, prosesor mengaktifkan sinyal RD, memberi tanda bahwa ia ingin membaca dari alamat tersebut.

  • Pada T3, memori atau I/O menaruh data yang valid ke bus data, dan prosesor mengambil data itu.

  • Pada T4, sinyal RD kembali tidak aktif, bus menjadi idle, dan siklus pembacaan selesai.

Perbedaan utama dengan write cycle adalah siapa yang menaruh data di bus. Pada write cycle, prosesor yang mengeluarkan data ke bus, lalu memori hanya menerima. Sedangkan pada read cycle ini, memori atau I/O yang mengeluarkan data ke bus, sementara prosesor hanya membaca. Jadi bisa dikatakan arah aliran data pada bus bergantung pada sinyal kontrol RD atau WR yang diberikan prosesor. 

           Gambar 9-10 ini memperlihatkan bagaimana prosesor melakukan siklus pembacaan data (read cycle) dari memori atau perangkat I/O. Sama seperti pada write cycle, seluruh proses pembacaan dibagi menjadi empat state, yaitu T1, T2, T3, dan T4, yang semuanya disinkronkan dengan clock (CLK) prosesor.

Mari kita ikuti satu per satu.

Pertama, lihat bagian CLK. Sama dengan sebelumnya, satu siklus bus terdiri atas empat periode clock. Inilah waktu acuan yang dipakai prosesor untuk mengatur kapan alamat valid, kapan data disiapkan, dan kapan sinyal kontrol aktif.

Kemudian lihat ke bagian ADDRESS. Pada saat T1, prosesor mengeluarkan alamat ke bus alamat. Alamat ini adalah lokasi memori atau port I/O dari mana data akan dibaca. Selama siklus berlangsung, alamat tersebut dijaga tetap valid, sehingga perangkat eksternal tahu dari mana data harus diambil.

Sekarang pindah ke ADDRESS/DATA. Karena pada 8086/8088 jalur AD0–AD15 bersifat multiplexed, maka pada awal T1 jalur ini berisi alamat. Setelah ALE memicu latch untuk menyimpan alamat, fungsi jalur ini beralih. Mulai dari akhir T2 hingga T3, jalur AD0–AD15 digunakan untuk menerima data yang dibaca dari memori. Jadi kita lihat di diagram, setelah bagian “ADDRESS” ada bagian “DATA FROM MEMORY”. Artinya, memori atau I/O mengirimkan data ke prosesor melalui jalur ini.

Lalu mari kita lihat sinyal kontrol RD (Read). Sinyal ini aktif rendah, artinya ketika prosesor ingin membaca, jalur RD ditarik ke logika rendah. Pada diagram terlihat bahwa RD mulai aktif sekitar awal T2 dan tetap aktif sampai menjelang akhir T3 atau T4. Ketika RD aktif, perangkat memori mengetahui bahwa prosesor sedang meminta data dari alamat yang sudah ditentukan, sehingga memori mengeluarkan datanya ke bus.

Kalau kita ceritakan prosesnya secara mengalir:

  • Pada T1, prosesor mengirim alamat ke bus. ALE memberi tahu latch untuk menyimpan alamat bagian rendah.

  • Pada T2, prosesor mengaktifkan sinyal RD, memberi tanda bahwa ia ingin membaca dari alamat tersebut.

  • Pada T3, memori atau I/O menaruh data yang valid ke bus data, dan prosesor mengambil data itu.

  • Pada T4, sinyal RD kembali tidak aktif, bus menjadi idle, dan siklus pembacaan selesai.

Perbedaan utama dengan write cycle adalah siapa yang menaruh data di bus. Pada write cycle, prosesor yang mengeluarkan data ke bus, lalu memori hanya menerima. Sedangkan pada read cycle ini, memori atau I/O yang mengeluarkan data ke bus, sementara prosesor hanya membaca. Jadi bisa dikatakan arah aliran data pada bus bergantung pada sinyal kontrol RD atau WR yang diberikan prosesor.

Read Timing

Gambar 9–11 Gambar yang Anda lihat ini adalah timing diagram bus 8088 pada mode minimum untuk operasi baca (read cycle). Jadi, diagram ini jauh lebih rinci dibandingkan diagram sederhana sebelumnya. Kalau sebelumnya hanya ada CLK, ADDRESS, DATA, dan RD, di sini kita sudah masuk ke level detil bagaimana semua sinyal internal dan eksternal saling berkoordinasi selama satu siklus baca.

Mari kita mulai dari bagian paling atas.

Bagian pertama adalah sinyal clock (CLK) yang berasal dari chip 8284. Clock inilah yang menjadi acuan waktu bagi semua sinyal lain. Siklus bus dibagi ke dalam T1, T2, T3, Tw (wait state, kalau ada), dan T4. Jadi kita sudah tahu bahwa semua sinyal harus sinkron dengan tepi clock ini.

Kemudian kita lihat sinyal IO/M dan status bus S0–S2. Sinyal ini digunakan untuk menunjukkan apakah siklus bus sedang mengakses memori, I/O, atau interupsi. Jadi sebelum RD diaktifkan, prosesor sudah memberi tahu jenis operasi apa yang sedang berlangsung.

Berikutnya adalah bus alamat. Pada T1, jalur A15–A8 dan AD7–AD0 memuat alamat. Tapi ingat, AD7–AD0 ini multiplexed, jadi pada awalnya membawa alamat rendah, lalu kemudian berubah fungsi menjadi bus data. Supaya alamat tidak hilang, sinyal ALE (Address Latch Enable) ikut muncul pada T1. ALE ini memberi perintah pada latch eksternal (seperti IC 74LS373) untuk menyimpan alamat bagian rendah. Dengan begitu, walaupun AD7–AD0 nantinya beralih jadi jalur data, alamat tetap valid di keluaran latch.

Setelah itu, kita lihat sinyal RD (Read). Sinyal ini aktif rendah, dan mulai aktif pada T2. Ketika RD turun ke level rendah, artinya prosesor sedang meminta data dari alamat yang sudah dikeluarkan sebelumnya. Pada saat inilah memori atau perangkat I/O menyiapkan data di jalur bus.

Tapi di sini ada tambahan sinyal penting, yaitu READY. Sinyal ini berasal dari perangkat luar dan masuk ke prosesor. READY digunakan untuk memberi tahu apakah data sudah siap diberikan ke prosesor. Kalau READY belum aktif, prosesor akan menambahkan wait state (Tw). Inilah kenapa di gambar terlihat ada bagian Tw di antara T3 dan T4. Jadi siklus bus bisa lebih panjang kalau perangkat memori lambat. Begitu READY aktif, prosesor melanjutkan siklusnya.

Kemudian ada sinyal DEN (Data Enable) dan DT/ R̅ (Data Transmit/Receive). Keduanya digunakan untuk mengontrol transceiver data eksternal (misalnya IC 8286 atau 74LS245). DT/ R̅ menentukan arah aliran data (baca atau tulis), sedangkan DEN mengaktifkan buffer data. Dalam operasi baca ini, DT/ R̅ diset ke arah input (data masuk ke prosesor), dan DEN mengaktifkan buffer sehingga data dari memori bisa masuk ke prosesor.

Kalau kita lihat ke jalur AD7–AD0, pada T1 isinya alamat, kemudian jalur ini “float” sebentar (tidak digunakan), lalu pada T3 data valid mulai muncul dari memori. Data ini dibaca oleh prosesor selama RD masih aktif. Setelah RD tidak aktif lagi di T4, bus kembali dalam keadaan float, siap untuk siklus berikutnya.

Kalau dirangkai cerita lengkapnya:

  1. T1: Prosesor mengeluarkan alamat pada bus. ALE aktif sehingga alamat rendah dilatch.

  2. T2: Jalur AD7–AD0 dilepas (float), prosesor menarik RD rendah, memberi sinyal baca. Memori mulai menyiapkan data.

  3. T3: Jika READY sudah aktif, memori mengeluarkan data valid ke bus. Prosesor membaca data ini. Jika READY belum aktif, maka prosesor menunggu di Tw.

  4. T4: RD kembali tinggi, DEN mati, bus dilepaskan. Siklus baca selesai.

Dengan kata lain, diagram ini menjelaskan secara detail bagaimana 8088 berkomunikasi dengan perangkat luar saat membaca data, lengkap dengan mekanisme wait state melalui sinyal READY.


 Untuk menentukan waktu akses (access time) pada diagram ini, pertama-tama tentukan titik pada T3 ketika data diambil (sampled). Jika Anda memperhatikan diagram timing dengan seksama, akan terlihat sebuah garis yang memanjang dari akhir T3 ke bus data. Pada akhir T3, mikroprosesor mengambil sampel dari bus data.

Waktu akses memori dimulai ketika alamat muncul pada bus alamat memori dan berlanjut hingga mikroprosesor mengambil sampel data memori pada T3. Sekitar tiga T state berlalu antara kedua waktu ini (lihat Gambar 9–12 untuk rincian waktu). Alamat tidak muncul hingga waktu TCLAV (110 ns jika clock 5 MHz) setelah awal T1. Ini berarti waktu TCLAV harus dikurangi dari tiga T state (600 ns) yang memisahkan munculnya alamat (T1) dan pengambilan sampel data (T3).

Selain itu, satu waktu lain juga harus dikurangi: waktu setup data (TDVCL), yang terjadi sebelum T3. Dengan demikian, waktu akses memori adalah tiga T state dikurangi jumlah TCLAV dan TDVCL. Karena TDVCL adalah 30 ns dengan clock 5 MHz, waktu akses memori yang diizinkan hanya 460 ns (access time = 600 ns - 110 ns - 30 ns).

Perangkat memori yang dipilih untuk dikoneksikan ke 8086/8088 yang beroperasi pada 5 MHz harus mampu mengakses data dalam waktu kurang dari 460 ns, karena adanya delay yang diperkenalkan oleh decoder alamat dan buffer dalam sistem. Sebaiknya terdapat margin sekitar 30–40 ns untuk operasi sirkuit ini. Oleh karena itu, kecepatan memori sebaiknya tidak lebih lambat dari sekitar 420 ns agar dapat bekerja dengan benar bersama mikroprosesor 8086/8088. 

Write Timing 

Gambar 9–13 menggambarkan diagram timing write untuk mikroprosesor 8088. (Sekali lagi, 8086 hampir identik, sehingga tidak perlu ditampilkan dalam diagram timing terpisah.)

Perbedaan utama antara timing read dan write sangat kecil. Sinyal strobe digantikan oleh strobe , bus data berisi informasi untuk memori daripada informasi dari memori, dan tetap berada pada logika 1 alih-alih logika 0 sepanjang siklus bus.

Saat menghubungkan beberapa perangkat memori, timing dapat menjadi sangat kritis antara saat sinyal menjadi logika 1 dan saat data dihapus dari bus data. Hal ini terjadi karena data memori ditulis pada tepi trailing dari strobe. Menurut diagram timing, periode kritis ini adalah TWHDX atau 88 ns ketika 8088 dioperasikan dengan clock 5 MHz. Waktu hold seringkali jauh lebih kecil dari ini; bahkan sering 0 ns untuk perangkat memori. Lebar strobe adalah TWLWH atau 340 ns pada frekuensi clock 5 MHz. Nilai ini kompatibel dengan sebagian besar perangkat memori yang memiliki waktu akses 400 ns atau kurang.


 

  • READY AND THE WAIT STATE
Wait state adalah periode clock tambahan, yang disisipkan di antara T₂ dan T₃ untuk memperpanjang siklus bus. Jika satu wait state disisipkan, maka waktu akses memori yang biasanya 460 ns dengan clock 5 MHz, akan diperpanjang sebesar satu periode clock (200 ns) menjadi 660 ns.

INPUT READY 

    Masukan READY diambil sampelnya pada akhir T₂ dan sekali lagi, jika diperlukan, di tengah Tw. Jika READY bernilai logika 0 pada akhir T₂, maka T₃ ditunda dan Tw disisipkan di antara T₂ dan T₃. READY kemudian diambil sampelnya lagi di tengah Tw untuk menentukan apakah keadaan berikutnya adalah Tw lagi atau T₃. READY diuji terhadap logika 0 pada transisi clock dari 1 ke 0 di akhir T₂, dan diuji terhadap logika 1 pada transisi clock dari 0 ke 1 di tengah Tw. 

    Masukan READY pada 8086/8088 memiliki persyaratan waktu yang ketat. Diagram waktu pada Gambar 9–14 menunjukkan bahwa READY menyebabkan satu wait state (Tw), beserta waktu setup dan hold yang diperlukan dari clock sistem. Persyaratan waktu untuk operasi ini dipenuhi oleh rangkaian sinkronisasi READY internal dari 8284A clock generator. Ketika 8284A digunakan untuk READY, masukan RDY (ready input ke 8284A) terjadi pada akhir setiap keadaan T. 


 

RDY and the 8284A 

    RDY adalah masukan ready yang telah disinkronkan ke 8284A clock generator. Diagram waktu untuk masukan ini ditunjukkan pada Gambar 9–15. Meskipun berbeda dari waktu untuk masukan READY pada 8086/8088

 

    Gambar 9–16 kembali menggambarkan struktur internal dari 8284A. Bagian bawah diagram ini adalah rangkaian sinkronisasi READY. Pada sisi paling kiri, sinyal RDY1 dan masukan kontrolnya di-AND-kan, begitu juga sinyal RDY2 dengan AEN2 di-AND-kan. Keluaran dari gerbang AND tersebut kemudian di-OR-kan untuk menghasilkan masukan ke satu atau dua tahap sinkronisasi.

Agar diperoleh logika 1 pada masukan flip-flop, RDY1 yang di-AND-kan dengan masukan kontrolnya harus aktif, atau RDY2 yang di-AND-kan dengan AEN2 harus aktif.

Masukan ASYNC memilih jumlah tahap sinkronisasi:

  • Jika bernilai logika 1 → hanya satu tahap sinkronisasi yang digunakan.

  • Jika bernilai logika 0 → digunakan dua tahap sinkronisasi.

Jika hanya satu tahap yang dipilih, maka sinyal RDY ditahan agar tidak mencapai pin READY pada 8086/8088 sampai tepi negatif berikutnya dari clock.

Jika dua tahap dipilih, maka tepi positif pertama dari clock akan menangkap RDY pada flip-flop pertama. Keluaran dari flip-flop pertama kemudian diteruskan ke flip-flop kedua, sehingga pada tepi negatif berikutnya dari clock, flip-flop kedua akan menangkap RDY


  • MINIMUM MODE VERSUS MAXIMUM MODE

    Terdapat dua mode operasi yang tersedia untuk mikroprosesor 8086/8088minimum mode dan maximum mode.

Operasi minimum mode diperoleh dengan menghubungkan pin pemilih mode ke +5,0 V, sedangkan maximum mode dipilih dengan menghubungkan pin tersebut ke ground. Kedua mode ini mengaktifkan struktur kontrol yang berbeda pada mikroprosesor 8086/8088.

Mode operasi yang disediakan oleh minimum mode mirip dengan yang ada pada 8085A, yaitu mikroprosesor 8-bit terbaru dari Intel pada saat itu. Sementara itu, maximum mode bersifat unik dan dirancang untuk digunakan ketika terdapat sebuah koprosesor di dalam sistem. Perlu dicatat bahwa maximum mode dihapus dari keluarga mikroprosesor Intel mulai dari 80286.

MINIMUM MODE OPERATION

Operasi minimum mode adalah cara paling murah untuk mengoperasikan mikroprosesor 8086/8088. Biayanya lebih rendah karena semua sinyal kontrol untuk memori dan I/O dihasilkan langsung oleh mikroprosesor. Sinyal kontrol ini identik dengan yang dimiliki Intel 8085A, sebuah mikroprosesor 8-bit generasi sebelumnya.

Mode minimum memungkinkan periferal 8-bit 8085A digunakan bersama dengan 8086/8088 tanpa memerlukan pertimbangan khusus apa pun.

MAXIMUM MODE OPERATION 

Operasi maximum mode berbeda dari minimum mode karena beberapa sinyal kontrol harus dihasilkan secara eksternal. Hal ini membutuhkan tambahan sebuah bus controller eksternal, yaitu 8288 bus controller.

Pada 8086/8088, jumlah pin tidak cukup untuk melakukan kontrol bus dalam maximum mode karena beberapa pin diganti dengan pin baru dan fitur baru. Maximum mode hanya digunakan ketika sistem berisi koprosesor eksternal, seperti 8087 arithmetic coprocessor.


Tidak ada komentar:

Posting Komentar