Jumat, 30 November 2018

MEMORI


MEMORI

Memori adalah piranti yang menyimpan instruksi-instruksi dan data yang diperlukan untuk operasi.
Parameter-parameter terpenting dalam sistem memori adalah:
1. Kapasitas
2. Waktu pengaksesan
3. Kecepatan transfer data
4. Waktu siklus
5. Biaya
Memori dibagi menjadi dua kelompok, yaitu: memori utama dan memori pembantu.

Memori Utama merupakan pusat sumber daya sebuah sistem komputer  yang secara dinamis harus dialokasikan bagi para pemakai,program, dan proses. Memori ini menyimpan data dan program yang akan dijalankan oleh CPU dan dapat diakses kumpulan instruksi CPU secara langsung.

Memori Stack merupakan struktur data tidak tetap yang digunakan untuk penyimpanan alamat-kembali dan parameter yang dilalui dalam subroutine call dan return, manipulasi alamat dan data serta operasi aritmatika. Pada memori stack jika kita mau mengakses suatu data yang berada di tengah tumpukan maka tumpukan paling atas dipindahkan terlebih dahulu dan jika sudah selesai maka data tadi akan dikembalikan dibagian paling atas.

Memori Modular komputer menjalankan program dengan mem-fetch instruksi dari memori dan mentransfer data ke dan dari memori.

Gambar diatas merupakan memori modular dengan alamat modul. Penggunaan memori modular ini menurunkan waktu pengaksesan memori dengan mengurangi batas penggunaan suatu memori.

Memori Asosiatif merupakan organisasi memori yang sangat berbeda, disebut juga content-addressable memori (CAM),  didasarkan pada pengaksesan isi bukan dari alamat. Pada memori asosiatif semua pencarian lokasi memori dilakukan secara simultan dan parallel dengan basis isi data untuk melihat apakah ada yang berisi nilai yang diinginkan.

Memori Cache memori akses random (RAM) berkecepatan tinggi yang ditempatkan diantara sistem memori dan pemakainya untuk mengurangi waktu akses efektif dari sistem memori. Semua request memori menuju ke cache. Apabila cache menyimpan kopi dari data yang diminta, maka ia secara cepat memproses request tersebut (cache menangkap). Bila sebaliknya, maka cache akan menyampaikan request tersebut ke memori utama (cache melepaskan).

Memori Pembantu merupakan piranti penyimpan backup, atau secondary secara kolektif disebut sebagai memori pembantu (auxiliary memory). Memori pembantu berfungsi untuk menyimpan sisa dari data yang tidak digunakan CPU pada memori utama.
Jenis memori pembantu:
Pita Magnetik
Disk Magnetik
Floppy Disk
Drum Magnetik
Memori Gelembung Magnetik

Memori Virtual Sistem memori yang digunakan untuk meningkatkan ukuran efektif memori fisik komputer. Memori virtual memetakan alamat logis pemakai ke alamat fisik, sehingga bagian program bisa bertempat pada alamat fisik yang berbeda dengan alamat logis. Prinsip dasar virtual memori adalah kemampuan untuk mengalamati ruang penyimpanan logikal, yang disebut memori virtual, secara fisik lebih besar daripada ruang penyimpanan real.

Memori akses random dinamis (DRAM) Memori yang membutuhkan penyegaran berkala untuk menjaga data agar tetap aktif.

Banking memori Teknik yang digunakan untuk meningkatkan jumlah RAM berkecepatan tinggi yang dapat digunakan oleh komputer. Sistem banking memori terdiri atas sejumlah bank memori fisik dan sebuah register penentu bank. Hardware banking memori memetakan jangkauan alamat fisik tertentu, yang disebut window, ke alamat yang ada dalam bank memori yang telah ditentukan.

Hirarki memori Hirarki peralatan penyimpanan yang ada dalam komputer, yang terdiri dari memori primer atau internal (komponen internal, seperti register CPU, memori cache, dan memori utama) dan memori sekunder atau eksternal (segala peralatan penyimpanan eksternal, seperti disk atau tape).


CLU dan SET REGISTER


CLU dan SET REGISTER



1.CLU (CONTROL LOGIC UNIT)
Unit kendali logika (CLU) pada komputer berfungsi untuk memasukkan informasi tentang instruksi dan mengeluarkan baris kendali yang diperlukan untuk mengaktifkan operasi mikro yang semestinya.
Tidak hanya setiap instruksi yang harus ditangani, tetapi semua sinyal kendali untuk mem-fetch instruksi dan operand dari memori, untuk menangani interupsi dan untuk memproses I/O harus dihasilkan oleh CLU.
Untuk menjalankan instruksi-instruksi yang tersimpan di dalam memori, setiap instruksi diambil (fetched atau disalin dari memori oleh CPU), ditempatkan ke dalam sebuah register dan dijalankan. Bagaimanapun juga, sebuah instruksi adalah sebuah entitas yang kompleks yang pelaksanaannya tidak dapat dilakukan selama satu periode waktu. Karena dalam kenyataannya lebih dari satu periode maka  CPU akan menghasilkan urutan dari urutan-urutan yang mem-fetch instruksi. Funsi-fungsi ini disebut sebagai operasi mikro.

2.SET REGISTER
Set register terdiri atas register-register tujuan umum dan register dengan tujuan khusus, biasanya fungsi khusus dapat digunakan langsung atau tidak langsung oleh instruksi program.
General-purpose register (register tujuan umum) dapat digunakan (oleh instruksi) sebagai akumulator, sumber atau tujuan register data, atau register alamat yang berisi pointer memori atau nilai indeks. Sebagai tambahan, register ini dapat digunakan untuk memberikan fasilitas block, untuk mengijinkan adanya stacking, dan menambah alamat indeks.
Special-purpose register (register tujuan khusus):
-Index register untuk menyimpan angka konstanta yang digunakan dalam perhitungan alamat memori yang efektif dalam mode pengalamatan indeks.
-Stack register untuk operasi subroutine atau untuk menangani kondisi perkecualian.
-Segment register untuk mengimplementasikan pemetaan memori ketika pemasukan memori utama.
-Memory refresh register yang menyediakan secara otomatis transparan refresh dari DRAM.
-Vector interrupt register yang memungkinkan tabel interupsi untuk menempatkan dimana saja dalam memori.
-Temporary register untuk menangani operand lanjutan atau hasil penyimpanan sementara dari operasi.

Referensi
http://www.elearning.gunadarma.ac.id/docmodul/index-arkomp.htm              25 Nov 2018 20.43
http://ymukhlis.staff.gunadarma.ac.id/Downloads/folder/0.1            25 Nov 2018 19.43


Minggu, 04 November 2018

CPU, BUS, DAN ALU


CPU, BUS, DAN ALU

1. CPU(CENTRAL PROCESSING UNIT)
Unit pemrosesan sentral (CPU) dari komputer sederhana mempunyai tiga komponen utama. yakni set register, ALU, dan unit kontrol. Komponen-komponen ini biasanya saling berkomunikasi diantara mereka sendiri dengan menggunakan bus lokal, dan mereka berkomunikasi dengan sistem penyimpanan dan sistem I/O dengan menggunakan satu atau beberapa bus sistem, bus lokal, atau bus lokal expanded.

Eksekusi program yang telah tersimpan secara logis dilakukan sebagai berikut:
1. CPU mem-fetch instruksi berikutnya dari memori.
2. CPU men-decode instruksi.
3. Berdasarkan instruksi, CPU akan melaksanakan salah satu tindakan berikut ini:
            a. Melakukan operasi aritmatik dan logika.
            b. Melakukan penyimpanan ke dalam memori.
            c. Pengendali I/O.
4. CPU akan melakukan reset dan melanjutkan proses hingga program diberhentikan.

2. BUS
Bus membawa informasi diantara komponen dari satu peralatan atau diantara subsistem. Bus dapat dibagi menjadi dua kelompok utama yang didasarkan pada kontrolnya, yaitu bus local dan bus sistem (local buses and system buses). Kelompok hybrid (turunan), yaitu bus lokal yang diperluas, mengkombinasikan fasilitas dari dua bus yang lain.

