Sunday, March 11, 2007

Tugas Mikroprosesor dan Mikrokomputer

MIKROPROSESROR DAN MIKROKOMPUTER

Tujuan dan Prasyarat
• Mahasiswa dapat memahami prinsip kerja mikroprosesor dan mengetahui aplikasinya.
• Mata Kuliah Prasyarat: Sistim Digital, Pengantar Arsitektur Komputer

Materi
• Pengertian Mikroprosesor
• Jenis-jenis Mikroprosesor
• Arsitektur Mikroprosesor
• Sistim Memori
• Antarmuka
• Perancangan dan Pemrograman Mikroprosesor
• Aplikasi Mikroprosesor

BAB I PENGERTIAN MIKROPROSESOR

Terdapat tiga pengertian yang harus dibedakan yakni:
§ Mikroprosesor
§ Mikrokomputer
§ Mikrokontroler

Mikroprosesor

Mikroprosesor adalah suatu chip (IC=Integrated Circuits) yang di dalamnya terkandung rangkaian ALU (Arithmetic-Logic Unit), rangkaian CU (Control Unit) dan register-register. Mikroprosesor disebut juga dengan CPU (Central Processing Unit).

ALU: menyediakan fungsi pengolahan.
CU: mengontrol fungsi prosesor.
Register: tempat penyimpanan sementara dalam mikroprosesor.




Mikrokomputer

Mikrokomputer adalah interkoneksi antara mikroprosesor (CPU) dengan memori utama (main memory) dan antarmuka input-output (I/O interface) yang dilakukan dengan menggunakan sistim interkoneksi bus.
Bus adalah kumpulan konduktor yang membawa sinyal-sinyal: alamat, data dan kontrol.

Sistem Mikrokomputer


Sistim Interkoneksi Bus Pada Mikroprosesor

Bus alamat: kumpulan konduktor yang membawa kode-kode alamat dari mikroprosesor ke unit-unitnya, dan memiliki sifat aliran satu arah.

Bus data: kumpulan konduktor yang membawa kode-kode instruksi atau data dari mikroprosesor ke unit-unitnya atau sebaliknya, dan memiliki sifat aliran dua arah.

Bus kontrol: kumpulan konduktor yang membawa sinyal-sinyal kontrol.

Main Memory

ROM: Read Only Memory (memory yang hanya bisa dibaca).
RAM: Random Access Memory (memory yang dapat dibaca dan ditulisi).

I/O Interface & Peripheral
I/O Interface: bagian/unit dari sistim mikrokomputer yang berfungsi sebagai perantara hubungan antara sistim mikrokomputer dengan “dunia luar” (peripheral).

Peripheral: peralatan- peralatan di luar sistim mikrokomputer yang dapat berhubungan dengan sistim mikrokomputer, antara lain monitor (output), printer (output), keyboard (input), mouse (input).



Mikrokontroler
Mikrokontroler adalah chip yang di dalamnya terkandung sistim interkoneksi antara mikroprosesor, RAM, ROM, I/O interface dan beberapa peripheral.
Mikrokontroler disebut juga On-chip-Peripheral.


BAB II JENIS MIKROPROSESOR

Berdasarkan Atas Dasar Teknologi Bahannya
Mikroprosesor dan keluarga komponen sejenis seperti memori dan rangkaian I/O dibuat dengan berbagai teknologi bahan. Beberapa dari teknologi tersebut adalah TTL (Transistor-Transistor Logic), STTL (Schottky-clamped TTL), LSTTL(Low power STTL), ECL (Emitter Coupled Logic), ILL (Integrated-Injection Logic), PMOS (P-channel Metal Oxide Semiconductor), NMOS (N-channel Metal Oxide Semiconductor), CMOS (Complementary MOS) dan HSCMOS (High Speed CMOS).

Beberapa jenis mikroprosesor berdasarkan atas teknologi bahannya:
Prosesor Teknologi Konsumsi Daya Siklus Perintah
§ INTEL 8008 PMOS 420 mW 10 us
§ INTEL 8085 NMOS 400 mW 1,3 us
§ INTEL 80286 HCMOS 2500 mW 0,1 us
§ RCA 1802C CMOS 400 mW 6,4 us
§ MOTOROLA MC6800 NMOS 600 mW 2,0 us
§ MOTOROLA MC68000 HCMOS 1750 mW 0,08 us
§ MOS Technology 6502 NMOS 250 mW 3,0 us
§ National 32032 HCMOS 1000 mW 0,1 us
§ Zilog Z80 NMOS 400 mW 1,3 us


