1
Komputer hardware
Sebagian besar komputer yang
terorganisir seperti yang ditunjukkan pada 1.1. Sebuah komputer berisi
beberapa Subsistem utama ---
seperti Central Processing Unit (CPU), memori,
dan pengontrol perangkat
periferal. Komponen-komponen ini semua plug
menjadi "Bus". Para
bus pada dasarnya adalah sebuah
jalan raya komunikasi; semua komponen lain bekerja
bersama-sama dengan mentransfer
data melalui bus.
Tengah
Unit Pengolahan
(CPU)
Peripheral
perangkat "A"
Peripheral
perangkat "B"
Bus
Memori
Peripheral perangkat
Peripheral kontroler perangkat
kontroler
Gambar 1.1 Skema diagram dari
bagian utama dari sebuah komputer sederhana.
14 Komputer hardware
Bagian aktif dari komputer,
bagian yang melakukan kalkulasi dan mengendalikan semua
bagian lain adalah
"Processing Unit Pusat" (CPU). The Central Processing
Unit (CPU) elektronik yang
berisi jam mengontrol waktu dari semua operasi;
sirkuit elektronik yang
menjalankan operasi aritmatika seperti penambahan dan
perkalian, sirkuit yang
mengidentifikasi dan mengeksekusi instruksi yang membentuk
program, dan sirkuit yang
mengambil data dari memori.
Instruksi dan data yang disimpan
dalam memori utama. CPU mengambil mereka sebagai
dibutuhkan.
Pengendali perangkat periferal
merawat perangkat input, seperti keyboard dan mouse,
perangkat output, seperti
printer dan menampilkan grafis, dan perangkat penyimpanan seperti disk.
CPU dan pengendali perifer
bekerja sama untuk mentransfer informasi antara
komputer dan penggunanya. Kadang-kadang, CPU akan mengatur
untuk data diambil
dari perangkat input transfer,
melalui controller, bergerak di atas bus dan mendapatkan
dimuat langsung ke CPU. Output data yang mengikuti rute
yang sama secara terbalik
- Bergerak dari CPU, melalui
bus, melalui controller dan keluar ke perangkat. Dalam
kasus lain, CPU dapat
mendapatkan controller perangkat untuk memindahkan data secara langsung ke
dalam, atau keluar
memori, utama.
1.1 CPU DAN INSTRUKSI
CPU dari sebuah komputer kecil
modern secara fisik diimplementasikan sebagai silikon tunggal
"Chip". Chip ini akan terukir di atasnya
juta atau lebih transistor dan
kabel interkoneksi yang
mendefinisikan sirkuit CPU. Chip akan memiliki satu
seratus atau lebih pin di
sekitar lingkaran tersebut --- beberapa pin yang titik koneksi
untuk jalur sinyal dari bus,
yang lain akan menjadi titik dimana daya listrik yang
dipasok ke chip.
Meski secara fisik komponen
tunggal, CPU secara logis terdiri dari
jumlah subparts. Yang paling penting tiga, yang
akan hadir dalam setiap
CPU, skematik diperlihatkan pada
Gambar 1.2.
Waktu dan
kontrol sirkuit
Aritmatika logika
satuan
Kecepatan tinggi
mendaftar penyimpanan
Gambar 1.2 Komponen Utama dari
CPU.CPU dan instruksi 5
Waktu dan kontrol
sirkuit
Rangkaian waktu dan kontrol
adalah jantung dari sistem. Sebuah sirkuit mengendalikan
mendefinisikan siklus pengolahan
dasar komputer:
ulangi
mengambil instruksi berikutnya
dari memori
decode instruksi (yaitu
menentukan data
manipulasi rangkaian harus
diaktifkan)
mengambil dari memori data
tambahan yang dibutuhkan
mengeksekusi instruksi (feed
data ke
sirkuit manipulasi yang sesuai)
sampai "berhenti"
instruksi telah dijalankan;
Seiring dengan mengendalikan
"fetch-decode-execute" sirkuit, waktu dan kontrol
komponen dari CPU berisi sirkuit
untuk decoding instruksi dan decoding
alamat (yaitu bekerja di luar
lokasi dalam memori elemen data yang dibutuhkan).
Unit logika aritmatika (ALU)
berisi sirkuit yang memanipulasi data.
Akan ada sirkuit untuk operasi
aritmatika seperti penjumlahan dan perkalian.
Sering kali akan ada versi yang
berbeda dari sirkuit tersebut - satu versi untuk integer
angka dan yang kedua untuk
bilangan real. Sirkuit lainnya akan menerapkan
perbandingan
operasi yang memungkinkan
program memeriksa apakah satu data nilai lebih besar atau
kurang dari beberapa nilai
lainnya. Juga akan ada "logika"
sirkuit yang secara langsung
memanipulasi bit data pola.
Sementara data yang paling
disimpan dalam memori, CPU yang dirancang untuk menahan sejumlah kecil
data di "register"
(menyimpan data) dalam CPU itu sendiri. Hal ini normal untuk memori
utama
harus cukup besar untuk
menampung jutaan nilai data; CPU mungkin hanya memiliki ruang
untuk sesuatu seperti 16 nilai. Suatu daftar CPU akan terus bit
sebanyak "kata" di
memori komputer. Bit, byte, dll kata-kata yang
dijelaskan lebih dalam bagian 1.2.
Kebanyakan CPU saat ini memiliki
register yang masing-masing toko 32 bit data.
Sirkuit di ALU sering
terorganisir sehingga beberapa atau semua masukan mereka
dan output harus datang dari,
atau pergi ke, register CPU. Nilai data harus
diambil dari memori dan disimpan
sementara di register CPU. Hanya kemudian dapat mereka
dikombinasikan menggunakan
rangkaian ALU, dengan hasil lagi pergi ke register. Jika
hasilnya adalah dari langkah
terakhir dalam perhitungan, hal itu akan disimpan kembali ke dalam memori
utama.
Sementara beberapa dari register
CPU yang digunakan untuk nilai data yang sedang
dimanipulasi, orang lain mungkin
diperuntukkan untuk perhitungan yang CPU harus dilakukan ketika
itu bekerja tahu di mana nilai
data di memori tertentu harus disimpan.
Desain CPU bervariasi sehubungan
dengan penggunaan register. Tapi, umumnya, CPU
akan memiliki 8 atau lebih
"data" register dan lain 8 "alamat" register.
Programmer yang menulis dalam
tingkat rendah "bahasa perakitan" (Bab 2) akan
menyadari ini data dan register
alamat di CPU. Kode bahasa assembly
mendefinisikan rincian seperti
bagaimana data harus dipindahkan ke register data tertentu dan bagaimana
alamat harus dihitung dan
disimpan sementara di register alamat.
Umumnya, programmer bekerja
dengan bahasa tingkat tinggi (Bab 4) tidak memiliki
untuk peduli tentang rincian
seperti, tetapi, bila perlu, seorang programmer dapat mengetahui
bagaimana register CPU yang
digunakan dalam kode mereka.
Selain data utama dan register
alamat, CPU berisi banyak lainnya
register, lihat Gambar 1.3. ALU akan berisi banyak register
untuk memegang
sementara nilai-nilai yang
dihasilkan sebagai operasi aritmatika dilakukan. Para
fetch, decode, melaksanakan
siklus
Unit aritmatika logika
Kecepatan tinggi mendaftar
penyimpanan
"Data register" dan
"Alamat register" 6
Komputer hardware
waktu dan kontrol komponen
berisi sejumlah register yang memegang kendali
informasi.
Waktu dan
Kontrol
Satuan
ALU
Kecepatan tinggi
register
Program counter (PC)
Instruksi register (IR)
Flags
(Berbagai anonim
register)
"Data register"
"alamat register"
Gambar 1.3 register CPU.
Program Counter (PC) memegang
alamat lokasi memori yang berisi
instruksi berikutnya yang akan
dieksekusi. Daftar Instruksi (IR) memegang
bit
pola yang mewakili instruksi
saat ini, bagian yang berbeda dari pola bit
digunakan untuk mengkodekan kode
"operasi" dan alamat dari setiap data yang dibutuhkan.
Kebanyakan CPU memiliki
"bendera" mendaftar. Individu bit dalam catatan
mendaftar
Data berbagai status. Biasanya, satu bit digunakan
untuk mengindikasikan apakah CPU
mengeksekusi kode dari program
biasa atau kode yang merupakan bagian dari pengendalian
Sistem operasi (OS) program. (Kode OS memiliki hak, yang
dapat melakukan hal-hal,
program mana yang biasa tidak
dapat lakukan, seperti mengubah pengaturan perangkat periferal
pengendali. Ketika bit OS-mode tidak diset,
petunjuk ini istimewa tidak dapat
akan dieksekusi.) Umumnya,
kelompok lain bit dalam register bendera akan digunakan untuk
merekam hasil dari instruksi
perbandingan yang dilakukan oleh ALU. Satu bit dalam
bendera mendaftar akan
ditetapkan jika sirkuit komparator menemukan dua nilai harus sama;
sedikit berbeda akan ditetapkan
jika yang pertama dari dua nilai lebih besar dari
kedua.
Pada akhirnya, program harus
direpresentasikan sebagai urutan instruksi dalam
memori. Setiap instruksi menentukan
salah satu data langkah manipulasi atau kontrol
tindakan. Biasanya, instruksi yang
dieksekusi secara berurutan. Mesin diinisialisasi
dengan program counter memegang
lokasi memori dari instruksi pertama dari
program dan kemudian siklus
fetch-decode-eksekusi dimulai. CPU mengirimkan
fetch permintaan untuk memori
menentukan lokasi yang ditentukan oleh PC (Program
counter), ini menerima kembali
instruksi dan menyimpan ini dalam IR. PC kemudian
diperbarui sehingga menyimpan
alamat dari instruksi berikutnya dalam urutan. Para
instruksi di IR ini kemudian
diterjemahkan dan dieksekusi. Kadang-kadang, pelaksanaan
instruksi akan mengubah isi dari
PC. Hal ini dapat terjadi ketika
salah satu mendapat
Program Counter
dan Instruksi
Daftar
Flags mendaftar
Program dan
instructionsCPU dan instruksi 7
"Cabang" instruksi
(petunjuk ini memungkinkan program untuk melakukan hal-hal seperti melewatkan
langkah-langkah pengolahan yang
tidak diperlukan untuk data tertentu, atau kembali ke awal
beberapa kode yang harus diulang
berkali-kali).
Sebuah CPU ditandai dengan
repertoar instruksi yang - set instruksi yang
dapat diinterpretasikan oleh
rangkaian dalam waktu dan unit kontrol dan dieksekusi menggunakan
unit aritmatika logika .. Motorola 68000 CPU chip yang
dapat berfungsi sebagai contoh.
68000 (dan varian-variannya
seperti 68030 dan 68040) adalah chip CPU populer di
1980 yang digunakan dalam
komputer Macintosh dan workstation Sun3. Chip
memiliki, sebagai bagian dari
repertoar instruksi nya, petunjuk berikut:
Masukkan Tambahkan dua nilai
integer
DAN Lakukan operasi AND pada dua
pola bit
Uji bcc bendera kondisi, dan
mungkin cabang untuk
instruksi lain (varian seperti
BEQ
pengujian kesetaraan, BLT
pengujian kurang dari)
CLR jelas, yaitu diatur ke 0
CMP Bandingkan dua nilai
JMP Langsung atau goto
JSR Panggil subrutin
SUB Kurangi nilai kedua dari
pertama
RTS Kembali dari subrutin
(Instruksi biasanya diberikan
pendek "mnemonik" nama - nama yang telah
dipilih untuk mengingatkan salah
satu efek yang dicapai oleh instruksi, seperti ADD dan
Hapus.)
CPU arsitektur yang berbeda,
misalnya Motorola 68000 dan Intel-086
arsitektur, memiliki set
instruksi yang berbeda. Akan ada banyak instruksi yang
yang umum - ADD, SUB, dll Tapi
setiap arsitektur khusus akan memiliki sendiri
instruksi yang tidak hadir di
sisi lain. Bahkan ketika kedua arsitektur
telah
instruksi yang sama, misalnya membandingkan dan instruksi
cabang kondisional, ada
mungkin perbedaan dalam cara
kerja tersebut.
Gambar 1.4 adalah ilustrasi
sederhana tentang bagaimana instruksi yang diwakili di dalam
komputer.
Instruksi (kadang-kadang panjang
variabel, 16-bit 48-bit ... atau lebih)
Kode operasi
(Op kode)
"Operan deskripsi"
Sederhana Gambar 1.4
representasi dari instruksi di dalam komputer.
Instruksi repertoar
yg membantu menghafal
names8 instruksi perangkat keras
komputer
Instruksi diwakili oleh satu set
bit. Sebuah CPU sedikit yang tetap
ukuran
instruksi; pada mesin tersebut,
setiap instruksi 16-bit, atau 32-bit atau apa pun.
Kebanyakan CPU memungkinkan
untuk ukuran yang berbeda dari instruksi. Instruksi akan setidaknya
16-bit dalam ukuran, tetapi
mungkin memiliki 16 tambahan, 32, atau bit lebih.
Beberapa bit pertama dari suatu
bentuk instruksi "Op-kode" (kode operasi). Ini
bit mengidentifikasi manipulasi
data atau operasi kontrol yang diperlukan. Lagi CPU
bervariasi, beberapa menggunakan
ukuran tetap op-kode, yang paling memiliki layout yang berbeda untuk
instruksi dengan nomor yang
berbeda dari bit yang dialokasikan untuk kode op-. Jika CPU menggunakan
ukuran tetap op-kode, decoding
sederhana. Waktu dan komponen kontrol akan
menerapkan bentuk saklar multiway.
Jadi, jika seseorang memiliki
4-bit op-kode, orang bisa
memiliki sesuatu yang decoding
skema seperti berikut:
0000 Apakah sebuah tambahan
0001 Lakukan pengurangan
0010 Salin (bergerak) beberapa
data
0011 Melakukan operasi AND
...
...
Arti dari bit sisa instruksi
yang sebenarnya tergantung pada
instruksi.
Banyak instruksi mengharuskan
data akan ditentukan. Dengan demikian, instruksi ADD
perlu mengidentifikasi dua nilai
harus dijumlahkan, dan juga harus menentukan tempat
mana hasilnya harus disimpan. Seringkali beberapa informasi
ini dapat implisit.
Instruksi ADD dapat diatur
sehingga jumlah dari dua nilai yang ditetapkan
selalu menggantikan nilai
pertama ini disimpan dimanapun.
Meskipun beberapa lokasi data
dapat implisit, maka perlu untuk menentukan baik
sumber atau lokasi tujuan untuk
data lain. Kadang-kadang program akan
membutuhkan
untuk menambahkan nomor yang
sudah diadakan di register data dalam CPU; pada waktu lain,
Program mungkin perlu untuk
mengambil data tambahan dari memori. Jadi kadang-kadang
"Operan deskripsi"
bagian dari instruksi tambahkan akan perlu untuk mengidentifikasi CPU dua
Data register yang akan
digunakan; kali lain, "deskripsi operan" akan harus
mengidentifikasi satu mendaftar
CPU dan satu lokasi memori. Sesekali, "operan
Deskripsi "bagian dapat
digunakan untuk mengidentifikasi sebuah register CPU dan nilai itu adalah untuk
ditambahkan ke isi yang
mendaftar sudah ada.
Di sinilah hal mendapatkan
sedikit rumit. CPU memiliki cara yang berbeda
banyak
pengkodean informasi tentang
register untuk digunakan, alamat memori
lokasi, dan penggunaan nilai
data eksplisit. Sebuah arsitektur tertentu mesin
akan memiliki satu set
"mode pengalamatan" - setiap mode menentukan cara yang berbeda dari
menggunakan bit dari operan
untuk mengkodekan deskripsi detail mengenai lokasi
nilai-nilai data. Arsitektur yang berbeda memiliki
set berbeda menangani
mode.
Beberapa instruksi tidak perlu
data. Misalnya, "Bcc"
(bersyarat
cabang) Kelompok Instruksi
menggunakan informasi hanya tercatat di Flags CPU
mendaftar. Instruksi ini memiliki cara yang
berbeda menggunakan bit operan
instruksi kata. Seringkali, seperti dengan
instruksi Bcc, bit operan mengkodekan suatu
alamat instruksi yang akan
digunakan untuk mengganti isi saat ini
Op-kode
Operan (s)
Mengatasi modesCPU dan instruksi
9
program counter. Mengganti isi PC perubahan
instruksi berikutnya
dieksekusi.
1,2 MEMORY DAN DATA
Komputer memiliki dua jenis
memori:
ROM - Read Only Memory
RAM - Memori yang normal Baca Tulis
RAM singkatan bukan RWM standar.
Ini sebenarnya standar untuk
"Random Access
Memory". Asal-usulnya sudah sangat tua,
itu digunakan untuk membedakan utama
memori (di mana nilai data dapat
diakses dalam urutan apapun - maka "acak") dari
sekunder penyimpanan seperti
kaset (dimana data hanya dapat diakses dalam urutan sekuensial).
Memori ROM umumnya digunakan
untuk menahan bagian-bagian dari kode komputer
sistem operasi. Beberapa komputer memiliki
kenangan ROM kecil yang hanya berisi
minimal kode hanya cukup untuk
memuat sistem operasi dari disk
penyimpanan unit. Mesin lainnya memiliki kenangan
ROM yang lebih besar yang menyimpan substansial
bagian dari kode sistem operasi
bersama dengan kode lain, seperti kode untuk
menghasilkan menampilkan grafis.
Sebagian besar memori pada
komputer akan RAM. RAM memori digunakan untuk
terus sisa dari kode dan data
untuk sistem operasi, dan kode dan data
untuk program (s) yang
dijalankan pada komputer.
Ukuran memori mungkin dikutip
dalam bit, byte, atau kata-kata:
Bit tunggal 0 atau 1 nilai data
Byte kelompok 8 bit
Firman lebar jalur data utama
antara memori dan CPU, mungkin
16-bit (dua byte), 32-bit (empat
byte) atau lebih besar.
Ukuran memori yang paling sering
diberikan dalam bentuk byte. (Unit-unit lain yang
kurang bermanfaat untuk tujuan
perbandingan. Bit terlalu kecil unit
penyimpanan. Kata
ukuran bervariasi antara mesin
dan pada beberapa mesin yang tidak benar-benar didefinisikan.) Para
unit memori yang lebih besar
seperti byte dan kata-kata yang hanya terdiri dari kelompok-kelompok bit.
Semua perangkat penyimpanan
memerlukan sederhana dua-negara untuk menyimpan bit komponen individu.
Banyak teknologi yang berbeda
telah digunakan Beberapa komputer awal dibedakan 0
dan nilai bit 1 oleh kehadiran
atau tidak adanya pulsa energi yang bergerak melalui
tabung merkuri; penyimpanan
eksternal diberikan dengan menggunakan media kertas seperti kartu atau
kaset dimana ada atau tidak
adanya lubang menekan dibedakan bit 0 / 1
pengaturan. Kemudian, teknologi yang paling
populer untuk memori utama komputer yang digunakan
loop kecil oksida magnetik
("core") yang dapat diatur dengan berbeda
Utara / Selatan polaritas untuk
membedakan keadaan 0 / 1 bit. Disk (dan kaset) masih menggunakan
pengkodean magnetik - 0 / 1
nilai bit dibedakan oleh negara magnetik dari bintik-bintik
oksida pada permukaan disk.
Kenangan utama dari komputer
modern terbuat dari sirkuit terintegrasi.
Satu rangkaian dasar adalah
"flip-flop". Ini menggunakan empat transistor
kabel bersama-sama, bisa
ROM memori
Memori RAM
Bit, byte, dan words10 Komputer
diatur dalam atau suatu keadaan
off dan sebagainya dapat menahan sedikit pun. Sebuah rangkaian yang lebih
rumit, dengan
delapan sandal jepit, dapat
menyimpan satu byte. Diulang lagi dan lagi, ini dapat
dibangun
ke sirkuit terpadu yang
menampung jutaan byte. Individu chip memori dengan
sebanyak 4 juta byte kapasitas
penyimpanan sekarang bisa dibeli. Sebuah
memori komputer akan terdiri
dari beberapa chip ini.
Gambar 1.5 merupakan ilustrasi
sederhana dari memori untuk mesin dengan 16-bit
(Dua byte) kata ukuran.
Memori
8-bit byte 8-bit byte
Alamat n
Alamat n + 2
Alamat n + 4
Alamat n + 6
...
...
Gambar 1.5 Memori
diselenggarakan dalam kata-kata dengan alamat integer.
Memori dapat dilihat sebagai
vektor (satu dimensi array) kata-kata. Para
kata dapat diidentifikasi oleh
posisi mereka (nomor indeks) dalam vektor ini -
indeks integer dari sebuah kata
adalah "alamat" nya. Sebagian besar komputer yang dirancang
untuk memungkinkan
pengalamatan byte individual. (Jika permintaan dibuat untuk
byte tertentu,
unit memori dapat kembali
seluruh kata, meninggalkan ke sirkuit CPU untuk memilih
diperlukan byte). Karena byte individual
addressable, kata alamat
peningkatan 2s (atau dalam 4s jika itu
adalah mesin dengan 4 kata byte).
Jumlah memori yang tersedia pada
komputer telah meningkat pesat selama
beberapa tahun terakhir. Kebanyakan komputer pribadi saat
ini sekarang memiliki sekitar 8 juta byte
penyimpanan (8 megabyte, 8MB);
workstation lebih kuat memiliki dari 32MB ke
Sistem waktu 256MB dan besar
bersama mungkin memiliki 1000 MB (atau 1gigabyte).
"Cache" kenangan yang
semakin umum ("cache - tempat persembunyian
Cache kenangan ketentuan, harta
dll "). pada dasarnya tersembunyi dari
programmer aplikasi; cache milik
perangkat keras komputer dan nya
mengendalikan sistem operasi. Ini bekerja bersama-sama
menggunakan cache untuk meningkatkan
kinerja. Saat ini, memori cache khas akan
sampai dengan 256 KB.
Cache dapat membentuk bagian
dari sirkuit dari chip CPU itu sendiri, atau mungkin
terpisah chip. Either way, sistem akan
dirancang sehingga informasi dalam
cache bisa diakses jauh lebih
cepat daripada informasi dalam penyimpanan utama.
Alamat memori
Cache memoriesMemory dan data 11
OS dan perangkat keras CPU
mengatur untuk menyalin blok byte ("halaman") dari main
memori ke dalam cache. Halaman-halaman yang dipilih
bisa mereka dengan instruksi
saat ini sedang dieksekusi. Kebanyakan program melibatkan
loop di mana set tertentu
instruksi dieksekusi berulang
kali. Jika instruksi membentuk sebuah
loop berada di
cache, instruksi-fetch operasi
CPU sangat dipercepat. Kadang-kadang
senilai menyalin halaman dengan
data dari memori utama ke cache - maka selanjutnya
Data mengakses lebih cepat
(meskipun data yang bisa berubah lakukan harus disalin kembali ke
akhirnya memori utama). Operasi pergeseran halaman, atau
data individu
unsur, antara cache dan memori
sepenuhnya perhatian dari CPU
perangkat keras dan sistem
operasi. Satu-satunya cara bahwa
programmer harus
mampu mendeteksi cache adalah
dengan melihat kinerja sistem meningkat itu.
Semua data dimanipulasi oleh
komputer yang diwakili oleh pola bit. Sebuah byte, dengan
8 bit individu, dapat mewakili salah
satu dari 256 pola yang berbeda, beberapa akan ditampilkan dalam
Gambar 1.6.
Satu set dari 256 pola cukup
besar untuk memiliki pola yang berbeda untuk setiap huruf dari
alfabet, angka, karakter tanda
baca, dan berbagai seluruh khusus
karakter. Jika sebuah program memiliki
untuk bekerja dengan data tekstual, terdiri dari banyak
karakter individu, maka
masing-masing karakter dapat dikodekan dalam satu byte. Dari
Tentu saja harus ada konvensi
yang menetapkan pola spesifik untuk masing-masing berbeda
karakter. Pada suatu waktu, produsen
komputer yang berbeda yang ditentukan sendiri
skema pengkodean karakter. Sekarang, sebagian besar
menggunakan skema pengkodean karakter standar
dikenal sebagai ASCII (American
Standard Code for Information Interchange).
Meskipun standar, penugasan pola
untuk karakter dasarnya
sewenang-wenang; Gambar 1.6
menunjukkan karakter untuk beberapa pola bit diilustrasikan.
Tab
Ruang
(
*
6
@
B
U
suatu
d
}
±
P
V
™
0
1
Gambar 1.6 Beberapa pola bit 256
mungkin encodable dalam satu byte
dan (dicetak) karakter biasanya
dikodekan oleh pola-pola ini.
Skema ASCII diamanatkan oleh
standar internasional. Ini menentukan bit
pola yang harus digunakan untuk
mengkodekan 128 karakter yang berbeda termasuk semua
huruf-huruf Romawi, angka, tanda
baca dan beberapa kontrol khusus
karakter seperti
"Tab". Para 128 sisanya mungkin pola
(yang dimulai dengan 1
Data sebagai pola bit
dalam memori
Karakter data
Karakter ASCII
codes12 Komputer
pada bit paling kiri dari byte)
tidak ditugaskan dalam standar. Beberapa komputer
sistem mungkin memiliki
pola-pola ini ditugaskan untuk karakter tambahan seperti ™, ± ¢,, ‡.
Pola bit juga dapat digunakan
untuk mewakili angka. Komputer bekerja dengan
angka integer dan "floating
point" angka. Angka floating point digunakan
untuk
mendekati bilangan real
matematika.
Sebuah byte tunggal hanya dapat
digunakan untuk mengkodekan 256 nilai yang berbeda. Jelas,
perhitungan aritmatika akan
bekerja dengan rentang yang lebih luas - seperti -2000000000
ke 2000000000. Bit yang lebih banyak diperlukan
untuk mewakili semua orang yang berbeda
mungkin nilai-nilai. Semua nilai integer mewakili
menggunakan beberapa byte. Umumnya,
CPU yang dirancang untuk bekerja
efisien dengan baik dua-byte bilangan bulat dan empat-byte
bilangan bulat (CPU akan
memiliki dua versi yang sedikit berbeda dari masing-masing aritmetika
instruksi). Dua-byte integer cukup jika
program ini bekerja dengan
nomor dalam kisaran dari sekitar
minus ke plus tiga puluh ribu tiga puluh ribu, sedangkan
empat-byte integer mencakup
rentang dari minus ke plus dua ribu juta.
Gambar 1.7 menunjukkan
representasi umum dari sebuah bilangan bulat beberapa saat menggunakan dua
byte. Representasi nomor memiliki pola
teratur yang jelas. Berbeda dengan
kasus data karakter, pola yang
digunakan untuk mewakili bilangan bulat tidak bisa sembarangan.
Mereka harus mengikuti pola yang
teratur dalam rangka untuk membuat praktis untuk merancang
sirkuit elektronik yang dapat
menggabungkan pola dan mencapai efek yang setara dengan
aritmatika operasi. Skema kode yang menyediakan
aturan untuk mewakili
angka ini dikenal sebagai
"notasi melengkapi dua itu"; skema ini adalah tercakup dalam
pengantar program pada perangkat
keras komputer.
1
2
3
4
0 -32768
-32767
-32766
-32765
-32764
-3
-2
-1
32765
32766
32767
Gambar 1.7 Mewakili bilangan
bulat dalam dua byte (16-bit) pola bit sesuai
dengan "dua yang melengkapi
notasi skema".
Data Numeric
Integer valuesMemory dan data 13
Ada skema pengkodean lainnya
untuk bilangan bulat, tetapi "notasi melengkapi dua" adalah
yang paling umum digunakan. Skema pengkodean yang sebenarnya
digunakan untuk mewakili bilangan bulat,
dan pola bit yang dihasilkan,
tidak sering menarik bagi programmer.
Sementara sebuah komputer
membutuhkan pola representasi bit nomor khusus,
string 0 dan 1 karakter yang
tidak sesuai baik untuk output atau input. Manusia
memerlukan nomor sebagai urutan
karakter digit. Setiap kali sebuah angka masukan
ke
program, atau dicetak oleh
sebuah program, beberapa kode harus dijalankan untuk menerjemahkan
antara representasi biner
komputer dan representasi string digit yang digunakan
oleh manusia.
Rangkaian elektronik di CPU
dapat memproses pola biner dan benar
mereproduksi efek dari operasi
aritmatika. Hanya ada satu menangkap dengan
bilangan bulat
- Di komputer mereka dibatasi
untuk rentang tetap.
Dua-byte cukup untuk mewakili
angka -32.767-32.768 - dan itu adalah
kesalahan jika suatu program
menghasilkan suatu nilai di luar kisaran ini. Kesalahan yang mungkin.
Pertimbangkan misalnya program
yang ditetapkan sebagai satu-satunya harus bekerja dengan
nilai dalam kisaran 0-25000;
programmer cukup mungkin memilih untuk menggunakan dua-
integer byte untuk mewakili
nilai-nilai tersebut. Namun, perhitungan seperti
"bekerja di luar 85%
dari 24760 "bisa
menimbulkan masalah, meskipun hasil (21046) adalah dalam jangkauan. Jika
perhitungan dilakukan dengan
mengalikan 85 dan 24760, hasil tengah adalah 2104600
di luar jangkauan.
Operasi aritmatika yang
melibatkan direpresentasikan (luar jangkauan) nomor dapat
dideteksi oleh perangkat keras -
yaitu sirkuit di ALU. Operasi tersebut meninggalkan
pola bit yang salah dalam hasil,
tetapi memberikan peringatan dengan menetapkan "overflow"
bit pada flag CPU mendaftar. Umumnya, sistem komputer yang
terorganisir sehingga
pengaturan dari bit meluap akan
mengakibatkan sistem operasi berhenti program
dengan kesalahan. Sistem operasi akan memberikan
beberapa pesan kesalahan. (Yang paling
Penyebab umum
"overflow" adalah pembagian dengan nol - biasanya hasil dari ceroboh
kesalahan pemrograman atau,
kadang-kadang, karena entri data yang salah.)
Angka floating point digunakan
untuk bilangan real perkiraan. Mereka terutama
digunakan dengan perhitungan
teknik dan ilmiah. Skema komputer untuk
angka floating point erat mirip
dengan notasi ilmiah normalisasi:
Nomor representasi ilmiah
Normalisasi
17,95 1,795 E +01
-0,002116 -2,116 E-03
1,5 1,5 E +00
31.267.489,2 3,12674892 E 07
Notasi ilmiah normal memiliki
tanda, sebuah "mantissa", dan ditandatangani
"Eksponen" - seperti
'+', 1,795, dan E 01. Representasi floating point
bekerja di
banyak cara yang sama (Anda bisa
memikirkan floating point sebagai arti bahwa eksponen
menentukan seberapa jauh
"desimal" titik perlu dipindahkan, atau melayang, ke kiri atau
kanan).
Sebuah angka floating point akan
dialokasikan beberapa byte (setidaknya empat byte,
biasanya lebih). Satu bit pada byte pertama
digunakan untuk tanda nomor. Lain
kelompok bit mengkodekan
eksponen (ditandatangani). Sisa bit menyandikan
Integer melimpah
Floating point
numbers14 Komputer
mantissa. Tentu saja, kedua eksponen dan
mantissa dikodekan menggunakan biner
sistem daripada sistem desimal.
Karena bagian-bagian dari
sejumlah floating point ditentukan oleh aturan pengkodean biasa,
ini lagi mungkin untuk
menerapkan "floating point" sirkuit aritmatika di ALU yang
memanipulasi mereka tepat. Seperti bilangan bulat, bilangan
floating point dapat
overflow. Jika nomor memiliki eksponen
yang melebihi jangkauan diperbolehkan, maka
meluap terjadi. Seperti dengan bilangan bulat,
ini mudah untuk mendeteksi (dan yang paling sering disebabkan oleh
pembagian dengan nol). Tetapi dengan angka floating
point, ada menangkap lain - agak
lebih luas satu daripada masalah
"overflow".
Alokasi dari sejumlah tetap bit
untuk mantissa berarti bahwa hanya tertentu
nomor secara akurat diwakili. Ketika empat byte yang
digunakan, mantissas yang
akurat untuk sekitar delapan
digit desimal. Jadi, sementara itu mungkin
untuk mewakili
nomor seperti 0.81246676
0.81246675 dan tepat, semua nilai dalam kisaran
0,812466755 .. untuk 0,812466764 ... harus didekati dengan jumlah
terdekat
yang dapat diwakili tepat yaitu
0,81246676. Setiap digit yang tersisa, dalam
9
dan tempat-tempat berikutnya di
fraksi, hilang dalam proses pembulatan.
Setiap operasi floating point
yang menggabungkan dua nilai akan selesai dengan pembulatan
dari hasil untuk nilai
representable terdekat. Mungkin terlihat bahwa hilangnya
satu bagian
dalam seratus juta adalah tidak
penting. Sayangnya, hal ini tidak benar. Setiap
Langkah perhitungan dapat
memperkenalkan kesalahan tersebut - dan perhitungan lengkap dapat melibatkan
jutaan langkah di mana kesalahan
dapat menggabungkan dan tumbuh. Selanjutnya, sangat
umum untuk ilmuwan dan insinyur
akan mencoba untuk menghitung perbedaan kecil
antara dua nilai besar - dan
dalam kasus ini, "dibulatkan" bagian mungkin
sebanding dengan hasil akhir.
Sementara kesalahan overflow
integer yang mudah dideteksi oleh perangkat keras dan jelas
kesalahan, kesalahan dari bulat
tidak akan bisa ditangani dengan begitu sederhana. Mereka perlu untuk bekerja
ekstensif dengan angka floating
point benar-benar perlu mengambil analisis numerik
kursus yang mencakup cara yang
benar mengatur perhitungan sehingga untuk meminimalkan
efek kumulatif dari kesalahan
putaran.
Sebagaimana dijelaskan dalam
bagian 1.1, instruksi direpresentasikan sebagai pola bit - mungkin
16 bit (dua byte) panjang,
mungkin lebih lama. Dalam memori, instruksi yang
disimpan dalam
urutan byte yang berurutan.
Sebuah komputer eksperimental
beberapa telah dibangun di mana setiap kata dalam memori
memiliki sesuatu seperti 2 atau
3 bit ekstra yang ditandai jenis data yang disimpan dalam kata itu.
Ini "Arsitektur memori
tagged" mesin mungkin telah menggunakan kode 00 untuk menandai suatu
kata yang berisi instruksi, 01
jika itu berisi data integer dll komputer tersebut
yang atipikal. Pada kebanyakan komputer, pola
bit dalam memori tidak memiliki "tipe", tidak
intrinsik makna. Yang dimaksud dengan pola bit
ditentukan oleh rangkaian dari
CPU yang menafsirkan hal itu,
maka jika itu berakhir di IR (instruksi mendaftarkan) itu akan
ditafsirkan sebagai mewakili
instruksi, sementara jika ia pergi ke sebuah tambahan (integer)
sirkuit dalam ALU itu
ditafsirkan sebagai sebuah integer. Hal ini dimungkinkan (meskipun
jarang)
untuk membuat kesalahan
pemrograman sehingga nilai-nilai data yang diambil dari memori untuk
diartikan sebagai instruksi
atau, alternatif, untuk sebuah program untuk mulai menyimpan hasil
perhitungan dalam bagian-bagian
dari memori yang memegang urutan instruksi. Jika
program berisi kesalahan kotor
seperti itu, biasanya segera mencoba operasi ilegal
(Seperti mencoba untuk
menjalankan pola bit yang tidak dapat diakui sebagai yang sah
instruksi) dan sebagainya
dihentikan oleh perangkat keras komputer dan sistem operasi.
Round-off error
Instruksi - hanya
pola bit lain
Semua hanya sedikit
patternsMemory dan data 15
1.3 BUS
Sebuah bus komputer dapat
dilihat sebagai terdiri dari sekitar seratus kabel paralel;
lihat Gambar 1.8. Beberapa kabel membawa sinyal
waktu, yang lain akan memiliki kontrol
sinyal, kelompok lain akan
memiliki kode pola bit yang mengidentifikasi komponen
(CPU, memori, pengendali
perifer) yang berurusan dengan data, dan kabel lainnya
membawa sinyal encoding data.
Jam
sinyal
1 Volt
0 Volt
0 atau 1 nilai
pengkodean data
jutaan siklus per detik
Kontrol
sinyal
Komponen alamat
dikodekan sebagai 0s dan
1s
Gambar 1.8 Bus.
Sinyal yang dikirim melalui bus
oleh tegangan pengaturan pada kabel yang berbeda (
tegangan yang kecil, seperti
0-volt dan 1-volt). Ketika tegangan diterapkan ke
kawat
efek menyebar bersama bahwa
kawat di dekat dengan kecepatan cahaya, karena bus hanya
beberapa inci panjang, sinyal
yang terdeteksi pada dasarnya seketika oleh semua
komponen terpasang. Transmisi informasi dikendalikan
oleh jam yang menempatkan
waktu sinyal pada beberapa
kabel. Sinyal informasi yang dikodekan
ke bus,
ditahan selama beberapa jam kutu
untuk memberikan semua komponen kesempatan untuk mengenali dan jika
mengambil tindakan yang tepat,
maka sinyal akan dihapus. Jam yang mengontrol bus
mungkin "ticking" di
lebih dari seratus juta kutu per detik
The "colokan" yang
menempel komponen untuk bus menggabungkan cukup canggih
sirkuit. Sirkuit ini menafsirkan pola 0 /
1 tegangan set pada kontrol dan
Alamat garis - sehingga memori
dapat mengenali sinyal sebagai "mengatakan" sesuatu seperti
"Menyimpan data pada alamat
xxx", sementara unit kontrol disk dapat mengenali pesan
seperti "bersiap-siap untuk
menulis ke blok disk diidentifikasi oleh bit-bit data". Selain itu,
sirkuit ini berhubungan dengan
"arbitrase bus". Kadang-kadang, dua atau lebih
komponen
mungkin ingin menempatkan sinyal
pada bus tepat pada waktu yang sama - arbitrase bus
sirkuit menyelesaikan konflik
tersebut memberikan salah satu komponen diutamakan (yang lain
komponen menunggu seratus
sepersejuta beberapa detik dan kemudian mendapat berikutnya
kesempatan untuk mengirim data)
.16 Komputer
1,4 peripheral
Ada dua kelompok penting dari
input / output (i / o) perangkat. Ada perangkat
yang menyediakan penyimpanan
data, seperti disk dan kaset, dan ada perangkat yang terhubung
sistem komputer dengan dunia
luar (keyboard, printer, menampilkan, sensor).
Perangkat penyimpanan data rekam
menggunakan pengkodean pola bit yang sama seperti yang digunakan dalam
memori dan CPU. Perangkat ini bekerja dengan
blok ribuan byte.
Ruang penyimpanan dialokasikan
dalam unit-unit besar. Transfer data dalam satuan
"Blok".
waktu.
Sebuah
Data
sirkuit.
trek.
1
0
1
11
1
1
0
0
0
0
...
Data.
Disk
bus.
digunakan.
kesalahan.
Bus
Tujuan
alamat
Flags
instruksi.
Pada satu
PC
Flags
CPU
Tujuan
alamat
Flags
1
PC
Flags
CPU
Tujuan
alamat
Flags
2
PC
Flags
CPU
Tujuan
alamat
Flags
3
PC
Flags
CPU
Tujuan
alamat
Flags
4
PC
Flags
CPU
Tujuan
alamat
Flags
5
PC
Flags
CPU
Tujuan
alamat
Flags
6
memori
memori
pekerjaan.
Ini
file.
Gratis
0
1
2
4
...
entri
blok
dialokasikan.
Sebagian besar
Terlepas dari
Para
Jika ada
Semua
Meskipun
perangkat.
Ada
Para
Bus
perangkat
1.16.
ulangi
Para
perangkat. Yang ketiga
Para
Para
3
PC
Flags
CPU
bendera
4
PC
Flags
CPU
Nilai
1
1
PC
Flags
CPU
bendera
2
PC
Flags
CPU
Nilai
0
Ini
Program ini
Program
kontroler.
tidak cukup.
jangkauan.
Tegangan
CPU
manipulasi.
Satu
Yang mana?
2.
Anda tentu saja.
...
3.
Beberapa komputer