2.1 Jenis Bus
Bus Lokal
Bus ini disebut local bus (bus lokal), karena ia merupakan bagian dari peralatan yang menggunakan dan mengontrolnya. Dalam CPU, bus lokal umumnya terbagi dalam tiga jenis, yaitu bus alamat, bus data, atau bus kontrol. Address buses (bus alamat) cenderung dikhususkan untuk suatu tujuan dan biasanya bersifat unidireksional. Ia paling sering mentransfer alamat dari counter program (PC), register stack, atau putaran komputasi alamat ke memori, namun bukan sebaliknya. Data buses (bus data) cenderung bersifat umum dalam penggunaannya dan bersifat bidireksional. Ia bisa membawa data, instruksi, dan juga alamat, dan ia menyampaikan data ke dan dari sistem memori utama, peralatan I/O yang dilengkapkan, dan ALU. Control buses (bus kontrol) membawa signal dari unit kontrol ke komponen lain dari komputer dan kembali ke unit kontrol. Signal kontrol yang ia bawa akan mengontrol operasi dari komponen yang menerima signal tersebut.
Bus Sistem
System buses (bus sistem) adalah komponen fungsional independen dari komputer. Setiap bus sitem mempunyai sirkuit kontrol sendiri yang disebut bus controller (pengontrol bus), dan dalam setiap pengontrol bus ada arbiter, yang memproses request untuk menggunakan bus. Pengontrol bus bisa didistribusikan diantara peralatan yang menggunakan bus itu. Peralatan yang ingin menggunakan bus sistem harus minta permisi penggunaan dari arbiter bus. Bus sistem umumnya menghubungkan komponen sistem bersama-sama, seperti CPU, sistem I/O, dan seringkali sistem memori utama, dan perancang biasanya mengoptimisasi bus sistem untuk mentransfer data diantara peralatan I/O dan memori utama.
Bus Lokal Yang Diperluas
Expanded local buses (bus lokal yang diperluas), yang kebanyakan dijumpai dalam sistem mikrokomputer, adalah bus lokal dengan ekstensi khusus untuk penggunaan di luar CPU. Ia sama dengan bus sistem, dalam hal bahwa ia memberikan signal kontrol standard selain memberikan lintasan (pathway) data dan alamat; namun ia bersifat lokal, dalam artian bahwa clock CPU dan sirkuit waktu mengaturnya, sehingga ia merupakan processor-specific.

2.2 Transfer Bus dan Signal Kontrol
Bus transfer (transfer bus) adalah transmisi dari satu atau beberapa informasi melewati bus.
Signal kontrol digunakan untuk mengontrol bus local yang diperluas.

3. ALU(Arithmetic and Logic Unit)
Semua komputer mempunyai functional unit (unit fungsional) yang menjalankan operasi aritmetik, logika. dan shift yang dikehendaki oleh set instruksi komputer. Beberapa komputer mempunyai unit fungsional tunggal, yaitu ALU.
ALU dari sebagian besar komputer mempunyai status register (register status) dan logika associated (tergabung). Register status biasanya mempunyai carry flag (C), overflow flag (V), negative-result flag (N), dan zero-result flag (Z). Bus kontrol dedicated membawa signal kontrol dari unit kontrol ke ALU, dan bus status dedicated membawa signal status dari ALU ke unit kontrol. Bus data input dan output membawa data ke dan dari file register CPU. Mereka ini adalah bus data lokal.

Kesimpulan
CPU terdapat control unit, ALU, dan register, dan yang menghubungkan semua bagian CPU tersebut menggunakan sebuah bus.

Referensi
http://www.elearning.gunadarma.ac.id/docmodul/index-arkomp.htm                       2 Nov 2018 20.43
http://ymukhlis.staff.gunadarma.ac.id/Downloads/folder/0.1            2 Nov 2018 19.43


Sabtu, 03 November 2018

ARSITEKTUR SET INSTRUKSI


ARSITEKTUR SET INSTRUKSI