Prosesor Teknologi Konsumsi Daya Siklus Perintah
INTEL 8008 PMOS 420 mW 10 us
INTEL 8085 NMOS 400 mW 1,3 us
INTEL 80286 HCMOS 2500 mW 0,1 us
RCA 1802C CMOS 400 mW 6,4 us
MOTOROLA MC6800 NMOS 600 mW 2,0 us
MOTOROLA MC68000 HCMOS 1750 mW 0,08 us
MOS Technology 6502 NMOS 250 mW 3,0 us
National 32032 HCMOS 1000 mW 0,1 us
Zilog Z80 NMOS 400 mW 1,3 us

Berdasarkan Atas Lebar Bus Dan Pabrik Pembuatnya
Prosesor Pabrik Lebar Data Teknologi Tahun
§ 4004 INTEL 4-bit PMOS 1971
§ 4040 INTEL 4-bit PMOS 1971
§ PPS-4 Rockwell 4-bit PMOS 1972
§ 8008 INTEL 8-bit PMOS 1972
§ 8080 INTEL 8-bit NMOS 1974
§ F8 Fairchild 8-bit NMOS 1974
§ 6800 Motorola 8-bit NMOS 1974
§ Z80 Zilog 8-bit NMOS 1976
§ 6801 Motorola 8-bit NMOS 1978
§ 6809 Motorola 8-bit NMOS 1978
§ 9900 Texas Inst. 16-bit NMOS 1976
§ 68000 Motorola 16-bit NMOS
§ Z8000 Zilog 16-bit NMOS

Keluarga INTEL Dari Masa Ke Masa
§ INTEL 4004, 1971
Mikroprosesor ini dikeluarkan pada tahun 1971 oleh Intel Corporation, merupakan mikroprosesor pertama di dunia. INTEL 4004 merupakan mikroprosesor 4-bit dengan kecepatan 108 kHz yang terdiri dari 2.300 transistor. Kecepatan pengiriman data mencapai 0,06 MIPS (Mega Instruction Per Second). Mikroprosesor ini hanya bisa menangani lokasi memori 4-bit sebanyak 4096 lokasi. Instruksi yang dapat dilaksanakan hanya 45 buah sehingga hanya dapat diaplikasikan terbatas seperti pada video games dan kontroler- kontroler skala kecil.
§ INTEL 8008, Januari 1972
Merupakan mikroprosesor 8-bit yang mampu melaksanakan 48 instruksi dengan ukuran memori 16 kB (16k x 8-bit). Adanya instruksi tambahan menyebabkan prosesor ini dapat diaplikasikan dalam sejumlah aplikasi yang lebih maju.
§ INTEL 8080, November 1973
Merupakan mikroprosesor modern 8-bit yang pertama dan diperkenalkan pada November 1973. dapat melaksanakan instruksi 10 kali lebih cepat dari 8008.
§ INTEL 8085, 1977
Merupakan versi yang lebih baru dari 8080, diperkenalkan oleh Intel Corporation pada tahun 1977. tidak ada kemajuan yang berarti dari versi ini, menangani jumlah memori yang sama, melaksanakan jumlah instruksi yang sama, kemajuannya hanya pada penambahan 1,3 us kontroler instruksi yang merupakan komponen eksternal dari sistim berdasar 8080.
§ INTEL 8086/8088, 1978
Mikroprosesor 8086 dikeluarkan oleh Intel Corporation pada tahun 1978 dan setahun kemudian 8088. Keduanya merupakan mikroprosesor 16-bit yang melaksanakan instruksi dengan kecepatan sedikitnya 400ns per instruksi dan mampu menangani alamat memori 1 Mbyte. Teknologi prosesor ini merupakan landasan pengembangan bagi prosesor INTEL berikutnya.
§ INTEL 80286/80386/80486
§ INTEL PENTIUM I/II/III/IV

Mesin Berbasis Instruksi 1-Alamat & 2-Alamat
§ Mesin berbasis instruksi 1-alamat
§ Salah satu mikroprosesor jenis ini adalah dari keluarga MOTOROLA.
Contoh: untuk mengisi akumulator dengan bilangan 5 heksadesimal, pada mesin MOTOROLA digunakan instruksi: LDAA #$5

