Di tingkat teratas, komputer terdiri dari CPU (central processing unit), memori, dan
komponen I / O, dengan satu atau lebih modul untuk setiap jenis. Komponen ini saling
berhubungan dalam beberapa cara untuk mencapai fungsi dasar komputer, yaitu menjalankan
program.
Bab ini berfokus pada struktur dasar yang digunakan untuk komponen komputer
interkoneksi. Sebagai latar belakang, bab ini dimulai dengan pemeriksaan singkat tentang
komponen dasar dan persyaratan antarmukanya. Kemudian gambaran fungsionalnya
disediakan. Kami kemudian bersiap untuk memeriksa penggunaan bus untuk sistem
interkoneksi komponen.
Seperti dibahas dalam Bab 1, hampir semua desain komputer kontemporer didasarkan
tentang konsep yang dikembangkan oleh John von Neumann di Institute for Advanced
Studies,Princeton. Desain seperti itu disebut sebagai arsitektur von Neumann dan berbasis
pada tiga konsep utama:
• Data dan instruksi disimpan dalam satu memori baca-tulis.
• Isi memori ini dapat dialamatkan berdasarkan lokasi, tanpa memperhatikan
jenis data yang ada di sana.
• Eksekusi terjadi secara berurutan (kecuali secara eksplisit dimodifikasi) dari satu
instruksi ke instruksi berikutnya.
Ada sekumpulan kecil komponen logika dasar yang dapat dikombinasikan dengan
berbagai cara untuk menyimpan data biner dan melakukan aritmatika dan logika operasi pada
data itu. Jika ada perhitungan tertentu yang akan dilakukan, sebuah penggambaran komponen
logika yang dirancang khusus untuk komputasi itu bisa dibangun. "Program" yang dihasilkan
ada di dalam bentuk perangkat keras dan diistilahkan sebagai program bawaan. Sekarang
pertimbangkan alternatif ini, misalkan kita membangun tujuan umum penggambaran fungsi
aritmatika dan logika. Perangkat keras ini akan melakukan berbagai fungsi kami pada data
tergantung pada sinyal kontrol yang diterapkan ke perangkat keras. Dalam kasus asli dari
perangkat keras yang disesuaikan, sistem menerima data dan menghasilkan hasil.
Tujuan umum dari perangkat keras adalah sistem menerima data dan kontrol
memberi sinyal lalu membuahkan hasil. Jadi, alih-alih memasang kembali perangkat keras
untuk setiap program yang baru, programmer hanya perlu menyediakan satu set sinyal
kontrol baru. Bagaimana sinyal kontrol akan dipasok? Jawabannya sederhana, seluruh
program sebenarnya adalah urutan langkah-langkah. Pada setiap langkah, beberapa aritmatika
atau operasi logis dilakukan pada beberapa data. Untuk setiap langkah, satu set kontrol sinyal
dibutuhkan. Setiap kode, dalam efek, instruksi, dan bagian dari perangkat keras menafsirkan
setiap instruksi dan membuat sinyal kontrol. Untuk membedakan metode pemrograman baru
ini, urutan kode atau instruksi disebut perangkat lunak. Beberapa komponen lain diperlukan
untuk menghasilkan fungsi komputer. Data dan instruksi harus dimasukkan ke dalam
sistem. Untuk itu kita butuhkan semacam modul masukan. Modul ini berisi komponen dasar
untuk menerima data dan instruksi dalam beberapa bentuk dan mengubahnya menjadi bentuk
sinyal internal yang dapat digunakan oleh sistem. Diperlukan sarana untuk melaporkan hasil
dalam bentuk modul keluaran. Secara keseluruhan, ini disebut sebagai I / O komponen .
Dibutuhkan satu komponen lagi, perangkat input akan membawa instruksi dan data secara
berurutan. Tetapi sebuah program tidak selalu dieksekusi secara berurutan,mungkin
melompat-lompat (misalnya, instruksi lompat IAS. Von Neumann menunjukkan bahwa
memori yang sama dapat digunakan untuk menyimpan instruksi dan data. Gambar 3.2
mengilustrasikan komponen tingkat atas ini dan menyarankan interaksi di antara
mereka. CPU bertukar data dengan memori. Untuk tujuan ini, khususnya menggunakan dua
register internal ke CPU yaitu memory address register (MAR) , yang menetapkan alamat
dalam memori untuk pembacaan atau penulisan berikutnya, dan memory buffer register
(MBR) , yang berisi data yang akan ditulis ke dalam memori atau menerima data yang dibaca
dari memori. Demikian pula, register alamat I / O (I / OAR) menentukan perangkat I / O
tertentu. Register penyangga I / O (I / OBR) digunakan untuk pertukaran data antara modul I
/ O dan CPU. Sebuah modul memori terdiri dari satu set lokasi, ditentukan oleh nomor
berurutan. Setiap lokasi berisi bilangan biner yang dapat diartikan sebagai baik instruksi atau
data. Modul I / O mentransfer data dari perangkat eksternal ke CPU dan memori, dan
sebaliknya. Ini berisi buffer internal untuk penyangga sementara hingga data ini dapat
dikirim. Setelah melihat secara singkat komponen utama ini, sekarang kita beralih ke
gambaran umum tentang bagaimana komponen ini berfungsi bersama untuk menjalankan
program.
Fungsi dasar yang dilakukan oleh komputer adalah menjalankan program, yang
terdiri dari satu set instruksi yang disimpan dalam memori. Prosesor melakukan pekerjaan
sebenarnya dengan menjalankan instruksi yang ditentukan dalam program. Bagian ini
memberikan gambaran umum tentang elemen kunci dari eksekusi program. Dalam
bentuknya yang paling sederhana, pemrosesan instruksi terdiri dari dua Langkah yaitu
prosesor membaca ( mengambil ) instruksi dari memori satu pada satu waktu dan
menjalankan setiap instruksi. Eksekusi program terdiri dari pengulangan proses pengambilan
instruksi dan eksekusi instruksi. Eksekusi instruksi mungkin melibatkan beberapa operasi dan
tergantung pada sifat. Pemrosesan yang diperlukan untuk satu instruksi disebut siklus
instruksi . Menggunakan deskripsi dua langkah yang disederhanakan yang diberikan
sebelumnya, siklus instruksi adalah digambarkan pada Gambar 3.3. Kedua langkah tersebut
disebut sebagai siklus pengambilan dan eksekusi siklus . Eksekusi program berhenti hanya
jika mesin dimatikan, semacam tidak dapat dipulihkan lalu error terjadi, atau instruksi
program yang menghentikan komputer ditemui.
setelah setiap pengambilan instruksi sehingga akan mengambil instruksi berikutnya instruksi
secara berurutan (yaitu, instruksi yang terletak di memori yang lebih tinggi berikutnya
alamat). Jadi, misalnya, mempertimbangkan komputer di mana setiap instruksi menempati
satu memori 16-bit. Asumsikan bahwa penghitung program diatur ke lokasi memori 300, di
mana alamat lokasi mengacu pada kata 16-bit. Prosesor selanjutnya akan
ambil instruksi di lokasi 300. Prosesor menafsirkan instruksi dan melakukan
tindakan yang diperlukan. Secara umum, tindakan ini terbagi dalam empat kategori:
■Processor-memory: Data dapat ditransfer dari prosesor ke memori atau
dari memori ke prosesor.
■ Processor-I/O: Data dapat ditransfer ke atau dari perangkat periferal oleh
mentransfer antara prosesor dan modul I / O.
■ Data processing: Prosesor dapat melakukan beberapa operasi aritmatika atau logika
asi pada data.
■ Control Sebuah instruksi dapat menetapkan bahwa urutan eksekusi diubah.
Program yang ditampilkan menambahkan isi kata memori pada alamat 940 dengan isi
kata memori pada alamat 941 dan menyimpan hasilnya di lokasi terakhir. Tiga instruksi, yang
bisa dideskripsikan sebagai tiga siklus pengambilan dan tiga eksekusi, yang diperlukan:
1. PC berisi 300, alamat instruksi pertama. Instruksi ini (file nilai 1940 dalam heksadesimal)
dimuat ke dalam register instruksi IR, dan PC bertambah
2. 4 bit pertama (digit heksadesimal pertama) dalam IR menunjukkan bahwa AC akan
digunakan. 12 bit tersisa (tiga digit heksadesimal) menentukan alamatnya (940) dari mana
data akan dimuat.
3. Instruksi berikutnya (5941) diambil dari lokasi 301, dan PC bertambah.
4. Isi lama AC dan isi lokasi 941 ditambahkan, dan hasilnya disimpan di AC.
5. Instruksi berikutnya (2941) diambil dari lokasi 302, dan PC bertambah.
6. Isi AC disimpan di lokasi 941.
Dalam contoh ini, tiga siklus instruksi, masing-masing terdiri dari siklus pengambilan
dan menjalankan siklus, diperlukan untuk menambahkan konten lokasi 940 ke konten 941.
Dengan serangkaian instruksi yang lebih kompleks, lebih sedikit siklus yang
dibutuhkan. Beberapa prosesor prosesor terdahulu menyertakan instruksi yang berisi lebih
dari satu memori alamat. Jadi, siklus eksekusi untuk instruksi tertentu pada prosesor tersebut
bisa melibatkan lebih dari satu referensi ke memori. Oleh karena itu, instruksi dapat
menentukan operasi I / O.
Sebagai contoh, prosesor PDP-11 menyertakan instruksi biasanya sebagai TAMBAH B, A,
yang menyimpan jumlah isi lokasi memori B dan A ke dalam lokasi memori A. Siklus
instruksi tunggal dengan langkah-langkah berikut terjadi:
■ Ambil instruksi ADD.
■ Bacalah isi dari lokasi memori A ke dalam prosesor.
■ Bacalah isi dari lokasi memori B ke dalam prosesor. Agar konten A tidak hilang, prosesor
harus memiliki setidaknya dua register yang menyimpan nilai memori, bukan akumulator
tunggal.
■ Tambahkan kedua nilai tersebut.
■ Tuliskan hasil dari prosesor ke lokasi memori A.
Dengan demikian, siklus eksekusi untuk instruksi tertentu mungkin melibatkan lebih
dari satu referensi ke memori. Statusnya dapat dijelaskan sebagai berikut:
■ Intruction address calculation (IAC): Tentukan alamat berikutnya instruksi untuk
dieksekusi. Biasanya, ini melibatkan penambahan nomor tetap ke alamat instruksi
sebelumnya. Misalnya, jika setiap instruksi bernilai 16 bit panjang dan memori diatur
menjadi kata-kata 16-bit, lalu tambahkan 1 ke alamat kami. Sebaliknya, jika memori diatur
sebagai 8-bit yang dapat dialamatkan secara individual byte, lalu tambahkan 2 ke alamat
sebelumnya.
■ Intruction fetch (IF): Membaca instruksi dari lokasi memorinya ke file prosesor.
■ Intruction operation decoding (IOD): Analisis instruksi untuk menentukan jenis
operasi yang akan dilakukan dan operan yang akan digunakan.
■ Operand address calculation(OAC): Jika operasi melibatkan referensi ke operan dalam
memori atau tersedia melalui I / O, kemudian tentukan alamat operan.
■ Operand fetch (OF): Mengambil operand dari memori atau membacanya dari I / O.
■ Data operation (DO): Lakukan operasi yang ditunjukkan dalam instruksi.
■ Operand store (OS): Tulis hasilnya ke dalam memori atau ke I / O.
• Interupsi
Hampir semua komputer menyediakan mekanisme di mana modul lain (I / O, memori)
dapat mengganggu pemrosesan normal prosesor. Bagian kode 1, 2, dan 3 mengacu pada
urutan instruksi yang tidak melibatkan I / O. Panggilan WRITE ditujukan ke I / O program
yang merupakan utilitas sistem dan yang akan menjalankan operasi I / O aktual. Itu
Program I / O terdiri dari tiga bagian:
■ Urutan instruksi, berlabel 4 pada gambar, untuk mempersiapkan I / O yang sebenarnya
operasi. Ini mungkin termasuk menyalin data untuk dikeluarkan ke buffer khusus dan
menyiapkan parameter untuk perintah perangkat.
■ Perintah I / O yang sebenarnya. Tanpa menggunakan interupsi, sekali perintah ini
dikeluarkan, program harus menunggu perangkat I / O melakukan yang diminta fungsi (atau
polling perangkat secara berkala). Program mungkin hanya menunggu berulang kali
melakukan operasi uji untuk menentukan apakah operasi I / O sudah selesai.
■ Urutan instruksi, berlabel 5 pada gambar, untuk menyelesaikan operasi. Ini mungkin
termasuk mengatur bendera yang menunjukkan keberhasilan atau kegagalan operasi.
Multiple Interrupts adalah dua pendekatan dapat diambil untuk menangani beberapa
interupsi. Pertama adalah menonaktifkan interupsi saat interupsi sedang diproses. Sebuah
interupsi dinonaktifkan berarti bahwa prosesor dapat dan akan mengabaikan sinyal
permintaan interupsi. Jika interupsi terjadi selama waktu ini, biasanya interupsi tetap dan
akan tetap tertunda diperiksa oleh prosesor setelah prosesor mengaktifkan interupsi. Kedua
adalah menentukan prioritas untuk interupsi dan mengizinkan interupsi berprioritas lebih
tinggi untuk menyebabkan pengendali interupsi berprioritas lebih rendah terputus sendiri.
• FUNGSI I/O
Sejauh ini, kita telah membahas pengoperasian komputer yang dikendalikan oleh
prosesor, dan kami telah melihat terutama pada interaksi prosesor dan memori. Pembahasan
hanya menyinggung peran komponen I / O. Peran ini disinggung secara rinci di Bab 7, tetapi
ringkasan singkat ada di sini. Modul I / O (misalnya, pengontrol disk) dapat bertukar data
secara langsung dengan prosesor. Sama seperti prosesor dapat memulai membaca atau
menulis dengan memori dengan menyebutkan alamat lokasi tertentu, prosesor juga dapat
membaca data dari atau menulis data ke modul I / O. Dalam kasus terakhir ini, prosesor
mengidentifikasi yang spesifik perangkat yang dikontrol oleh modul I / O tertentu. Dalam
beberapa kasus, memungkinkan pertukaran I / O terjadi secara langsung dengan
penyimpanan. Dalam kasus seperti itu, prosesor memberi modul I / O otoritas untuk
membaca atau tulis ke memori, sehingga transfer memori I / O dapat terjadi tanpa mengikat
prosesor. Selama transfer tersebut, modul I / O mengeluarkan perintah baca atau tulis tugas
ke memori, membebaskan prosesor dari tanggung jawab untuk pertukaran. Operasi ini
dikenal sebagai akses memori langsung (DMA) dan dibahas pada Bab 7.
Komputer terdiri dari satu set komponen atau modul dari tiga tipe dasar (prosesor,
memori, I / O) yang berkomunikasi satu sama lain. Akibatnya, komputer adalah jaringan
modul dasar. Jadi, harus ada jalur untuk menghubungkan modul. Kumpulan jalur yang
menghubungkan berbagai modul disebut interkoneksi. Desain struktur ini akan tergantung
pada pergantian yang dibuat di antara modul. Bentuk utama input dan output untuk setiap
modul adalah:
■ Memori: Biasanya, modul memori terdiri dari N kata dengan panjang yang sama.
Setiap kata diberi alamat numerik unik (0, 1, c, N -1). Lokasi operasi adalah ditentukan
dengan alamat.
■ Modul I / O: Dari sudut pandang internal (ke sistem komputer), I / O adalah
secara fungsional mirip dengan memori. Ada dua operasi baca dan tulis. Modul I / O dapat
mengontrol lebih dari satu perangkat eksternal. Selain itu, ada jalur data eksternal untuk
input dan output data dengan perangkat eksternal. Terakhir, modul I / O mungkin dapat
mengirim sinyal interupsi ke prosesor.
■ Prosesor: Prosesor membaca instruksi dan data, kemudian menulis data, dan menggunakan
sinyal kontrol untuk mengontrol keseluruhan operasi sistem.
Interkoneksi struktur harus mendukung jenis transfer berikut:
■ Memori ke prosesor: Prosesor membaca instruksi atau unit data
dari ingatan.
■ Prosesor ke memori: Prosesor menulis satu unit data ke memori.
■ I / O ke prosesor: Prosesor membaca data dari perangkat I / O melalui I / O
modul.
■ Prosesor ke I / O: Prosesor mengirimkan data ke perangkat I / O.
■ I / O ke atau dari memori: Untuk dua kasus ini, modul I / O diperbolehkan bertukar data
langsung dengan memori, tanpa melalui prosesor, menggunakan akses memori langsung.
Selama bertahun-tahun, sejumlah struktur interkoneksi telah dicoba. Sejauh ini yang paling
umum adalah bus dan berbagai struktur bus ganda, dan titik-struktur interkoneksi ke titik
dengan transfer data terpaket.
Bus adalah alat dominan interkoneksi komponen sistem computer selama beberapa
dekade. Tujuan komputer umunya, secara bertahap telah diberikan cara untuk berbagai
struktur interkoneksi point-to-point, yang sekarang mendominasi sistem computer rancangan.
Namun, struktur bus masih umum digunakan untuk sistem tertanam, terutama
mikrokontroler. Biasanya, bus terdiri dari beberapa jalur komunikasi atau garis. Setiap garis
mampu memancarkan sinyal yang mewakili biner 1 dan biner 0. Seiring waktu, urutan digit
biner dapat dikirim melalui satu baris. Beberapa baris bus dapat digunakan untuk
mengirimkan digit biner secara bersamaan (secara paralel). Garis data menyediakan jalur
untuk memindahkan data di antara modul sistem. Garis ini secara kolektif, disebut bus data .
Bus data dapat terdiri dari 32, 64, 128, atau bahkan lebih baris yang terpisah, jumlah baris
yang disebut sebagai lebar dari bus data. Karena setiap baris hanya dapat membawa satu bit
pada satu waktu, sejumlah baris menentukan berapa banyak bit yang dapat ditransfer pada
suatu waktu. Lebar data bus merupakan faktor kunci dalam menentukan kinerja sistem secara
keseluruhan. Baris alamat digunakan untuk menunjukkan sumber atau tujuan data pada bus
data. Misalnya, jika prosesor ingin membaca sebuah kata (8, 16, atau 32 bit) data dari
memori, ini menempatkan alamat kata yang diinginkan pada baris alamat. Jelas, lebar bus
alamat menentukan kapasitas memori maksimum yang dari sistem. Lebih lanjut, baris alamat
umumnya juga digunakan untuk mengalamatkan I / O. Garis kontrol digunakan untuk
mengontrol akses dan penggunaan data dan baris alamat. Karena baris data dan alamat
digunakan bersama oleh semua komponen. Garis kontrol meliputi: