Minggu, 06 November 2016

Central Processing Unit (CPU)


Bus adalah Jalur komunikasi yang dibagi pemakai Suatu set kabel tunggal yang digunakan untuk menghubungkan berbagai sub sistem. Karakteristik penting sebuah bus adalah bahwa bus merupakan media transmisi yang dapat digunakan bersama. Sistem komputer terdiri dari sejumlah bus yang berlainan yang menyediakan jalan antara dua buah komponen pada bermacam-macam tingkatan hirarki sistem komputer.
Sistem bus adalah penghubung bagi keseluruhan komponen computer dalam menjalankan tugasnya. Transfer data antar komponen komputer sangatlah mendominasi kerja suatu computer. Data atau program yang tersimpan dalam memori dapat diakses dan dieksekusi CPU melalui perantara bus, begitu juga kita dapat melihat hasil eksekusi melalui monitor juga menggunakan system bus.
Cara Kerja Sistem Bus
·        Pada sistem komputer yang lebih maju, arsitektur  komputernya akan lebih kompleks, sehingga untuk meningkatkan performa, digunakan beberapa buah bus.
·         Tiap bus merupakan jalur data antara beberapa device yang berbeda. Dengan cara ini RAM, Prosesor, GPU (VGA AGP) dihubungkan oleh bus utama berkecepatan tinggi yang lebih dikenal dengan nama FSB (Front Side Bus) .
·        Sementara perangkat lain yang lebih lambat dihubungkan oleh bus yang berkecepatan lebih rendah yang terhubung dengan bus lain yang lebih cepat sampai ke bus utama. Untuk komunikasi antar bus ini digunakan sebuah bridge.

ALU merupakan bagian inti dari suatu sistem komputer. Tugas utama dari ALU adalah melakukan semua perhitungan aritmatik atau matematika yang terjadi sesuai dengan instruksi program. ALU melakukan operasi aritmatik dengan dasar pertambahan, sedang operasi aritmatik yang lainnya seperti pengurangan, perkalian dan pembagian dilakukan dengan dasar penjumlahan. Sehingga sirkuit elektronik di ALU yang digunakan untuk melaksanakan operasi aritmatik ini disebut adder.
Tugas lain ALU adalah melakukan keputusan dari operasi logika sesuai dengan instruksi program. Operasi logika meliputi perbandingan dua buah elemen logika dengan menggunakan operator logika, yaitu =, <>, <, >, <+, >=. ALU juga sering disebut mesin bahasa karena ALU terdiri dari dua bagian, yaitu unit aritmatika dan unit logika boolean yang masing-masing memiliki spesifikasi tugas tersendiri.
Fungsi Aritmatika pada sebuah ALU.
Ada banyak jenis angka yang berbeda dan untuk setiap jenis angka yang berbeda tersebut ada perbedaan cara untuk mewakili angka di dalam sistem komputer.  Berbagai jenis data yang berbeda biasanya mencakup bilangan bulat, bilangan real, dan bilangan desimal berkode-biner. Pada umumnya, data digambarkan dalam notasi sign-magnitude, one’s complememnt atau two’s complement. Karena itu logika ALU untuk proses tertentu merupakan fungsi dari jenis angka yang sedang diproses dan bagaimana mereka direpresentasikan. Jika bilangan bulat digambarkan dalam notasi sign-magnitude, maka penambahan pertama-tama dikerjakan dengan memeriksa sign bit dan kemudian menambah atau mengurangi angka, tergantung pada magnitude relatifnya.

Fungsi logika pada sebuah ALU

