Anda di halaman 1dari 10

PERCOBAAN VII

JUDUL : ANALISIS PROSES KERJA SISTEM MIKROPROSESOR (1): OBSERVASI BUS


CPU TMPZ84C00
OBYEKTIF :

 Memahami prinsip hubungan kerja antara addres bus, data bus dan control bus CPU
Z80
 Memahami prinsip kerja CPU Z80 dalam mengambil dan membaca data,
menerjemahkan dan menjalankan instruksi yang dimaksud. (fetch – decode – run).
PERALATAN :
1. Modul FZ80CPU
2. DC Power Supply (regulated +5V) dengan Pulse Generator
3. Dual Traces Oscilloscope/Logic Analyzer (optional)
TEORI :
Pada dasarnya Mikroprosesor membaca instruksi yang diambilnya dari memory baik
EPROM maupun RAM. dan mengeksekusinya langkah perlangkah seperti yang dituniukkan
pada Gambar 7-1 berikut ini.
Read/Fetch Data
Membaca data di alamat yang
ditunjukkan oleh program counter

Decode

Men-dekode (menerjemahkan) data yang di fetch


(baca)

Execute
Mengeksekusi/memproses
instruksi/data sesuai hasil dekode

PC PC+1

Pada dasarnya proses di atas berjalan terus menerus tanpa keluar dari loop,kecuali
dengan perlakuan tertentu. baik secara hardware (misalnya Interrupt) maupun secara software
(misalnya pelaksanaan instruksi : jump, call & ret, push & pop dan restart). Setiap kali
melaksanakan instruksi. PC ditambah 1. misalnya mikroprosesor mendapat instruksi :
LD A, 0FH
Pada sistem rangkaian berbasis Z80. instruksi ini disimpan di memory dalam (2x8)bit
atau 2 byte. Kode-kode mesinnya adalah 3 E dan 0F. Dakam biner adalah 00111110B dan
00001111B.

Kode Mesin Instruksi


3E 0F LD A, 0FH

Pada saat CPU Z80 membaca dan mengartikan kode mesin 3E maka ia tahu bahwa
instruksi tersebut adalah 'Loading Value' ke Register A. Instruksi ini menyebabkan CPU Z80
menambah PC dengan 1. dan melanjutkan membaca data di alamat memory yang ditunjukkan
oleh P C yang baru. Data yang ada di PC yang baru ini akan dianggap sebagai nilai (value)
yang harus diisikan (loading) ke register A. Selanjutnya CPU menambah lagi PC dengan 1,
dan melakukan proses membaca data berikutnya.
Menyimak bahwa sebuah instruksi dalam bahasa Assembly dapat diikuti data yang
berlaku sebagai operand atau tidak. maka proses penambahan PC dengan 1 adalah berjalan
dengan berorientasi pada setiap lokasl memory. Jadi proses membaca dan mengeksekusi
sebuah instruksi bahasa Assembly yang lengkap dapat terdiri lebih dari sebuah loop
Setiap mikroprosesor menggunakan metoda 'Stored Programming“ dalam
mengorganisasi penggunaan dan pengolahan data-datanya. Yang dimaksud dengan 'Stored
Programming‘ adalah metoda penyimpanan sementara data-data yang sedang diolah yang
melibatkan Program Counter, Stack Pointer dan Register-register Memory. (to Store =
menyimpan. menumpuk).
Program Counter bertugas 'memegang' alamat dari setiap instruksi pada saat instruksi
tersebut sedang dijalankan. Setiap instruksi selesai dijalankan dan CPU melanjutkan
mengerjakan instruksi berikutnya, isi Program Counter akan berubah ke posisi di mana
instruksi berikut itu disimpan. Program Counter ini berguna untuk menunjukkan sedang
berada di alamat mana CPU bekerja.
Observasi bus yang dimaksud dalam perccobaan ini adalah observasi yang diiakukan
terhadap suatu operasi kontinyu yang sinhgkat yang sedang dilakukan oleh CPU Z80. Dipilih
operasi kontinyu yang singkat dimaksudkan agar piranti monitor yang kita miliki, yaitu
Oscilloscope standard. dapat digunakan untuk menunjukkan bentuk-bentuk pulsa atau
gelombang yang terjadi pada address bus. data bus dan beberapa jalur kontrol yang bentuk-
bentuk gelombang ini saling bemubungan menunjukkan suatu fenomena operasi yang sedang
dijalankan.
Operasi yang dibentuk oleh CPU Z80 ini dapat dikelompokkan dalam 3 buah Operasi
dasar yaitu :
1. Memory read/Write (baca/tulis data pada memori)
2. I/O Device read/Write (baca/tulis data pada piranti lnput/Output)
3. Interrupt (lnterupsi)
Gambar 7-2 di bawah memperlihatkan tiga model pewaktuan dasar (timing) dalam operasi
CPU Z80. yaitu Op-Code Fetch. Memory Read dan Memory Write, yang digabung dalam satu
grafik