§ Mesin berbasis instruksi 2-alamat
Keluarga INTEL termasuk jenis mesin ini.
Contoh instruksi: MOV AL,5

BAB III ARSITEKTUR MIKROPROSESOR

Arsitektur Mikroprosesor INTEL 8086



§ Prosesor 8086 terbagi menjadi 2 bagian fungsional yang independen, yakni BIU (Bus Interface Unit) dan EU (Execution Unit).
§ BIU berfungsi mengirim kode-kode alamat keluar, mengambil instruksi dari memori dan membaca data dari port dan memori. BIU menangani semua transfer data dan alamat pada bus untuk membantu EU.
§ EU meminta BIU untuk mengambilkan instruksi dan data dari memori, mendekode dan melaksanakan instruksi.

Execution Unit (EU)
§ EU mengandung rangkaian-rangkaian kontrol yang berfungsi mengarahkan operasi-operasi internal.
§ Dekoder pada EU menerjemahkan instruksi-instruksi yang telah diambil dari memori ke dalam urutan aksi.
§ EU memiliki ALU 16-bit dan dapat melakukan penjumlahan, pengurangan, AND, OR, XOR, increment, decrement, complement atau shift bilangan biner.

Execution Unit (EU): Flag Register
§ 8086 memiliki register bendera dengan panjang 16-bit. Dari 16-bit itu terdapat 9 bendera yang aktif.
§ Dari 9 bendera yang aktif, 6 bendera di antaranya (bendera kondisi) digunakan untuk menunjukkan kondisi-kondisi yang dihasilkan oleh pelaksanaan instruksi yakni bendera CF(Carry Flag), PF(Parity Flag), AF(Auxilary carry Flag), ZF(Zero Flag), SF(Sign Flag), OF(Overflow Flag).
§ Sedangkan 3 bendera lainnya (bendera kontrol) digunakan untuk mengendalikan beberapa operasi prosesor. Bendera-bendera kontrol ini berbeda dengan 6 bendera kondisi dalam hal cara set dan reset-nya. Keenam bendera kondisi diset dan direset oleh EU, berdasarkan hasil operasi-operasi aritmatika atau logika, sedangkan 3 bendera kontrol diset dan direset oleh instruksi-instruksi khusus yang ada pada program. Bendera itu adalah TF(Trap Flag), IF(Interrupt Flag) dan DF(Direction Flag).
§ Lokasi bit setiap bendera dalam register bendera:



§ Bendera Carry akan diset (CF=1), jika operasi ALU menghasilkan carry. Contoh:
§ Bendera paritas (Parity Flag) akan diset (PF=1), jika pelaksanaan perintah oleh ALU menghasilkan jumlah bit 1 genap dan reset (PF=0) jika jumlah bit 1 ganjil.
Contoh: Output ALU=01100011, maka PF=1
Output ALU=00101010, maka PF=0
§ Bendera AF (Auxilary carry Flag) akan diset (AF=1), jika penjumlahan bit ketiga menghasilkan carry. Contoh:

§ Bendera Zero akan diset (ZF=1), jika operasi ALU memberikan hasil 0.
§ Bendera Sign akan diset (SF=1), jika pelaksanaan perintah oleh ALU menghasilkan bilangan negatif.
§ Bendera OF (Overflow Flag) akan diset (OF=1), jika terjadi overflow yakni jumlah bit hasil operasi lebih besar dari lebar akumulator. Contoh: jika suatu operasi menghasilkan bilangan dengan panjang 17-bit, sedangkan akumulator 8086 hanya 16-bit, maka bendera OF akan diset.
§ Bendera TF (Trap Flag) digunakan pada mode operasi langkah tunggal (single step atau trace). Jika bendera ini diset, maka pelaksanaan instruksi akan dilakukan langkah demi langkah.
§ Bendera IF digunakan untuk mengijinkan interupsi dari program.
§ Bendera DF digunakan pada operasi string.

Execution Unit (EU): Register Serbaguna (General Purpose Registers)
§ 8086 memiliki 8 buah register serbaguna yakni: AH, AL, BH, BL, CH, CL, DH, DL. Khusus untuk AL dinamakan pula AKUMULATOR.
§ Jika register-register tersebut akan digunakan sebagai register 16-bit, maka pasangan AH dan AL membentuk AX, BH dan BL membentuk BX, CH dan CL membentuk CX serta DH dan DL membentuk DX.