Dibandingkan fungsi aritmatika, fungsi logika pada ALU lebih sederhana. Untuk segala operasi logika yang ingin diterapkan, hanya perlu memuat sejumlah ngerbang logika tertentu untuk operasi tersebut (satu untuk setiap pasangan bit input). Kesederhanaan fungsi logika ini disebabkan oleh tidak adanya sinyal lateral carry-borrow seperti yang dibutuhkan pada fungsi aritmatika. Semua operasi logika secara ketat dijalankan pada posisi bit tunggal dengan tidak menggunakan informasi dari posisi bit sebelumnya atau pengiriman informasi apapun ke posisi bit berikutnya.
ALU dapat diset untuk menangani berapapun jumlah operasi-mikro logika.  Empat operasi logika dasar biasanya adalah AND, OR, NOR, dan XOR sedangkan operasi logika lainnya yang tidak tercakup secara eksplisit dapat diturunkan dari keempat operasi dasar ini. 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. Kebanyakan operasi komputer dieksekusi dalam unit aritmatika dan logika pada prosesor.
Perhatikanlah suatu contoh umum : Misalkan dua bilangan yang  berada dalam memori ditambahkan. Bilangan tersebut dibawa  ke  prosesor  dan  penambahan  yang  sesungguhnya dilakukan oleh  ALU.  Jumlah tersebut kemudian disimpan dalam memori atau tetap dalam prosesor untuk segera digunakan operasi aritmatika atau logika yang lain misalnya, perkalian, pembagian, atau perbandingan bilangan, diawali dengan membawa operan yang diperlukan ke prosesor, di mana operasi tersebut dilakukan oleh ALU. Pada saat operan dibawa ke prosesor, operan tersebut disimpan dalam elemen penyimpanan kecepatan tinggi yang disebut  register. Tiap  register dapat menyimpan satu word data. Waktu akses ke register lebih cepat daripada waktu akses ke unit cache tercepat hirarki memori.
Pada beberapa sistem komputer untuk memperingan dan membantu tugas ALU dari CPU ini diberi suatu peralatan tambahan yang disebut coprocessorsehingga khususnya proses perhitungan serta pelaksanaan pekerjaan pada umumnya menjadi lebih cepat.

Central Logic Unit

Bertugas mengatur dan mengendalikan semua peralatan yang ada di sistem komputer, yaitu :
- mengatur dan mengendalikan alat-alat input dan output
- mengambil instruksi-instruksi dari memori utama
- mengambil data dari memori utama untuk diproses
- mengirim instruksi ke ALU bila ada perhitungan aritmatika atau perbandingan logika serta mengawasi kerja dari ALU
- mengirim hasil proses ke memori utama untuk disimpan dan pada saatnya disajikan ke alat output.

Set Register
Register merupakan perangkat memori sementara yang menyimpan data. Register membantu CPU dalam melaksanakan instruksi. Mereka dikelola oleh unit kontrol. Register berfungsi untuk tempat penyimpanan yang berisi data dan informasi lainnya yang sering dibutuhkan ketika sebuah program sedang berjalan. Register dimaksudkan untuk dapat diakses dengan sangat cepat. Yang termasuk register di antaranya adalah register uji dan instruksi. Register instruksi berisi instruksi CPU sedangkan register uji dimaksudkan untuk menyimpan hasil kerja yang dilakukan oleh CPU.


Macam-macam Jenis dan Fungsi Register

Berikut ini jenis dan fungsi dari masing-masing Register yaitu :

1. General Purpose Register (Register Serbaguna)

Register untuk keperluan umum yang terdiri atas :

a. Register AX (Accumulator register) berfungsi sebagai tempat:
Sementara hasil suatu operasi arithmetika atau logika (AL, AH, AX dan EAX)

- Memasukkan nomor layanan interupsi, untuk keperluan pemesanan sebuah layanan interupsi (register AH).
- Menyimpan bilangan yang dikalikan (reg AL, AX, EAX) dan setengan bagian terkecil (LSB) dari hasil perkalian (register DX-AX dan EDX-EAX).
- Menyimpan setengah bagian terkecil(LSB) sebuah bilangan dibagi (DX-AX dan EDX-EAX) dan hasil bagi (AL, AX, EAX).

