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 3E 0F
Instruksi 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 bentukbentuk 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
0002
C3
00
LOOP: 00
LD
A,5BH
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.