MODUL KE
6
Sistem Mikroprosesor (3 sks)
MATERI KULIAH :Strategi perancangan hardware sistem mikroprosesor menggunakan 2 (dua) metode secara bersamaan yaitu metode fully decoded addressing dan non fully (partially)
decoded addressing. Pengantar arsitektur mikroprosesor, mengenai bagian utama
mikroprosesor : ALU, Accumulator, General Purpose Register, Address register
(Program Counter, Index Register, Stack Pointer), Control Unit, dan Status Register (Condition Code Register).
POKOK BAHASAN :
Strategi Perancangan
Hardware
menggunakan 2 Metode Bersamaan
dan Pengantar
Arsitektur Mikroprosesor
Oleh Ir. INDRAGUNG PRIYAMBODO, MT.
6.1 Strategi Perancangan Hardware Sistem Mikroprosesor
Menggunakan Metode Fully dan Non Fully (Partially)
Decoded Addressing Secara Bersamaan
Pada materi sebelumnya telah dijelaskan masing-masing metode untuk desain
hardware sistem mikroprosesor yaitu menggunakan metode Fully Decoded
Addressing dan metode metode Non Fully Decoded Addressing atau metode Partially Decoded Addressing.
Jika diminta untuk mendesain hardware sistem mikroprosesor langsung dengan menggunakan kedua metode tersebut secara bersamaan atau bergantian, maka CARA atau STRATEGI TERMUDAH untuk menyelesaikan persoalan itu dengan tahap seperti berikut ini.
1. Tahap pertama, desainlah terlebih dahulu memory map dan sekaligus tabel saluran alamat dengan menggunakan metode Non Fully Decoded Addressing.
2. Tahap kedua, hasil dari desain memory map dan tabel saluran alamat menggunakan metode Non Fully Decoded Addressing tersebut LANGSUNG DIPAKAI untuk sebagai hasil desain menggunakan metode Fully Decoded Addressing, dengan cara seluruh saluran alamatnya dipakai.
3. Tahap ketiga, terserah masing-masing, apakah akan mendesain rangkaian
address decoder untuk metode Non Fully Decoded Addressing terlebih
dahulu ataukah mendesain rangkaian address decoder untuk metode Fully Decoded Addressing terlebih dahulu. Baru kemudian mendesain digram blok sistem mikroprosesornya untuk masing-masing metode tersebut.
Untuk lebih jelasnya, langsung diambil dari SOLUSI KASUS 5.1.2
berikut ini.
Terdapat beberapa komponen berikut ini untuk didesain/dirancang/dirangkai menjadi sistem mikroprosesor dengan menggunakan metode fully decoded addressing dan metode non fully decoded addressing, yaitu :
Sebuah mikroprosesor 32 bit dengan memory space sebesar ½ Mega word atau 512 kilo word.
Dua RAM (sebut saja RAM1 dan RAM2) yang masing-masing 64 kByte dengan masing-masing mempunyai satu saluran chip select active low dan satu saluran
chip select active high.
Sebuah EPROM 8 kByte dengan saluran CS active low
Sebuah ROM 32 kByte dengan saluran CS active high
Hasil Desain memory map dan tabel saluran alamat sekaligus
pada solusi kasus 5.1.2 seperti berikut ini.
Memory Map
Tabel Saluran Alamat
A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
RAM1
00000 H 03FFF H 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1RAM2
10000 H 13FFF H 0 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1ROM
20000 H 21FFF H 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 EPROM 30000 H 307FF H 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1PIA
40000 H 400FF H 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1NON FULLY
FULLY
Dari sini barulah didesain rangkaian address decoder dan blok diagram sistem mikroprosesornya untuk masing-masing metode tersebut.
6.2 Pengantar Arsitektur Mikroprosesor
(Bagian-Bagian Utama Mikroprosesor)
6.2.1 Pendahuluan
Sebelum menjelaskan tentang bagian-bagian mikroprosesor, berikut ini akan diberikan beberapa hal penting yang terkait langsung maupun tidak langsung dengan “arsitektur mikroprosesor”, tetapi merupakan bagian dari “arsitektur sistem mikroprosesor”.
Memori
Dalam memori, informasi disimpan dalam bentuk biner (byte, word) dan diatur secara sekuensial/berurutan, serta masing-masing informasi tersebut mempunyai alamat (address) sendiri.
Secara umum terdapat 2 jenis memori, yaitu
memori yang dapat dapat ditulis/diisi/dihapus dan dibaca atau sering disebut sebagai RAM (Random Access Memory);
memori yang hanya dapat dibaca atau sering disebut ROM (Read Only
Memory).
Di pasaran terdapat PROM (Programmable ROM = ROM yang dapat diprogram), EPROM (Erasable Programmable ROM = ROM yang dapat diprogram dan dihapus), EEPROM (Electrical Erasable Programmable ROM = ROM yang dapat diprogram dan dihapus secara elektrik), dan sejenisnya.
Jenis-jenis ROM tersebut tidak kemudian seolah-olah mempunyai pengertian bahwa “istilah memori yang hanya dapat dibaca tersebut menjadi gugur”. Karena pengertian “hanya dapat dibaca” tersebut, memang harus didesain agar pada sistem mikroprosesornya memori tersebut benar-benar hanya dapat dibaca. Tetapi seringkali pendesain sistem mikroprosesor masih berusaha untuk membuat sebagian ROM tersebut juga dapat diisi/ditulisi/diprogram/dihapus.
Hirarki Memori
Hirarki memori secara umum dapat digambarkan dalam bentuk piramida berikut ini
Register sering dinamakan sebagai memori satu sel, karena pada umumnya sebuah register menyimpan sebuah informasi.
Register terdapat dalam mikroprosesor, oleh karena itu kecepatannya sama dengan kecepatan mikroprosesor. Sedangkan RAM dan ROM, pada umumnya berbentuk IC. Walaupun mikroprosesor juga berbentuk IC, tetapi kecepatannya cenderung lebih tinggi dibandingkan IC lainnya, karena teknologi pembuatannya biasanya secara khususmemperhatikan unsur tersebut.
6.2.2 Bagian – Bagian Utama Mikroprosesor
Pada umumnya mikroprosesor terdiri dari bagian-bagian seperti berikut ini. ALU (Arithmetic Logic Unit)
Accumulator
General Purpose Register (Register Serbaguna) Address Register (Register Alamat) :
Program Counter
Index Register
Re-gister Memori Utama (RAM, ROM)
Memori Sekunder/Massal jenis Disk (Random)
Memori Sekunder/Massal jenis Tape (sekuensial)
K
a
p
a
s
it
a
s
n
y
a
S
e
m
a
k
in
B
e
s
a
r
K
e
c
e
p
a
ta
n
n
y
a
S
e
m
a
k
in
T
in
g
g
i
Stack Pointer Control Unit (CU) :
Instruction Register
Instruction Decoder
Timing and Control
Status Register (Condition Code Register)
Catatan : Bahwa yang digaris bawah merupakan REGISTER !
Bagian-bagian mikroprosesor dan susunan dalam (arsitektur) mikroprosesor bervariasi antara mikroprosesor yang satu dengan mikroprosesor lainnya.
6.2.2.1 ALU (Aritmetic Logic Unit)
ALU merupakan unit untuk melaksanakan operasi-operasi aritmatika dan logika, seperti berikut ini.
penjumlahan (ADD_ition);
pengurangan (SUB_traction);
AND, OR, NOT, EXOR;
INC_rement (penambahan dengan 1);
DEC_rement (pengurangan dengan 1);
Shift (arithmetic shift, logical shift, left, right);
Rotate (left/right)
dan sebagainya seperti CLEAR.
6.2.2.2 ACCUMULATOR
Accumulator merupakan suatu register khusus (special purpose register) di
dalam mikroprosesor, untuk menyimpan sementara data yang akan diproses oleh ALU dan untuk menyimpan hasil operasi ALU agar proses dapat berlangsung lebih cepat.
6.2.2.3 GENERAL PURPOSE REGISTER
General purpose register (register serba guna) merupakan register di dalam
mikroprosesor yang bersifat serba guna (fungsi tidak didefinisikan secara khusus) untuk membantu ALU agar dapat melakukan operasi terhadap data dengan cepat.
Agar register (serbaguna, accumulator, dan register lainnya) dapat diakses/ dialamati langsung (directly addressable) maka alamat register harus masuk dalam instruksi (yang menggunakan register tersebut).
6.2.2.4 PROGRAM COUNTER (PC)
Program Counter (PC) merupakan register alamat yang berisi informasi
alamat berikut yang instruksinya akan dilaksanakan oleh mikroprosesor (address of next instruction).
Pada umumnya isi PC selalu bertambah 1 (satu), karena pelaksanaan program yang berurutan *sequential), kecuali dalam pelaksanaan instruksi branch atau jump.
Program Counter mutlak ada dalam suatu mikroprosesor.
6.2.2.5 INDEX REGISTER (IX, IR)
Pengalamat pada mikroprosesor terdapat beberapa metode, dua diantaranya adalah ;
Pengalamatan absolut (absolute addressing) : Alamat tujuan = alamat yang ditunjuk
Pengalamatan berindeks (indexed addressing) :
Alamat tujuan = isi index register + offset (displacement)
Isi index register digunakan sebagai referensi yang dapat diubah-ubah. Pengalamatan berindeks menggunakan index register
6.2.2.6 STACK POINTER
Stack Pointer (SP) merupakan register alamat (terletak di dalam mikroprosesor) yang digunakan untuk menyimpan (sebuah) alamat berikut (Top of Stack = TOS) dari stack RAM yang dapat diisi.
Stack RAM
merupakan suatu memori baca-tulis (RAM) yang pada umumnya terletak di luar mikroprosesor.
Digunakan untuk menyimpan data/informasi penting (misalnya : isi accumulator, index register, status register) dalam operasi-operasi yang menggunakan stack pointer, misalnya JSR = Jump Subroutine, RTS =
Return from Subroutine, dan sebagainya.
Bersifat LIFO (Last In First Out) atau FILO (Fist In Last Out).
Bila informasi yang disimpan dikehendaki tetap ada meskipun power
off, maka memerlukan VCC stand-by untuk stack RAM.
KEUNTUNGAN pemakaian Stack Pointer :
Dapat menyimpan data ke Stack RAM tanpa mengganggu data yang sebelumya telah ada
Transfer data ke/dari Stack RAM dapat berlangsung cepat dengan instruksi yang relatif singkat, karena informasi alamat telah ada dalam Stack Pointer.
Sifat LIFO/FILO Stack RAM dapat digunakan untuk menyimpan
return address setelah mikroprosesor melaksanakan program
subrutin atau program interupsi. KERUGIAN pemakaian Stack Pointer :
Sulit untuk mencari kesalahan dan melakukan koreksi program Mudah melakukan kesalahan jadi perlu hati-hati dalam
6.2.2.7 CONTROL UNIT
Control Unit fungsinya secara umum adalah untuk melakukan sinkronisasi kerja mikroprosesor secara keseluruhan.
Controk Unit pada umumnya terdiri atas : Instruction Register
Instruction Decoder : - bersifat hardwared - dengan mikroprogram Timing and control
6.2.2.8 STATUS REGISTER (Condition Code Register)
Bit-bit (keadaan logika) di dalam status register digunakan untuk menunjukkan status (keadaan/kondisi, tanda, flag) mengenai operasi yang sedang atau baru saja dilakukan oleh mikroprosesor.
Contoh
Pada mikroprosesor Intel 8080 (atau 8080A)
b
7b
6b
5b
4b
3b
2b
1b
0S
Z
0
Ac
0
P
1
C
Selalu RESET (0)
Selalu SET (1)MSB
LSB
S = Sign
Z = Zero
Bernilai 1 bila Accumulator/Register bernilai/berisi NOL
Bernilai 0 bila Accumulator/Register bernilai/berisi TIDAK NOL
Ac = Auxiliary carry bit
Bernilai 1 bila setelah operasi ADA carry di LSB
Bernilai 0 bila setelah operasi TIDAK ADA carry di LSB
C = Carry
Bernilai 1 bila setelah operasi ADA carry di MSB
Bernilai 0 bila setelah operasi TIDAK ADA carry di MSB
P = Parity
Bernilai 1 bila setelah operasi jumlah bit 1 = genap Bernilai 0 bila setelah operasi jumlah bit 1 = ganjil
DAFTAR PUSTAKA
[1] Lance A. Leventhal, Introduction to Microprocessors : Software, Hardware,
Programming, Prentice Hall,1978.
[2] Pasahow, Edward, J. , Microprocessor and Microcomputer Interfacing for
Electronics Technicians, McGraw-Hill, New York, 1981.
[3] Chris H. Pappas dan Willian H. Murray III, 80386 Mikroprocessor Handbook, Osborne McGraw-Hill, 1988
[4] Avtar Singh dan Walter A. Triebel, The 8088 Microprocessor : Programmnig,
Interfacing, Software, Hardware, and Applications, Prentice Hall, International
Editions, 1989
[5] Charles M.Gilmore , Microprocessors:Principles and Applications, Glencoe/McGraw-Hill, 2nd International Ed. , 1995
[6] Rodnay Azks (alih bahasa : S.H. Nasution), From Chips to Systems : An
Introduction to Microprocessors ( Dari Chip ke Sistem : Pengantar Mikroprosesor),
Sybec Inc., 1981 (Penerbit Erlangga, 1986).
[7] Harry Garland (alih bahasa : M. Barmawi dan M.O. Tjia), Introduction to
Microprocessor System Design ( Pengantar Desain Sistem Mikroprosesor),
McGraw-Hill Inc., 1979 (Penerbit Erlangga, 1984).
[8] Barry B. Brey , Microprocessors and Peripherals : Hardware,Software,Interfacing,