b. Register BX (Base Register)
Base register adalah register untuk menyimpan alamat offset data yang terletak di memori (BL, BH, BX dan EBX)

c. Register CX (Counter Register)
Counter register adalah register serbaguna yang berfungsi sebagai:

- Pencacah untuk operasi loop (CX dan ECX)
- Pencacah untuk operasi shift dan rotate (CL)
- Pencacah (counter) untuk operasi string (CX)

d. Register DX (Data register)
Data register adalah register serbaguna yang berfungsi sebagai :

- Penyimpan hasil perkalian 16 bit (DX-AX) dan 32 bit (EDX-EAX).
- Penyimpan hasil pembagian (DX-AX dan EDX-EAX)
- Penyimpan data hexadesimal (kode ASCII) di reg DL untuk dicetak di layar monitor.

2. Pointer Register
Register ini untuk menunjukkan alamat sebuah data di lokasi memori, dipakai saat operasi perpindahan data (dari/ke memori), operasi stack (PUSH/POP) dan penunjukkan alamat suatu instruksi. Berikut adalah macam-macam pointer register: SP (Stack Pointer) dan ESP, BP (Base Pointer) dan IP (Instruction Pointer).

3. Index Register
Sama dengan pointer register, sering digunakan untuk menunjukkan alamat sebuah data di lokasi memori pada operasi string. Macam-macam register Index adalah : SI (Source Index), DI (Destination Index).

4. Segment Register
Segment register membentuk alamat memori untuk data. Pada operasi real mode suatu segment register akan berbeda dengan segment register pada operasi protected mode. Yang termasuk ke dalam segment register antara lain :

- Code segment -> untuk menunjukkan alamt instruksi berikutnya.
- Data segment -> untuk menunjukkan alamat data pada transfer register
- Extra segment -> register tambahan untuk operasi string
- Stack segment -> dengan SP u/ menunjukkan stack dan memanggil suatu prosedur (CALL) dan mengarah ke program utama (RET).
- FS dan GS register -> register tambahan u/ segmen memori yang besar.

5. Flag Register
Berfungsi untuk menunjukkan status (keadaan) sesaat dari mikroprosessor.
Bit-bit pada flag akan mengalami perubahan, tergantung proses yang baru saja berlangsung. Adapun kode bit yaitu sebagai berikut :

- C (carry) -> 1=ada carry out 0= tdk ada carry out
- P (Parity) -> 1=paritas genap 0= paritas ganjil
- A (auxxiliary carry) -> 1=ada carry 0=tdk ada carry
- Z (zero) -> 1=hasilnya nol 0=hasilnya bukan nol
- S (sign) -> 1=hasilnya negatif 0=hasilnya positif
- T (trap) -> bila diset 1 dimungkinkan melakukan debugging.
- I (interrupt) -> 1= pin INTR enable 0=pin INTR disable
- D (direction) -> 1=cacahan turun 0=cacahan naik
- (Overflow) -> menunjukkan adanya kelebihan kapasitas atau tidak
- IOPL (input-output privalege level) -> untuk protected mode
- NT (nested task) -> indikasi dari penggabungan dengan operasi lain.
- RF (resume) -> untuk debugging
- VF (Virtual mode) -> untuk operasi virtual pada protected mode
- AC (alignment check) -> untuk data word dialamati ke memori

Register merupakan tempat menyimpan data sementara yang berada dalam CPU. Register terdiri atas 5 bagian yaitu : General Purpose Register, Pointer Register, Index Register, Segment Register, Flag Register. Fungsi setiap register bermacam-macam sesuai peruntukannya yang telah diatur oleh pembuat mikroprosesor.

Referensi :


ARSITEKTUR SET INSTRUKSI



  Arsitektur Set Instruksi
