Deskripsi informal sederhana dari computer RISC,SRC
Pada bab ini akan dijelaskan informal deskripsi dari RISC,dan di bab berikutnya akan dijelaskan secara deskripsi secara formal.
Register dan struktur memory
31
0
7 0
R0
32 32-bit general purpose
232
byte of main memory
0
R3
.
.
PC
.
IR
232-1
SRC CPU
Main memory
Gambar 1
Gambar ini adalah model dari mesin SRC.ini daftar gambaran umum mesin dengan 32 general purpose, 32-bit register, PC(Program Counter) dan IR(Intruksi Register).data di organisasikan berdasarkan byte-byte array,dan hanya word 32-bit yang bisa di ambil,diproses atau disimpan pada main memory.memory melakukan akses dengan model yang telah diuraikan diatas.word di address A digambarkan sebagai 4 byte didalam alamat dan 3 alamat sisanya.
Format intruksi
Dalam gambar berikut ini menampilkan 23 intruksi di 8 format yang berbeda.
Intruksi format
Example
1.ld,st,la,addi,andi,ori
31 27
26 22
21 17
16 0
Op
ra
rb
cs2
ld r3,A
ld r3,a(r5)
addi r2,r4,1
(R[3]=M[A])
(R[3]=M[R[A]+4])
(R[2]=R[A]+1)
2. ldr,str,lar
31 27
26 22
21
0
Op
ra
cs2
ldr r5,8
lar r6,45
(R[5]=M[PC+8])
(R[6]=PC+45)
3.neg,not
31 27
26 22
21 17
16
0
Op
ra
unused
rc
unused
neg r7,r9
(R[7]=-R[9])
4.br
31 27
26 22
21 17
16
11
2 0
Op
unused
rb
rc
(c3) unused
Cond
brzr r4,r0
(branch to R[4] if R[0] == 0 )
5.brl
31 27
26 22
21 17
16
11
2 0
Op
ra
rb
rc
(c3) unused
Cond
Brlnz r6,r4,r0
(R[6]=PC:branch to R[4] if R[0] =! 0)
6.add,sub,and,or
31 27
26 22
21 17
16
11 0
Op
ra
rb
rc
unused
add r0,r2,r4(R[0]=R[2]+R[4])
7.shr,shra,shl,shc
7a)
31 27
26 22
21 17
4 0
Op
ra
rb
(c3)unused
Count
7b)
31 27
26 22
21 17
16 12
4 0
Op
ra
rb
rc
(c3) unused
00000
shr r0,r1,r4
shl r2,r4,r6
(R[0]=R[1] shifted right by 4 bits
(R[2]=R[4] shifted left by count in R[6])
8. nop,stop
31 27
26 0
Op
Unused
stop
èLoad And Store instruksi: terdapat 4 instruksi load untuk memindahkan data dari memory ke prosesor. àld, ldr, la dan lar. Dan terdapat 2 instruksi store untuk memindahkan data dari prosesor ke memory. àst, str
èBranch instruksi: terdapat 2 branch instruksi yaitu br dan brl, ini membiarkan branch dalam keadaan unconditional dan conditional ke alamat yang telah dispesifikasikan dalam register. Kondisi branch akan dicoba dalam kondisi ketika register= 0, =! 0, >= 0, atau <> adalah M[40]<7..0>#M[41]<7..0>#M[42]<7..0> #M[40]<7..0>.
Dari definisi memori untuk SRC, merupakan peristiwa yang alamat memori akan memerlukan 32 bit. Karena register instruksi hanya mempunyai 32 bits, itu tidak akan mungkin dari intruction untuk berisi alamat memori penuh beserta satu sandi operasi. Daftar dan penghitung program, bersifat cukup panjang untuk berisi suatu alamat memori.
Bentuk yang berbeda pada bagian-bagian dari daftar mempunyai tujuan khusus di mana suatu nama yang terpisah bermanfaat. Pendaftaran bentuk memberi perubahan pada bagian daftar-daftar atau expresi kombinasi dari bagian daftar-daftar. Yang berbeda pada bagian-bagian dari register instruksi itu terutama penting sekali di dalam menginterpretasikan arti dari satu instruksi.
Intruction format
Op(4…0) := IR(31..27); operation code field
ra(4..0) :=IR(26..22); target register field
rb(4..0) :=IR(21..17); operand, address index, or branch target register
rc(4..0) :=IR(16..21); second operation, condition test, or shift count register
c1(21..0):=IR(21..0); long displacement field
c2(16..0):=IR(16..0); short displacement field
c3(11..0):=IR(11..0); count or modifier field
Karena field tumpang-tindih yang dengan isi yang berbeda, suatu bit yang diberi mungkin mempunyai beberapa nama dengan maksud maupum arti yang sesuai, tergantung pada instruksi. Sebagai contoh, beberapa instruksi menggunakan op, ra, dan c1 field dimana order atau pesanan menggunakan op, ra,rb,rc,and c3, ketika ditunjukan sebelumnya di dalam.
Kalkulasi-kalkulasi alamat efektif sebagian dari bentuk-bentuk yang paling penting untuk menyebut ungkapan-ungkapan dari fields daftar daripada hanya mengganti nama bit karena diantaranya digunakan untuk menghitung alamat efektif memori untuk mengisi atau menyimpan. Alamat efektif dapat merupakan absolut atau sehubungan dengan pc .
èeffective address (displacement)
Disp <31..0> := ((rb=0)àc2(16..0) [sign extend] Displacement mode
(rb=!0 àR[rb]+c2<16..0> {sign extend, 2’s complement})
Cataatan bahwa definisi ini tidak katakan R[0] itu identik dengan kosong. Itu hanya mengatakan bahwa ketika R[0] terpilih sebagai daftar di kalkulasi disp yang field c2 sendiri harus diambil sebagai pengganti.
Simbol à adalah satu sisipan dari jika - lalu. Yang tidak memiliki konsep dari selain itu didalamnya. Jika dua kondisi-kondisi pada sisi kiri berbeda à tanda-tanda bersifat benar, kedua-dua sisi kanan akan dievaluasi. Di dalam kasus di atas, kedua kondisi-kondisi adalah lepas, maka hanya akan ada jawaban benar. Catat bahwa sisi kanan dari à adalah nilai-nilai dan bukan operasi, sehingga ungkapan-ungkapan adalah suatu definisi yang bersyarat nilai disp. à simbol digunakan sebagai ganti notasi jika - lalu oleh karena perbedaan ini. Walaupun beberapa bahasa pemrograman menggunakan gagasan untuk nilai-nilai bersyarat, itu lebih sering kali dilihat pada matematika. sebagai contoh nilai mutlak dapat digambarkan sebagai berikut:
x:= ((x<0)>=0)àx):
Di dalam penggambaran suatu sisi hal yang ditinggalkan lebih panjang dalam kaitan dengan menggunakan istilah short right hand side, atau di dalam menambahkan dua fields dengan panjangnya yang berbeda, perlu menetapkan batasan betapa pendek jadi luas dan apa yang akan dilakukan bila suatu jumlahan bahwa ternyata terlalu panjang. Ini tercapai oleh modifier-modifier yang terdapat di tanda kurung – tanda kurung, { },setelah operasi.
Penafsiran bahasa english dari gaya penggantian ini tunjuk di SRC oleh karena itu dibentuk dengan menambahkan isi-isi dari suatu daftar yang terpilih kepada area- area penggantian dari instruksi kecuali jika daftar ditetapkan adalah R[0], di kasus kosong ditambahkan kepada arae penggantian lagi. Kembali menekankan pembedaan antara (rb=0) dan (R[rb]=0). Pertama adalah suatu perbandingan dari nomor daftar kepada daftar kosong. Yang kedua adalah perbandingan dari isi-isi daftar kepada daftar kosong. Dengan begitu, meski R[0] adalah satu daftar yang biasa yang tidak digunakan di dalam menghitung alamat-alamat. sebagai gantinya, nomor nya bisa menunjukkan satu didasarkan hanya di konstan pengganti di dalam instruksi. Hal ini selamatkan oleh suatu mode pengalamatan yang khusus atau untuk selamanya nol daftar untuk model alamat yang langsung, Di mana satu alamat ditetapkan secara langsung serta konstan di dalam instruksi.
Effective Address ( Relative)
Rel<31..0>:= PC<31..0> + c1<21..0>{sign extend, 2’s comp.}: Relative addressing mode
Penafsiran Instruksi dan mengambil pelaksanakan siklus
Sejauh ini kita sudah menangani definisi statis unsur-unsur ruang baik penyimpanan dan bentuk. Kita mengetahui jangkauan tindakan bagian dari mesin. Tindakan bahwa terjadi untuk setiap instruksi sebelum instruksi yang spesifik; selalu dikodekan dan dikenal sebagai penafsiran intruction. Penafsiran instruksi melaksanakan berulang-kali sepanjang mesin itu diputar tentang. Di dalam uraian RTN yang berikut siklus ambil itu digambarkan sebagai interval waktu selama yang mana instruksi diambil dan dari kenaikan PC.
Instruction interpretation
instruction_interpretation:=(
-Run^strt à Run ß 1; instruction_interpretation):
Run à (IR ß M [PC]: PC ß PC + 4; instruction_execution) );
Perpindahan daftar-daftar ditandai oleh panah tugas ß. Sisi sebelah kiri dari operator ini harus mewakili yaitu menunjukkan suatu unsur ruang simpan ke dalam nilai dari ungkapan pada sisi kanan dapat ditempatkan.