Senin, 04 April 2011

Pengantar Komputasi Modern

komputer adalah Programmable mesin yang dirancang untuk secara berurutan dan secara otomatis melaksanakan urutan aritmatika atau operasi logika. Urutan operasi tertentu dapat diubah dengan mudah, yang memungkinkan komputer untuk menyelesaikan lebih dari satu jenis masalah.

Konvensional komputer terdiri dari beberapa bentuk memoriuntuk penyimpanan data, setidaknya satu unsur yang melaksanakan operasi aritmatika dan logika, dan sequencing dan elemen kontrol yang dapat mengubah urutan operasi berdasarkan informasi yang disimpan. Piranti periferal memungkinkan informasi yang akan dimasukkan dari sumber eksternal, dan memungkinkan hasil usaha untuk dikirim keluar.

Teman-pengolahan unit komputer A menjalankan serangkaian instruksi yang membuatnya membaca, memanipulasi dan kemudian menyimpan data . instruksi Bersyarat mengubah urutan instruksi sebagai fungsi dari keadaan saat ini mesin atau lingkungannya.

Komputer elektronik pertama dikembangkan pada pertengahan abad ke-20 (1940-1945). Awalnya, mereka adalah ukuran ruangan besar, sebagai kekuatan mengkonsumsi sebanyak beberapa ratus modern komputer pribadi (PC).

Modern komputer didasarkan pada sirkuit terpadu dengan jutaan miliaran kali lebih mampu dari mesin awal, dan menempati sebagian kecil ruang. Komputer sederhana cukup kecil untuk masuk ke dalam perangkat mobile , dan dapat diaktifkan oleh baterai kecil. Komputer pribadi dalam berbagai bentuk mereka adalah ikon dari Era Informasi dan apa yang kebanyakan orang anggap sebagai "komputer". Namun,komputer tertanam ditemukan di banyak perangkat dari MP3 player untuk pesawat tempur dan dari mainan untuk robot industri yang paling banyak.

Sejarah komputasi

Penggunaan pertama "komputer" kata tercatat pada 1613, mengacu kepada orang yang melakukan perhitungan, atau perhitungan, dan kata itu dilanjutkan dengan arti yang sama sampai pertengahan abad ke-20. Dari akhir abad ke-19 dan seterusnya, kata tersebut mulai mengambil makna yang lebih akrab, menggambarkan sebuah mesin yang melakukan perhitungan.

Limited-fungsi komputer awal

Sejarah komputer modern dimulai dengan dua perhitungan teknologi-otomatis terpisah dan programabilitas-tapi tidak ada perangkat yang satu dapat diidentifikasi sebagai komputer awal, sebagian karena penerapan yang tidak konsisten dari istilah tersebut. Contoh perhitungan awal perangkat mekanis termasuk sempoa , yang aturan slide dan arguably astrolabe dan mekanisme Antikythera , sebuah komputer astronomi kuno yang dibangun oleh orang Yunani sekitar 80 SM. Ahli matematika Yunani Hero dari Alexandria (c. AD 10-70 ) membangun sebuah teater mekanik yang dilakukan sebuah drama yang berlangsung 10 menit dan dioperasikan oleh sebuah sistem yang kompleks tali dan drum yang mungkin dianggap sebagai sarana menentukan bagian mana dari mekanisme yang dilakukan tindakan dan kapan. Ini adalah esensi programabilitas.

The "puri jam", sebuah jam astronomi yang ditemukan oleh Al-Jazari pada tahun 1206, dianggap paling awal diprogram komputer analog . Ini ditampilkan zodiak , makamatahari dan bulan mengorbit , sebuah bulan sabit berbentuk pointer bepergian di gateway yang menyebabkan pintu otomatis untuk membuka setiap jam , dan lima robot musisi yang memainkan musik saat dipukul oleh tuas yang dioperasikan oleh camshaft menempel pada roda air . Panjang hari dan malam bisa kembali diprogram untuk mengkompensasi perubahan panjang siang dan malam sepanjang tahun.

Pada tahun 1642, yang Renaissance melihat penemuan dari kalkulator mekanik , sebuah perangkat yang bisa melakukan keempat operasi aritmatika tanpa bergantung pada kecerdasan manusia. Kalkulator mekanis pada akar perkembangan komputer dalam dua cara terpisah, awalnya, adalah dalam mencoba mengembangkan kuat dan lebih fleksibel kalkulator lebih bahwa komputer pertama kali berteori ( Charles Babbage , Alan Turing ) dan kemudian berkembang ( ABC , Z3 , ENIAC ...) mengarah ke pengembangan komputer mainframe, tetapi juga mikroprosesor, yang dimulai revolusi komputer pribadi, dan yang sekarang di jantung dari semua sistem komputer tanpa ukuran atau tujuan, kebetulan diciptakan oleh Intel selama pengembangan sebuah kalkulator elektronik , keturunan langsung ke kalkulator mekanik.

Pertama tujuan umum komputer

Pada 1801, Joseph Marie Jacquard melakukan perbaikan terhadap tekstil alat tenun dengan memperkenalkan serangkaian kartu kertas menekan sebagai template yang memungkinkan nya alat tenun untuk menenun pola rumit secara otomatis. Yang dihasilkan alat tenun Jacquard merupakan langkah penting dalam pengembangan komputer karena penggunaan kartu menekan untuk mendefinisikan pola tenunan dapat dilihat sebagai bentuk awal, meskipun terbatas, dari programabilitas. tu adalah perpaduan dari perhitungan otomatis dengan programabilitas yang dihasilkan komputer dikenali pertama. Pada 1837, Charles Babbage adalah orang pertama yang konsep dan desain mekanik komputer diprogram penuh, nya mesin analitis . Limited keuangan dan's ketidakmampuan Babbage untuk menolak bermain-main dengan desain berarti bahwa perangkat tidak pernah selesai, namun anaknya, Henry Babbage , menyelesaikan versi sederhana dari mesin komputasi's unit analisis tersebut (pabrik) pada tahun 1888. Dia memberikan demonstrasi sukses penggunaannya dalam tabel komputasi pada tahun 1906. Mesin ini diberikan kepadamuseum di South Kensington Science pada tahun 1910.

