Matakuliah : H0162/ Mikroprosesor Tahun : 2006 Versi : 1/0 Pertemuan 09 Motorola 680x0
Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu: Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu: menerangkan arsitektur mikroprosesor keluarga Motorola 680x0 (C2)
Instruction and Data Cache Outline Materi Register Set Format Data Addressing Mode Instruction Set Memory Management Instruction and Data Cache
2nd Generation (32-bit) Motorola 68000 Major architectural step in microprocessors: First 32-bit architecture initial 16-bit implementation First flat 32-bit address Support for paging General-purpose register architecture Loosely based on PDP-11 minicomputer First implementation in 1979 68,000 transistors < 1 MIPS (Million Instructions Per Second) Used in Apple Mac Sun , Silicon Graphics, & Apollo workstations
Motorola 680x0 Family Keluaran Motorola family M68000 adalah salah satu dari keluarga mikroprosesor yang paling banyak digunakan di dalam komputer Apple seri Machintosh dan SUN workstation. Pada tahun 1987 (2 tahun sebelum Intel menerapkan Dual Cache system) Motorola MC68030 adalah processor pertama-tama memiliki dual cache, pada mulanya masing-masing sebesar 256 Byte untuk code dan data.
Motorola 680x0 Family Pada tahun 1989, ukuran dual cache nya diperbesar menjadi 4 KB pada keluarga MC68040. Di keluarga ini, Motorola juga melakukan terobosan dengan menggabungkan FPU (Floating Point Unit) nya didalam chip yang sama CPU nya. Pada tahun 1993, ditingkatkan menjadi 8 KB pada keluarga MC68060. Keluarga chip ini merupakan two-issue superscalar
68000
Motorola 68000 Die Photo 70.000 cell transistor 1979 Motorola announce a 16-bit 68000. Indisputably, the best microcontroller on the market at the time. It would be used in the Apple Macintosh launched in 1984.
Arsitektur File Register dari M68000 dibagi menjadi dua bagian utama: Register Set Arsitektur File Register dari M68000 dibagi menjadi dua bagian utama: User Programming Model Supervisor Programming Model Arsitektur mikroprosesor M68000 beroperasi pada salah satu dari mode di atas. Mode Supervisor memiliki hak privilege yang lebih tinggi, digunakan secara eksklusif oleh System Programmer untuk menerapkan fungsi-fungsi sistem operasi. Mode user ditujukan untuk program program aplikasi reguler. Program yang berjalan pada mode supervisor dapat mengakses semua register, tidak sama halnya dengan program yang berjalan pada mode User.
User Programming Model
Supervisor Programming Model
Format Data
Addressing Mode pada M68000 dapat dibagi atas 4 katagori, yaitu: Data: merefer ke operand yang berupa data. Memory: merefer ke operand yang berupa alamat memory. Alterable: merefer ke operand yang dapat diubah (writeable, seperti variable) Control: merefer ke operand yang berupa memory tanpa menyebut ukurannya
Floating Point Arithmatic Logical Shift and Rotate Bit Manipulation Instruction Set Data movement Integer Arithmatic Floating Point Arithmatic Logical Shift and Rotate Bit Manipulation Bit-field Manipulation
Multiprocessor Communications Example: Instruction Set BCD Arithmatic Program Control System Control Memory Management Cache Maintenance Multiprocessor Communications Example: MOVE.B D0,D1 ; artinya memindahkan secara byte dari register D0 ke D1 tanpa merubah upper-24-bit dari kedua register. (Ingat bahwa setiap register tersebut adalah sebesar 32 bit)
Memory Management Fitur dari arsitektur M68000 yang unik adalah mulai dari MC68040 memiliki on-chip dual MMU, satu untuk code, satu lagi untuk data. Ini akan membuat akses paralel terhadap data dan instruksi oleh CPU sehingga meningkatkan kinerja pipeline secara keseluruhan. MC68060 memiliki 2-issues superscalar. masing-masing MMU berisi Address Translation Cache (ATC) - yang disebut juga TLB (Translation Lookaside Buffer) pada sistem lain. Fungsi ATC atau TLB adalah tempat menyimpan beberapa alamat terakhir hasil translasi dari virtual address ke physical address. Jika pasangan translasi itu tidak di dalam ATC, maka processor akan mencari informasi translasi di Translation Table yang berada di memory. Setiap ATC memiliki 64 entri dan menggunakan pemetaan 4-way set-associative (Note: bacaan tambahan mengenai organisasi set-associative baca CacheMemoryOrganization.pdf ).
Memory Management Pada generasi M68000 awal, kita dapat memilih 8 ukuran page size pada MMU coprocessor, yaitu 256 byte, 512 byte, 1, 2, 4, 8, 16 atau 32 KB. Sedangkan page size pada microprocessor nya dapat berukuran 4 atau 8 KB. Semua memory M68000 adalah byte -addressable, disimpan secara big-endian. Alamat N dari sebuah data longword berkoresponden dengan alamat dari MSB-nya. Alamat LSB-nya adalah N+3. Pelurusan data sepanjang batasan word tidak dibutuhkan, walau demikian, transfer data yang paling efisien terjadi ketika data diluruskan pada batasan yang sama dengan batasan ukuran dari operand-nya.
Address Translation Cache Ketika ATC tidak menemukan alamat (terjadi miss), maka Mekanisme Translation Table harus dijalankan. Struktur Translation Table secara umum berupa struktur tree (pohon) 3-tingkat, dapat dilihat pada gambar di atas. Pointer table pada bagian upper level (yaitu Level A dan B) berisi alamat dasar (base address) dari table pada tingkat selanjutnya (level A menunjuk kepada table di level B dan pada Level B menunjuk ke Level C, seperti terlihat pada gambar). sedangkan page table pada Level C akan berisi satu dari 2 kemungkinan:
Address Translation Cache Physical address untuk translation, atau sebuah pointer ke alamat memory yang berisi alamat Hanya sebagian dari isi Translation Table yang diperlukan untuk berada di memory pada suatu waktu, khususnya pada bagian table yang mentranslasikan logical address dari prosess yang sedang berjalan di microprocessor. Setiap root pointer: SRP (Supervisor Root Pointer) atau URP (User Root Pointer), berisi alamat dasar pada Tabel Level A, yang ditentukan berdasarkan previledge eksekusi-nya, apakah mode supervisor atau mode user.
Instruction and Data Cache Instruksi dan Data cache adalah bagian dari MMU masing -masing. informasi status untuk instruksi cache terdiri dari bit tunggal yang valid untuk kesluruhan baris. Ukuran tiap cache adalah 8 kbytes(total 16 kbytes) Motorola menggunakan pengalamatan physical pada kedua cache. Maka dari itu sewaktu proses switch terjadi cache tak perlu di lalui, sehinggga waktu yang berharga dapat dihemat.