Setiap komputer alau famili komputer menetapkan suatu arsitektur set instruksi (ISA). Datatype (jenis data) merupakan hal yang pokok bagi semua ISA, set register membentuk dasar operasional ISA. Komponen ketiga dari ISA, yaitu set instruksi, menentukan operasi yang dapat dijalankan oleh komputer dan menentukan teknik yang dapat ia gunanakan untuk mengalamatkan nilai dalam memori. Oleh karena itu, kita akan membahas jenis instuksi yang biasanya dipunyai oleh komputer dan penggunaan instruksi teknik pengalamatan untuk mereferensi memori, dan diakhiri dengan mengemukakan beberapa sifat desain set instruksi.

1. Jenis Instruksi
Walaupun komponen hardware membentuk basis atau dasar kemampuan komputer, namun set instruksi yang menentukan kompleksitas komputasi mesin tersebut. Oleh karena itu, ketika arsitek merancang komputer, ia akan sangat mempertimbangkan ISA-nya. Ia memilih atau mempertimbangkan set datatype, set operasi pada datatype tersebut, set teknik untuk menangani data dalam memori atau register, dan operasi untuk mengontrol berjalannya program, yaitu arus kontrol logis. Bila ia telah menetapkan ISA, ia harus menentukan format instruksi, yang menentukan bagaimana hardware akan menampilkan setiap instruksi.
Jenis-jenis set instruksi dapat dikategorikan menjadi:
1. Operate
1.1 Aritmatik
1.2 Boolean (logika)
1.3 Shift
1.4 Karakter dan string
1.5 Konversi jenis
1.6 Manipulasi/ pengubahan stack dan register
1.7 Load immediate
1.8 Tak ada operasi
1.9 Vektor
2. Akses memori
2.1 Muat dan simpan
2.2 Memuat alamat
2.3 Sinkronisasi proses
3. Kontrol
3.1 Cabang
3.2 Perbandingan dan pengujian
3.3 Hubungan subroutine
4. Jenis lain dan khusus
4.1 I/O
4.2 Pertukaran interrupt dan kedudukan
4.3 Khusus
4.4 Berhenti
5. Vektor

1.1 Instruksi Operate
Instruksi operate menentukan operasi mesin dan oleh karenanya ia menentukan operand untuk operasi mesin tersebut. Instruksi bisa menentukan operand secara eksplisit ataupun implisit. Operand yang ditentukan oleh op-code disebut implicit operand(operand implisit), ia tidak mempunyai spesifikasi yang lain. Sebagai contoh, instruksi CLEAR CARRY memberitahu unit kontrol untuk menghapus flag carry, yang menyimpan bit carry dari instruksi ADD yang terakhir. Instruksi CLEAR CARRY ini tidak mempunyai pengaruh lain, dan flag carry merupakan operand implisit dari instruksi. Explicit operand (operand eksplisit) adalah operand yang ditentukan oleh instruksi dalam field selain field op-code. Kebanyakan operand ditentukan secara eksplisit.
Sebagian besar operand adalah operand data. Jenis operand yang pokok adalah immediate atau addressed. Immediate operand (operand immediate) berada dalam aliran instruksi, umumnya dalam instruksi itu sendiri.
Addressed operand (operand addressed) di sini instruksi harus menentukan address (alamat)-nya. Dalam kasus ini, instruksi menyimpan address specification (spesifikasi alamat). Ada lusinan teknik untuk mengalamatkan address specification.

1.2 Instruksi Akses Memori
Instruksi LOAD dan STORE
Komputer dilengkapi dengan sejumlah instruksi untuk memuat register dari untuk menyimpan isi register ke dalam memori utama. Instruksi LOAD dan STORE ini menentukan ukuran operand (misalnya, byte, word, atau doubleword) dan menentukan jenis operasi (misalnya, LOAD POSITIVE, LOAD NEGATIVE). Instruksi yang menjalankan operasi selain load, seperti LOAD POSITIVE dan LOAD NEGATIVE, adalah instruksi operate dan juga instruksi load.
Instruksi LOAD ADDRESS
Banyak komputer yang dilengkapi dengan instruksi LOAD ADDRESS guna untuk mendapatkan alamat (address) data yang efektif atau alamat instruksi itu sendiri. Namun demikian, tidak seperti halnya dengan instruksi LOAD, instruksi LOAD ADDRESS tidak mengakses memori sama sekali.
Instruksi Sinkronisasi Proses
Instruksi sinkronisasi, yang juga disebut synchronization primitives, banyak digunakan dalam sistem pengoperasian yang mempunyai multitasking (berbagai tugas).

