ARSITEKTUR . . FAMILI KOMPUTER
: IBM PC
Pada bab ini kita akan meUhat bagaimana para arsitek merangkaikan komponen suatu komputer. Yang menjadi contoh disini adalah mM PC, namon prinsip berlaku sarna bagi kebanyakan komputeryang lain. Bagian 5.1 mengemukakan tinjauan singkat mengenai famili mM PC (termasuk PC AT), farnili turunannya PS/2, dan anggota kelompok Pc. Kemudian kita akan membahas secara rind arsitektur sistem hardware (USA) PC (Bagian 5.2 dan 5.3). Kitajuga akan meUhat beberapa chip pendukong PC dan interface antara sistem hardware dan software. Kita akan melihat bagaimana para arsitek memberikan alarnat ke berbagai komponen sistem, seperti memori akses random (RAM), ROM, tabel vektor exception, dan port I/O yang dipetakan memori (Bagian 5.4). Dalarn pembahasan mengenai sistem software PC, kita akan melihat tanggung jawab atau tugas ROM BIOS. Bab ini diakhiri dengan penilaian manfaat arsitektural PC (Bagian 5.5).
ISTILAH KUNCI Koprosesor Prosesor penggunaan khusus yang dirancang untuk beroperasi secara dekat dengan unit pemrosesan sentral (CPO) agar ia mendapatkan fungsionalitas tambahan, seperti aritmetik titik ambang. Enhanced Expanded Memory Standard (EEMS) Jenis memori expanded yang dapat digunakan oleh ffiM PC (International Business Machine Corporation's Personal Computer) untuk menjalankan program secara langsung; ia juga disebut memori expanded LIM 4.0. Bus Channel I/O (input-output) PC Bus lokal expanded dari ffiM PC. Ia mempunyai delapan jalur data. 20 jalur alamat, dan sejumlah besar jalur daya dan kontrol. Bus channel I/O PC AT Perluasan atau pengembangan Bus Channel I/O ffiM PC yang digunakan oleh komputer PC AT (Advanced Technology). Bus AT memberikan 16 (bukan 8) jalur data. 24 (sebagai perluasan dari 20) jalur alamat, dan memberikan intenupt serta pengontrol akses memori langsung (DMA) tambahan. Interface paralel programmable (pPI) Peralatan programmable yang memberikan interface antara Bus Channel I/O PC dengan peralatan I/O paralel, seperti disk drive atau printer. ROM BIOS Sistem I/O Dasar untuk PC, yang bertempat dalam memori read only (ROM) dan memberikan kontrol peralatan I/O lwgsung (hardware) dan timer.
308
Jika daya hidup, ia akan mengecek hardware, memprogram sirkuit refresh RAM dinamis (DRAM), memprogram peralatanI/O, dan memuat sistem pengoperasian. Receiver-transmittertak-sinkronuniversal(UAR1) Peralatanyang memberikan interface antara Bus Channel I/O PC dengan peralatanI/O yang digabungkan,yang tugasnya mengirim dan menerima informasi dalam bentuk bit serial, seperti modem. Wait State (kedudukan menunggu) Siklus bus kosong yang dijalankan oleh CPU pada waktu peralatan yang digabungkan (termasuk memori) tidak dapat mengantarkan data yang diminta dalam jurnlah waktu yang ditetapkan. Ini merupakan satu-satunya bab kita akan membahas HSA komputer secara rinci, dan kita akan mendeskripsikanbeberapa detail arsitekturalkhusus yang tidak akan kita kemukakan lagi untuk mesin yang lain apapun. Kita mengambil mM PC sebagai contoh karena ia melakukan revolusi terhadap industri komputer dalam beberapa hal. Sebelum PC, ada famili komputer besar yang terdiri atas sekitar 10 model dan puluhan ribu komputer individual. Sekarang terdapat lebih dari 60 juta PC yang telah digunakan.PC mengenalkankepada publik tentang komputasi yang sebenarnya, bukan hanya untuk game dan program aplikasi kecil yang telah ada sebelumnya.Perubahandalam pendekatanini secara besar-besarantelah mengubah industri software dan hardware. Sebelum munculnya PC, produk software telah dianggap berhasil apabila penciptanya bisa menjual puluhan ribu kopi. Sekarang, pembuat software, sepertiMicrosoft Corporation,Lotus DevelopmentCorporation, Ashton-Tate Corporation, dan Borland International, merup~an korporasi atau perusahaanmulti-jutadolar,denganprodukbest-selling-merekateljual antararatusan ribu sampaijutaan kopi. Yang terakhir,PC merupakankakek moyang dari berbagai komputer personal canggih sekarang ini, termasuk famili PS/2 (Personal System! 2). Penulis benar-benar mengharapkan agar semua pembaca mendapatkan pengetabuanmengenaikomputerpersonal.Jelasnya,arti historisnyaakan membantu pemahaman kita mengenai komputer personal.
5.1 FAMILIIBM
PC DAN TURUNANNYA
Industri komputer telah berkembang dengan cepat sejak penemuannya pada akhir tabun 1940-an. Pada tabun pertama, komputer yang paling murah harganya ratusan ribu dolar, dan harga ini terus meningkat apabila komputer tersebut meningkat ukuran dan kompleksitasnya. Namun demikian, dengan munculnya integrasi skala besar pada tabun 1970-an, harga komputer turun secara menyolok, dan pada akhir
309
tabun 1970-an, komputer-komputer yang relatif tidak mahal bagi para pemakai individual telah menjangkau pasar. Komputer tersebut dikenal sebagai personal computer (komputer personal); yang harganya biasanya di bawah $5000. Sebelum mengenal komputer personal, para pemakai biasanya mengklasifikasikan komputer dengan nama mainframe, minikomputer, atau superkomputer. Mainframe merupakan kuda beban bagi bisnis dan industri. Ia dirancang untuk memenuhi kebutuhan perusahaan besar, memberikan atau menyediakan ribuan terminal, menyediakanpenyimpan<'l1dalam jumlah gigabyte, dan memberi pasokan sumber untuk mengelola database yang besar. Namun demikian, harganya juga ratusan ribu sampai jutaan dolar. Minikomputer, yang umumnya lebih kecil dari pada mainframe,dirancang untuk memenuhi kebutuhan perusahaan kecil, laborato rium, dan departemen. Mesin ini dapat digunakan oleh beberapa pemakai sampai sekitar 100 pemakai, dan umumnya harganya antara $50.000 sampai $1 juta. Superkomputer adalah mesin tercepat dan terbesar yang ada pada saat itu dan oleh karenanya, harganya juga paling mahal. Jelasnya, bila secara perorangan kita tidak akan mampu menyediakanminikomputer,mainframe, atau superkomputer. Komputer personal pertama kali muncul setelah diperkenalkannya mikroprosesor,yaitu CPU chip tunggal yang terdiri atas set register, ALU, dan unit kontrol komputer. Intel Corporation mengenalkan mikroprosesor yang pertama, yaitu chip kalku1ator4-bit yang disebut 4004, pada tabun 1971, yang kemudian pada taboo 1975 ia mengenalkan 8080, yaitu chip CPU penggunaan umum 8-bit. Perusahaan lain, seperti Rockwell dan Motorola, memunculkan rnikroprosesor pesaing pada waktu yang hampir bersamaan.Perusahaan komputer dengan mudah dapat membuat komputer personal yang tidak mahal dengan menggunakan mikroprosesor sebagai CPU, yang dikombinasikan dengan komponen pendukung yang lain. Komponen lain tersebut meliputi power supply, sistem memori utama, bus sistem, terminal tampilan video, dan sistem I/O. Komputer personal pertama yang menjangkaupasar meliputi Altair 8800 dari MITS, TRS-80 dari Radio Shack, dan PEr PC (Personal Electronic Transacter) dari Commodore, yang semuanya muncul sekitar tabun 1977. Komputer tersebut ditujukan bagi para penggemar komputer. Walaupun revolusi komputer personal telah dimulai, namun tidak sampai 4 tabun kemudian, tepatnya bulan Agustus 1981, ffiM telah memperkenalkan ffiM Pc. ffiM, yang sekarang telah menjadi raksasaindustrikomputer,membidikkanatau memfokuskanpada sumbermanufaktur dan marketing yang belum banyak terdapat dalam pasaran pasaran komputer personal. Ia juga memunculkan sistem pengoperasianMS DOS (Microsoft Corporation's Disk Operating System), yang secara cepat menjadi standart industri. 310
__.- - n_.
_
n
_____________
Tujuan awal penggunaanPC adalah untuk perusahaanbisnis kecil dan aplikasi pennainan. Pada waktu ffiM memperkenalkan PC, pola penggunaan komputer personalnya sangat berbeda dengan apa yang kita jumpai sekarang ini. Spreadsheet dan word prosesor,yang merupakandua aplikasiutama komputerpersonal sekarang ini, pada waktu itu belum sempuma dan belum banyak digunakan. aplikasi grafIk, seperti komputer untuk desain dan desktop publishing, hanya digunakan pada mainframe dan minikomputer. Penggunaan untuk bisnis utama yang diperkirakan oleh perusahaan komputer pada saat itu adalah menggunakan versi program keeil yang dapat dijalankan pada mainframe dan minikomputer, seperti program accounting dan perpajakan untuk perusahaankeeil. Dengan adanya sasaran pasar ini, ffiM telah membuat beberapa keputusan penting mengenai konfIgurasi PC. Kita akan membahas hal ini seeara lebih rinei pada bagian berikut ini.
5.1.1 IBMPC dan PC AT Tidak seperti para pendahulunya yang sangat terkenal, yaitu Apple II dari Apple Computer, yang menggunakan CPU 8-bit. ffiM PC menggunakan CPU 16bit. Pada tabun 1981, mikroprosesor 8086 dari Intel merupakan mikroprosesor 16bit yang paling banyak digunakan di seluruh dunia, dan oleh karenanya banyak programmer yang telah mengenalnya dengan baik. Namun demikian, dari pada memilih mikroprosesor 8086 yang menggunakan bus data 16-bit, ffiM lebih cenderung memilih mikroprosesor 8088 dari PC intel, yaitu versi yang lebih murah dari pada 8086, yang menggunakan bus data 8-bit, bukannya menggunakan bus 16bit. (Lihat Case Studies untuk mengetabui lebih detal mengenai famili mikroprosesor Intel). Keunggulan menggunakan mikroprosesor 8088 adalah (1) bahwa ia mempunyai arsitektur set instruksi (ISA) yang sama seperti 8086 dan ia juga dapat menjalankan semua software yang berdasar pada 8086, dan (2) karena ia menggunakan bus 8-bit. para perancang dapat mengirit biaya pembuatan PC, yaitu dengan cara menggunakan peralatan pendukung 8-bit dan bukan dengan peralatan pendukung 16-bit. Biaya menjadi kendala utama bagi berhasilnya proyek PC, karena harga PC yang rendah akan lebih banyak menarik minat para pemakai bam. Namun, kinerja PC hams dapat dibandingkan dengan pesaingnya yaitu minikomputer. ffiM PC merupakan arsitektur bus tunggal. Jika otak PC adalah mikroprosesor 8088, maka sistem syarafnya adalah bus lokal yang diperluas, yang menurut ffiM disebut PC I/O Channel Bus (Bus Channel I/O PC), atau hanya disebut PC Bus. PC Bus melengkapi PC dengan delapan jalur data, 20 jalur alamat, dan sejumlah jalur kontrol dan jalur daya untuk memberikan fleksibilitas. Ruang alamat fIsik PC adalah 1 MB.
311
Salah satu keputusan atau kebijakan kunci yang menyebabkan berhasilnya PC adalah bahwa ia memasarkannya sebagaiarsitektur terbuka, yakni arsitektur yang komponennya, struktur busnya, dan sistem pengoperasiannya didokumentasi secara terbuka oleh perusahaan. Oleh karena itu, perusahaan komponen dapat merancang komponen barn atau komponen penggantian, sehingga para pemakai dapat dengan mudah menarnbahkan komponen tersebut pada sistem aslinya. Sejumlah perusahaan telah memasarkan komputer dengan arsitektur terbuka, termasuk Apple (narnun bukan untuk produk Macintosh-nya), dan sekarang ada banyak sekali peralatan yang kompatibel dengan bus untuk komputer tersebut. Peralatan yang ada tersebut meliputi papan memori, adapter graftk, disk drive, interface komunikasi, modem, dan bahkan CPU pengganti. Yang terakhir, keberhasilan sistem tergantung pada kehandalan (reliabilitas) dan keberadaan suku cadang komponennya, dan ffiM telah menentukan PC sebagai dasar untuk pembuatan famili komponen yang reliabel dan telah ditetapkan dengan baik. Komponen tersebut tidak hanya meliputi mikroprosesor, narnun juga pengontrol bus, pengontrol interrupt, timer, pengontrol DMA, dan interface I/O serial dan paralel. Bagian berikutnya pada Bab ini akan mendeskrlpsikan komponen ini dan menunjukkan bagaimana ffiM mengasembling mereka menjadi mikrokomputer berkinerja tinggi. Pada tahun 1983, Intel memunculkan famili 8086/8088 pada waktu' ia memperkenalkan mikroprosesor 80286, dan segera setelah itu IBM menggabungkannya ke dalarn famili PC-nya untuk memanfaatkan kemarnpuan proteksi memori dan kecepatan yang meningkat dari mikroprosesor itu. Pada tahun 1984, ffiM mem perkenalkan PC AT, yang merupakan PC hasil dari peningkatan kinerja utama yang pertama dari ffiM PC. 802~6 pada dasamya mempunyai ISA yang sarna dengan yang dimiliki 8086 dan 8088, narnun ia mempunyai dukungan tambahan terhadap hardware yang digunakan untuk segmentasi dan proteksi memori. Ia dapat beroperasi dalam Real Address mode (mode Real Address), yang merupakan mode kompatibilitas 8088, dan ia dapat berjalan pada semua software yang didasarkan pada 8088 asli (kecuali untuk software yang digunakan untuk segmentasi). Lebih dari itu, 80286 menggunakan lintasan (path) I/O 16-bit, buka9 path 8-bit, dan ia mempunyai jalur 24-alarnat, sehingga ia mempunyai ruang alarnat fisik 16-MB. .
Dengan munculnya AT, IBM harus mengupgrade PC Bus-nya. IBM
menarnakan bus barnnya ini PC AT I/O Channel Bus (Bus Channel I/O PC AT), atau hanya disebut PC AT Bus. Struktur bus antara PC dan PC AT mempunyai perbedaan pokok, dan kita akan membahas perbedaan tersebut pada bab berikutnya. Selain menetapkan standart bus untuk industri komputer personal, famili PC dari ffiM juga menyusun standart untuk tampilan video. ffiM PC muncul dengan
312
standart Monochrome Display Adapter (MDA), yang mempunyai satu wama dasar (bagian depan) dan satu wama background, misalnya hijau pada hitam. ffiM PC juga mempunyaiadaptertampilanwarnapilihanyang disebutColor GraphicsAdapter (CGA). Namun demikian, CGA mempunyai resolusi yang begitu rendah (320 x 200 pixel dengan empat wama), sehingga kebanyakan perusahaan bisnis mengandalkan pada resolusi MDA yang lebih tinggi (720 x 350 pixel). ffiM PC AT muncul dengan Enhanced Graphics Adapter (EGA), dengan resolusi 640 x 350 pixel dan 16 wama.
5.1.2 IBM Ps/2 Pada tabun 1987, ffiM memperkenalkanfamili komputer personal barn, yaitu famili PS/2, untuk mengganti famili PC. Famili PS/2 berbeda dengan famili PC dalam beberapa hal; dua yang paling pokok adalah bahwa ia menggunakan bus yang dirancang kembali yang disebut Micro Channel Architecture (MCA), dan ia menggunakan tampilan video resolusi lebih tinggi yang disebut Video Graphics Array (VGA). (Banyak PC sekarang menggunakan VGA). VGA memiliki resolusi 640 x 480 pixel dengan 16 wama. Meskipun demikian, famili PS/2 menggunakan famili chip CPU Intel yang sarna dan menjalankan hampir semua software yang sarna.(Konversinyatidakbenar; softwareyang dibuatuntukPS/2 tidakharns beIjalan pada PC). Famili PS/2 terdiri atas sejumlah model dehgan konfigurasi komponen yang berbeda, yang merefleksikan pertumbuhan teknologi mikrokomputer yang cep'at dalam tabun 1980-andan 1990-an.Model 25 dan 30 menggunakanchip CPU 8086 dan PC AT Bus (betum menggunakanBus MCA). Model 50 dan 60 menggunakan .CPU 80286 dan bus MCA 16-bit, dan Model 80 menggunakan mikroprosesor 80386 dan satu-satunya anggota famili PS/2 yang menggunakan bus MCA 32-bit. Intel mengenalkan mikroprosesor80386 pada tabun 1987. Ia .merupakanCPU 32bit dan memberikanbus data 32-bit, bus alamat 32-bit,dan ruang alamat virtual48bit. Seperti halnya 80286, ia juga mempunyai mode operasi Real Address, yang membuatnya kompatibel derigan program yang diran cang untuk beIjalan pada CPU 8086 dan.8088; jadi ia dapat menjalankan semua software yang dirancang untuk famili PC. Pada tabun 1988, Intel mencanangkan mikroprosesor 80386SX, yang pada dasamya merupakan chip 80386 dengan bus data 16-bit (bukan bus data 32-bit). Chip 80386SX memungkinkan para developer (perusahaan komputer) membuat komputer 32-bit dengan mengirit biaya pembuatan, karena mereka dapat menggunakan chip memori 16-bitdan peralatan I/O 16-bit, seperti hard disk. Pada 313
tahun yang sarna, ffiM memperkenalkananggota famili PS/2 yang lebih murah, yaitu Model 70, yang menggunakan CPU 80386SX dan bus MCA 16-bit. Pada tahun 1989, Intel mengeluarkan mikroprosesor 80486, yang sarna dengan 80386, narnun ia menyertakancache dan putaran (circuitry)internaluntuk pengkalkulasian aritmetik titik arnbang. (Beberapa komputer personal yang pertama menyertakan memori cache eksternaldan prosesor titik arnbang,narnun mereka ini tidak menjadi bagian dari chip CPU). Pada tahun 1991, ffiM memperkenalkanModel 90 dan 95, yang menggunakan mikroprosesor 80486 dan standart video bam yang disebut Extended Graphics Array (XGA). XGA memberikan dua resolusi, yaitu 1024 x 768 dengan 256 warna atau 640 x 480 dengan 65,536 wama dan pada dasamya sarna dengan enhanced VGA (VGA yang ditingkatkan).
5.1.3 Anggota Kelompok PC Segera setelah ffiM mulai memproduksi ffiM PC, dan sebagian karena ia merupakan arsitektur terbuka, maka para perusahaan mulai membuat anggota kelompok PC. PC clone (anggota kelompok PC) adalah komputer yang software dan hardware-nya kompatibel dengan ffiM PC. Untuk bisa kompatibel dengan PC atau PC AT, clone (anggota kelompok) ini hams menyanggaatau mempunyaiset instruksi8086(atau80386)secarakeseluruhan dan pada dasamya hams mempunyai hardware intrrupt yang sarna. Ia juga hams mempunyai struktur I/O yang menggunakan call sistem yang kompatibel dengan basic input-output system (BIOS) PC. Narnun demikian,jika clone menggunakan sistem I/O yang berbeda dengan yang digunakan PC, ia mungkin tidak bisa menjalankan software yang menjalankanI/O tingkat hardware-nya sendiri (kecuali dengan memanggil routine BIOS). Banyak program yang berkinerja tinggi menghindari call BIOS, dan akibatnya beberapa program ini tidak dapat berjalan pada clone PC tertentu. Namun demikian, banyak clone PC yang tidak 100% kompatibel dengan PC, walaupun mereka ini bisa menjalankan sebagian besar software untuk PC yang ada sekarang ini. Farnili PC, yang termasuk mesin clone maupun mesin ffiM, terus mengikuti perubahan seni teknologi. Akhir-akhirini, lusinan perusahaan memproduksi clone PC yang didasarkan pada chip CPU Intel, yaitu 8088, 8086, 80386, 80386SX, dan 80486. Pada waktu ffiM mencanangkan famili PS/2, ia membuat ketetapan yang menyangkutkonfigurasiPS/2 yang mempengamhiclone tersebut.ffiM memutuskan untuk tidak hanya memperluas AT Bus menjadi 32-bit, narnun juga menetepakan kembali arsitekturnya dan memperkenalkan PS/2 yang didasarkan pada MCA. 314
Narnun pada saat itu, beberapa perusahaan lain telah menghasilkan clone PC yang begitu mengandalkan CPU 80386. Walaupun Intel telah memunculkan berturutturut CPU 80386SX dan 80486, banyak perusahaan yang tetap menghasilkan clone PC dengan bus yang kompatibel dengan AT. Karena clone (kelompok) PC 32-bit menggunakan prosesor 32-bit, maka beberapa perusahaan umumnya menyertakan bus memori 32-bit tertutup (proprietary). Pada waktu ffiM mengentikan memproduksi mesin PC AT Bus, industri komputer tidak mempunyai standart bus 32-bit. Pada kenyataannya, ffiM tisak pemah mengeluarkan spesiftkasi detail mengenai PC AT Bus. Untuk mengatasi tidak adanya atau kurangnya standart PC 32-bit, pada tabun 1988 konsorsium dari beberapa perusahaan melakukan standardisasi bus AT extended 32-bit, yang disebut Extended Industry Standard Architecture (EISA) bus. Spesiftkasi EISA mencakup semua karakteristik timing bus bam. Sebaliknya, PC AT Bus sekarang dikenal sebagai industry standard architecture (lSA) bus. Bus EISA nampaknya akan menjadi standart yang akan diterima bagi anggota famHi PC 32-bit di masa mendatang, dan baik arsitektur MCA maupun arsitektur EISA narnpaknya akan menjadi standart untuk industri PC tabun 1990. Sementara mayoritas PC tabun 1991 mempunyai bus ISA, namun ada beberapa diantaranya yang mempunyai bus MCA dan bus EISA. Adalah benar bila kita katakan bahwa kecepatan RAM dinarnis (DRAM) belum bisa mengejar atau menyetarakan diri dengan peningkatan kecepatan CPU. Akibatnya, banyak perusahaan PC menyertakan atau menggabungkan memori cache yang relatif besar atau menggunakan sistem penyimpanan interleaved untuk mempercepat akses memori utama yang lambat. Cache menggunakan RAM statis (SRAM) berkecepatan tinggi dan mempunyai berbagai organisasi (susunan), seperti yang dikemukakan pada Bagian 4.2.2. Cache biasa mempunyai 8-K word 32-bit dan aturan posted write-through yang memelihara atau menjaga koherensi cache dengan cara memonitor bus dan dengan cara tidak memvalidasi entri cache yang tampilannya dalam memori dimodiftkasi oleh operasi store. Beberapa PC menggunakan SRAM sebagai pengganti DRAM, namun SRAM lebih mahal, sehingga komputer yang dihasilkan akan mempunyai harga yang lebih mahal.
5.2 KONFIGURASI MIKROKOMPUTER DASAR Mikrokomputer, seperti halnya PC, adalah komputer yang didasarkan pada mikroprosesor. Mikrokomputer menggunakan bus dengan cara yang sarna seperti yang dilakukan oleh komputer lain. Komputer tersebut biasanya terdiri atas casis 315
n
~_ _n...
..._._
(rangka) yng berisi power supply dan system board (papan sistem), yang juga disebut mother board. Papan sistem biasanyamenYaQggaCPU dan chip pendukung primemya, seperti jarn (clock), buffer data dan alarnat, pengontrol interrupt, dan beberapa memori utama. Papan sistem juga mempunyai slot, yaitu konektor yang di dalamnya berisi beberapa hubungan atau koneksi. Slot ini menyangga cards (atau daughterboard)yang ia sendirimenyanggacircuitry,sepertimemoritambahan, hard disk, pengontrol ootuk floppy disk (disket)dan hard disk, pengontrol monitor, pengontrol mouse, dan sejumlahopsion lain. Para perancang menstandardisasislot dan menghuboogkannyasecara paralel pada mother board. Dengan konfigurasi ini, pemakai dapat membelicard bam dan secaramudahdenganhanya memasangkannya ke dalarn slot yang kosong. Peralatan bam tersebut segera menjadi bagian terpadu dari komputer. Dengan teknologi sirkuit terpadu yang moocul pada akhir tabun 1970-an dan awal taboo 1980-an,beberapaperusahaanchip tidakbisa membuatsatu chip tunggal yang bisa memberikan semua fungsionalitas sistem komputer yang dikehendaki (walaupun sekarang usaha ini harnpir bisa dilakukan). Oleh karenanya, para perusahaan itu memproduksi chip sets (set chip), yang merupakan set dari chip pendukungkompatibelyang mengimplementasikanberbagaifungsi tertentu, seperti pengontrol interrupt,pengontrolbus, dan timer. Perusahaankomputer dapat dengan bebas dan mudah menggunakan set chip ini pada waktu merancang komputer. Umumnya, chip yang berada da1amset mematuhi batasan timing yang.sarna dan mempooyai logika kompatibel. Para perancang dengan mudah bisa menentukan atau memilih komponen yang diperlukandan menghuboogkannyabersarna dengan menggunakan bus yang tepat. Bahkan dimungkinkan pula bagi perancang untuk me-layout komputer secara keseluruhan tanpa pemah merancang sirkuit logika tunggal. Sebaliknya, para arsitek dan perancang komputer mainframe menetapkan setiap komponen sirkuit secara sendiri-sendiri,kemudian para perusahaan membuat spesiflkasinya. Meskipun demikian, hasilnya harnpir sarna, seperti yang segera akan anda lihat. Perusahaan chip biasanya memproduksichip khusus yang disebut koprosesor, yang beroperasi bersarna dengan CPU guna meningkatkan fungsionalitasnya. Beberapa chip koprosesor menjalankan aritmetik kecepatan tinggi, beberapa yang lain memberikan pemetaan hardware untuk memori virtual, dan yang lainnya memberikan grafik kecepatan tinggi. Chip koprosesor berbeda dengan chip pendukung dalam hal cara ia berkomunikasi dengan CPU, dan kita akan membicarakan koprosesor titik arnbang 8087 Intel dan protokol komooikasinya pada Bagian 5.3. Intel juga memproduksi chip koprosesor untuk chip CPU-nya yang lain, dan PC yang didasarkanpada chip CPU yang lebih bam dan lebih cepat seringkali menggunakan koprosesor yang bersesuaian: 316
CPU 8088 dan 8086 80286 80386 dan 80386SX 80486
Koprosesor Titik Ambang Yang Bersesuaian 8087 80287 80387 Tak ada - 80486 mempunyai circuitry titik ambang internal
5.3 KOMPONEN IBM PC ArsitekturfamiliffiM PC tidakhanyaditentukanoleh mikroprosesornya,namun juga oleh detail bus sistem, adapter display, keyboard, printer, tampilan video, dan BIOS-nya. Pada bagian ini, pertama kali kita akan melihat secara mendetail mikroprosesor 8088 (Bagian 5.3.1) diikuti dengan deskripsi mengenai interface kontrol mikroprosesor (Bagian 5.3.2). Kemudian kita akan mendeskripsikan PC Bus, PC AT Bus, dan sistem interrupt (Bagian 5.3.3). Bagian 5.3.4 dan 5.3.5 mengemukakan masalah sistem I/O dan membahas beberapa chip pendukung I/O programmable yang menjalankan berbagai tugas I/O secara efisien, sehingga mengurangi beban tugas CPU yang dilakukannya. Terakhir, kita akan mendeskripsikan koprosesor aritemtik titik ambang (Bagian 5.3.6). Pada bagian berikut ini kita akan membahas komponen sirkuit PC dengan cukup mendalam. Tujuannya supaya kita bisa mengetahui beberapa pertimbangan yang hams dilakukan oleh para arsitek dan perancang ketika mendesain komputer. Pertimbangan ini semuanya penting, dan pilihan komponen menjadi faktor desain yang pokok dalam segala pengimplementasian.Satu-satunyajenis komputer yang akan kita jelaskaIi dengan rinci mengenai komponen sirkuitnya adalah PC ini, namun dalam pembahasan ini kita akan mendapatkan banyak pelajaran mengenai seluk beluknya, khususnya karena komponen ini sangat mempengamhi kegunaan arsitektur PC. Tiga tujuan utama bagian ini adalah untuk mendapatkan gambaran mengenai penggunaanbus lokal expanded, I/O yang dikontrol DMA, dan interrupt yang divektorisasi. Gambar 5.1 menunjukkan komponen utama ffiM PC. Sistem kontrol bus meliputi pengontrol bus maupun buffer data dan latches alamat (Latches adalah register sederhana yang menyanggakatup (valve)dan menempatkannyapada bus). Sistem kontrol interrupt(INTR control) terutamaberisi pengontrolinterrupt. Sistem kontrol RAM dan ROM meliputichip RAM dan ROM, dekoder alamat, dan buffer. 317
Sistem kontrol DMA terutama berisi pengontrol DMA. Timer-nya adalah timer interval programmable, dan sistem kontrol I/O menyertakan interface paralel programmable (PPI). Garnbartersebut melukiskanCPU, narnun ia tidak menunjukkan koprosesor titik ambang 8087.
5.3.1 CPU 8088 Berikut ini kita akan melihat sekilas mengenai ISA dari mikroprosesor 8088 Intel. Karena 8088 dan 8086 mempunyaiISA yang sarna,apa yang kita kemukakan mengenai 8088 disini juga berlaku bagi 8086. Juga, dengan hanya perbedaannya pada instruksi yang digunakan untuk mengelola segmentasi dan proteksi memori, 80286 juga mempunyai ISA yang sarna dengan 8088 dan deskripsiberikut ini juga ada kaitannya dengannya. Case Study 12 akan memberikan rincian tambahan mengenai hal tersebut.
[
i
~
INTR contrOl
NMI !oglc
Power supcly
,
i82591
NMI
I
INTR
Clock Wait-state : logic
ROM ana ROM control
Bus control system
!ntel 3088 C?U
Expanded local bus
Additional slots
DMA control
jlO control i
I
!8237A-oj.
Keyboard 3na
i
RAM and RAM control
:Imer
Gambar 5.1 Komponen utama IBM Pc. Gambar ini tidak menunjukkan sebagian besar jalur kontrol dim hubungan bus. NM1, nonmaskable-interrupt; 1NTR, interrupt request. Bilangan yang ada dalam kurung menunjukkan nomor suku cackmg untuk setiap komponen.
318
Datatype. 8088 memberikan datatype berikut ini: * * * *
integer biner unsigned 8-bit dan 16 bit integer (bilangan bulat) komplemen dua 8-bit dan 16-bit desimal packed (dua digit BCD per byte) desimal unpacked (satu digit BCD per byte; 4-bit high-ordemya adalah 0
Set Register 8088 adalah mikroprosesor 16-bit. Set registemya, yang ditun jukkan pada Gambar 5.2, terdiri atas 13 register penggunaan khusus 16-bit dan set sembilan flag. Setiap register data mempunyai penggunaan khusus: AX adalah akumulator, BX adalah register base, CX menyangga count (digunakan selama instruksi transfer data tertentu), dan DX menyimpan atau menyangga data temporer. CPU dapat mengalamatkan setiap register data atau setiap setengah register data 8-bit. 8088 mempunyai empat register segmen dan menggunakan pengalamatan register segmen (Bagian 2.5.3) baik untuk meningkatkan ukuran alamat efektif dari 16 menjadi 20 bit dan untuk memberi software suatu cara perelokasian tiap keempat segmen yang berbeda tersebut secara independen. Yang terakhir ini akan kita bahas ketika kita membicarakan formasi alamat efektif. Keempat register indeks memberikan offset terhadap berbagai segmen. Sebagai contoh, selama operasi string, register indeks sumber (SI) dan register indeks tujuan (DI) memberikan offset dari karakter pada saat itu dalam string sumber dan tujuan, dan flag arah (DF) menentukan apakah operasi tersebut at<:anmenambah (increment) atau mengurangi (decrement) SI dan DI. Terakhir, CPU secara .individual dapat l)1enyusun atau menghapus beberapa flag. Iajuga dapat memberlakukan set flag sebagai kuantiti 16-bit (dengan 7 bit tak terpakai).
Set Instruksi 8088 mempunyai set instruksi penuh. Banyak instruksinya yang dapat mengubah atau memanipulasi data dan mempunyai varian 8-bit dan 16-bit. Register AX adalah akumulator untuk sebagian besar instruksi aritmetik dan logika. Berikut ini adalah daftar jenis instruksinya: 319
Data register
f
8
8
AX
AH
BX
BH
Base
BL
CX
CH
Count
CL
DX
DH
Data
DL
AL
Accumulator
Index register and pointers SP
Stack pointer
BP
Base pointer
SI
Source index
DI
Destination
index
Segment register CS
Code segment
DS
Data segment
SS
Stack segment
ES
Extra segment Program
IP Flags
__
i--
:--
- - ; OF
DF
counter
and flags register
Instruction
pointer
IF
SF
OF, DF, IF, TF, SF, ZF, AF, PF, CF,
TF
ZF
__
i AF i _ _
! PF i _ _
I
CF
Overview flag; Direction flag; Interrupt flag; Trap flag; Sign flag; Zero flag; Auxiliary carry flag; Parity flag; Carry flag.
Gambar 5.2 Register user-visible (dapat dilihat oleh pemakai) dari mikroprosesor 8088 Intel. (Flag: OF, flag overflow; DF, flag arah; IF, flag interrupt; TF,flag trap; SF, flag sign; ZF, flag nol; AF, flag carry pembantu; PF, falg parity; dan CF, flag carry. Tanda garis pisah menunjukkan bit tak terpakai. *
* 320
aritemtik (integer, desimal) SHIFT dan ROTATE (dengan atau tanpa carry t1:tg)
*
logis (AND, OR, XOR, NOT)
* * *
string (MOVE, COMPARE, SCAN) transfer kontrol (JUMP, LOOP, REPEAT, CALL, RETURN) interrupt (INTI1AlE INTERRUPT, RETURN FROM INTERRUPT, dan flag SET and CLEAR IF)
* * * * *
stack (PUSH, POP, PUSH FLAGS, POP FLAGS) load, store, dan exchange (byte, word) kontrol prosesor (ESCAPE, HALT, LOCK, TEST, WAIT, NO OP) input (IN) dan output (OUT) (byte atau word) khusus/ miscellaneous (ADJUST, CONVERT, TRANSLAlE).
Karena sebagian besar instruksi bersifat standart (dan banyak yang telah dibahas pada bab sebelumnya), kita tidak akan membahasnya disini. Bagi anda yang ingin melihat secara lebih mendetail mengenai famili 80x86, anda bisa membacanya pada Case Studies.
Optional segment-override-prefix byte Mandatory op-code byte Address specification and immediate-data bytes '" Immediate
data
Data
.
1001,,1101
Data low
. op code
I
I
Data high
Addressing mode mod reg rim mod reg rim
Displacement ...
I
disp
disp low
disp high
Gambar 5.3 Komponen-komponen instruksi 8088. Nilai rr dalam byte segment-override menunjukkan register segmen yang mengikuti: ES (00), CS (01), SS (10), dan DS (11); Disp, displacement (offset) atau pengganti; Mod, reg, rim; lihat penjelasannya pada teks.
321
Format Instruksi Setiap instruksi mempunyai suatu op-code byte perintah. Instruksi impliedoperand (operand penuh) hanya berisi byte op-code. Beberapa instruksi mungkin mempunyai 8 atau 16 bit data immediate, menurut byte op-code-nya. Instruksi yang mengakses memori mempunyaibeberapa byte untuk setiap spesiftkasialamat. Setiap spesiftkasi alamat berisi satu address-mode byte (byte mode alamat) yang diikuti oleh satu atau dua displacementbyte (byte pengganti).Jika ada, spesiftkasi alamat akan menunjukkan mode pengalamatan, panjang alamat, displacement (penggantian),dan register base dan indeks, seperti yang akan dibahas pada bagian berikutnya. CPU biasanya menentukan register segmen dengan default. Namun demikian, programmer dapat mendahulukan instruksi dengan segment-overrideprefix byte, yang menetapkanregister segmen mana yang akan digunakan. Bagian berikut inijuga akan mendeskripsikanbagaimanaCPU menentukanregistersegmen. Gambar 5.3 menunjukkan komponen instruksi 8088.
Pengalamatan CPU mengkomputasi alamat efektif 20-bit dalam dua bagian. Pertama ia mengkomputasiCPU address(alamatCPU) 16-bitdengan menggunakansalah satu mode pengalamatan standart yang ditunjukkan pada deskripsi selanjutnya nanti. Kedua ia mengkomputasi alamat efektif dengan menggunakan pengalamatan register segmen seperti yang dikemukakan pada Bagian 2.5.3. Karena 8088 tidak memberikan memori virtual, maka alamat fIsiknya sama seperti alamat efektif. Selama penjemputan instruksi,CPU mendapatkanalamat instruksiCPU 16-bitdari counter program (IP). Selama akses stack, ia mendapatkanalamat CPU dari pointer stack (SP). Selama eksekusi instruksi,CPU menggunakanbyte mode pengalamatan dan field displacement instruksi untuk menentukan alamat CPU operand. Byte mode pengalamatan mempunyai tiga field (mod, reg, dan rIm) yang digunakan bersama-sama dalam menentukan register dan mode pengalamatan:
mod
322
reg
rim
Tabel 5.1 Mode pengalamatan
standart
dari instruksi 8086 Intel.
Mode
Computation
Sf Df Direct address Direct Direct, indexed Sf + disp DI + disp BX Base relative Base relative direct BX + disp Base relative indexed BX + Sf BX + Df BP + Sf Base relative indexed stack BP + Dl Base relative direct stack BP + disp Base relative direct indexed BX + Sf + disp BX + Df + disp Base relative direct indexed stack BP + Sf + disp BP + Df + disp
Implied
rIm
mod
100 101 110 100 101 111 111 000 001 010 011 000 000 001 010 011
00 00 00 01; 10 01, 10 00 01,00 00 00 00 00 01, 10 01,10 01,10 01,10 01,10
displacement (offset); the two-letter abbreviations refer to the values in the corresponding registers.
Apabila mod = 112, maka CPU menggunakan mode pengalamatan standart yang disebutkan pada Tabel 5.1. Untuk mode pengalamatan standart, CPU mendapatkan displacement,disp, dari instruksiitu sendiri. (Offset biasanya disebut displacement dalam literatur PC). Apabila mod
= 112, maka
CPU menggunakan
pengalamatan register, yang dalam hal ini reg field byte mode pengalamatan dan 1 bit op code (w) menentukan register. Tabel 5.2 menunjukkan bagaimana 8088 menentukan atau memilih register untuk pengalamatm register.
323
Tabel 5.2 Pilihan register untuk mod reg
w
000 001 010 011 100 101 110 111
= 112 pengalamatan.
= oa
AL CL OL BL AH CH OH BH
w=l AX CX OX BX SP BP SI DI
aThe wbit comes from the op code.
Formasi A/amat Efektif 8088 menggunakan pengalamatan register segmen untuk mengubah alamat CPU menjadi alamat efektif 20-bit. Register segmen selalu mengacu kepada keempat segmen 64-KB meori utama yang disebut data segment, code segment, stacf<:segment, dan extra segment. (Sepanjang pembahasan kita. register segmen yang mengacu pada kepada segmen ini secara berturut-turut akan disingkat dengan OS, CS, SS, dan ES; lihat Gambar 5.2). Umumnya, segmen data (data segment) dan segmen ekstra menyangga data, segmen kode menyangga sebagian program yang sedang dijalankan, dan segmen stack menyar.gga stack sistem. Pada waktu membentuk alamat efektif, CPU memilih register segmen default yang didasarkan pada jenis akses memori: *
*
Selama penjemputan instruksi, CPU mendapatkan alamat efektif dari IP dan selalu memilih CS.
Selama operasi stack, CPU mendapatkan alamat efektif dari SP dan selalu memilih SS.
* . Untuk operasi lain, CPU menggunakan default berikut ini, yang mungkin tidak ditolak oleh programmer: *
324
Pada waktu ia membentuk alamat efektif dengan menggunakan pointer base (BP), ia memilih SS.
* *
P;tda waktu ia membentuk alarnat efektif dengan menggunakan indeks tujuan (DI) yang terjadi selarna operasi string, ia mernilih ES. Untuk semua operasi yang lain, ia mernilih DS.
va 8088 mempunyai dua instruksi I/O, yaitu IN dan OUT, yang men transfer data diantara akumulator (AL untuk transfer byte atau AX untuk transfer word). CPU mempunyai ruang alamat I/O 16-bit dan dengan demikian ia dapat mengakomodasi 64-K port 8-bit atau 32-K port 16-bit. Selarna operasi I/O, CPU mengambil alarnat port dari instruksi itu sendiri sebagai operand immediate atau dari DX.
5.3.2 Interface Kontrol 8088 adalahperalatanchip tunggalyang mempunyaisejumlahkoneksiekstemal yang disebut pin. Pin ini digunakan untuk menghubungkanperalatan chip tersebut dengan peralatan lain dan dengan memori. Beberapa pin merupakan pin alamat, yang lainnya adalah pin data, dan sisanya adalah pin daya dan kontrol. 8088 menggunakanbidirectionalpin (pindua arab),yakniuntukinputdan ouput (walaupun hal ini tidak sekaligus).Pin dengan penggunaanberbeda pada waktu yang berbeda disebut time-division-multiplexed(TMD) pin. Mikroprosesor 8088 ditempatkan dalarn paket pin 40. Para perancang dari Intel mernilih pin 40 ini dikarenakan faktor biaya dan adanya keterbatasan yang diakibatkanoleh adanyapengemasanteknologipada tahun 1980.Akibatnyamemang sangat berpengarnh. Beberapa pin harns melakukan lebih dari satu fungsi dan dengan demikian mereka membutuhkanmultiplexingpembagianwaktu. Kemudian, karena pin-pin tersebut mempunyai penggunaan berbeda dan pada waktu yang tidak sarna, PC harns menyediakan latches (pengunci) untuk menyangga nilai temporer. Selain itu CPU perlu dirancang agar dapat mengirirnkan dan menerima data dengan byte bukannya dengan word. Hal ini juga untuk menjadikan PC agar ia lebih mudah menggunakan peralatan ekstemal 8-bit dan juga untuk alasan ekonornis. Lmtasan data 16-bit, seperti yang digunakan oleh rnikroprosesor 8086 Intel, menggunakan delapan pin time-division-multiplexed, yang membtuhkan pengunci data dan jalur bus data tambahan,sehingga hal ini akan menambah biaya. Pin 40 dari 8088 menetapkan interfacenya dengan peralatan luar, yang maksudnya peralatan-peralatanPC yang lain. Narnun demikian, untuk memaharni prinsip-prinsipumum mengenai operasi PC, kita tidak perlu memaharni setiap pin tersebut. Tabel 5.3 memberikan garnbaran mengenai pin 40 dan penggunaannya. 325
Kontrol Bus CPU 8088 menggunakan siklus bus yang paling sedikit melakukan 4 siklus jam; setiap siklus jam menentukan satu keadaan atau kedudukan bus. Selama siklus memori atau bus I/O, CPU menempatkan alamat memori atau alamat peralatan I/ o pada bus selama kedudukan bus pertama. 8088 membagi alamat menjadi tiga bagian (bit 19-16, bit 15-8, dan bit 7-0), yang ia kirimkan melalui pin A19/S6 ke A16/S3, melalui pin AI5 ke A8, dan melalui pin AD7 ke ADO. Tujuan CPU mengirimkan alamat hanya selama kedudukan bus pertama adalah bahwa ia ingin menggunakan pin A19/S6 sampai A16/S3 untuk informasi status dan AD7 sampai ADOuntuk data selama kedudukan bus yang lain. Karena 1 siklus jam waktunya tidak cukup bagi sistem penyimpanan atau sistem I/O untuk mendekode alamat, maka circuitrybus menyertakanpenguncialamatuntuk menyimpanatau menyangga alamat-alamatdan menempatkanmereka pada bus pada waktu sistem penyimpanan dan sistem I/O mendekode mereka (lihat Gambar 5.1 dan 5.4).
Tabel 5.3 Fungsi-fungsi pin dalam mikroprosesor 8088.
326
Nama Pin
Fungsi
AD7-ADO
Kedelapan pin ini bersifat time-division-multiplexed. Mereka berfungsi sebagai pin output alamat maupun sebagai pin data dua arab.
A15-A8
Kedelapan pin ini hanya berfungsi sebagai pin output alamat
AI9/S6-AI6/S3
Keempat pin bersifat time-division-multiplexed. Mereka berfungsi sebagai pin output alamat maupun sebagai pin output status.
GND, Vcc
Ketiga pin ini (dua diantaranya adalah pin GND) menghubungkan chip ke power supply. (GND, ground; Vcc, voltase).
CLK
Pin ini, yakni input jam, menrima 4,77 MHz signal dari jam ekstemal (Clock Generator 8284A) dan mengatur timing 8088. Signal jam mengatur kecepatanCPU. 4,77 MHz didasarkan pada sifat-sifat pengoperasian semua komponen sistem. Beberapa clone PC berjalan pada kecepatan yang lebih tinggi karena semua komponennya lebih cepat.
RESET
Signal ke pin menyebabkan 8088 menandai berbagai register dan memulai operasi. PC mengeluarkansignal RESETpada power up atau waktu teIjadinya system crash. Signal RESET menyebabkan CPU menandai segmen register segmennya dan pointer instruksinya, dan ia menyusun register segmen kodenya menjadi FFF16, yakni alamat vektor reset. Akibatnya, eksekusi dimulai pada routine yang alamatnya berada dalam lokasi FFFF16.
Control
15 pin yang lain membawa signal kontrol tambahan; beberapa diantaranya akan dibahas tersendiri.
Selama siklus memori atau siklus bus I/O, alamat memilih lokasi memori atau peralatan I/O. Setelah CPU mengirimkan alamat tersebut, ia mungkin akan mengirimkan data (selama siklus bus tulis atau siklus bus output) atau mungkin akan membaca data (selama siklus bus baca atau siklus bus input). Selama siklus bus tulis atau siklus bus output, CPU menempatkan data pada pin AD? sampai ADO selama kedudukan bus kedua, ketiga, dan keempat, dan peralatan penerima (mungkin lokasi memori yang telah ditentukan atau peralatan I/O yang telah ditentukan) membaca data yang dihasilkan oleh CPU selama kedudukan bus keempat. Untuk siklus bus baca atau siklus bus input, lokasi memori atau peralatan I/O yang telah ditentukan akan menempatkan data pada jalur data, dan prosesor membaca data (dengan cara membaca nilai pada pin AD? sampai ADO) selama kedudukan bus keempat. Yang terakhir, peralatan ekstemal yang telah dipilih akan secara logis melepaskan diri dari bus, dan CPU menyiapkan siklus bus berikutnya dengan cara melepaskan dirinya dari bus alamat. Peralatan lain sekarang bisa meminta jasa bus.
Wait State (kedudukan menunggu) Tidak semua peralatan dapat merespon terhadap request input dalam keempat kedudukan bus yang diperlukan tersebut. Apabila suatu peralatan tidak bisa merespon, maka ia memberitahu CPU mengenai kenyataan itu dengan mengirimkan signal not-ready ke input READY CPU, yang merupakan salah satu input kontrol. CPU menguji input READY pada akhir kedudukan bus kedua. Jika READY false (salah), maka CPU akan memasukkan wait state ke dalam siklus bus. Wait state adalah kedudukan (state) bus dummy (bodoh) yang dijalankan oleh CPU pada waktu peralatan yang tergabung atau memori tidak dapat mengantarkan data yang diminta dalm jumlah waktu yang dikehendaki atau yang telah ditetapkan. CPU mengecek READY kembali pada akhir wait state dan mengulangi proses sampai READY true (benar). Ia kemudian membaca data dari bus data. Perlu anda perhatikan, bahwa karena wait state, siklus bus mungkin bisa lebih lama dari pada 4 siklus jam.
Signal Status CPU CPU mempunyai tujuh pin yang mengantarkaninformasistatus ke pengontrol bus, yaitu S2 sampai SO dan A19/S6 sampai A16/S3. Pin status S2 sampai SO, yakni tiga dari pin kontrol, selalu mengirimkan informasi status dari CPU; pin TOM A19/S6 sampai A16/S3 mengirimkan informasi status hanya pada waktu tertentuselamasiklusbus. Denganmenggunakanpin status,CPU membuatinformasi berikut ini dapat digunakan oleh (tersedia bagi) pengontrol bus: 327
register segmen yang digunakan untuk membentuk alamat state (kedudukan) flag interrupt jenis siklus bus: akses segmen kode baca memori tulis memori tak ada operasi bus pengabulan interrupt baca I/O tulis I/O halt status antrean instruksi: CPU menjalankan byte pertama instruksi CPU mengosongkan antrean instruksi CPU mengambil byte instruksi berikutnya dari antrean.
Address A19/S6
-A16/S3 ..' Address latch
-
Address
bus bits 19
-16 -
bus bits 15 8
A15 A8 Address bus bits 7- 0 8088 CPU
-
Data bus bits 7 0
-
AD7 ADO
Control
.,',..'
:
:'~~~5~~1:~a,~i~~n~;~iver
Control Storage system
Gambar 5.4 Diagram bus CPU 8088 yang disederhanakan, yang menunjukkan pengunci (latches) alamat dan transceiver data yang diperlukan.
328
Selain itu, CPU memberikan signal kontrol berikut ini: signal bus-request dan bus-grant untuk mengkoordinasikankoprosesor signal bus-control untuk mengunci bus dengan instruksi LOCK signal interrupt-control
5.3.3 PC Bus dan Sistem Interrupt Pada Bab 5 kita mendeskripsikan bus lokal, bus lokal expanded, dan bus sistem. Bagian ini dan berikutnya akan menggambarkan penggunaan bus lokal expanded. PC Bus adalah bus lokalexpanded.Pembuatnyamerancangbus ini sedemikian rupa sehingga pemakai dapat dengan mudah menggabungkanberbagai peralatan I/ o ke bus ini. PC Bus sama dengan bus lokal 8088, namun ia menggunakan signal kontrol yang sedikit berbeda. (Bus lokal 8088 pada Gambar 5.4 berada diantara CPU dengan pengunci alamat dan transceiverdata. Lihatjuga Gambar 5.5). Ia juga memberikan sejumlah layanan tambahan kepada peralatan yang digabungkan, rnisalnya daya, jalur request interrupt, dan jalur kontrol DMA. PC Bus menggunakan pengontrol bus, pengunci alamat, dan transceiver data (buffer data dua arab) sebagai bagian dari circuitrynya.Pengontrol bus, yang akan kita bahas pada bagian selanjutnya,menghasilkansignalkontrol. Signal ini berbeda dengan signal dari bus lokal CPU; namon perbedaan ini tidak penting untuk pembahasan kita kali ini, kecuali ada yang perlu anda ~atat bahwa signal tersebut menyertakanjalur-jalu kontrol baca memori, tulis memori, baca I/O, dan tulis I/O terpisah, untuk membedakan siklus bus baca dan tulis I/O dengan siklus bus baca dan tulis memori. (Dengan menggunakan dua jalur kontrol, CPU 8088 hanya membedakan antara baca dan tulis dan antara memori dan I/O). Jalur kontrol memori dan I/O yang terpisah memungkinkan pengontrol DMA bisa mentransfer data secara langsung dari peralatan I/O ke memori selama siklus bus tunggal. Ringkasnya, PC Bus menggunakan 62 jalur, yang 20 diantaranya adalah jalur alamat, delapan diantaranyajalur data dua arab, delapan diantaranya adalah jalur daya dan ground, dan 26 sisanya adalahjalur kontrol.Jalur kontrol-jalurkontrol ini meliputi jalur request DMA, jalur persetujuan DMA, jalur request interrupt, jalur ready channel I/O, jalur jam berfrekuensi tinggi, dan beberapa jalur kontrol penggunaan khusus lainnya.
329
Pengontrol Bus 8288 Intel Pengontrol bus 8288 mengubah status CPU dan signal jam menjadi signal kontrol bus. Gambar 5.5 menunjukkanhubungan antara CPU, pengontrol bus, bus lokal CPU, dan Bus Channel I/O Pc.
Pemrosesan Interrupt Para arsitek prosesor melengkapi 8088 Intel dengan mekanisme umum untuk pemrosesan interrupt. Pada waktu peralatan ekstemal meminta interrupt, maka CPU mengawali atau membentuk rangkaian siklus bus khusus yang disebut interruptacknowledge sequence (rangkaian persetujuan interrupt). Peralatan ekstemal mengenali atau mengetahui rangkaian persetujuan interrupt dengan cara mendekode signal kontrol bus, dan peralatan yang meminta nielakukan respon dengan cara menempatkan nomor vektor interruptnya pada bus data agar bisa dibaca CPU. CPU menggunakan nomor vektor interrupt, yang dikalikan dengan 4, sebagai offset bagi tabel vektor interrupt, dan kemudian ia mencabang ke interrupt handler yang tepat. Part of the IBM PC I/O channel Memory
rho 8088I~I b..
writ. oootroll1°" ClK
Power supply
st;~u~ ~ signals
.1
8288
8088
A19-A17 A16 - A8
Address latch Address latch
ClK RcADY RESET
Control AD7
- ADO
Data transceiver
Gambar 5.5 Jam, daya, dan circuitry bus yang digunakan oleh IBM Pc. 330
bus
and I/O read and
I
ll
Karena ffiM PC menggunakan pengontrol interrupt, maka peralatan eksternal tidak berkomunikasi secara langsung dengan CPU. Namun, ia mengirimkan interrupt request-nya ke pengontrol interrupt (akan dibabas secara singkat). Hanya pengontrol interrupt-lab yang bisa secara langsung me-request (meminta) interrupt CPU, dan hanya pengontrol interrupt-lab yang merespon ke rangkaian persetujuan interrupt CPU. Ia meresponnya dengan cara mengirimkan nomor vektor interrupt dari peralatan yang meminta ke CPU. Jika CPU bisa mengabulkan interrupt dan pengontrol interrupt meminta interrupt, maka CPU akan memulai pemrosesan interrupt. Kapan tepatnya pemrosesan tersebut dimulai tergantung pada beberapa faktor, yang meliputi apakab instruksi sinkronisasi prosesor (instruksi dengan preftks LOCK) sedang berjalan, atau apakab request HOLD bus melakukari penundaan. Pada sembarang event, bilamana CPU mulai memproses interrupt, maka signal status yang dihasilkan CPU akan memberitahu pengontrol bus mengenai keadaan atau kenyataan itu. CPU memulai pemrosesan interrupt dengan rangkaian persetujuan interrupt, yang menyediakan cukup waktu bagi CPU untuk menerima 1 byte data, yaitu nomor vektor interrupt, dari pengontrol interrupt. CPU mengontrol bus selama seluruh rangkaian persetujuan interrupt. Hal ini mencegab pengontrol bus melakukan request HOLD dan memberikan kontrol bus ke peralatan lain, misalnya koprosesor.
Pengawalan Interrupt SetelabCPU menyetujuirequest(permintaan)interruptdan mendapatkannomor vektor interrupt, i.a memulai interrupt-initiationsequence (rangkaian pengawalan interrupt) standart. Pada dasamya, ia menjalankanjump (lompatan) indexed-indirect) ke interrupt handler. Ia pertama kali akan menggeser nomor vektor interrupt ke kiri 2 bit guna membentuk interrupt-vectoraddress (alamat vektor interrupt). (Tabel vektor interruptmulai pada alamat 000016dalam ffiM PC; dengan demikian, offset yang berada dalam tabel tersebut merupakan alamat vektor interrupt). Bila dimulai dari alamat vektor interrupt, maka 2 byte yang pertama adalab nilai segmen kode dan dua byte berikutnyaadalab nilai IP. CPU menjemputbyte-byte ini dengan menggunakan'siklus bus biasa. Selanjutnya, ia mendorong atau mengeluarkan isi register flag yang ada dalam flag, dan ia menghapus atau mengosongkan flag interrupt dan trap (IF dan TF). Ia kemudian mendorongatau mengeluarkannilai CS dan IP yang ada dalam stack. Yang terakhir, ia mengganti isi CS dan IP dengan nilai yang barn saja ia jemput dari vektor interrupt. Oleh karena itu, eksekusi berlanjut dengan interrupt handler.
331
Pengontrol Interrupt 8259A Intel 8088 hanya mempunyai dua input kontrol interrupt, yaitu nonmaskable interrupt (NMI)dan interruptrequest(INTR).Jika sistem,sepertiffiM PC, menggunakan lebih dari satu peralatan yang dapat mengabulkan interruptjenis yang sarna, maka sistem tersebut harns dilengkapidengan circuitrytambahan agar bisa menyesuaikan diri dengan request interrupt yang bersarnaan.Ia juga harns dilngkapi dengan circuitry untuk memberitahu CPU mengenai nomor vektor interrupt dari peralatan yang meminta, yang ia lakukan dengan cara mengirimkan nomor itu ke bus data selarna perangkaian persetujuan interrupt. Pengontrol interrupt 8259A Intel adalah chip penggunaan khusus yang dirancang untuk tujuan tersebut. -,"
AO
'.0
INT Data
8259A interrupt control o
Other interrupt signals
INTR
L:: Clock
Memory and I/O read and write control Address
8088
bus
Data bus
NMI
aUTO 8253 OUT 1 Timer OUT 2
To DMA channel 0
Gambar 5.6 Pengontrol interrupt IBM Pc. NMI, nonmaskable interrupt; INTR, interrupt request; CS, chip select.
332
Gambar 5.6 menunjukkanbagaimanaffiM PC menggunakanpengontrolinterrupt. Ia juga menunjukkan hubungan interrupt untuk logika keyboard dan untuk timer, yang akan kita bahas sebentar lagi. Pengontrol interrupt mempunyai beberapa fungsi: * * * *
Ia menerima request interruptdari sebanyaknyadelapan sumber yang berbeda. Ia memberi prioritas kepada request interrupt tertentu. Ia menutup request interrupt Ia memproses signal persetujuan interrupt CPU dengan mengirimkan nomor vektor interrupt ke CPU. Ia mendasarkan tindakannya ini pada sumber interrupt dan nilai yang diprogram.
Jika ada request-request interrupt lain tetjadi pada waktu PC sedang memproses interrupt, maka pengontrol interrupt akan mengantrekan atau mengurutkan mereka agar dapat ditangani oleh CPU.
Pengontrol DMA CPU dapat mengontrol semua I/O dengan secara langsung menulis data dan mengontrol word pada interface I/O (dengan menggunakan instruksi OUT) dan dengan membaca data dan informasi status dari interface I/O tersebut (dengan menggunakan instruksi IN). Namun demikian, agar penggunaan CPU efisien, ia bisa mengontrol setiap transfer data. Agar pemakai mendapatkanlayanan I/O yang efisien, maka PC bisa menggunakan pengontrol I/O DMA. Sebelum membahas pengontrol I/O DMA PC dan penggunaannya,marilahkita lihat dulu mengenai apa yang hams dilakukan CPU apabila tidak ada pengontrol DMA. Pada umumnya, peralatan I/O memproses data dalam blok. Sebagai contoh, pada waktu membaca data dari disket (floy disk), CPU mungkin memerlukan terjadinya transfer seluruh sektor data dari disk ke buffer yang ada dalam memori atau sebaliknya.Pada waktu CPU mentransferfile melaluijalur telpon, ia mungkin mengirimkan rangkaian ratusan karakter ke interface I/O serial. Umumnya, CPU akan melakukan hal-hal berikut ini untuk mentransferblok data input dari disk ke buffer yang ada dalam memori: 1. Pertama kali CPU akan memprogram peralatan interface I/O, seperti yang dijelaskan pada Bagian 5.3.4. (Umumnya, software ROM BIOS akan menginstruksikanCPU untuk memprogram peralatan interface I/O). 333
2.
CPU kemudian akan menjalankan disk dengan carn mengirimkan signal kontrol kepadanya dengan menggunakan interface I/O. CPU mengirimkan alamat byte pertama dari blok yang sedang dijalankan maupun signal yang meminta agar disk drive mulai membaca data.
3.
Bila CPU telah menjalankan peralatan I/O, maka peralatan tersebut akan mentransfer data ke interface I/O satu byte sekali waktu.
4.
Interface I/O menginterupsi CPU pada waktu ia menerima data dari disk.
5.
CPU membaca (dengan menggunakan instruksi IN) data dalarn register byte akumulatomya (AL), yang secara serentak atau bersarnaan menyiapkan interface I/O untuk byte berikutnya.
6.
Sekarang CPU mengecek apakah masih ada data yang akan ditransfer. Jika masih ada, ia akan memberitahu peralatan I/O untuk berlanjut guna mendapatkan byte data berikutnya, dan peralatan I/O memberi signal pada disk untuk mentransfer byte berikutnya.
7.
Sementara itu CPU mentransfer byte sebelumnya dari register AL-nya ke memori dan menarnbahkan (increment) pointer-nya ke dalarn memori.
8.
CPU sekarang menunggu interrupt I/O yang akan menginteruPsinya. Mungkin ia melakukan tugas lain pada waktu menunggu interrupt I/O ini. Pada waktu interface I/O menginterupsinya, maka ia kembali ke Langkah 5 dan berlanjut dengan urutan ini sarnpai tak ada lagi data yang perlu ditransfer (Langkah 6).
Guna pengontrol DMA adalah untuk menjalankan hal-hal yang sarna dengan Langkah 5, 6, dan 7 (memberi signal pada peralatan I/O untuk mentransfer byte data berikutnya, mentransfer data ke lokasi memori berikutnya, dan mengecek apakah masih ada lagi data yang perlu ditransfer), sehingga ia membebaskan CPU dari tugas atau kerja yang berulang-ulang. Pengontrol DMA tidak memprogram interface I/O dan tidak pula memproses interrupt. Namun demildan, pada waktu ia selesai mentransfer data, ia akan memberitahu CPU dengan cara meminta interrupt. Perlu anda catat bahwa untuk mentransfer data dari peralatan I/O ke memori, pengontrol DMA harns mengontrol bus untuk setiap transfer. Yakni, ia harns mengirimkan alarnat yang benar kepada PC Bus, dan ia harns mengawali siklus bus I/O dan memori dengan tepat. Ia melakukan hal-hal ini selagi CPU sibuk melakukan hallain, narnun ia dan CPU harns mencari protokol bus yang cocok agar keduanya tidak berbenturan menggunakan bus pada waktu yang bersarnaan.
334
Pengontrol DMA 8237 Intel Dengan demikian, pengontrol DMA merupakan prosesor penggunaan khusu§ yang dirancang untuk mentransfer blok data diantara memori dan peralatan interface I/O. PC menggunakan pengontrol DMA 8237 dari Intel. 8237 mempunyai empat channel I/O independen dan dengan demikian ia dapat mengontrol empat transfer data independen pada waktu yang bersarnaan. Tentu saja mereka hams satu persatu dalarn men~gunakan bus. Selarna transfer data, pengontrol DMA menjadi bus master (induk bus). Ia menghasilkan alarnat memori dan meberitahu interface I/O mengenai kapan menempatkan data ke dalarn bus dan kapan mengambil data dari bus tersebut, tergantung pada arah transfer. Jika CPU membutuhkan membutuhkan bus sementara pengontrol DMA menjadi bus master, maka CPU hams menunggu sarnpai pengontrol DMA melepaskan bus. 8237 mempunyai 27 register. Dua puluh diantaranya adalah channel-specific (lima macarn register untuk setiap channel), sedangkan yang tujuh adalah systemwide. Register channel-specific terdiri atas empat register 16-bit dan satu DMA mode register (register mode DMA) 6-bit per channel. Register 16-bit menyanggajalannya atau DMA base address (alarnat base DMA) blok data yang ada dalarn memori utama, DMA current address (alarnat byte yang sedang ditransfer), total atau DMA base count, dan DMA current count (nomor byte yang masih ada yang akan ditransfer) untuk transfer data. Bit dari mode register menentukan berbagai parameter transfer, yang meliputi apakah hams menanibahkan atau mengurangkan alarnat bam (pada saat itu) setelah setiap byte yang ditransfer, apakah transfer tersebut merupakan transfer baca atau tulis, apakah hamskah secara otomatis mereset atau menyusun kembali alarnat atau count register bam (pada saat itu) ke nilai awal pada waktu count bam mencapai nol (DMA autoinitialization), dan mode transfer apa yang dilakukan tersebut. Autoinisialisasi berguna bagi channel yang menjalankan operasi sarna terhadap alarnat yang sarna secara berkelanjutan, rnisalnya menyegarkan atau memulihkan DRAM atau layar video. Ada empat mode transfer: 1.
Mode tunggal DMA, dengan pengontrol DMA secara independen merninta bus untuk setiap byte yang ingin ia transfer.
2.
Mode blok DMA, dengan pengontrol DMA tidak melepaskan bus sarnpai ia selesai mentransfer seluruh blok data.
3.
Mode demand DMA, dengan' pengontrol DMA tetap menjadi bus master selarna peralatan I/O yang tergabung mernintanya.
335
4.
Mode cascade DMA, dengan pengontrol DMA kedua mengontrol bus dan transfer.Pengontrolcascading(bersarnbungbersarna)adalah sarnadengandaisy chaining.
Ketujuh register systemwide tersebut adalah DMA temporary address register (register alamat temporer DMA) 16-bit, DMA temporary count register (register count temporer DMA) 16-bit, DMA status register (register status DMA) 8-bit, DMA command register (register perintah DMA) 8-bit, DMA temporary register (register temporer DMA) 8-bit, DMA mask register (register penutup DMA) 4-bit, dan DMA request register (register request DMA) 4-bit. Register status mempunyai 2 bit untuk tiap channel, yaitu bit request yang menunjukkan apakah request ditunda atau tidak' dan bit count terminal (TC) yang menunjukkan apakah count saat itu telah mencapai nol atau belum. Register perintah mengontrol operasi pengontrol DMA dan menentukan, diantara operasi tersebut, apakah transfer memori-ke-memori akan terjadi (yang membutuhkan dua channel DMA), menentukan mode timing, dan menentukan prioritas pelayanan terhadap request I/O. Bit register penutup men-disable request I/O untuk channel yang bersesuaian. Apabila channel telah menyelesaikan transfer, maka ia menyusun bit penutup (mask)-nya dan menjadi tidak aktif. Bit register request, yang dapat disusun oleh program, mengawali pelayanan atau servis terhadap pengontrol DMA. Pengontrol DMA menghapusnya apabila transfer telah selesai. Register temporer menyangga data selama transfer data memori-ke-memori, dan alamat temporer serta register count temporer menyangga alamat dan count pada waktu pengontrol DMA menambahkan atau mengurangkannya. CPU dapat menulis setiap register alamat base dari channel, register count base, register perintah, register request, dan register mode. Ia dapat membaca setiap alamat barn dan count barn dari channel, register status, dan register temporer 8bit. Yang terakhir, CPU dapat menyusun dan menghapus berbagai bit register mask (penutup) dan mengawali operasi penghapusan master; yang hal ini menandai semua register DMA. (Reset hardware melakukan hal yang sama). Transfer data kurang lebih terns berlanjut seperti berikut. Sebelum transfer dimulai, CPU memprogram operasi transfer, yaitu ia mengirimkan alamat base, count base, dan parameter transfer ke channel yang diinginkan dalam pengontrol DMA. Pengontrol DMA secara otomatis memuati alarnat saat itu dan register count saat itu dengan alamat base dan count base. CPU mentransfer semua kuantiti 16bit ke alamat peralatan yang sarna dengan menggunakan dua instruksi OUT. Ia pertama kali selalu mentransfer byte low-order dan kemudian barn byte high-order. CPU kemudian menyelesaikan pemrograman channel dengan mengirimkan informasi
336
kontrol y~g tepat ke register perintah dan register mode. Yang terakhir, ia mengaktifkan pengontrol DMA dengan cara menghapus bit penutup channel. Hal ini menempatkan pengontrol DMA dalam muatan transfer data dan membebaskan CPU dari tugas lain. Power supply
II
i
I
Address I latches r
8088
Clock I
logic
Wait-state
A-bus ..
- - .- .. ...
Data buffer
I
I
..
..
decoder I r Address
.
NMI
..
D-bus
,
-.,..
..
I.
I
..
Memoryand 1/0read and write control
8288
latch I 8-bit
I
..
H
I
latch 4x4
Select Address Enable
.
Bus 8273 DMAcontroller control DMA DMA Request Acknowledge o 1 2 3. o 1 2 3
.'
"
D-bus ,
,.:'
, To.INTO +:;-
for'clock .
"
;;"''';:<
,'i.
,\";::\,,, ,
..,;-.t.
,.,:.; To
,
,
,,.
-
,-.
-. .
...' '', '..'
4
-
, I,i:
A<;:K INT
PPI
:;: ,,; "C"', .,,
2 Timer
DR03
2:.... ".
\\;;t-",
line s
'6MA acknowledge
,'.
DACKO '
DACK1 DACK2
"
f[:.
.. ..
"'H"DR02 H;"
"',,
-
"
..
8253
DMrequest lines DRQ1
-
"
"
." I
..
".-
,-
"
".
, "
1
!o:".i, ' 1'--"
,'', i'.,-.,/ "
"
--
- -1-0
>,
,,'1\:
"'
..
.
-
... ".'.'-',
speaker logic
"'
,<" ';":> .....,"
-
.r
.--
" DACK3
ACK INT
,
i
",
PPI '
:, ,
-1
!'.
"
.;
--
,<
..
,
.
'.
Gambar 5.7 Sirkuit pengontrol DMA dari IBM Pc. Lihat juga Gambar 5.5 dan 5.6. Perhatikan bahwa output interrupt (INT) dari PPI dan channel I timer adalah signal request servis DMA. Petunjuk: DRQn, jalur request DMA n; DACKn,jalur persetujuan DMA n; ACK, persetujuan; INT, request interrupt; NMI interrupt nonmaskable; PPI, interface paralel programmable. 337
Untuk transfer memori-ke-I/O, pengontrol DMA dengan segera mentransfer byte pertarna.Untuk transfer I/O-ke-memori,pengontrolDMA menunggu interface I/O untuk mengetahuiapakahbyte telah ada; ia kemudian mentransferbyte pertarna. Pada kasus lain, setelah byte ditransfer,pengontrolDMA mengurangkancount saat itu dan mungkin menambahkan atau mengurangi alamat saat itu, tergantung pada mode transfemya. Pada waktu terakhir kali count saat itu mencapai nol, maka transfer telah selesai. Pengontrol DMA mengirimkan nilai true pada jalur proses akhir (EOP) dan menyusun bit count terminal dalam register status. h Pengontrol DMA melakukan kontrol terhadap bus selama transfer mode blok. Ia memeliharakontrolbus menurutpermintaaninterfaceI/O yang digabungkan selama transfer mode demand (permintaan), dan ia melepaskan kontrol terhadap bus setelah ia mentransfer setiap byte selama transfer mode tunggal. Terakhir, seperti halnya CPU, ia memasukkan wait state apabila interface I/O yang digabungkan belum siap. Karena pengontrol DMA dapat menggenerasi atau menghasilkan alamat dan mengirimkan data pada bus secara serentak, maka ia dapat mentransfer data dalam jangka waktu lima jam (clock) sebanding dengan minimum 29 untuk CPU. Dalam keadaan ideal, ia dapat mentransfer data pada kecepatan hampir I MBS, sementara kecepatan transfer maksimum CPU kurang lebih 170 KBS. Mode transfer opetimal tergantung pada sifat interface I/O. Mode tunggal adalah paling cocok untuk peralatan lambat, seperti keyboard, yang mentransfer I byte sekali waktu. Mode demand adalah paling cocok untuk peralatan yang menyangga datanya, seperti pengontrol disk. Selama transfer demand, peralatan ekstemalterus menerusme-requestbus sampaibuffer-nyakosong.Apabilaia berhenti melakukan request terhadap bus, pengontrol DMA akan melepaskan bus ke CPU. Mode blok paling cocokdilakukan pada waktu peralatantersebut dapat mentransfer data pada kecepatanpengontrolvideo (atauhampir sama) sepertiuntuk memulihkan layar video. Gambar 5.7 menunjukkan hubungan antara pengontrol DMA 8237, Bus I/O PC, dan peralatan I/O. Ia juga menunjukkandetail atau rinci dari request DMA dan jalur persetujuan. Untuk ffiM PC, channell dari timer menyambungke channel 0 dari pengontrol DMA. BIOS PC memprogram channel 0 dari pengontrol DMA untuk memulihkan memori dan channel I dari timer untuk memberitahu DMA mengenai kapan memulihkan memori tersebut. Dalam PC, channel I dari DMA menyambung ke programmable parallel interface (PPI), yang berfungsi sebagai interface antara Bus Channel I/O PC dengan peralatanI/O paralel, seperti disk drive atau printer. Channel 2 berhubungan dengan pengontrol floppy disk atau disket (PPI yang ada di sebelah kanan dalam gambat tersebut). Channel 3 berhubungan 338
dengan universalasynchronousreceover-transmitter(DART),yang berfungsisebagai interface antara Bus Channel I/O PC dengan peralatan I/O tergabung yang mengirimkan data dalam bentuk bit serial (misalnya, modem). UART tidak ditunjukkanpada gambartersebut.Baik PPI maupunUART akan dibahaskemudian pada Bagian 5.3.4. Pengontrol DMA 8237 beroperasi bersama dengan latch (pengunci) 8-bit ekstemal. Selama operasi biasa, 8 bit output 8237 dari suatu alamat 16-bit berada pada jalur alamatnya. Pengunci 8-bit ekstemal memberikan 8 bit alamat 16-bit yang masih ada. 8237 mengontrol pengunci 8-bit dan menyusun nilanya sewaktu dibutuhkan. Karena PC menggunakan alamat 20-bit, maka circutry yang keluar ke 8237 hams dilengkapi dengan 4 bit alamat tambahan, yang merupakan nomor segmen 64-K. Latch atau pengun ci 4 x 4 yang terlihatpada Gambar 5.7 memasok atau memberikan satu nomor segmen 4-bit kepada setiap dari keempat channel independen 8237.
Bus Channel va IBMPC AT Pada waktu IBM merancang AT, ia merancang kembali bus sistem agar bisa mengakomodasi atau menampung 16 bit data (sebagai pengganti 8) dan sejumlah jalur kontroltambahan.Namun demikian,ia tidaksecaralengkapmerancangkembali bus tersebut, tetapi ia membuatnya sedemikian rupa sehingga PC AT Bus ini merupakanperluasandari PC Bus. Yang pertama, untuk memeliharakompatibilitas dengan hardware PC, IBM tetap menggunakan slot (celah) channel I/O 62-pin dasar, yang ia gunakan dalam PC. IBM menamai kembali beberapa pin, seperti yang akan kita bahas sebentar lagi. Kemudian, ia menambahkan slot pendukung atau tambahan 36-pin, yang ia tempatkandalamjalur yang mempunyaistandart slot Pc. Akibatnya, card tunggal dapat menggunakankedua slot tersebut sekaligus.Bus tambahan mempunyai delapan jalur data tambahan, tujuh jalur alamat tambahan, lima jalur request interrupt tambahan, empat request DMA dan jalur persetujuan tambahan, dan delapan jalur daya dan kontrol. Tujuan perubahan tersebut akan kita dapatkan gambarannya dengan melihat observasi berikut ini, yakni kenapa PC AT menggunakan prosesor 80286. PC AT menambah pengontrol DMA tambahan,pengontrol interrupt tambahan, dan sirkuit pemulihan memori khusus. Hal ini membebaskantugas channel 0 DMA (sekarang dianggap sebagai bus tambahan). Untuk menunjukkan bahwa pemulihan memori terjadi, IBM menambahkanjalur khusus ke AT Bus yang disebut REFRESH. Di sini ia mengganti fungsi jalur persetujuan DMA cnannel 0 pada PC. AT menggunakan request interrupt 2 untuk mengalirkan pengontrol interrupt kedua, 339
dan ia menggunakan request interrupt 9 untuk mengganti atau mengarnbil alih fungsi request interrupt2 sebelumnya.Apabila 80286 beroperasi dalarn mode Real Address (seperti yang dilakukan oleh 8088), maka ruang alarnatnya kecil hanya terbatas sarnpai 1 MB. Pada waktu AT menjalankan CPU-nya dalarn mode Real Address, ia menggunakan 62 jalur bus asli, persis apa yang dilakukan oleh PC. Di sini dapat dikatakan AT bertindak sepertiPC. Apabila tidak beroperasidalarn mode Real Address dan AT menggenerasialarnatyang besar, maka ia menggunakanjalur kontrol baca dan tulis memori khusus, yang hal ini barn bagi PC AT Bus, untuk menunjukkan alarnat yang besar. Demikian juga, bahwa peralatan yang ditandai dengan alarnat dalarn megabyte yang pertama sarna sekali tidak perlu mendekode jalur alamat high-order, dan card yang dipasangkan dalarn slot PC dapat secara mudah dipasangkan dalam slot PC AT. Walaupun PC AT dapat menggunakancard yang dirancang untuk PC, narnun AT mempunyai bus data 16-bit. Peralatan yang dapat mentransfer 16 bit pada sekali waktujuga akan dapat melakukannya,dan AT Bus mempunyaijalur kontrol khusus yang dapat digunakan untuk mentransfer 16 bit sekali waktu tersebut. Salah satu jalur kontrol tambahan, yakni zero-wait-state line (jalur wait state nol) atau OWS, akan menghapus wait state yang ada dalarn CPU. ffiM menempatkan jalur ini dalarn posisi kosong (tak terpakai) pada PC Bus asli, sehingga perusahaan peralatan dapat memproduksi card 8-bit maupun card 16-bit. Satu jalur kontrol khusus yang lain menunjukkanbahwa suatu peralatandapat mengawali transfer 16bit. Jalur ini memungkinkan PC untuk membedakan atau mernisahkan card 8-bit dan card 16-bit. Karena pengontrol DMA dari PC mengunci jalur alarnat highorder, maka ffiM menempatkankopi ketiga jalur yang terkunci ini pada AT Bus. Hal ini memungkinkan papan berkecepatan tinggi beroperasi dengan lebih cepat dari pada sebelumnya karena adanya delay perkembangan atau perarnbatan proses penguncian. Sebagai catatan terakhir, peralatan ekstemal, seperti CPU pengganti, dapat menjadi bus master dengan menggunakanjalur kontrol MASTER. Bus EISA Para perancang harns mengatasi beberapa masalah apabila mereka ingin memperluas arsitektur yang telahh ada, dan konsorsium EISA telah melakukan pekerjaan dalarn rangka memperluas PC AT Bus dengan baik. Sejak tahun 1991, Intel telah memproduksi set chip EISA, yang meliputi Bus Controller (pengontrol bus) 82358, Integrated System Peripheral (peralatan pendukung sistem terpadu) 82357, dan Bus Master InterfaceController(pengontrolinterfaceinduk bus) 82355. Banyak perusahaan yang sekarang memproduksi PC yang didasarkan pada bus EISA. 340
Pada waktu ffiM memperluas atau mengembangkanPC Bus menjadi PC AT Bus dengan menambahkan jalur data. jalur alamat, dan jalur kontrol kepadanya, para perancang menyelaraskan kompatibjlitas ke bawah. Pemakai dapat menggunakan sembarang peralatan 8-bit dengannya. Para perancang EISA mengembangkan PC AT Bus dengan cara yang sarna: *
Bus EISA bersifat downward-compatible(kompatibelmenurun) terhadap bus PC dan PC AT. Yakni, slot EISA menerima card PC 8-bit dan kartu PC AT 16-bit maupun"card EISA 32-bit.
*
Sembarang bus master yang menggunakanbus dapat mentransfer data ke dan dari sembarang memori atau peralatan pendukung yang tergabung, tanpa memandang luasnya transfer data (8, 16, atau 32 bit).
*
Bus EISA memberikan translation siklus demi siklus untuk luas data yang berbeda dan untuk jenis transfer yang berbeda. seperti transfer tunggal clan transfer burst (transfer data sinkron yang berkecepatan tinggi).
*
Bus EISA memungkinkanperalatan sarna-sarnamenggunakanjalur interrupt, walaupun hanya peralatan EISA yang dirancang untuk menggunakan fasilitas ini. (Pada bus PC dan PC AT, hanya satu peralatan yang dapat menggunakan jalur interrupt yang ada).
*
Pengontrol bus EISA memungkinkan bus mengakses ke semua bus master prioritas tinggi. Sebagai contoh, circuitry PemulihanDRAM dapat mengakses
ke memori.
PC AT Bus terdiriatas dua slotyang berisi98 sambungan.Bus EISA menambah 88 sambungan tambahan ke slot EISA dan 59 jalur barn ke bus. (Beberapa sambunganmempunyaifungsionalitasduplikasi).Bus EISA secaratotal mempunyai 157 jalur. Slot EISA lebih dalam dari pada slot PC AT dan PC. Selain itu, card EISA mempunyai takik (notch) khusus di dalamnya, yang memungkinkan card tersebut menjorok lebih dalam lagi ke dalam slot EISA. Card C clanPC AT tidak bisa menjoroksedalamcard EISA ini.Oleh karenanya,card EISA dapat bersambung ke jalur bus EISA yang barn, sedangkan slot dalam PC dan PC AT tidak memungkinkan card PC dan PC AT bersambung dengan jalur bus yang barn. Desain ini menghasilkan kompatibilitaspasang antara slot EISA dengan card PC dan PC AT. Bus data barn terdiri atas 16 jalur data, 30 jalur alamat (yang mengeluarkan 2 bit alarnat low-order), dan 13 jalur daya clankontrol. Jalur kontrol menetapkan byte atau beberapa byte mana yan akan ditransfer,apakah siklus busnya merupakan 341
siklus bus EISA (apabila ya, maka ia dapat mentransfer 32 bit), jenis siklus bus EISA apa (memori atau I/O) yang terlibat, apakah papan yang tergabung merupakan papan EISA, berapa nomor bus master dari papan yang tergabung tersebut, dan berapa nomor bus master yang pada saat itu mengontrol bus. Bus EISA mempunyai fasilitas yang memungkinkan peralatan EISA mengkonfigurasi dirinya sendiri secara otomatis dan mempunyai fasilitas yantg memungkinkan CPU atau bus master yang tergabung membaea atau menulis sembarang memori atau peralatan I/O. Bagaimana peralatan EISA dan non-EISA dipadukan dalam clone PC? Peralatan EISA menunjukkan keberadaannya dengan earn menempatkan signal kontrol yang sesuai pada bus. Peralatan non-EISA tidak menghasilkan signal ini. Dengan menginterpretasikan signal PC dan PC AT Bus, kedua pengontrol bus dan bus master dapat menentukan jenis peralatan yang tergabung. Sekarang kita misalkan ada peralatan EISA 32-bit ingin menu lis ke peralatan non-EISA, katakanlah peralatan 8-bit. Selama siklus bus awal, pengontrol bus dan peralatan EISA memonitor signal kontrol bus. Apabila peralatan yang merespon menunjukkan bahwa ia tidak bisa melakukan transfer data 32-bit, maka pengontrol bus EISA akan membaea data dan alamat dan melakukan kontrol bus tersebut; bus master asli akan melepaskan kontrol. Pengontrol bus EISA sekarang akan menggenerasi signal kontrol untuk transfer data 8-bit dengan menggunakan protokol yang tepat (PC atau PC AT) dari peralatan yang digabungkan, dan ia mengirirnkan data sebesar satu atau dua byte pada sekali waktu, sesuai kebutuhan. Kita sekarang akan kembali membahas mengenai ffiM PC.
5.3.4 Sistem va Mikroprosesor 8088 mempunyai dua instruksi I/O, yaitu IN dan OUT. Pada waktu menjalankan instruksi IN, CPU mengawali siklus baea I/O. Kemungkinan yang akan menyangga alamat port I/O adalah instruksi tersebut atau register DX, dengan alamat port ini akan dikirim oleh CPU ke bus alamat. CPU kemudian memuat nilai register AL yang ada pada bus data dengan peralatan ekstemal yang alamat port-nya telah ia transmisikan. Pada waktu menjalankan instruksi OUT, CPU mengawali siklus tulis I/O. Yang mungkin akan menyangga alamat port I/O adalah instruksi tersebut atau register DX. CPU mengirirnkan alamat port ke bus alamat, dan ia mengirirnkan isi register AL 8088 ke bus data. Peralatan ekstemal yang dialamatkan akan menerima data dari bus data. Dekoder alamat port I/O pada PC hanya akan mendekode 10jalur alamat loworder selama instruksi I/O. Jadi, arsitektur PC membatasi jumlah alamat port I/O sampai 210 atau 1024. Karena beberapa aplikasi, seperti buffer tampilan video, 342
memerlukan alamat yang lebih banyak dari pada jumlah itu, maka para arsitek PC mencadangkan atau menyediakan beberapa blok alamat memori utama untuk tujuan tersebut. Jadi, beberapa peralatan I/O menggunakan I/O yang dipetakan memori, sedangkan yang lain menggunakan instruksi I/O. Kita akan mendeskripsikan alamat memori utama cadangan tersebut pada bagian selanjutnya dalam bab ini.
Adapter Interface va Sebagian besar mikrokomputer,termasuk IBM PC dan PC AT, memberikan I/O paralel dan serial. Peralatan yang mentransmisi 1 atau beberapa byte data pada sekali waktu menggunakan parallel I/O (I/O paralel). Contohnya adalah disk dan printer. Peralatan yang menggunakanserial I/O (I/O serial) mentransmisidata 1 bit pada sekali waktu melalui jalur data tunggal (bukannya mentransmisi semua bit dalam byte secara serentak melaluijalur bus independen).Sebagai contoh, banyak PC menggunakanjalur telpon untuk komunikasijarak jauh, danjalur telpon tersebut memerlukan transmisi data serial. Untuk memberikan atau menyediakan I/O serial dan paralel tersebut, para perancang telah memproduksi berbagai macam interface I/O programmable untuk I/O serial dan paralel. Interface ini memenuhi sejumlah besar kebutuhan dan memberikan berbagai protokol I/O. IBM PC mempunyai satu interfaceparalelpada motherboard, yang ia gunakan untuk berbagai aplikasi. Selain itu, pemakai dapat menambahkan interface I/O serial maupun paralel sebagaipilihan bagi peralatanyang ada dengan memasangkan card pilihan yang tepat ke dalam slot yang sudah ada. Sebagai contoh, adapter komunikasi adalatt card pilihan (opsion) yang mempunyai interface serial untuk modem, sedangkan adapter printer dan adapter mouse adalah card opsion yang mempunyai interface paralel untuk printer dan mouse. Interface I/O ini menjadi bagian terpadu dari komputer bila pemakai menggabungkannya. Peralatan serial dan paralel menggunakanchip interfaceI/O standart.Dua chip interface I/O biasa, yang telah dikemukakan di depan, adalah 8255A PPI, yang digunakan dalam interface standart pada IBM PC untuk I/O paralel, dan 8250 UART, yang"digunakan oleh IBM PC untuk I/O serial. Ada beberapa perbedaan antara dua chip interface ini dengan chip yang digunakan dalam famili mikrokomputer yang lain. Dan juga ada perbedaan antara kedua chip ini dengan peralatan yang bersesuaian (atau chip) yang diguna.~andalam mesin 80286 dan 80386. Namun, perbedaanini tidaklahbegitu penting. Bagian opsional pada Bagian 5.3.4 mendeskripsikan arsitektur fungsional dari kedua chip tersebut secara lebih rinei. Namun demikian, pertama kali kita akan melihat bagaimana para perancang 343
-
-
.u
._.
. menggabungkan atau memasukkan sirkuit interface I/O ke dalam komputer. Setiap interface I/O harns mempunyai circuitry pendekodean alamat sendiri untuk menentukan alamat port I/O-nya. Para arsitek sistem menyediakan alamat port tersebut, dan kita akan membahasnya kemudian. Penyambungan peralatan ke PC Bus berarti menyambungkan input chip-select (penentu chip) dari suatu peralatan dengan circuitry pendekodean alamat, menyambungkan pin kontrol dan dayanya ke jalur kontrol dan daya bus, dan menyambungkan jalur datanya ke jalur data bus. Setelah itu, para perancang menyambungkan port I/O interface dengan peralatan 1/ o yang dipitihnya, misalnya modem atau pengontrol floppy-disk-drive. Gambar 5.8 melukiskan bagaimana menyambungkan 8255A PPI ke PC Bus.
Interface Paralel Programmable 8255 (Opsional) Pada bagian ini kita akan mendeskripsikan operasi 8255A PPI dan kemampuan fungsionalnya, dan akan melihat tanggung jawab CPU dalam memprogramnya. Tingkat detail yang dikemukakan dalam bagian ini jauh lebih tinggi dari pada yang dibutuhkan oleh banyak arsitek. Kita juga akan melihat bagaimana sistem I/O yang lengkap bekerja. Hal ini harns diketahui oleh para arsitek pada waktu ia merancang sebuah sistem. Secara internal, 8255A berisi empat register, yaitu satu register kontrol, dan tiga register data yang masing-masing untuk ketiga port-nya. Register data menyangga data yang akan dikirimkan oleh port (jika CPU memprogram port untuk output) atau menyangga data yang akan diterima port (jika CPU memprogramnya untuk input). Register kontrol menentukan mode operasi dari 8255A. CPU memprogram 8255A dengan menuliskan nitai ke dalam register kontrol. Namun demikian, CPU tidak dapat membaca isi register kontrol karena register kontrol tersebut bersifat write-only. Pada waktu CPU menjalankan instruksi IN atau OUT yang menentukan PPI, dua pin alamat akan menentukan salah satu dari keempat register tersebut yang akan diakses oleh CPU. Oleh karena itu, CPU dianggap bisa mengalamatkan secara langsung tiga buffer data dan register kontrol.
Mode Operasi 8255A mempunyai tiga mode operasi dasar, yaitu I/O dasar, I/O strobed (yang muncul dan hHang dengan cepat), dan bus dua arah. Berikut ini kita akan melihat sepintas mengenai mode operasi I/O dasar dan I/O strobed.
344
~['x ("'''-. I. ""
6 .l
It'. . ri
'.
Address
.
Control andstatus
~. '
_.
":'--,
_., Data
Address decoder
<-.
1\ I~ I'
r ~{ I t.; I
Parallel 1/0 device
~if
Gambar 508Menyambungkan 8255A PPI ke PC Bus. Tanda garis putus-putus menggambarkan peralatan pada board yang dapat ditempatkan pada card opsion dan dipasangkan ke dalam
slot Pc.
Mode I/O Dasaro Mode dasar adalah mode default, dengan ketiga port mengawali input. Dalam mode ini, port tersebut mengunci semua output: Apabila port diprogram untuk output dan CPU menuliskan nilai ke dalam register datanya, maka port akan menyangganilai tersebut yakni menguncinyadan mengirirnkannya ke pin output-nya setelah CPU menuliskan nilai bam ke dalam register data. PPI tidak mengunci input-nya. Jadi, CPU hanya dapat membaca nilai pada waktu peralatan ekstemal secara aktif mengirirnkannyaoCPU membaca nilai dengan cara membaca register data dari port tersebut. Mode Strobed. Selama operasi strobed, hardware membagi port menjadi dua kelompok. Untuk kelompok pertama, port A beroperasi sebagai port data input atau output, dan setengah ke atas dari port C beroperasi sebagai port kontrol untuk port
345
A. Kita akan mendeskripsikanmaksudnya sebentar lagi. Untuk kelompok kedua, port beroperasi sebagaiport data input atau output, dan setengahke bawah dari port C beroperasi sebagaiport kontroluntuk port B. Keduakelompoktersebut beroperasi secara independendan dengan cara yang sarna,dan CPU dapat memprograrnsetiap kelompok secara terpisah. Kita hanya akan melihat operasi register dari kelompok yang pertarna. Selarna operasi strobed, port A mengunci semua data input dan output. Bit yang berada di atas pertengahanport C, bersarnadengan register kontrol, mengatur operasi port A. Biasanya, ada 1 bit yang menentukan apakah port A beroperasi sebagai port input ataukah output. Jika CPU memprograrn port A menjadi port output, maka interface paralel akan menggunakan bit dari port C untuk meminta interrupt dan untuk berfungsi sebagai flag persetujuan input dan flag penuh buffer output. Jika CPU memprograrnport A untuk input, maka ia menggunakan bit dari port C untuk meminta interrupt, untuk berfungsi sebagai strobe input, dan untuk berfungsi sebagai flag penuh buffer input. Mode Bus Dua Arah. Dalarn mode ini, Port A berfungsi sebagai port dua arah, dan bit dari register data Port C akan melakukan handshake protocol (protokol handshake) dengan cara yang sarna seperti yang akan kita bahas berikutnya. Selain itu, CPU dapat memprograrn Port B sebagai port input ataupun sebagai port output.
Komunikasi Paralel Dengan Menggunakan Handshaking Handshaking Gabattangan) adalah metode umum pengontrolanarus informasi antara dua prosesor komunikasi. Apabila salah satu peralatan ingin mengirimkan data ke peralatan yang satunya, maka ia me-requestpermisi untuk melakukannya. Ia kemudian menunggu sampai peralatan yang satunya tersebut menyetujui permintaan ijin peralatan yang pertarna untuk mengirim data. Pengirim kemudian mengirimkandata. Peralatanpenerima mungkin kemudianakan mengirimkanbalik signalpemyataanke pengirimyang mengabarkanbahwaia telah menerimainformasi yang dikirimkannya,dan dengan demikian hal ini mengakhiriprotokol komunikasi. Protokol komunikasi persis sarna seperti orang yang melakukanjabat tangan yang menandakan setuju atas suatu transaksi. Keduanya hanya berbeda narnanya. Sekarang kita akan menganalisa protokol output sederhana untuk PPI dan melihat mengenai apa yang dikerjakan oleh bit register kontrol. Kita rnisalkan bahwa PPI mengawali
pengiriman
informasi berikut: !NT
= false
(yakni, PPI tidak
me-request interrupt) dan OBF =false (buffer output tidak penuh); rnisalkan juga bahwa peralatan I/O mengirimkan kembali ACK =false (pemyataan tidak menerima 346
data). Apabila ia ingin mengirimkan data ke peralatan I/O, maka CPU akan menjalankan instruksi OUT dengan alarnat port PPI sebagai operand. Instruksi OUT mengirimkan data yang ada dalarn AL ke PPI. PPI secara otomatis akan membacadata tersebutdan mengirimkannyake peralatanI/O. PPljuga mengirimkan true untuk OBF guna memberitahukanperalatan I/O bahwa data tersebut ada dan valid. Segera setelah peralatan I/O mengetahui bahwa OBF telah mengubah kedudukannya, peralatan I/O akan membaca data dan menyusun ACK ke true, yang' memberitahu.PPI bahwa ia (peralatan I/O) telah menerima data tersebut. Seakarang PPI mungkin akan mengubahnitai yang ada dalarn registerdatanya. PPI menginformasikanCPU bahwa ia siap mengirirnkandata yang lebih banyak dengan
= true). Garnbar
meminta interrupt (menyusun!NT
5.9 melukiskan protokol output
ini. PPI
CPU
(DOBF ACK
INT0
Data
ALl
ICD
Bus
I/O device
Data
" 01
10
CD
The CPU executes
CD
The
0'
o
The PPI ~~nds
@ @
Ihe I/O device read~~e
(2)
The PPI raises an Interrupt by setting INTto true.
Prl,rea~~~.h~ .!
.">-~~""~
,~, ~'.'
Data
@I
Port
1
OUT to send the value in AL to the PPI. ~I~~.
':_'-' j','.
~e~al~e to ~~
The PPI~~~ qBF'~~eto ~
@
>_j"
:<'
.,
,'"
"'.'
',"
: .
VO d~i~:::"::,',<:tY:,;",,
".
.
,
tell tli~ ~q~~v!~E;it,e~~~¥i&.aie,it~ble~nd valid. ,"~:"~":l,'~/"'h.,.::~;';t'~';'.i!:'.{'::>,
value when '9~F.changes fioin false ,t9 true.
The I/O device s~~ ACKto true to tell the PPI it has received the data.
Gambar 5.9 Protokol handshake output standart.
Protokol input harnpir sarna dengan protokol output (lihat Garnbar 5.10). Pada waktu CPU akan membaca data, ia memprograrn port untuk input. Kita misalkan bahwa CPU telah memprogram PPI untuk input dan telah memberitahu PPI untuk membaca beberapa data. Pada mulanya CPU akan mengirimkanIBF false (yang menunjukkan bahwa buffer input tidak penuh), dan peralatan I/O mengirimkan STB = true (input strobe). (Pada waktu STB berjalan dari true ke false, maka PPI akan benar-benar membaca data input). Segera setelah peralatan I/O mendapatkan data, ia mengirimkannya ke PPI pada port outputnya. la kemudian menyusun atau
=
347
menetapkan STB = false, yang memberitahukanPPI untuk membacadata. PPI membacadata tersebutdan segeramenyusunIBF =trueuntukmemberitahuperalatan I/O bahwa ia belum siap menerimadata lagi.PeralatanI/O tidak boleh mengirimkan lagi data pada port outputnya hingga PPI mengirimkan IBF =false. Sekarang PPI memberitahuCPU bahwa ia mempunyaidata dengan meminta interrupt(menyusun !NT
= true). CPU
membaca data dalarn AL dengan carn menjalankan instruksi IN,
yang juga menghapus buffer, dan PPI melakukan respon dengan cara menyusun !NT dan IBF sarna denganfalse. Pada prinsipnya hal tersebut adalah bagaimana CPU dapat berkomunikasi dengan peralatan I/O dengan menggunakan 8255A. Bit register C memberikan fungsi kontrol. Selain itu, PPI harns memberitahukan~ralatan I/O untuk memulai membaca dan menulis data, dan memberitahukan mengenai bagaimana PPI menggunakanbit registerC yang masih ada. CPU dapat mengirimkansignalkontrol ke peralatan I/O (dengan memprogram bit register C untuk output), atau ia bisa menerima signal status dari peralatan tersebut (dengan memprogram bit register C untuk input). Jika CPU memprograrn port untuk output, ia akan menulis nilai output yang ada dalarn register data Port C. Untuk menge tahui detail tambahan mengenai hal ini, pembaca bisa melihat spesifIkasi 8255A. 8255A bisa mempunyaibeberapa fungsi. Mother board PC menggunakan satu fungsinya untuk membaca informasi status, informasi keyboard, setting switch konfigurasi,dan untuk mengontrolberbagaiperalatan.PC memprogramport A dan C untuk input dan port B untuk output, dan ia menguhubungkanport ke peralatan ekstemal tertentu. CPU
,INT(!)@ PPI
STB. I
@@IBF
I
I
'
0
1/0device
.
,
>;":.
Data
Gambar 5.10 Protokol handshake input standart.
348
1(3)1_
'I CD!
Data
Walaupun pembahasan kita telab mengasumsikan bahwa komunikasi terjadi antara CPU dan 8255A, narnun sebenarnya tak ada hubungan langsung diantaranya keduanya. Semua signal kontrol dan data mengalir melalui PC Bus. Jika ada peralatan selain CPU mengawali siklus baca dan tulis I/O dan mengirimkan alarnat 8255A pada bus, maka 8255A akan melakukan merespon persis sarna seperti pada waktu CPU mengawali siklus bus baca dan tulis. Selanjutnya, kita akan melihat bahwa pengontrol DMA juga melakukan hal yang sarna yakni ia mengawali siklus bus baca dan tulis I/O untuk mentransfer data diantara chip interface I/O dengan memori utama tanpa campur tangan CPU. Pertama kali kita akan melihat operasi adapter interface I/O serial.
Teknik va Serial Untuk peralatan yang memerlukan transmisi data serial, seperti modem, perusahaan komponen melengkapinya dengan sirkuit interface khusus untuk mengubah data paralel yang dikirimkan melaluiPC Bus menjadiformat serial yang dapat digunakan untuk transrnisi dan sebaliknya. ffiM PC menggunakan 8250 DART untuk tujuan tersebut, dan kita akan inembahasnya sebentar lagi. Narnun, pertama kali kita akan melihat sekilas mengenai transrnisi serial. Perlu anda ingat bahwa para perancang dapat melakukan pilihan lain untuk komunikasi serial. Deskripsi ini adalah untuk jalur komunikasi serial biasa. Contoh mengenaitransrnisiserialini adalahsebagaiberikut.Peralatanpengirim mengirimkan true (biasanya, voltase lebih tinggi) pada jalur transrnisi pada waktu ia dalam keadaan idle atau tidak mentransrnisi data. Transrnisi dimulai ketika peralatan pengirim mengubah signaljalur ke false (menurunkan voltase). Setelah itu, peralatan pengirim mengirimkanbit secara individualdengan mengubah signal untuk menyesuaikan panjangnya waktu, yang disebut bit time. Signalfalse berarti bahwa ia sedang mengirimkan bit nol; signal true berarti bahwa ia sedang mengirimkan bit satu. Kecepatan transrnisi, yang disebut baud rate, menentukan jumlah perubahan voltase per detik. Pada kecepatan rendah, hal tersebut secara efektif sarna dengan jumlah.bit yang dikirimkan oleh peralatan pengirim per detik, dan bit time adalah kebalikan dari baud rate. Bit pertama yang ditransrnisikanoleh pengirim setelah ia memulai transrnisi disebut mark bit (bit mark); ia tidak berisi data narnun hanya mengubah receiver (penerima) yang mengawali transmisi. Setelah mark bit dikirim, pengirim mengirimkanjumlah data bit (bit data) yang tepat. Setelah itu, ia mengirimkan bit parity. Peralatan interface I/O menggunakan bit parity untuk mengecek kesalahan transrnisi.Pengirim kemudian menghentikantransrnisidengan mengirimkanjumlah stop bit (bit stop) yang tepat. Garnbar 5.11 menunjukkan contoh transrnisi serial. 349
Start bit
f'-
'. Idle
"
..
Data bit times .'2
..1'
"
..'
3
Parity 5
..'-" ::?'-
'6::
!."
.~,
1
Stop bits Idle 'Time
0
1
0
1
0 ....
0
o
Data-bit values
Gambar 5.11 Transmisi data serial dari nilai 10001012 dengan menggunakan 7 data bit. 1 bit parity dan 2 stop bit.
Peralatan komunikasi standart menggunakan sejumlah kombinasi baud rate standart, bit parity, bit data, dan bit stop. Umumnya, peralatan komunikasi tidak disinkronisasi oleh jam yang sama, sehingga ia merupakan asynchronous transmission (transmisi sinkron atau serempak). Pada waktu receiver (penerima) mendeteksi permulaan transmisi serial, ia membaca (mengecek voltase pada) jalur I/O yang ada dalam pertengahan setiap bit time. Ia mencatat 1 jika jalur tefsebut tinggi dan 0 jika rendah. Prosedur sampling ini meniadakan atau tidak menganggap perbedaan kecil antara frekuensi jam dari dua peralatan komunikasi. Namun demikian, ia memerlukan jam (clock) berfrekuensi tinggi, yaitu receiver clock. Apabila sebaliknya, maka transmitter akan menggunakan jam berfrekuensi rendah, yaitu transmitter clock, untuk mengatur bit time. Kesalahan dari beberapa jenis kadang-kadang terjadi. Dalam overrun error, peralatan pengirim tetap melanjutkan mengirim data sementara penerima tidak siap untuk menerima transmisi. Kadang-kadang perbedaan antara frekuensi jam menyebabkan receiver (penerima) mencoba jalur transmisi pada waktu yang tidak tepat. Hal ini disebut framing error. Pada waktu peralatan menggunakan bit parity untuk mendeteksi kesalahan dan penerima mendapatkan bit parity yang tidak benar, maka hal ini akan mengakibatkan terjadinya parity error.
Receiver- Transmitter Tak Sinkron Universal 8250 (Opsional) Sekarang kita mendeskripsikan 8250 UART (UART 8250) secara agak rinci. Para perancangnya membuat UART 8250 ini untuk menginterface komputer dengan jalur telpon, dan peralatan I/O serial yang tergabung biasanya adalah modem (kependekan dari modulator-demodulator). Modem mengubah signal digital menjadi signal audio yang dapat digunakan untuk transmisi jalur telpon, dan sebaliknya.
350
8250 mempunyai delapan signal kontrol yang mengatur interfacenya ke bus. Empat diantaranya adalah signal input baca. Mereka ini memungkinkan 8250 menangkap inputnya atau mengirimkan data outputnya. Satu signal kontrol memungkinkan 8250 menangkap alamat dan nilai pin chip-select-nya.Dua signal output menginformasikanperalatan ekstemal mengenai kapan CPU telah memilih 8250 dan kapan CPU membaca datanya. 8250 menggunakan output interrupt-nya untuk me-request interrupt. Kedelapan jalur handshake, yang enam diantaranya telah ditentukan penggunaannya, mengatur komunikasi antara 8250 dengan peralatan I/O serial yang tergabung. Dalam pembahasan berikut, kita anggap bahwa peralatan tersebut adalah modem. Berikut adalah enam fungsi yang telah ditentukan: RTS
Request permission to send (meminta permisi untuk mengirim). Output ini memberitahu modem bahwa 8250 mempunyai data yang siap untuk dikirim.
CTS
Clear to send (mulai mengirim). Input dari modem ini memberitahu 8250 bahwa ia sekarang mulai mengirim datanya.
DTR
Data terminal ready(terminaldata siap).(Terminaldata adalahperalatan untuk mengirim dan menerima data). Output ini memberitahu modem bahwa 8250 telah siap untuk menerima data.
DSR
Data set ready (set data siap). (Set data adalah struktur data untuk menyangga data dalam memori). Input ini memberitahu 8250 bahwa modem mempunyai data dan siap untuk mengirimkannya.
RI
Ring indicator (indikator ring). Modem telah mendeteksi signal ring telpon.
RLSD
Received line signal detect (deteksi signal jalur terdeteksi). Modem sekarang telah mendeteksi frekuensi pembawa transmitter dan dapat memulai komunikasi data.
Berikut ini adalah deskripsi handshake biasa yang terjadi selama komunikasi data dengan modem. Pada pembahasan ini, 8250 merupakan terminal data dan modem merupakan set data. Pada Gambar 5.12, nomor yang berada dalam kurung adalah urutan langkah. Jika modem mempunyai data yang ingin ia kirim ke 8250, maka ia akan menjalankan handshake yang sarna. Apabila 8250 mempun yai data yang ingin ia kirimkan ke modem, maka ia me-request permisi dari modem dengan cara 351
mengiriminya signal RTS = true {I}. Signal RTS memberitahu modem bahwa 8250 telah siap untuk mengirimkan data. Apabila modem siap untuk menerima data, maka ia mengirimkan DSR = true {2}, dan dengan demikian ia menginfonnasikan 8250 bahwa ia telah siap untuk menerima data. 8250 sekarang mengirimkan data {3} pada port output serialnya (SOUl). Data pada umumnya adalah rangkaian byte, dengan setiap byte dibentuk (dikerangkai) oleh bit start dan sejumlah bit parity dan bit stop yang tepat. Apabila 8250 tidak mempunyai data lagi
untuk dikirim, maka ia mengirimkan DTR
= false
{4}. Jika, selama transmisi, modemtidak dapatmenerimadata, ia akan mengirimkanDSR =false {5}, yang memberitahu 8250 bahwa modem tidak lagi bisa menerima data. Data terminal
CPU
o
Data set
SOUT
8250
Modem
0
Gambar 5.12 Hubungan biasa antara UART
don modem
Dalam contoh ini, 8250 mengawali transmisi.
CPU memprogram 8250 dengan mengirimkan data (dengan menggunakan instruksi OUl) ke register kontrol 8250. CPU menentukan status 8250 dengan membaca register status 8250. Salah satu register kontrol mengatur frekuensi jam transmit dan receive (transmisi dan terima); register kontrol kedua mengatur bit parity, jumlah bit stop, dan jumlah bit data. Register status menyangga atau menyimpan status transmisi (register data terima penuh, register data transmisi kosong, kesalahan pengkerangkaan, kesalahan parity, kesalahan kelebihan, dan sebagainya). Untuk merekapitulasi, register kontrol 8250 mengontrol kedudukan (state) signal handshake output, sedangkan register statusnya, ketika dibaca oleh CPU, memberikan status signal handshake output.
352
5.3.5 Timer Interval Programmable Banyak peralatan maupun aplikasi memerlukan signal timer untuk mengaktitkan mereka ini. Sebagai contoh, memori harns dipulihkan se-seringkali, speaker memerlukan signal periodik untuk menggenerasi suaranya (bunyi bel, tanda peringatan, nada), dan program yang mengelola waktu harian perlu diberitahu apabila detik berlalu. Pada bagian ini, kita akan mendeskripsikan Programmable Timer 8253, yang digunakan PC. Kita juga akan melihat bagaimana PC menggunakannya untuk mengawali operasi DRAM-refresh (pemulihan DRAM).
Timer Interval Programmable 8253 Timer interval adalah.sirkuit penggunaan khusus untuk menggenerasi signal timing (pengaturan waktu) untuk peralatan aplikasi. 8253 berisi tiga counter independen, yang diberi nama channel 0 sampai 2. Setiap channel mempunyaijam ekstemalnya sendiri, mode register (register mode) 6-bit, initial-countregister (register count awal) 16-bit, input gate, dan output. Counter memulai count atau hitungannya dengan nilai yang disimpan dalam register count awal. Ia kemudian mengurangkan count dengan setiap detak jam inputnya. Terminal count (count terminal) terjadi apabila count atau hitungan tersebut mencapai nol. Pada waktu counter mencapai count terminal, timer akan menggenerasi output seperti yang diten tukan oleh nilai register modenya. Selarijutnya,kita akan membahas secara singkat mode 8253 ini. Memprogram timer interval berarti menuliskan riilai ke ketiga register count awal dan ketiga register mode. Dikarenakan desain timer, maka CPU hanya dapat menuliskan nilai ke register mode, namun ia dapat membaca dan menulis ke register count. Pemrograman setiap counter mencakup dua bagian: (1) menuliskan byte ke register modenya, dan (2) menuliskan count ke register count-nya. 6 bit register mode menentukan operasi baca-tulis, mode, dan apakah timer akan menggunakan desimal terkode biner (BCD) atau aritmetik biner~Bit operasi baca-tulis menentukan bagaimana CPU akan menuliskan nilai ke dalam register count, yaitu apakah: (1) byte yang paling berarti atau signiftkan saja, (2) byte yang paling kurang signiftkan, atau (3) kedua byte tersebut (dengan byte yang paling kurang signiftkan dulu). Apabila CPU telah menyusun operasi baca-tulis, maka ia harus membaca dan menulis register count tepat seperti yang ditentukan atau ditetapkan register mode. Sebagai contoh, jika counter ingin mendapatkan atau mengirimkan nilai 16-bit, maka CPU hams mengirim 2 byte data atau membaca 2 byte data darinya. 353
PC menggunakan 4,77-MHz (210-ns titik) signaljarnnya sendiri dengan sirkuit terbagi empat untuk mengatur timer. Ia menggunakan output timer untuk mengatur jam pengaturan hariannya guna mengawali pemulihan DRAM dan untuk mengaktifkan speaker. Output yang berasal dari channel 0 dari timer berjalan langsung ke pengontrol interrupt untuk meminta interrupt jenis-O (Lihat Gambar 5.7). Interrupt jenis-O menginfonnasikan CPU untuk menambah jam time-of-day (pengaturan jam harian)nya. Output dari channel 1 dari timer beIjalan ke channel 0 dari pengontrol DMA. CPU menggunakan channel 0 dari pengontrol DMA untuk memulihkan (refresh) DRAM. Output dari channel 2 dari timer pergi atau beIjalan ke sirkuit speaker. Berbagai macam program memuatkan nilai dalam timer.untuk mengontrol frekuensi suara speaker dan durasi atau selang waktu.
Refresh RAM Dinamis IBM PC menggunakan chip DRAM untuk memori utama. Chip ini harns dipulihkan (refresh) setiap 2 illS untuk menjaga nilai mereka. PC melakukan hal ini dengan membaca data dari 12810kasi memori yang berurutan dalam setiap jangka waktu 2-ms. Pada waktu sistem pertama kali beIjalan, CPU memprogram channel o dari pengontrol DMA untuk membaca dari lokasi memori berurutan 64-K dengan menggunakan mode tunggal dan mode autoinisialisasi. (Untuk memprogram pengontrol DMA guna membaca lokasi memori berurutan 64-K adalah sarna mudahnya dengan memprogramnya guna membaca dari 128 lokasi yang berurutan. Mode autoinisialisasi memberitahu pengontrol DMA untuk mengulangi operasi sebelumnya, misalnya, menggunakan parameter yang sarna). CPU juga memprogram channel 0 dari timer untuk meminta servis kepada channel 0 DMA setiap 15 Jls. Pada waktu pengontrol DMA mendapatkan atau menerima request tersebut, ia akan membaca lokasi memori berikutnya. Apabila ia telah selesai membaca dari 128 lokasi memori yang berurutan, berarti ia telah memulihkan semua DRAM. Namun demikian, ia terus melanjutkan membaca lokasi memori yang berurutan, yakni satu lokasi setiap 15 Jls, sampai ia membaca dari 65.5361okasi memori yang berurutan. Ia kemudian menjalankan proses pemulihan kembali.
5.3.6 Koprosesor Titik Ambang Mikroprosesor 8088 Intel tidak memberikan (dilengkapi dengan) bilangan titik ambang, dan ia juga tidak mempunyai operasi titik ambang sendiri. Program aplikasi yang memerlukan aritmetik titik ambang, seperti software desain grafIk, umumnya dilengkapi dengan subroutine untuk tujuan tersebut. Subroutine ini menyamai operasi
354
titik ambang dengan cara menggunakan operasi integer (bilangan bulat), logika, dan shift standart. Untuk banyak program, penyamaan (emulasi) software ini dapat diterima, namun untuk aplikasi intensif titik ambang, PC memberikan altematif yang lebih cepat, yaitu math coprocessor (koprosesor matematika). Koprosesor matematika adalah prosesor penggunaan khusus yang dirancang untuk beroperasi bersama denganCPU dan menjalankanoperasimatematisuntuknya.Intel merancang koprosesor 8087 untuk meningkatkan mikroprosesor 8088 dan 8086, dan para pemakai dapat dengan mudah menambahkan atau menggabungkan 8087 ke PC mereka dengan cara menyisipkanatau memasukkannyadalam prewired chip socket atau rongga chip yang telah disambung (bukannyaslot atau celah) yang disediakan untuk keperluan tersebut. Pada bagian ini, kita akan melihat hubungan antara koprosesor 8087 dengan 8088 CPU. Software yang sedikit melakukan aritmetik titik ambang mungkin tak membutuhkan koprosesor, bahkan jika koprosesor tersebut ada, dan melakukan semua aritmetik dengan menggunakan set instruksi 8088. Beberapa software mengecek keberadaan 8087 dan menggunakannyajika ada; jika tidak ada. maka ia menggunakan software untuk titik ambang. Software yang lain membutuhkan keberadaan 8087. 8087 dilengkapi dengan (memberikan) instruksi aritmetik untuk beberapa kategori data, yaitu word 16-bit, integer pendek 32-bit, integer panjang 64-bit, bilangan titik ambang pendek 32-bit,bilangantitik ambang panjang 64-bit, bilangan titik ambang temporer 80-bit, dan bilangan desimal packed 80-bit. Jadi, ia memperluas atau mengembangkanjenis data asli dari 8088 CPU. 8087 kompatibel dengan Floating:point Standard 745 IEEE. 8087 menampilkan semua integer (bilangan bulat) dalam notasi komplemen duaan. Gambar 5.13 menggambarkan representasi titik ambang. 8087 selalu membaca dan menulis data sebesar 1 byte sekali waktu, yaitu dengan membaca atau menulis byte lowest-order(urutan paling rendah) dulu. Ia mengubah semua data menjadi nilai titik ambang temporer pada waktu ia membaca semua itu, dan ia mengubah mereka kembali menjadi jenis tertentu pada waktu ia J;Ilenulismereka. ,Kecuali untuk penambahan (add), pengurangan (subtract),perkalian(multiply),dan pembagian (divide)bilangan bulat (integer) pada operand integer dua. yang semuanya menghasilkan hasil bilangan bulat, 8087 menjalankan semua aritmetik titik ambang dengan menggunakan representasi titik ambang temporer 80-bit. Tidak seperti halnya 8088 CPU (CPU 8088), koprosesor 8087 tidak akan beroperasi sendiri. Ia memerlukan dukungan 8088 dan 8086. Intel memproduksi 8087 dalam paket DIP 4O-pinyang merupakanpin yang kompatibel dengan 8088, dan pada PC, pin tersebut disambungkan secara paralel. 355
8087 mempunyai set register sendiri, yang akan kita bahas sebentar lagi, dan set lengkap instruksi aritmetik (yang meliputi ADD, SUBTRACT, MULTIPLY, DIVIDE, ABSOLUfE VALUE, CHANGE SIGN, SCALE, ROUND, LOG2, LOGe' SQUARE ROOT, TAN, dan ARCTAN). Iajuga dilengkapi dengan berbagai instruksi pendukung (loads, stores, comparisons, tests, dan examinations) dan instruksi kontrol prosesor (INITIALIZE PROCESSOR, ENABLE and DISABLE INTERRUPTS, LOAD and STORE CONTROL WORD, STORE STATUS WORD, LOAD and STORE ENVIRONMENT, SAVE and RESTORE STATE, INCREMENT and DECREMENT STACK POINTER, NO OP, dan WAIT). Namun demikian, ia tidak melakukan komputasi alamat, dan juga tidak memproses interrupt. Keduanya menjadi tanggung jawab CPU.
Short floating point
E7
Long floating point
E10
Temporary
E14
Gambar
floating point.
5.13 Bilangan
titik ambang
.I
F23
EO F1
.I
EO F1
..,t.
. .
F521".:."
I
.
EO FO
8087 (atau IEEE)
. Representasi
titik ambang yang diberikan
oleh koprosesor numerik 8087 dari Intel dan standan titik ambang 745 IEEE mengarahkankan binemya ke sebelah kiri dari FI untuk riil pendek dan panjang dan ke antara FO dan FI untuk riil temporer (sepeni terlihat pada gambar). Untuk riil pendek dan panjang, FO mempunyai nilai implisit I, yang telah dihilangkan.
Operas; 8087 Berikut ini adalah deskripsi singkat mengenai bagaimana koprosesor dan CPU bekerja bersama. Selama operasi biasa, 8087 terus menerus "watching" (mengawasi) bus. Kapan saja CPU menjemput dan mendekode instruksi, 8087 juga mendekodenya. 8087 dapat memberitahu kapan adanya op code dengan menganalisa output status CPU, dan ia dapat memberitahukan byte yang mana yang sedang ia dekode dengan menganalisa output status queue (antrean) instruksi. 8087 mengabaikan semua instruksi kecuali ESCAPE. (Lihat Gambar 5.14). Pada waktu
356
intstruksi ESCAPE terjadi, CPU dan koprosesor beroperasi secara paralel, yang masing-masing merespon ke ESCAPE dengan tindakan yang berbeda. Ketika CPU menjalankan instruksi ESCAPE, ia menentukan mode pengalamatan (berdasarkan pada bit rIm dan mod yang ada dalam instruksi), menggenerasi alamat, dan menjemput operand. CPU kemudian mengabaikan atau tidak memerlukan item ini dan berlanjut ke instruksi berikutnya. Ketika 8087 menjalankan ESCAPE, ia pertama kali menentukan mode pengalamatan instruksi dengan menganalisa signal kontrol CPU, dan kemudian ia menangkap alamat yang dihasilkan CPU dan operand dari bus. Yang terakhir, ia mendekode 6 bit yang ada dalam instruksi ESCAPE, yang memberitahu 8087 mengenai operasi yang mana yang akan dijalankan. (Namun demikian, CPU mengabaikan 6 bit ini; dilihat dari sudut pandang CPU, ESCAPE adalah satu instruksi, bukannya dua). Signal TEST menyinkronkan koprosesor. Pada waktu CPU menjalankan instruksi WAIT, hardware akan mengecek input TEST. Jika TEST = true,maka CPU berhenti sampai TEST =false. Bilamana 8087 menjalankan ESCAPE, ia pertama kali menyusun TEST ke true. Bila hal ini telah dilakukan, ia mengubah TEST kefalse. Demikian pula, programmerdapat memaksa CPU untuk menunggu 8087 menyelesaikan eksekusi dengan menempatkan instruksi WAIT dalam program kapan saja pengaturan waktu koprosesor terganggu, seperti sebelum menggunakan result 8087. Lebihdari itu, praktek pemrograman yang baik adalah dengan memasukkan instruksi WAIT sebelum semua instruksi ESCAPE untuk memastikanbahwakoprosesortelah menyelesaikaneksekusisetiapinstruksisebelum memberinya instruksi yang barn.
Kontrol Bus 8087 harns mendapatkan kontrol bus pada waktu ia akan membaca atau menulis ke memori. (Jika anda lihat sebelumnya, CPU sebelumnya memberi alamat operand dan result kepada 8087). 8087 kemudian melakukan request ke bus master, dan ketika CPU dapat menyerahkan bus tersebut, ia akan merespon dan melepaskannya. 8087 mengetahui atau mendapati persetujuan dan mengambil alih sebagai bus master. Apabila 8087 telah selesai, ia mengembalikan kontrol bus ke CPU. Perlu anda ingat bahwa 8087 tidak mempunyai akses ke set register CPU. Sebagai akibatnya, ia hanya dapat beroperasi pada operand yang disimpan dalam memori. (Meskipun CPU mengakses operand untuk instruksi ESCAPE, ia mengabaikannya). Begitu pula sebaliknya, CPU tidak mempunyai akses ke register 8087. Jadi, 8087 harns menempatkan nilai dalam memori sebelum CPU bisa
357
menggunakannya. Walaupun 8087 dapat menginterupsi CPU, ia harns menempatkan sembarang nilai yang ingin ia komunikasikan ke CPU dalam memori. Hal ini mencakup infonnasi status. 8
x
o
7
mod
X i X I X
rim I
I
Gambar 5.14. Format instruksi Ese
Set Register 8087 mempunyai sebuah stack register delapan-word,per word-nya berisi 80 bit. Setiap word stack mempunyai tag 2-bit yang menunjukkan apakah ia kosong, apakah ia berisi nomor valid, 0, atau result salah (sepertiresult atau hasil pembagian nol). 8087 dapat membaca nilai dari memori dan mendorongnya ke dalam stack, dan ia dapat menge-popnilai dari stack dan menyimpannyadalam memori. Operasi memori merupakan pokok bahasan jenis konversi yang telah dikemukakan sebelumnya. 8087 dapatjuga menggenerasidan menyampaikanbeberapa konstanta ke dalam stack (1t,+1, -1, e, dan sebagainya). Ia dapat beroperasi pada operand stack taupun pada operand memori, dan ia dapat mendorong result pada stack ataupun menempatkannya dalam memori. Selain itu, register individual yang ada dalam stack dapat berfungsi sebagai register operand dan register result. 8087 mempunyai empat register tambahan, yaitu register kontrol, register status, pointer instruksi,dan pointerdata. Registerkontrolmempunyaibeberapa fungsi. Ia memungkinkan atau menutup kemungkinanterjadinya interrupt yang dihasilkan oleh 8087. Ia menentukan presisi aritmetik (24, 53, atau 64 bit), menentukan bagaimana 8087 harns membulatkan bilangan, dan menentukan bagaimana 8087 harns memproses hasil tidak valid, misalnya pembagian oleh nol. Register status terdiri atas flag exception, flag request interrupt, kode kondisi, pointer top stack, dan flag busy. Yang terakhir, pointer instruksi menyangga alamat instruksi pada saat itu, dan pointer data menyangga atau menyimpan alamat operand. 8087 dapat menuliskan isi dari semua register ini ke memori (misalnya, untuk menentukan instruksi apa yang menyebabkan interrupt), dan ia dapat memuat register kontrol dari memori. Koprosesor 8087 memberikan kinerja yang baik bagi CPU untuk pemrosesan numerik. Pembaca yang ingin mengetahui lebih jauh mengenai 8087 bisa melihat referensi manual 8087 yang diterbitkan oleh perusahaan pembuatnya.
358
5.4 SISTEM SOFTWARE Para arsitek HSA komputer melengkapiHSA tersebutdengankomponen fisik esensial, yaitu CPU, sistem penyimpanan, sistem I/O, timer, berbagai peralatan tergabung. Namun demikian, ia sendiri tidak menentukan arsitek tersebut. Program harns dapat berkomunikasi dengan peralatan hardware, sehingga para arsitek sistem harns menandai alamat port I/O supaya diketahui oleh peralatan hardware. Secara bersama, hardware dan software juga harns menyediakan lingkungan eksekusi yang cocok untuk software. Sebagai contoh, pada waktu hardware mengawali interrupt dan mencabang ke interrupt handler, software tidak saja harns dapat berhubungan dengan sumber interrupt dan hardware interrupt, namun ia juga harns bisa kembali ke program yang diinterupsi seolah-olah tak ada sesuatu yang telah tetjadi. Tanggung jawab arsitektural yang lain adalah memberikan atau menetapkan alamat memori utama ke komponen software khusus dari suatu sistem, misalnya BIOS, yang mengontrol hardware. Karena kode BIOS dalam PC berada dalam ROM, maka ia seringkali disebut ROM BIOS. Diantara tanggung jawab BIOS adalah untuk mengawali betjalannya sistem ketika pertama kali daya dihidupkan, untuk memprogram berbagai chip pendukung, dan untuk mengontrol peralatan hardware, seperti keyboard, printer, dan tampilan layar video. Bagian ini membahas organisasi (susunan) software dari farnili PC, terrnasuk penetapan alamat port I/O, penetapan vektor interrupt, ROM BIOS, dan penetapan memori utama. Kita mungkin akan mendapatkan pemahaman yang lebih dalam mengenai lingkup definisi farnili arsitektural ini dengan' melihat atau mempelajari penetapan atau assignment tersebut.
5.4.1 Penetapan Alamat Port va Pada waktu pertama kali pemakai menghidupkan daya pada PC, hardware secara otomatis akan melakukan reset, yang memulai proses system initialization (inisialisasil pengawalan sistem). Signal RESET betjalan ke semua sirkuit programmable. Sirkuit ini meres- ponnya dengan mengawali register esensial tertentu. Mikroprosesor 8088, misalnya, mengosongkan register segmen, pointer instruksi, dan flag registemya. Sirkuit yang dapat mengirirnkan data ke bus, seperti interface I/O dan timer, mengosongkan arah data dan register kontrol. Hal ini mengawali pin dua arah sebagai atau menjadi pin.input dan mencegahnya menempatkan data semu pada bus.
359
Tabel 5.4 Alamat port I/O ffiM PC standart. System Board Components O-F 20-21 40-43 60-63 80-83 AO CO-DF EO-FF 100-1FF
8237A-5 DMA controller 8259A interrupt controller 8253-5 programmable interval timer 8255A-5 programmable parallel interface DMA page registers NMI mask register Reserved Reserved Not usable I/O Channel Components
200-20F 210-217 220-24F 278-27F 2FO-2F7 2F8-2FF 300-3IF 320-32F 378-37F 378-37F 380-38C 390-39F 3AO-3A9 3BO-3B9 3CO-3CF 3DO-3Df 3EO-3EF 3FO-3F7 3F8-3FF
Game I/O adapter Expansion unit Reserved Printer controller (secondary parallel port, or LPT2) Reserved 8250 DART (secondary serial port, or COM2) Prototype card Fixed-disk controller Fixed-disk controller Printer controller (primary parallel port, or LPTI) Synchronous data link control (SDLC) communications or secondary binary synchronous interface Not used Primary binary synchronous interface Monochrome display adapter (MDA) and parallel printer port Reserved Color/graphics display adapter (CGA) Reserved 51// floppy-disk controller 8250 DART (primary serial port or COMI)
Setelah inisialisasi hardware, CPU memuati register segmen kodenya dengan nilai FFFF16 dan mulai berjalan. Maka, ia harns menjemput instruksi pertarna dari FFFF016. (Ingat, bahwa hardware secara otomatis menggeser isi register segmen sebesar 4 bit ke kiri selama formasi alamat). Dalam PC, FFFF016 adalah permulaan dari kode inisialisasi ROM BIOS. Software ini, yang menyelesaikan proses inisialisasi
360
sistem, memP':lnyaisejumlah tanggung jawab atau tugas umum: 1. Mengeeek reliabilitas (daya handa!) sistem hardware * menguji 16 KB pertama dari RAM * menguji flag prosesor * menguji register prosesor * menguji ROM yang berisi BIOS * menguji timer 2.
Mengecek dan memprograrn peralatan programmable * memprogram timer dan pengontrol DMA untuk memulihkan DRAM * menguji dan mengawali pengontrol interrupt * menguji, mengawali, dan menjalankan pengontrol video * menguji keyboard * menguji pengontrol disket
3.
Memuat sistem pengoperasiandan mentransferkontrol kepadanya.Setelah ini, sistem pengoperasian memungkinkan interrupt.
Disamping untuk pengawalan sistem, tujuan pokok ROM BIOS adalah untuk memberikan dukungan kepada pemakai untuk menjalankan I/O sambil mengurangi beban tugas mereka dalam berhubungan secara langsung dengan semaeam hardware peralatan I/O, pengontrol interrupt, timer, pengontrol DMA, dan keyboard. Prosedur ROM BIOS yang mengendalikan hardware ini dimaksudkan untuk diaktifkan melalui inrerrupt dengan eara seperti yang akan segera kita bahas. Pemakai tidak perlu memprogram pengontrol DMA atau bahkan tidak perlu tabu alamat portnya bila ingin menulis ke disk. Lebih dari itu, ketika pemakai mengganti peralatan hardware, satu-satunya perubahan yang diperlukan adalah mengupgrade routine ROM BIOS yang mengontrol peralatan itu atau melengkapi dengan RAM BIOS untuk tujuan tersebut. Bila sistem pengoperasian telah mempunyai muatan, software pemakai menggunakan BIOS hanya untuk menjalankan operasi tingkat rendah. Ia merninta kode ROM BIOS denga me-request interrupt dan memasok sistem dengan nomor vektor interrupt. Lihat kembali Bagian 5.3.3, bahwa CPU menerjemahkan nomor vektor interrupt menjadi alamat vektor interrupt dengan eara menggesernya ke kiri sebesar 2 bit (yakni, mengalikannya dengan 4). Hal ini berarti bahwa tabel vektor interrupt ditempatkan dalam memori utama pada alamat yang mempunyai jangkauan dari 0 sampai 3FF16. Setiap vektor interrupt yang berada dalam tabel merupakan
361
alamat interrupt handler untuk jenis interrupt tersebut, dan OOberapaalamat OOrada dalam ROM BIOS. Dalam TaOOI5.5, ditunjukkan lingkup interrupt. Perhatikan bahwa interrupt 1916adalah call ke loader bootstrap, yang juga merupakan prosedur akhir yang dijalankan selama inisialisasi sistem.
5.4.2 Penetapan Alamat Memor; Memori utama, yang juga disebut conventional memory (memori konvensional), merupakan lokasi penyimpanan yang dapat direferensi CPU selama siklus bus memory-read (baca memori) atau memory write (tulis memori) biasa tanpa hardware khusus. Karena para arsitek yang merancang PC memilih mikroprosesor 8088 sebagai CPU-nya, maka mereka membatasi jumlah memori utama yang secara langsung dapat dialamati PC sampai 1 MB (220 byte). Para arsitek PC membagi ruang alamat memori konvensional ke dalam sejumlah blok, yang mereka gunakan untuk mengalokasikan berbagai komponen software. Mereka mengalokasikan blok yang terbesar, yang mempunyai alamat OOrjangkauan antara 0 K sampai 640 K, untuk memprognim memori, yang mereka implementasikan dengan chip DRAM. Mereka mencadangkan blok sisanya, yang mempunyai alarnat yang menjangkau antara 640 K sampai 1024 K, untuk ROM BIOS dan komponen sistem yang lain. Tabel 5.6 menunjukkan pengalokasian alamat dalam memori konvensional.
Perhatikan lokasi tabel vektor interrupt. Dapat kita lihat bahwa program tidak dapat menempati ruang tersebut. Ia juga tidak dapat menempati 512 byte yang OOradadiantara 40016 dan 5FFl6' yang man~ arsitek mengalokasikannya untuk sistem software yang lain. Namun demikian, pemakai dapat memodiflkasi tabel dan software yang OOradadalam alamat tersebut dan menginstal modul software khusus. Banyak program yang melakukan hal ini dan memodiflkasi taOOIvektor interrupt, misalnya, agar interrupt bisa mencabang ke routine pemakai, bukannya ke routine sistem yang telah ditentukan. Begitulah caranya agar pemakai dapat menambahkan atau menggabungkan handler peralatan khusus ke sistem. Perhatikan pula bahwa para arsitek telah mencadangkan blok alarnat yang OOsaruntuk adapter grafIk monokromdan berwarna. 8088 tidak memOOrikanruang alamatI/O yang cukupmemadaiuntukmenanganibufferlayarvideo(RAMtampilan video) atau ROM tampilan video dan kontrol hard disk, sehingga PC hanya menggunakan sebagian ruang alamat memori konvensional untuk tujuan tersebut.
362
Tabel 5.5 Tabel vektor interrupt ffiM PC. Address
o 1 2 3 4 5 6,7 8 9 A B,C D E F 10 11 12 13 14 15 16 17 18 19 IA IB lC ID IE IF 20 21 23 24 25 26 27 28-3F 40-5F 60-67 68-7F 80-85 86-FO FI-FF
Function Divide by zero Single step Nonmaskable interrupt (NMI) Breakpoint instruction Overflow Print screen Reserved Time-of-day hardware interrupt Keyboard hardware interrupt Reserved Serial communications hardware interrupts Fixed-disk hardware interrupt Diskette hardware interrupt Printer hardware interrupt Video I/O call Equipment-check call Memory-check call Diskette I/O call RS232 I/O call Cassette I/O call Keyboard I/O call Printer I/O call Printer I/O call Bootstrap loader Time-of-day call Get-control-of-keyboard break Get-control-of-timer interrupt Pointer-to-video initialization table Pointer-to-diskette parameter table Pointer-to-graphics character generator DOS program terminate DOS function call DOS CTRL-BRK exit address DOS fatal-error vector DOS absolute disk read DOS absolute disk write DOS terminate, tix in storage Reserved for DOS Reserved Reserved for uscr softwarc intcrrupts Not used Reserved for BASIC Used by BASIC interpreter whilc running Not used
363
Memor; Expanded Bagian yang diberi nama "LIM data area" dalam Tabel 5.6 perIu anda perhatikan.Sepertiyang dikemukakansebelumnya,ukuran ruang alamat maksimum dari memori konvensional adalah 1 MB, walaupun pemakai hanya dapat menggunakannya 640 KB. Namun, dengan menambahkan hardware memori expanded khusus ke PC, pemakai dapat meningkatkan jumlah memori yang ada sampai 16 MB. Kita telah membahas memori expanded pada Bagian 4.2.4. Pada tahun 1984, Lotus, Intel, dan Microsoft (LIM) telah memperkenalkan Expanded Memory Specification(EMS),yang juga disebutLIM 3.2 EMS. Standart ini menggunakanblok alamatkonvensional64-Kyang tak terpakaiuntuk mengakses data yang dalam Tabel 5.6 dinamakan "LIM data area", Perhatikan, bahwa dalam PC 8088, alamat ini mempunyaijangkauan antara 816 K sampai 880 K, sedangkan PC 80286 dan 80386, LIM data area mencakup alamat 784 K sampai 848 K. Hardware memetakan alamat tersebut ke dalam memori expanded dan dengan demikian memungkinkan terjadinya, selain 640 KB memori konvensional penuh, penambahan 64 KB alamat memoriyang digunakanuntuk mengaksesdata. Dengan mengosongkan bank memori, card EMS dapat memasok sampai 16 MB memori expanded kepada pemakai. Hardware yang sama dapat juga memetakan blok alamat antara 64 K sampai 640 K ke dalam memori expanded, apabila tak ada chip RAM dalam PC yang meresponke alamat tersebut.(Jika dua peralatan,rnisalnyaRAM dan papan memori expanded,meresponke alamatyang samadan keduanyamemaksakanmenempatkan data pada waktu yang bersamaan, maka ia akan memperpendek sirkuit dan akan membakar sirkuit bus). Namun demikian, PC tidak dapat menjalankan program dari memori expanded (hanya data), sehingga kebanyakan komputer yang menggunakanmemoriEMS biasanyajuga mempunyai640 KB memorikonvensional penuh. Untuk pemakai yang mempunyai memori utama kurang dari 640 K, card EMS memungkinkanpemakai tersebut untuk menggunakan640 K memori card itu semuanya sebagai memori utama tambahan dan untuk menggunakan sisa memori card tersebut untuk memori EMS.
364
Tabel 5.6 Memori yang dicadangkan pada mM PC, PC AT, dan clone PC tennasuk memori dengan CPU 80386. Address3
PC Usage
PC AT and 80386 PC Usage
960 K-1024 K 880 K-96O K 896 K-96O K 880 K-896 K 848 K-880 K 816 K-848 K 800 K-816 K 784 K-8oo K 768 K-784 K 752 K-768 K 736 K-752 K 720 K-736 K 704 K-720 K 640 K-704 K
ROM BIOS Unused Unused Unused LIM data area LIM data area Hard-disk ROM Unused EGA ROM Unused CGA Unused MDA EGA or VGA
ROM BIOS Extra ROM Extra ROM Unused Unused LIM data area LIM data area LIM data area EGA ROM Unused CGA Unused MDA EGA or VGA
1536-640 K 1152-1535 1024-1151 0-1023
User RAM BASIC, special system RAM RAM BIOS Interrupt-vector table
User RAM BASIC, special system RAM RAM BIOS Interrupt-vector table
aAddresses below 640 K are available to users; those above 640 K are reserved for system use.
Enhanced Expanded ditingkatkan)
Memory (memori
expanded
yang
Pada tabun 1987, Lotus, Intel, dan Microsoft mengadopsi standart memori expanded yang disebut LIM 4.0 EMS, yang sebelumnya diperkenalkan oleh AST Research, Quadram, dan Ashton-TatesebagaiEnhanced Expanded Memory Specification (EEMS). LM 4.0 EMS (EEMS) berbeda dengan LIM 3.2 EMS dalam beberapa hal yang pokok. Yang pertarna, ia memberikan memori expanded yang lebih banyak - yakni sampai 32 MB. Kedua, ia memberikan teknik pemetaaan alamat yang lebih fleksibel. Sebagai pengganti hanya menggunakan alamat LIMdata-area, ia dapat memetakan alamat memori konvensional, yaitu alamat yang berada dalam 640 K pertama dari memori utama, ke dalam alamat memori ex365
panded. Akibatnya, PC dapat menjalankanprogram secara langsung di luar EEMS. Papan EEMS dapat memuat banyak program ke dalam memori expanded dan dengan segera menukar diantara mereka.Juga, sistem tidak boleh mempunyai chip RAM pada alamat yang sarna yang digunakan oleh papan EEMS. Dan karena kebanyakan PC paling sedikit mempunyai 512 KB memori konvensional, maka ada batasan praktis pada ukuran program yang dapat ia jalankan dalam memori EEMS. Meskipun demikian, EEMS memiliki banyak keunggulan dari pada EMS, yang meliputi fakta bahwa (1) EEMS dapat memetakan beberapa area memori konvensional yang tidak berdekatan ke dalam memori yang ditingkatkan, (2) program pemakai dapat memodifikasi alamat yang dipetakan, dan (3) PC dapat menjalankan program secara langsung di luar memori EEMS. Perlu anda catat bahwa program tetap terbatas sampai 640 KB memori, dan tentunya dalam prakteknya mereka ini akan lebih kecil.
5.5 MANFAAT ARSITEKTURAL ARSITEKTUR PC Keberhasilan PC dalam mengembangkan atau memperluas pangsa pasarnya adalah karena jasa para pe:rancangnya, yang merakit komputer berharga murah tapi canggih dengan menggunakan teknologi yang sudah ada. Pada tahun 1980, kendala biaya sangat menghambat mereka, sehingga mereka melakukan kompromi untuk mengurangi biaya. Kita akan membahas sebagian darinya pada bagian ini. PC berdaya terap bagi pemakai yang mengehendakinya dan bersifat cukup umum bagi program aplikasi yang memerlukannya. Sebenarnya, dengan melihat sepintas di toko software, kita akan lebih bisa mengetahui mengenai daya terap dan sifat umumnya (generalisitas) bagi berbagai macarn program dari pada yang dapat dilakukan oleh para perancang sebelumnya. Kita tidak perlu berfikir keras untuk menjalankan program ilmiah utama, sehingga kurangnya dukungan integral untuk aritmetik titik ambang tidak menjadi beban pokok. Pada kenyataannya, para perancang menyertakan socket (rongga) untuk koprosesor titik ambang meskipun Int~l belum memproduksi satu pun yang dipandang memadai. Hal ini mungkin dianggap tidak berguna, sehingga Intel tidak merancang koprosesomya untuk secara langsung memberikan atau mendukung aritmetik titik ambang melalui mekanisme seperti trap pada op code yang tak terpakai, yang hal ini akan mempercepat interface dan meningkatkan daya terap dengan hanya tambahan biaya yang sedikit atau tidak ada tambahan biaya sama sekali.
366
Pada waktu ffiM memperkenalkanPC pada tabun 1981, memori pada saat itu mahal dan aplikasi komputer personal yang ada masih keeil. Pada saat itu kita sulit membayangkanPC yang memerlukanlebih dari 640 KB memori utama. Meskipun demikian, komputer mainframemempunyaimemoriutama yang ukurannyaberlipat ganda, dan para perancang PC dapat dengan mudah meramalkan bahwa batasan 640 KB memori utama akan menjadi kendala yang sangat mengganggu untuk aplikasimasadepan.Namun demikian,peningkatanruangalamatakan meningkatkan biaya dan, seperti yang kita lihat di toko software, ruang alamat yang terbatas belum mengganggu perkembangbiakan atau pertumbuhan software. Pada kenyataannya, ruang alamat yang terbatas telah membantu para perancang dalam mengontrol biaya hardware PC, karena sebenamya semua program awal tahun 1990 dirancang untuk berjalan dengan memori yang tidak lebih dari 640 KB. (Sebaliknya, karena Macintosh selalu memberikan memori yang lebih banyak, banyak program Macintosh yang memerlukan memori lebih dari 1 MB). Seperti yang ditunjukkanoleh ffiM ketika ia membiarkanpenyempumaan PCnya kepada perusahaan,arsitekturPC memungkinkanterjadinya implementasiyang berbiaya rendah dan mudah dirancang.Namun demikian,karena ruang alamat keeil yang diakses memori hanya 1 byte, maka tidak dimungkinkan membangun PC yang berkinerjatinggi.Aplikasiyang membutuhkankinerjatinggibam bisadilakukan setelah munculnya PC AT, clone PC 80386 dan 80486, dan mesin lebih bam lainnya. Masalah kemudahanpenggunaan,daya tempa,daya kembang(ekspandabilitas) telah ditetapkan untuk ruang memori dan keeepatan sistem. PC memungkinkan perkembanganke.arahyang lebihbam, desainkinerjayang lebihtinggidan perluasan ke sistem yang lebih besar. Ia tidak bisa seeara langsungmemberikan fasilitas yang diinginkan tersebut sendiri. Dalam menilaimanfaatarsitekturalPC, ada pepatabyang munculdalam ingatan kita: Anda tabu Pioneersmerekaadalahpara perintisdengananak panahdi punggung mereka. Kebanyakan komputer personal yang mendahului PC telah mati, penuh dengan tusukan anak panah. PC mempunyai inanfaat yang memadai dan plat nama yang cukup menonjol untuk berevolusi menjadi desain yang baik dan menetapkan (mempengaruhi penetapan) sejumlah standart mikrokomputer, walaupun ia mempunyai banyak kekurangan dalam hal fasilitas arsitektur komputer yang dikehendaki. Mengenai kinerja sistemnya, PC telah lebih dari cukup pada waktu pertarna kali ffiM memperkenalkannya. Dengan meningkatnya kompleksitas aplikasi, gangguan kinerja yang pokok bagai kebanyakan pemakai teratasi dengan adanya sistem penyimpanan disk. Jadi, pada waktu pemakai menambahkan hard disk ke 367
PC, mereka akan mendapatkanpeningkatankecepatan yang menakjubkan.Banyak aplikasi sekarang memerlukan komputer personal yang berkineIja lebih tinggi dan lebih barn, namun banyak pemakai PC tidak bisa melihat kecepatan CPU ekstra yang diberikan oleh chip 80286 tercepat maupun oleh chip 80386 dan 80486. Untuk semua pemakai,kecuali pemakai tertentu, sekarangini hard disk sangat penting. Sebagian dari kepentingannya itu, yang harns kita ketahui, adalah dalam hal memori PC yang kecil. Dalam banyak aplikasi, disk yang lebih cepat akan berfungsi lebih dari sekedar memori utama.
RINGKASAN Dengan menggunakan ffiM PC sebagai contoh, bab ini mengemukakan tinjauan mengenai sistem komputer lengkap. ,Kita telah mendeskripsikan CPU, set instruksinya, dan operasinya. Kita juga membahas sejumlah chip pendukung, yang meliputi pengontrol bus, pengontrol interrupt programmable, pengontrol DMA, dua interface I/O, dan koprosesor titik ambang. Yang terakhir kita membahas interface software-hardware, yang meliputi tanggung jawab ROM BIOS, penetapan alamat port I/O, dan penetapan alamat memori. ffiM PC menggunakan mikroprosesor 8088 Intel, yakni mikroprosesor 16-bit dengan bus data 8-bit dan bus alamat 20-bit, dan ia juga menggunakan bus lokal expanded yang disebut Bus Channel I/O PC. CPU menggenerasi signal status, yang diteIjemahkan oleh pengontrol bus ke dalam signal kontrol bus. Selain jalur alamat, jalur data, dan jalur daya, bus menyertakan jalur request interrupt, jalur request dan persetujuan DMA, dan jalur kontrol I/O dan memori independen. Circuitry bus meliputi pengunci alamat dan transceiver data. CPU 8088 men genal dua jenis request interrupt, yaitu maskable dan nonmaskable. Pengontrol interrupt PC menangani request interrupt maskable, yang berasal dari logika keyboard, timer, dan pengontrol DMA. Pengontrol interrupt memberi prioritas interrupt, menutup (mask) interrupt, menyetujui interrupt, dan menggenerasi nomor vektor interrupt, yang ia kirimkan ke CPU bilamana diminta. PC menggunakan pengontrol DMA programmable untuk mentransfer data diantara interface I/O serial dan paralel dan memori, dan ia menggunakan PPI fleksibel untuk berkomunikasi dengan peralatan I/O. Daya programmable memberi pemakai atau sistem pengoperasian suatu kontrol serba bisa terhadap pengontrol DMA dan PPI. PPI, misalnya memberikan berbagai opsion dan handshake I/O,
368
yang digunakanPC untuk membacapembahankonfigurasi,keyboard,keseimbangan (parity) RAM, dan status channel I/O, dan untuk mengontrol beberapa peralatan, termasuk speaker. PC menggunakan timer interval programmable untuk mengawali pemulihan DRAM, untukk mengontrolnada speaker,dan untuk mengendalikanjam pengaturan waktu harian. Ia menggunakan UART untuk melakukan komunikasi serial dengan modem, misalnya. CPU berkomunikasidenganperalatansistemdenganearnmembacaatau menulis ke alamat portnya, dan kita telah membahas penetapan alamat port I/O dari PC. Demikian pula halnya, hardwaredan softwareberkomunikasidengan BIOS dengan cara mengawali atau memunculkanjenis interrupttertentu,dan dalam bab ini anda telah melihat tabel vektor interrupt PC. Yang terakhir, para arsitek sistem mencadangkan berbagai alamat memori utama untuk tabel vektor interrupt, RAM BIOS, BASIC, RAM pemakai, dan pilihan sistem yang lain, misalnya memori tampilan video dan ROM hard disk. Farnili PC telah tumbuh atau berkembang dengan memunculkan berbagai macam komputer dan sejumlah besar clone (anggota kelompok). Anggota farnili yang lebih bam meliputi mesin AT jenis 80286, 80386, dan 80486. Bus I/O PC menggunakan lintasan (path) data 8-bit, sedangkanBus I/O PC AT menggunakan lintasan data 16-bit.Walaupun ffiM tidak pemah melakukan standardisasibus PC 32-bit, namun konsorsium independen dari pemsahaan PC bam-bam saja telah memperkenalkan bus EISA, hal ini menjanjikan panjangnya umur farnili PC.
LATIHAN 5.1 Untuk set cache asosiatif dua arah yang mempunyai 8 K word 32-bit, berapa banyak byte SRAM yang berada dalam masing-masingbank memori cache? 5.2 Jelaskanmengapabus alarnatyang beradapadaPC tidakdireksional,sedangkan bus data adalah bidireksional (dua arah). Jelaskan mengapa chip CPU menggunakan beberapa pin baik untuk data maupun alamat! 5.3 Jelaskan mengapa I/O DMA lebih cepat dari pada I/O yang dikontrol CPU, yang keduanya untuk PC?
369
5.4 Berapa milisecond yang diperlukan pengontrol DMA untuk membaca 128 lokasi penyimpanan yang berurutan jika ia mengakses setiap lokasi dalam setiap 15 Jls?Misalkan pengontrolDMA membacadari 65.5361okasimemori yang berurutan sebelum ia melakukan autoinisialisasi, maka berapa kali ia memulihkan memori sebelum ia melakuakan autoinisialisasi? 5.5 Anda misalkan ada PC 16-bit beIjalan pada kecepatan 1 MPS. Disk-nya berotasi pada kecepatan 3600 rpm, mempunyai seek time terhadap head ratarata 30 ms, dan mempunyai kecepatan transfer 500 KBS. Berapa banyak instruksiyang dapat dijalankanoleh PC tersebut selama latensi rotasionalratarata? Berapa instruksi yang dapat ia jalankan selama delay rata-rata dalam menempatkan head? 5.6 Dengan berpedoamn pada sistem yang dikemukakan pada Latihan 5.5, apa kelebihan dan kekuranganI/O DMA? Jika data disimpan dalam buffer I/O 2byte, dapatkah CPU menyangganya dengan disk (misalkan diperlukan dua instruksi untuk memindahkan setiap pasang byte dari buffer ke memori)? 5.7 Sebutkanempat aplikasi,bahwadengan menambahkanperalatanberikut maka kineIja PC akan meningkat! a. koprosesor matematika b. sistem disk berkineIja lebih tinggi c. chip CPU berkineIja lebih tinggi 5.8 Bagaimana penambahan cache akan mempengaruhi kineIja PC 4,77 MHz (seperti IBM PC yang didasarkan pada 8088 asli)? Bagaimana ia bisa mempengaruhi kineIja PC yang didasarkan pada 20, 25, atau 33 Mhz 80386 atau PC yang didasarkan pada 20,25, atau 33 Mhz 80486? Nyatakan dengan jelas asumsi anda! 5.9 Apa keuntungan terpisahnyajalur kontrol baca memori, tulis memori, baca I/ 0, dan tulis I/O pada Bus Channel I/O PC?
Latihan Untuk Referensi 5.10 Lihatlah manual mikroprosesor 8088 Intel. Berdasarkan pada nitai yang ada dalam preftks segment-override, op code apa yang tidak dimungkinkan untuk instruksi?
370
5.11 Dengan menggunakan manual 8088 Intel atau IBM PC, tunjukkan rangkaian kerja (berjalannya proses) sepanjang interrupt sampai kembalinya dari interrupt yang memperlihatkan bahwa setelah dipulihkan untuk menjalankan eksekusi kembali, program yang telah diinterupsi tersebut akan berjalan seolaholah ia tidak pernah diinterupsi pada tempat yang pertama.
5.12 Sebisa anda, sebutkan sebab yang membatasi ukuran program yang dapat berjalan di luar memori EEMS (LI1vI4.0)! 5.13 Lihat manual 8088 Intel dan jelaskan apa yang terjadi apabila penambahan alamat overflow (berkelebihan).[Penambahanalamat segmen terbesar dengan alamat efektif terbesar, yaitu (220- 16) + (216 - 1), akan menghasilkan nilai yang lebih dari 20-bit untuk alamat fisik]. 5.14 Carilah atau tentukan alamat port I/O untuk register dari chip DMA papan sistem. Lakukan hal yang sama untuk timer interval 8253 papan sistem!
Masalah untuk Pembahasan Kelompok 5.15 Bagaimana penambahan memori virtual bisa mempengaruhi: a. PC yang menjalankan MS-DOS? b. PC yang menjalankan Windows? 5.16 Pengontrol interrupt memberikan nomor vektor interrupt kepada CPU. Apa alternatif yang bisa dilakukanjika pengontrol tersebut tidak memberikannya? 5.17 Sebisa anda, sebutkan beberapa alasan mengapa para arsitek PC mungkin memilih hanya mendekode 10 jalur alamat I/O! 5.18 Siklus jam IBM PC adalah sekitar 210 ns, yang hampir secepat siklus jam VAX 11/780 yaitu 200 ns. Namun, PC jauh lebih lambat bila dibandingkan dengan VAX 11/780.Jelaskan.(petunjuk: Anda perlu melihatperbedaanyang diakibatkan oleh bus 32-bit dengan bus 8-bit atau 16-bit).
371
INDEKS mikroprosesor 8086
koprosesor 8087
mikroprosesor 8088
mikroprosesor 80286
mikroprosesor 80386
mikroprosesor 80386SX
mikroprosesor 80486 transmisi tak sinkron
byte mode pengalamatan
mode I/O dasar PPI mode bus dua arab PPI bit time
pin dua arab card
Color Graphics Adapter (CGA)
segmen kode memori konvensional
koprosesor
alamat CPU
daisy chaining
bit data
segmen data terminal data
set data
set chip
byte penggantian alamat base DMA
daughter board autoinisialisasi DMA count base DMA
mode blok DMA
DMA cascade mode
register perintah DMA current count (count bam)
current address (alamat bam) DMA DMA mode demand DMA
register penutup DMA
register mode DMA
register request DMA
mode tunggal DMA
register status DMA
register alamat temporer DMA
register count temporer DMA
register temporer DMA
Enhanced Expanded Memory Spe-
Enhanced Graphics Adapter (EGA)
cification (EEMS)
Expanded Memory Specification
Extended Graphics Array (XGA)
(EMS)
bus Extended Industry
Standard segmen ekstra
Architecture (EISA)
framing error idle
handshaking ffiMPC register count inisial 372
sistem input-output dasar (BIOS) baud rate
Industry Standard Architecture (ISA)
rangkaian .persetujuan interrupt alamat vektor interrupt latch (pengunci) LIM 4.0 EMS mark bit Micro Channel Architecture (MCA) minikomputer field mod mother board overrun error parity error Bus PC AT Bus PC Bus Channel I/O PC interface paralel (pPI)
.
.
Jam penenma field rIm byte segment-overridel-prefix I/O serial segmen stack mode strobed PPI papan sistem count terminal jam transmitter universal asynchronous receiver transmitter (UART)
rangkaian inisiasi interrupt timer interval LIM 3.2 EMS komputer mainframe Monochrome Display Adapter (MDA) mikrokomputer mikroprosesor modem register mode (timer 8253) byte op code I/O paralel PC AT Bus Channel I/O PC AT clone (anggota kelompok) PC komputer personal programmable PS/2 mode Real Address field reg ROM BIOS (basic input-output system) slot bit stop superkomputer pengawalan (inisialisasi) sistem pin time-division-multiplexed (TOM) Video Graphics Array (VGA) wait state
373