8086 memiliki lebih dari 80 kait. Beberapa dari mereka menyimpan nilai pin AD (alamat / data) atau pin kontrol. Yang lain menyimpan alamat microcode dan microcode saat ini, serta alamat pengirim dari microcode rutin. Yang ketiga menyimpan bit dari register perintah sumber dan keluaran, dan operasi ALU dari perintah tersebut. Banyak yang menyimpan status keadaan internal, yang masih saya pahami.
Crystal 86 menunjukkan register instruksi 8-bit. Foto
di atas menunjukkan cetakan silikon 8086 di bawah mikroskop. Saya melepaskan lapisan logam dan polisilikon sehingga Anda dapat melihat transistor - totalnya ada sekitar 29.000. Area yang dialokasikan berisi buffer perintah 8-bit, yang terdiri dari delapan kait. Prosesor 1978 ini masih cukup sederhana untuk register 8-bit tunggal untuk menempati area yang relatif luas. Perbesaran menunjukkan silikon dan transistor yang membentuk satu kait.
Cara kerja kait dinamis
Latch adalah salah satu elemen terpenting dari 8086, sebagai latch melacak apa yang dilakukan prosesor. Penguncian dapat dilakukan dengan berbagai cara; 8086 menggunakan sirkuit kompak yang dikenal sebagai kait dinamis. Pengunci dinamis bergantung pada pengoperasian generator jam dua fase, yang sering digunakan untuk mengontrol mikroprosesor pada masa itu. Jam dua fase menghasilkan dua sinyal jam yang aktif secara bergantian. Pada fase pertama, jam utama tinggi dan jam yang menyertainya rendah. Kemudian mereka berpindah tempat. Siklus diulangi pada frekuensi clock, misalnya 5 MHz.
Banyak mikroprosesor menggunakan gerbang NAND untuk membentuk sandal jepit RS. Sebuah RS flip-flop biasanya memakan lebih banyak ruang daripada kait dinamis, terutama jika sirkuit tambahan ditambahkan untuk menjaga frekuensi clock. Pemicu-D (pemicu penundaan) juga populer, tetapi menjadi lebih kompleks dan menggunakan enam gerbang. Dalam banyak kasus, transistor lulus sudah cukup; ia dapat menyimpan nilai untuk satu siklus clock, tetapi tidak menyediakan penyimpanan jangka panjang.
Kecepatan clock tertinggi selalu dipilih untuk prosesor. 8086 pertama bekerja hingga 5 MHz, dan kemudian 8086-1 mendukung hingga 10 MHz. Namun, karena penggunaan logika dinamis, 8086 juga memiliki frekuensi clock minimum: 2 MHz. Jika generator jam bekerja lebih lambat, ada risiko kebocoran muatan dari kabel sebelum sirkuit mengaksesnya, yang menyebabkan kesalahan.
Pengunci dalam prosesor 8086 terdiri dari empat transistor lintasan dan dua inverter. Pengunci beroperasi pada sinyal jam intermiten.
Diagram di atas menunjukkan kait khas 8086. Ini terdiri dari dua inverter dan beberapa transistor lintasan. Untuk tujuan kami, transistor pass-through dapat dianggap sebagai sakelar: jika 1 datang ke gerbang, transistor mengirimkan sinyal lebih lanjut. Jika 0 datang, transistor memblokir sinyal. Transistor lulus dikontrol oleh beberapa sinyal: beban, yang memuat sedikit ke dalam kait; tahan (tahan), menahan nilai bit yang ada; jam fase pertama dan jam fase kedua, terbalik.
Diagram di bawah menunjukkan bagaimana nilai (dalam hal ini, 1) dimuat ke dalam kait. Sinyal beban naik, memungkinkan sinyal input (1) melewati transistor. Sejak sinyal jamtinggi, sinyal melewati transistor kedua ke inverter, yang mengeluarkan 0. Pada saat ini, transistor ketiga (jam) memblokir sinyal.
Sinyal input dimasukkan ke dalam kait ketika sinyal beban tinggi
Pada fase clock berikutnya, sinyal clock menjadi tinggi, menyebabkan sinyal 0 mencapai inverter kedua, yang menghasilkan 1. Karena sinyal tahan tinggi, sinyal kembali tetapi diblokir oleh transistor clock... Yang membuat rangkaian ini dinamis adalah tidak ada sinyal input yang saat ini dikirim ke inverter pertama. Inputnya tetap 1 (ditampilkan dalam warna abu-abu) karena kapasitansi rangkaian. Suatu saat muatan ini akan bocor, nilainya akan hilang, tetapi sebelum saat itu pergantian generator pulsa jam baru akan dilakukan.
Ketika sinyal clock menjadi tinggi, nilainya melewati inverter kedua. Input ke inverter pertama (abu-abu) dipertahankan oleh kapasitansi rangkaian.
Setelah mengalihkan status generator jam, input ke inverter kedua akan menyediakan kapasitas rangkaian (lihat di bawah). Sinyal kembali, mengisi ulang dan memperbarui input ke inverter pertama. Pada jam berikutnya, latch akan beralih antara ini dan pola sebelumnya, mempertahankan nilai yang disimpan dan menjaga output tetap stabil.
Kunci pengoperasian latch adalah adanya dua inverter, yang menjaga sinyal keluaran tetap stabil. Jumlah inverter ganjil akan menyebabkan osilasi - fitur ini digunakan oleh pompa pengisian 8086. Juga, sepasang inverter menggunakan satu set register 8086 untuk menyimpan bit. Namun, dalam satu set register, kedua inverter terhubung langsung, tanpa transistor pass yang digerakkan oleh clock, menghasilkan sistem penyimpanan yang lebih kompak tetapi sulit untuk dikelola.
Ketika sinyal clock tinggi, nilainya melewati inverter pertama.
Implementasi di silikon
Prosesor 8086 dan prosesor lain pada masa itu didasarkan pada transistor N-MOS . Mereka dibuat dari substrat silikon, yang selama proses doping , pengotor arsen atau boron ditambahkan untuk membentuk transistor. Di atas silikon ada polysilicon, yang menciptakan gerbang transistor dan konduktor yang menghubungkan semua komponen bersama. Lapisan lain, logam, menyediakan sambungan konduktif tambahan. Prosesor modern, sebagai perbandingan, menggunakan teknologi CMOS , kombinasi teknologi N-MOS dan P-MOS, dan mereka memiliki lebih dari satu lapisan konduktif logam.
Bagaimana transistor N-MOS ( struktur MOS ) diimplementasikan dalam sebuah IC
Diagram di atas menunjukkan struktur transistor. Transistor dapat dianggap sebagai sakelar yang memungkinkan arus mengalir dari satu bagian (sumber) ke bagian lain (drain). Transistor digerakkan oleh gerbang yang terbuat dari jenis khusus silikon - polisilikon. Menerapkan tegangan ke gerbang memungkinkan arus mengalir antara sumber dan drain, sementara menarik gerbang ke 0 V memblokir arus. Gerbang dipisahkan dari silikon oleh lapisan oksida isolasi - karena itu, gerbang bekerja seperti kapasitor, seperti yang dapat dilihat pada contoh kait dinamis.
Inverter (bawah) terdiri dari transistor N-MOS dan resistor. Ketika sinyal rendah, transistor mati, sehingga resistor pull-up menarik sinyal keluaran ke atas. Ketika sinyalnya tinggi, transistor menyala, menghubungkan output ke ground dan menarik output ke bawah. Jadi, rangkaian membalikkan sinyal input.
Resistor pull-up di gerbang N-MOS diimplementasikan menggunakan transistor jenis khusus. Transistor mode deplesi bekerja seperti resistor tetapi membutuhkan lebih sedikit ruang dan lebih efisien.
Diagram menunjukkan bagaimana inverter dibuat dari transistor dan resistor. Foto menunjukkan bagaimana rangkaian diimplementasikan pada chip. Lapisan logam telah dihilangkan untuk memperlihatkan polisilikon dan silikon.
Foto di sebelah kanan menunjukkan bagaimana 8086 secara fisik mengimplementasikan inverter. Daerah kekuningan adalah silikon konduktif dengan kotoran, dan daerah jerawatan polysilicon di atasnya. Transistor dibuat di mana polysilicon melintasi silikon yang diolah. Polysilicon membentuk gerbang transistor, dan bagian silikon di kedua sisi menyediakan sumber dan drain dari transistor. Sebuah persegi panjang polysilicon besar membentuk resistor pull-up antara + 5V dan output. Anda dapat membandingkan struktur struktur fisik ini dengan diagram.
Diagram di bawah menunjukkan implementasi latch pada chip. Sebuah transistor pass-through dan dua inverter ditandai; inverter pertama dijelaskan di atas. Konduktor polysilicon menghubungkan komponen satu sama lain. Koneksi tambahan disediakan oleh lapisan logam (dihapus untuk foto). Bentuk transistor yang kompleks memungkinkan penggunaan ruang yang paling efisien.
Foto mikroskopis kait di prosesor 8086. Lapisan logam dengan konduktor telah dilepas, tetapi jejaknya terlihat dalam bentuk garis vertikal kemerahan. Foto diputar 180 ° agar sesuai dengan tata letaknya.
Latch menggunakan buffer keluaran yang tidak ditandai dalam diagram untuk memberikan sinyal arus tinggi untuk keluaran dan keluaran terbalik. Buffer ini memiliki nama yang lucu, "superbuffers" - karena mereka memberikan arus yang jauh lebih tinggi daripada inverter N-MOS biasa. Masalah dengan inverter N-MOS adalah inverter berjalan lambat saat menjalankan sirkuit berkapasitas tinggi. Karena superbuffer memberikan lebih banyak arus, ia mengalihkan sinyal lebih cepat. Ini mencapai ini dengan mengganti resistor pull-up dengan transistor arus yang lebih tinggi. Kelemahannya adalah transistor pull-up membutuhkan inverter untuk beroperasi, sehingga rangkaian superbuffer lebih rumit. Oleh karena itu, superbuffer hanya digunakan saat dibutuhkan - biasanya saat mengirim sinyal ke banyak gerbang atau saat mengendarai bus panjang.
Implementasi latch superbuffer 8086. Perhatikan bahwa +5 V dan koneksi ground dipindahkan ke transistor paling kanan.
Diagram di atas menunjukkan skema superbuffer latch 8086. Tidak seperti superbuffer konvensional, ini memiliki superbuffer pembalik dan non-pembalik. Untuk memahami rangkaian, perhatikan bahwa resistor pusat dan transistor membentuk inverter. Output inverter terhubung ke transistor atas, dan input non-terbalik terhubung ke transistor bawah. Kemudian, jika inputnya 1, transistor bawah menyala, dan jika inputnya 0, maka berkat inverter, transistor atas menyala. Kemudian, jika input adalah 1, transistor yang lebih rendah akan menarik output ke atas, dan output yang sesuai - turun. Jika input adalah 0, maka transistor atas akan menarik output ke bawah, dan output yang sesuai- up.
Masalah dengan inverter N-MOS adalah resistor pull-up memiliki arus yang terbatas. Ketika output 0, transistor dalam inverter dengan cepat dan dengan arus yang relatif tinggi menarik output ke bawah. Namun, jika outputnya 1, output ditarik oleh resistor pull-up yang jauh lebih lemah.
Superbuffer mirip dengan inverter CMOS karena memiliki transistor pull-up dan transistor pull-down. Perbedaannya adalah CMOS menggunakan transistor P-MOS dan N-MOS, sedangkan P-MOS menggunakan input gerbang terbalik. Sebaliknya, superbuffer N-MOS membutuhkan inverter terpisah. Dengan kata lain, inverter CMOS menggunakan dua transistor, dan superbuffer jauh lebih efisien karena membutuhkan empat transistor.
Superbuffer menggunakan transistor mode penyempurnaan untuk menarik ke atas dan transistor mode penyempurnaan untuk menarik ke bawah. Tegangan ambang transistor dengan salurannya sendiri di bawah nol, yang memungkinkan keluarannya ditarik hingga 5 V, dan tidak dimatikan pada tegangan yang lebih rendah. Ketika output rendah, self-channeling transistor akan tetap menyala, dan akan bertindak seperti pull-up normal pada inverter konvensional, sehingga arus tertentu akan mengalir melaluinya. Anda dapat membaca lebih lanjut tentang superbuffer di sini .
Daftar perintah
Seperti kebanyakan prosesor, 8086 memiliki register instruksi di mana instruksi yang sedang dieksekusi disimpan. Di 8086, register perintah menampung byte pertama dari perintah (yang bisa berupa beberapa byte), sehingga terdiri dari delapan kait. Orang akan berpikir bahwa mereka akan identik, namun masing-masing memiliki bentuknya sendiri. Tata letak 8086 sangat dioptimalkan, sehingga bentuk setiap kait dirancang untuk memanfaatkan ruang yang tersedia dengan sebaik-baiknya karena keterbatasan konduktor di sekitarnya. Secara khusus, perhatikan bahwa beberapa kait terhubung bersama dan berbagi daya dan arde. Rupanya, untuk alasan yang sama, kaitnya tidak berurutan.
Semua 8 kait memiliki bentuk yang sedikit berbeda, dioptimalkan untuk konduktor di sekitarnya. Sebelumnya di artikel ini, kait # 1 diputar 180 °. Garis vertikal merah merupakan jejak dari lapisan logam yang dihilangkan.
Tim melakukan perjalanan 8086 di jalur yang berkelok-kelok. Prosesor ini menggunakan pemuatan awal yang meningkatkan kinerja, memuat instruksi dari memori sebelum diperlukan. Mereka disimpan dalam antrian perintah, antrian 6-byte yang terletak di tengah satu set register. Sebagai perbandingan, prosesor modern memiliki cache perintah yang bisa berukuran beberapa megabyte.
Ketika sebuah perintah dijalankan, itu disimpan dalam register perintah, kira-kira di tengah-tengah chip. Jarak yang relatif jauh menjelaskan kebutuhan akan superbuffer. Register perintah memasukkan perintah ke "ROM dekripsi grup". ROM ini mendefinisikan karakteristik tingkat tinggi dari perintah - itu adalah byte tunggal, atau multi-byte, atau itu adalah awalan perintah. Dan ini hanya sebagian kecil dari sistem pemrosesan instruksi 8086 yang kompleks. Latch lain memegang bagian instruksi, menandai penggunaan register dan operasi ALU, dan sirkuit terpisah mengontrol mesin microcode - tetapi saya akan menjelaskan ini secara terpisah.
Crystal 8086, komponen kunci untuk pemrosesan perintah ditandai. Di sepanjang perimeter, kabel solder menghubungkan kristal ke kontak eksternal.
Kesimpulan
8086 memanfaatkan kait dinamis secara ekstensif untuk menyimpan status internal. Mereka terlihat di bawah mikroskop dan sirkuitnya dapat dilacak dan dipahami. Kristal 8086 menarik untuk dianalisis karena, tidak seperti prosesor modern, transistornya cukup besar untuk dilihat di bawah mikroskop. Itu adalah prosesor yang canggih dengan 29.000 transistor pada masanya, namun cukup sederhana untuk dilacak dan dipahami sirkuitnya.