Komputer adalah mesin yang diprogram untuk menerima input (masukan), menyimpan, memanipulasi data, dan menyediakan output dalam format yang bermanfaat. Sementara komputer secara teori bisa terbuat dari hampir segala sesuatu, dan mekanik komputerpun telah ada melalui banyak sejarah manusia tercatat, komputer elektronik pertama dikembangkan pada pertengahan abad ke-20 (1940-1945 ). Awalnya komputer berukuran besar dan dibutuhkan ruangan besar untuk menyimpan komputer. Sebagai kekuatan memproduksi sebanyak beberapa ratus komputer pribadi modern (Personal Computer) didasarkan pada sirkuit terpadu dengan jutaan miliaran lebih mampu dari mesin awal., dan menempati sebagian kecil dari 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 kebanyakan orang anggap sebagai "komputer". Namun, komputer yang ditemukan tertanam di banyak perangkat dari MP3 player, untuk pesawat tempur dan dari mainan robot industri yang paling banyak.
SEJARAH KOMPUTER
Sejarah perangkat keras komputer
Penggunaan kata pertama "komputer" tercatat pada 1613, mengacu kepada orang yang melakukan perhitungan, dan kata itu terus digunakan dalam arti bahwa sampai pertengahan abad ke-20. Dari akhir abad ke-19 dan seterusnya meskipun kata mulai mengambil makna yang lebih akrab, menggambarkan sebuah mesin yang melakukan perhitungan.
Limited-fungsi komputer kuno
The Jacquard tenun, dipamerkan di Museum Sains dan Industri di Manchester, Inggris, adalah salah satu perangkat programmable pertama.
Sejarah komputer modern dimulai dengan dua perhitungan teknologi-otomatis terpisah dan programabilitas tapi tidak ada perangkat yang dapat didentifikasi sebagai komputer awal, sebagian karena penerapan yang tidak konsisten dari istilah tersebut. Contoh perhitungan awal perangkat mekanis termasuk sempoa, aturan slide dan arguably astrolabe dan mekanisme Antikyther,. sebuah komputer astronomi kuno yang dibangun oleh orang Yunani sekitar 80 SM. 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 disebut esensi programabilitas
The "puri jam", sebuah jam astronomi yang ditemukan oleh Al-Jazari pada tahun 1206, dianggap sebagai komputer analog awal yang diprogram, ditampilkan dengan zodiak matahari dan bulan mengorbit, sebuah bulan sabit berbentuk pointer bepergian di gateway yang menyebabkan pintu otomatis untuk membuka setiap jam, dan lima musisi robot yang bermain musik saat dipukul oleh tuas yang dioperasikan oleh camshaft menempel pada roda air. Panjang siang dan malam bisa kembali diprogram untuk mengkompensasi perubahan panjang siang dan malam sepanjang tahun.
Renaisans melihat kembali invigoration matematika Eropa dan rekayasa. 1623 perangkat Wilhelm Schickard adalah yang pertama dari sejumlah kalkulator mekanik yang dibangun oleh para insinyur Eropa, tetapi tidak sesuai dengan definisi modern dari sebuah komputer, karena mereka tidak bisa diprogram.
Pertama : Tujuan Umum Komputer
Pada 1801, Joseph Marie Jacquard membuat perbaikan untuk tekstil alat tenun dengan memperkenalkan serangkaian kartu kertas menekan sebagai template yang memungkinkannya 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. Itu adalah perpaduan dari perhitungan otomatis dengan programabilitas yang dihasilkan komputer dikenali pertama. Pada 1837, Charles Babbage adalah orang pertama membuat konsep dan merancang komputer mekanis sepenuhnya diprogram, mesin analitisnya Limited keuangan. ketidakmampuan Babbage untuk menolak bermain dengan desain berarti bahwa perangkat tidak pernah selesai.
Pada akhir 1880-an, Herman Hollerith menemukan rekaman data pada media mesin yang dapat dibaca. 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 menekan ini ia menemukan tabulator, dan mesin keypunch. Ketiga penemuan adalah dasar dari industri pengolahan informasi modern. otomatis data skala besar pengolahan kartu menekan dilakukan untuk Amerika Serikat Sensus 1890 oleh perusahaan Hollerith, yang kemudian menjadi inti dari IBM. Pada akhir abad ke-19 sejumlah teknologi yang nantinya akan berguna dalam realisasi komputer praktis sudah mulai terlihat: kartu menekan, Aljabar Boolean, tabung vakum (katup termionik) dan teleprinter tersebut. Selama paruh pertama abad ke-20, banyak kebutuhan komputasi ilmiah yang dipenuhi oleh komputer analog semakin canggih, yang menggunakan model mekanik atau listrik langsung masalah tersebut sebagai dasar untuk perhitungan. Namun, tidak diprogram dan umumnya tidak memiliki fleksibilitas dan akurasi komputer digital modern.
Alan Turing secara luas dianggap sebagai bapak ilmu komputer modern. 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, majalah Time dalam penamaan Turing salah satu 100 orang paling berpengaruh pada 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".
Komputer Atanasoff-Berry (ABC) merupakan salah satu sepenuhnya elektronik pertama perangkat komputasi digital biner. Dirancang pada tahun 1937 oleh Iowa State profesor fisika College John Atanasoff, dan dibangun dengan bantuan dari mahasiswa pascasarjana Clifford Berry, mesin tidak diprogram dalam pengertian modern, yang dirancang hanya untuk menyelesaikan sistem persamaan linier. Komputer itu menggunakan komputasi paralel. Sebuah 1973 putusan pengadilan dalam sengketa paten menemukan bahwa paten untuk komputer ENIAC 1946 berasal dari Atanasoff-Berry Computer.
The Zuse Z3, 1941, dianggap alat kerja pertama yang diprogram, mesin komputasi yang sepenuhnya otomatis.
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 sirkuit biner untuk melakukan operasi aritmatika. Kemudian model menambahkan kecanggihan yang lebih besar termasuk aritmatika kompleks dan programabilitas.
Sebuah suksesi perangkat komputasi terus lebih kuat dan fleksibel dibangun tahun 1930-an dan 1940-an, secara bertahap menambahkan fiturPenggunaan elektronika digital (sebagian besar diciptakan oleh Claude Shannon pada tahun 1937) dan lebih programabilitas fleksibel vital langkah penting, tetapi menentukan satu titik di sepanjang jalan ini sebagai "komputer elektronik digital pertama" adalah difficult.Shannon 1940 prestasi terkenal termasuk.
- Elektromekanis Konrad Zuse "Mesin Z". The Z3 (1941) adalah mesin kerja pertama menampilkan aritmatika biner, termasuk aritmatika floating point dan ukuran programabilitas. Pada 1998 Z3 terbukti menjadi Turing lengkap, sehingga menjadi operasional komputer pertama di dunia.
- The Atanasoff-Berry non-programmable Komputer (mulai 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.
- The British 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.
- Harvard Mark I (1944), komputer elektromekanis skala besar dengan programabilitas terbatas.
- Tentara AS Laboratorium Penelitian Balistik ENIAC (1946), yang digunakan aritmatika desimal dan kadang-kadang disebut komputer tujuan umum pertama elektronik (sejak Z3 Konrad Zuse tahun 1941 digunakan elektromagnet bukan elektronik). Pada awalnya, bagaimanapun, ENIAC memiliki arsitektur fleksibel yang pada dasarnya diperlukan rewiring untuk mengubah pemrogramannya.
The ENIAC, yang mulai beroperasi pada tahun 1946, dianggap komputer elektronik pertama tujuan umum.
Stored-Program Arsitektur
Beberapa pengembang ENIAC, mengakui kesalahannya, datang dengan desain yang jauh lebih fleksibel dan elegan, yang kemudian dikenal sebagai "arsitektur program yang tersimpan" atau arsitektur 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 disimpan-program 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. Electronic Delay Storage Automatic Calculator (EDSAC), selesai setahun setelah SSEM di Cambridge University, adalah praktis pertama, implementasi 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 menggunakan penuh waktu untuk tambahan dua tahun.
EDSAC adalah salah satu komputer pertama yang melaksanakan program yang tersimpan (von Neumann) arsitektur.
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, ilmuwan Soviet Sergei Sobolev dan Nikolay Brusentsov melakukan penelitian pada komputer terner, perangkat yang dioperasikan pada basis tiga sistem penomoran -1, 0, dan 1 daripada sistem penomoran konvensional biner atas mana 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
Mati dari sebuah mikroprosesor Intel 80486DX2 (ukuran sebenarnya: 12 × 6,75 mm) pada kemasannya.
Komputer yang menggunakan tabung vakum sebagai elemen elektronik mereka digunakan di seluruh tahun 1950-an, tetapi oleh 1960-an sebagian besar telah digantikan oleh mesin transistor berbasis, 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, teknologi rangkaian terpadu 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 komputer pribadi sekarang di mana-mana. Dengan evolusi internet, komputer pribadi menjadi yang biasa seperti televisi dan telepon Rumah tangga. Smartphone modern sepenuhnya komputer diprogram dalam hak mereka sendiri, dan pada tahun 2009 mungkin menjadi bentuk paling umum dari komputer tersebut dalam keberadaan.
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 (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 pada 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 membutuhkan tim tahun pemrogram untuk menulis, dan karena kompleksitas tugas hampir pasti mengandung kesalahan.
Fitur mendefinisikan komputer modern yang membedakan mereka dari semua mesin lainnya adalah bahwa mereka dapat diprogram. Itu adalah untuk mengatakan bahwa beberapa jenis instruksi (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 pada 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 membutuhkan tim tahun pemrogram untuk menulis, dan karena kompleksitas tugas hampir pasti mengandung kesalahan.
Stored Program Arsitektur
Artikel utama: Program komputer dan pemrograman Komputer
Sebuah tahun 1970 menekan kartu yang berisi satu baris dari program FORTRAN. Kartu ini berbunyi: "Z (1) = Y + W (1)" dan diberi label "PROJ039" untuk tujuan identifikasi.
Bagian ini berlaku untuk komputer RAM yang paling umum mesin berbasis.
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 memori komputer 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 kondisional sehingga 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
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 memori komputer 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 kondisional sehingga 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.
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 kalkulator saku 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 to 1
loop: add num, sum ; add num to sum
add #1, num ; add 1 to num
cmp num, #1000 ; compare num to 1000
ble loop ; if num <= 1000, go back to 'loop'
halt ; end of program. stop running
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 klik mouse atau penekanan tombol, atau untuk sepenuhnya gagal atau "crash". Jika bug jinak terkadang bisa dimanfaatkan untuk niat jahat oleh pengguna oknum menulis "mengeksploitasi"-kode yang dirancang untuk mengambil keuntungan dari bug dan mengganggu pelaksanaan yang tepat 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 desain program.
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 klik mouse atau penekanan tombol, atau untuk sepenuhnya gagal atau "crash". Jika bug jinak terkadang bisa dimanfaatkan untuk niat jahat oleh pengguna oknum menulis "mengeksploitasi"-kode yang dirancang untuk mengambil keuntungan dari bug dan mengganggu pelaksanaan yang tepat 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 desain program.
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 Harvard setelah 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 nomor (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 bahasa perakitan komputer. 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 komputer arsitektur ARM (seperti dapat ditemukan dalam PDA atau videogame genggam) tidak dapat memahami bahasa mesin dari Intel Pentium atau AMD Athlon 64 komputer yang mungkin berada pada PC.
Tingkat bahasa yang lebih tinggi 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, program yang paling praktis yang ditulis dalam bahasa pemrograman lebih abstrak 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. tinggi bahasa tingkat 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 mengembangkan sistem perangkat lunak besar menyajikan sebuah tantangan intelektual yang signifikan. perangkat lunak Memproduksi dengan keandalan dapat diterima tinggi dalam jadwal diprediksi dan anggaran secara historis sulit; disiplin akademik dan profesional rekayasa perangkat lunak berkonsentrasi khusus pada tantangan ini.
Fungsi
Artikel utama: Unit pengolahan Tengah dan Mikroprosesor
Sebuah komputer tujuan umum memiliki empat komponen utama: unit logika aritmetik (ALU), unit kontrol, 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 ribuan triliunan sirkuit listrik kecil yang dapat dimatikan atau melalui sebuah saklar elektronik. Setiap rangkaian mewakili sedikit (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 satu unit pengolah pusat (CPU). Awal CPU yang terdiri dari banyak komponen yang terpisah tetapi sejak pertengahan 1970-an CPU yang biasanya telah dibangun di satu sirkuit terpadu yang disebut mikroprosesor.
Control Unit
Artikel utama: desain CPU dan unit kontrol
Diagram menunjukkan bagaimana instruksi MIPS arsitektur tertentu akan diterjemahkan oleh sistem kontrol.
Unit kontrol (sering disebut sistem kontrol atau pengendali pusat) mengelola 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 (register) yang melacak lokasi yang di memori instruksi berikutnya harus dibaca dari fungsi sistem kontrol. Fungsi sistem kontrol sendiri 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:
- Baca kode untuk instruksi berikutnya dari sel yang ditunjukkan oleh program counter.
- Decode kode numerik untuk instruksi menjadi satu set perintah atau sinyal untuk setiap sistem lainnya.
- Penilaian program counter sehingga menunjuk ke instruksi berikutnya.
- 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.
- Menyediakan data yang diperlukan ke ALU atau mendaftar.
- Jika instruksi membutuhkan ALU atau perangkat keras khusus untuk menyelesaikan, menginstruksikan perangkat keras untuk melakukan operasi yang diminta.
- Tuliskan hasil dari ALU kembali ke lokasi memori atau untuk mendaftarkan atau mungkin perangkat keluaran.
- 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 aliran kontrol).
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 desain CPU lebih kompleks, ada komputer lain yang lebih kecil belum disebut microsequencer yang menjalankan suatu microcode program yang menyebabkan semua peristiwa ini terjadi.
Arithmetic / logic unit (ALU)
Artikel utama: unit logika aritmatika
ALU yang mampu melakukan dua kelas operasi:. Aritmatika dan logika
Himpunan operasi aritmatika bahwa ALU tertentu mendukung mungkin terbatas untuk menambahkan dan mengurangkan atau mungkin termasuk mengalikan atau membagi, fungsi trigonometri (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 jumlah dan nilai kembali 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: AND, OR, XOR dan NOT. Ini dapat berguna baik untuk membuat pernyataan bersyarat rumit dan logika boolean pengolahan. Superscalar komputer dapat berisi beberapa ALUs sehingga mereka dapat memproses beberapa instruksi pada saat yang sama prosesor Grafis dan komputer dengan SIMD dan fitur MIMD sering menyediakan ALUs yang dapat melakukan aritmetik pada vektor dan matriks..
Memori
Artikel utama: Komputer penyimpanan data
Memori inti magnetik adalah memori komputer pilihan sepanjang tahun 1960-an, sampai digantikan oleh memori semikonduktor.
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 dibentuk untuk menyimpan nomor 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 notasi dua's complement. 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 komputer utama datang dalam dua varietas utama: acak-akses memori atau RAM dan memori hanya-baca 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 sistem operasi komputer dari hard disk 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 dari perangkat lunak. Flash memory 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 kenangan cache RAM 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)Artikel utama: Input / output
Hard disk drive adalah alat penyimpanan umum digunakan dengan komputer.
I / O adalah cara yang komputer pertukaran informasi dengan dunia luar. Perangkat yang memberikan masukan atau output ke komputer disebut peripheral. Pada komputer pribadi yang khas, periferal termasuk perangkat input seperti keyboard dan mouse, dan output perangkat seperti layar dan printer. Hard disk drive, disk drive floppy dan drive cakram optik berfungsi baik sebagai input dan perangkat output. 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 komputer mungkin berisi lima puluh atau lebih kecil yang melakukan perhitungan yang diperlukan untuk menampilkan grafis 3D. Komputer desktop modern mengandung banyak komputer kecil yang membantu CPU utama dalam melaksanakan I / O.
Multitasking
Artikel utama: Komputer 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 interrupt yang 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
Artikel utama: Multiprocessing
Dirancang superkomputer Cray banyak yang digunakan multiprocessing berat.
Beberapa komputer dirancang untuk mendistribusikan karya mereka di beberapa CPU dalam konfigurasi multiprocessing, teknik sekali digunakan hanya dalam mesin besar dan kuat seperti superkomputer, komputer mainframe dan server. Multiprocessor dan multi-core (CPU ganda pada sirkuit terpadu tunggal) komputer pribadi dan laptop sekarang tersedia secara luas, dan sedang semakin digunakan dalam pasar yang lebih rendah-end 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. Komputasi 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 simulasi skala besar, grafik rendering, dan aplikasi kriptografi, serta dengan lainnya yang disebut "memalukan paralel" tugas.
Jaringan dan Internet
Artikel utama: jaringan Komputer dan Internet
Visualisasi sebagian rute di Internet.
Komputer telah digunakan untuk mengkoordinasikan informasi antara beberapa lokasi sejak tahun 1950. Militer AS sistem SAGE adalah contoh skala besar pertama seperti sistem, yang menyebabkan sejumlah sistem komersial tujuan 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 disebut ARPANET .Teknologi yang membuat penyebaran ARPAnet yang mungkin berevolusi.
.
Pada waktunya, jaringan tersebar di luar lembaga akademik dan militer 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, tapi pada 1990-an penyebaran aplikasi seperti e-mail dan World 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 komputer pribadi secara teratur terhubung ke Internet untuk berkomunikasi dan menerima informasi. "Wireless" networking, sering menggunakan jaringan telepon seluler, berarti jaringan menjadi semakin di mana-mana bahkan di lingkungan komputasi mobile.
Kesalahpahaman
Sebuah komputer tidak perlu listrik, atau bahkan memiliki sebuah prosesor, atau RAM, atau bahkan hard disk. Definisi minimal dari sebuah komputer adalah segala sesuatu yang mengubah informasi dalam cara yang bermanfaat.
Artikel utama: komputasi inkonvensional
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 unintuitive dan pedagogis bahwa komputer dapat dibuat dari hampir semua hal. Lebih realistis, komputer modern terbuat dari transistor terbuat dari semikonduktor photolithographed. 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 adalah prosesor paralel massal terbuat dari neuron, kabel dalam pola rumit, yang berkomunikasi melalui bahan kimia listrik dan neurotransmitter.
- 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
Home
1 komentar:
ayam sabung (Cockfighting) sign up for a site that will pay you to read emails during the course of the day. You will simply get links to scan over different websites and read through miscellaneous text. This will not take you a lot of time and can pay great benefits in the long run.
Posting Komentar