Pada gambar diatas. sebuah periode clock dinyatakan sebagai siklus T. sedang operasi
dasar dinyatakan sebagai M (Machine Cycle )_ Machine cycle terdiri dari M1, M2 dan M3.
M1 memiliki 4 buah siklus T. yaitu T1,T2,T3 dan T4. M2 memi-liki 3 buah siklus T. yaitu
T1,T2 dan T3. Demikian pula M3 memerlukan waktu 3 siklus T, yaitu T1 ,T2 dan T3.
Dalam operasi suatu program. Machine cycle yang pertama (M1) dari setiap instruksi
adalah fetch cycle (pengambilan OP code untuk di-dekode). Siklus ini membutuhkan 4
sampai dengan 6 siklus. terkecuali bila kontrol WAIT diaktifkan.Machine cycle berikutnya
biasanya adalah perpindahan data antara CPU dengan memori atau peralatan I/O. meskipun
ada pula pada instruksi-instruksi tertentu. Machine cycle berikutnya adalah Op code fetch
lagi. Siklus ini membutuhkan 3 sampai dengan 5 siklus T, terkecuali pula bila dibutuhkan
proses sinkronisasi dengan memberikan waktu tunggu.
Selama T2 dan pada setiap sikius berikutnya Siklus mesin CPU dapat diperpanjang dengan
mengaktifkan WAIT. Teknik pemberian 'waktu tunggu' yang naksibel ini membual CPU Z80
dapat di-match-kan dengan bermacam-macam komponen memori yang memiliki waktu akses
(access time) yang berbeda
Gambar 7-3 memperlihatkan diagram pewaktuan Op code fetch selama machine cycle
M1 (Op code fetch cycle). Panama. pada siklus M1 address bus berisi data yang tersimpan di
Program Counter (PC). Setengah clock cycle
Gambar 7-3 memperlihatkan diagram pewaktuan Op code fetch selama machine cycle M1
(Op code fetch cycle). Panama. pada siklus M1 address bus berisi data yang tersimpan di
Program Counter (PC). Setengah clock cycle berikutnya sinyal MREQ menjadi aktif. Pada
saat ini alamat yang terhubung ke memori telah menjadi stabil sehingga falling edge dari
sinyal MREQ ini dapat dimanfaatkan langsung sebagai kontrol chip enable pada memori.
Kontrol RD juga menjadi aktif yang menunjukkan bahwa pada saat itu data bus sedang
digunakan untuk proses pembacaan data memori. CPU mengambil data dari memory pada
saat rising edge T3 dan pada waktu yang bersamaan pula CPU meng-inactive-kan sinyal RD
dan MREQ. Dengan demikian data yang akan dibaca harus sudah ada dan stabil di data bus
sebelum sinyal RD menjadi nactive. Clock state T3 dan T4 dari fetch cycle dapat digunakan
untuk me-refresh memori dinamik, bila rangkaian terhubung ke memori dinamik. Pada state
ini A7-A0 dari address bus berisi alamat memori yang di-refresh dan sinyal kontrol RFSH
menjadi aktif. CPU menggunakan waktu T3 dan T4 ini untuk men-dekode dan mengartikan
instruksi yang telah diambilnya. Sinyal RD tidak aktif selama T3 dan T4 untuk menjaga agar
data dari segmen memori yang berbeda tidak terhubung ke data bus. Selama refresh sinyal
MREQ juga aktif dengan selang waktu yang lebih pendek dan berada di tengahtengah waktu
aktif dari sinyal RFSH. MREQ ini biasanya juga digunakan bersama sama dengan RFSH
untuk proses me-refresh memori. karena RFSH tidak dapat digunakan sendirian untuk
mengaktifkan proses refresh. Hal ini mengingat falling edge RFSH terjadi pada saat alamat
yang berada di address bus belum stabil.
Pewaktuan Memor Read/Write
Gambar 7-4 di halaman berikut ini menunjukkan suatu diagram pewaktuan dari read/Write
cycle pada CPU Z80.
Pada Read/Write cycle juga terjadi proses membaca data seperti pada siklus opcode fetch.
tetapi data read cycle di sini adalah hanya proses membaca data dari alamat lertentu tanpa
mendekode. Sedangkan pada siklus 0P code fetch data yang sudah dibaca didekode dan
diartikan. Read/Write cycle ini pada umumnya terdiri dari 3 buah siklus T. terkecuali bila
WAIT diaktifkan.
Pada prinsipnya, proses baca data dari memori ini sama dengan proses baca data Pada
OP code fetch cycle. Alamat memori yang akan dituju diletakkan di address bus begitu T1
mengalami sisi pulsa naik dari 0 ke 1 (rising edge). MRBQ dan RD bersama-sama aktif begitu
T1 menuju ke 0 pada 'sisi falling edge. Wait state dapat ditambahkan dengan mengaktifkan
WAIT pada falling edge pulsa clock berikutnya, dalam hal ini adalah T2. Data yang akan
dibaca berada di data bus pada saat siklus berada di T3. Data ini diambil oleh CPU
berdasarkan falling edge dari T3. Berdasarkan falling edge ini pula sesaat kemudian MREQ
dan RD menjadi inactive kembali.
Write cycle memiliki T1, T2 dan T3 juga. Alamat memori yang akan ditulis mulai
diletakkan di address bus begitu rising edge T1 terjadi. Berdasarkan falling edge T1 MREQ
menjadi aktif. Begitu MREQ aktif data bus akan diisi data-oleh CPU. Data ini adalah data
yang akan dituliskan oleh CPU ke memori. Wait state dapat ditambahkan dengan
mengaktifkan WAIT pada saat rising edge T2 telah stabil. Sinyal WR aktif begitu falling edge
T2 terjadi. Pada saat inilah rangkaian memori mengambil data yang telah ada di data bus.
Berikutnya, berdasarkan falling edge T3 sinyal WR dan MREQ menjadi inactive kembali.
PROSEDUR
1. Siapkan papan rangkaian FZ80CPU.
2. Siapkan Catu Daya +5V untuk FZ80CPU ini dengan merangkai modul dc regulator +5V ke
DC Power Supply yang diatur pada tegangan +10V.
3. Periksalah kelengkapan komponen yang terpasang di FZ8OCPU. terutama pada soket IC1
harus terpasang RAM 62256. sedang soket IC2 kosong
4. Aturlah posisi Jumper-jumper JP1 sampai dengan JP5 sebagai berikut pada kedudukan 2-1
-2-2-2.
5. Nyalakan sumber tegangan. Sekarang Anda diminta untuk memasukkan suatu program ke
dalam memory RAM 62256 dengan cara seperti pada percobaan I. Dalam percobaan II ini
Anda dianggap telan paham tentang cara-cara memasukkan program dengan memantaatkan
fasilitas DMA. Masukkan kode mesin program berikut ini ke dalam RAM 62256, mulai
alamat 0000H.
0000 3E 5B LOOP: LD A,5BH
0002 C3 00 00 JP LOOP
Gambar 7-5. Program Percobaan Observasi Bus CPU Z80

