Tugas translate Arskom
2.3 Deskripsi Informal Yang sederhana / RISC Komputer, SRC
Di bagian ini kita menyediakan suatu uraian SRC informal, dan di bagian yang berikutnya kita menyediakan suatu uraian format. Contoh Mesin ini cukup sederhana dan kekurangan kesulitan perlu mesin riil yang di Bab 4 dan akan bertindak sebagai suatu contoh tentang Desain perangkat keras mesin terperinci.
2.3.1 Struktur Memory dan Register
Gambar 2.9 menunjukan programmer’s model SRC mesin. Ini merupakan suatu mesin daftar umum (general register machine), 32 general purpose, 32-bit registers, dan program counter (PC) and an instruction register (IR). Walaupun memori yang utama adalah berbentuk suatu array bytes, hanya 32-bit kata dapat diambil dari atau menyimpan ke dalam memori utama. Akses Kinandar Memori nya mengikuti load-store model itu uraikan di atas. Suatu kata pada address adalah suatu digambarkan sebagai yang 4 bytes pada yang menunjuk dan berhasil menggantikan tiga alamat(address). Byte di alamat yang paling rendah berisi paling penting 8 bit, byte di alamat yang berikutnya berisi penting paling yang berikutnya 8 bit, dan seterusnya.
Gambar 2.9 pertunjukan 23 instruksi di (dalam) 8 format berbeda:
Instruksi Load dn Store: Empat instruksi tersebut seperti ld, ldr, Ia, and lar dan Dua instruksi st and str.
Instruksi Branch(Cabang) : Ada dua instruksi cabang yaitu br dan brl, yang mengijinkan cabang bersyarat dan tanpa syarat bagi suatu alamat terdapat di suatu daftar ditetapkan. Cabang yang bersyarat Tersebut adalah suatu register’s indeks dan cabang ketika indeks daftar adalah= 0, 0, 0, atau<>
Instruksi Perhitungan: Ada empat instruksi perhitungan: add, addi, sub, dan neg. Alt kecuali addi mengambil dua kinandar daftar dan menempatkan hasil dalam) suatu daftar. Instruksi Addi menambahkan suatu [yang] tetap segera terdapat di c2 bidang bagi suatu daftar dan menempatkan hasil dalam suatu daftar.
Perpindahan Instruksi Logical : ada sembilan Perpindahan Instruksi Logical yaitu and, andi, or, on, not, shr, sha, shi, dan shc. Perpindahan Instruksi dapat bergeser dengan suatu gelar ningrat berisi sebagai tetap instruksi atau oleh suatu gelar ningrat dalam suatu daftar.
Instruksi Miscellaneous : Ada dua zero-operand instruksi: kegagalan dan perhentian.
Semua instruksi adalah 32 bit panjang. Sebab SRC dari load-store kelas mesin, kinandar dalam memori dapat diakses hanya mengisi dan menyimpan instruksi. Semua instruksi mempunyai suatu S-Bit opcode Bidang, membiarkan 32 instruksi berbeda. Di sini kita menggambarkan hanya 23 instruksi ini. Ra, Rb, dan Rc bidang adalah S-Bit Bidang yang menetapkan salah satu dari 32 general purpose registers . Ci tetap, C2, C3, Cond, dan Gelar ningrat digunakan dalam berbagai jalan yang kita akan menjeniskan kita mendiskusikan instruksi yang individu yang mendiskusikan memori yang menunjukan gaya dan kemudian masing-masing yang 23 instruksi. Ketika kita menguraikan instruksi masing-masing, kita meliputi suatu bidang komentar mulai dengan suatu titik koma yang menguraikan operasi instruksi dipseudo C kode. Notasi M[X] berarti nilai itu menyimpan pada kata x dalam memori.
Pesan bahwa ada banyak tak terpakai “ melubangi” di instruksi yang memboroskan ruang memori. Kesediaan ini untuk menjualkan lebih sedikit penggunaan memori yang efisien untuk mempunyai semua instruksi persisnya satu kata merindukan adalah suatu corak dari RISC mesin yang paling modern. Isu ini dibahas secara lebih detil di dalam Bab 3.
2.3.3 Mengakses Memori : Instruksi Load and Store.
Instruksi Load and Store adalah satu-satunya SRC instruksi untuk mengakses kinandar di dalam memori.
Instruksi ini menggunakan format 1 dari Gambar 2.9. Daftar untuk terisi atau disimpan ditetapkan 5-bit bidang ra, dan alamat ditetapkan [ketika;seperti] 17-bit menghargai c2 bidang- B servis bidang menggandakan tugas. Jika rb (0) itu adalah, jika nilai S-Bit Bidang adalah nol, menetapkan r(O), ini bertindak sebagai suatu isyarat kepada unit pengendalian mesin alamat memori hanya nilai c2 sebagai sign-extended 2’s melengkapi nomor;jumlah. Bila ada lain 31 daftar , jika rb (0) then alamat memori dibentuk dengan menambahkan R[Rb]+ C2, menghasilkan yang didasarkan, atau penggantian/jarak, menujukan gaya. Sadar [bahwa/yang] penambahan c2 ke R[Rb] berlangsung.
Dengan begitu yang satu instruksi mengisi ke dalam daftar R[Ra] kinandar menyimpan pada alamat c2 menunjukan jika rb= 0, atau pada alamat c2+ R[Rbj jika rb 0 jarak yang menunjukan st instruksi mengerjakan kebalikan, menyimpan kinandar didalam R[Ra] pada alamat c2 ketika rb= 0, atau pada alamat c2+ R[Rb] kapan rb 0.
Ia (load address) : Instruksi mengkalkulasi alamat kinandar sebagai di atas, akan tetapi dibandingnya mengambil kinandar, menyimpan nilai yang dihitung dalam R [ ra]. Yang secara operasional, itu mengisi nilai c2 atau c2+ R[Rb] dirinya sendiri ke dalam suatu daftar. Ini mengijinkan kompleks menunjukkan kalkulasi dilakukan dengan tegas. Dengan cara ini, menunjukan gaya tidak tersedia di dalam instruksi menetapkan dapat ditirukan oleh satu rangkaian langkah-langkah perhitungan tegas/eksplisit.
Beberapa poin-poin harus dibuat sekitar instruksi ini. Pertama, sebab c2 adalah suatu 17-bit nilai, hanya kinandar menyimpan sekarang atau nanti 216 bytes memori dapat diakses penggunaan yang langsung menujukan gaya, atau, di dalam kasus 1 suatu instruksi, hanya tetap negatif atau positif dengan penting lebih kecil dibanding 216 kaleng terisi. Untuk mengakses kinandar menyimpan di tempat lain dalam memori, penggantian/jarak atau mendaftarkan tidak langsung menujukan gaya harus digunakan, dengan nilai di dalam R[Rb] yang bertindak sebagai dasar [itu] dan nilai c2 bertindak sebagai suatu offset.
( Ingat daftar yang tidak langsung menunjukan gaya dapat dicapai oleh pengaturan c2 sepadan dengan 0.) Catat juga bahwa penambahan alamat adalah 2’s komplemen, sehingga 17-bit penggantian/jarak harus tanda- yang diperluas ke 32 bit sebelum penambahan alamat. Lihat Bab 6 untuk suatu diskusi yang saksama 2’s melengkapi perhitungan.
Relative addressing computes menunjukan menghitung alamat kinandar [itu] sebagai suatu menunjukkan relatif PC.
Load and Store Relative
Alamat yang efektif dibentuk oleh run-time penambahan, cl+PC. Relocatable ini yang menujukan gaya membuat instruksi relocatable. Sebab alamat data ditetapkan sebagai nilai yang adalah suatu offset tetap dari PC, dan karenanya dari instruksi yang sekarang, keseluruhan modul program dan data dapat dipindahkan, atau ditampung, di manapun di (dalam) memori mesin tanpa mengubah nilai-nilai penggantian/jarak [itu]. Ini adalah berlawanan dengan yang langsung menujukan gaya, yang menetapkan alamat [sebagai/ketika] penempatan memori absolut. Sebab penggantian/jarak ci tetap mempunyai 22 bit, alamat di dalam ± 221 instruksi yang sekarang dapat ditetapkan.
Tabel 2.4 menyediakan contoh bahasa asembler dan menghasilkan mesin [yang] menyandi beberapa beban dan instruksi [gudang/ toko]. Kamu [perlu] belajar ia/nya sampai kamu memahami masukan masing-masing. Kode Operasi untuk masing-masing instruksi disampaikan dalam op kolom itu.
Contoh 2.2: Biner Sandi dari suatu SRC Instruksi Sebagai suatu contoh SRC instruksi yang menyandi, mari kita menyandi instruksi yang kedua dalam Tabel 2.4, yang mana adalah Orang yang tak punya naluri R22, 24(r4). Tolak dari msb [itu], menyandi nantinya
Kamu perlu memverifikasi yang menyandi ini dan mencoba beberapa contoh untuk diri sendiri.
2.3.4 Instruksi Arithmetic and Logic
Kelas instruksi ini menggunakan ALU SRC mesin untuk lakukan perhitungan, logis, dan bergeser operasi. Kita pertama tutup “ yang 1-operand” instruksi bukan dan neg.
Format ini 3 instruksi mengambil satu kinandar daftar dan menyediakan satu daftar menghasilkan. Instruksi itu Neg ( Op= [SISTEM INFORMASI]) mengambil [itu] 2’s komplemen [muatan/indeks] daftar R[Rcj dan menyimpan ia/nya di (dalam) daftar R[Raj. Bukan ( op= 24) instruksi mengambil yang logis ( l’s) komplemen [muatan/indeks] daftar R[Rc} dan menyimpan ia/nya di (dalam) daftar R[Ra]. Semua lain bidang di (dalam) instruksi adalah tak terpakai.
Instruksi menambahkan ( op= 12), sub ( op= 14), dan ( op= 20), dan atau ( op= 22) adalah 2-operand, 1-result instruksi. Semua harus dalam general purpose registers. Mereka ditetapkan menggunakan format. Pesan [bahwa/yang] paling sedikit yang penting 12 bit adalah tak terpakai, sebab yang pertama 4 bidang adalah cukup untuk menguraikan [itu] keseluruhan operasi.
Ada tiga ALU instruksi yang menggunakan yang segera menujukan mode:addi ( op= 13), andi ( op= 21), dan terpasang ( op= 23). Yang tetap terdapat di [itu] 17-bit c2 bidang dan adalah sign-extended [bagi/kepada] suatu 32-bit nilai [sebelum/di depan] operasi perhitungan dilakukan. Semua instruksi ini menggunakan format 1.
Instruksi Pergeseran bergeser kinandar itu di dalam R[Rb] kiri, atau “ circularly,” dari 1 pada 32 bit, dan menempatkan hasil itu R[Ra]; jumlah pergeseran diatur oleh suatu 5-bit disandikan bilangan bulat tidak ditandatangani; bergeserlah dari 0 pada 31 bit adalah mungkin. Bilangan bulat yang mewakili gelar ningrat pergeseran disimpan baik sebagai suatu nilai segera di dalam) yang 5 paling sedikit bit penting didalam instruksi (format 7a), atau, jika itu nilai adalah 0, kemudian gelar ningrat pergeseran diambil dari paling sedikit [itu] yang penting 5 bit daftar R[Rcj ( Format 7B).
Ada dua format dari pergeseran benar, shr dan shra ( op= 26 dan 27, berturut-turut). Format yang pertama bergeser nol dari yang kiri seperti nilai digeser ke kanan, dan format yang kedua , yang disebut pergeseran perhitungan, yang secara terus menerus bergeser salinan msb ke dalam kata pada sisi kiri sebagai indeks digeser ke kanan. Format Perhitungan ini pergeseran memelihara tanda perhitungan itu 2’s melengkapi angka-angka sepanjang operasi pergeseran.
Pergeseran yang kiri, Shi ( Op= 28), bergeser nol pada sisi kanan [sebagai/ketika] nilai di dalam daftar digeser ditinggalkan. Pergeseran yang lingkar, Shc ( Op= 29), bergeser nilai yang ditinggalkan oleh menghitung bit, tetapi nilai menggeser/bergeser ke luar dari daftar pada sisi kiri ditempatkan kembali ke daftar itu pada sisi kanan. Format Bahasa asembler ditunjukkan di bawah.
Semua instruksi ini disandikan menggunakan format 7 dari Gambar 2.9. Jika bidang gelar ningrat 0 ( format 7a), kemudian gelar ningrat pergeseran mempertimbangkan paling sedikit itu] bit penting ( lsbs), tentang c3 bidang, dipanggil “ menghitung” di dalam figur itu. Jika bidang gelar ningrat= 0 ( format 7b), kemudian gelar ningrat pergeseran diambil dari daftar [itu] menyandi menggigit 12—16 instruksi, [disebut/dipanggil] rc di (dalam) format 7 Gambar 2.9.
2.3.5 Branch Instructions ( Instruksi Cabang )
Instruksi Cabang Br ( Op 8) dan bri ( op= 9) disandikan menggunakan format 4 dan 5. Format 4, br, digunakan untuk menetapkan suatu instruksi cabang yang menggantikan PC [itu] dengan alamat target cabang itu. Format 5, bri, digunakan untuk cabang dan instruksi mata rantai, yang menyalin PC itu ke dalam suatu yang disebut pertalian mendaftarkan sebelum cabang itu. Daftar Mata rantai ini mengijinkan kembali dari subroutine panggilan dan digunakan untuk prosedur high-level language pesawat dan fungsi. Pesan yang PC dicopy ke dalam daftar pertalian dengan mengabaikan apakah cabang diambil. Dua instruksi ini mengijinkan yang bercabang di bawah lima kondisi-kondisi cabang berbeda. Kita menyebutkan diskusi instruksi cabang yang sebelumnya yang banyak mesin memelihara satu set kode kondisi didalam suatu daftar status di dalam CPU yang dapat diuji sebagai bagian dari suatu cabang bersyarat. SRC tidak menggunakan pendekatan ini. Rathei; mengijinkan yang 32 tujuan umum yang manapun mendaftarkan untuk memegang suatu nilai untuk diuji untuk bercabang bersyarat. Kondisi Cabang untuk diuji ditetapkan oleh paling sedikit yang penting 3 bit bidang c3, c3(2..O), [seperti/ketika] ditunjukkan Tabel 2.5. Suatu dua orang- menulis huruf kode, nv, zr, nz, p1, atau mi (3), menambahkan catatan kepada mnemonic (ingatan) dikonversi oleh asembler kepada kode kondisi cabang di dalam c3. Arti dari ra, rb, dan rc bidang didalam instruksi cabang ditunjukkan pada [atas] halaman berikut .
TTable 2.6 contoh pertunjukan format dan menyandi dari semua instruksi cabang. Asembler adalah bertanggung jawab untuk mengubah mnemonic (ingatan) cabang dan menambahkan catatan two-letter kode kolom 1 tabelke kode operasi 8 dan 9 br dan brI instruksi,yang berturut-turut, seperti halnya c3(2..O yang benar) nilai bidang yang memilih kondisi cabang itu. Bidang yang asembler akan memasang ke dalam 32-bit instruksi disampaikan dalam tabel itu: op, ra, rb, rc, dan c3(2..O) Format di dalam kolom yang pertama akan menentukan/memperbaiki op itu dan c3(2..O) bidang, dan kinandar yang sisanya akan menentukan/memperbaiki ra [itu], rb, dan rc bidang. Catat bahwa dalam beberapa hal satu atau lebih bidang ini adalah tak terpakai, ditandai oleh suatu merindukan mengarang;menulis cepat itu bersesuaian masukan tabel.
2.3.6 MisceIlaneous Instructions ( Instruksi MisceIlaneous)
Sebagai tambahan terhadap instruksi tersebut di atas, ada dua instruksi: nop ( op 0), tujuan siapa adalah untuk lakukan tidak ada apapun, dan perhentian ( op= 31), tujuan siapa adalah untuk berhenti mesin itu. Nop Instruksi digunakan sebagai suatu placeholder atau sebagai suatu pembuang waktu dan adalah sangat penting implementasi pipelined ( lihat Bab 5). Instruksi Perhentian digunakan untuk perhentian mesin pada suatu titik ditetapkan di dalampelaksanaan program. Itu adalah bermanfaat debugging, seperti dapat dimasukkan/disisipi pada poin-poin meragukan di dalam program, dan jika instruksi perhentian dicapai, orang melakukan debugging kaleng menguji mesin itu menyatakan pada kesenangan nya.
• Contoh 2.3: SRC Kode Perakitan untuk suatu C Pernyataan Bersyarat Di (dalam) mempresentasikan SRC kode, kita akan mengasumsikan perakitan beberapa Iaguage Konvensi yang diringkas Catatan tambahan C. Mari kita menyandi [itu] C pernyataan bersyarat,
mula-mula dibahas pada [atas] halaman 39, menggunakan SRC bahasa asembler:
Ke tiga“pseudo ops,”. equ, . org, dan . dw, adalah instruksi kepada asembler dan pemuat program, dan tidak mengakibatkan manapun kode executable. Op yang pura-pura itu. Equ mengijinkan programmer untuk menetapkan tetap secara simbolis, didalam hampir analogi tepat kepada # defi operasi moda C;. org menetapkan penempatan data dan program didalam memori; dan. diruang cadangan untuk variabel program.
Daftar Memori ditandai oleh nama alphanumeric. Angka-Angka Bit suatu daftar terdapat di sokong sudut,(), setelah itu. Baik nomor;jumlah tunggal maupun a.. cakupan yang dipisahkan boleh . jadilah digunakan. Nomor;Jumlah di sebelah kiri.. angka-angka high-order menggigit dan bahwa di sebelah kanan low-order menggigit. Ketidakhadiran sokong sudut didalam suatu definisi menandakan bit tunggal. Suatu kelompok daftar serupa dapat mempunyai nama yang sama dan dibedakan oleh index di dalam kurung besar. Penggunaan suatu daftar yang diumumkan untuk mempunyai berbagai kata-kata andlor bit, yang meninggalkan ke luar bersesuaian tanda-kurung, diasumsikan untuk mengacu pada itu keseluruhan cakupan. Tanda titik dua memisahkan statemen, dalam hal ini definisi, yang itu tidak punya tertentu memesan.
Suatu RISC mesin ditandai oleh suatu pengolah menyatakan dengan suatu yang besar satuan daftar umum dan sedikit lain daftar. Didalam suatu mesin riil ada processor-state daftar tambahan menggunakan dalam hubungan dengan jawilan, kondisi-kondisi perkecualian perhitungan, I/O, dan lain aktivitas mesin. Kita akan mendiskusikan poin-poin yang sesuai [itu] di ini.
Processor-State Definisi menunjukkan bahwa SRC itu adalah suatu mesin daftar umum dengan suatu program konter. Daftar Instruksi ( IR) adalah tempat di mana instruksi yang individu akan jadi mengeluarkan memecahkan kode berbagai bidang yang menetapkan operasi, alamat, mendaftarkan angka-angka, dan seterusnya. Dua bit tunggal Menjalankan dan Strt, digambarkan. yang dijalankan Dapat dianggap sebagai suatu mati-hidup yang adalah mulai start mesin yang menjalankan. Strt adalah sedikit banyaknya berbeda. Itu mungkin suatu isyarat yang berasal dari suatu sumber eksternal seperti suatu tombol dan digunakan untuk di-set Dijalankan.
Yang berikutnya kebanyakan mportant unsur-unsur memori adalah mereka yang dari yang besar satuan idenmain tical sel simpan mengenal sebagai memori yang utama itu. Memori yang sama mungkin adalah ditujukan seperti bytes atau kata-kata di dalam mesin ini. Suatu pengujian instruksi mesin dari bagian ini akan menunjukkan, bagaimanapun, bahwa tidak ada instruksi yang dapat mengakses atau menggerakkan nilai-nilai lebih kecil dibanding 32-bit kata-kata.
Woid Versi memori digambarkan dalam kaitan dengan byte versi yang menggunakan [itu]: operator. Ini “ penamaan” operator menggambarkan obyek [itu] pada sisi kiri sebagai ungkapan pada sisi kanan. Kapan saja sisi yang kiri nampak ungkapan lain, [itu] ditafsirkan dengan mengganti/ menggantikan [itu] sebelah kanan teks untuk [itu] dan menginterpretasikan hasil [itu] secara berulang, jika perlu.
Lambang # menandakan penggabungan [gudang/penyimpanan] atau menghargai pada sisi kiri lalu;maka pada sisi kanan. Definisi ini meliputi suatu variabel imitasi/tiruan, x, yang akan digantikan oleh suatu parameter nyata di dalam suatu penggunaan sebelah kiri menyebut. Sebagai contoh, arti dari M[40](31..O)[40](7..O)#M[41](7..O)#M[42](7..O)#M[43](7..O).
Dari definisi memori untuk SRC, [itu] adalah jelas yang suatu memori alamat akan memerlukan 32 bit. Sebab instruksi daftar hanya mempunyai 32 bit, [itu] tidak akan mungkin untuk suatu instruksi untuk berisi suatu memori penuh menunjuk bersama dengan suatu kode operasi. Daftar, dan program konter, adalah cukup panjang untuk berisi suatu alamat memori.
Format Yang berbeda bagian-bagian dari daftar mungkin punya tujuan khusus di mana suatu nama terpisah adalah bermanfaat. Format Daftar ini memberi pengubah menyebut pada bagian-bagian dari daftar atau ungkapan yang mengkombinasikan bagian-bagian dari daftar. berbeda pembeda Bagian-Bagian dari daftar instruksi terutama sekali penting menginterpretasikan arti dari suatu instruksi.
Sebab bidang berbeda tumpang-tindih, bit ditentukan mungkin mempunyai beberapa nama dan bersesuaian maksud/arti, tergantung pada instruksi itu. Sebagai contoh, beberapa instruksi menggunakan op itu, ra, dan ci bidang sedang orang yang lain menggunakan op, ra, rb, rc, dan c3, ketika ditunjukkan sebelumnya didalam Gambar 2.9.
Effective Address Calculations Sebagian dari format yang paling utama yang menyebut ungkapan yang menggunakan bidang daftar sebagai ganti renaming bit adalah yang digunakan untuk menghitung alamat yang efektif untuk suatu memori mengisi atau menyimpan. Alamat efektif dapat absolut ( disp) atau sehubungan dengan PC ( l kembali).
Catat bahwa definisi ini tidak kata bahwa R[0J dengan identik nol. Itu hanya kata[kan bahwa ketika R[0] di/terpilih daftar yang menemani suatu disp kalkulasi yang c2 bidang sendiri harus diambil penggantian/jarak itu.
Lambang —> adalah suatu format sisipan if-then. Itu tidak punya konsep selain itu mencakup. Jika dua kondisi-kondisi pada sisi kiri dari yang berbeda— tanda benar, kedua-duanya sisi tangan kanan dievaluasi. Didalam kasus di atas, dua kondisi-kondisi adalah memisah, maka hanya satu akan jadi benar. Catat bahwa sisi tangan kanan itu —> adalah nilai-nilai dan bukan operasi, sehingga ungkapan adalah suatu definisi yang bersyarat nilai itu disp.—> Lambang digunakan sebagai ganti if-then notasi oleh karena perbedaan ini. Walaupun beberapa bahasa program menggunakan [itu] gagasan untuk nilai-nilai bersyarat, itu jadilah lebih sering dilihat di matematika. Sebagai contoh, nilai mutlak dapat digambarkan sebagai
Didalam melukiskan suatu sebelah kiri lebih panjang dalam kaitan dengan suatu sisi tangan kanan pendek/singkat, atau di dalam menambahkan dua bidang dari panjangnya yang berbeda ,itu adalah diperlukan untuk menetapkan bagaimana kinandar pendek/singkat diperluas dan apa yang akan dilakukan dengan suatu pen;jumlahan yang boleh jadi juga panjang/lama. Ini adalah terpenuhi oleh modifier terdapat di tanda-kurung,{), setelah operasi itu.
Bahasa Inggris Itu Inter?Retation dari gaya penggantian/jarak ini menunjuk SRC adalah bahwa itu dibentuk dengan adding indeks suatu daftar terpilih kepada bidang penggantian/jarak instruksi kecuali jika daftar yang speèified adalah R[Oj, dalam hal mana nol ditambahkan kepada bidang penggantian/jarak. Kita lagi menekankan pembedaan itu antar[a] ( rb= 0) dan ( R[Rb]= 0). Yang pertama adalah suatu perbandingan nomor;jumlah daftar pada nol. Yang kedua adalah suatu perbandingan indeks daftar bagi nol. Seperti itu, walaupun R[0} adalah suatu daftar biasa, itu tidaklah digunakan menghitung alamat, Sebagai gantinya, nomor;jumlah nya mengijinkan suatu alamat untuk didasarkan hanya pada penggantian/jarak tetap instruksi itu. Ini mempunyai nikmati untuk mempunyai suatu khusus menujukan gaya atau suatu untuk selamanya nol daftar untuk gaya alamat yang langsung, di mana suatu alamat adalah speafied secara langsung oleh yang tetap instruksi itu.
Suatu format detik/second dari alamat efektif didalam SRC adalah suatu menunjukkan relatif program itu konter.
Itu yang penting untuk instruksi cabang. suatu bidang daftar tidaklah diperlukan, suatu penggantian/jarak lebih panjang kaleng tetap digunakan. Program ditulis dalam suatu jalan modular, mengacu pada berbagai hal di dalam modul yang sekarang ini melaksanakan kaleng yang dengan senang hati dilaksanakan dengan penggunaan program itu konter, yang menunjuk kepada instruksi yang berikutnya untuk dieksekusi.
Penafsiran Instruksi dan Fetch-Execute Beredarlah Sejauh ini kita sudah berhadapan dengan definisi format dan unsur-unsur penyimpanan statis. Kita sekarang menjangkau tindakan itu bagian dari mesin . Tindakan yang terjadi untuk tiap-tiap instruksi sebelum instruksi yang spesifik pernah dikodekan dikenal sebagai penafsiran instruksi. Berbagai hal lebih rumit terjadi mesin riil mempunyai nikmati jawilan dan lain aktivitas pengolah mandiri, tetapi di sini kita hanya menguraikan mulai mesin itu dan fetch-execute siklus yang normal membaca instruksi yang berikutnya ke dalam instruksi mendaftarkan dan mempercepat program konter. Penafsiran Instruksi melaksanakan berulang-kali sepanjang mesin dipasang. Di dalam foHowing RIN uraian mengambil siklus digambarkan sebagai waktunya interval selama yang mana instruksi diambil dan PC incremented. [Itu] diikuti oleh pelaksanaan instruksi, yang akan ber;akhir;i dengan permohonan iflstruction penafsiran lagi.
Daftar Perpindahan ditandai oleh panah tugas<—. Sisi sebelah kiri dari operator ini harus menghadirkan suatu unsur penyimpanan ke dalam mana nilai memperoleh dari ungkapan pada sisi kanan dapat ditempatkan.
Dua atau lebih perpindahan daftar yang dipisahkan oleh suatu tanda titik dua diasumsikan untuk terjadi secara serempak. Didalam bahasa desain logika ( lihat Catatan tambahan A) secara serempak
berarti perpindahan [itu] terjadi pada jam yang sama berdenyut. Ini menyiratkan penggunaan guru- budak atau mati-hidup edge-triggered. Nilai-Nilai dari semua sisi tangan kanan colon-separated dievaluasi menggunakan harga asli daftar, dan kemudian nilai-nilai yang baru disimpan ke dalam sisi yang kiri itu. Suatu titik koma memisahkan operasi yang harus terjadi urutan. Dengan begitu di dalam ungkapan di atas, nilai PC yang digunakan untuk mengevaluasi ungkapan [itu] M[Pc] dan PC+ 4 adalah harga asli, yang diambil sebelum PC telah menjadi incremented dengan 4. Setelah M[Pc] dan PC+ 4 telah dihitung, kemudian IR ditugaskan M[Pc], dan PC digantikan oleh PC+ 4. Operasi nama instruction_execution, yang mana [adalah] digambarkan bagian yang berikutnya, harus berlangsung setelah nilai-nilai JR yang baru dan PC telah dibentuk/mapan. Itu adalah detil kasus lebih rumit semacam ini yang adalah susah untuk menguraikan dengan singkat di dalam bahasa alami dan membuat ia/nya sedemikian penting untuk mempunyai suatu notasi formal. Lambang—‘ adalah komplemen logis pada 1 atau lebih [] bit, dan Suatu dan v digunakan untuk [yang] logis DAN dan atau, berturut-turut. Dua kondisi-kondisi pada sisi kiri sisi— adalah memisah, tetapi mereka tidak melelahkan/menuntaskan semua berbagai kemungkinan [itu]. Jika — Runa—1Strt benar, tidak berbuat berlangsung.
Penafsiran Instruksi SRC mengerjakan tidak ada apapun ketika Rn tidaklah di-set, kecuali jika Strt Isyarat adalah juga menyajikan, dalam hal mana Dijalankan di-set. Ketika dijalankan -Set, komputer mengisi instruksi itu yang ditunjuk oleh PC ke dalam JR mendaftarkan, membantu program konter, dan melaksanakan instruksi itu di dalam JR. Gambarkan penafsiran instruksi, yang terjadi untuk semua instruksi, sebelum menetapkan pelaksanaan dari instruksi individu menaruh pelaksanaan mereka dalam kaitan dengan sesuai . Sebagai contoh, ketika suatu instruksi di dalam daftar instruksi dieksekusi, program yang konter telah menunjuk kepada instruksi yang berikutnya, 4 bytes lebih lanjut pada memori.
Pelaksanaan Instruksi [Yang] kita sekarang datang kepada uraian dari apa yang masing-masing instruksi individu didalam mesin mengerjakan. Sekali ketika instruksi telah diambil dan PC incremented, instruksi dieksekusi. RTN Yang berikut menguraikan pelaksanaan SRC instruksi. Itu mengambil format suatu daftar panjang operasi bersyarat. Masing-Masing kondisi adalah nilai bidang kode operasi JR tertentu mendaftarkan. Nilai-Nilai adalah semua beda, maka hanya tindakan yang sesuai bagi satu instruksi akan terjadi. Itu adalah berguna bagi nama kondisi yang bidang operasi yang sama nilai tertentu dengan mnemonic (ingatan) kode perakitan [yang] sesuai dengan nilai itu, dan ini adalah yang dilaksanakan “ berderet,” menggunakan definisi yang parenthesized untuk suatu merindukan daftar terpisah.
Pada ujung pernyataan bersyarat besar ini, menemukan pada atas halaman 66, instruksi_ penafsiran dilibatkan, menghasilkan recursion: instruction_interpretation memohon instruction_execution, yang memohon instruction_interpretation.
Instruksi Instruksi Acuan Memori dapat dibagi menjadi kelas berbeda mendasarkan pada apa macam tindakan yang mereka melaksanakan. SRC, lain RISC komputer, dibedakan oleh mempunyai;nikmati suatu yang terpisah satuan instruksi yang mengisi daftar dari store dan ke dalam memori. Instruksi yang berikut menggunakan suatu alamat memori, maka uraian mereka meliputi nama menggambarkan bagian alamat yang efektif.
Instruksi berbeda mengijinkan sel memori untuk ditujukan baik oleh penggantian/jarak maupun gaya relatif. Kemampuan untuk mengisi nilai dari suatu alamat yang secara langsung ke dalam suatu daftar, yang disediakan oleh Ia Dan Lar, mempunyai beberapa penggunaan di dalam mesin ini. Ini merupakan suatu jalan untuk menempatkan suatu yang tetap singkat tercakup di suatu instruksi ke dalam suatu daftar. Itu dapat menaruh suatu simpie menunjuk ke dalam suatu daftar dimana perhitungan bisa dilakukan pada itu untuk yang menujukan lebih rumit. Ini juga suatu [jalan/cara] untuk menaruh target-of itu suatu perpindahan kendali, atau cabang, instruksi ke dalam suatu daftar.
Instruksi Cabang Beberapa pengaturan khusus pada [atas] bidang yang tetap instruksi digunakan hanya dengan cabang.
Di (dalam) SRC, perpindahan mengendalikan pada suatu titik berbeda didalam arus instruksi terpenuhi oleh suatu instruksi cabang, br, yang ber;ubah alamat instruksi yang berikutnya didalam PC jika suatu terpilih condit1on benar. Cabang dan instruksi mata rantai, bri, store pertama address instruksi yang berikutnya ke dalam suatu mata rantai terpilih registerrsedemikian sehingga kendali dapat returned kepada instruksi yang berikutnya di dalam urutan, dan kemudian cabang jika cond benar, bertindak yang persisnya suka br instruksi itu. Pesan bahwa bri akan menyimpan mata rantai itu di dalam R[Ra] dengan mengabaikan apakah cabang diambil. Sebagai tambahan terhadap menjadi bermanfaat untuk subroutinen panggil dan kembalikan, daftar pertalian dapat digunakan untuk PC-RELATIVE yang menujukan. Kondisi itu Cond dikenalkan ke jadilah salah satu dari enam benar(= 1) atau sumbang/palsu(= 0) menilai. Salah satu dari kondisi-kondisi selalu benar ( atau 1), maka instruksi ini meliputi cabang tanpa syarat, yang dipanggil menyela mesin banyak orang. Target Cabang di dalam SRC harus terdapat di suatu daftar, sedangkan cabang dan instruksi lompatan di lain mesin sering menggunakan suatu menujukan gaya seperti sanak keluarga atau penggantian/jarak seperti di beban dan instruksi store SRC. Ada pertimbangan baik untuk mempunyai suatu alamat dengan cabang, tetapi kondisi juga menghabiskan bit instruksi, dan di sana adalah beberapa berbagai hal yang bisa dilakukan untuk meningkatkan capaian jika suatu target cabang dengan tegas disediakan sebelum cabang dieksekusi.
ALU Instruksi kita berikutnya datang kepada instruksi perhitungan. Untuk sementara waktu kita akan membatasi SRC komputer [yang] sederhana ini untuk menambahkan, mengurangi, dan meniadakan pada [atas] 32-bit 2’s melengkapi angka-angka. Kita akan lihat bagaimana cara meluas ketika ini kita mendiskusikan perhitungan komputer.
Nambahkan instruksi mempunyai dua format: apa yang itu menambahkan dua daftar dan suatu format segera yang mengijinkan suatu yang tetap ditandatangani kecil untuk ditambahkan untuk suatu daftar. Format yang segera adalah bermanfaat untuk kenaikan atau pengurangan konter dan berhadapan dengan offset alamat ke dalam larik antena atau arsip. Karena semua perhitungan adalah 2’s melengkapi, itu akan saja tersebut ketika itu adalah diperlukan untuk menetapkan bagaimana cara meluas suatu kinandar untuk memenuhi panjang lain. Urangi instruksi tidak memerlukan suatu format segera sebab suatu hal negatif kaleng tetap digunakan di addi.
Data Nonnumeric di dalam suatu komputer digerakkan kebanyakan oleh operasi logis, yang terbatas mesin ini ke dan, oi; dan bukan. Dan A, atau v, dan bukan— operator beroperasi menurut menggigit pada [atas] berbagai jumlah bit, memperpanjang yang lebih pendek untuk memenuhi panjang yang lebih panjang ketika perlu.
Format yang segera adalah bermanfaat dengan dan untuk pembukaan hutan, atau penutup, bidang; tentang bit dan dengan atau untuk menentukan yang tetap ke dalam bidang.
Operasi Pergeseran diperlukan untuk menggerakkan karakter dan lain data lebih pendek dibanding suatu kata. Pergeseran adalah juga digunakan di operasi perhitungan itu dan mempunyai kedua-duanya logis dan versi perhitungan. Suatu nilai segera untuk gelar ningrat pergeseran adalah sangat sering diinginkan, tetapi menggunakan suatu daftar untuk suatu gelar ningrat dihitung adalah juga penting. Gelar ningrat adalah bit yang lebih rendah bidang yang tetap, sebab suatu gelar ningrat pergeseran lebih dari 31 tidaklah bermanfaat, tetapi jika bit ini adalah 0, juga tak satu pergeseran bermanfaat pun menghitung, yang lebih rendah 5 bit daftar yang ditetapkan oleh rc digunakan sebagai ganti(nya).
Perhitungan pergeseran benar meluas tanda itu, suatu zero-fill pergeseran benar adalah bermanfaat untuk mengemasi karakter atau lain bidang pendek/singkat ke dalam suatu kata.
Suatu potongan di sini notasi yang baru adalah operator@, yang mengambil suatu bilangan bulat meninggalkan sisi dan menggabungkan [itu] sebelah kanan dengan dirinya sendiri bahwa banyaknya. Sebagai contoh, S@0 00000. Pergeseran di dalam SRC adalah suatu logis bergeser, suatu perhitungan pergeseran benar, yang meluas tanda itu memukul, suatu pergeseran kiri yang mengisi dengan nol pada sisi kanan, dan suatu pergeseran lingkar yang dapat pemikiran [seperti/ketika] ditinggalkan atau yang tergantung pada pergeseran itu menghitung. Semua dari mereka dapat diuraikan dengan concatenating bidang yang terpilih pengulangan dan kwantitas yang digeser nol atau tanda menggigit dalam berbagai jalan.
Bermacam-Macam Instruksi Instruksi Kegagalan menyebabkan tidak berbuat untuk berlangsung, dan instruksi perhentian berhenti komputer itu sampai isyarat start yang berikutnya diterima.
Perhentian adalah yang terakhir daftar panjang tindakan bersyarat yang menggambarkan nama itu, instruction_execution. Dengan begitu itu diikuti oleh tanda kurung yang benar yang memenuhi tanda kurung yang kiri pada awal ungkapan yang bersyarat . Yang dengan seketika instruction_execution berikut adalah instruction_interpretation, yang akan kenaikan PC dan mengambil instruksi yang berikutnya, abadi. Kita akan mendiskusikan kesulitan memasang lagi dan perkecualian yang memproses Bab 4.
Ini lengkap spesifikasi yang sangat sederhana SRC computec yang kita akan mempertimbangkan kedua-duanya implementasi dari komputer ini dan perluasan tentang spesifikasi nya sebagai/ketika buku maju. [Ini] merupakan suatu mesin lengkap di (dalam) [perasaan/pengertian] yang suatu compiler bisa [di]tertulis untuk [itu] itu akan menghasilkan kode untuk high-level language modern. Tentu saja, compiler telah [di]tertulis untuk mesin lebih sederhana. Perluasan yang kita akan lihat kemudiannya meliputi jawilan, perhitungan yang ditingkatkan, dan inputloutput, atau I/O.
I/O benar-benar dipertimbangkan untuk dengan instruksi yang di-set diperkenalkan. Banyak memori rekanan komputer menunjuk dengan Sarana I/O dan komunikasi;kan data menggunakan hanya beban dan instruksi [gudang/ toko]. Kita akan menggunakan Teknik I/O [yang] memory-mapped ini dengan SRC juga.
Catatan: Ungkapan dapat menilai andJor tindakan. Tindakan dapat dipertimbangkan efek samping jika suatu nilai hadir Daftar ungkapan bersyarat tidak perlu mempunyai memisah kondisi-kondisi. Right-Hand Sisi ( RHS) tentang bersyarat dievaluasi untuk semua kondisi-kondisi yang benar. Tidak (ada) peruntunan di/tersiratkan kecuali jika ada mesin pemisah percontohan antar[a] ungkapan bersyarat. Tidak ada selain itu padanan. LHS berarti left-hand sisi.
Tabel 2.7 meringkas RTN notasi itu yang digunakan untuk menguraikan SRC. Keseluruhan RTN uraian SRC dapat ditemukan, tanpa catatan yang bersifat menjelaskan, didalam Catatan tambahan B.
Konsep Utama: Menguraikan suatu Instruksi Komputer
Orang banyak Berbagai hal yang harus dicakup gambarkan suatu komputer lengkap dapat di/terorganisir ke dalam empat kategori.
1. Pengolah Dan Status Memori: Ukuran Dan Angka-Angka store mendaftarkan CPU, struktur memori, dan I/O status jika bisa diterapkan. Ini adalah sering disebut programmer’s model mesin .
2. Format Dan Penafsiran data didalam daftar: Jenis Data, Format Instruksi, dan penafsiran alamat efektif. Data Perhitungan Jenis adalah sering perbandingan sederhana kepada penafsiran instruksi.
3. Urutan Penafsiran Instruksi: Fetch-Execute ini Siklus adalah denyut jantung mesin dan underlies pelaksanaan dari semua instruksi.
4. Uraian dari instruksi individu: Kelas Instruksi meliputi pergerakan data beban cabang, ALU operasi, dan bermacam-macam.
Instruksi Pergerakan Data menentukan itu flexibility tersedia memindahkan data dari satu bagian dari pengolah menyatakan ke lain.
Instruksi Cabang adalah berhubungan erat kepada fetch-execute beredar sebab mereka menentukan instruksi apa yang dieksekusi berikutnya.
Walaupun asembler dapat mengubah bentuk mnemonic (ingatan) dan informasi simbolis ke dalam klasifikasi membentuk, masing-masing instruksi bahasa asembler sesuai dengan satu instruksi mesin biner.
2.4.2 formal melawan Uraian Informal
Kedua-Duanya bahasa mesin dan mesin yang informal dan formal uraian mempunyai tempat mereka. Uraian informal cenderung untuk menyediakan suatu yang lebih intuitif “ rasa” untuk/karena arti dari suatu membangun, tetapi dapat mengacaukan, tidak tepat/tidak jelas, atau tidak sempurna yang deskriptif mereka. Uraian formal menyediakan rata-rata untuk;menjadi tepat dan tepat, tetapi dapat kering dan sukar untuk memahami. Kita menggunakan kedua-duanya dalam buku ini sebagai sesuai pada apa yang diuraikan, dan tidak menghimbau untuk menutup kesalahan RTN uraian itu, dengan mengabaikan kecenderungan untuk melakukannya. Kamu boleh genap temukan bahwa, seperti anda maju pengetahuan disain komputer mu, kamu akan tuju/ cenderung untuk menutup kesalahan uraian yang informal dan berkonsentrasi pada RTN .
Kamu mungkin punya beberapa kebingungan tentang RTN’S menggunakan sebagai bahasa uraian, didalam kontras dengan bahasa mesin mesin bahwa itu menguraikan. RTN harus dipertimbangkan suatu metalanguage, suatu bahasa yang digunakan untuk menguraikan bahasa.
Gambar 2.10 pertunjukan adalah suatu jalan/cara untuk memandang situasi ini: SRC’S bahasa mesin ditafsirkan oleh beberapa interpreter bahasa mesin tertentu ( perangkat keras) atau suatu simulator ( perangkat lunak) itu mengenali SRC bahasa [itu]. Sebagai contoh, di (dalam) Bab 4 dan kita akan main peran RTN compiler dan mendisain empat . seperti (itu) SRC interpreter terdiri dari perangkat keras. Perangkat lunak yang menemani buku teks ini meliputi simulator seperti itu, ANSI yang ditulis dalam C, yang (mana) kamu dapat menyusun dan menjalankan. Hasilkan simulator akan menerima SRC bahasa mesin sebagai masuk. Sebagai tambahan terhadap menjadi jalan/cara untuk secara terang komunikasi;kan suatu machine’s struktur dan berfungsi, RTN dapat digunakan untuk mengotomatiskan produksi interpreter untuk mesin [itu].
RTN dapat juga membantu mengurangi kemungkinan kesalahan di (dalam) desain dan implementasi. RTN bantuan mencegah dua macam kesalahan yang dapat muncul disain dan implementasi:
Kesalahan disebabkan oleh suatu kesalahan menafsir uraian mesin Kesalahan disain dan implementasi
Di dalam kasus yang pertama, RTN menyediakan kemampuan itu untuk menguraikan struktur mesin dan fungsi secara terang. Didalam kasus yang kedua , compiler dan interpreter .: suatu tertulis untuk RTN yang akan secara otomatis menghasilkan simulator atau bahkan perangkat keras mesin. Suatu RTN compiler bisa dirancang ke keluaran adalah suatu ANSI C simulator. Yang sebagai alternatif, RTN compiler bisa dirancang ke keluaran adalah suatu uraian mesin yang pantas untuk masuk ke IC yang mask-making permesinan. Hasilkan integrated sirkit akan menjadi suatu mikro prosesor yang menerima SRC bahasa mesin itu.
Adalah benar bahwa bisa jadilah kesalahan didalam RTN compiler, tetapi pengalaman telah menunjukkan bahasa uraian yang formal itu dan generator otomatis menyediakan hasil superior, dan mereka adalah di dalam penggunaan yang universal di dalam disain komputer modern. VHDL, Bahasa Uraian Perangkat keras integrated sirkit yang sangat kecepatan tinggi adalah satu standard industri, yang mana adalah didasarkan Ada itu Bahasa program. Ada lain bahasa uraian tujuan khusus yang mengijinkan itu specificaz tion komponen mesin di gerbang, blok logika, dan tingkatan subsistem.