§ AX: merupakan akumulator, sering digunakan untuk menyimpan hasil sementara setelah operasi aritmatika dan logika.
§ BX: sering digunakan sebagai register base untuk menyimpan address base data yang terletak di dalam memori dan juga address base tabel data.
§ CX: dapat digunakan sebagai register count.
§ DX: dapat digunakan sebagai register data.

Bus Interface Unit (BIU): Register Antrian
§ Pada saat EU mendekode atau melaksanakan suatu instruksi, ia tidak perlu menggunakan bus sehingga dapat digunakan oleh BIU untuk mengambil 6 byte instruksi sebagai instruksi berikutnya yang akan dilaksanakan.
§ Instruksi-instruksi tersebut dinamakan prefetched instruction dan oleh BIU disimpan dalam register FIFO (First-In First-Out) yang juga disebut register antrian.
§ Ketika EU siap melaksanakan instruksi berikutnya, ia dengan mudah membaca instruksi-instruksi dari register antrian dalam BIU.
§ Jadi, ketika EU sedang melaksanakan suatu instruksi, bus dapat digunakan oleh BIU untuk menulis dan membaca memori serta mengambil instruksi berikutnya.
§ Teknologi yang memungkinkan pengambilan instruksi berikutnya sambil melaksanakan instruksi yang ada dinamakan pipelining. Berikut adalah contoh perbedaan prosesor 8085 tanpa pipelining dan 8086 dengan pipelining dalam melakukan pengambilan instruksi, pelaksanaan instruksi, operasi read dan operasi write. Nampak bahwa pipelining memberikan tingkat penggunaan bus yang lebih efektif.

Bus Interface Unit (BIU): Register Segmen
§ 8086 mampu mengalamati 220 lokasi memori, sedangkan panjang register IP yang dimilikinya hanya 16-bit.
§ Untuk memperoleh 20-bit sinyal alamat, 8086 menggunakan bantuan register segmen. Gabungan antara register segmen 16-bit dan IP 16-bit akan menghasilkan 20-bit sinyal alamat.
§ 8086 memiliki 4 buah register segmen yakni CS (Code Segment), SS (Stack Segment), ES (Extra Segment) dan DS (Data Segment).
§ Jika suatu register segmen berisi kode misalnya CS berisi 348A, maka CS dianggap memiliki alamat awal 348A0. BIU secara otomatis akan menambahkan angka 0 di belakang isi segmen. Setiap segmen menempati 64 Kbyte memori dan dapat ditempatkan di mana saja di dalam ruang alamat 1 Mbyte.
§ Contoh penempatan alamat segmen pada memori 8086:

§ IP berisi instruksi berikutnya yang akan diambil. Alamat fisik yang dihasilkan BIU diperoleh dengan cara seperti di bawah.

§ Bagian awal alamat segmen yang tersimpan di dalam register segmen dinamakan segment base, dalam contoh 348A adalah segment base yang tersimpan dalam CS.
§ Isi IP merupakan offset atau jarak (displacement) antara alamat awal segmen dengan alamat fisik yang dihasilkan. Pada contoh, IP=4214 berarti merupakan jarak antara 3480A0 (alamat awal segmen) s.d. 384B4 (alamat fisik).

Register Stack Pointer (SP)
§ Stack adalah bagian memori yang digunakan untuk menyimpan alamat dan data selama subprogram dilaksanakan. Jika subprogram selesai dilaksanakan, isi stack dikembalikan ke lokasi semula, yakni IP dan akumulator.
§ SP merupakan register yang berisi offset 16-bit yang menghasilkan alamat fisik teratas dari memori stack. Untuk membangkitkan alamat fisik 20-bit, SP memerlukan bantuan register SS (Stack Segment).

Register Index & Pointer
§ Kecuali SP, EU pada 8086 juga memilki Register Base Point (BP) 16-bit dan juga register index SI(Source Index) 16-bit dan DI (Destination Index) 16-bit.
§ Walaupun BP,SI dan DI dapat digunakan sebagai penyimpanan sementara dari data seperti halnya pada register serbaguna, namun penggunaan utama mereka adalah menyediakan offset 16-bit dari data untuk suatu segmen base. Contoh: alamat fisik data pada memori akan dibangkitkan dengan menambah isi SI dengan alamat segmen base yang direpresentasikan oleh bilangan 16-bit dalam register DS.