Set Instruksi (bahasa Inggris: Instruction Set, atau Instruction Set Architecture (ISA)) didefinisikan sebagai suatu aspek dalam arsitektur komputer yang dapat dilihat oleh para pemrogram. Secara umum, ISA ini mencakup jenis data yang didukung, jenis instruksi yang dipakai, jenis register, mode pengalamatan, arsitektur memori, penanganan interupsi, eksepsi, dan operasi I/O eksternalnya (jika ada). ISA merupakan sebuah spesifikasi dari Pullman semua kode-kode biner (opcode) yang diimplementasikan dalam bentuk aslinya (native form) dalam sebuah desain prosesor tertentu. Kumpulan opcode tersebut, umumnya disebut sebagai bahasa mesin (machine language) untuk ISA yang bersangkutan. ISA yang populer digunakan adalah set instruksi untuk chip Intel x86, IA-64, IBM PowerPC, Motorola 68000, Sun SPARC, DEC Alpha, dan lain-lain. ISA kadang-kadang digunakan untuk membedakan kumpulan karakteristik yang disebut di atas dengan mikroarsitektur prosesor, yang merupakan kumpulan teknik desain prosesor untuk mengimplementasikan set instruksi (mencakup microcode, pipeline, sistem cache, manajemen daya, dan lainnya). Komputer-komputer dengan mikroarsitektur berbeda dapat saling berbagi set instruksi yang sama. Sebagai contoh, prosesor Intel Pentium dan prosesor AMD Athlon mengimplementasikan versi yang hampir identik dari set instruksi Intel x86, tetapi jika ditinjau dari desain internalnya, perbedaannya sangat radikal. Konsep ini dapat diperluas untuk ISA-ISA yang unik seperti TIMI yang terdapat dalam IBM System/38 dan IBM IAS/400. TIMI merupakan sebuah ISA yang diimplementasikan sebagai perangkat lunak level rendah yang berfungsi sebagai mesin virtual.
TIMI didesain untuk meningkatkan masa hidup sebuah platform dan aplikasi yang ditulis untuknya, sehingga mengizinkan platform tersebut agar dapat dipindahkan ke perangkat keras yang sama sekali berbeda tanpa harus memodifikasi perangkat lunak (kecuali yang berkaitan dengan TIMI). Hal ini membuat IBM dapat memindahkan platform AS/400 dari arsitektur mikroprosesor CISC ke arsitektur mikroprosesor POWER tanpa harus menulis ulang bagian-bagian dari dalam sistem operasi atau perangkat lunak yang diasosiasikan dengannya. Ketika mendesain mikroarsitektur, para desainer menggunakan Register Transfer Language (RTL) untuk mendefinisikan operasi dari setiap instruksi yang terdapat dalam ISA. Sebuah ISA juga dapat diemulasikan dalam bentuk perangkat lunak oleh sebuah interpreter. Karena terjadi translasi tambahan yang dibutuhkan untuk melakukan emulasi, hal ini memang menjadikannya lebih lambat jika dibandingkan dengan menjalankan program secara langsung di atas perangkat keras yang mengimplementasikan ISA tersebut. Akhir-akhir ini, banyak vendor ISA atau mikroarsitektur yang baru membuat perangkat lunak emulator yang dapat digunakan oleh para pengembang perangkat lunak sebelum implementasi dalam bentuk perangkat keras dirilis oleh vendor.

1.1. Jenis instruksi
·        Data procecessing: Arithmetic dan Logic Instructions

Data processing adalah jenis pemrosesan yang dapat mengubah data menjadi informasi atau pengetahuan. Pemrosesan data ini sering menggunakan komputer sehingga bisa berjalan secara otomatis. Setelah diolah, data ini biasanya mempunyai nilai yang informatif jika dinyatakan dan dikemas secara terorganisir dan rapi, maka istilah pemrosesan data sering dikatakan sebagai sistem informasi. Kedua istilah ini mempunyai arti yang hampir sama, pemrosesan data mengolah dan memanipulasi data mentah menjadi informasi (hasil pengolahan), sedangkan sistem informasi memakai data sebagai bahan masukan dan menghasilkan informasi sebagai produk keluaran.