1.3 Instruksi Kontrol
Instruksi kontrol meliputi instruksi branch dan instruksi subroutine-linkage.
Instruksi Branch Kondisional dan Tak-kondisional
Jika tidak ada instruksi branch sama sekali, maka CPU akan menjalankan instruksi dengan sangat urut. Namun karena komputasi biasanya tergantung pada result (hasil) dari operasi sebelumnya, maka diperlukan branch kondisional. Branch kondisional akan menjalankan (mengawali) branch hanya jika kondisi test tertentu telah memadai. Instruksi yang selalu mencabang (branch), yaitu unconditional branches juga berguna, namun tidak terlalu diperlukan, karena branch kondisional dapat digunakan sebagai penggantinya.
Instruksi branch umumnya menentukan satu alamat, yaitu branch address. Branch address (alamat cabang) adalah alamat instruksi berikutnya yang akan dijalankan CPU. Instruksi ini disebut branch-target instruction (instruksi target cabang). Oleh karenanya, alamat cabang merupakan operand dari instruksi cabang.
Branch Test
Branch test adalah operand untuk instruksi cabang kondisional. Branch test adalah test yang outcome (hasil)-nya menentukan apakah branch dalam pertanyaan harus terjadi atau tidak.
Instruksi Hubungan Subroutine
Dalam suatu instruksi pasti mengalami, satu prosedur yang mungkin akan mengakibatkan terjadinya prosedur yang lain, dan prosedur yang kedua ini akan mengembalikan kontrol ke calling procedure (prosedur yang pertama). Kebanyakan komputer paling tidak dilengkapi dua instruksi hubungan subroutine (subroutine-linkage instruction) untuk tujuan tersebut. Yang satu untuk mencabang ke prosedur dan yang satunya untuk mengembalikan dari prosedur tersebut. Kita akan menggunakann JSR (jump and save register) sebagai instruksi mencabang ke prosedur biasa, dan RET (return) sebagai instruksi kembali ke prosedur biasa.

1.4 Instruksi Jenis Lain dan Khusus
Instruksi ini tidak termasuk dalam ketiga kategori sebelumnya. Instruksi ini meliputi instruksi I/O, interrupt, instruksi state-swapping, dan instruksi yang mengubah tingkat kekhususan.
Instruksi I/O
Instruksi I/O akan menjalankan signal kontrol yang mengontrol peralatan I/O. Instruksi I/O biasa menentukan I/O device address (bilangan yang menentukan peralatan I/O) dan menetapkan kode yang memberitahu peralatan mengenai operasi yang akan dijalankan.
Operasi Interrupt dan State-swapping
Interrupt adalah contoh branch yang dijalankan hardware (hardware-initiated branch). Ketika hardware menginterupsi suatu program, ia menyimpan informasi yang cukup mengenai keadaan/kedudukan (state) program guna menjalankan kembali program tersebut nantinya.
Instruksi Khusus
Sebagian besar komputer mempunyai instruksi khusus, yang disebut privileged instruction( instruksi khusus), yang memungkinkan sistem software melindungi dirinya sendiri dari manipulasi software pemakai.

1.5 Instruksi Vektor
Walaupun sebagian besar komputer tidak dilengkapi dengan instruksi vektor, namun ia dapat dijumpai di super computer dan berbagai komputer berkinerja tinggi, termasuk beberapa mesin RISC. Lebih dari itu, banyak komputer yang bisa ditambahi dengan hardware vektor khusus untuk mempercepat operasi vektor dan matriks. Dua sifat operasi vektor yang sangat penting adalah: (1) operasi vektor menggunakan pola reguler dalam mengakses memori, dan (2) operasi vektor melakukan operasi yang saran pada urutan operand.

