Senin, 22 Desember 2008
Rabu, 10 Desember 2008
Menjawab 4 Pertanyaan pada Modul Arkom
- Hub antara jumlah bit pada opcode dan jumlah intruksi yang ada.
Pada jumlah bit opcode instruksi harus mencakup opcode itu sendiri dengan implisit dan ekplisit operand. Isndtuksi di tentukan oleh sususan dan tata letak bit suatu instruksi.
Sedangkan pada instruksi di tentukan juga oleh panjang intruksi itu sendiri yang mempengaruhi dan di pengaruhi oleh, ukuran memori, oganisasi memori, struktur bus, kompleksitas cpu, dan kecepatan cpu itu sendiri.
Inti dalam alokasi bit adalah berada pada untung rugi antara jumlah opcode dengan kemampuan pengalamatannya. Opcode yang banyak akan menyebabkan bit yang lebih banyak pada fild opcode, yang secara otomatis akan mengurangi jumlah bit untuk pengalamatan. faktor yang mempengaruhi penggunaan bit adalah
- jumlah mode pengalamatan
- jumlah operand
jumlah operan akan di pengaruhi oleh kemampuan intruksi dan jumlah operand yang sedikit akan menjadikan iintruksi yang panjang dalam suatu fungi.
- regiter vs memori
membutuhkan jumlah bit yang berbeda pada pngunanannya dan akan membutuhkan bit yang kecil apabila dilakukan pengalamatan implisit pada mode pengalamtan langsung kememori
- jumlah set register
akan di pengaruhi oleh jumlah bit intruksi pada register
- jangkauan alamat
- granularitas alamat
- - hub antara jumlah bit pada alamat yang ada di set instruksi dengan jumlah alamat yang bisa di jangkau
panjang instruksi harus merupakan panjang karakter, yang umumnya 8 bit dan kelipatan panjang bilangan fixed point. Akan di abaikan apabila terjadi pemboran bit pada word ketika jumlah karakter di simpan di dalamnya - cara agar set intruksi jumlah dapat mnambah jangkauan pada memori
caranya ada beberpa yaitu menambah ukuran memori, pengorganisassian memori, struktur busnya, kopmpleksitas cpu serta kecepatan cpu itu sendiri. Pada intruksi yang komplek akan mempengaruhi perancangan perangkat keras proseor karena fungsi fungsi yang disajaikan cpu harus di implementasikan dalam perangkat keras. - Kapan dan saat apa mode pengalamatan di gunakan
Mmode pengalamatan akan di lakukan apbila mode pengalamatan tersebut di lakukan secara implisit atau eksplisit, yang kesemuanya memerlukan jumlah bit yang berbeda
Selasa, 02 Desember 2008
Register prosesor
Register prosesor, dalam arsitektur komputer, adalah sejumlah kecil memori komputer yang bekerja dengan kecepatan sangat tinggi yang digunakan untuk melakukan eksekusi terhadap program-program komputer dengan menyediakan akses yang cepat terhadap nilai-nilai yang umum digunakan. Umumnya nilai-nilai yang umum digunakan adalah nilai yang sedang dieksekusi dalam waktu tertentu.
Register prosesor berdiri pada tingkat tertinggi dalam hierarki memori: ini berarti bahwa kecepatannya adalah yang paling cepat; kapasitasnya adalah paling kecil; dan harga tiap bitnya adalah paling tinggi. Register juga digunakan sebagai cara yang paling cepat dalam sistem komputer untuk melakukan manipulasi data. Register umumnya diukur dengan satuan bit yang dapat ditampung olehnya, seperti "register 8-bit", "register 16-bit", "register 32-bit", atau "register 64-bit" dan lain-lain.
Istilah register saat ini dapat merujuk kepada kumpulan register yang dapat diindeks secara langsung untuk melakukan input/output terhadap sebuah instruksi yang didefinisikan oleh set instruksi. untuk istilah ini, digunakanlah kata "Register Arsitektur". Sebagai contoh set instruksi Intel x86 mendefinisikan sekumpulan delapan buah register dengan ukuran 32-bit, tapi CPU yang mengimplementasikan set instruksi x86 dapat mengandung lebih dari delapan register 32-bit.
Register terbagi menjadi beberapa kelas:
- Register data, yang digunakan untuk menyimpan angka-angka dalam bilangan bulat (integer).
- Register alamat, yang digunakan untuk menyimpan alamat-alamat memori dan juga untuk mengakses memori.
- Register general purpose, yang dapat digunakan untuk menyimpan angka dan alamat secara sekaligus.
- Register floating-point, yang digunakan untuk menyimpan angka-angka bilangan titik mengambang (floating-point).
- Register konstanta (constant register), yang digunakan untuk menyimpan angka-angka tetap yang hanya dapat dibaca (bersifat read-only), semacam phi, null, true, false dan lainnya.
- Register vektor, yang digunakan untuk menyimpan hasil pemrosesan vektor yang dilakukan oleh prosesor SIMD.
- Register special purpose yang dapat digunakan untuk menyimpan data internal prosesor, seperti halnya instruction pointer, stack pointer, dan status register.
- Register yang spesifik terhadap model mesin (machine-specific register), dalam beberapa arsitektur tertentu, digunakan untuk menyimpan data atau pengaturan yang berkaitan dengan prosesor itu sendiri. Karena arti dari setiap register langsung dimasukkan ke dalam desain prosesor tertentu saja, mungkin register jenis ini tidak menjadi standar antara generasi prosesor.
Tabel berikit berisi ukuran register dan padanan prosesornya
Register | Prosesor |
---|---|
4-bit | Intel 4004 |
8-bit | Intel 8080 |
16-bit | Intel 8086, Intel 8088, Intel 80286 |
32-bit | Intel 80386DX, Intel 80486, Intel Pentium, Intel Pentium Pro, Intel Pentium II, Intel Pentium III, Intel Pentium 4, Intel Celeron, Intel Xeon, AMD K5, AMD K6, AMD Athlon, AMD Athlon MP, AMD Athlon XP, AMD Athlon 4, AMD Duron, AMD Sempron |
64-bit | Intel Itanium, Intel Itanium 2, Intel Xeon, Intel Core, Intel Core 2, AMD Athlon 64, AMD Athlon X2, AMD Athlon FX, AMD Turion 64, AMD Turion X2, AMD Sempron |
Penghitung
Penghitung atau pencacah (bahasa Inggris: counter) adalah rangkaian sirkuit digital atau kadang-kadang berbentuk chip yang bisa dipakai untuk menghitung pulsa atau sinyal digital yang umumnya dihasilkan dari osilator. Penghitung ini bisa menghitung pulsa secara biner murni (binary counter) ataupun secara desimal-terkodekan-secara-biner (decimal counter).
Perbedaan
Dalam penghitung biner murni, angka 9 dinyatakan dalam bentuk bilangan biner 1001, dan berikutnya angka 10 dinyatakan dalam bentuk biner 1010. Sedangkan dalam penghitung desimal-terkodekan-secara-biner, angka 9 adalah biner 1001, tetapi angka 10 dinyatakan dalam bentuk: 0001 0000.
Angka desimal 100 dalam biner murni adalah 1100100, sedangkan dalam BCD adalah 0001 0000 0000 (3 buah digit desimal masing-masing dari kelompok 4 bit).
Untuk jelasnya, angka desimal 0 sampai 17 (yang kita kenal sehari-hari), jika dinyatakan dalam bilangan biner murni dan biner BCD ( dengan 5 bit), akan nampak seperti di bawah ini. Angka 0 sampai 9 mempunyai bentuk biner murni dan biner BCD yang sama, tetapi mulai dari angka 10 keduanya belainan.
Biner murni | Biner BCD |
---|---|
0 0000 | 0 0000 |
0 0001 | 0 0001 |
0 0010 | 0 0010 |
0 0011 | 0 0011 |
0 0100 | 0 0100 |
0 0101 | 0 0101 |
0 0110 | 0 0110 |
0 0111 | 0 0111 |
0 1000 | 0 1000 |
0 1001 | 0 1001 |
0 1010 | 1 0000 |
0 1011 | 1 0001 |
0 1100 | 1 0010 |
0 1101 | 1 0011 |
0 1110 | 1 0100 |
0 1111 | 1 0101 |
1 0000 | 1 0110 |
1 0001 | 1 0111 |
dst... |
Rangkaian penghitung ini kebanyakan dipakai dalam alat penghitung pulsa putaran mesin, atau putaran roda kendaraan. Berdasarkan jumlah pulsa yang terhitung per detik atau per menit, kita dapat menentukan kecepatan putaran mesin, kecepatan jalannya kendaraan, jarak yang ditempuh, dll. Misalnya, kalau jumlah putaran per detik dari roda kendaraan adalah 10, dan panjang busur lingkaran (keliling) roda ban itu = 1 meter, maka kendaraan itu berjalan sepanjang 10 meter per detik. Dengan kata lain jika dinyatakan dalam km/jam, kecepatan kendaraan itu menjadi 10*60*60 = 36.000 meter per jam, atau 36 km/jam.
Alat penghitung ini (baik yang biner maupun desimal BCD) merupakan bagian penting dalam sistem peralatan digital dan penggunaannya dalam bidang industri. Selain untuk menghitung pulsa putaran, penghitung/pencacah juga dipakai untuk menghitung pulsa waktu, alat yang penting dalam bidang telekomunikasi yaitu untuk mencatat lama pembicaraan. Penghitung bisa dipakai juga untuk mengontrol robot kapan harus aktif (pada jam berapa, atau setelah berapa menit lagi). Banyak contoh lain yang bisa disebutkan mengenai penggunaan penghitung ini dalam bidang kontrol dan elektronika digital.
Bagi masyarakat awam, penghitung bisa diartikan sebagai kalkulator yang dipakai untuk menghitung untuk keperluan sehari-hari. Ada dua macam kalkulator: penghitung sederhana, dan penghitung ilmiah (scientific calculator). Dalam penghitung sederhana, kita hanya bisa menghitung: + - * / % kwadrat, 1/x, dan operasi memori saja (cukup untuk keperluan penghitung rumah tangga sehari-hari). Sedangkan pada scientific calculator, kita bisa menghitung rumus matematika yang lebih rumit, seperti: pangkat, exp, ln, sin, cosin, tg, dll. Kebanyakan dari kita sekarang tidak perlu membeli kalkulator ini, karena dalam komputer PC kita (MS Windows dan MS Office) di dalamnya sudah disediakan kalculator.
Senin, 01 Desember 2008
Floating-point
Floating-point atau bilangan titik mengambang, adalah sebuah format bilangan yang dapat digunakan untuk merepresentasikan sebuah nilai yang sangat besar atau sangat kecil. Bilangan ini direpresentasikan menjadi dua bagian, yakni bagian mantisa dan bagian eksponen (E). Bagian mantisa menentukan digit dalam angka tersebut, sementara eksponen menentukan nilai berapa besar pangkat pada bagian mantisa tersebut (pada posisi titik desimal). Sebagai contoh, bilangan 314600000 dan bilangan 0.0000451 dapat direpresentasikan dalam bentuk bilangan floating point: 3146E5 dan 451E-7 (artinya 3146 * 10 pangkat 5, dan 451 * 10 pangkat -7).
Kebanyakan CPU atau mikroprosesor sederhana tidak mendukung secara langsung operasi terhadap bilangan floating-point ini, karena aslinya mikroprosesor ini hanya memiliki unit aritmetika dan logika, serta unit kontrol yang beroperasi berdasarkan pada bilangan bulat (integer) saja.
Perhitungan atau kalkulasi terhadap nilai floating point pada jenis mikroprosesor sederhana dapat dilakukan dengan menggunakan perangkat lunak, sehingga operasinya sangat lambat. Untuk itulah, sebuah prosesor tambahan dibutuhkan untuk melakukan operasi terhadap jenis bilangan ini, yang disebut dengan unit titik mengambang.
Dalam bahasa pemrograman, khususnya keluarga bahasa pemrograman C, bilangan titik mengambang direpresentasikan dengan tipe data float.
Integer
Dalam ilmu komputer, istilah "Integer" digunakan untuk merujuk kepada tipe data apapun yang merepresentasikan bilangan bulat, atau beberapa bagian dari bilangan bulat. Disebut juga sebagai Integral Data Type.
Nilai dan Representasinya
Nilai sebuah data dari sebuah tipe data integer adalah nilai bilangan bulat tersebut dalam matematika. Representasi data ini merupakan cara bagaimana nilainya disimpan di dalam memori komputer. Tipe data integral terbagi menjadi dua buah kategori, baik itu bertanda (signed) ataupun tidak bertanda (unsigned). Bilangan bulat bertanda mampu merepresentasikan nilai bilangan bulat negatif, sementara bilangan bulat tak bertanda hanya mampu merepresentasikan bilangan bulat positif.
Representasi integer positif di dalam komputer sebenarnya adalah untaian bit, dengan menggunakan sistem bilangan biner. Urutan dari bit-bit tersebut pun bervariasi, bisa berupa Little Endian ataupun Big Endian. Selain ukuran, lebar atau ketelitian (presisi) bilangan bulat juga bervariasi, tergantung jumlah bit yang direpresentasikanya. Bilangan bulat yang memiliki n bit dapat mengodekan 2n. Jika tipe bilangan bulat tersebut adalah bilangan bulat tak bertanda, maka jangkauannya adalah dari 0 hingga 2n-1.
Jenis-jenis nama Integer dalam bahasa pemrograman
Dalam bahasa pemrograman C
Tipe integer standar yang digunakan dalam bahasa C adalah tipe int. Ukuran dan jangkauan data dari tipe int seringkali tergantung dari kompilator dan komputer yang digunakan, tapi biasanya setara dengan short int atau long int.
Selain tipe int, ada beberapa tipe data lain yang dapat menampung bilangan bulat, di antaranya:
- char. Sebenarnya tipe data ini digunakan untuk menyimpan karakter dalam kode ASCII, tapi dapat juga digunakan untuk menyimpan integer dari 0 sampai 255
- short int, ukuran 2 byte, jangkauan -32,768 sampai 32,767
- long int, ukuran 4 byte, jangkauan -2,147,483,648 hingga 2,147,483,647
Tipe-tipe data di atas dapat menyimpan integer negatif dan positif. Untuk menyimpan bilangan positif dan nol saja, dapat digunakan kata kunci unsigned sebelum tipe data. Sebagai contoh:
- unsigned short int, ukuran 2 byte, jangkauan 0 sampai 65,535
- unsigned long int, ukuran 4 byte, jangkauan 0 sampai 4,294,967,295
Dalam bahasa pemrograman Pascal
Dalam bahasa Pascal, integer mampu menampung 16-bit Walaupun memiliki ukuran 2 byte (16 bit) tetapi karena integer adalah type data signed maka hanya mampu di-assign nilai antara -215 hingga 215-1 yaitu -32768 sampai 32767. Ini disebabkan karena 1 bit digunakan sebagai penanda positif/negatif. Meskipun memiliki istilah yang sama, tetapi tipe data integer pada bahasa pemrograman Visual Basic.NET dan Borland Delphi memiliki ukuran 4 byte atau 32 bit signed sehingga dapat di-assign nilai antara -2,147,483,648 hingga 2,147,483,647.
Selain tipe integer, bahasa Pascal juga memiliki beberapa tipe lain:
- byte, ukuran 1 byte, jangkauan dari 0 sampai 255
- smallint, ukuran 1 byte, jangkauan dari -128 sampai 127
- word, ukuran 2 byte, jangkauan dari 0 sampai 65,535
Pada kompilator Pascal yang lebih baru, juga dikenal tipe-tipe data yang lebih besar seperti:
- longint, ukuran 4 byte, jangkauan dari -2,147,483,648 sampai 2,147,483,647
- cardinal, ukuran 4 byte, jangkauan dari 0 sampai 4,294,967,295
dalam bahasa pemrograman Borland Delphi
- Borland Delphi : smallint
Dalam bahasa pemrograman Visual Basic .NET
- Visual Basic.NET : short
Dalam bahasa pemrograman C#
Dalam bahasa pemrograman C#, terdapat beberapa variasi dari tipe data integer, yakni:
byte
: bilangan bulat tak bertanda (unsigned integer) 8-bit. Ekuivalen dengan tipe dataSystem.Byte
dalam Microsoft .NET Framework.sbyte
: bilangan bulat bertanda (signed integer) 8-bit. Ekuivalen dengan tipe dataSystem.Sbyte
dalam Microsoft .NET Framework.short
: bilangan bulat bertanda 16-bit. Ekuivalen dengan tipe dataSystem.Int16
dalam Microsoft .NET Framework.ushort
: bilangan bulat tak bertanda (unsigned integer) 16-bit. Ekuivalen dengan tipe dataSystem.UInt16
dalam Microsoft .NET Framework.int
: bilangan bulat bertanda (signed integer) 32-bit. Ekuivalen dengan tipe dataSystem.Int32
dalam Microsoft .NET Framework.uint
: bilangan bulat tak bertanda (unsigned integer) 32-bit. Ekuivalen dengan tipe dataSystem.UInt32
dalam Microsoft .NET Framework.long
: bilangan bulat bertanda (signed integer) 64-bit. Ekuivalen dengan tipe dataSystem.Int64
dalam Microsoft .NET Framework.ulong
: bilangan bulat tak bertanda (unsigned integer) 64-bit. Ekuivalen dengan tipe dataSystem.UInt64
dalam Microsoft .NET Framework.
CPU
CPU, singkatan dari Central Processing Unit, merujuk kepada perangkat keras komputer yang memahami dan melaksanakan instruksi dan data dari perangkat lunak. Istilah lain, prosesor, sering digunakan untuk menyebut CPU. Adapun mikroprosesor adalah CPU yang diproduksi dalam sirkuit terpadu, seringkali dalam sebuah paket chip-tunggal. Sejak pertengahan tahun 1970-an, mikroprosesor chip-tunggal ini telah umum digunakan dan menjadi aspek penting dalam implementasi CPU.
Komponen CPU terbagi menjadi beberapa macam, yaitu sebagai berikut.
- Unit kontrol yang mampu mengatur jalannya program. Komponen ini sudah pasti terdapat dalam semua CPU.
- Unit eksekusi yang mampu melakukan operasi terhadap data dan memiliki beberapa bagian, seperti ALU (Unit Logika dan Aritmatika), FPU (Floating Point Unit), dan lainnya. Komponen ini sudah pasti terdapat dalam semua jenis CPU.
- Sekumpulan daftar yang dapat digunakan untuk menampung data maupun hasil perhitungan yang belum selesai dengan sempurna. Komponen ini terkadang terdapat dalam CPU, tetapi tidak semuanya.
- Memori internal CPU, yang bentuknya bisa berupa cache. Komponen ini terkadang terdapat dalam CPU. Kebanyakan CPU lama tidak memilikinya.
Fungsi CPU
CPU berfungsi seperti kalkulator, hanya saja CPU jauh lebih kuat daya pemrosesannya. Fungsi utama dari CPU adalah melakukan operasi aritmatika dan logika terhadap data yang diambil dari memori atau dari informasi yang dimasukkan melalui beberapa perangkat keras, seperti papan ketik, pemindai, tuas kontrol, maupun tetikus. CPU dikontrol menggunakan sekumpulan instruksi perangkat lunak komputer. Perangkat lunak tersebut dapat dijalankan oleh CPU dengan membacanya dari media penyimpan, seperti cakram keras, disket, cakram padat, maupun pita perekam. Instruksi-instruksi tersebut kemudian disimpan terlebih dahulu pada memori fisik (RAM), yang mana setiap instruksi akan diberi alamat unik yang disebut alamat memori. Selanjutnya, CPU dapat mengakses data-data pada RAM dengan menentukan alamat data yang dikehendaki.
Saat sebuah program dieksekusi, data mengalir dari RAM ke sebuah unit yang disebut dengan bus, yang menghubungkan antara CPU dengan RAM. Data kemudian didekode dengan menggunakan unit proses yang disebut sebagai pendekoder instruksi yang sanggup menerjemahkan instruksi. Data kemudian berjalan ke unit aritmatika dan logika (ALU) yang melakukan kalkulasi dan perbandingan. Data bisa jadi disimpan sementara oleh ALU dalam sebuah lokasi memori yang disebut dengan register supaya dapat diambil kembali dengan cepat untuk diolah. ALU dapat melakukan operasi-operasi tertentu, meliputi penjumlahan, perkalian, pengurangan, pengujian kondisi terhadap data dalam register, hingga mengirimkan hasil pemrosesannya kembali ke memori fisik, media penyimpan, atau register apabila akan mengolah hasil pemrosesan lagi. Selama proses ini terjadi, sebuah unit dalam CPU yang disebut dengan penghitung program akan memantau instruksi yang sukses dijalankan supaya instruksi tersebut dapat dieksekusi dengan urutan yang benar dan sesuai.
Penghitung program dalam CPU umumnya bergerak secara berurutan. Walaupun demikian, beberapa instruksi dalam CPU, yang disebut dengan instruksi lompatan, mengizinkan CPU mengakses instruksi yang terletak bukan pada urutannya. Hal ini disebut juga percabangan instruksi (branching instruction). Cabang-cabang instruksi tersebut dapat berupa cabang yang bersifat kondisional (memiliki syarat tertentu) atau non-kondisional. Sebuah cabang yang bersifat non-kondisional selalu berpindah ke sebuah instruksi baru yang berada di luar aliran instruksi, sementara sebuah cabang yang bersifat kondisional akan menguji terlebih dahulu hasil dari operasi sebelumnya untuk melihat apakah cabang instruksi tersebut akan dieksekusi atau tidak. Data yang diuji untuk percabangan instruksi disimpan pada lokasi yang disebut dengan flag.
Kebanyakan CPU dapat menangani dua jenis bilangan, yaitu fixed-point dan floating-point. Bilangan fixed-point memiliki nilai digit spesifik pada salah satu titik desimalnya. Hal ini memang membatasi jangkauan nilai yang mungkin untuk angka-angka tersebut, tetapi hal ini justru dapat dihitung oleh CPU secara lebih cepat. Sementara itu, bilangan floating-point merupakan bilangan yang diekspresikan dalam notasi ilmiah, di mana sebuah angka direpresentasikan sebagai angka desimal yang dikalikan dengan pangkat 10 (seperti 3,14 x 1057). Notasi ilmiah seperti ini merupakan cara yang singkat untuk mengekspresikan bilangan yang sangat besar atau bilangan yang sangat kecil, dan juga mengizinkan jangkauan nilai yang sangat jauh sebelum dan sesudah titik desimalnya. Bilangan ini umumnya digunakan dalam merepresentasikan grafik dan kerja ilmiah, tetapi proses aritmatika terhadap bilangan floating-point jauh lebih rumit dan dapat diselesaikan dalam waktu yang lebih lama oleh CPU karena mungkin dapat menggunakan beberapa siklus detak CPU. Beberapa komputer menggunakan sebuah prosesor sendiri untuk menghitung bilangan floating-point yang disebut dengan FPU (disebut juga math co-processor) yang dapat bekerja secara paralel dengan CPU untuk mempercepat penghitungan bilangan floating-point. FPU saat ini menjadi standar dalam banyak komputer karena kebanyakan aplikasi saat ini banyak beroperasi menggunakan bilangan floating-point.
CD_ROM
CD-ROM (singkatan dari Compact Disc - Read Only Memory) adalah sebuah piringan kompak dari jenis piringan optik (optical disc) yang dapat menyimpan data. Ukuran data yang dapat disimpan saat ini bisa mencapai 700MB atau 700 juta bita.
CD-ROM bersifat read only (hanya dapat dibaca, dan tidak dapat ditulisi). Untuk dapat membaca isi CD-ROM, alat utama yang diperlukan adalah CD Drive. Perkembangan CD-ROM terkini memungkinkan CD dapat ditulisi berulang kali (Re Write / RW) yang lebih dikenal dengan nama CD-RW.
Tipe | Sektor | Data maksimum | Audio maksimum | Durasi akses | ||
---|---|---|---|---|---|---|
(MB) | (MiB) | (MB) | (MiB) | (menit) | ||
8 cm | 94.500 | 193,536 | ≈ 184,6 | 222,264 | ≈ 212,0 | 21 |
283.500 | 580,608 | ≈ 553,7 | 666,792 | ≈ 635,9 | 63 | |
650 MB | 333.000 | 681,984 | ≈ 650,3 | 783,216 | ≈ 746,9 | 74 |
700 MB | 360.000 | 737,280 | ≈ 703,1 | 846,720 | ≈ 807,4 | 80 |
405.000 | 829,440 | ≈ 791,0 | 952,560 | ≈ 908,4 | 90 | |
445.500 | 912,384 | ≈ 870,1 | 1.047,816 | ≈ 999,3 | 99 |
Catatan: Nilai megabita (MB) dan menit adalah tepat.
- Nila MiB adalah Mega binary Byte atau Mebi Byte (1 MiB = 2 20 = 1.048.576)
Kecepatan Transfer | Megabyte/detik | Megabit/d | Mebibit/d |
---|---|---|---|
1x | 0.15 | 1.2 | 1.2288 |
2x | 0.3 | 2.4 | 2.4576 |
4x | 0.6 | 4.8 | 4.9152 |
8x | 1.2 | 9.6 | 9.8304 |
10x | 1.5 | 12.0 | 12.2880 |
12x | 1.8 | 14.4 | 14.7456 |
20x | 3.0 | 24.0 | 24.5760 |
32x | 4.8 | 38.4 | 39.3216 |
36x | 5.4 | 43.2 | 44.2368 |
40x | 6.0 | 48.0 | 49.1520 |
48x | 7.2 | 57.6 | 58.9824 |
50x | 7.5 | 60.0 | 61.4400 |
52x | 7.8 | 62.4 | 63.8976 |
Minggu, 30 November 2008
Setiap hal yang dikerjakan CPU dibagi-bagi menjadi beberapa langkah yang sederhana dan berurutan. Osilator clock membangkitkan clock CPU yang digunakan dalam langkah (step) kerja CPU dalam urutan perkerjaannya. Karena clock CPU ini sangat cepat untuk ukuran manusia, sehingga yang terlihat bahwa CPU bekerja secara langsung dan cepat.
Mikrokontroler 8-bit dari Motorola M68HC05 dan M68HC11 memiliki organisasi khusus yan disebut dengan arsitektur Von Neumann. Dalam arsitektur ini, CPU dan rangkaian memori di-interkoneksi-kan dengan bus alamat dan bus data. Bus alamat digunakan untuk menentukan lokasi memori yang mana yang akan diakses, dan bus data digunakan untuk mengirim informasi baik dari CPU ke lokasi memori dan sebaliknya.
Dalam arsitektur implementasi Motorola ini terdapat beberapa memori spesial yang disebut dengan register CPU yang terletak di dalam CPU itu sendiri. Register ini mirip dengan memori yang dapat menyimpan informasi. Tetapi register ini terjalur langsung di dalam CPU dan bukan bagian dari memori konvensional mikrokontroler.
CPU menganggap semua lokasi memori sebagai satu kesatuan walaupun di dalamnya terdapat instruksi program, data variabel, maupun kontrol input-output (I/O). Teknik semacam ini yang disebut dengan memory-mapped I/O. Artinya, semua piranti input-output dari sistem mikrokontroler memiliki alamat tersendiri yang ikut dipetakan dalam peta memori, sehingga dianggap sebagai bagian dari memori itu sendiri.
Di dalam CPU juga terdapat komponen ALU atau Arithmatic Logic Unit yang digunakan untuk melakukan kalkulasi aritmatika dan logika yang didefinisikan oleh instruksi. Berbagai macam variasi operasi aritmatika biner dikerjakan dalam ALU ini. Hampir semua operasi aritmatika biner didasarkan pada operasi tambah. Pengurangan dikerjakan sebagai proses tambah dengan salah satu data dikomplemenkan. Perkalian dikerjakan sebagai urutan beberapa proses tambah dan operasi shift dalam ALU. Blok diagram dari CPU M68HC05 ditampilkan dalam gambar 4.1 di bawah ini.
Register-register CPU
CPU yang berbeda memiliki set register yang berbeda pula. Perbedaan utama terletak pada jumlah dan ukuran dari register itu sendiri. Dalam gambar 4.1 diperlihatkan register-register CPU yang terdapat dalam mikrokontroler keluarga M68HC05.
Register X adalah index register yang berukuran 8 bit. Kegunaan utama dari index register ini adalah untuk menunjukkan suatu area memori di mana CPU akan mengambil atau menuliskan suatu informasi. Kadang-kadang index register juga disebut dengan pointer register.
PC atau program counter digunakan CPU untuk menata urutan alamat instruksi yang akan dikerjakan. Saat CPU reset atau baru dihidupkan, PC ini dimuati dengan alamat yang telah ditentukan dalam reset vector. Lokasi reset vector ini berisi alamat dari instruksi pertama yang akan dikerjakan oleh CPU. Saat suatu instruksi dikerjakan, CPU akan menambah isi PC sehingga akan menunjuk ke alamat informasi berikutnya yang akan dibutuhkan CPU. Jumlah bit dari PC sama persis dengan jumlah jalur bus alamat. Isi dari register ini dinyatakan dalam empat digit heksadesimal di mana enam bit teratas selalu nol karena hanya 10 bit jalur bus alamat.
CCR atau condition code register adalah register dengan ukuran 8 bit, yang menyimpan indikator status dari hasil operasi CPU sebelumnya. Terdapat tiga bit teratas tidak digunakan dan selalu sama dengan logika satu. Instruksi percabangan menggunakan bit-bit status dalam register ini untuk mengerjakan suatu keputusan percabangan.
Isi dari CCR ini adalah sebuah interrupt mask dan empat indikator status seperti pada gambar 4.1. Kelima flag tersebut adalah H atau half cary, N atau negative, Z atau zero, dan C atau carry/borrow.
Flag H (half carry) digunakan untuk operasi aritmatika BCD (Binary Coded Decimal) dan dipengaruhi oleh kerja instruksi ADD dan ADC. Bit H ini akan set jika ada carry yang timbul dari digit heksadesimal 0-3 (low order) dan digit desimal 4-7 (high order).
Bit I (interrupt mask) bukanlah status flag tetapi merupakan bit yang akan men-nonaktif-kan semua sumber interrupt yang maskable saat bit ini diset. Interrupt baru akan aktif jika bit ini nol. Jika ada interrupt eksternal yang terjadi saat bit I diset, maka interrupt tersebut akan di-latch dan akan diproses saat bit I dinolkan. Karena itu, interrupt yang terjadi tidak akan hilang. Setelah interrupt ditangani, instruksi RTI (return from interrupt) akan menyebabkan register ini dikembalikan ke nilai semula. Umumnya, bit I ini akan menjadi nol setelah instruksi RTI dilaksanakan.
Flag N (negative) akan diset jika hasil dari operasi aritmatika, logika, maupun manipulasi data yang terakhir adalah negatif. Nilai negatif dalam two's complement ditandai jika bit MSB adalah satu.
Flag Z (zero) diset jika hasil dari operasi aritmatika, logika, maupun manipulasi data terakhir adalah nol. Instruksi perbandingan (compare) akan mengurangi suatu harga dari suatu lokasi memori yang akan dites. Jika nilainya sama, maka bit Z ini akan diset.
Flag C (carry/borrow) digunakan untuk menandai apakah ada carry dari hasil operasi tambah atau ada borrow darioperasi pengurangan. Instruksi shift dan rotate juga dapat memakai bit C ini.
SP atau stack pointer digunakan sebagai pointer ke lokasi yang tersedia berikutnya dalam tumpukan stack dalam uruatn LIFO (last-in first-out). Stack ini dapat dianalogikan sebagai tumpukan kartu. Setiap kartu menyimpan satu byte (8 bit) informasi. Dalam suatu saat, CPU dapat menaruh satu kartu di atas tumpukan kartu tersebut maupun mengambil satu kartu dari tumpukan. Kartu di dalam tumpukan tidak dapat diambil kecuali jika kartu di atasnya sudah diambil sebelumnya. Stack mirip dengan tumpukan kartu ini hanya saja dalam fisiknya, stack mempunyai arah tumpukan ke bawah bukan ke atas seperti pada tumpukan kartu.
SP akan menunjuk pada alamat stack yang akan tersedia berikutnya. Jika CPU menaruh informasi dalam stack, maka data tersebut akan dituliskan dalam memori yang ditunjukkan oleh nilai SP saat itu, dan kemudian nilai SP akan dikurangi satu sehingga SP akan menunjukkan ke lokasi memori berikutnya yang kosong untuk digunakan sebagai penyimpan berikutnya. Jika CPU mengambil data dari stack, SP akan ditambah satu sehingga menunjukkan ke lokasi stack yang terakhir, dan kemudian data diambil dan dibaca oleh CPU. Saat CPU pertama kali dihidupkan atau setelah instruksi Reset Stack Pointer (RSP), maka SP akan menunjukkan memori tertentu dalam RAM.
Reset
Reset digunakan untuk memaksa sistem mikrokontroler untuk menuju alamat tertentu. Sistem periperal dan sejumlah bit kontrol dan status juga dipaksa untuk menuju ke state awal sebagai hasil dari proses reset. Aksi-aksi berikut ini yang terjadi akibat proses reset dari mikrokontroler:
1. Semua register data direction (DDR) diset nol (input)
2. Nilai SP dipaksa menjadi $00FF
3. Bit I dalam CCR diset
4. Latch interrupt eksternal dinolkan
5. Latch STOP dinolkan
6. Latch WAIT dinolkan
Kondisi-kondisi berikut ini yang akan menyebabkan mikrokontroler M68HC05 menjadi reset:
1. Sinyal input low pada kaki RESET
2. Reset karena pertama kali dihidupkan
3. Timer watchdog COP (computer operating properly) sudah habis
4. Usaha untuk menjalankan perintah dari suatu alamat yang tidak diperbolehkan
Arsitektur Komputer
Setiap hal yang dikerjakan CPU dibagi-bagi menjadi beberapa langkah yang sederhana dan berurutan. Osilator clock membangkitkan clock CPU yang digunakan dalam langkah (step) kerja CPU dalam urutan perkerjaannya. Karena clock CPU ini sangat cepat untuk ukuran manusia, sehingga yang terlihat bahwa CPU bekerja secara langsung dan cepat.
Mikrokontroler 8-bit dari Motorola M68HC05 dan M68HC11 memiliki organisasi khusus yan disebut dengan arsitektur Von Neumann. Dalam arsitektur ini, CPU dan rangkaian memori di-interkoneksi-kan dengan bus alamat dan bus data. Bus alamat digunakan untuk menentukan lokasi memori yang mana yang akan diakses, dan bus data digunakan untuk mengirim informasi baik dari CPU ke lokasi memori dan sebaliknya.
Dalam arsitektur implementasi Motorola ini terdapat beberapa memori spesial yang disebut dengan register CPU yang terletak di dalam CPU itu sendiri. Register ini mirip dengan memori yang dapat menyimpan informasi. Tetapi register ini terjalur langsung di dalam CPU dan bukan bagian dari memori konvensional mikrokontroler.
CPU menganggap semua lokasi memori sebagai satu kesatuan walaupun di dalamnya terdapat instruksi program, data variabel, maupun kontrol input-output (I/O). Teknik semacam ini yang disebut dengan memory-mapped I/O. Artinya, semua piranti input-output dari sistem mikrokontroler memiliki alamat tersendiri yang ikut dipetakan dalam peta memori, sehingga dianggap sebagai bagian dari memori itu sendiri.
Di dalam CPU juga terdapat komponen ALU atau Arithmatic Logic Unit yang digunakan untuk melakukan kalkulasi aritmatika dan logika yang didefinisikan oleh instruksi. Berbagai macam variasi operasi aritmatika biner dikerjakan dalam ALU ini. Hampir semua operasi aritmatika biner didasarkan pada operasi tambah. Pengurangan dikerjakan sebagai proses tambah dengan salah satu data dikomplemenkan. Perkalian dikerjakan sebagai urutan beberapa proses tambah dan operasi shift dalam ALU. Blok diagram dari CPU M68HC05 ditampilkan dalam gambar 4.1 di bawah ini.
Register-register CPU
CPU yang berbeda memiliki set register yang berbeda pula. Perbedaan utama terletak pada jumlah dan ukuran dari register itu sendiri. Dalam gambar 4.1 diperlihatkan register-register CPU yang terdapat dalam mikrokontroler keluarga M68HC05.
Register X adalah index register yang berukuran 8 bit. Kegunaan utama dari index register ini adalah untuk menunjukkan suatu area memori di mana CPU akan mengambil atau menuliskan suatu informasi. Kadang-kadang index register juga disebut dengan pointer register.
PC atau program counter digunakan CPU untuk menata urutan alamat instruksi yang akan dikerjakan. Saat CPU reset atau baru dihidupkan, PC ini dimuati dengan alamat yang telah ditentukan dalam reset vector. Lokasi reset vector ini berisi alamat dari instruksi pertama yang akan dikerjakan oleh CPU. Saat suatu instruksi dikerjakan, CPU akan menambah isi PC sehingga akan menunjuk ke alamat informasi berikutnya yang akan dibutuhkan CPU. Jumlah bit dari PC sama persis dengan jumlah jalur bus alamat. Isi dari register ini dinyatakan dalam empat digit heksadesimal di mana enam bit teratas selalu nol karena hanya 10 bit jalur bus alamat.
CCR atau condition code register adalah register dengan ukuran 8 bit, yang menyimpan indikator status dari hasil operasi CPU sebelumnya. Terdapat tiga bit teratas tidak digunakan dan selalu sama dengan logika satu. Instruksi percabangan menggunakan bit-bit status dalam register ini untuk mengerjakan suatu keputusan percabangan.
Isi dari CCR ini adalah sebuah interrupt mask dan empat indikator status seperti pada gambar 4.1. Kelima flag tersebut adalah H atau half cary, N atau negative, Z atau zero, dan C atau carry/borrow.
Flag H (half carry) digunakan untuk operasi aritmatika BCD (Binary Coded Decimal) dan dipengaruhi oleh kerja instruksi ADD dan ADC. Bit H ini akan set jika ada carry yang timbul dari digit heksadesimal 0-3 (low order) dan digit desimal 4-7 (high order).
Bit I (interrupt mask) bukanlah status flag tetapi merupakan bit yang akan men-nonaktif-kan semua sumber interrupt yang maskable saat bit ini diset. Interrupt baru akan aktif jika bit ini nol. Jika ada interrupt eksternal yang terjadi saat bit I diset, maka interrupt tersebut akan di-latch dan akan diproses saat bit I dinolkan. Karena itu, interrupt yang terjadi tidak akan hilang. Setelah interrupt ditangani, instruksi RTI (return from interrupt) akan menyebabkan register ini dikembalikan ke nilai semula. Umumnya, bit I ini akan menjadi nol setelah instruksi RTI dilaksanakan.
Flag N (negative) akan diset jika hasil dari operasi aritmatika, logika, maupun manipulasi data yang terakhir adalah negatif. Nilai negatif dalam two's complement ditandai jika bit MSB adalah satu.
Flag Z (zero) diset jika hasil dari operasi aritmatika, logika, maupun manipulasi data terakhir adalah nol. Instruksi perbandingan (compare) akan mengurangi suatu harga dari suatu lokasi memori yang akan dites. Jika nilainya sama, maka bit Z ini akan diset.
Flag C (carry/borrow) digunakan untuk menandai apakah ada carry dari hasil operasi tambah atau ada borrow darioperasi pengurangan. Instruksi shift dan rotate juga dapat memakai bit C ini.
SP atau stack pointer digunakan sebagai pointer ke lokasi yang tersedia berikutnya dalam tumpukan stack dalam uruatn LIFO (last-in first-out). Stack ini dapat dianalogikan sebagai tumpukan kartu. Setiap kartu menyimpan satu byte (8 bit) informasi. Dalam suatu saat, CPU dapat menaruh satu kartu di atas tumpukan kartu tersebut maupun mengambil satu kartu dari tumpukan. Kartu di dalam tumpukan tidak dapat diambil kecuali jika kartu di atasnya sudah diambil sebelumnya. Stack mirip dengan tumpukan kartu ini hanya saja dalam fisiknya, stack mempunyai arah tumpukan ke bawah bukan ke atas seperti pada tumpukan kartu.
SP akan menunjuk pada alamat stack yang akan tersedia berikutnya. Jika CPU menaruh informasi dalam stack, maka data tersebut akan dituliskan dalam memori yang ditunjukkan oleh nilai SP saat itu, dan kemudian nilai SP akan dikurangi satu sehingga SP akan menunjukkan ke lokasi memori berikutnya yang kosong untuk digunakan sebagai penyimpan berikutnya. Jika CPU mengambil data dari stack, SP akan ditambah satu sehingga menunjukkan ke lokasi stack yang terakhir, dan kemudian data diambil dan dibaca oleh CPU. Saat CPU pertama kali dihidupkan atau setelah instruksi Reset Stack Pointer (RSP), maka SP akan menunjukkan memori tertentu dalam RAM.
Reset
Reset digunakan untuk memaksa sistem mikrokontroler untuk menuju alamat tertentu. Sistem periperal dan sejumlah bit kontrol dan status juga dipaksa untuk menuju ke state awal sebagai hasil dari proses reset. Aksi-aksi berikut ini yang terjadi akibat proses reset dari mikrokontroler:
1. Semua register data direction (DDR) diset nol (input)
2. Nilai SP dipaksa menjadi $00FF
3. Bit I dalam CCR diset
4. Latch interrupt eksternal dinolkan
5. Latch STOP dinolkan
6. Latch WAIT dinolkan
Kondisi-kondisi berikut ini yang akan menyebabkan mikrokontroler M68HC05 menjadi reset:
1. Sinyal input low pada kaki RESET
2. Reset karena pertama kali dihidupkan
3. Timer watchdog COP (computer operating properly) sudah habis
4. Usaha untuk menjalankan perintah dari suatu alamat yang tidak diperbolehkan