·        Data storage: Memory instructions

Sering disebut sebagai memori komputer, merujuk kepada komponen komputer, perangkat komputer, dan media perekaman yang mempertahankan data digital yang digunakan untuk beberapa interval waktu. Penyimpanan data komputer menyediakan salah satu tiga fungsi inti dari komputer modern, yakni mempertahankan informasi. Ia merupakan salah satu komponen fundamental yang terdapat di dalam semua komputer modern, dan memiliki keterkaitan dengan mikroprosesor, dan menjadi model komputer yang digunakan semenjak 1940-an.
Dalam penggunaan kontemporer, memori komputer merujuk kepada bentuk media penyimpanan berbahan semikonduktor, yang dikenal dengan sebutan Random Access Memory (RAM), dan kadang-kadang dalam bentuk lainnya yang lebih cepat tapi hanya dapat menyimpan data secara sementara. Akan tetapi, istilah “computer storage” sekarang secara umum merujuk kepada media penyimpanan massal, yang bisa berupa cakram optis, beberapa bentuk media penyimpanan magnetis (seperti halnya hard disk) dan tipe-tipe media penyimpanan lainnya yang lebih lambat ketimbang RAM, tapi memiliki sifat lebih permanen, seperti flash memory.

·        Data Movement: I/O instructions

Data Movement
Proses data movement ini adalah memindahkan (dapat diakatakan membackup juga) data – data dari database yang berupa data, indeks, grand, schema, dan lain – lain ketempat baru. Tempat baru ini bisa ke dalam database baru atau memang untuk dibackup saja.
Data movement terdiri dari 2 bagian besar yaitu:
·         Load & Upload [difokuskan untuk memindahkan data yang berupa indeks atau data itu sendiri alias isi dari database tersebut]
·         Export & Import [memindahkan data secara lengkap, mulai dari grand, schema, dan seluruhnya]

Jika dilihat, load tersebut behubungan dengan import dan upload berhubungan dengan export.
Load berfungsi untuk memasukan data / transaksi ke sebuah table. Dapat dikatakan juga insert, replace, atau update. Sedangkan upload berfungsi untuk membuat dari data table ke fisik / file. Kelemahan load adalah dalam prosesnya bisa saja terjadi data yang tidak berpindah secara sempurna.

Upload Parameter
·             Limit [membatasi beberapa record]
·             Sample [mencari sample yang telah ditentukan]
·                When [berdasarkan kondisi]

Dan pada upload, hanya satu parameter saja yang dapat berjalan alias tak bisa berjalan bersamaan apabila parameternya lebih dari 1.

Bulk Data Movement (Software Pendukung)
·        ETL [Extrat Transform Load], software yang focus terhadap data warehouse
·         Replication and Propagation, software yang memonitoring source database dan target, dan         yang dihasilkan oleh software ini adalah pencatatatn log.

Perlu diperhatikan juga hak akses dalam load & unload, import & export minimal adalah akses select.

Distribution Database
Dalam distribution database terdapat 3 istilah yaitu:
1.     Autonomi [idependent], untuk tabel umum akses yang diberikan berbeda dari setiap user.
2.     Isolation [standalone], untuk tabel khusus (privacy) itu terpisah dari user.
3.     Transparancy [all user], akses tabel terpisah dari user tetapi user masih dapat mengaksesnya.


1.2. TEKNIK PENGALAMATAN
Ada 3 teknik dasar untuk pengalamatan, yaitu:

1.      Pemetaan langsung
Pemetaan langsung (direct mapping), terdiri dari dua cara yakni Pengalamatan Mutlak (absolute addressing) dan Pengalamatan relatif (relative addressing).