2. Teknik Pengalamatan
Berikut teknik pengalamatan yang biasa digunakan:
1. Direct Addressing
2. Register Addressing
3. Indirect Addressing
4. Base Addressing
5. Indexed Addressing
6. Relative Addressing
7. Immediate Addressing
8. Page Addressing

3. Design Set Instruksi
Untuk desain awal, hal pertama yang harus diperhatikan adalah mengenai kelengkapan set instruksi dengan tidak ada fungsionalitas yang tertinggal. Pertimbangan kedua adalah bahwa instruksi harus bersifat ortogonal, yaitu tidak perlu berlebih-Iebihan. Yang ketiga adalah kompatibilitas yaitu program yang dijalankan oleh suatu komputer harus dapat dijalankan pada komputer yang lain. Persoalan penting yang lain dalam desain adalah umur panjang arsitektur, ekspandabilitas (daya kembang) jangkauan pengalamatan fisik dan homogenitas ruang alamat. Dan yang terakhir format instruksi untuk kemudahan implementasi ISA.

3.1 Kelengkapan
Pada tingkat yang paling dasar, NAND gate sudah cukup untuk mengimplementasikan semua operasi boolean dan aritmetik, maka mereka cukup untuk semua operasi komputer. Demikian pula, instruksi branch kondisional yang juga menyimpan isi PC cukup untuk menangani semua arus kontrol dalam komputer. Jadi, dimungkinkan untuk merancang set instruksi yang lengkap dengan instruksi tunggal yang mengkombinasikan NAND, branch kondisional, dan operasi save counter program (PC). Kelengkapan diartikan bahwa CPU dapat melengkapi setiap operasi dasar dengan instruksi tunggal atau dengan urutan operasi yang pendek.

3.2 Ortogonalitas
Kaitannya dengan kelengkapan adalah orthogonality (ortogona litas), yang merupakan sifat imdependansi instruksi. Kelengkapan dan ortogonalitas mempengaruhi compiler dalam berbagai area dan juga mempengaruhi kegunaan arsitektur komputer. Kurangnya ortogonalitas dalam set instruksi berarti bahwa compiler mempunyai sejumlah cara untuk menghasilkan kode untuk operasi umum.
Dari sudut pandang perancang komputer, kurangnya ortogonalitas berarti bahwa ada lebih banyak instruksi yang diimplementasikan dan dicek. Lebih dari itu, kelebihan instruksi ini umumnya memperlambat komputer karena mereka memerlukan hardware tambahan, sehingga mesin setidaknya harus sedikit lebih besar dan mesin yang lebih besar ini akan lebih lambat.

3.3 Kompatibilitas
Dalam desain set instruksi pada arsitektur komputer suatu set instruksi harus bisa dijalankan disetiap arsitektur komputer yang berbeda-beda.

3.4 Format Instruksi
Format instruksi adalah encoder dari op-code dan operand ke dalam suatu format tertentu yang akan dimasukkan ke dalam memori.

Kesimpulan
Dalam arsitektur komputer memerlukan sebuah set instruksi untuk menjalankan dan memproses berbagai data pada komputer. Dan jenis-jenis instruksi ini ada banyak seperti instruksi operasi untuk melakukan instruksi Aritmatik atau Boolean dan ada juga instruksi akses memori untuk meminta penggunaan memori dan instruksi lainnya, dalam instruksi juga memiliki teknik pengalamatan untuk mengakses register dan memori. Dalam mendesain set instruksi perlu memerhatikan kelengkapan dari set instruksi itu sendiri dan juga harus kompatibel terhadap arsitektur computer yang berbeda.

Referensi
http://www.elearning.gunadarma.ac.id/docmodul/index-arkomp.htm                                 1 Nov 2018 20.43
http://ymukhlis.staff.gunadarma.ac.id/Downloads/folder/0.1            2 Nov 2018 19.43