Welcomw To Blogspot Riezal Cinta Damai

Kamis, 19 Januari 2012

Belajar Pemula Program C++ (c1)


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