USB
Universal Serial Bus (USB) adalah standar bus serial untuk perangkat penghubung, biasanya kepada komputer namun juga digunakan di peralatan lainnya seperti konsol permainan, ponsel dan PDA.
Sistem USB mempunyai desain yang asimetris, yang terdiri dari pengontrol host dan beberapa peralatan terhubung yang berbentuk pohon dengan menggunakan peralatan hub yang khusus.
Desain USB ditujukan untuk menghilangkan perlunya penambahan expansion card ke ISA komputer atau bus PCI, dan memperbaiki kemampuan plug-and-play (pasang-dan-mainkan) dengan memperbolehkan peralatan-peralatan ditukar atau ditambah ke sistem tanpa perlu mereboot komputer. Ketika USB dipasang, ia langsung dikenal sistem komputer dan memroses device driver yang diperlukan untuk menjalankannya.
USB dapat menghubungkan peralatan tambahan komputer seperti mouse, keyboard, pemindai gambar, kamera digital, printer, hard disk, dan komponen networking. USB kini telah menjadi standar bagi peralatan multimedia seperti pemindai gambar dan kamera digital.
Versi terbaru (hingga Januari 2005) USB adalah versi 2.0. Perbedaan paling mencolok antara versi baru dan lama adalah kecepatan transfer yang jauh meningkat. Kecepatan transfer data USB dibagi menjadi tiga, antara lain:
* High speed data dengan frekuensi clock 480.00Mb/s dan tolerasi pensinyalan data pada ± 500ppm.
* Full speed data dengan frekuensi clock 12.000Mb/s dan tolerasi pensinyalan data pada ±0.25% atau 2,500ppm.
* Low speed data dengan frekuensi clock 1.50Mb/s dan tolerasi pensinyalan data pada ±1.5% atau 15,000ppm.
Protokol USB
Persinyalan USB
USB adalah host-centric bus di mana host/terminal induk memulai semua transaksi. Paket pertama/penanda (token) awal dihasilkan oleh host untuk menjelaskan apakah paket yang mengikutinya akan dibaca atau ditulis dan apa tujuan dari perangkat dan titik akhir. Paket berikutnya adalah data paket yang diikuti oleh handshaking packet yang melaporkan apakah data atau penanda sudah diterima dengan baik atau pun titik akhir gagal menerima data dengan baik.
Setiap proses transaksi pada USB terdiri atas:
* Paket token/sinyal penanda (Header yang menjelaskan data yang mengikutinya)
* Pilihan paket data (termasuk tingkat muatan) dan
* Status paket (untuk acknowledge/pemberitahuan hasil transaksi dan untuk koreksi kesalahan)
Paket data umum USB
Data di bus USB disalurkan dengan cara mendahulukan Least Significant Bit(LSB). Paket-paket USB terdiri dari data-data berikut ini:
* Sync
Semua paket harus diawali dengan data sync. Sync adalah data 8 bit untuk low dan full speed atau data 32 bit untuk high speed yang digunakan untuk mensinkronkan clock dari penerima dengan pemancar. Dua bit terakhir mengindikasikan dimana data PID dimulai
Perancangan peralatan yang menggunakan USB
Untuk membuat suatu peralatan yang dapat berkomunikasi dengan protokol USB tidak perlu harus mengetahui secara rinci protokol USB. Bahkan kadang tidak perlu pengetahuan tentang USB protokol sama sekali. Pengetahuan tentang USB protokol hanya diperlukan untuk mengetahui spesifikasi yang dibutuhkan untuk alat kita. Pada kenyataannya untuk mengimplemetasikan USB protokol di FPGA ataupun perangkat bantu lain sangat tidak efisien dan banyak waktu terbuang untuk merancangnya. Menggunakan kontroler USB sangat lebih dianjurkan dalam membuat alat yang dapat berkomunikasi melalui protokol ini. Kontroler USB mempunyai banyak macam bentuk, dari microcontroller berbasis 8051 yang mempunyai input output USB secara langsung sampai pengubah protocol dari serial seperti I2C bus ke USB.
USB controller biasanya dijual dengan disertai berbagai fasilitas yang mempermudah pengembangan alat, diantaranya manual yang lengkap, driver untuk windows, contoh code aplikasi untuk mengakses USB, contoh code untuk USB controller, dan skema rangkaian elektronikanya.
Dalam sisi pengembangan software aplikasi dalam personal computer, komunikasi antar hardware didalam perangkat keras USB tidak terlalu diperhatikan karena Windows ataupun sistem operasi lain yang akan mengurusnya. Pengembang perangkat lunak hanya memberikan data yang akan dikirim ke alat USB di buffer penyimpan dan membaca data dari alat USB dari buffer pembaca. Untuk driver pun kadang-kadang Windows sudah menyediakannya, kecuali untuk peralatan yang mempunyai spesifikasi khusus kita harus membuatnya sendiri.
tablet pc
Tablet PC adalah laptop - atau komputer portable berbentuk buku. Memiliki layar sentuh atau teknologi tablet digital yang memungkinkan pengguna komputer mempergunakan stylus atau pulpen digital selain keyboard ataupun mouse komputer.
Pengguna bisa memasukkan teks mempergunakan program yang mengenali tulisan tangan, keyboard dalam monitor, pengenal percakapan, atau keyboard biasa (apabila ada).
Banyak Tablet PC mempergunakan digitaliser, yang menghantarkan masukan posisi pulpen ke komputer dengan cepat.
Tablet PC menggunakan layar LCD sentuh, dapat digunakan untuk menulis dengan tangan menggunakan sejenis pulpen khusus yang disebut stylus. Layarnya pun dapat diputar ke atas dan ke bawah sehingga posisi keyboard menghadap tanah/pangkuan/meja dan posisi layar tidur menghadap keatas (lihat gambar 2 kiri). Layar Tablet PC juga dimungkinkan untuk bergerak memutar mirip gerakan orang menoleh, hingga 360 derajat.
Tetikus
Tetikus atau yang lebih dikenal dengan nama mouse adalah alat yang digunakan untuk memasukkan data ke dalam komputer selain papan ketik. Tetikus memperoleh nama demikian karena kabel yang menjulur berbentuk seperti ekor tikus[1].
Tetikus pertama kali dibuat pada tahun 1963 oleh Douglas Engelbart berbahan kayu dengan satu tombol. Model kedua sudah dilengkapi dengan 3 tombol. Pada tahun 1970, Douglas Engelbart memperkenalkan tetikus yang dapat mengetahui posisi X-Y pada layar komputer, tetikus ini dikenal dengan nama X-Y Position Indicator (indikator posisi X-Y).
Bentuk tetikus yang paling umum mempunyai dua tombol, masing-masing di sebelah kiri atas dan kanan atas yang dapat ditekan. Walaupun demikian, komputer-komputer berbasis Macintosh biasanya menggunakan tetikus satu tombol.
Tetikus bekerja dengan menangkap gerakan menggunakan bola yang menyentuh permukaan keras dan rata. Tetikus yang lebih modern sudah tidak menggunakan bola lagi, tetapi menggunakan sinar optikal untuk mendeteksi gerakan. Selain itu, ada pula yang sudah menggunakan teknologi nirkabel, baik yang berbasis radio, sinar inframerah, maupun bluetooth.
Saat ini, teknologi terbaru sudah memungkinkan tetikus memakai sistem laser sehingga resolusinya dapat mencapai 2.000 titik per inci (dpi), bahkan ada yang bisa mencapai 4.800 titik per inci. Biasanya tetikus model ini diperuntukkan bagi penggemar permainan video.
hacker
Peretas (Inggris: hacker) adalah orang yang mempelajari, menganalisa, dan selanjutnya bila menginginkan, bisa membuat, memodifikasi, atau bahkan mengeksploitasi sistem yang terdapat di sebuah perangkat seperti perangkat lunak komputer dan perangkat keras komputer seperti program komputer, administrasi dan hal-hal lainnya, terutama keamanan.
Sejarah
Terminologi peretas muncul pada awal tahun 1960-an diantara para anggota organisasi mahasiswa Tech Model Railroad Club di Laboratorium Kecerdasan Artifisial Massachusetts Institute of Technology (MIT). Kelompok mahasiswa tersebut merupakan salah satu perintis perkembangan teknologi komputer dan mereka berkutat dengan sejumlah komputer mainframe. Kata bahasa Inggris "hacker" pertama kalinya muncul dengan arti positif untuk menyebut seorang anggota yang memiliki keahlian dalam bidang komputer dan mampu membuat program komputer yang lebih baik daripada yang telah dirancang bersama.
Kemudian pada tahun 1983, istilah hacker mulai berkonotasi negatif. Pasalnya, pada tahun tersebut untuk pertama kalinya FBI menangkap kelompok kriminal komputer The 414s yang berbasis di Milwaukee, Amerika Serikat. 414 merupakan kode area lokal mereka. Kelompok yang kemudian disebut hacker tersebut dinyatakan bersalah atas pembobolan 60 buah komputer, dari komputer milik Pusat Kanker Memorial Sloan-Kettering hingga komputer milik Laboratorium Nasional Los Alamos. Satu dari pelaku tersebut mendapatkan kekebalan karena testimonialnya, sedangkan 5 pelaku lainnya mendapatkan hukuman masa percobaan.
Kemudian pada perkembangan selanjutnya muncul kelompok lain yang menyebut-nyebut diri sebagai peretas, padahal bukan. Mereka ini (terutama para pria dewasa) yang mendapat kepuasan lewat membobol komputer dan mengakali telepon (phreaking). Peretas sejati menyebut orang-orang ini cracker dan tidak suka bergaul dengan mereka. Peretas sejati memandang cracker sebagai orang malas, tidak bertanggung jawab, dan tidak terlalu cerdas. Peretas sejati tidak setuju jika dikatakan bahwa dengan menerobos keamanan seseorang telah menjadi peretas.
Para peretas mengadakan pertemuan tahunan, yaitu setiap pertengahan bulan Juli di Las Vegas. Ajang pertemuan peretas terbesar di dunia tersebut dinamakan Def Con. Acara Def Con tersebut lebih kepada ajang pertukaran informasi dan teknologi yang berkaitan dengan aktivitas peretasan.
Peretas memiliki konotasi negatif karena kesalahpahaman masyarakat akan perbedaan istilah tentang hacker dan cracker. Banyak orang memahami bahwa peretaslah yang mengakibatkan kerugian pihak tertentu seperti mengubah tampilan suatu situs web (defacing), menyisipkan kode-kode virus, dan lain-lain, padahal mereka adalah cracker. Cracker-lah menggunakan celah-celah keamanan yang belum diperbaiki oleh pembuat perangkat lunak (bug) untuk menyusup dan merusak suatu sistem. Atas alasan ini biasanya para peretas dipahami dibagi menjadi dua golongan: White Hat Hackers, yakni hacker yang sebenarnya dan cracker yang sering disebut dengan istilah Black Hat Hackers.
Para Hacker selalu bekerjasama secara sukarela menyelesaikan masalah dan membangun sesuatu. Mereka selalu berbagi informasi, memberi jawaban serta berlomba-lomba untuk berbuat yang terbaik agar dihormati di lingkungannya. Mereka tidak pernah berhenti belajar untuk menjadi ahli dan sangat anti untuk melakukan sesuatu berulang-ulang dan membosankan. Mereka berpedoman pada kata-kata bijak : “Untuk mengikuti jalan - pandanglah sang ahli - ikuti sang ahli - berjalan bersama sang ahli - kenali sang ahli -jadilah sang ahli ”
Sementara itu, para kracker sibuk untuk memuaskan diri mereka dengan aktivitas kracking. mulai dari membobol komputer, menebar virus (tanpa tujuan - beberapa Hacker sejati ada yang menulis virus namun dengan tujuan yang jelas), hingga mengakali telepon (Phreaking). Para Hacker menyebut mereka sebagai orang malas yang tidak bertanggung jawab. Jadi, sangat tidak adil jika kita tetap menganggap bahwa Hacker itu jahat dan menakutkan karena sangat jelas bahwa Hacker bersifat membangun sementara kracker bersifat membongkar.
Ingin jadi seorang Hacker?? Tidak ada kata sulit bagi mereka yang mau belajar. Untuk menjadi seorang Hacker anda harus menguasai beberapa bahasa pemrograman dan tentu saja sikap-sikap yang bisa membuat anda diterima di lingkungan mereka. Biasanya calon Hacker memulai dengan belajar bahasa [Python] karena bahasa ini tergolong bahasa pemrograman yang termudah. Bahasan mengenai bahasa ini bisa anda lihat di www.python.org. Setelah itu anda juga harus menguasai [java] yang sedikit lebih sulit akan tetapi menghasilkan kode yang lebih cepat dari Python, [C], [C++] yang menjadi inti dari UNIX, dan [Perl] (www.perl.com) serta [LISP] untuk tingkat lanjut.
Setelah menguasai semua kemampuan dasar diatas, calon Hacker disarankan untuk membuka salah satu versi UNIX open-source atau mempelajari LINUX, membaca kodenya, memodifikasi dan menjalankannya kembali. Jika mengalami kesulitan, disarankan untuk berkomunikasi dengan club pengguna Linux [www.linpeople.org]
Sisi menarik dari seorang Hacker adalah dimana mereka saling bahu-membahu dalam menyelesaikan sebuah masalah dan membangun sesuatu. Tetapi sayangnya, kehidupan mereka yang menghabiskan 90% waktunya untuk aktivitas Hacking bukanlah hal yang baik. Kalau memang benar-benar ingin jadi Hacker, jadilah Hacker yang baik...
Tingkatan-tingkatan Dalam Dunia Hacker
Elite :
Juga dikenal sebagai 3l33t, 3l337, 31337 atau kombinasi dari itu; merupakan ujung tombak industri keamanan jaringan. Mereka mengerti sistemoperasi luar dalam, sanggup mengkonfigurasi & menyambungkan jaringan secara global. Sanggup melakukan pemrogramman setiap harinya. Sebuah anugrah yang sangat alami, mereka biasanya effisien & trampil,menggunakan pengetahuannya dengan tepat. Mereka seperti siluman dapat memasuki sistem tanpa di ketahui, walaupun mereka tidak akan menghancurkan data-data. Karena mereka selalu mengikuti peraturan yang ada.
Semi Elite:
Hacker ini biasanya lebih mudadaripada Elite.Mereka juga mempunyai kemampuan & pengetahuan luas tentang komputer. Mereka mengerti tentang sistem operasi (termasuk lubangnya). Biasanya dilengkapi dengan sejumlah kecilprogram cukup untuk mengubah program eksploit. Banyak serangan yang dipublikasi dilakukan oleh Hacker kaliber ini, sialnya oleh para Elite mereka sering kali di kategorikan Lamer.
Developed Kiddie:
Sebutan ini terutamakarena umur kelompok ini masih muda (ABG)&masih sekolah. Mereka membaca tentang metoda hacking & caranya di berbagai kesempatan. Mereka mencoba berbagai sistem sampai akhirnya berhasil & memproklamirkan kemenangan ke lainnya.Umumnya mereka masih menggunakan Grafik UserInterface (GUI) & baru belajar basic dari UNIX, tanpa mampu menemukan lubang kelemahan baru di sistem operasi.
Script Kiddie:
Seperti developed kiddie, Script Kiddie biasanya melakukan aktifitas di atas. Seperti juga Lamers, mereka hanya mempunyai pengetahuan teknis networking yang sangat minimal. Biasanya tidak lepas dari GUI. Hacking dilakukan menggunakan trojan untuk menakuti & menyusahkan hidup sebagian pengguna Internet.
Lamer:
Mereka adalah orang tanpa pengalaman & pengetahuan yang ingin menjadi Hacker (wanna-be Hacker). Mereka biasanya membaca atau mendengar tentang Hacker & ingin seperti itu. Penggunaan komputer mereka terutama untuk main game, IRC, tukar menukar software prirate, mencuri kartu kredit. Biasanya melakukan hacking menggunakan software trojan, nuke & DoS. Biasanya menyombongkan diri melalui IRC channel dsb. Karena banyak kekurangannya untuk mencapai elite, dalam perkembangannya mereka hanya akan sampai level developed kiddie atau script kiddie saja.
flooding attack
SYN flooding attack adalah istilah teknologi informasi dalam bahasa Inggris yang mengacu kepada salah satu jenis serangan Denial-of-service yang menggunakan paket-paket SYN.
Paket-paket SYN adalah salah satu jenis paket dalam protokol Transmission Control Protocol yang dapat digunakan untuk membuat koneksi antara dua host dan dikirimkan oleh host yang hendak membuat koneksi, sebagai langkah pertama pembuatan koneksi dalam proses "TCP Three-way Handshake". Dalam sebuah serangan SYN Flooding, si penyerang akan mengirimkan paket-paket SYN ke dalam port-port yang sedang berada dalam keadaan "Listening" yang berada dalam host target. Normalnya, paket-paket SYN yang dikirimkan berisi alamat sumber yang menunjukkan sistem aktual, tetapi paket-paket SYN dalam serangan ini didesain sedemikian rupa, sehingga paket-paket tersebut memiliki alamat sumber yang tidak menunjukkan sistem aktual. Ketika target menerima paket SYN yang telah dimodifikasi tersebut, target akan merespons dengan sebuah paket SYN/ACK yang ditujukan kepada alamat yang tercantum di dalam SYN Packet yang ia terima (yang berarti sistem tersebut tidak ada secara aktual), dan kemudian akan menunggu paket Acknowledgment (ACK) sebagai balasan untuk melengkapi proses pembuatan koneksi. Tetapi, karena alamat sumber dalam paket SYN yang dikirimkan oleh penyerang tidaklah valid, paket ACK tidak akan pernah datang ke target, dan port yang menjadi target serangan akan menunggu hingga waktu pembuatan koneksi "kadaluwarsa" atau timed-out. Jika sebuah port yang listening tersebut menerima banyak paket-paket SYN, maka port tersebut akan meresponsnya dengan paket SYN/ACK sesuai dengan jumlah paket SYN yang ia dapat menampungnya di dalam buffer yang dialokasikan oleh sistem operasi.
Jumlah percobaan pembuatan koneksi TCP yang dapat ditampung oleh sebuah host di dalam buffer memang berbeda-beda antara satu platform dengan platform lainnya, tapi jumlahnya tidak lebih dari beberapa ratus buah koneksi saja. Dengan mengirimkan banyak paket SYN ke sebuah port yang berada dalam keadaan listening yang berada dalam host target, buffer koneksi yang dialokasikan oleh sistem penerima dapat mengalami "kepenuhan" dan target pun menjadi tidak dapat merespons koneksi yang datang hingga paket SYN yang sebelumnya mengalami "timed-out" atau buffer memiliki ruang tampung yang lebih banyak. Beberapa sistem operasi bahkan dapat mengalami hang ketika buffer koneksi terlalu penuh dan harus di-restart. Baik pe-restart-an ulang sistem operasi atau buffer yang dipenuhi dengan paket SYN yang tidak jelas datangnya dari mana tersebut mengakibatkan pengguna yang valid dalam sebuah jaringan menjadi tidak dapat mengakses layanan-layanan dalam jaringan. Sistem server di mana pengguna hendak mengakses pun menolak request akses dari pengguna.
Ada beberapa cara yang dapat dilakukan untuk mencegah dan mengurangi efek dari SYN Flooding, yakni sebagai berikut:
* Meningkatkan ukuran buffer koneksi TCP untuk meningkatkan jumlah percobaan pembuatan koneksi yang dapat dilakukan secara simultan. Hal ini memang menjadi solusi sementara, karena penyerang juga mungkin meningkatkan ukuran paket SYN yang ia kirimkan untuk memenuhi buffer tersebut.
* Mengurangi nilai waktu kapan sebuah percobaan pembuatan koneksi TCP menjadi "timed-out". Hal ini juga menjadi solusi sementara, apalagi jika jaringan di mana sistem berada sangat sibuk atau lambat.
* Mengimplementasikan penapisan paket yang masuk ke dalam router, sehingga memblokir semua serangan yang menggunakan alamat palsu. Hal ini juga menjadi solusi sementara, karena tidak semua ISP mengimplementasikan fitur seperti ini.
* Memantau firewall dan mengonfigurasikannya untuk memblokir serangan SYN flood ketika hal tersebut terjadi. Pendekatan ini merupakan pendekatan yang sering dilakukan oleh banyak organisasi, apalagi jika ditambah dengan Intrusion Prevention System (IPS), meski hal ini membutuhkan kejelian dari seorang administrator jaringan untuk memantau catatan (log) dari IPS dan firewall yang ia atur. Bahkan, dengan kedua perangkat tersebut, klien-klien yang valid dapat ditolaknya karena konfigurasi yang tidak benar.
CPU
Unit Pengolah Pusat (UPP) (bahasa Inggris: CPU, singkatan dari Central Processing Unit), merujuk kepada perangkat keras komputer yang memahami dan melaksanakan perintah dan data dari perangkat lunak. Istilah lain, prosesor (pengolah data), sering digunakan untuk menyebut CPU. Adapun mikroprosesor adalah CPU yang diproduksi dalam sirkuit terpadu, seringkali dalam sebuah paket sirkuit terpadu-tunggal. Sejak pertengahan tahun 1970-an, mikroprosesor sirkuit terpadu-tunggal ini telah umum digunakan dan menjadi aspek penting dalam penerapan CPU......
Komponen 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.CPU bertugas mengontrol komputer sehingga terjadi sinkronisasi kerja antar komponen dalam menjalankan fungsi-fungsi operasinya. termasuk dalam tanggung jawab unit kontrol adalah mengambil intruksi-intruksi dari memori utama dan menentukan jenis instruksi tersebut. Bila ada instruksi untuk perhitungan aritmatika atau perbandingan logika, maka unit kendali akan mengirim instruksi tersebut ke ALU. Hasil dari pengolahan data dibawa oleh unit kendali ke memori utama lagi untuk disimpan, dan pada saatnya akan disajikan ke alat output. Dengan demikian tugas dari unit kendali ini adalah:
• Mengatur dan mengendalikan alat-alat input dan output. • Mengambil instruksi-instruksi dari memori utama. • Mengambil data dari memori utama (jika diperlukan) untuk diproses. • Mengirim instruksi ke ALU bila ada perhitungan aritmatika atau perbandingan logika serta mengawasi kerja dari ALU. • Menyimpan hasil proses ke memori utama.
* Register merupakan alat penyimpanan kecil yang mempunyai kecepatan akses cukup tinggi, yang digunakan untuk menyimpan data dan/atau instruksi yang sedang diproses. Memori ini bersifat sementara, biasanya di gunakan untuk menyimpan data saat di olah ataupun data untuk pengolahan selanjutnya. Secara analogi, register ini dapat diibaratkan sebagai ingatan di otak bila kita melakukan pengolahan data secara manual, sehingga otak dapat diibaratkan sebagai CPU, yang berisi ingatan-ingatan, satuan kendali yang mengatur seluruh kegiatan tubuh dan mempunyai tempat untuk melakukan perhitungan dan perbandingan logika.
* ALU unit yang bertugas untuk melakukan operasi aritmetika dan operasi logika berdasar instruksi yang ditentukan. ALU sering di sebut mesin bahasa karena bagian ini ALU terdiri dari dua bagian, yaitu unit arithmetika dan unit logika boolean yang masing-masing memiliki spesifikasi tugas tersendiri. Tugas utama dari ALU adalah melakukan semua perhitungan aritmatika (matematika) yang terjadi sesuai dengan instruksi program. ALU melakukan semua operasi aritmatika dengan dasar penjumlahan sehingga sirkuit elektronik yang digunakan disebut adder.
Tugas lain dari ALU adalah melakukan keputusan dari suatu operasi logika sesuai dengan instruksi program. Operasi logika meliputi perbandingan dua operand dengan menggunakan operator logika tertentu, yaitu sama dengan (=), tidak sama dengan (¹ ), kurang dari (<), kurang atau sama dengan (£ ), lebih besar dari (>), dan lebih besar atau sama dengan (³ ).
* CPU Interconnections adalah sistem koneksi dan bus yang menghubungkan komponen internal CPU, yaitu ALU, unit kontrol dan register-register dan juga dengan bus-bus eksternal CPU yang menghubungkan dengan sistem lainnya, seperti memori utama, piranti masukan /keluaran.
Cara Kerja CPU
Saat data dan/atau instruksi dimasukkan ke processing-devices, pertama sekali diletakkan di RAM (melalui Input-storage); apabila berbentuk instruksi ditampung oleh Control Unit di Program-storage, namun apabila berbentuk data ditampung di Working-storage). Jika register siap untuk menerima pengerjaan eksekusi, maka Control Unit akan mengambil instruksi dari Program-storage untuk ditampungkan ke Instruction Register, sedangkan alamat memori yang berisikan instruksi tersebut ditampung di Program Counter. Sedangkan data diambil oleh Control Unit dari Working-storage untuk ditampung di General-purpose register (dalam hal ini di Operand-register). Jika berdasar instruksi pengerjaan yang dilakukan adalah arithmatika dan logika, maka ALU akan mengambil alih operasi untuk mengerjakan berdasar instruksi yang ditetapkan. Hasilnya ditampung di Accumulator. Apabila hasil pengolahan telah selesai, maka Control Unit akan mengambil hasil pengolahan di Accumulator untuk ditampung kembali ke Working-storage. Jika pengerjaan keseluruhan telah selesai, maka Control Unit akan menjemput hasil pengolahan dari Working-storage untuk ditampung ke Output-storage. Lalu selanjutnya dari Output-storage, hasil pengolahan akan ditampilkan ke output-devices.
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.
Percabangan instruksi
Pemrosesan instruksi dalam CPU dibagi atas dua tahap, Tahap-I disebut Instruction Fetch, sedangkan Tahap-II disebut Instruction Execute. Tahap-I berisikan pemrosesan CPU dimana Control Unit mengambil data dan/atau instruksi dari main-memory ke register, sedangkan Tahap-II berisikan pemrosesan CPU dimana Control Unit menghantarkan data dan/atau instruksi dari register ke main-memory untuk ditampung di RAM, setelah Instruction Fetch dilakukan. Waktu pada tahap-I ditambah dengan waktu pada tahap-II disebut waktu siklus mesin (machine cycles time).
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.
Bilangan yang dapat ditangani
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.
bios ( basic input output system )
BIOS, singkatan dari Basic Input Output System, dalam sistem komputer IBM PC atau kompatibelnya (komputer yang berbasis keluarga prosesor Intel x86) merujuk kepada kumpulan rutin perangkat lunak yang mampu melakukan hal-hal berikut:
1. Inisialisasi (penyalaan) serta pengujian terhadap perangkat keras (dalam proses yang disebut dengan Power On Self Test, POST)
2. Memuat dan menjalankan sistem operasi
3. Mengatur beberapa konfigurasi dasar dalam komputer (tanggal, waktu, konfigurasi media penyimpanan, konfigurasi proses booting, kinerja, serta kestabilan komputer)
4. Membantu sistem operasi dan aplikasi dalam proses pengaturan perangkat keras dengan menggunakan BIOS Runtime Services.
BIOS menyediakan antarmuka komunikasi tingkat rendah, dan dapat mengendalikan banyak jenis perangkat keras (seperti keyboard). Karena kedekatannya dengan perangkat keras, BIOS umumnya dibuat dengan menggunakan bahasa rakitan (assembly) yang digunakan oleh mesin yang bersangkutan.
Istilah BIOS pertama kali muncul dalam sistem operasi CP/M, yang merupakan bagian dari CP/M yang dimuat pada saat proses booting dimulai yang berhadapan secara langsung dengan perangkat keras (beberapa mesin yang menjalankan CP/M memiliki boot loader sederhana dalam ROM). Kebanyakan versi DOS memiliki sebuah berkas yang disebut "IBMBIO.COM" (IBM PC-DOS) atau "IO.SYS" (MS-DOS) yang berfungsi sama seperti halnya CP/M disk BIOS.
Kata BIOS juga dapat diartikan sebagai "kehidupan" dalam tulisan Yunani (Βίος)....
Komponen BIOS
Dalam BIOS, terdapat beberapa komponen dasar, yakni sebagai berikut:
* Program BIOS Setup yang memungkinkan pengguna untuk mengubah konfigurasi komputer (tipe harddisk, disk drive, manajemen daya listrik, kinerja komputer, dll) sesuai keinginan. BIOS menyembunyikan detail-detail cara pengaksesan perangkat keras yang cukup rumit apabila dilakukan secara langsung.
* Driver untuk perangkat-perangkat keras dasar, seperti video adapter, perangkat input, prosesor, dan beberapa perangkat lainnya untuk sistem operasi dasar 16-bit (dalam hal ini adalah keluarga DOS).
* Program bootstraper utama yang memungkinkan komputer dapat melakukan proses booting ke dalam sistem operasi yang terpasang.
ROM dan NVRAM
BIOS juga sering disebut sebagai ROM BIOS karena pada awalnya BIOS disimpan dalam chip memori hanya baca (ROM) dalam motherboard. Mengapa disimpan di dalam ROM, adalah agar BIOS dapat dieksekusi pada waktu komputer dinyalakan, tanpa harus menunggu untuk menyalakan perangkat media penyipanan terlebih dahulu (yang memakan waktu lama). BIOS dalam komputer PC modern disimpan dalam chip ROM yang dapat ditulisi ulang secara elektrik atau Flash ROM. Karena itulah, sekarang sebutan Flash BIOS lebih populer dibandingkan dengan ROM BIOS. Berikut ini adalah beberapa chip ROM yang digunakan sebagai tempat penyimpanan BIOS....
Meskipun BIOS disimpan dalam memori hanya baca, konfigurasi BIOS tidak disimpan dalam ROM, (hal ini disebabkan oleh sifat ROM yang statis) melainkan sebuah chip terpisah yang disebut sebagai Real-time clock (RTC), yang berupa sebuah Non-Volatile Random Access Memory (NVRAM). NVRAM juga sering disebut sebagai Complimentary Metal-Oxide Random Access Memory (CMOS RAM), karena menggunakan metode pembuatan CMOS. Karena menggunakan metode pembuatan CMOS, NVRAM membutuhkan daya yang sangat kecil agar dapat bekerja. Meskipun disebut non-volatile, NVRAM sebenarnya merupakan sebuah chip yang volatile, sehingga data yang tersimpan di dalamnya dapat terhapus dengan mudah jika daya listrik yang menghidupinya terputus. Oleh karena itu, NVRAM "dihidupi" oleh sebuah baterai (mirip baterai kalkulator atau jam) dengan bahan Litium dengan seri CR-2032. Sebuah baterai Litium CR-2032 dapat menghidupi NVRAM selama tiga hingga lima tahun. Jika daya dalam baterai habis, atau daya yang disuplainya terputus (akibat dicabut dari slotnya), maka semua konfigurasi akan dikembalikan ke kondisi standar, sesuai ketika BIOS tersebut diprogram oleh pabrikan. BIOS umumnya memberikan laporan CMOS Checksum Error atau NVRAM Checksum Error.....
Pembuat BIOS
Saat ini, ada beberapa perusahaan penyedia BIOS, yakni sebagai berikut:
* Award Software, yang meluncurkan Award BIOS, Award Modular BIOS, dan Award Medallion BIOS
* Phoenix Technologies, yang meluncurkan Phoenix BIOS, dan setelah melakukan merjer dengan Award Software, meluncurkan Phoenix-Award BIOS.
* American Megatrends Incorporated (AMI) yang merilis AMI BIOS, dan AMI WinBIOS.
* Microids Research
* Para OEM (Original Equipment Manufacturer), seperti Hewlett-Packard/Compaq, IBM/Lenovo, Dell Computer, dan OEM-OEM lainnya.
Update BIOS
BIOS kadang-kadang juga disebut sebagai firmware karena merupakan sebuah perangkat lunak yang disimpan dalam media penyimpanan yang bersifat hanya-baca. Hal ini benar adanya, karena memang sebelum tahun 1995, BIOS selalu disimpan dalam media penyimpanan yang tidak dapat diubah. Seiring dengan semakin kompleksnya sebuah sistem komputer , maka BIOS pun kemudian disimpan dalam EEPROM atau Flash memory yang dapat diubah oleh pengguna, sehingga dapat di-upgrade (untuk mendukung prosesor yang baru muncul, adanya bug yang mengganggu kinerja atau alasan lainnya). Meskipun demikian, proses update BIOS yang tidak benar (akibat dieksekusi secara tidak benar atau ada hal yang mengganggu saat proses upgrade dilaksanakan) dapat mengakibatkan motherboard mati mendadak, sehingga komputer pun tidak dapat digunakan karena perangkat yang mampu melakukan proses booting (BIOS) sudah tidak ada atau mengalami kerusakan.
Oleh karena itu, untuk menghindari kerusakan (korupsi) terhadap BIOS, beberapa motherboard memiliki BIOS cadangan . Selain itu, kebanyakan BIOS juga memiliki sebuah region dalam EEPROM/Flash memory yang tidak dapat di-upgrade, yang disebut sebagai "Boot Block". Boot block selalu dieksekusi pertama kali pada saat komputer dinyalakan. Kode ini dapat melakukan verifikasi terhadap BIOS, bahwa kode BIOS keseluruhan masih berada dalam keadaan baik-baik saja (dengan menggunakan metode pengecekan kesalahan seperti checksum, CRC, hash dan lainnya) sebelum mengeksekusi BIOS. Jika boot block mendeteksi bahwa BIOS ternyata rusak, maka boot block akan meminta pengguna untuk melakukan pemrograman BIOS kembali dengan menggunakan floppy disk yang berisi program flash memory programmer dan image BIOS yang sama atau lebih baik. Pembuat motherboard sering merilis update BIOS untuk menambah kemampuan produk mereka atau menghilangkan beberapa bug yang mengganggu.
Masa depan BIOS
BIOS telah lama digunakan dalam industri PC, yakni semenjak IBM PC dirilis pada tanggal 21 Agustus 1981. Karena BIOS masih berjalan pada modus real (real-mode) yang lambat, maka para desainer PC bersepakat untuk mengganti BIOS dengan yang lebih baik dari BIOS yaitu EFI (Extensible Firmware Interface) yang diturunkan dari arsitektur IA-64 (Itanium).