6. Bila selesai aturlah kedudukan switch AUTOSTEP pada posisi AUTO, switch STOP-RUN
pada posisi RUN
7. Tekanlah RESET agar CPU Z80 memulai proses kerjanya dari alamat 0000H

8. Sekarang perhatikan Gambar 7-6. Dengan menggunakan fasilitas Dual Traces Oscilloscope
yang tersedia. amati dan gambarlah berturut-turut sinyal yang tampak pada jalur-jalur : D7 sd
D0. A0, A1, A2. CLOCK, RD, M1dan MREQ. Caranya adalah, amati pertama kali D7 dan D6
masing-masing dengan Probe Channel A dan Probe Channel B. Bila sudah digambar, gantilah
D7 dengan D5 dengan memindah Probe A ke D5 dan gambarlah sinyalnya dengan
memperhatikan timing yang sama seperti kedudukan gambar sinyal D7 terhadap D6 tadi.
Berikutnya. gantiiah D6 dengn D4 dengan memindah posisi Probe B ke D4. Demikian
seterusnya secara bersilang. dengan tetap mempertahankan pengamatan pada timing yang
sama setiap mengganti posisi satu probe. sehingga didapat semua gambar gelombang yang
terjadi dari D7 sampai dengan MREQ dengan timing yang sama. Untuk memudahkan
penggambaran. gunakanlah kertas 'milimeter'.