Pada akhir 1880-an, Herman Hollerith menemukan rekaman data pada media yang dapat dibaca mesin. Sebelum menggunakan media mesin yang dapat dibaca, di atas, telah untuk kontrol, bukan data. "Setelah beberapa percobaan awal dengan pita kertas, ia menetap di kartu menekan ... Untuk memproses kartu ini menekan ia menemukan tabulator , dan keypunch mesin.Ketiga penemuan adalah dasar dari industri pengolahan informasi modern. skala besar otomatis data pengolahan kartu menekan dilakukan untuk Sensus Amerika Serikat 1890 oleh's perusahaan Hollerith, yang kemudian menjadi inti dari IBM . Pada akhir abad ke-19 sejumlah teknologi yang nantinya akan berguna dalam realisasi praktis komputer telah mulai muncul: kartu menekan ,Aljabar Boolean , yang tabung vakum (katup termionik) dan teleprinter .

Selama paruh pertama abad ke-20, banyak ilmiah komputasi kebutuhan bertemu dengan semakin canggih komputer analog , yang menggunakan atau langsung mekanik listrik model masalah sebagai dasar perhitungan . Namun, tidak diprogram dan umumnya tidak memiliki fleksibilitas dan akurasi komputer digital modern.

Alan Turing secara luas dianggap sebagai bapak modern ilmu komputer . Pada tahun 1936 Turing memberikan formalisasi berpengaruh konsep algoritma dan perhitungan dengan mesin Turing , menyediakan cetak biru untuk komputer digital elektronik. Dari perannya dalam penciptaan komputer modern, Sisa majalah dalam penamaan Turing salah satu yang 100 paling berpengaruhorang-orang di abad ke-20, menyatakan: "Fakta tetap bahwa setiap orang yang keran di keyboard, membuka spreadsheet atau-program pengolah kata, adalah bekerja di sebuah inkarnasi dari mesin Turing".

The Atanasoff-Berry Computer (ABC) merupakan salah satu perangkat komputer elektronik pertama biner digital. Dirancang pada tahun 1937 oleh Iowa State College profesor fisika John Atanasoff , dan dibangun dengan bantuan dari mahasiswa pascasarjana Clifford Berry , mesin tidak diprogram, yang dirancang hanya untuk menyelesaikan sistem persamaan linier. Komputer itu menggunakan komputasi paralel. Sebuah 1973 putusan pengadilan dalam sengketa patenmenemukan bahwa paten untuk 1946 ENIAC komputer berasal dari Atanasoff-Berry Computer.

Penemu program komputer yang dikendalikan adalah Konrad Zuse , yang membangun komputer kerja pertama pada tahun 1941 dan kemudian pada tahun 1955 komputer pertama berdasarkan penyimpan yang bersifat magnetis.

George Stibitz diakui secara internasional sebagai seorang ayah dari komputer digital modern.Ketika bekerja di Bell Labs pada bulan November 1937, Stibitz menciptakan dan membangun sebuah kalkulator berbasis relay ia dijuluki "Model K" (untuk "meja dapur", di mana dia telah dirakit itu), yang merupakan pertama yang menggunakan biner sirkuit untuk melakukan operasi aritmatika . Kemudian model menambahkan kecanggihan yang lebih besar termasuk aritmatika kompleks dan programabilitas.

