1. KONSEP DASAR MEMORI
Memori merupakan bagian dari komputer
yang berfungsi sebagai tempat penyimpanan informasi yang harus diatur dan
dijaga sebaik-baiknya. Sebagian besar komputer memiliki hirarki memori yang
terdiri atas tiga level, yaitu:
·
Register di CPU, berada di level teratas. Informasi yang berada di
register dapat diakses dalam satu clock cycle CPU.
·
Primary Memory (executable memory), berada di level
tengah. Contohnya, RAM. Primary Memory diukur dengan satu byte dalam
satu waktu, secara relatif dapat diakses dengan cepat, dan bersifat volatile
(informasi bisa hilang ketika komputer dimatikan). CPU mengakses memori ini
dengan instruksi single load dan store dalam beberapa clock
cycle.
·
Secondary Memory, berada di level bawah. Contohnya,
disk atau tape. Secondary Memory diukur sebagai kumpulan dari bytes (block
of bytes), waktu aksesnya lambat, dan bersifat non-volatile
(informasi tetap tersimpan ketika komputer dimatikan). Memori ini diterapkan di
storage device, jadi akses meliputi aksi oleh driver dan physical
device.
Gambar
1.1. Gambar Hirarki Memori
Komputer
yang lebih canggih memiliki level yang lebih banyak pada sistem hirarki
memorinya, yaitu cache
memory dan bentuk lain dari secondary
memory seperti rotating
magnetic memory, optical memory, dan sequntially access memory. Akan tetapi, masing-masing
level ini hanya sebuah penyempurnaan salah satu dari tiga level dasar yang
telah dijelaskan sebelumnya.
Bagian dari sistem operasi yang mengatur hirarki memori disebut dengan memory manager. Di era multiprogramming ini, memory manager digunakan untuk mencegah satu proses dari penulisan dan pembacaan oleh proses lain yang dilokasikan di primary memory, mengatur swapping antara memori utama dan disk ketika memori utama terlalu kecil untuk memegang semua proses.
Bagian dari sistem operasi yang mengatur hirarki memori disebut dengan memory manager. Di era multiprogramming ini, memory manager digunakan untuk mencegah satu proses dari penulisan dan pembacaan oleh proses lain yang dilokasikan di primary memory, mengatur swapping antara memori utama dan disk ketika memori utama terlalu kecil untuk memegang semua proses.
2.
CARA
KERJA MEMORI
Awalnya terkesan sangat sulit untuk
memahami cara kerja memori komputer. Tapi, ingat saja, komputer itu hanyalah
sebuah kalkulator raksasa yang memiliki memori sebagai tempat sementara untuk
menyimpan hasil perhitungan. Tempat-tempat ini diberikan indeks nomor (alamat)
untukmemudahkan penggunaannya. Bayangkan saja, prosesor Intel x86 yang banyak
digunakan saat ini menggunakan 32-bit skema alamat. Itu berarti ada 2^32
(4,294,967,296) kemungkinan tempat yang dapat digunakan sebagai tempat
penyimpanan hasil perhitungan tersebut.
Gambar 1.2
Cara kera RAM
Gambar 2.2
Cara kerja memori
Berikut merupakan hal-hal yang
berkaitan dengan cara kerja memori:
1.
Pointer
Pointer merupakan satu tipe variabel
yang khusus, digunakan untuk menyimpan alamat lain dalam memori untuk
mereferensi informasi lain. Karena memori tidak dapat dipindahkan, informasi
ini harus dikopi. Akan tetapi akan sangat sulit secara perhitungan untuk
mengkopi satu informasi di dalam memori untuk digunakan di fungsi atau tempat
lain. Begitu juga dilihat dari sudut pandang memori. Karena untuk mengkopi
suatu data, maka memori akan membuat satu blok khusus untuk data tersebut, yang
tidak dapat digunakan untuk menyimpan data lain.
Pointer adalah salah satu solusinya.
Memori hanya perlu membuat satu variabel pointer yang diasosiasikan dengan satu
blok besar yang menyimpan informasi tersebut, lalu pointer tersebut dapat
dikopi ke semua fungsi atau tempat yang ingin mengakses blok informasi ini.
2.
Register
Prosesor memiliki satu jenis memori
khusus yang relatif kecil. Memori ini disebut Register, dan ada beberapa
register khusus yang digunakan untuk menjejaki hal-hal ketika program
dieksekusi. Salah satu yang patut disebut adalah EIP, Extended Instruction
Pointer. EIP merupakan pointer yang menyimpan alamat dari instruksi yang sedang
dieksekusi. Register lain yang digunakan sebagai pointer adalah EBP (Extended
Base Pointer) dan ESP (Extended Stack Pointer). EBP merupakan pointer yang
menyimpan alamat terakhir (teratas) dari satu segmen memori yang disebut stack,
sedangkan ESP merupakan pointer yang menyimpan alamat stack frame berikut yang
akan dieksekusi. Kita akan membahas kedua pointer ini lebih jauh lagi pada bagian
Segmentasi Memori sebentar lagi.
3.
Deklarasi Memori
Pada bahasa pemrograman tingkat tinggi
seperti Bahasa C, variabel dideklarasikan berdasarkan tipenya (seperti:
integer, character, float, dll) masing-masing. Hal ini dilakukan untuk
memberitahukan memori berapa besar ruang yang harus disiapkan untuk menyimpan
variabel tersebut. Misalnya, integer merupakan 4 byte data, yang berarti harus
ada 32 (4 byte x 8 bit/byte) bit ruang kosong di memori yang harus dialokasikan
untuk variabel ini. Contoh lainnya adalah tipe character, yang memerlukan 8 (1
byte x 8 bit/byte) bit ruang.Sebagai tambahan, variabel juga dapat
dideklarasikan dalam bentuk array (senarai). Array merupakan list (senarai)
dari N buah elemen spesifik data. Jadi, sebuah 10 character array hanya
merupakan 10 variabel character yang disusun berurutan dalam memori. Array juga
disebut sebagai buffer, dan character array juga disebut string. Mengkopi
buffer yang berukuran besar memerlukan waktu dan perhitungan yang lama. Karena
itu, pointer sering digunakan untuk menyimpan alamat memori yang menjadi awal
buffer. Berikut adalah contoh pendeklarasian variabel dalam bahasa pemrograman.
int
variabel_integer;
char
variabel_character;
char
character_array[10];
char
*buffer_pointer;
4.
Little Endian
Salah satu yang perlu diingat dalam
memori di prosesor x86 adalah urutan penyimpanan 4 byte data (seperti integer
dan pointer) di dalam memori. Urutan ini disebut Little Endian, yang berarti
data byte yang paling kecil disimpan terlebih dahulu.
Misal,
sebuah 4 byte data (digambarkan dengan data hexadecimal atau 16 bit),
0×12345678. Data “12″, “34″, “56″, dan “78″ masing-masing merupakan 1 byte data
(pada penulisan 16 bit data, 1 digit angka digambarkan dengan 4 bit). Pada saat
disimpan dalam bentuk Little Endian akan berbentuk seperti berikut: 0×78563412.
Segmen
Dalam Memory:
Memori program terbagi atas 5 segmen:
text, data, bss, heap, dan stack. Masing-masing segmen mempunyai tempat yang
khusus dalam memori untuk mencapai tujuan yang khusus.
a.
Segmen Text
Segmen text juga disebut segmen code.
Di segmen ini disimpan instruksi bahasa mesin hasil kompilasi dari bahasa
asembli. Eksekusi instruksi dalam segmen ini dilakukan secara non-linear. Pada
saat program dieksekusi, EIP diset ke instruksi pertama pada segmen text. Processor
kemudian mengikuti aturan loop seperti di bawah ini dalam mengeksekusi program:
“Baca instruksi di
alamat yang ditunjukkan oleh EIP (instruksi pertama pada awal eksekusi)
Tambahkan sejumlah
byte instruksi yang dibaca ke EIP (defaultnya adalah EIP adalah linear walaupun
dalam kenyataan tidak selalu demikian
Eksekusi instruksi yang dibaca pada
step 1
Kembali ke step 1
Kadang, instruksi yang dieksekusi
merupakan instruksi “jump” atau “call” yang mengubah EIP ke alamat memori yang
berbeda. Jadi jika EIP berubah pada step 3, processor tetap akan kembali ke
step 1 dan membaca apa pun instruksi yang ada di alamat baru tersebut.
Segmen ini tidak dapat ditulisi karena
hanya berisi kode-kode program. Hal ini mencegah orang mengubah kode program
selama program berjalan. Ketika segmen ini dicoba untuk ditulisi, maka program
akan memberikan peringatan kepada user dan program akan berhenti. Perlu dicatat
juga bahwa segmen memori ini mempunyai ukuran yang tetap.
b.
Segmen Data dan BSS
Segmen data dan bss digunakan untuk
menyimpan variabel program yang bersifat global atau statis. Segmen data diisi
dengan variabel global, string, dan konstanta lain yang sudah diinisialisasi
yang digunakan di keseluruhan program. Sedangkan segmen bss diisi dengan
variabel yang belum diinisialisasi. Walaupun segmen ini dapat ditulisi, pada
dasarnya ukurannya juga tidak berubah.
c.
Segmen Heap
Segmen heap digunakan untuk variabel
program lainnya. Satu hal yang perlu dicatat adalah ukuran segmen heap ini
dapat berubah sesuai dengan kebutuhan. Heap akan bertambah atau menyusut sesuai
dengan jumlah memori yang dipergunakan di dalam program yang sedang berjalan.
Pertumbuhan heap bergerak dari alamat memori yang kecil menuju yang besar.
d.
Segmen Stack
Sama seperti heap, stack juga mempunyai
ukuran memori yang berubah-ubah sesuai dengan jumlah ruang yang dipergunakan.
Stack dipergunakan untuk menyimpan konteks sementara pada saat pemanggilan
fungsi (function calls). Pada saat program memanggil fungsi lain, fungsi
tersebut akan diberikan satu set variabel yang diperlukan. Fungsi itu sendiri
berada di lokasi yang berbeda pada segmen text/code. Karena konteks dan nilai
EIP berubah pada saat fungsi dipanggil, stack digunakan untuk mengingat semua
variabel yang diserahkan kepada fungsi, dan juga ke mana EIP akan dikembalikan
setelah fungsi selesai dieksekusi.
Segmen stack pada memori memiliki
struktur FILO (First In Last Out), yang berarti data yang pertama kali
dimasukkan ke dalam memori ini akan menjadi data yang terakhir kali
dikeluarkan. Seperti dijelaskan sebelumnya, register ESP digunakan untuk
menjajaki ujung akhir (data yang terakhir masuk) dari alamat memori pada Stack.
Pada saat fungsi dipanggil, beberapa hal dimasukkan ke dalam stack bersama-sama
dalam suatu struktur yang dinamakan stack frame. EBP register dipergunakan
untuk membuat referensi terhadap Stack Frame yang sedang dipergunakan. Setiap
Stack Frame berisi parameter-parameter terhadap fungsi tersebut, variabel lokal
fungsi tersebut, serta dua pointer yang diperlukan untuk mengembalikan segala
sesuatunya seperti semula setelah fungsi selesai dijalankan. Kedua pointer ini
adalah Saved Frame Pointer (SFP) dan Return Address (RA). SFP berguna untuk
mengembalikan nilai EBP ke kondisi awal sebelum fungsi dijalankan. Sedangkan RA
digunakan untuk mengembalikan EIP ke instruksi berikutnya setelah fungsi
dijalankan.
Ada baiknya kita menggunakan 2 fungsi
berikut untuk menjelaskan cara kerja Stack:
void test_function (int a, int b, char
c)
char flag;
char buffer[10];
void main ()
test_function(1,2,’a');
Di permulaan program ini, fungsi
test_function yang memerlukan 3 parameter yang dideklarasikan sebagai integer
(a dan b) serta satu character (c). Kemudian, fungsi ini juga memiliki variabel
lokal yang dideklarasikan sebagai character (flag) dan satu larik character
(buffer). Pada saat program berjalan pertama kali, maka fungsi main akan
dieksekusi yang kemudian akan memanggil fungsi test_function.
Pada saat fungsi test_function
dipanggil, ada beberapa nilai yang dimasukkan ke dalam Stack untuk membuat
Stack Frame. Dalam Stack, data dimasukkan secara terbalik. Data 1,2, dan ‘a’
akan dimasukkan dengan posisi ‘a’, 2, 1. Parameter ini dinyatakan dengan
variabel c, b, dan a pada test_function.
Ketika instruksi “call” dari bahasa
assembly dieksekusi, konteks eksekusi program akan berpindah dari fungsi main
ke fungsi test_function, karena itu alamat si pemanggil (main) perlu dimasukkan
ke dalam stack. Alamat ini merupakan alamat berikutnya dari EIP, atau alamat
yang ditemukan pada step 3 dari eksekusi loop pada segmen text yang sudah
dijelaskan di atas. Setelah memasukkan alamat pemanggil (return address) ini,
maka dimasukkan nilai Saved Frame Pointer (SFP) yaitu nilai EBP pada saat ini.
Ini dilakukan untuk mengembalikan posisi stack ke kondisi sebelumnya setelah
eksekusi test_function selesai. Kemudian nilai EBP diperbaharui dengan nilai
Frame Pointer yang terbaru. Setelah itu, barulah variabel lokal pada fungsi
test_function dimasukkan ke dalam Stack dengan menggunakan nilai ESP (Extended
Stack Pointer) sebagai patokan.
Pada saat fungsi dipanggil, EIP akan
berpindah menunjukkan ke alamat permulaan dari instruksi dari fungsi tersebut
yang tersimpan di segmen Text. Memori pada Stackdigunakan untuk menyimpan variabel
lokal dan argumen atau parameter fungsi tersebut. Ketika program sudah selesai
dieksekusi, seluruh Frame Stack akan dikeluarkan dari Stack dan EIP diset
kepada alamat pemanggil (return address) agar program dapat melanjutkan
kerjanya. Jika dalam fungsi tersebut dipanggil fungsi lain, maka Frame Stack
yang baru akan dimasukkan ke dalam Stack dan begitu seterusnya. Dan begitu
fungsi ini selesai, maka Frame Stacknya dikeluarkan dari Stack dan
pengeksekusian dikembalikan ke fungsi sebelumnya. Inilah mengapa segmen dalam
memori ini diorganisasikan sebagai FILO (First In Last Out) struktur data.
3.
RANGKAIAN MEMORI
Memori adalah bagian dari komputer tempat
program – program dan data – data disimpan.
Memori
terbagi atas 2 jenis yakni:
1. RAM (Random Access Memory)
adalah rangkaian yang mempunyai sel pengingat.
2. ROM (Read Only
Memory) adalah rangkaian kombinasi tanpa adanya sel pengingat.
Pada
dasarnya RAM adalah register yang terdiri dari sekumpulan D flip-flop.
1. RAM selalu terdiri
dari sejumlah sel (flip-flop) yang sama. Masing-masing flip-flop dalam RAM
dikenal berdasarkan nomor alamat (address)-nya.
2. Flip-flop juga
harus dapat ditulis dengan data baru dan data yang disimpannya harus dapat
dibaca. Karena itu diperlukan sinyal pemilih alamat untuk menentukan sel yang
akan ditulis atau dibaca, dan sinyal kendali untuk menulis (sinyal tulis) dan sinyal kendali untuk membaca (sinyal baca).
3. Hanya sel terpilih
sajalah yang boleh diberikan sinyal baca atau tulis yang aktif.
4. Pulsa penabuh untuk
masing-masing flip-flop dapat diperoleh dari peng-AND-an sinyal tulis dan
pemilih alamat.
5. Operasi baca tidak
perlu dilakukan pada saat bersamaan dengan operasi tulis. Karena itu, data
masukan juga perlu dihalang (disabled) masuk ke flip-flop pada saat operasi
bukan operasi tulis. Ini dapat dilakukan dengan meng-AND-kan data masukan
dengan sinyal penabuh flip-flop.
6. Dalam operasi baca
juga, hanya keluaran sel terpilih sajalah yang boleh ditampilkan pada keluaran
RAM. Jadi keluaran masing-masing sel harus di-AND-kan dengan sinyal baca dan
sinyal pemilih alamatnya.
Bila data masukan dan keluaran untuk elemen
ke i kita sebut Di dan Qi, sinyal alamatnya kita sebut Ai, sinyal baca Ri dan
sinyal tulis Wi, maka untuk masing-masing flip-flop D dengan masukan D dan
keluaran Q, dapat ditulis persamaan logika sebagai berikut:
Penabuh : CP = Ai Wi
Data masukan : D = Di CP
Data Keluaran : Q = Ai Ri
Dalam kebanyakan
sistem digital, operasi baca-tulis atas memori dilakukan serentak untuk
sekumpulan bit (sel) yang dipandang sebagai satu kesatuan data yang disebut kata ("word").
Mengakses satu lokasi berarti membaca atau menulis satu kata. Ukuran
kata yang paling banyak digunakan adalah 4 dan 8 bit.
Sebagai contoh,
pada gambar berikut digambarkan rangkaian logika suatu RAM 2x2 bit, yaitu RAM 2
kata dengan panjang kata 2 bit.
Dalam rangkaian
terpadu RAM, pemilihan kata memori yang di akses dilakukan dengan menggunakan
dekoder yang sudah dipadukan dalam serpih yang sama dengan sel memorinya. Dalam
gambar berikut ditunjukkan rangkaian dalam suatu rangkaian terpadu RAM 4 kata
(word) dengan panjang kata (word length) 4 bit.
Dari gambar ini
dapat dilihat bahwa:
setiap data masukan
diumpankan kepada 4 sel (flip-flop)
setiap keluaran
dekoder alamat S0, S1, S2, S3 memilih 4 sel yang diperlakukan sebagai satu kata
4 bit (dipandang sebagai satu alamat).
Seluruh sel
dikendalikan oleh satu sinyal baca/tulis bersama.
Setiap bit data
keluaran diperoleh dari gerbang OR yang dicatu dari 4 sel.
Rangkaian
RAM
Walaupun data masukan
diumpankan kepada 4 sel, hanya sel yang dipilih(diaktifkan) oleh dekoder alamat
yang dipengaruhi oleh operasi baca/tulis.
Dalam RAM dengan kapasitas yang besar, pemilihan alamat tidak dari hanya satu
sisi seperti
dalam gambar di atas, tetapi dilakukan dari dua sisi, yaitu sisi baris dan sisi
kolom.
Sebagai contoh, RAM
tipe 2112 yang berkapasitas 1024 bit yang diorganisasikan sebagai 256 x 4 bit.
Ini berarti bahwa setiap lokasi mengandung 4 bit sebagai satu kata. Serpih RAM
ini mempunyai 8 bit alamat, 5 bit pemilih baris (untuk 32 baris) dan 3 bit
pemilih kolom (untuk 8 kolom).
Cotoh
lain, RAM tipe 2114 yang berkapasitas 4096 bit (1024 x 4 bit) mempunyai 10 bit
alamat yang terdiri atas 6 pemilih baris dan 4 pemilih kolom.
4.
CARA KERJA FLIP
FLOP
a.
Prinsip Kerja Flip Flop
Pada dasarnya,
Flip-flop bekerja berdasarkan prinsip kerja transistor sebagai saklar.
Jika Rangkaian tersebut diberi tegangan maka maka salah satu dari transistor akan berada dalam kondisi on. Kondisi ini akan tegantung pada kapasitor mana yang memiliki muatan lebih tinggi dibanding dengan kapasitor lain. Kapasitor yang memiliki muatan lebih tinggi akan melepaskan muatan listrik lebih dahulu sehingga transistor yang kaki basisnya terhubung dengan kapasitor tersebut akan berada dalam kondisi on sementara transistor tersebut on akan menyebabkan kapasitor yang terhubung dengan kaki kolektor akan terisi muatan, jika salah satu transistor dalam kondisi on maka transistor yang lain akan berada dalam konsi off hal ini akan berlaku terus menerus secara bergantian sehingga terjadilah pergiliran nyala lampu yang disebut lampu flip-flop.
Jika Rangkaian tersebut diberi tegangan maka maka salah satu dari transistor akan berada dalam kondisi on. Kondisi ini akan tegantung pada kapasitor mana yang memiliki muatan lebih tinggi dibanding dengan kapasitor lain. Kapasitor yang memiliki muatan lebih tinggi akan melepaskan muatan listrik lebih dahulu sehingga transistor yang kaki basisnya terhubung dengan kapasitor tersebut akan berada dalam kondisi on sementara transistor tersebut on akan menyebabkan kapasitor yang terhubung dengan kaki kolektor akan terisi muatan, jika salah satu transistor dalam kondisi on maka transistor yang lain akan berada dalam konsi off hal ini akan berlaku terus menerus secara bergantian sehingga terjadilah pergiliran nyala lampu yang disebut lampu flip-flop.
Dimulai dari Tr1,
Jika Tr1 dalam kondisi on (disebabkan C1 melepas muatan) maka
kolektor dan emitor akan terhubung sehingga Lampu D1 mendapat arus listrik sehingga
D1 menyala, pada saat yang sama C2 mengisi muatan, setelah penuh maka C2
melepas muatan sehingga Tr2 sekarang berada dalam kondisi on
sementara Tr1 berubah ke kondisi off. Pada saat Tr2 dalam kondisi
on akan menyebabkan kolektor dan emitor terhubung sehingga lampu
D2 mendapat arus listrik dan menyala, pada saat yang sama C1 mengisi muatan,
demikian seterusnya selama rangkaian flip-flop ini mendapat arus listrik, maka
peristiwa tersebut akan berulang. Sementara fungsi resistor dalam rangkaian ini
adalah untuk memberi bias tegangan pada kaki basis dari masing-masing
transistor.
b.
Cara kerja FLIP-FLOP
FLIP-FLOP merupakan suatu
rangkaian yang terdiri sdari dua elemen aktif (Transistor) yang kerjanya saling
bergantian. Fungsinya adalah sebagai berikut:1. Menyimpan bilangan biner
2. Mencacah pulsa
3. Menyerampakkan/men-sinkronkan rangkaian aritmatika
Misalnya : Beberapa full yang dapat dikendalikan
FLIP-FLOP bersifat bistable : dua kondisi yang stabil 0 atau 1. Kondisi ini akan tetap stabil tidak akan berubah jika tidak ada pemicu (input) yang masuk.
Jenis-jenis FLIP-FLOP
:
1. RS Flip-flop (Set-Reset
Flip-Flop)
FLIP-FLOP RS merupakan rangkaian dasar untuk menyusun berbagai jenis Flip-Flop yang lainnya FLIP-FLOP SR dapat disusun dari dua gerbang NAND atau dua gerbang NOR. Berikut ini karakteristik tabelnya :
S
R Q
Ǭ FLIP-FLOP RS merupakan rangkaian dasar untuk menyusun berbagai jenis Flip-Flop yang lainnya FLIP-FLOP SR dapat disusun dari dua gerbang NAND atau dua gerbang NOR. Berikut ini karakteristik tabelnya :
0 0 Race Race
0 1 1 0
1 0 0 1
1 1 Tetap tetap
Skema Pengkabelan :
2.
CLOCK
SR FLIP-FLOP
RS FLIP-FLOP dengan clock merupakan
pengembangan dari RS FLIP-FLOP dengan menambahkan dua gerbang NAND pada RS
FLIP-FLOP dari gerbang Nand dan gerbang AND pada RS FLIP-FLOP dari Gerbang NOR
yang bertujuan untuk memasukan pemicu yang disebut dengan sinyal Clock untuk
mengubah nilai yang ada.
Rangkaian
Clock RS FLIP-FLOP:
D
Flip-Flop memiliki 1 input yang disebut D (Data) serta 2 output yang disebut Q
dan Q. Pada dasarnya D lip-flop diperoleh dari SR flip-flop yang salah satu
inputnya didapat dengan mengkomplemenkan input yang lain yaitu menambahkan satu
gerbang NOT pada masukan.
Prinsip
kerja dari D Flip-flop adalah berapapun nilai yang diberikan pada input D akan
dikeluarkan dengan nilai yang sama pada output Q. D Flip-Flop diaplikasikan
pada rangkaian-rangkaian yang memerlukan penyimpanan data sementara sebelum
diprosesberikutnya. Salah satu contoh IC D Flip-flop adalah 74LS75, yang
mempunya input Asinkron.
Rangkaian D Flip-Flop
4. Master Slave D Flip-Flop
Master
Save D Flip-flop merupakan rangkaian flip-flop yang memiliki 2 latch D dan
sebuah inverter. Latch yang satu bernama Master dan yang kedua bernama Slave.
Master D hanya akan mendeskripsikan diktat yang outputnya hanya dapt diganti
selama ujung negatif jam.
Rangkaian
Master Slave D Flip-flop :
Kelemahan
dari flip-flop SR adalah munculnya output yang tidak dapat didefinisikan ketika
input S dan R tinggi untuk jenis NOR dan rendah untuk jenis AND. Untuk
menanggulangi keadaan tersebut, maka dikembangkan menjadi flip-flop JK yang
dibangun utnuk mengantisipasi keadaan terlarang pada SR flip-flop.
MASTER SLAVE JK FLIP FLOP
Sebuah
master slave JK Flip Flop di bentuk dari dua buah SR Flip Flop, dimana operasi
dari kedua SR Flip Flop tersebut dilakukan secara bergantian, dengan memberi
input Clock yang berlawanan pada ke dua SR Flip Flop tersebut. Prinsip dasar
dari Master Slave JK adalah: jika Clock diberi input “1”, gerbang AND 1 dan 2
akan aktif, SR Flip Flop ke 1 akan menerima data yang di masukkan melalui input
Jdan K, semantara gerbang AND 3 dan 4 tidak aktif, sehingga SR Flip Flop ke 2
tidak ada respon. Sebaliknya jika Clock dari input 0, gerbang 3 dan 4 aktif,
slave akan mengeluarkan output di Q dan Q’, sementara master tidak merespon
input, karena gerbang AND 1 dan 2 tidak aktif.
skema perkabelan :
Rangkaian JK Flip-Flop:skema perkabelan :
Skema
Pengkabelan :
Tidak ada komentar:
Posting Komentar