9. Berdasarkan gambar-gambar yang telah Saudara peroleh. analisalah hubungan pewaktuan


tiap sinyal tersebut, tentukan di mana letak setiap instruksi program yang tampak pada
gambar sinyal. Jelaskan hubungan 'fetch data‘. 'decode' data dan ‘run‘ program tersebut di
Laporan Saudara sesuai dengan pengamatan dan analisa.

PERTANYAAN & TUGAS :

1. Data Bus mempunyai sifat operasi bidirectional yaitu sifat data mengalir ke CPU atau sifat
data mengalir keluar CPU. Kapankah data bus berlaku sebagai output dan kapan pula berlaku
sebagai input ?
2. Bila frekuensi Clock CPU adalah 4MHz. Berapakah waktu yang dibutuhkan untuk eksekusi
(Execution Time) untuk satu kali looping pada program percobaan diatas ?
3. Dari hasil-hasil percobaan yang telah Saudara lakukan, terutama berpijak pada gambar
pewaktuan yang telah diperoleh, ambillah suatu kesimpulan. Terangkan pada posisi timing
mana sajakah tiap byte dari instruksi yang dieksekusi oleh CPU Z80 tersebut.
Data percobaan
Analisa data
Pada praktikum mikroprosesor kali ini praktikan akan melakukan percobaan Analisis
Proses Kerja Sistem Mikroprosesor (1): Observasi Bus CPU TMPZ84C00. Percobaan kali
ini bertujuan untuk memahami prinsip hubungan kerja antara address bus, data bus dan
control bus CPU Z80 dan memahami prinsip kerja CPU Z80 dalam mengambil dan
membaca data, menerjemahkan dan menjalankan instruksi yang dimaksud. (fetch –
decode – run). Pada data percobaan dapat terlihat bahwa siklus terjadi pada 3Eh sampai
5Bh. Siklus Op code fetch terjadi pada saat M1 aktif yaitu pada saat -600ns hingga
+600ns dan bernilai 5T pada siklus M1 address bus berisi data yang tersimpan di Program
Counter (PC). Setengah clock cycle berikutnya sinyal MREQ menjadi aktif. Pada saat ini
alamat yang terhubung ke memori telah menjadi stabil sehingga falling edge dari sinyal
MREQ ini dapat dimanfaatkan langsung sebagai kontrol chip enable pada memori.
Kontrol RD juga menjadi aktif yang menunjukkan bahwa pada saat itu data bus sedang
digunakan untuk proses pembacaan data memori.
Read/Write cycle ini pada umumnya terdiri dari 3 buah siklus T. Pada Read/Write
cycle juga terjadi proses membaca data tetapi data dari alamat tertentu tanpa mendekode.
Alamat memori yang akan dituju diletakkan di address bus begitu T1 mengalami sisi pulsa
naik dari 0 ke 1. MRBQ dan RD bersama-sama aktif begitu T1 menuju ke 0. Data yang
akan dibaca berada di data bus pada saat siklus berada di T3. Data ini diambil oleh CPU
berdasarkan falling edge dari T3. Berdasarkan falling edge ini pula sesaat kemudian
MREQ dan RD menjadi inactive kembali.
Write cycle memiliki T1, T2 dan T3 juga. Alamat memori yang akan ditulis mulai
diletakkan di address bus begitu rising edge T1 terjadi. Berdasarkan falling edge T1
MREQ menjadi aktif. Begitu MREQ aktif data bus akan diisi data-oleh CPU. Data ini
adalah data yang akan dituliskan oleh CPU ke memori.

Kesimpulan
Dari percobaan Analisis Proses Kerja Sistem Mikroprosesor (1): Observasi Bus CPU
TMPZ84C00 yang telah dilakukan dapat diambil kesimpulan bahwa

 Terdapat tiga model pewaktuan dasar (timing) dalam operasi CPU Z80 yaitu
Op-Code Fetch, Memory Read dan Memory Write
 Siklus Op code fetch membutuhkan waktu 3 sampai dengan 5 T pada siklus
M1 address bus tersimpan di Program Counter (PC). Setengah clock cycle
berikutnya sinyal MREQ menjadi aktif dan RD juga aktif.
 Read/Write cycle ini pada umumnya terdiri dari 3 buah siklus T. Pada
Read/Write cycle juga terjadi proses membaca data tetapi data dari alamat
tertentu tanpa mendekode.

Anda mungkin juga menyukai