Sebuah suksesi terus lebih powerful dan fleksibel komputasi perangkat dibangun tahun 1930-an dan 1940-an, secara bertahap menambahkan fitur utama yang terlihat pada komputer modern.Penggunaan elektronika digital (sebagian besar diciptakan oleh Claude Shannon pada tahun 1937) dan lebih fleksibel programabilitas langkah yang amat penting, tetapi menentukan satu titik di sepanjang jalan ini sebagai "komputer digital elektronik pertama" adalah sulit. Shannon 1940terkenal termasuk prestasi.

  • Konrad Zuse 's elektromekanis "mesin Z". The Z3 (1941) adalah mesin kerja pertama menampilkan biner aritmatika, termasuk aritmatika floating point dan ukuran programabilitas.Pada 1998 Z3 terbukti menjadi Turing lengkap , oleh karena itu yang pertama operasional komputer dunia ini.
  • Non-programmable Atanasoff-Berry Computer (dimulai pada tahun 1937, selesai tahun 1941) yang menggunakan tabung vakum berdasarkan perhitungan , bilangan biner, dan memori kapasitor regeneratif . Penggunaan memori regeneratif diperbolehkan untuk menjadi jauh lebih kompak dari rekan-rekan (yang kira-kira ukuran meja besar atau meja kerja), karena hasil antara dapat disimpan dan kemudian akan dimasukkan kembali ke set yang sama elemen perhitungan.
  • Inggris rahasia komputer Colossus (1943), yang telah membatasi programabilitas tetapi menunjukkan bahwa perangkat yang menggunakan ribuan tabung bisa cukup handal dan elektronik reprogrammable. Itu digunakan untuk memecahkan kode perang Jerman.
  • The Harvard Mark I (1944), skala elektromekanis komputer besar dengan programabilitas terbatas.
  • Tentara AS Laboratorium Penelitian Balistik ENIAC (1946), yang digunakan desimal aritmatika dan kadang-kadang disebut umum tujuan pertama elektronik komputer (sejak Konrad Zuse 'sZ3 tahun 1941 digunakan elektromagnet bukan elektronik ). Pada awalnya, bagaimanapun, ENIAC memiliki arsitektur fleksibel yang pada dasarnya diperlukan rewiring untuk mengubah pemrogramannya.

Stored-program arsitektur

Beberapa pengembang ENIAC, mengakui kesalahannya, datang dengan jauh lebih fleksibel dan desain elegan, yang kemudian dikenal sebagai "arsitektur program yang tersimpan" atauarsitektur von Neumann . Desain ini pertama kali secara resmi digambarkan oleh John von Neumann di koran Pertama Draft Laporan di EDVAC , didistribusikan pada tahun 1945. Sejumlah proyek untuk mengembangkan komputer berdasarkan arsitektur-program yang disimpan dimulai sekitar kali ini, yang pertama ini diselesaikan di Inggris . Prototipe kerja pertama yang ditunjukkan adalah Manchester Kecil Eksperimental Mesin (SSEM atau "Baby") pada tahun 1948. TheElectronic Delay Storage Automatic Calculator (EDSAC), selesai setahun setelah SSEM diUniversitas Cambridge , adalah praktis pertama, pelaksanaan non-eksperimental dari desain program yang disimpan dan dimanfaatkan dengan segera untuk pekerjaan penelitian di universitas.Tak lama kemudian, mesin awalnya dijelaskan oleh von Neumann kertas- EDVAC -selesai tetapi tidak melihat-waktu penggunaan penuh untuk tambahan dua tahun.

Hampir semua komputer modern mengimplementasikan beberapa bentuk dari arsitektur yang disimpan-program, sehingga sifat tunggal dengan mana kata "komputer" sekarang didefinisikan.Sedangkan teknologi yang digunakan dalam komputer telah berubah secara dramatis sejak elektronik pertama, komputer tujuan umum tahun 1940, sebagian besar masih menggunakan arsitektur von Neumann.

Dimulai pada tahun 1950-an, Soviet ilmuwan Sergei Sobolev dan Nikolay Brusentsov melakukan penelitian pada komputer terner , perangkat yang dioperasikan pada tiga dasar penomoran sistem -1, 0, dan 1 daripada konvensional penomoran biner sistem atas yang kebanyakan komputer didasarkan. Mereka merancang Setun , komputer terner fungsional, di Moscow State University . Perangkat dimasukkan ke produksi terbatas di Uni Soviet, tetapi digantikan oleh arsitektur biner lebih umum.

Semikonduktor dan mikroprosesor

Komputer menggunakan tabung vakum sebagai elemen elektronik mereka digunakan di seluruh tahun 1950-an, tetapi oleh 1960-an sebagian besar telah digantikan oleh transistor yang berbasis mesin-, yang lebih kecil, lebih cepat, lebih murah untuk memproduksi, dibutuhkan daya yang lebih kecil, dan lebih handal. Komputer transistorised pertama didemonstrasikan di University of Manchester pada tahun 1953. Pada 1970-an, sirkuit terintegrasi teknologi dan penciptaan berikutnya mikroprosesor , seperti Intel 4004 , menurun lebih lanjut ukuran dan biaya dan peningkatan kecepatan lebih lanjut dan kehandalan komputer . Pada akhir 1970-an, banyak produk seperti perekam video berisi didedikasikan komputer disebut mikrokontroler , dan mereka mulai muncul sebagai pengganti untuk kontrol mekanik dalam peralatan rumah tangga seperti mesin cuci . Tahun 1980-an menyaksikan komputer rumah dan sekarang di mana-mana komputer pribadi . Dengan evolusiinternet , komputer pribadi menjadi yang biasa seperti yang televisi dan telepon dalam [rumah tangga rujukan? ].

Modern smartphone sepenuhnya komputer diprogram dalam hak mereka sendiri, dan pada tahun 2009 mungkin menjadi bentuk paling umum dari komputer tersebut dalam keberadaannya.

Program

Fitur mendefinisikan komputer modern yang membedakan mereka dari semua mesin lainnya adalah bahwa mereka dapat diprogram . Itu adalah untuk mengatakan bahwa beberapa jenis instruksi (di program ) dapat diberikan ke komputer, dan akan membawa proses mereka.Sementara beberapa komputer mungkin memiliki konsep yang aneh "instruksi" dan "output" (lihat komputasi kuantum ), komputer modern berdasarkan arsitektur von Neumann seringkali memiliki kode mesin dalam bentuk bahasa pemrograman imperatif .

Dalam istilah praktis, sebuah program komputer mungkin hanya beberapa instruksi atau memperpanjang untuk jutaan instruksi, seperti melakukan program untuk pengolah kata dan browser web misalnya. Sebuah komputer modern khas dapat menjalankan milyaran instruksi per detik ( GigaFLOPS ) dan jarang membuat kesalahan selama bertahun-tahun operasi. besar program komputer yang terdiri dari beberapa juta instruksi mungkin diperlukan tim pemrogram tahun untuk menulis, dan karena kompleksitas tugas hampir pasti mengandung kesalahan.

Stored program arsitektur

Bagian ini berlaku untuk paling umum RAM mesin berbasis-komputer.

Dalam kebanyakan kasus, instruksi komputer adalah sederhana: tambahkan satu nomor ke yang lain, memindahkan beberapa data dari satu lokasi ke lokasi lain, mengirim pesan ke beberapa perangkat eksternal, dll Instruksi-instruksi ini dibaca dari komputer memori dan umumnya dilakukan ( dijalankan ) dalam urutan mereka diberikan. Namun, ada instruksi biasanya khusus untuk memberitahu komputer untuk melompat ke depan atau mundur ke beberapa tempat lain dalam program ini dan untuk melanjutkan pelaksanaan dari sana. Ini disebut "melompat" instruksi (atau cabang ). Selain itu, instruksi melompat dapat dilakukan terjadi kondisionalsehingga urutan instruksi yang berbeda dapat digunakan tergantung pada hasil dari beberapa perhitungan sebelumnya atau beberapa peristiwa eksternal. Banyak komputer langsung mendukung subrutin dengan menyediakan jenis lompatan yang "mengingat" lokasi itu melompat dari dan instruksi lain untuk kembali ke instruksi berikut yang instruksi jump.

Pelaksanaan program mungkin bisa disamakan dengan membaca buku. Sementara seseorang biasanya akan membaca setiap kata dan baris dalam urutan, mereka mungkin pada waktu melompat kembali ke tempat awal teks atau melewatkan bagian yang tidak menarik.Demikian pula, komputer kadang-kadang dapat kembali dan ulangi petunjuk di beberapa bagian dari program berulang-ulang sampai beberapa kondisi internal terpenuhi. Ini disebut aliran kontrol dalam program ini dan itu adalah apa yang memungkinkan komputer untuk melakukan tugas berulang kali tanpa intervensi manusia.

Relatif, orang yang menggunakan saku kalkulator dapat melakukan operasi aritmatika dasar seperti menambahkan dua angka hanya dengan menekan beberapa tombol. Namun untuk menambahkan bersama semua nomor dari 1 sampai 1000 akan mengambil ribuan menekan tombol dan banyak waktu-dengan kepastian dekat membuat kesalahan. Di sisi lain, komputer dapat diprogram untuk melakukan hal ini hanya dengan instruksi sederhana. Sebagai contoh:

mov # 0, sum; set sum to 0
mov # 1, num; set num ke 1
loop: add num, sum; tambahkan num untuk jumlah
tambahkan # 1, num; tambahkan 1 ke num
cmp num, # 1000; dibandingkan num sampai 1000
ble loop; jika num <= 1000, kembali ke 'loop'
menghentikan; akhir program. berhenti berjalan

Setelah diberitahu untuk menjalankan program ini, komputer akan melakukan tugas yang berulang-ulang tambahan tanpa campur tangan manusia lebih lanjut. Ini akan hampir tidak pernah membuat kesalahan dan PC modern dapat menyelesaikan tugas dalam waktu sekitar sepersejuta detik.

Bugs

Kesalahan dalam program komputer disebut " bug ". Bugs mungkin jinak dan tidak mempengaruhi kegunaan program, atau hanya memiliki dampak halus. Namun dalam beberapa kasus, mereka dapat menyebabkan program untuk " hang "-menjadi tidak responsif terhadap input seperti mouseklik atau penekanan tombol, atau untuk sepenuhnya gagal atau " crash ". Jika bug jinak terkadang dimanfaatkan untuk niat jahat oleh pengguna oknum menulis " mengeksploitasi "-kode yang dirancang untuk mengambil keuntungan dari bug dan mengganggu itu tepat eksekusi komputer.Bug biasanya bukan kesalahan dari komputer. Karena komputer hanya mengeksekusi instruksi mereka diberikan, bug hampir selalu merupakan hasil dari kesalahan programmer atau pengawasan yang dibuat dalam program desain.

Laksamana Grace Hopper dikreditkan karena pertama kali digunakan bug 'istilah' dalam komputasi setelah ngengat ditemukan mati korslet relay dari Harvard Mark II komputer pada bulan September 1947.

Kode mesin

Pada kebanyakan komputer, instruksi individu akan disimpan sebagai kode mesin dengan setiap instruksi yang diberikan nomor unik (kode operasi atau opcode untuk pendek). Perintah untuk menambahkan dua angka bersama akan memiliki satu opcode, perintah untuk memperbanyak mereka akan memiliki opcode yang berbeda dan sebagainya. Komputer sederhana dapat melakukan salah satu dari beberapa instruksi yang berbeda; komputer lebih kompleks memiliki beberapa ratus untuk memilih dari masing-masing dengan kode numerik yang unik. Karena memori komputer mampu menyimpan nomor, ia juga dapat menyimpan kode instruksi. Hal ini menyebabkan fakta penting bahwa seluruh program (yang hanya daftar instruksi) dapat direpresentasikan sebagai daftar nomor dan dapat sendiri dimanipulasi di dalam komputer dengan cara yang sama sebagai data numerik. Konsep dasar menyimpan program-program di memori komputer bersama data mereka beroperasi di adalah inti dari von Neumann, atau program yang tersimpan, arsitektur. Dalam beberapa kasus, komputer mungkin menyimpan sebagian atau seluruh program di memori yang disimpan terpisah dari data yang beroperasi pada. Ini disebut arsitektur Harvardsetelah Harvard Mark I komputer. Modern von Neumann komputer menampilkan beberapa ciri dari arsitektur Harvard dalam desain mereka, seperti di cache CPU .

Meskipun dimungkinkan untuk menulis program komputer sebagai daftar panjang angka ( bahasa mesin ) dan sementara teknik ini digunakan dengan komputer awal banyak, hal ini sangat membosankan dan berpotensi rawan kesalahan untuk melakukannya dalam praktek, terutama untuk program-program yang rumit . Sebaliknya, setiap instruksi dasar yang dapat diberikan nama pendek yang menunjukkan fungsi dan mudah diingat-suatu mnemonik seperti ADD, SUB, mult atau JUMP. Mnemonik ini secara kolektif dikenal sebagai komputer bahasa assembly . Mengubah program yang ditulis dalam bahasa assembly menjadi sesuatu komputer dapat benar-benar mengerti (bahasa mesin) biasanya dilakukan oleh program komputer yang disebut assembler. Bahasa mesin dan bahasa assembly yang mewakili mereka (secara kolektif disebut bahasa pemrograman tingkat rendah ) cenderung unik untuk jenis tertentu dari komputer. Sebagai contoh, sebuah arsitektur ARM komputer (seperti dapat ditemukan dalam PDA atau videogame dipegang tangan ) tidak dapat memahami bahasa mesin dari Intel Pentium atau AMD Athlon 64 komputer yang mungkin dalam sebuah PC .

Tingkat yang lebih tinggi bahasa dan desain program

Meskipun jauh lebih mudah daripada bahasa mesin, menulis program yang panjang dalam bahasa assembly seringkali sulit dan juga rawan kesalahan. Oleh karena itu, praktis program yang kebanyakan ditulis dalam lebih abstrak bahasa pemrograman tingkat tinggi yang mampu mengekspresikan kebutuhan programmer lebih nyaman (dan dengan demikian membantu mengurangi kesalahan programmer). Bahasa tingkat tinggi biasanya "dikompilasi" ke dalam bahasa mesin (atau kadang-kadang ke dalam bahasa assembly dan kemudian ke dalam bahasa mesin) menggunakan program komputer lain yang disebut kompilator . bahasa tingkat tinggi kurang terkait dengan kerja komputer target dari bahasa assembly , dan lebih terkait dengan bahasa dan struktur dari masalah (s) yang harus diselesaikan oleh program akhir. Oleh karena itu sering mungkin untuk menggunakan compiler yang berbeda untuk menerjemahkan program tingkat bahasa yang sama tinggi ke bahasa mesin dari berbagai jenis komputer. Ini merupakan bagian dari sarana yang software seperti video game dapat dibuat tersedia untuk arsitektur komputer yang berbeda seperti komputer pribadi dan berbagai konsol permainan video .

Tugas berkembang besar perangkat lunak sistem menyajikan sebuah tantangan intelektual yang signifikan. perangkat lunak Memproduksi dengan kehandalan tinggi dapat diterima dalam jadwal diprediksi dan anggaran secara historis sulit; dan profesional disiplin akademikrekayasa perangkat lunak berkonsentrasi khusus pada tantangan ini.

Fungsi

Sebuah komputer tujuan umum memiliki empat komponen utama: unit logika aritmetik (ALU), maka unit kontrol , yang memori , dan input dan perangkat output (secara kolektif disebut I / O). Bagian-bagian ini saling berhubungan dengan bus , sering terbuat dari kelompok kabel .

Di dalam masing-masing bagian untuk triliun ribuan kecil sirkuit listrik yang dapat dimatikan atau melalui sebuah saklar elektronik . Setiap rangkaian merupakan bit (biner digit) dari informasi sehingga ketika sirkuit yang di atasnya merupakan "1", dan ketika dari itu merupakan "0" (dalam representasi logika positif). Rangkaian tersebut diatur dalam gerbang logika sehingga satu atau lebih dari rangkaian dapat mengontrol keadaan satu atau lebih dari sirkuit lainnya.

Unit kontrol, ALU, register, dan dasar I / O (dan sering perangkat keras lainnya terkait erat dengan ini) secara kolektif dikenal sebagai central processing unit (CPU). Awal CPU yang terdiri dari banyak komponen yang terpisah tetapi sejak pertengahan 1970-an CPU yang biasanya telah dibangun pada satu sirkuit terpadu yang disebut mikroprosesor .

Control unit

Unit kontrol (sering disebut sistem kontrol atau pengendali pusat) mengelola's berbagai komponen komputer; membaca dan menafsirkan (decode) petunjuk program, mentransformasikannya menjadi serangkaian sinyal kontrol yang mengaktifkan bagian-bagian lain dari komputer. Kontrol sistem komputer canggih dapat mengubah urutan beberapa petunjuk sehingga dapat meningkatkan kinerja.

Sebuah komponen kunci yang sama untuk semua CPU adalah program counter , sel memori khusus (a register ) yang melacak lokasi yang di memori instruksi berikutnya harus dibaca dari.

Fungsi sistem kontrol adalah sebagai berikut-dicatat bahwa ini adalah deskripsi sederhana, dan beberapa langkah-langkah ini dapat dilakukan bersamaan atau dalam urutan yang berbeda tergantung pada jenis CPU:

  1. Baca kode untuk instruksi berikutnya dari sel yang ditunjukkan oleh program counter.
  2. Decode kode numerik untuk instruksi menjadi satu set perintah atau sinyal untuk setiap sistem lainnya.
  3. Penilaian program counter sehingga menunjuk ke instruksi berikutnya.
  4. Baca instruksi data apapun membutuhkan dari sel-sel di memori (atau mungkin dari sebuah perangkat input). Lokasi ini diperlukan data biasanya disimpan dalam kode instruksi.
  5. Menyediakan data yang diperlukan ke ALU atau mendaftar.
  6. Jika instruksi membutuhkan ALU atau perangkat keras khusus untuk menyelesaikan, menginstruksikan perangkat keras untuk melakukan operasi yang diminta.
  7. Tuliskan hasil dari ALU kembali ke lokasi memori atau untuk mendaftarkan atau mungkin perangkat keluaran.
  8. Langsung kembali ke langkah (1).

Karena program counter adalah (konseptual) hanya satu set sel memori, dapat diubah dengan perhitungan dilakukan di ALU. Menambahkan 100 untuk program counter akan menyebabkan instruksi berikutnya untuk dibaca dari tempat 100 lokasi lebih bawah program. Instruksi yang memodifikasi program counter sering dikenal sebagai "melompat" dan memungkinkan untuk loop (instruksi yang diulang oleh komputer) dan sering eksekusi instruksi kondisional (kedua contoh dari flow control ).

Hal ini terlihat bahwa urutan operasi yang unit kontrol pergi melalui proses instruksi yang ada di dalam dirinya sendiri seperti sebuah program komputer pendek dan memang, dalam beberapa CPU desain yang lebih kompleks, ada hal lain yang lebih kecil komputer belum disebutmicrosequencer yang menjalankan microcode program yang menyebabkan semua peristiwa ini terjadi.

Arithmetic / logic unit (ALU)

ALU yang mampu melakukan dua kelas operasi: dan logika. Aritmetik

Himpunan operasi aritmatika bahwa ALU tertentu mendukung mungkin terbatas untuk menambahkan dan mengurangkan atau mungkin termasuk mengalikan atau membagi, trigonometri fungsi (sinus, kosinus, dll) dan akar kuadrat . Beberapa hanya dapat beroperasi pada bilangan bulat ( integer ) sedangkan yang lain menggunakan floating point untuk merepresentasikan bilangan real -meskipun dengan presisi terbatas. Namun, setiap komputer yang mampu melakukan hanya operasi sederhana dapat diprogram untuk memecah operasi yang lebih kompleks menjadi langkah-langkah sederhana yang dapat melakukan. Oleh karena itu, setiap komputer dapat diprogram untuk melakukan operasi aritmatika apapun-meskipun akan memakan lebih banyak waktu untuk melakukannya jika ALU nya tidak langsung mendukung operasi. Sebuah ALU juga dapat membandingkan angka dan kembali nilai-nilai kebenaran boolean (true atau false) tergantung pada apakah satu sama dengan, lebih besar dari atau kurang dari yang lain ("adalah 64 lebih besar dari 65?").

Logika operasi melibatkan logika Boolean : DAN , OR , XOR dan NOT . Ini dapat berguna baik untuk menciptakan rumit pernyataan bersyaratdan pengolahan logika boolean .

Superscalar komputer dapat berisi beberapa ALUs sehingga mereka dapat memproses beberapa instruksi pada waktu yang sama. prosesor Grafis dan komputer dengan SIMD dan MIMD sering menyediakan ALUs fitur yang dapat melakukan aritmetik pada vektor danmatriks .

Memori

Sebuah memori komputer dapat dilihat sebagai daftar sel dimana nomor dapat ditempatkan atau dibaca. Setiap sel memiliki "alamat" nomor dan dapat menyimpan satu nomor. Komputer dapat diarahkan untuk "menempatkan nomor 123 ke sel bernomor 1357" atau untuk "menambahkan nomor yang ada di sel 1357 ke nomor yang ada di sel 2468 dan meletakkan jawabannya ke dalam sel 1595". Informasi yang disimpan dalam memori mungkin mewakili praktis apa pun. Huruf, angka, bahkan instruksi komputer dapat ditempatkan ke dalam memori dengan mudah sama.Karena CPU tidak membedakan antara berbagai jenis informasi, adalah tanggung jawab perangkat lunak untuk memberikan makna apa memori yang dilihat sebagai hanya serangkaian angka.

Di hampir semua komputer modern, masing-masing sel memori sudah diatur untuk menyimpanbilangan biner dalam kelompok delapan bit (disebut byte ). Setiap byte dapat mewakili 256 nomor yang berbeda (2 ^ 8 = 256); baik dari 0 sampai 255 atau -128 sampai 127. Untuk menyimpan nomor yang lebih besar, beberapa byte berturut-turut dapat digunakan (biasanya, dua, empat atau delapan). Ketika angka negatif diperlukan, mereka biasanya disimpan dalam dua's melengkapinotasi. pengaturan lain mungkin, tapi biasanya tidak terlihat di luar aplikasi khusus atau konteks sejarah. Sebuah komputer dapat menyimpan segala macam informasi dalam memori jika dapat direpresentasikan secara numerik. komputer modern telah miliaran atau bahkan triliunan byte memori.

CPU berisi set khusus dari sel-sel memori yang disebut register yang dapat dibaca dan ditulis untuk jauh lebih cepat daripada daerah memori utama. Ada biasanya antara dua dan seratus register tergantung pada jenis CPU. Register digunakan untuk item data yang paling sering dibutuhkan untuk menghindari keharusan untuk mengakses memori utama setiap data waktu diperlukan. Sebagai data terus-menerus bekerja, mengurangi kebutuhan untuk mengakses memori utama (yang sering lambat dibandingkan dengan ALU dan unit kontrol) sangat meningkatkan kecepatan komputer.

memori utama komputer datang dalam dua varietas utama: acak-akses memori atau RAM dan memori read-only atau ROM. RAM dapat dibaca dan ditulis ke CPU kapan saja perintah itu, tetapi ROM pre-loaded dengan data dan perangkat lunak yang tidak pernah berubah, sehingga CPU hanya bisa membaca dari itu. ROM biasanya digunakan untuk menyimpan awal komputer start-up instruksi. Secara umum, isi RAM akan terhapus ketika daya ke komputer dimatikan, tetapi ROM mempertahankan data tanpa batas. Pada PC, ROM berisi program khusus yang disebut BIOS yang orchestrates loading komputer sistem operasi dari disk drive keras ke RAM setiap kali komputer dihidupkan atau mengatur ulang. Dalam komputer tertanam , yang sering tidak memiliki disk drive, semua software yang dibutuhkan dapat disimpan dalam ROM. Software disimpan dalam ROM sering disebut firmware , karena notionally lebih seperti perangkat keras daripada perangkat lunak. memori Flash mengaburkan perbedaan antara ROM dan RAM, karena mempertahankan data ketika dimatikan tetapi juga ditulis ulang. Hal ini biasanya jauh lebih lambat dibandingkan RAM ROM konvensional dan bagaimanapun, jadi penggunaannya dibatasi untuk aplikasi di mana kecepatan tinggi yang tidak perlu.

Pada komputer yang lebih canggih mungkin ada satu atau lebih RAM memori cache yang lebih lambat dari register tapi lebih cepat daripada memori utama. Umumnya komputer dengan cache semacam ini dirancang untuk memindahkan data sering dibutuhkan ke dalam cache secara otomatis, seringkali tanpa perlu untuk setiap intervensi pada bagian programmer.

Input / output (I / O)

I / O adalah cara yang komputer pertukaran informasi dengan dunia luar. Perangkat yang memberikan masukan atau output ke komputer disebut peripheral . Pada khas komputer pribadi , perangkat termasuk perangkat input seperti keyboard dan mouse , dan output perangkat seperti layar dan printer . Hard disk drive , disk drive floppy dan drive cakram optik menjadi baik dan output perangkat input. jaringan komputer adalah bentuk lain I O.

Sering kali, I / O device adalah komputer kompleks di kanan mereka sendiri dengan CPU sendiri dan memori. Sebuah unit pengolahan grafis mungkin berisi atau lebih kecil lima puluh komputer yang melakukan perhitungan yang diperlukan untuk menampilkan grafis 3D. Modernkomputer desktop mengandung banyak komputer kecil yang membantu CPU utama dalam melaksanakan I O.

Multitasking

Walaupun komputer dapat dilihat sebagai menjalankan satu program raksasa yang disimpan dalam memori utama, dalam beberapa sistem perlu untuk memberikan tampilan menjalankan beberapa program secara bersamaan. Hal ini dicapai dengan multitasking yaitu memiliki komputer beralih cepat antara menjalankan setiap program pada gilirannya.

Salah satu cara dengan mana ini dilakukan adalah dengan sinyal khusus yang disebut interupsi yang secara periodik dapat menyebabkan komputer berhenti melaksanakan instruksi tempat itu dan melakukan sesuatu yang lain sebagai gantinya. Dengan mengingat di mana ia melaksanakan sebelum mengganggu, komputer dapat kembali ke tugas nanti. Jika beberapa program yang berjalan "pada saat yang sama", maka generator interupsi mungkin menyebabkan beberapa ratus interupsi per detik, menyebabkan program switch setiap kali. Sejak komputer modern biasanya menjalankan petunjuk beberapa kali lipat lebih cepat dari persepsi manusia, mungkin tampak bahwa banyak program yang berjalan pada waktu yang sama meskipun hanya satu yang pernah melaksanakan dalam suatu instan. Metode multitasking kadang-kadang disebut "time-sharing" karena setiap program dialokasikan sebuah "slice" waktu pada gilirannya.

Sebelum era komputer murah, penggunaan utama untuk multitasking adalah untuk memungkinkan banyak orang untuk berbagi komputer yang sama.

Tampaknya, multitasking akan menyebabkan komputer yang berpindah antara beberapa program untuk berjalan lebih lambat - dalam proporsi langsung dengan jumlah program yang sedang berjalan. Namun, sebagian besar program menghabiskan banyak waktu mereka menunggu masukan yang lambat / perangkat output untuk menyelesaikan tugas-tugas mereka. Jika suatu program menunggu pengguna untuk mengklik mouse atau tekan tombol pada keyboard, maka tidak akan mengambil "slice waktu" sampai acara itu sedang menunggu telah terjadi. Hal ini membebaskan waktu untuk program lain untuk menjalankan sehingga banyak program yang dapat dijalankan pada waktu yang sama tanpa kehilangan kecepatan tidak dapat diterima.

Multiprocessing

Beberapa komputer dirancang untuk mendistribusikan karya mereka di beberapa CPU dalam konfigurasi multiprocessing, teknik sekali bekerja hanya dalam dan kuat mesin besar sepertisuperkomputer , komputer mainframe dan server . Multiprocessor dan multi-core (CPU ganda pada sirkuit terpadu tunggal) dan laptop komputer pribadi sekarang tersedia secara luas, dan sedang semakin digunakan dalam pasar akhir rendah sebagai hasilnya.

Superkomputer khususnya sering memiliki arsitektur yang sangat unik yang berbeda secara signifikan dari arsitektur yang disimpan-program dasar dan dari komputer tujuan umum. Mereka sering menampilkan ribuan CPU, disesuaikan kecepatan tinggi interkoneksi, dan perangkat keras komputer khusus. desain tersebut cenderung hanya berguna untuk tugas-tugas khusus karena skala besar organisasi program yang dibutuhkan untuk berhasil memanfaatkan sebagian besar sumber daya yang tersedia sekaligus. Superkomputer biasanya melihat penggunaan dalam skala besar simulasi , grafis rendering , dan kriptografi aplikasi, serta dengan lainnya yang disebut " memalukan paralel "tugas.

Jaringan dan Internet

Komputer telah digunakan untuk mengkoordinasikan informasi antara beberapa lokasi sejak tahun 1950. Militer AS SAGE adalah contoh sistem skala besar pertama seperti sistem, yang menyebabkan sejumlah tujuan komersial sistem-khusus seperti Sabre .

Pada 1970-an, komputer insinyur di lembaga penelitian di seluruh Amerika Serikat mulai untuk menghubungkan komputer mereka bersama-sama menggunakan teknologi telekomunikasi. Upaya ini didanai oleh ARPA (sekarang DARPA ), dan jaringan komputer yang dihasilkan disebutARPANET . Teknologi yang membuat kemungkinan menyebar ARPANET dan berevolusi.

Pada waktunya, jaringan tersebar di luar dan militer lembaga akademik dan menjadi dikenal sebagai Internet . Munculnya jaringan melibatkan redefinisi tentang sifat dan batas-batas dari komputer. sistem operasi komputer dan aplikasi yang dimodifikasi untuk menyertakan kemampuan untuk menentukan dan mengakses sumber daya dari komputer lain di jaringan, seperti perangkat periferal, disimpan informasi, dan sejenisnya, sebagai perluasan dari sumber daya komputer individu. Pada awalnya fasilitas ini tersedia terutama untuk orang yang bekerja dalam lingkungan berteknologi tinggi, tetapi pada 1990-an penyebaran aplikasi seperti e-mail danWorld Wide Web , dikombinasikan dengan perkembangan yang murah, cepat teknologi jaringan seperti Ethernet dan ADSL melihat jaringan komputer menjadi hampir di mana-mana. Bahkan, jumlah komputer yang jaringan tumbuh fenomenal. Sebuah proporsi yang sangat besar dari komputer pribadi secara rutin terhubung ke Internet untuk berkomunikasi dan menerima informasi. "Wireless" networking, sering menggunakan ponsel jaringan, berarti jaringan menjadi semakin di mana-mana bahkan di lingkungan komputasi mobile.

Kesalahpahaman

Sebuah komputer tidak perlu listrik , atau bahkan memiliki prosesor , atau RAM , atau bahkan hard disk . Definisi minimal dari sebuah komputer adalah segala sesuatu yang mengubah informasi dengan cara yang lebih Namun definisi tradisional dari sebuah komputer adalah perangkat yang memiliki memori, mass storage, prosesor (CPU), dan perangkat Input & Output. sesuatu yang kurang akan menjadi prosesor sederhana.

Diperlukan teknologi

sistem Komputasi sebagai fleksibel sebagai komputer pribadi dapat dibangun dari hampir semua hal. Sebagai contoh, sebuah komputer dapat dibuat dari bola bilyar ( komputer bola bilyar ), ini adalah contoh dan pedagogis unintuitive bahwa komputer dapat dibuat dari hampir semua hal. Lebih realistis, komputer modern terbuat dari transistor terbuat dari photolithographed semikonduktor .

Secara historis, komputer berevolusi dari komputer mekanis dan akhirnya dari tabung vakum untuk transistor.

Ada penelitian aktif untuk membuat komputer dari banyak jenis baru yang menjanjikan teknologi, seperti komputer optik , komputer DNA ,komputer neural , dan komputer kuantum . Beberapa mudah dapat mengatasi masalah yang tidak bisa komputer modern (seperti bagaimana komputer kuantum dapat memecahkan beberapa algoritma enkripsi modern oleh anjak kuantum ).

Arsitektur komputer paradigma

Beberapa perbedaan paradigma tentang bagaimana membangun komputer dari tanah-up:

RAM mesin
Ini adalah jenis komputer dengan CPU , memori komputer , dll, yang memahami petunjuk dasar dalam bahasa mesin . Konsep berevolusi dari mesin Turing .
Otak
Otak adalah prosesor paralel massal terbuat dari neuron , kabel dalam pola rumit, yang berkomunikasi melalui listrik danneurotransmitter bahan kimia.
Bahasa pemrograman
Seperti kalkulus lambda , atau bahasa pemrograman modern , adalah komputer virtual dibangun di atas komputer lain.
Cellular automata
Misalnya, permainan Life dapat membuat "glider" dan "loop" dan lainnya konstruksi yang mengirimkan informasi; paradigma ini dapat diterapkan untuk komputasi DNA , kimia komputasi , dll
Kelompok dan komite
Yang menghubungkan beberapa komputer (otak) itu sendiri komputer

gerbang Logika adalah abstraksi umum yang dapat diterapkan pada sebagian besar di atas digital atau analog paradigma.

Kemampuan untuk menyimpan dan menjalankan daftar instruksi yang disebut program membuat komputer yang sangat serbaguna, membedakan mereka dari kalkulator . The -Turing tesis Gereja adalah pernyataan matematis dari fleksibilitas ini: komputer manapun dengankemampuan minimum (yang Turing-lengkap) , pada prinsipnya, mampu melakukan tugas yang sama bahwa setiap komputer lain dapat melakukan. Oleh karena itu semua jenis komputer ( netbook , superkomputer , robot selular , dll) mampu melakukan tugas-tugas komputasi yang sama, cukup waktu yang diberikan dan kapasitas penyimpanan.

Limited-fungsi komputer

Sebaliknya, sebuah komputer yang terbatas dalam fungsi (salah satu yang tidak " Turing-lengkap ") tidak bisa mensimulasikan hal-hal yang sewenang-wenang. Misalnya, sederhana -fungsi kalkulator empat tidak dapat mensimulasikan sebuah komputer nyata tanpa intervensi manusia. Sebagai contoh yang lebih rumit, tanpa kemampuan untuk program sebuah game konsol , itu tidak pernah bisa mencapai apa kalkulator yang dapat diprogram dari tahun 1990-an bisa (dengan waktu yang cukup); sistem secara keseluruhan tidak Turing-lengkap, meskipun berisi Turing -lengkap komponen (mikroprosesor). Organisme hidup (tubuh, bukan otak) juga terbatas-fungsi komputer yang dirancang untuk membuat salinan dari diri mereka sendiri, mereka tidak dapat memprogram tanpa rekayasa genetika .

Virtual komputer

Sebuah "komputer" umumnya dianggap sebagai perangkat fisik. Namun, salah satu dapat membuat sebuah program komputer yang menggambarkan cara menjalankan komputer yang berbeda, yaitu "simulasi komputer di komputer". Tidak hanya ini bukti konstruktif dariGereja-Turing tesis , tetapi juga sangat umum di semua komputer modern. Sebagai contoh, beberapa bahasa pemrograman menggunakan sesuatu yang disebut juru bahasa , yang merupakan simulasi komputer yang dibangun di atas dasar komputer; ini memungkinkan programmer untuk menulis kode (input komputer) dalam bahasa yang berbeda dari yang dimengerti oleh komputer dasar (alternatif adalah dengan menggunakan kompiler ). Selain itu, mesin virtual adalah simulasi komputer yang hampir meniru sebuah komputer fisik dalam perangkat lunak, dan sangat umum digunakan oleh TI . Mesin virtual juga merupakan teknik umum yang digunakan untuk membuat emulator, seperti konsol game emulator .