a)     Pengalamatan Mutlak
Untuk teknik pengalamatan ‘alamat mutlak’ ini, tidak terlalu mempermasalahkan kunci atribut karena diminta langsung menuliskan di mana alamat record yang akan di masukkan. Jika kita menggunakan hard disk atau magnetic drum, ada dua cara dalam menentukan alamat memorinya, yaitu (1) cylinder addressing dan (2) sector addressing. Jika kita menggunakan cylinder addressing, maka kita harus menetapkan nomor-nomor dari silinder (cylinder), permukaan (surface), dan record, sedangkan bila kita menggunakan sector addressing, maka kita harus menetapkan nomor-nomor dari sektor (sector), lintasan (track), dan permukaan (surface). Teknik ini mudah dalam pemetaan (pemberian) alamat memorinya. Sulitnya pada pengambilan (retrieve) data kembali, jika data yang kita masukkan banyak, kita bisa lupa di mana alamat record tertentu.

b)     Pengalamatan relatif
Teknik ini menjadikan atribut kunci sebagai alamat memorinya, jadi, data dari NIM dijadikan bertipe numeric(integer) dan dijadikan alamat dari record yang bersangkutan. Cara ini memang sangat efektif untuk menemukan kembali record yang sudah disimpan, tetapi sangat boros penggunaan memorinya. Tentu alamat memori mulai dari 1 hingga alamat ke sekian juta tidak digunakan karena nilai dari NIM tidak ada yang kecil. Pelajari keuntungan dan kerugian lainnya.Teknik ini termasuk dalam katagori address space dependent.

2.      Pencarian Tabel (directory look-up)
Teknik ini dilakukan dengan cara mengambil seluruh kunci atribut dan alamat memori yang ada dan dimasukkan ke dalam tabel tersendiri. Jadi tabel itu (misal disebut dengan tabel INDEX) hanya berisi kunci atribut (misalkan NIM) yang telah disorting (diurut) dan alamat memorinya. Jadi, sewaktu dilakukan pencarian data, tabel yang pertama dibaca adalah tabel INDEX itu, setelah ditemukan atribut kuncinya, maka data alamat yang ada di sana digunakan untuk meraih alamat record dari data (berkas/ file/ tabel) yang sebenarnya. Pencarian yang dilakukan di tabel INDEX akan lebih cepat dilakukan dengan teknik pencarian melalui binary search (dibagi dua-dua, ada di mata kuliah Struktur dan Organisasi Data 2 kelak) ketimbang dilakukan secara sequential. Nilai key field (kunci atribut) bersifat address space independent (tidak terpengaruh terhadap perubahan organisasi file-nya), yang berubah hanyalah alamat yang ada di INDEX-nya.

3.      Kalkulasi (calculating).
pada teknik pencarian tabel kita harus menyediakan ruang memori untuk menyimpan tabel INDEX-nya, maka pada teknik ini tidak diperlukan hal itu. Yang dilakukan di sini adalah membuat hitungan sedemikian rupa sehingga dengan memasukkan kunci atribut record-nya, alamatnya sudah dapat diketahui. Tinggal masalahnya, bagaimana membuat hitungan dari kunci atribut itu sehingga hasilnya bisa efisien (dalam penggunaan memori) dan tidak berbenturan nilainya (menggunakan alamat yang sama).

1.3. Desain Set Instruksi
Desain set instruksi merupakan masalah yang sangat komplek yang melibatkan banyak aspek, diantaranya adalah:
·         Kelengkapan set instruksi
·         Ortogonalitas (sifat independensi instruksi)
·         Kompatibilitas: – Source code compatibility – Object code Compatibility

Selain ketiga aspek tersebut juga melibatkan hal-hal sebagai berikut:
·         Operation Repertoire: Berapa banyak dan operasi apa saja yang disediakan, dan berapa sulit operasinya.
·           Data Types: tipe/jenis data yang dapat olah Instruction Format: panjangnya, banyaknya alamat, dsb.
·         Register: Banyaknya register yang dapat digunakan 4 Addressing: Mode pengalamatan untuk operand

Sumber