mesin von neumann bagian utama cpu - dinus.ac.iddinus.ac.id/repository/docs/ajar/orakom-08.pdf ·...
TRANSCRIPT
Mesin von Neumann
• Konsep untuk memiliki sebuah program yang tersimpan dalam memori komputer
• Arsitektur dasar mesin ini masih menjadi kerangka referensi pada komputer modern
Mesin von Neumann
Mesin von Neumann• Program disimpan dalam unit memori utama, yang
berhadapan dengan piranti input/output (I/O) melalui unit pengolahan pusat (CPU atau central processing unit)
• CPU membaca dari atau menulis ke memori, pertama-tama dengan mengirimkan alamat word ke unit memori melalui bus adress dan kemudian menerima atau mengirimkan data melalui bus data.
• Data dipertukarkan antara CPU dan unit I/O juga menggunakan data bus.
• Operasi ini disinkronisasikan oleh dua bus control dengan sinyal kendali yang dikirim oleh CPU dan sinyal acknowledgement serta sinyal interupsi yang diterima oleh CPU.
Prosesor: Control & Datapath
Processor(active)
Computer
Control
Datapath
Memory(passive)
(dimana program, data adaketika dijalankan)
Devices
Input
Output
Bagian Utama CPU
• Kumpulan register / register set• Unit aritmatika dan logika (ALU /
Arithmetic and Logic Unit)• Unit kendali logika (CU / Control Unit)
Bagian Utama CPU
• Kumpulan register menyimpan informasi sementara yang diperlukan untuk melaksanakan sebuah instruksi atau kumpulan instruksi / program
• ALU menggunakan nilai-nilai yang tersimpan dalam kumpulan register untuk melakukan operasi aritmatika dan logika
Bagian Utama CPU
• CPU mengendalikan sistem dalam dua cara:– Dengan mengarahkan transfer ke dan dari
register baik ke maupun dari memori, ALU dan register lainnya
– Dengan memerintahkan ALU ke operasi yang akan dijalankan
Bagian Utama CPU
Kumpulan Register
• Register dari sebuah komputer secara kolektif disebut sebagai kumpulan register / register set
• Beberapa register mungkin mempunyai jenis yang sama, yang lainnya mungkin berbeda
• Beberapa register berlaku umum pada hampir semua komputer
Register Program Counter• Menyimpan alamat memori dari instruksi selanjutnya
yang akan dijalankan• Pelaksanaan sebuah program biasanya dilakukan
berurutan, maka alamat instruksi berikutnya bernilai 1 lebih tinggi daripada alamat dari instruksi saat ini.
• PC ← (PC)+1• Jika suatu jump atau cabang instruksi dijalankan,
instruksi yang akan dilaksanakan berikutnya disimpan pada alamat yang ditentukan dalam cabang instruksi.
• Dalam hal ini, kita ingin me-load langsung alamat baru ke PC :
• PC ← bagian alamat dari instruksi cabang
Register Instruksi• Register khusus untuk menyimpan instruksi• Pertama, instruksi di-fetch dari memori dan disimpan
dalam IR kemudian PC ditingkatkan sehingga ia menunjuk ke instruksi berikutnya
• IR ← M[PC]• PC ← (PC)+1• M[PC] menunjukkan isi lokasi memori yang ditunjuk
oleh PC.• Sekali instruksi disimpan dalam IR, maka instruksi
tersebut dapat di-decode oleh Control Unit (CU) dan operasi mikro dapat diaktifkan untuk pelaksanaannya
Register Umum
• Untuk menyimpan nilai-nilai sementara selama pelaksanaan instruksi
• Sebuah komputer memiliki sebuah register prosesor untuk pelaksanaan instruksi-instruksi, disebut Accumulator (ACC)
Register Flag
• Mengendalikan aliran pelaksanaan pada CU dan ALU
Siklus Eksekusi Program• CPU mem-fetch instruksi berikutnya dari
memori • CPU men-decode instruksi • Berdasarkan instruksi, CPU mengeluarkan
sinyal kendali untuk mem-fetch operand lainnya jika diperlukan dan kemudian akan melaksanakan salah satu tindakan berikut ini : – Melakukan operasi aritmatika atau logika– Menyimpan sebuah hasil ke dalam memori – Membaca sebuah hasil dari atau menuliskan hasil ke
piranti I/O• CPU kembali ke langkah pertama dan
melanjutkan proses hingga program diberhentikan
Siklus Eksekusi Program
1. IR M[PC] // Fetch instruksi2. PC PC + d // Tunjuk ke lokasi
instruksi berikutnya
3. Eksekusi instruksi
Organisasi Prosesor (single bus)
Y
Z
MDR
MAR
PC
TEMP
R(n-1)
R0
IR
InstructionDecoder
ALUCarry-in
AddSub
XOR
Address lines
Data lines
Control lines
Memory bus
ALU control
lines
Control Unit
DatapathUnit
Operasi Dasar Prosesor
• Operasi-operasi Dasar:– Mengambil (fetching) Data dari Memori– Menyimpan (storing) Data ke Memori– Pertukaran Data Antar-Register– Operasi Aritmatika & Logika di Datapath
Mengambil Data dari MemoriInstruksi:
LD R2,(R1) ; R2 M[R1]
Langkah-langkah:1. MAR R12. Read3. Tunggu sinyal MFC
// MFC = Memory Function Completed// Pada saat MFC aktif:// MDR M[MAR]
4. R2 MDR
Y
Z
MDR
MAR
PC
TEMP
R2
R1
IR
InstructionDecoder
ALUCarry-in
AddSub
XOR
Address lines
Data lines
Read MFC
Menyimpan Data ke MemoriInstruksi:
ST (R1),R2 ; M[R1] R2
Langkah-langkah:1. MAR R12. MDR R2, Write3. Tunggu sinyal MFC
// MFC = Memory Function Completed// Pada saat MFC aktif:// M[MAR] MDR
Y
Z
MDR
MAR
PC
TEMP
R2
R1
IR
InstructionDecoder
ALUCarry-in
AddSub
XOR
Address lines
Data lines
Write MFC
Pertukaran Data Antar-RegisterInstruksi:
MOV R4,R1 ; R4 R1
Langkah-langkah:1. Enable output of R1
// setting R1out to 1
2. Enable input of R4// setting R4in to 1
R4
R1
X
X
X
X
R1 in
R1out
R4 in
R4out
Operasi Aritmatika dan LogikaInstruksi:
ADD R1,R2 ; R1 R1 + R2
Langkah-langkah:1. R1out, Yin
2. R2out, Add, Zin
3. Zout, R1in
Y
Z
Ri
ALUA B
X
X
X
X
X
X
Ri in
Riout
Yin
Yout
Zin
Zout
Add
Operasi (A&L): Bagian dari Pertukaran DataKomponen-komponen Datapath:
– Register: tempat penyimpanan data– ALU: tempat pemrosesan aritmatika & logika– Bus: penghubung antar-register & antara register-ALU
• Eksekusi Instruksi merupakan kombinasipertukaran data antara:
– Register Bus Register– Register Bus ALU– Register Bus Memori
• Pertukaran data dilakukan dengan caramengaktifkan gerbang-gerbang register denganmenggunakan sinyal-sinyal kendali (PCout, PCin, dst.)
– Selain itu, juga ada sinyal-sinyal kendali yang berhubungan dengan komponen-komponen lain (Memori: Read, Write; ALU: Add, Sub, Set Carry-in, dst.)