Mereka membolehkan nilai baru yang akan diambil (tertulis) ke dalam program counter mendaftar. A subroutine call is achieved simply by reading the old contents of the program counter, before they are overwritten by a new value, and saved somewhere in memory or in another register. J subroutine panggilan yang dicapai cukup lama dengan membaca isi dari program counter, sebelum mereka ditimpa oleh nilai baru, dan disimpan di suatu tempat lain dalam memori atau mendaftar. A subroutine return is then achieved by writing the saved value back in to the program counter again. J subroutine kembali kemudian menulis dicapai oleh nilai yang disimpan kembali ke dalam program counter lagi.
Bekerja dari sebuah program sederhana counter
Di pusat pengolahan unit (CPU) dari komputer yang sederhana berisi hardware (unit kontrol dan upacara ucapan alu) yang melaksanakan petunjuk tersebut, seperti yang diambil dari memori unit. Most instruction cycles [ 4 ] consist of the CPU sending an address , on the address bus , to the memory unit , which then responds by sending the contents of that memory location as data , on the data bus . Sebagian besar instruksi siklus [4] terdiri dari CPU mengirim alamat pada bus alamat, ke memori unit, yang kemudian merespon dengan mengirimkan isi dari lokasi memori yang meliputi data, pada data bus. (This is tied up with the idea of the stored-program computer in which executable instructions are stored alongside ordinary data in the memory unit , and handled identically by it [ 5 ] ). (Hal ini sangat sibuk dengan ide yang disimpan-program komputer yang dieksekusi dalam petunjuk disimpan di samping biasa data dalam memori unit, dan oleh itu sama dengan [5]).
PC hanyalah satu dari sekian banyak mendaftar di hardware dari CPU. It, like each of the other registers, consists of a bank of binary latches (a binary latch is also known as a flip-flop ), with one flip-flop per bit in the integer that is to be stored [ 6 ] (32 for a 32-bit CPU, for example). Itu, seperti masing-masing register lainnya, terdiri dari bank dari biner latches (a binary memalangi juga dikenal sebagai tiba-tiba), dengan satu flip-flop bit per dalam integer yang akan disimpan [6] (32 untuk 32-bit CPU, misalnya). In the case of the PC, the integer represents the address in the memory unit that is to be fetched next. Dalam hal PC, yang merupakan integer alamat dalam memori unit yang akan diambil berikutnya.
Setelah data (dengan instruksi) telah diterima pada data bus, PC adalah incremented. In some CPUs this is achieved by adding 000..001 to its contents, and latching the result into the register to be its new contents; on most CPUs, though, the PC is implemented as a register that is internally wired so that it counts up to the next value when a specific signal is applied to it externally [ 7 ] . Dalam beberapa CPU ini dicapai dengan menambahkan 000 .. 001 ke isinya, dan hasilnya menjadi latching register harus isi yang baru, pada kebanyakan CPU, though, PC diimplementasikan sebagai register yang internal kabel sehingga dianggap sampai ke nilai berikutnya ketika sinyal tertentu akan diterapkan ke luar [7]. Such a register , in electronics, is referred to as a binary counter , and hence the origin of the term program counter . Seperti mendaftar, dalam elektronik, yang disebut sebagai binary counter, dan dengan itu asal istilah program counter.
semua sifat yg dpt meliputi program counter
Keberadaan program counter dalam CPU telah mencapai jauh konsekuensi pada cara kita berpikir ketika kita program komputer, dan memang program counter (atau setara blok perangkat keras yang melayani tujuan yang sama [8]) sangat pusat ke arsitektur von Neumann.
It membebankan ketat sequencial memesan pada mengambil dari instruksi dari memori unit (yang aliran kontrol), bahkan di mana tidak ada sequenciality ini diterapkan oleh algoritma itu sendiri (yang von Neumann kemacetan). This is why research into possible models for parallel computing considered [ 9 ] , at one point, other non von Neumann or dataflow models that did not use a program counter. Hal ini mungkin mengapa penelitian menjadi model untuk komputasi paralel dianggap [9], pada satu titik, tidak lain von Neumann atau dataflow model yang tidak menggunakan program counter. For example, functional programming languages offered much hope at the high level, with combinatory logic at the assembler level. Misalnya, pemrograman fungsional bahasa yang berharap banyak pada tingkat tinggi, dengan combinatory logika di tingkat assembler. Even then, most of the researchers emulated this in the microcode of conventional computers (hence still involving an program counter in the hardware); but, in fact, combinators are so simple, they could, in principle, be implemented directly in the hardware without recourse to microcode or program counters at all. Bahkan kemudian, sebagian besar peneliti ini emulated di microcode konvensional komputer (karenanya masih melibatkan sebuah program counter dalam hardware), tetapi, sebenarnya, combinators sangat sederhana, mereka bisa, pada prinsipnya dilaksanakan secara langsung pada perangkat keras tanpa kembali ke microcode counter atau program sama sekali.
In the end, though, hasil penelitian yang makan kembali, sebaliknya, menjadi cara untuk meningkatkan pelaksanaan kecepatan prosesor konvensional. Ways were found for organising out-of-order execution so as to extract the sequencing information that is implicit in the data. Cara yang ditemukan untuk mengorganisir di luar aturan pelaksanaan, sehingga untuk mendapatkan informasi yang sequencing yang tersirat dalam data. Also, the pipeline and very long instruction word organisations allowed the compiler to arrange for multiple calculations to be set off in parallel. Selain itu, pipa dan sangat panjang instruksi kata organisasi diizinkan compiler untuk mengatur beberapa perhitungan yang akan berangkat bersama. At the start of each instruction execution, though, the instruction needs to be fetched from memory, and this is initiated by an instruction fetch cycle that picks addresses, one at a time, from the program counter. Pada awal setiap instruksi pelaksanaan, tetapi, instruksi yang harus diambil dari memori, dan ini dimulai oleh sebuah instruksi fetch siklus yang picks alamat, satu per satu, dari program counter.
Bahkan bahasa pemrograman tingkat tinggi yang memiliki program-counter konsep berurat berakar mendalam dalam perilaku mereka. You need only to watch how a programmer develops or debugs a computer program to see evidence of this, with the programmer using a finger to point to successive lines in the program to model the steps of its execution. Anda hanya perlu untuk melihat bagaimana programmer debugs atau mengembangkan program komputer untuk melihat bukti ini, dengan pemrogram menggunakan jari untuk menunjuk ke baris berturut-turut dalam program untuk model langkah-langkah pelaksanaannya. Indeed, a high level programming language is no less than the assembler language of a high level virtual machine [ 10 ] -- a computer that would be too complex to be cost-effective to build directly in hardware, so is implement instead using multiple shells of emulation (with the compiler or interpreter providing the higher levels, and the microcode providing the lower levels). Memang, sebuah bahasa pemrograman tingkat tinggi yang tidak kurang daripada assembler bahasa tinggi mesin virtual [10] - sebuah komputer yang akan terlalu rumit untuk biaya-efektif untuk membangun secara langsung dalam perangkat keras, sehingga adalah melaksanakan, bukan menggunakan beberapa kerang dari pertandingan (dengan compiler atau interpreter menyediakan lebih tinggi, dan microcode menyediakan tingkat bawah).
Tidak ada komentar:
Posting Komentar