กลับไปหน้าบทความ

อ่าน 35 นาที

คอมพิวเตอร์

คอมพิวเตอร์คือ เครื่องจักร ที่สามารถ ตั้งโปรแกรม ให้ ดำเนินการ ตามลำดับ การ คำนวณ ทางคณิตศาสตร์ หรือ ตรรกะ ได้ โดย อัตโนมัติ คอมพิวเตอร์ ดิจิทัลอิเล็กทรอนิกส์...

คอมพิวเตอร์

หน้าเว็บได้รับการป้องกันบางส่วน

ภาพขาวดำของชายคนหนึ่งกำลังเปลี่ยนหลอดสุญญากาศหนึ่งหลอดจากหลายร้อยหลอดในคอมพิวเตอร์รุ่นแรกๆ
ห้องคอมพิวเตอร์ที่มีตู้คอมพิวเตอร์หลายตู้และแผงควบคุมการทำงาน
สมาร์ทโฟนที่มีหน้าจอสีรุ้งอยู่ในมือ
คอมพิวเตอร์ตั้งโต๊ะสีดำ มีจอภาพอยู่ด้านบนและแป้นพิมพ์อยู่ด้านหน้า
ตู้คอมพิวเตอร์ขนาดใหญ่สีเข้มเรียงรายอยู่ในห้องคล้ายโกดัง
คอมพิวเตอร์และอุปกรณ์คอมพิวเตอร์จากยุคต่างๆ—จากซ้ายไปขวา จากบนลงล่าง:

คอมพิวเตอร์คือเครื่องจักรที่สามารถตั้งโปรแกรมให้ดำเนินการตามลำดับ การ คำนวณทางคณิตศาสตร์หรือตรรกะได้โดย อัตโนมัติ คอมพิวเตอร์ ดิจิทัลอิเล็กทรอนิกส์สมัยใหม่สามารถดำเนินการชุดการทำงานทั่วไปที่เรียกว่าโปรแกรมซึ่งช่วยให้คอมพิวเตอร์สามารถทำงานได้หลากหลาย คำว่าระบบคอมพิวเตอร์อาจหมายถึงคอมพิวเตอร์ที่สมบูรณ์แล้ว ซึ่งรวมถึงฮาร์ดแวร์ระบบปฏิบัติการซอฟต์แวร์และ อุปกรณ์ ต่อพ่วง ที่จำเป็นและใช้สำหรับการทำงานอย่างเต็มรูปแบบ หรือ อาจหมายถึงกลุ่มของคอมพิวเตอร์ที่เชื่อมโยงและทำงานร่วมกัน เช่นเครือข่ายคอมพิวเตอร์หรือคลัสเตอร์คอมพิวเตอร์

ในทศวรรษ 1930 คอมพิวเตอร์มีจำนวนเพียงไม่กี่เครื่อง แต่ในปัจจุบัน คอมพิวเตอร์ได้แพร่หลายไปทั่วใน ผลิตภัณฑ์ อุตสาหกรรมและสินค้าอุปโภคบริโภค หลากหลายประเภท ที่ใช้คอมพิวเตอร์เป็นระบบควบคุมราคา ขนาด และความซับซ้อนของคอมพิวเตอร์นั้นแตกต่างกันไป ตั้งแต่อุปกรณ์ใช้งานเฉพาะอย่าง ง่ายๆ เช่นพวงกุญแจเตาไมโครเวฟและรีโมทคอนโทรลไปจนถึงซูเปอร์คอมพิวเตอร์และโรงงานที่ใช้หุ่นยนต์อุตสาหกรรมคอมพิวเตอร์เป็นหัวใจสำคัญของอุปกรณ์ใช้งานทั่วไป เช่นคอมพิวเตอร์ส่วนบุคคลและอุปกรณ์พกพาเช่นสมาร์ทโฟนคอมพิวเตอร์เป็นพลังงานขับเคลื่อนอินเทอร์เน็ตซึ่งเชื่อมโยงคอมพิวเตอร์และผู้ใช้หลายพันล้านเครื่องเข้าด้วยกัน

คอมพิวเตอร์ยุคแรกมีจุดประสงค์เพื่อใช้ในการคำนวณ เท่านั้น เครื่องมือแบบใช้มืออย่างง่าย เช่นลูกคิดได้ช่วยผู้คนในการคำนวณมาตั้งแต่สมัยโบราณ ในช่วงต้นของการปฏิวัติอุตสาหกรรมอุปกรณ์เชิงกลบางอย่างถูกสร้างขึ้นเพื่อทำให้งานที่ใช้เวลานานและน่าเบื่อหน่ายเป็นไปโดยอัตโนมัติ เช่น การนำทางรูปแบบสำหรับเครื่องทอผ้าเครื่องจักรไฟฟ้าที่ซับซ้อนกว่านั้นทำการ คำนวณ แบบอนาล็อก เฉพาะทาง ในช่วงต้นศตวรรษที่ 20 เครื่องคำนวณอิเล็กทรอนิกส์ดิจิทัล ยุคแรกได้รับการพัฒนาขึ้นในช่วง สงครามโลกครั้งที่สองเริ่มต้นด้วยเครื่องจักรไฟฟ้า เชิงกล (ทศวรรษ 1930) วาล์วเทอร์มิออนิก (ทศวรรษ 1930) ทรานซิสเตอร์เซมิคอนดักเตอร์ (ทศวรรษ 1940) MOSFET (ทรานซิสเตอร์ MOS ทศวรรษ 1950) และสุดท้ายคือวงจรรวมแบบโมโนลิธิก (ทศวรรษ 1950 เป็นต้นไป) ความก้าวหน้าทางเทคโนโลยีแต่ละครั้งส่งผลให้การออกแบบวงจรมีขนาดเล็กลงและมีประสิทธิภาพมากขึ้น ซึ่งนำไปสู่การปฏิวัติไมโครโปรเซสเซอร์และ ไมโครคอมพิวเตอร์ ในทศวรรษ 1970 นับตั้งแต่นั้นมา ความเร็ว พลังการประมวลผล และความอเนกประสงค์ของคอมพิวเตอร์ก็เพิ่มขึ้นอย่างมาก โดยจำนวนทรานซิสเตอร์เพิ่มขึ้นอย่างรวดเร็ว ( กฎของมัวร์ระบุว่าจำนวนทรานซิสเตอร์เพิ่มขึ้นเป็นสองเท่าทุกๆ สองปี) ซึ่งนำไปสู่การปฏิวัติทางดิจิทัลในช่วงปลายศตวรรษที่ 20 และต้นศตวรรษที่ 21

โดยทั่วไปแล้ว คอมพิวเตอร์สมัยใหม่ประกอบด้วยองค์ประกอบการประมวลผล อย่างน้อยหนึ่งอย่าง ซึ่งโดยทั่วไปคือหน่วยประมวลผลกลาง (CPU) ในรูปแบบของไมโครโปรเซสเซอร์พร้อมด้วยหน่วยความจำคอมพิวเตอร์ บางประเภท ซึ่งโดยทั่วไปคือ ชิป หน่วยความจำเซมิคอนดักเตอร์องค์ประกอบการประมวลผลจะทำการคำนวณทางคณิตศาสตร์และตรรกะ และหน่วยจัดลำดับและควบคุมสามารถเปลี่ยนลำดับการทำงานเพื่อตอบสนองต่อข้อมูล ที่จัดเก็บไว้ อุปกรณ์ต่อพ่วงประกอบด้วยอุปกรณ์ป้อนข้อมูล ( แป้นพิมพ์เมาส์อยสติ๊กฯลฯ) อุปกรณ์แสดงผล ( จอภาพเครื่องพิมพ์ฯลฯ ) และอุปกรณ์ป้อนข้อมูล/แสดงผลที่ทำหน้าที่ทั้งสองอย่าง (เช่นหน้าจอสัมผัส ) อุปกรณ์ต่อพ่วงช่วยให้สามารถดึงข้อมูลจากแหล่งภายนอกได้ และช่วยให้สามารถบันทึกและเรียกคืนผลลัพธ์ของการทำงานได้

นิรุกติศาสตร์

คอมพิวเตอร์มนุษย์
คอมพิวเตอร์มนุษย์พร้อมกล้องจุลทรรศน์และเครื่องคิดเลข ปี 1952

จนกระทั่งช่วงกลางศตวรรษที่ 20 คำนี้จึงได้รับความหมายสมัยใหม่ ตามพจนานุกรมภาษาอังกฤษของออกซ์ฟอร์ดการใช้คำว่าคอมพิวเตอร์ ครั้งแรกที่รู้จักกัน นั้นอยู่ในความหมายที่แตกต่างออกไป ในหนังสือปี 1613 ชื่อThe Yong Mans GleaningsโดยนักเขียนชาวอังกฤษRichard Brathwait : "I haue [ sic ] read the truest computer of Times, and the best Arithmetician that euer [ sic ] breathed, and he reduceth thy days into a short number." การใช้คำนี้หมายถึงมนุษย์คอมพิวเตอร์บุคคลที่ทำการคำนวณหรือประมวลผลคำนี้ยังคงมีความหมายเดียวกันจนถึงกลางศตวรรษที่ 20 ในช่วงปลายของช่วงเวลานี้ ผู้หญิงมักถูกจ้างเป็นคอมพิวเตอร์เพราะพวกเธอได้รับค่าจ้างน้อยกว่าผู้ชาย[ 1 ]ในปี 1943 มนุษย์คอมพิวเตอร์ส่วนใหญ่เป็นผู้หญิง[ 2 ]

พจนานุกรมรากศัพท์ออนไลน์ ระบุว่าการใช้คำว่า computerครั้งแรกที่มีหลักฐานยืนยันอยู่ในช่วงทศวรรษ 1640 หมายถึง 'ผู้ที่คำนวณ' ซึ่งเป็น "คำนามแสดงผู้กระทำจาก compute (กริยา)" พจนานุกรมรากศัพท์ออนไลน์ระบุว่าการใช้คำนี้ในความหมายว่า" 'เครื่องคำนวณ' (ทุกประเภท) เริ่มขึ้นในปี 1897" พจนานุกรมรากศัพท์ออนไลน์ระบุว่า "การใช้คำนี้ในยุคปัจจุบัน" ในความหมายว่า 'คอมพิวเตอร์อิเล็กทรอนิกส์ดิจิทัลที่ตั้งโปรแกรมได้' มีมาตั้งแต่ "ปี 1945 ภายใต้ชื่อนี้ [ใน] ความหมายเชิงทฤษฎีตั้งแต่ปี 1937 ในฐานะเครื่องจักรทัวริง " [ 3 ]ชื่อนี้ยังคงอยู่ แม้ว่าคอมพิวเตอร์สมัยใหม่จะสามารถทำงานในระดับที่สูงขึ้นได้มากมาย

ประวัติศาสตร์

ก่อนศตวรรษที่ 20

กระดูกอิชางโกเครื่องมือที่ทำจากกระดูกซึ่งมีอายุย้อนไปถึงยุคก่อนประวัติศาสตร์ของแอฟริกา

มีการใช้อุปกรณ์เพื่อช่วยในการคำนวณมาเป็นเวลาหลายพันปีแล้ว โดยส่วนใหญ่ใช้การจับคู่แบบหนึ่งต่อหนึ่งกับนิ้วมืออุปกรณ์นับที่เก่าแก่ที่สุดน่าจะเป็นแท่งนับ จำนวน ต่อมาอุปกรณ์ช่วยบันทึกข้อมูลทั่วดินแดนพระจันทร์เสี้ยว อันอุดมสมบูรณ์ได้ รวมถึง calculi (ทรงกลมดินเหนียว กรวย ฯลฯ) ซึ่งแสดงจำนวนสิ่งของ น่าจะเป็นปศุสัตว์หรือธัญพืชที่ปิดผนึกไว้ในภาชนะดินเหนียวกลวงที่ไม่ได้เผา[ a ] ​​[ 4 ]การใช้แท่งนับเป็นตัวอย่างหนึ่ง

ลูกคิดจีน(算盘) ตัวเลขที่แสดงบนลูกคิด นี้ คือ 6,302,715,408

ลูกคิดถูกใช้ครั้งแรกสำหรับงานคำนวณลูกคิดของโรมันได้รับการพัฒนามาจากอุปกรณ์ที่ใช้ในบาบิโลเนียตั้งแต่ 2400 ปีก่อนคริสตกาล นับตั้งแต่นั้นมาก็มีการประดิษฐ์กระดานหรือโต๊ะคำนวณรูปแบบอื่นๆ อีกมากมาย ในห้องบัญชีของยุโรปในยุคกลางจะมีการวางผ้าลายตารางหมากรุกไว้บนโต๊ะ และเลื่อนเครื่องหมายไปรอบๆ ตามกฎบางอย่าง เพื่อช่วยในการคำนวณจำนวนเงิน[ 5 ]

กลไกแอนติคิเธราซึ่งมีอายุย้อนไปถึงสมัยกรีกโบราณราว 200–80 ปีก่อนคริสตกาล เป็นอุปกรณ์คำนวณแบบอนาล็อก ยุคแรกๆ

เชื่อกันว่า กลไกแอนติคิเธราเป็นคอมพิวเตอร์อนาล็อก เชิงกลที่เก่าแก่ที่สุดเท่าที่รู้จัก ตามที่Derek J. de Solla Priceกล่าว[ 6 ]มันถูกออกแบบมาเพื่อคำนวณตำแหน่งทางดาราศาสตร์ มันถูกค้นพบในปี 1901 ในซากเรือแอนติคิเธรา นอกชายฝั่งเกาะ แอนติคิเธราของกรีกระหว่างคีเธราและครีตและมีอายุประมาณ 100 ปีก่อนคริสตกาล อุปกรณ์ที่มีความซับซ้อนเทียบเท่ากับกลไกแอนติคิเธราจะไม่ปรากฏขึ้นอีกจนกระทั่งศตวรรษที่สิบสี่[ 7 ]

มีการสร้างเครื่องมือช่วยทางกลหลายอย่างสำหรับการคำนวณและการวัดเพื่อใช้ในทางดาราศาสตร์และการนำทางแผนที่ดาวเป็นแผนที่ดาวที่คิดค้นโดยAbū Rayhān al-Bīrūnīในช่วงต้นศตวรรษที่ 11 [ 8 ]แอสโทรลาบถูกคิดค้นขึ้นในโลกเฮลเลนิสติกในช่วงศตวรรษที่ 1 หรือ 2 ก่อนคริสต์ศักราช และมักถูกยกให้เป็นผลงาน ของ ฮิปปาร์ คัส แอสโทรลาบเป็นการ ผสมผสานระหว่างแผนที่ดาวและไดออปตราซึ่งโดยพื้นฐานแล้วเป็นคอมพิวเตอร์อนาล็อกที่สามารถคำนวณปัญหาหลายประเภทในดาราศาสตร์ทรงกลมได้ แอสโทรลาบที่รวมเอาคอมพิวเตอร์ปฏิทิน เชิงกล [ 9 ] [ 10 ]และ ล้อ เฟืองถูกประดิษฐ์ขึ้นโดยอบี บาครแห่งอิสฟาฮานเปอร์เซียในปี ค.ศ. 1235 [ 11 ]อบู รายฮาน อัล-บีรูนี ได้ประดิษฐ์แอสโทรลาบปฏิทินจันทรคติแบบเฟือง เชิงกลเครื่องแรก [ 12 ] ซึ่งเป็น เครื่องประมวลผลความรู้แบบต่อสายคงที่ในยุคแรก[ 13 ]ที่มีชุดเฟืองและล้อเฟือง[ 14 ]ประมาณค.ศ. 1000

เครื่อง วัด มุม (Sector)ซึ่งเป็นเครื่องมือคำนวณที่ใช้แก้ปัญหาเกี่ยวกับสัดส่วนตรีโกณมิติการคูณและการหาร รวมถึงฟังก์ชันต่างๆ เช่น กำลังสองและรากที่สาม ได้รับการพัฒนาขึ้นในช่วงปลายศตวรรษที่ 16 และนำไปประยุกต์ใช้ในด้านการยิงปืน การสำรวจ และการเดินเรือ

เครื่องวัดพื้นที่ (planimeter)เป็นเครื่องมือแบบใช้มือในการคำนวณพื้นที่ของรูปทรงปิดโดยการลากเส้นตามรูปทรงนั้นด้วยกลไกเชื่อมต่อ

ไม้บรรทัดคำนวณ

ไม้บรรทัดคำนวณ ถูกประดิษฐ์ขึ้นราวปี ค.ศ. 1620–1630 โดย วิลเลียม ออทเทรดนักบวชชาวอังกฤษไม่นานหลังจากที่แนวคิดเรื่องลอการิทึมได้รับการตีพิมพ์ มันเป็นเครื่องคำนวณแบบอนาล็อกที่ใช้มือในการคำนวณการคูณและการหาร เมื่อการพัฒนาไม้บรรทัดคำนวณก้าวหน้าขึ้น ก็มีการเพิ่มมาตราส่วนต่างๆ เพื่อให้สามารถคำนวณส่วนกลับ กำลังสองและรากที่สอง กำลังสามและรากที่สาม รวมถึงฟังก์ชันอดิศัยเช่น ลอการิทึมและเลขชี้กำลัง ตรีโกณมิติแบบวงกลมและ แบบ ไฮเปอร์โบลิกและฟังก์ชัน อื่นๆ ไม้บรรทัดคำนวณที่มีมาตราส่วนพิเศษยังคงใช้สำหรับการคำนวณประจำวันอย่างรวดเร็ว เช่น ไม้บรรทัดคำนวณแบบวงกลม E6Bที่ใช้สำหรับการคำนวณเวลาและระยะทางบนเครื่องบินขนาดเล็ก

ในช่วงทศวรรษ 1770 ปิแอร์ ฌาเกต์-โดรซ์ ช่างทำ นาฬิกาชาวสวิสได้สร้างตุ๊กตากลไก ( ออโตมาตอน ) ที่สามารถเขียนได้โดยใช้ปากกาขนนก โดยการสลับจำนวนและลำดับของล้อภายใน สามารถสร้างตัวอักษรต่างๆ และข้อความต่างๆ ได้ ในทางปฏิบัติแล้ว มันสามารถ "ตั้งโปรแกรม" ทางกลไกเพื่ออ่านคำสั่งได้ ตุ๊กตาตัวนี้พร้อมกับเครื่องจักรที่ซับซ้อนอีกสองเครื่อง จัดแสดงอยู่ที่พิพิธภัณฑ์ศิลปะและประวัติศาสตร์แห่งเมืองเนอชาเตลประเทศสวิตเซอร์แลนด์และยังคงใช้งานได้[ 15 ]

ในช่วงปี ค.ศ. 1831–1835 โจวันนี พลานานักคณิตศาสตร์และวิศวกรได้ประดิษฐ์เครื่องปฏิทินถาวรขึ้นซึ่งใช้ระบบรอกและกระบอกสูบในการทำนายปฏิทินถาวรสำหรับทุกปีตั้งแต่ปี ค.ศ. 0 (หรือ 1 ก่อนคริสต์ศักราช) ถึง ค.ศ. 4000 โดยคำนึงถึงปีอธิกสุรทินและความยาวของวันต่างๆ ส่วนเครื่องทำนายระดับน้ำขึ้นน้ำลง ที่ประดิษฐ์โดย เซอร์ วิลเลียม ทอมสันนักวิทยาศาสตร์ชาวสกอตแลนด์ในปี ค.ศ. 1872 นั้นมีประโยชน์อย่างมากต่อการเดินเรือในน่านน้ำตื้น โดยใช้ระบบรอกและสายไฟในการคำนวณระดับน้ำขึ้นน้ำลงที่คาดการณ์ไว้โดยอัตโนมัติสำหรับช่วงเวลาที่กำหนด ณ ตำแหน่งใดตำแหน่งหนึ่ง

เครื่องวิเคราะห์เชิงอนุพันธ์ซึ่งเป็นคอมพิวเตอร์อนาล็อกเชิงกลที่ออกแบบมาเพื่อแก้สมการเชิงอนุพันธ์โดยการอินทิเกรต ใช้กลไกแบบล้อและจานเพื่อทำการอินทิเกรต ในปี พ.ศ. 2429 เซอร์วิลเลียม ทอมสัน ได้กล่าวถึงความเป็นไปได้ในการสร้างเครื่องคำนวณดังกล่าว แต่เขาติดขัดเพราะแรงบิดเอาต์พุตที่จำกัดของเครื่อง อินทิ เกรเตอร์แบบลูกบอลและจาน[ 16 ]ในเครื่องวิเคราะห์เชิงอนุพันธ์ เอาต์พุตของเครื่องอินทิเกรเตอร์ตัวหนึ่งจะขับเคลื่อนอินพุตของเครื่องอินทิเกรเตอร์ตัวถัดไป หรือเอาต์พุตแบบกราฟเครื่องขยายแรงบิดเป็นความก้าวหน้าที่ทำให้เครื่องจักรเหล่านี้ทำงานได้ เริ่มตั้งแต่ทศวรรษ พ.ศ. 2463 แวนเนวาร์ บุชและคนอื่นๆ ได้พัฒนาเครื่องวิเคราะห์เชิงอนุพันธ์เชิงกล

ในช่วงทศวรรษ 1890 วิศวกรชาวสเปนLeonardo Torres Quevedoเริ่มพัฒนาเครื่องจักรอนาล็อก ขั้นสูงหลายเครื่อง ที่สามารถแก้ปัญหารากจริงและรากเชิงซ้อนของพหุนามได้ [ 17 ] [ 18 ] [ 19 ] ซึ่งได้รับการตีพิมพ์ในปี 1901 โดยสถาบันวิทยาศาสตร์แห่งปารีส[ 20 ] [ 21 ] [ 22 ]

คอมพิวเตอร์เครื่องแรก

ชาร์ลส์ แบ็บเบจ
แผนภาพแสดงส่วนหนึ่งของเครื่องคำนวณผลต่าง ของแบ็บเบจ
เครื่องคำนวณเชิงอนุพันธ์หมายเลข 2 ที่ ห้องปฏิบัติการ Intellectual Venturesในซีแอตเติล

ชาร์ลส์ แบ็บเบจวิศวกรเครื่องกลชาวอังกฤษและนักปราชญ์รอบรู้เป็นผู้ริเริ่มแนวคิดของคอมพิวเตอร์ที่ตั้งโปรแกรมได้ เขาได้รับการยกย่องว่าเป็น " บิดาแห่งคอมพิวเตอร์ " [ 23 ]โดยเขาได้คิดค้นและประดิษฐ์คอมพิวเตอร์เชิงกลเครื่อง แรก ในช่วงต้นศตวรรษที่ 19

หลังจากทำงานเกี่ยวกับเครื่องคำนวณผลต่างเขาได้ประกาศสิ่งประดิษฐ์ของเขาในปี พ.ศ. 2465 ในเอกสารที่ส่งไปยังสมาคมดาราศาสตร์หลวงในหัวข้อ "หมายเหตุเกี่ยวกับการประยุกต์ใช้เครื่องจักรในการคำนวณตารางทางดาราศาสตร์และคณิตศาสตร์" [ 24 ]เขายังออกแบบเพื่อช่วยในการคำนวณการนำทาง ในปี พ.ศ. 2476 เขาตระหนักว่าการออกแบบทั่วไปมากขึ้น นั่น คือ เครื่องคำนวณเชิงวิเคราะห์เป็นไปได้ การป้อนโปรแกรมและข้อมูลจะถูกส่งไปยังเครื่องจักรผ่านบัตรเจาะรูซึ่งเป็นวิธีการที่ใช้ในขณะนั้นเพื่อควบคุมเครื่องทอผ้า เชิงกล เช่นเครื่องทอผ้าจาการ์ดสำหรับการส่งออก เครื่องจักรจะมีเครื่องพิมพ์เครื่องพล็อตเส้นโค้ง และกระดิ่ง เครื่องจักรยังสามารถเจาะตัวเลขลงบนบัตรเพื่ออ่านในภายหลังได้ เครื่องคำนวณจะรวมหน่วยตรรกะทางคณิตศาสตร์การควบคุมการไหลในรูปแบบของการแยกสาขาตามเงื่อนไขและลูปและหน่วยความจำ แบบบูรณาการ ทำให้เป็นการออกแบบครั้งแรกสำหรับคอมพิวเตอร์อเนกประสงค์ที่สามารถอธิบายได้ในแง่สมัยใหม่ว่าเป็นTuring -complete [ 25 ] [ 26 ]

เครื่องจักรดังกล่าวล้ำหน้ากว่ายุคสมัยไปประมาณหนึ่งศตวรรษ ชิ้นส่วนทั้งหมดของเครื่องจักรต้องทำด้วยมือ ซึ่งเป็นปัญหาใหญ่สำหรับอุปกรณ์ที่มีชิ้นส่วนนับพันชิ้น ในที่สุด โครงการนี้ก็ถูกยุติลงด้วยการตัดสินใจของรัฐบาลอังกฤษที่จะหยุดให้เงินสนับสนุน ความล้มเหลวของแบ็บเบจในการสร้างเครื่องคำนวณเชิงวิเคราะห์นั้น ส่วนใหญ่เกิดจากปัญหาทางการเมืองและการเงิน รวมถึงความปรารถนาของเขาที่จะพัฒนาคอมพิวเตอร์ที่ซับซ้อนยิ่งขึ้น และก้าวไปข้างหน้าเร็วกว่าใครๆ อย่างไรก็ตามเฮนรี แบ็บเบจ บุตร ชายของเขา ได้สร้างหน่วยประมวลผลของเครื่องคำนวณเชิงวิเคราะห์เวอร์ชันที่เรียบง่ายกว่า (เครื่องมิลล์ ) เสร็จสมบูรณ์ในปี 1888 และได้สาธิตการใช้งานในการคำนวณตารางได้สำเร็จในปี 1906

เครื่องคำนวณอิเล็กโทรเมคานิกส์

เครื่องคิดเลขแบบอิเล็กโทรแมคคานิกส์ (ปี 1920) โดยเลโอนาร์โด ตอร์เรส เกเวโด

ในงานเขียนของเขาเรื่อง Essays on Automaticsที่ตีพิมพ์ในปี 1914 Leonardo Torres Quevedoได้เขียนประวัติย่อของความพยายามของ Babbage ในการสร้างเครื่อง Difference Engine และ Analytical Engine แบบกลไก บทความนี้มีการออกแบบเครื่องจักรที่สามารถคำนวณสูตรต่างๆ เช่นสำหรับลำดับของชุดค่า เครื่องจักรทั้งหมดจะถูกควบคุมโดย โปรแกรม แบบอ่านอย่างเดียวซึ่งสมบูรณ์ด้วยข้อกำหนดสำหรับการแตกแขนงแบบมีเงื่อนไขเขายังได้แนะนำแนวคิดของเลขคณิตจุดลอยตัว อีกด้วย [ 27 ] [ 28 ] [ 29 ]ในปี 1920 เพื่อเฉลิมฉลองครบรอบ 100 ปีของการประดิษฐ์เครื่องคำนวณเลขคณิต Torres ได้นำเสนอ Electromechanical Arithmometer ในปารีส ซึ่งอนุญาตให้ผู้ใช้ป้อนปัญหาทางคณิตศาสตร์ผ่านแป้นพิมพ์และคำนวณและพิมพ์ผลลัพธ์[ 30 ] [ 31 ] [ 32 ] [ 33 ] ซึ่ง แสดงให้เห็นถึงความเป็นไปได้ของเครื่องวิเคราะห์แบบอิเล็กโทรเมคา นิกส์ [ 34 ]

คอมพิวเตอร์อนาล็อก

การออกแบบเครื่องพยากรณ์น้ำขึ้นน้ำลงเครื่องที่สามของเซอร์วิลเลียม ทอมสัน ปี 1879–1881

ในช่วงครึ่งแรกของศตวรรษที่ 20 ความต้องการ ด้านการคำนวณ ทางวิทยาศาสตร์จำนวนมาก ได้รับการตอบสนองโดยคอมพิวเตอร์อนาล็อกที่ซับซ้อนขึ้นเรื่อยๆ ซึ่งใช้แบบจำลองทางกลหรือทางไฟฟ้าโดยตรงของปัญหาเป็นพื้นฐานสำหรับการคำนวณอย่างไรก็ตาม คอมพิวเตอร์เหล่านี้ไม่สามารถตั้งโปรแกรมได้ และโดยทั่วไปแล้วขาดความหลากหลายและความแม่นยำของคอมพิวเตอร์ดิจิทัลสมัยใหม่[ 35 ]คอมพิวเตอร์อนาล็อกสมัยใหม่เครื่องแรกคือเครื่องทำนายระดับน้ำขึ้นน้ำลงซึ่งประดิษฐ์โดยเซอร์วิลเลียม ทอมสัน (ต่อมาคือลอร์ดเคลวิน) ในปี 1872 เครื่องวิเคราะห์เชิงอนุพันธ์ซึ่งเป็นคอมพิวเตอร์อนาล็อกเชิงกลที่ออกแบบมาเพื่อแก้สมการเชิงอนุพันธ์โดยการอินทิเกรตโดยใช้กลไกแบบล้อและจาน ได้รับการคิดค้นขึ้นในปี 1876 โดยเจมส์ ทอมสันพี่ชายของเซอร์วิลเลียม ทอมสัน ผู้มีชื่อเสียงมากกว่า[ 16 ]

ศิลปะของการคำนวณแบบอนาล็อกเชิงกลถึงจุดสูงสุดด้วยเครื่องวิเคราะห์เชิงอนุพันธ์ ซึ่งเสร็จ สมบูรณ์ในปี พ.ศ. 2474 โดยVannevar Bushที่MIT [ 36 ]ในช่วงทศวรรษ พ.ศ. 2494 ความสำเร็จของคอมพิวเตอร์อิเล็กทรอนิกส์ดิจิทัลทำให้เครื่องคำนวณแบบอนาล็อกส่วนใหญ่หมดความสำคัญไป แต่คอมพิวเตอร์แบบอนาล็อกยังคงถูกใช้งานในช่วงทศวรรษ พ.ศ. 2493 ในบางแอปพลิเคชันเฉพาะทาง เช่น การศึกษา ( ไม้บรรทัดคำนวณ ) และอากาศยาน ( ระบบควบคุม )

คอมพิวเตอร์ดิจิทัล

อิเล็กโตเมคานิกส์

วิทยานิพนธ์ปริญญาโทของClaude Shannon ในปี 1937 ได้วางรากฐานของการคำนวณแบบดิจิทัล โดยความเข้าใจของเขาเกี่ยวกับการประยุกต์ใช้พีชคณิตบูลีนในการวิเคราะห์และการสังเคราะห์วงจรการสลับเป็นแนวคิดพื้นฐานที่อยู่เบื้องหลังคอมพิวเตอร์ดิจิทัลอิเล็กทรอนิกส์ทั้งหมด[ 37 ] [ 38 ]

ในปี พ.ศ. 2481 กองทัพเรือสหรัฐฯได้พัฒนาเครื่องคำนวณข้อมูลตอร์ปิโดซึ่งเป็นคอมพิวเตอร์อนาล็อกแบบอิเล็กโทรเมคานิกส์สำหรับเรือดำน้ำที่ใช้ตรีโกณมิติในการแก้ปัญหาการยิงตอร์ปิโดใส่เป้าหมายที่กำลังเคลื่อนที่ ในช่วงสงครามโลกครั้งที่สองมีการพัฒนาอุปกรณ์ที่คล้ายกันในประเทศอื่นๆ[ 39 ]

แบบจำลองของZ3ของKonrad Zuseซึ่งเป็นคอมพิวเตอร์ดิจิทัล (อิเล็กโทรเมคานิกส์) แบบอัตโนมัติเต็มรูปแบบเครื่องแรก

คอมพิวเตอร์ดิจิทัลยุคแรกเป็นแบบอิเล็กโทรเมคานิ กส์ โดย ใช้สวิตช์ไฟฟ้าขับเคลื่อนรีเลย์เชิงกลเพื่อทำการคำนวณ อุปกรณ์เหล่านี้มีความเร็วในการทำงานต่ำ และในที่สุดก็ถูกแทนที่ด้วยคอมพิวเตอร์ไฟฟ้าล้วนที่เร็วกว่ามาก ซึ่งเดิมทีใช้หลอดสุญญากาศ Z2 ซึ่งสร้างโดยวิศวกรชาวเยอรมันKonrad Zuseในปี 1939 ที่เบอร์ลินเป็นหนึ่งในตัวอย่างแรกๆ ของคอมพิวเตอร์รีเลย์อิเล็กโทรเมคานิกส์[ 40 ]

คอนราด ซูสผู้ประดิษฐ์คอมพิวเตอร์สมัยใหม่[ 41 ] [ 42 ]

ในปี พ.ศ. 2484 Zuse ได้พัฒนาเครื่อง Z3 ต่อจากเครื่องรุ่นก่อนหน้าของเขา ซึ่งเป็น คอมพิวเตอร์ดิจิทัลอัตโนมัติแบบโปรแกรมได้ด้วยระบบอิ เล็กโทรเมคานิ กส์ เครื่อง แรกของโลกที่ใช้งาน ได้จริง [ 43 ] [ 44 ] Z3 สร้างขึ้นด้วยรีเลย์ 2,000 ตัว โดยใช้ความยาวคำ 22 บิต และทำงานที่ความถี่สัญญาณนาฬิกาประมาณ 5–10 เฮิรตซ์[ 45 ] รหัสโปรแกรมถูกป้อนผ่านฟิล์ม เจาะรู ในขณะที่ข้อมูลสามารถจัดเก็บในหน่วยความจำ 64 คำ หรือป้อนจากแป้นพิมพ์ได้ มันค่อนข้างคล้ายกับเครื่องจักรสมัยใหม่ในบางแง่มุม โดยเป็นผู้บุกเบิกความก้าวหน้ามากมาย เช่นตัวเลขทศนิยมแทนที่จะใช้ระบบเลขฐานสิบที่ยากต่อการใช้งาน (ที่ใช้ในการออกแบบก่อนหน้านี้ของCharles Babbage ) การใช้ระบบ เลขฐานสองหมายความว่าเครื่องจักรของ Zuse สร้างได้ง่ายกว่าและอาจมีความน่าเชื่อถือมากกว่า เมื่อพิจารณาจากเทคโนโลยีที่มีอยู่ในขณะนั้น[ 46 ] Z3 ไม่ใช่คอมพิวเตอร์สากล แต่สามารถขยายให้เป็นTuring completeได้[ 47 ] [ 48 ]

คอมพิวเตอร์เครื่องถัดไปของ Zuse คือZ4 ซึ่งกลายเป็นคอมพิวเตอร์เชิงพาณิชย์เครื่องแรกของโลก หลังจากล่าช้าไปบ้างเนื่องจากสงครามโลกครั้งที่สอง ก็เสร็จสมบูรณ์ในปี 1950 และส่งมอบให้กับETH Zurich [ 49 ]คอมพิวเตอร์เครื่องนี้ผลิตโดยบริษัทZuse KG ของ Zuse เอง ซึ่งก่อตั้งขึ้นในปี 1941 ในฐานะบริษัทแรกที่มีจุดประสงค์เดียวคือการพัฒนาคอมพิวเตอร์ในเบอร์ลิน[ 49 ] Z4 เป็นแรงบันดาลใจในการสร้างERMETHซึ่งเป็นคอมพิวเตอร์เครื่องแรกของสวิตเซอร์แลนด์และเป็นหนึ่งในเครื่องแรกๆ ในยุโรป[ 50 ]

หลอดสุญญากาศและวงจรอิเล็กทรอนิกส์ดิจิทัล

องค์ประกอบ วงจรอิเล็กทรอนิกส์ ล้วนๆเข้ามาแทนที่องค์ประกอบเชิงกลและอิเล็กโทรเมคานิกส์ในเวลาต่อมา ในขณะเดียวกันการคำนวณแบบดิจิทัลก็เข้ามาแทนที่แบบอนาล็อก วิศวกรTommy Flowersซึ่งทำงานอยู่ที่สถานีวิจัยไปรษณีย์ในลอนดอนในช่วงทศวรรษ 1930 เริ่มสำรวจความเป็นไปได้ในการใช้อุปกรณ์อิเล็กทรอนิกส์สำหรับระบบโทรศัพท์อุปกรณ์ทดลองที่เขาสร้างขึ้นในปี 1934 เริ่มใช้งานได้ในอีกห้าปีต่อมา โดยเปลี่ยนส่วนหนึ่งของ เครือ ข่ายโทรศัพท์ให้เป็นระบบประมวลผลข้อมูลอิเล็กทรอนิกส์โดยใช้หลอดสุญญากาศหลายพันหลอด[ 35 ] ในสหรัฐอเมริกาJohn Vincent AtanasoffและClifford E. Berryจากมหาวิทยาลัยรัฐไอโอวาได้พัฒนาและทดสอบคอมพิวเตอร์ Atanasoff–Berry (ABC) ในปี 1942 [ 51 ]ซึ่งเป็น "คอมพิวเตอร์ดิจิทัลอิเล็กทรอนิกส์อัตโนมัติ" เครื่องแรก[ 52 ]การออกแบบนี้เป็นแบบอิเล็กทรอนิกส์ทั้งหมดและใช้หลอดสุญญากาศประมาณ 300 หลอด โดยมีตัวเก็บประจุติดตั้งอยู่ในดรัมหมุนเชิงกลสำหรับหน่วยความจำ[ 53 ]

คอมพิวเตอร์โคลอสซัสตรวจพบผู้หญิงสองคน
โคลอสซัส (Colossus ) อุปกรณ์ประมวลผล ดิจิทัลแบบ โปรแกรมได้ เครื่องแรกถูกนำมาใช้ถอดรหัสลับของเยอรมันในช่วงสงครามโลกครั้งที่สอง ภาพนี้แสดงให้เห็นการใช้งานโคลอสซัสที่เบล็ตช์ลีย์พาร์คในปี 1943

ในช่วงสงครามโลกครั้งที่สอง นักถอดรหัสชาวอังกฤษที่Bletchley Parkประสบความสำเร็จในการถอดรหัสการสื่อสารทางทหารของเยอรมันได้หลายครั้ง เครื่องเข้ารหัสEnigma ของเยอรมันถูกโจมตีเป็นครั้งแรกด้วยความช่วยเหลือของ bombesเชิงกลไฟฟ้าซึ่งมักดำเนินการโดยผู้หญิง[ 54 ] [ 55 ] เพื่อถอดรหัสเครื่อง Lorenz SZ 40/42ของเยอรมันที่ซับซ้อนกว่าซึ่งใช้สำหรับการสื่อสารระดับสูงของกองทัพMax Newman และเพื่อนร่วมงานของเขาได้มอบหมายให้ Flowers สร้างColossus [ 53 ]เขาใช้เวลาสิบเอ็ดเดือนตั้งแต่ต้นเดือนกุมภาพันธ์ พ.ศ. 2486 ในการออกแบบและสร้าง Colossus เครื่องแรก[ 56 ]หลังจากการทดสอบการทำงานในเดือนธันวาคม พ.ศ. 2486 Colossus ถูกส่งไปยัง Bletchley Park ซึ่งส่งมอบในวันที่ 18 มกราคม พ.ศ. 2487 [ 57 ]และโจมตีข้อความแรกในวันที่ 5 กุมภาพันธ์[ 53 ]

Colossus เป็น คอมพิวเตอร์ดิจิทัลแบบ โปรแกรมได้ เครื่องแรกของโลก[ 35 ]มันใช้หลอดสุญญากาศจำนวนมาก มีอินพุตเป็นเทปกระดาษ และสามารถกำหนดค่าให้ดำเนิน การทางตรรกะ บูลีนและพีชคณิต ต่างๆ กับข้อมูลได้ แต่ไม่ใช่คอมพิวเตอร์ที่สมบูรณ์แบบตามทฤษฎีของ Turing มีการสร้าง Colossus Mk II จำนวน 9 เครื่อง (โดยแปลง Mk I เป็น Mk II ทำให้มีเครื่องทั้งหมด 10 เครื่อง) Colossus Mark I มีหลอดสุญญากาศ 1,500 หลอด แต่ Mark II ที่มีหลอดสุญญากาศ 2,400 หลอดนั้นเร็วกว่าและใช้งานง่ายกว่า Mark I ถึง 5 เท่า ทำให้กระบวนการถอดรหัสเร็วขึ้นอย่างมาก[ 58 ] [ 59 ]

ENIAC เป็นอุปกรณ์ อิเล็กทรอนิกส์เครื่องแรกที่สมบูรณ์แบบตามทฤษฎีบทของทัวริง และทำการคำนวณวิถีกระสุนสำหรับกองทัพสหรัฐฯ

ENIAC [ 60 ] (Electronic Numerical Integrator and Computer) เป็นคอมพิวเตอร์ แบบโปรแกรมได้อิเล็กทรอนิกส์เครื่องแรกที่สร้างขึ้นในสหรัฐอเมริกา แม้ว่า ENIAC จะคล้ายกับ Colossus แต่ก็เร็วกว่า ยืดหยุ่นกว่า และสมบูรณ์แบบตามทฤษฎีของ Turing เช่นเดียวกับ Colossus "โปรแกรม" บน ENIAC ถูกกำหนดโดยสถานะของสายแพทช์และสวิตช์ ซึ่งแตกต่างอย่างสิ้นเชิงจาก เครื่องอิเล็กทรอนิกส์ แบบโปรแกรมที่จัดเก็บไว้ซึ่งมาในภายหลัง เมื่อเขียนโปรแกรมแล้ว จะต้องตั้งค่าลงในเครื่องด้วยกลไกโดยการรีเซ็ตปลั๊กและสวิตช์ด้วยตนเอง โปรแกรมเมอร์ของ ENIAC เป็นผู้หญิงหกคน ซึ่งมักเรียกรวมกันว่า "สาวๆ ENIAC" [ 61 ] [ 62 ]

เครื่องนี้ผสมผสานความเร็วสูงของอิเล็กทรอนิกส์เข้ากับความสามารถในการตั้งโปรแกรมเพื่อแก้ปัญหาที่ซับซ้อนได้หลายอย่าง สามารถบวกหรือลบได้ 5,000 ครั้งต่อวินาที เร็วกว่าเครื่องอื่นถึงหนึ่งพันเท่า นอกจากนี้ยังมีโมดูลสำหรับการคูณ หาร และหาค่ารากที่สอง หน่วยความจำความเร็วสูงมีข้อจำกัดอยู่ที่ 20 คำ (ประมาณ 80 ไบต์) ENIAC สร้างขึ้นภายใต้การกำกับดูแลของJohn MauchlyและJ. Presper Eckertที่มหาวิทยาลัยเพนซิลเวเนีย การพัฒนาและการก่อสร้างกินเวลาตั้งแต่ปี 1943 จนถึงการใช้งานเต็มรูปแบบในปลายปี 1945 เครื่องนี้มีขนาดใหญ่มาก หนัก 30 ตัน ใช้พลังงานไฟฟ้า 200 กิโลวัตต์ และประกอบด้วยหลอดสุญญากาศมากกว่า 18,000 หลอด รีเลย์ 1,500 ตัว และตัวต้านทาน ตัวเก็บประจุ และตัวเหนี่ยวนำหลายแสนชิ้น[ 63 ]

คอมพิวเตอร์สมัยใหม่

แนวคิดของคอมพิวเตอร์สมัยใหม่

หลักการของคอมพิวเตอร์สมัยใหม่ได้รับการเสนอโดยAlan Turingในบทความสำคัญของเขาในปี 1936 [ 64 ]เรื่อง On Computable Numbers Turing เสนออุปกรณ์ง่ายๆ ที่เขาเรียกว่า "เครื่องคำนวณสากล" ซึ่งปัจจุบันรู้จักกันในชื่อเครื่อง Turing สากลเขาพิสูจน์ว่าเครื่องดังกล่าวสามารถคำนวณสิ่งใดๆ ก็ตามที่สามารถคำนวณได้โดยการดำเนินการคำสั่ง (โปรแกรม) ที่เก็บไว้ในเทป ทำให้เครื่องสามารถตั้งโปรแกรมได้ แนวคิดพื้นฐานของการออกแบบของ Turing คือโปรแกรมที่จัดเก็บไว้ซึ่งคำสั่งทั้งหมดสำหรับการคำนวณจะถูกเก็บไว้ในหน่วยความจำVon Neumannยอมรับว่าแนวคิดหลักของคอมพิวเตอร์สมัยใหม่เกิดจากบทความนี้[ 65 ] เครื่อง Turing ยังคงเป็นวัตถุหลักของการศึกษาใน ทฤษฎีการคำนวณจนถึงทุกวันนี้ยกเว้นข้อจำกัดที่กำหนดโดยหน่วยความจำที่จำกัด คอมพิวเตอร์สมัยใหม่กล่าวได้ว่ามีความสมบูรณ์แบบ Turingซึ่งหมายความว่ามี ความสามารถในการดำเนินการ อัลกอริทึมเทียบเท่ากับเครื่อง Turing สากล

โปรแกรมที่จัดเก็บไว้

ชั้นวางสูงสามชั้นที่บรรจุแผงวงจรไฟฟ้า
ส่วนหนึ่งของเครื่องManchester Baby ที่ได้รับการประกอบขึ้นใหม่ ซึ่งเป็นคอมพิวเตอร์แบบเก็บข้อมูลโปรแกรมอิเล็กทรอนิกส์เครื่องแรก

เครื่องคำนวณรุ่นแรกๆ มีโปรแกรมคงที่ การเปลี่ยนฟังก์ชันต้องใช้การเดินสายใหม่และการจัดโครงสร้างเครื่องใหม่[ 53 ]แต่เมื่อมีการเสนอแนวคิดคอมพิวเตอร์แบบโปรแกรมจัดเก็บ สถานการณ์ก็เปลี่ยนไป คอมพิวเตอร์แบบโปรแกรมจัดเก็บได้รับการออกแบบให้มีชุดคำสั่งและสามารถจัดเก็บชุดคำสั่ง ( โปรแกรม ) ที่ระบุรายละเอียดการคำนวณไว้ ในหน่วยความจำได้ พื้นฐานทางทฤษฎีของคอมพิวเตอร์แบบโปรแกรมจัดเก็บนั้นวางรากฐานโดยอลัน ทัวริงในบทความปี 1936 ของเขา ในปี 1945 ทัวริงได้เข้าร่วมห้องปฏิบัติการฟิสิกส์แห่งชาติและเริ่มทำงานเกี่ยวกับการพัฒนาคอมพิวเตอร์ดิจิทัลแบบโปรแกรมจัดเก็บอิเล็กทรอนิกส์ รายงานปี 1945 ของเขาเรื่อง "เครื่องคำนวณอิเล็กทรอนิกส์ที่เสนอ" เป็นข้อกำหนดแรกสำหรับอุปกรณ์ดังกล่าว จอห์น ฟอน นอยมันน์ ที่มหาวิทยาลัยเพนซิลเวเนียยังได้เผยแพร่ร่างรายงานฉบับแรกเกี่ยวกับ EDVACในปี 1945 ด้วย [ 35 ]

Manchester Baby เป็น คอมพิวเตอร์แบบจัดเก็บโปรแกรมเครื่องแรกของโลกสร้างขึ้นที่มหาวิทยาลัยแมนเชสเตอร์ในประเทศอังกฤษโดยFrederic C. Williams , Tom KilburnและGeoff Tootillและรันโปรแกรมแรกเมื่อวันที่ 21 มิถุนายน พ.ศ. 2491 [ 66 ]ออกแบบมาเพื่อเป็นเครื่องทดสอบหลอดวิลเลียมส์ ซึ่ง เป็นอุปกรณ์จัดเก็บข้อมูลดิจิทัลแบบเข้าถึงแบบสุ่มเครื่องแรก[ 67 ]แม้ว่าคอมพิวเตอร์เครื่องนี้จะถูกอธิบายว่า "เล็กและดั้งเดิม" ในบทความย้อนหลังปี พ.ศ. 2541 แต่มันก็เป็นเครื่องที่ใช้งานได้เครื่องแรกที่มีองค์ประกอบที่จำเป็นทั้งหมดสำหรับคอมพิวเตอร์อิเล็กทรอนิกส์สมัยใหม่[ 68 ]ทันทีที่ Baby ได้แสดงให้เห็นถึงความเป็นไปได้ของการออกแบบ โครงการหนึ่งก็เริ่มต้นขึ้นที่มหาวิทยาลัยเพื่อพัฒนามันให้เป็นคอมพิวเตอร์ที่มีประโยชน์ในทางปฏิบัติ นั่นคือManchester Mark 1

Mark 1 กลายเป็นต้นแบบของFerranti Mark 1 อย่างรวดเร็ว ซึ่งเป็น คอมพิวเตอร์อเนกประสงค์เครื่องแรกของโลกที่วางจำหน่ายในเชิงพาณิชย์[ 69 ] Ferrantiได้สร้าง เครื่องนี้ขึ้น และส่งมอบให้กับมหาวิทยาลัยแมนเชสเตอร์ในเดือนกุมภาพันธ์ พ.ศ. 2494 มีการส่งมอบเครื่องรุ่นหลังนี้อย่างน้อยเจ็ดเครื่องระหว่างปี พ.ศ. 2496 ถึง พ.ศ. 2490 โดยหนึ่งในนั้นส่งไปยังห้อง ปฏิบัติการ Shellในอัมสเตอร์ดัม[ 70 ]ในเดือนตุลาคม พ.ศ. 2490 กรรมการของบริษัทจัดเลี้ยงของอังกฤษJ. Lyons & Companyตัดสินใจที่จะมีบทบาทอย่างแข็งขันในการส่งเสริมการพัฒนาคอมพิวเตอร์เชิงพาณิชย์ คอมพิวเตอร์ LEO I ของ Lyons ซึ่งจำลองมาจาก Cambridge EDSACปี พ.ศ. 2492 อย่างใกล้ชิด เริ่มใช้งานได้ในเดือนเมษายน พ.ศ. 2494 [ 71 ] และรัน งาน คอมพิวเตอร์สำนักงานประจำวัน ครั้ง แรกของโลก

ทรานซิสเตอร์

ทรานซิสเตอร์แบบไบโพลาร์จังก์ชัน (BJT)

แนวคิดของทรานซิสเตอร์แบบสนามไฟฟ้าได้รับการเสนอโดยJulius Edgar Lilienfeldในปี 1925 John BardeenและWalter Brattainขณะทำงานภายใต้William Shockleyที่Bell Labs ได้สร้าง ทรานซิสเตอร์ที่ใช้งานได้ตัวแรกคือทรานซิสเตอร์แบบจุดสัมผัสในปี 1947 ซึ่งตามมาด้วยทรานซิสเตอร์แบบไบโพลาร์จังก์ชัน ของ Shockley ในปี 1948 [ 72 ] [ 73 ]ตั้งแต่ปี 1955 เป็นต้นไป ทรานซิสเตอร์ได้เข้ามาแทนที่หลอดสุญญากาศในการออกแบบคอมพิวเตอร์ ทำให้เกิดคอมพิวเตอร์ "รุ่นที่สอง" เมื่อเทียบกับหลอดสุญญากาศ ทรานซิสเตอร์มีข้อดีหลายประการ ได้แก่ มีขนาดเล็กกว่า และใช้พลังงานน้อยกว่าหลอดสุญญากาศ จึงปล่อยความร้อนน้อยกว่าทรานซิสเตอร์แบบจังก์ชันมีความน่าเชื่อถือมากกว่าหลอดสุญญากาศมาก และมีอายุการใช้งานที่ยาวนานไม่จำกัด คอมพิวเตอร์ที่ใช้ทรานซิสเตอร์สามารถบรรจุวงจรตรรกะไบนารีได้หลายหมื่นวงจรในพื้นที่ที่ค่อนข้างกะทัดรัด อย่างไรก็ตาม ทรานซิสเตอร์แบบจังก์ชันในยุคแรกเป็นอุปกรณ์ที่มีขนาดค่อนข้างใหญ่และยากต่อการผลิตในปริมาณมากซึ่งจำกัดการใช้งานไว้เฉพาะในแอปพลิเคชันเฉพาะทางบางอย่าง เท่านั้น [ 74 ]

ที่มหาวิทยาลัยแมนเชสเตอร์ทีมงานภายใต้การนำของทอม คิลเบิร์นได้ออกแบบและสร้างเครื่องจักรโดยใช้ทรานซิสเตอร์ที่พัฒนาขึ้นใหม่แทนหลอดสุญญากาศ[ 75 ]คอมพิวเตอร์แบบทรานซิสเตอร์เครื่องแรกของพวกเขาและเป็นเครื่องแรกของโลก สามารถใช้งานได้ในปี 1953และรุ่นที่สองก็เสร็จสมบูรณ์ที่นั่นในเดือนเมษายน 1955 อย่างไรก็ตาม เครื่องจักรนี้ใช้หลอดสุญญากาศในการสร้างรูปคลื่นสัญญาณนาฬิกา 125 kHz และในวงจรเพื่ออ่านและเขียนลงในหน่วยความจำดรัม แม่เหล็ก ดังนั้นจึงไม่ใช่คอมพิวเตอร์แบบทรานซิสเตอร์โดยสมบูรณ์เครื่องแรก เกียรติยศนั้นเป็นของHarwell CADETในปี 1955 [ 76 ]ซึ่งสร้างโดยแผนกอิเล็กทรอนิกส์ของสถาบันวิจัยพลังงานปรมาณูที่Harwell [ 76 ] [ 77 ]

MOSFET (ทรานซิสเตอร์ MOS) แสดง ขั้วต่อ เกต (G), บอดี้ (B), ซอร์ส (S) และเดรน (D) โดยเกตถูกคั่นจากบอดี้ด้วยชั้นฉนวน (สีชมพู)

ทรานซิสเตอร์สนามแม่เหล็กโลหะออกไซด์ซิลิคอน (MOSFET) หรือที่รู้จักกันในชื่อทรานซิสเตอร์ MOS ถูกคิดค้นขึ้นที่ Bell Labs ระหว่างปี 1955 ถึง 1960 [ 78 ] [ 79 ] [ 80 ] [ 81 ] [ 82 ] [ 83 ]และเป็นทรานซิสเตอร์ขนาดกะทัดรัดตัวแรกที่สามารถย่อขนาดและผลิตได้ในปริมาณมากเพื่อการใช้งานที่หลากหลาย[ 74 ]ด้วย ความสามารถใน การปรับขนาดที่สูง [ 84 ]และการใช้พลังงานที่ต่ำกว่ามากและมีความหนาแน่นสูงกว่าทรานซิสเตอร์แบบไบโพลาร์จังก์ชัน[ 85 ] MOSFET ทำให้สามารถสร้างวงจรรวมที่มีความหนาแน่นสูงได้ [ 86 ] [ 87 ]นอกเหนือจากการประมวลผลข้อมูลแล้ว ยังทำให้สามารถใช้ทรานซิสเตอร์ MOS เป็น องค์ประกอบจัดเก็บ ข้อมูลเซลล์หน่วยความจำ ได้ ซึ่งนำไปสู่การพัฒนาหน่วยความจำเซมิ คอนดักเตอร์ MOS ซึ่งเข้ามาแทนที่หน่วยความจำแกนแม่เหล็กในคอมพิวเตอร์ รุ่นก่อนหน้า MOSFET นำไปสู่การปฏิวัติไมโครคอมพิวเตอร์ [ 88 ]และกลายเป็นแรงผลักดันเบื้องหลังการปฏิวัติคอมพิวเตอร์[ 89 ] [ 90 ] MOSFET เป็นทรานซิสเตอร์ที่ใช้กันอย่างแพร่หลายที่สุดในคอมพิวเตอร์[ 91 ] [ 92 ]และเป็นส่วนประกอบพื้นฐานของอิเล็กทรอนิกส์ดิจิทัล[ 93 ]

วงจรรวม

โดยทั่วไปแล้ว วงจรรวมจะถูกบรรจุในเคสพลาสติก โลหะ หรือเซรามิก เพื่อป้องกันวงจรรวมจากความเสียหายและเพื่อความสะดวกในการประกอบ

ความก้าวหน้าครั้งสำคัญถัดไปในด้านพลังการประมวลผลเกิดขึ้นพร้อมกับการกำเนิดของวงจรรวม (IC) แนวคิดของวงจรรวมได้รับการคิดค้นขึ้นครั้งแรกโดยนักวิทยาศาสตร์ด้านเรดาร์ที่ทำงานให้กับRoyal Radar Establishmentของกระทรวงกลาโหม Geoffrey WA Dummer Dummer ได้นำเสนอคำอธิบายสาธารณะครั้งแรกเกี่ยวกับวงจรรวมในการประชุมสัมมนาเรื่องความก้าวหน้าในส่วนประกอบอิเล็กทรอนิกส์คุณภาพสูงในวอชิงตัน ดี.ซี.เมื่อวันที่ 7 พฤษภาคม พ.ศ. 2495 [ 94 ]

วงจรรวม (IC) ที่ใช้งานได้จริงชุดแรกถูกคิดค้นโดยJack Kilbyที่Texas InstrumentsและRobert Noyceที่Fairchild Semiconductor [ 95 ] Kilbyบันทึกแนวคิดเริ่มต้นเกี่ยวกับวงจรรวมในเดือนกรกฎาคม พ.ศ. 2491 และสาธิตตัวอย่างวงจรรวมที่ใช้งานได้จริงชุดแรกได้สำเร็จในวันที่ 12 กันยายน พ.ศ. 2491 [ 96 ]ในคำขอสิทธิบัตรของเขาเมื่อวันที่ 6 กุมภาพันธ์ พ.ศ. 2492 Kilby อธิบายอุปกรณ์ใหม่ของเขาว่าเป็น "ตัววัสดุเซมิคอนดักเตอร์ ... ซึ่งส่วนประกอบทั้งหมดของวงจรอิเล็กทรอนิกส์ถูกรวมเข้าด้วยกันอย่างสมบูรณ์" [ 97 ] [ 98 ]อย่างไรก็ตาม สิ่งประดิษฐ์ของ Kilby เป็นวงจรรวมแบบไฮบ ริด (hybrid IC) มากกว่าจะเป็น ชิป วงจรรวมแบบโมโนลิธิก (IC) [ 99 ]วงจรรวมของ Kilby มีการเชื่อมต่อสายไฟภายนอก ซึ่งทำให้ยากต่อการผลิตจำนวนมาก[ 100 ]

นอกจากนี้ Noyce ยังคิดค้นวงจรรวม (IC) ของตัวเองขึ้นมาได้หลังจาก Kilby ครึ่งปี[ 101 ]สิ่งประดิษฐ์ของ Noyce เป็นชิป IC แบบโมโนลิธิกตัวแรกอย่างแท้จริง และแก้ปัญหาในทางปฏิบัติหลายอย่างที่ของ Kilby ทำไม่ได้[ 102 ] [ 100 ]ผลิตที่ Fairchild Semiconductor โดยทำจากซิลิคอนในขณะที่ชิปของ Kilby ทำจากเจอร์มาเนียมชิป IC แบบโมโนลิธิกของ Noyce ผลิตโดยใช้กระบวนการระนาบซึ่งพัฒนาโดยJean Hoerni เพื่อนร่วมงานของเขา ในช่วงต้นปี 1959 กระบวนการระนาบนี้อิงจาก งานของ Carl Froschและ Lincoln Derick เกี่ยวกับการเคลือบผิวเซมิคอนดักเตอร์ด้วยซิลิคอนไดออกไซด์[ 103 ] [ 104 ] [ 105 ] [ 106 ] [ 107 ] [ 108 ]

วงจรรวมแบบโมโนลิธิกสมัยใหม่ส่วนใหญ่เป็นวงจรรวม MOS ( โลหะ-ออกไซด์-เซมิคอนดักเตอร์ ) ที่สร้างจาก MOSFET (ทรานซิสเตอร์ MOS) [ 109 ]วงจรรวม MOS ทดลองรุ่นแรกสุดที่ผลิตขึ้นคือชิป 16 ทรานซิสเตอร์ที่สร้างโดย Fred Heiman และ Steven Hofstein ที่RCAในปี 1962 [ 110 ] ต่อมา General Microelectronicsได้แนะนำวงจรรวม MOS เชิงพาณิชย์ตัวแรกในปี 1964 [ 111 ]ซึ่งพัฒนาโดย Robert Norman [ 110 ]หลังจากการพัฒนา ทรานซิสเตอร์ MOS แบบ self-aligned gate (silicon-gate) โดย Robert Kerwin, Donald Klein และ John Sarace ที่ Bell Labs ในปี 1967 วงจรรวม MOS แบบsilicon-gateตัวแรก ที่มี self-aligned gateได้รับการพัฒนาโดยFederico Fagginที่ Fairchild Semiconductor ในปี 1968 [ 112 ]ตั้งแต่นั้นมา MOSFET ก็กลายเป็นส่วนประกอบอุปกรณ์ที่สำคัญที่สุดในวงจรรวมสมัยใหม่[ 109 ]

ภาพถ่าย ชิ้นส่วนของ ไมโครโปรเซสเซอร์ MOS 6502ในช่วงต้นทศวรรษ 1970 ซึ่งรวมทรานซิสเตอร์ 3500 ตัวไว้บนชิปเดียว

การพัฒนาวงจรรวม MOS นำไปสู่การประดิษฐ์ไมโครโปรเซสเซอร์ [ 113 ] [ 114 ] และเป็นสัญญาณของการใช้งานคอมพิวเตอร์เชิงพาณิชย์และส่วนบุคคลอย่างแพร่หลาย แม้ว่าประเด็นที่ว่าอุปกรณ์ใดเป็นไมโครโปรเซสเซอร์ตัวแรก นั้นยังเป็นที่ถกเถียงกันอยู่ ส่วนหนึ่งเป็นเพราะขาดข้อตกลงเกี่ยวกับคำจำกัดความที่แน่นอนของคำว่า "ไมโครโปรเซสเซอร์" แต่โดยทั่วไปแล้วเป็นที่ยอมรับกันว่าไมโครโปรเซสเซอร์แบบชิปเดี่ยวตัวแรกคือIntel 4004 [ 115 ]ซึ่งออกแบบและสร้างขึ้นโดย Federico Faggin ด้วยเทคโนโลยี MOS IC แบบซิลิคอนเกต[ 113 ]ร่วมกับTed Hoff , Masatoshi ShimaและStanley Mazorที่Intel [ b ] [ 117 ]ในช่วงต้นทศวรรษ 1970 เทคโนโลยี MOS IC ทำให้สามารถรวมทรานซิสเตอร์มากกว่า 10,000 ตัวไว้ในชิปเดียวได้[ 87 ]

ระบบบนชิป (SoC) คือคอมพิวเตอร์ที่สมบูรณ์แบบบนไมโครชิป (หรือชิป) ขนาดเท่าเหรียญ[ 118 ]อาจมีหรือไม่มีRAMและหน่วยความจำแฟลช แบบรวมอยู่ด้วย หากไม่รวมอยู่ด้วย โดยปกติแล้ว RAM จะถูกวางไว้ด้านบน (เรียกว่าPackage on package ) หรือด้านล่าง (ด้านตรงข้ามของแผงวงจร ) ของ SoC และหน่วยความจำแฟลชมักจะถูกวางไว้ติดกับ SoC การทำเช่นนี้เพื่อปรับปรุงความเร็วในการถ่ายโอนข้อมูล เนื่องจากสัญญาณข้อมูลไม่จำเป็นต้องเดินทางเป็นระยะทางไกล นับตั้งแต่ ENIAC ในปี 1945 คอมพิวเตอร์ได้พัฒนาไปอย่างมาก โดย SoC สมัยใหม่ (เช่น Snapdragon 865) มีขนาดเท่าเหรียญ แต่มีประสิทธิภาพมากกว่า ENIAC หลายแสนเท่า รวมทรานซิสเตอร์หลายพันล้านตัว และใช้พลังงานเพียงไม่กี่วัตต์

คอมพิวเตอร์พกพา

คอมพิวเตอร์พกพารุ่นแรกๆมีน้ำหนักมากและต้องใช้ไฟจากแหล่งจ่ายไฟหลักIBM 5100 ที่มีน้ำหนัก 50 ปอนด์ (23 กิโลกรัม) เป็นตัวอย่างแรกๆ คอมพิวเตอร์พกพารุ่นต่อมา เช่นOsborne 1และCompaq Portableมีน้ำหนักเบากว่ามาก แต่ก็ยังต้องเสียบปลั๊กอยู่ดี คอมพิวเตอร์แล็ปท็อปรุ่นแรกๆ เช่นGrid Compassได้ขจัดข้อกำหนดนี้โดยการใช้แบตเตอรี่ และด้วยการย่อขนาดของทรัพยากรการประมวลผลอย่างต่อเนื่องและความก้าวหน้าในด้านอายุการใช้งานของแบตเตอรี่แบบพกพา คอมพิวเตอร์พกพาจึงได้รับความนิยมมากขึ้นในช่วงทศวรรษ 2000 [ 119 ]การพัฒนาเหล่านี้ยังช่วยให้ผู้ผลิตสามารถรวมทรัพยากรการประมวลผลเข้ากับโทรศัพท์มือถือได้ในช่วงต้นทศวรรษ 2000

สมาร์ทโฟนและแท็บเล็ตเหล่านี้ทำงานบนระบบปฏิบัติการที่หลากหลาย และเมื่อเร็ว ๆ นี้ได้กลายเป็นอุปกรณ์ประมวลผลหลักในตลาด[ 120 ]อุปกรณ์เหล่านี้ขับเคลื่อนด้วยSystem on a Chip (SoCs) ซึ่งเป็นคอมพิวเตอร์ที่สมบูรณ์บนไมโครชิปขนาดเท่าเหรียญ[ 118 ]

ประเภท

คอมพิวเตอร์สามารถจำแนกได้หลายวิธี ดังนี้:

โดยสถาปัตยกรรม

จำแนกตามขนาด รูปทรง และวัตถุประสงค์

คอมพิวเตอร์ที่ไม่ธรรมดา

คอมพิวเตอร์ไม่จำเป็นต้องเป็นอุปกรณ์อิเล็กทรอนิกส์หรือแม้แต่มีโปรเซสเซอร์แรมหรือแม้แต่ฮาร์ดดิสก์แม้ว่าการใช้คำว่า "คอมพิวเตอร์" ที่นิยมใช้กันทั่วไปจะมีความหมายเหมือนกับคอมพิวเตอร์ส่วนบุคคลอิเล็กทรอนิกส์[ c ] แต่ คำจำกัดความสมัยใหม่ทั่วไปของคอมพิวเตอร์คือ: " อุปกรณ์ที่คำนวณโดยเฉพาะอย่างยิ่งเครื่องจักรอิเล็กทรอนิกส์ที่ตั้งโปรแกรมได้ [โดยปกติ] ซึ่งดำเนินการทางคณิตศาสตร์หรือตรรกะความเร็วสูง หรือที่รวบรวม จัดเก็บ เชื่อมโยง หรือประมวลผลข้อมูลในรูปแบบอื่น" [ 125 ]ตามคำจำกัดความนี้ อุปกรณ์ใดๆ ที่ประมวลผลข้อมูลก็ถือว่าเป็นคอมพิวเตอร์

ฮาร์ดแวร์

วิดีโอสาธิตส่วนประกอบมาตรฐานของคอมพิวเตอร์ "ทรงเพรียวบาง"

คำว่าฮาร์ดแวร์ครอบคลุมชิ้นส่วนทางกายภาพที่จับต้องได้ทั้งหมดของคอมพิวเตอร์วงจรชิปคอมพิวเตอร์ การ์ดจอ การ์ดเสียง หน่วยความจำ (RAM) เมนบอร์ด จอแสดงผล แหล่งจ่ายไฟ สายเคเบิล แป้นพิมพ์ เครื่องพิมพ์ และเมาส์คอมพิวเตอร์ล้วนเป็นฮาร์ดแวร์ทั้งสิ้น

ประวัติศาสตร์ของฮาร์ดแวร์คอมพิวเตอร์

รุ่นแรก(เชิงกล/ไฟฟ้าเชิงกล)เครื่องคิดเลขเครื่องคำนวณของปาสคาล , เครื่องวัดเลขคณิต , เครื่องคำนวณผลต่าง , เครื่องวิเคราะห์ของเกวโด
อุปกรณ์ที่ตั้งโปรแกรมได้เครื่องทอผ้าจาการ์ด , เครื่องมือวิเคราะห์ , IBM ASCC/Harvard Mark I , Harvard Mark II , IBM SSEC , Z1 , Z2 , Z3
รุ่นที่สอง(หลอดสุญญากาศ)เครื่องคิดเลขคอมพิวเตอร์ Atanasoff–Berry , IBM 604 , UNIVAC 60 , UNIVAC 120
อุปกรณ์ที่ตั้งโปรแกรมได้Colossus , ENIAC , Manchester Baby , EDSAC , แมนเชสเตอร์ มาร์ค 1 , เฟอร์รันติ เพกาซัส , เฟอร์รันติ เมอร์คิวรี , CSIRAC , EDVAC , UNIVAC I , IBM 701 , IBM 702 , IBM 650 , Z22
รุ่นที่สาม( ทรานซิสเตอร์ แบบแยกชิ้น และ วงจรรวม SSI, MSI, LSI )เมนเฟรมIBM 7090 , IBM 7080 , IBM System/360 , BUNCH
มินิคอมพิวเตอร์HP 2116A , IBM System/32 , IBM System/36 , LINC , PDP-8 , PDP-11
คอมพิวเตอร์ตั้งโต๊ะเอชพี 9100
รุ่นที่สี่( วงจรรวม VLSI )มินิคอมพิวเตอร์VAX , IBM AS/400
ไมโครคอมพิวเตอร์4 บิตอินเทล 4004 , อินเทล 4040
ไมโครคอมพิวเตอร์8 บิตIntel 8008 , Intel 8080 , Motorola 6800 , Motorola 6809 , MOS Technology 6502 , Zilog Z80
ไมโครคอมพิวเตอร์16 บิตIntel 8088 , Zilog Z8000 , WDC 65816/65802
ไมโครคอมพิวเตอร์32 บิตอินเทล 80386 , เพนเทียม , โมโตโรลา 68000 , อาร์เอ็ม
ไมโครคอมพิวเตอร์64 บิต[ d ]อัลฟา , MIPS , PA-RISC , PowerPC , SPARC , x86-64 , ARMv8-A
คอมพิวเตอร์ฝังตัวอินเทล 8048 , อินเทล 8051
คอมพิวเตอร์ส่วนบุคคลคอมพิวเตอร์ตั้งโต๊ะ , คอมพิวเตอร์บ้าน , คอมพิวเตอร์แล็ปท็อป, อุปกรณ์ผู้ช่วยดิจิทัลส่วนบุคคล (PDA), คอมพิวเตอร์พกพา , แท็บเล็ตพีซี , คอมพิวเตอร์แบบสวมใส่ได้
ทฤษฎี/การทดลองคอมพิวเตอร์ควอนตัมไอบีเอ็ม คิว ซิสเต็ม วัน
คอมพิวเตอร์เคมี
การคำนวณด้วยดีเอ็นเอ
คอมพิวเตอร์เชิงแสง
คอมพิวเตอร์ที่ใช้สปินโทรนิกส์
คอมพิวเตอร์ชีวภาพ/ออร์แกนิก

หัวข้อฮาร์ดแวร์อื่นๆ

อุปกรณ์ต่อพ่วง ( อินพุต/เอาต์พุต )ป้อนข้อมูลเมาส์ , คีย์บอร์ด , จอยสติ๊ก , เครื่องสแกนภาพ , เว็บแคม , แท็บเล็ตสำหรับงานกราฟิก , ไมโครโฟน
เอาต์พุตจอภาพ , เครื่องพิมพ์ , ลำโพง
ทั้งคู่ฟลอปปี้ดิสก์ไดรฟ์, ฮาร์ดดิสก์ไดรฟ์ , ออปติคัลดิสก์ไดรฟ์, โทรพิมพ์
คอมพิวเตอร์บัสระยะสั้นRS-232 , SCSI , PCI , USB
ระยะไกล ( เครือข่ายคอมพิวเตอร์ )อีเธอร์เน็ต , ATM , FDDI

คอมพิวเตอร์อเนกประสงค์มีส่วนประกอบหลักสี่ส่วน ได้แก่หน่วยคำนวณและตรรกะ (ALU) หน่วยควบคุม หน่วยความจำและอุปกรณ์รับเข้าและส่งออก (เรียกรวมกันว่า I/O) ส่วนประกอบเหล่านี้เชื่อมต่อกันด้วยบัสซึ่งมักทำจากกลุ่มสายไฟภายในแต่ละส่วนประกอบเหล่านี้มีวงจรไฟฟ้า ขนาดเล็กหลายพันถึงหลายล้านล้านวงจร ซึ่งสามารถเปิดหรือปิดได้โดยใช้สวิตช์อิเล็กทรอนิกส์แต่ละวงจรแทนบิต (เลขฐานสอง) ของข้อมูล ดังนั้นเมื่อวงจรเปิดจะแสดงค่า "1" และเมื่อปิดจะแสดงค่า "0" (ในการแสดงตรรกะแบบบวก) วงจรเหล่านี้ถูกจัดเรียงในเกตตรรกะเพื่อให้วงจรหนึ่งหรือมากกว่านั้นสามารถควบคุมสถานะของวงจรอื่น ๆ ได้หนึ่งหรือมากกว่านั้น

อุปกรณ์ป้อนข้อมูล

อุปกรณ์ป้อนข้อมูลคือเครื่องมือที่ใช้ควบคุมการทำงานของคอมพิวเตอร์และป้อนข้อมูลให้กับคอมพิวเตอร์ ตัวอย่างเช่น:

อุปกรณ์เอาต์พุต

อุปกรณ์แสดงผลคือวิธีการที่คอมพิวเตอร์ใช้ในการแสดงผลการคำนวณในรูปแบบที่มนุษย์สามารถเข้าถึงได้ ตัวอย่างเช่น:

หน่วยควบคุม

แผนภาพแสดงวิธีการถอดรหัสคำสั่งเฉพาะของสถาปัตยกรรม MIPSโดยระบบควบคุม

หน่วยควบคุม (มักเรียกว่าระบบควบคุมหรือตัวควบคุมส่วนกลาง) ทำหน้าที่จัดการส่วนประกอบต่างๆ ของคอมพิวเตอร์ โดยจะอ่านและตีความ (ถอดรหัส) คำสั่งโปรแกรม แปลงคำสั่งเหล่านั้นให้เป็นสัญญาณควบคุมที่กระตุ้นส่วนอื่นๆ ของคอมพิวเตอร์[ e ]ระบบควบคุมในคอมพิวเตอร์ขั้นสูงอาจเปลี่ยนแปลงลำดับการทำงานของคำสั่งบางอย่างเพื่อปรับปรุงประสิทธิภาพ

ส่วนประกอบสำคัญที่พบได้ใน CPU ทุกตัวคือตัวนับโปรแกรมซึ่งเป็นเซลล์หน่วยความจำพิเศษ ( รีจิสเตอร์ ) ที่คอยติดตามว่าคำสั่งถัดไปจะถูกอ่านจากตำแหน่งใดในหน่วยความจำ[ f ]

หน้าที่ของระบบควบคุมมีดังต่อไปนี้—นี่เป็นคำอธิบายแบบย่อ และบางขั้นตอนอาจดำเนินการพร้อมกันหรือในลำดับที่แตกต่างกัน ขึ้นอยู่กับประเภทของ CPU:

  1. อ่านรหัสสำหรับคำสั่งถัดไปจากเซลล์ที่ระบุโดยตัวนับโปรแกรม
  2. ถอดรหัสตัวเลขของคำสั่งนั้นให้เป็นชุดคำสั่งหรือสัญญาณสำหรับแต่ละระบบอื่นๆ
  3. เพิ่มค่าตัวนับโปรแกรมให้ชี้ไปยังคำสั่งถัดไป
  4. อ่านข้อมูลใดๆ ก็ตามที่คำสั่งต้องการจากเซลล์ในหน่วยความจำ (หรืออาจจากอุปกรณ์ป้อนข้อมูล) ตำแหน่งของข้อมูลที่ต้องการนี้มักจะถูกเก็บไว้ภายในรหัสคำสั่ง
  5. ให้ข้อมูลที่จำเป็นแก่ ALU หรือรีจิสเตอร์
  6. หากคำสั่งนั้นต้องการหน่วยประมวลผลทางคณิตศาสตร์และตรรกะ (ALU) หรือฮาร์ดแวร์เฉพาะทางในการดำเนินการ ให้สั่งการฮาร์ดแวร์นั้นให้ดำเนินการตามที่ร้องขอ
  7. เขียนผลลัพธ์จาก ALU กลับไปยังตำแหน่งหน่วยความจำหรือรีจิสเตอร์ หรืออาจจะเป็นอุปกรณ์เอาต์พุตก็ได้
  8. กลับไปที่ขั้นตอน (1)

ในเชิงแนวคิด เนื่องจากตัวนับโปรแกรมเป็นเพียงชุดเซลล์หน่วยความจำอีกชุดหนึ่ง จึงสามารถเปลี่ยนแปลงได้ด้วยการคำนวณที่ทำใน ALU การเพิ่ม 100 ให้กับตัวนับโปรแกรมจะทำให้คำสั่งถัดไปถูกอ่านจากตำแหน่งที่อยู่ห่างออกไป 100 ตำแหน่งในโปรแกรม คำสั่งที่แก้ไขตัวนับโปรแกรมมักเรียกว่า "การกระโดด" และช่วยให้เกิดลูป (คำสั่งที่คอมพิวเตอร์ทำซ้ำ) และมักทำให้เกิดการดำเนินการคำสั่งแบบมีเงื่อนไข (ทั้งสองเป็นตัวอย่างของการควบคุมการไหลของโปรแกรม )

ลำดับการทำงานที่หน่วยควบคุมดำเนินการเพื่อประมวลผลคำสั่งนั้นคล้ายคลึงกับโปรแกรมคอมพิวเตอร์ขนาดสั้น และในความเป็นจริง ในการออกแบบ CPU ที่ซับซ้อนกว่านั้น ยังมีคอมพิวเตอร์ขนาดเล็กกว่าอีกตัวหนึ่งที่เรียกว่าไมโครซีเควนเซอร์ซึ่งรัน โปรแกรม ไมโครโค้ดที่ทำให้เหตุการณ์ทั้งหมดเหล่านี้เกิดขึ้น

หน่วยประมวลผลกลาง (CPU)

หน่วยควบคุม หน่วยคำนวณและตรรกะ (ALU) และรีจิสเตอร์ รวมกันเรียกว่าหน่วยประมวลผลกลาง (CPU) CPU รุ่นแรกๆ ประกอบด้วยส่วนประกอบแยกกันหลายชิ้น ตั้งแต่ทศวรรษ 1970 เป็นต้นมา CPU มักถูกสร้างขึ้นบน ชิป วงจรรวม MOS ชิ้นเดียว ที่เรียกว่าไมโครโปรเซสเซอร์

หน่วยคำนวณและตรรกะ (ALU)

ALU สามารถดำเนินการได้สองประเภท ได้แก่ การคำนวณทางคณิตศาสตร์และตรรกะ[ 126 ]ชุดการดำเนินการทางคณิตศาสตร์ที่ ALU เฉพาะรองรับอาจจำกัดเฉพาะการบวกและการลบ หรืออาจรวมถึงการคูณ การหาร ฟังก์ชัน ตรีโกณมิติเช่น ไซน์ โคไซน์ เป็นต้น และรากที่สองบางตัวสามารถดำเนินการได้เฉพาะกับจำนวนเต็ม ( จำนวนเต็ม ) ในขณะที่บางตัวใช้จุดลอยตัวเพื่อแสดงจำนวนจริงแม้ว่าจะมีความแม่นยำจำกัดก็ตาม อย่างไรก็ตาม คอมพิวเตอร์ใดๆ ที่สามารถดำเนินการได้แม้เพียงการดำเนินการที่ง่ายที่สุด ก็สามารถตั้งโปรแกรมให้แบ่งการดำเนินการที่ซับซ้อนกว่าออกเป็นขั้นตอนง่ายๆ ที่สามารถทำได้ ดังนั้น คอมพิวเตอร์ใดๆ ก็สามารถตั้งโปรแกรมให้ดำเนินการทางคณิตศาสตร์ใดๆ ก็ได้ แม้ว่าจะใช้เวลานานขึ้นหาก ALU ของมันไม่รองรับการดำเนินการนั้นโดยตรง ALU อาจเปรียบเทียบตัวเลขและส่งคืนค่าความจริงแบบบูลีน (จริงหรือเท็จ) ขึ้นอยู่กับว่าตัวเลขหนึ่งเท่ากับ มากกว่า หรือน้อยกว่าอีกตัวหนึ่ง ("64 มากกว่า 65 หรือไม่?") การดำเนินการทางตรรกะเกี่ยวข้องกับตรรกะบูลีนได้แก่AND , OR , XORและNOTซึ่งมีประโยชน์สำหรับการสร้างคำสั่งเงื่อนไข ที่ซับซ้อน และการประมวลผลตรรกะบูลี

คอมพิวเตอร์ แบบซูเปอร์สเกลาร์อาจมี ALU หลายตัว ทำให้สามารถประมวลผลคำสั่งหลายคำสั่งพร้อมกันได้[ 127 ]โปรเซสเซอร์กราฟิกและคอมพิวเตอร์ที่มี คุณสมบัติ SIMDและMIMDมักจะมี ALU ที่สามารถคำนวณเลขคณิตบนเวกเตอร์และเมทริกซ์ได้

หน่วยความจำ

หน่วยความจำแบบแกนแม่เหล็ก (ที่ใช้แกนแม่เหล็ก ) เป็นหน่วยความจำที่ได้รับความนิยมมากที่สุดในคอมพิวเตอร์ในช่วงทศวรรษ 1960 จนกระทั่งถูกแทนที่ด้วยหน่วยความจำแบบเซมิคอนดักเตอร์ (ที่ใช้ เซลล์หน่วยความจำ MOS )

หน่วยความจำของคอมพิวเตอร์สามารถมองได้ว่าเป็นรายการของเซลล์ที่สามารถใส่หรืออ่านตัวเลขได้ แต่ละเซลล์มี "ที่อยู่" ที่เป็นตัวเลขและสามารถเก็บตัวเลขได้เพียงตัวเดียว คอมพิวเตอร์สามารถรับคำสั่งให้ "ใส่ตัวเลข 123 ลงในเซลล์หมายเลข 1357" หรือ "บวกตัวเลขที่อยู่ในเซลล์ 1357 กับตัวเลขที่อยู่ในเซลล์ 2468 แล้วใส่คำตอบลงในเซลล์ 1595" ข้อมูลที่เก็บไว้ในหน่วยความจำอาจแทนอะไรก็ได้ ไม่ว่าจะเป็นตัวอักษร ตัวเลข หรือแม้แต่คำสั่งคอมพิวเตอร์ก็สามารถใส่ลงในหน่วยความจำได้อย่างง่ายดาย เนื่องจาก CPU ไม่แยกแยะความแตกต่างระหว่างข้อมูลประเภทต่างๆ ดังนั้นจึงเป็นหน้าที่ของซอฟต์แวร์ที่จะให้ความหมายแก่สิ่งที่หน่วยความจำมองว่าเป็นเพียงชุดตัวเลข

ในคอมพิวเตอร์สมัยใหม่เกือบทั้งหมดเซลล์หน่วยความจำ แต่ละเซลล์ ถูกตั้งค่าให้จัดเก็บเลขฐานสองเป็นกลุ่มละแปดบิต (เรียกว่าไบต์ ) แต่ละไบต์สามารถแทนตัวเลขได้ 2⁵⁶ ตัว (2⁸ = 2⁵⁶) ตั้งแต่ 0 ถึง 255 หรือ -128 ถึง +127 ในการจัดเก็บตัวเลขที่ใหญ่กว่านั้น อาจใช้ไบต์หลายตัวติดกัน (โดยทั่วไปคือสอง สี่ หรือแปดตัว) เมื่อต้องการใช้ตัวเลขติดลบ มักจะจัดเก็บใน รูปแบบเลข ฐานสองส่วนเติมเต็ม (two's complement ) การจัดเรียงแบบอื่นก็เป็นไปได้ แต่โดยทั่วไปจะไม่พบเห็นนอกเหนือจากแอปพลิเคชันเฉพาะทางหรือบริบททางประวัติศาสตร์ คอมพิวเตอร์สามารถจัดเก็บข้อมูลทุกประเภทในหน่วยความจำได้ หากสามารถแทนด้วยตัวเลขได้ คอมพิวเตอร์สมัยใหม่มีหน่วยความจำหลายพันล้านหรือแม้กระทั่งหลายล้านล้านไบต์

ซีพียูประกอบด้วยชุดเซลล์หน่วยความจำพิเศษที่เรียกว่ารีจิสเตอร์ซึ่งสามารถอ่านและเขียนข้อมูลได้เร็วกว่าหน่วยความจำหลักมาก โดยทั่วไปจะมีรีจิสเตอร์อยู่ระหว่างสองถึงหนึ่งร้อยตัว ขึ้นอยู่กับประเภทของซีพียู รีจิสเตอร์ใช้สำหรับเก็บข้อมูลที่จำเป็นต้องใช้บ่อยที่สุด เพื่อหลีกเลี่ยงการเข้าถึงหน่วยความจำหลักทุกครั้งที่ต้องการเข้าถึงข้อมูล เนื่องจากมีการประมวลผลข้อมูลอยู่ตลอดเวลา การลดความจำเป็นในการเข้าถึงหน่วยความจำหลัก (ซึ่งมักจะช้ากว่าหน่วยประมวลผลทางคณิตศาสตร์และควบคุม) จึงช่วยเพิ่มความเร็วของคอมพิวเตอร์ได้อย่างมาก

หน่วยความจำหลักของคอมพิวเตอร์มีสองประเภทหลักๆ ดังนี้:

หน่วยความจำ RAM สามารถอ่านและเขียนได้ทุกเมื่อที่ CPU สั่งการ แต่หน่วยความจำ ROM นั้นมีข้อมูลและซอฟต์แวร์ที่โหลดไว้ล่วงหน้าซึ่งจะไม่เปลี่ยนแปลง ดังนั้น CPU จึงสามารถอ่านข้อมูลจาก ROM ได้เท่านั้น โดยทั่วไปแล้ว ROM จะใช้สำหรับจัดเก็บคำสั่งเริ่มต้นการทำงานของคอมพิวเตอร์ โดยทั่วไปแล้ว เนื้อหาใน RAM จะถูกลบเมื่อปิดเครื่องคอมพิวเตอร์ แต่ ROM จะเก็บข้อมูลไว้ได้ตลอดไป ในพีซี ROM จะมีโปรแกรมพิเศษที่เรียกว่าBIOS ซึ่งทำหน้าที่ควบคุมการโหลด ระบบปฏิบัติการของคอมพิวเตอร์จากฮาร์ดดิสก์ไดรฟ์ไปยัง RAM ทุกครั้งที่เปิดเครื่องหรือรีเซ็ตคอมพิวเตอร์ ในคอมพิวเตอร์ฝังตัวซึ่งมักไม่มีดิสก์ไดรฟ์ ซอฟต์แวร์ที่จำเป็นทั้งหมดอาจถูกจัดเก็บไว้ใน ROM ซอฟต์แวร์ที่จัดเก็บใน ROM มักเรียกว่าเฟิร์มแวร์เพราะโดยหลักการแล้วมันคล้ายกับฮาร์ดแวร์มากกว่าซอฟต์แวร์ หน่วยความจำแฟลช ทำให้ความแตกต่างระหว่าง ROM และ RAM คลุมเครือ เนื่องจากมันเก็บข้อมูลไว้ได้เมื่อปิดเครื่อง แต่ก็สามารถเขียนซ้ำได้เช่นกัน โดยทั่วไปแล้วมันจะช้ากว่า ROM และ RAM ทั่วไปมาก ดังนั้นการใช้งานจึงจำกัดอยู่เฉพาะแอปพลิเคชัน ที่ความเร็วสูงไม่จำเป็น [ g ]

ในคอมพิวเตอร์ที่ซับซ้อนกว่านั้น อาจมี หน่วยความจำแคช RAM อย่างน้อยหนึ่งหน่วยซึ่งทำงานช้ากว่ารีจิสเตอร์ แต่เร็วกว่าหน่วยความจำหลัก โดยทั่วไปแล้ว คอมพิวเตอร์ที่มีแคชประเภทนี้ได้รับการออกแบบให้ย้ายข้อมูลที่จำเป็นบ่อยๆ ไปยังแคชโดยอัตโนมัติ ซึ่งมักไม่ต้องมีการแทรกแซงใดๆ จากโปรแกรมเมอร์

อินพุต/เอาต์พุต (I/O)

ฮาร์ดดิสก์ไดรฟ์เป็นอุปกรณ์จัดเก็บข้อมูลทั่วไปที่ใช้กับคอมพิวเตอร์

อินพุต/เอาต์พุต (I/O) คือวิธีการที่คอมพิวเตอร์แลกเปลี่ยนข้อมูลกับโลกภายนอก[ 129 ]อุปกรณ์ที่ให้ข้อมูลเข้าหรือข้อมูลออกแก่คอมพิวเตอร์เรียกว่าอุปกรณ์ต่อพ่วง[ 130 ]ในคอมพิวเตอร์ส่วนบุคคลทั่วไป อุปกรณ์ต่อพ่วงประกอบด้วยอุปกรณ์ป้อนข้อมูล เช่น แป้นพิมพ์และเมาส์และอุปกรณ์แสดงผล เช่นจอแสดงผลและเครื่องพิมพ์ฮาร์ดดิสก์ไดรฟ์ ฟลอป ปี้ดิสก์ไดรฟ์ และออปติคัลดิสก์ไดรฟ์ทำหน้าที่เป็นทั้งอุปกรณ์ป้อนข้อมูลและอุปกรณ์แสดงผลเครือข่ายคอมพิวเตอร์เป็นอีกรูปแบบหนึ่งของ I/O อุปกรณ์ I/O มักเป็นคอมพิวเตอร์ที่ซับซ้อนในตัวของมันเอง โดยมี CPU และหน่วยความจำของตัวเองหน่วยประมวลผลกราฟิกอาจมีคอมพิวเตอร์ขนาดเล็กมากกว่าห้าสิบเครื่องที่ทำการคำนวณที่จำเป็นในการแสดงกราฟิก 3 มิติคอมพิวเตอร์เดสก์ท็อปสมัยใหม่มีคอมพิวเตอร์ขนาดเล็กจำนวนมากที่ช่วย CPU หลักในการทำ I/O จอแสดงผลแบบแบนรุ่นปี 2016 มีวงจรคอมพิวเตอร์ของตัวเอง

การทำงานหลายอย่างพร้อมกัน

แม้ว่าคอมพิวเตอร์อาจถูกมองว่ากำลังทำงานโปรแกรมขนาดใหญ่โปรแกรมเดียวที่เก็บไว้ในหน่วยความจำหลัก แต่ในบางระบบจำเป็นต้องทำให้ดูเหมือนว่ากำลังทำงานหลายโปรแกรมพร้อมกัน ซึ่งทำได้โดยการทำงานแบบมัลติทาสกิ้ง กล่าวคือ การทำให้คอมพิวเตอร์สลับไปมาระหว่างการทำงานแต่ละโปรแกรมอย่างรวดเร็ว[ 131 ]

วิธีหนึ่งในการทำเช่นนี้คือการใช้สัญญาณพิเศษที่เรียกว่าการขัดจังหวะซึ่งสามารถทำให้คอมพิวเตอร์หยุดการทำงานของคำสั่งที่กำลังดำเนินการอยู่เป็นระยะ และทำอย่างอื่นแทน โดยการจดจำตำแหน่งที่กำลังดำเนินการอยู่ก่อนการขัดจังหวะ คอมพิวเตอร์สามารถกลับไปทำงานนั้นได้ในภายหลัง หากมีหลายโปรแกรมทำงาน "ในเวลาเดียวกัน" ตัวสร้างการขัดจังหวะอาจทำให้เกิดการขัดจังหวะหลายร้อยครั้งต่อวินาที ทำให้เกิดการสลับโปรแกรมทุกครั้ง เนื่องจากคอมพิวเตอร์สมัยใหม่โดยทั่วไปจะประมวลผลคำสั่งได้เร็วกว่าการรับรู้ของมนุษย์หลายเท่า จึงอาจดูเหมือนว่ามีหลายโปรแกรมทำงานพร้อมกัน แม้ว่าจะมีเพียงโปรแกรมเดียวที่กำลังทำงานในแต่ละช่วงเวลา วิธีการทำงานหลายอย่างพร้อมกันนี้บางครั้งเรียกว่า "การแบ่งเวลา" เนื่องจากแต่ละโปรแกรมจะได้รับการจัดสรร "ส่วน" ของเวลาตามลำดับ[ 132 ]

ก่อนยุคคอมพิวเตอร์ราคาประหยัด การใช้งานมัลติทาสกิ้งหลักๆ คือการอนุญาตให้หลายคนใช้คอมพิวเตอร์เครื่องเดียวกันได้ ดูเหมือนว่าการทำงานมัลติทาสกิ้งจะทำให้คอมพิวเตอร์ที่สลับไปมาระหว่างหลายโปรแกรมทำงานช้าลง โดยแปรผันตรงกับจำนวนโปรแกรมที่กำลังทำงานอยู่ แต่โปรแกรมส่วนใหญ่ใช้เวลาส่วนใหญ่ในการรออุปกรณ์อินพุต/เอาต์พุตที่ทำงานช้าให้ทำงานให้เสร็จ หากโปรแกรมกำลังรอให้ผู้ใช้คลิกเมาส์หรือกดปุ่มบนแป้นพิมพ์ โปรแกรมนั้นจะไม่ใช้เวลาทำงานจนกว่าเหตุการณ์ที่รออยู่จะเกิดขึ้น ซึ่งจะทำให้มีเวลาเหลือสำหรับโปรแกรมอื่นๆ ในการทำงาน ทำให้สามารถเรียกใช้หลายโปรแกรมพร้อมกันได้โดยไม่สูญเสียความเร็วจนรับไม่ได้

การประมวลผลแบบมัลติโปรเซสซิ่ง

บริษัท Crayออกแบบซูเปอร์คอมพิวเตอร์หลายเครื่องที่ใช้การประมวลผลแบบมัลติโปรเซสซิ่งอย่างหนัก

คอมพิวเตอร์บางเครื่องได้รับการออกแบบให้กระจายงานไปยังซีพียูหลายตัวในรูปแบบการประมวลผลแบบมัลติโปรเซสซิ่ง ซึ่งเป็นเทคนิคที่เคยใช้เฉพาะในเครื่องขนาดใหญ่และทรงพลัง เช่นซูเปอร์คอมพิวเตอร์เมนเฟรมคอมพิวเตอร์และเซิร์ฟเวอร์ เท่านั้น ปัจจุบันคอมพิวเตอร์ส่วนบุคคลและแล็ปท็อป แบบมัลติโปรเซสซิ่งและมัลติคอร์ (ซีพียูหลายตัวบนวงจรรวมเดียว) มีวางจำหน่ายอย่างแพร่หลาย และกำลังถูกนำไปใช้ในตลาดระดับล่างมากขึ้นเรื่อยๆ

โดยเฉพาะอย่างยิ่ง ซูเปอร์คอมพิวเตอร์มักมีสถาปัตยกรรมที่เป็นเอกลักษณ์เฉพาะตัว ซึ่งแตกต่างอย่างมากจากสถาปัตยกรรมโปรแกรมจัดเก็บพื้นฐานและจากคอมพิวเตอร์ทั่วไป[ h ]โดยมักมีซีพียูหลายพันตัว การเชื่อมต่อความเร็วสูงที่ปรับแต่งเอง และฮาร์ดแวร์ประมวลผลเฉพาะทาง การออกแบบดังกล่าวมีแนวโน้มที่จะมีประโยชน์สำหรับงานเฉพาะทางเท่านั้น เนื่องจากขนาดของการจัดระเบียบโปรแกรมที่ใหญ่มากซึ่งจำเป็นต้องใช้ทรัพยากรที่มีอยู่ส่วนใหญ่พร้อมกัน ซูเปอร์คอมพิวเตอร์มักถูกนำไปใช้ในการจำลอง ขนาดใหญ่ การเรนเดอร์กราฟิกและแอ ป พลิเค ชันการเข้ารหัสลับ รวมถึงงานอื่นๆ ที่เรียกว่า " งาน ขนานที่ง่ายต่อการประมวลผล "

ซอฟต์แวร์

ซอฟต์แวร์ประกอบด้วยข้อมูลที่เข้ารหัส ซึ่งกำหนดการทำงานของคอมพิวเตอร์ เช่นข้อมูลหรือคำสั่งเกี่ยวกับวิธีการประมวลผลข้อมูล แตกต่างจากฮาร์ดแวร์ ทางกายภาพ ที่ใช้สร้างระบบ ซอฟต์แวร์นั้นไม่มีตัวตน ซอฟต์แวร์รวมถึงโปรแกรมคอมพิวเตอร์ไลบรารีและข้อมูลที่ไม่สามารถเรียกใช้งานได้ที่เกี่ยวข้อง เช่นเอกสารออนไลน์หรือสื่อดิจิทัลโดยทั่วไปจะแบ่งออกเป็นซอฟต์แวร์ระบบและซอฟต์แวร์แอปพลิเคชันทั้งซอฟต์แวร์และฮาร์ดแวร์เป็นส่วนสำคัญของคอมพิวเตอร์สมัยใหม่

เฟิร์มแวร์เป็นส่วนย่อยของซอฟต์แวร์ที่ใช้ควบคุมฮาร์ดแวร์ทางกายภาพ เช่นเดียวกับBIOS ROMในคอมพิวเตอร์ ที่ใช้งานร่วมกับ IBM PC

ระบบปฏิบัติการ / ซอฟต์แวร์ระบบ ยูนิกซ์และบีเอสดีระบบปฏิบัติการ UNIX System V , IBM AIX , HP-UX , Solaris ( SunOS ), IRIX , รายชื่อระบบปฏิบัติการ BSD
ลินุกซ์รายชื่อดิสทริบิวชันของลินุกซ์ , การเปรียบเทียบดิสทริบิวชันของลินุกซ์
วินโดวส์Windows 95 , Windows 98 , Windows NT , Windows 2000 , Windows ME , Windows XP , Windows Vista , Windows 7 , Windows 8 , Windows 8.1 , Windows 10 , Windows 11
เข้ากันได้กับMS-DOSMS-DOS , IBM PC ดอส , DR-DOS , FreeDOS
แม็คระบบปฏิบัติการ Mac OS รุ่นคลาสสิกหรือmacOS (เดิมคือ OS X และ Mac OS X)
ฝังตัวและแบบเรียลไทม์รายชื่อระบบปฏิบัติการฝังตัว
การทดลองAmoeba , OberonAOS, Bluebottle, A2 , Plan 9 จาก Bell Labs
ห้องสมุดมัลติมีเดียDirectX , OpenGL , OpenAL , วัลแคน (API)
ไลบรารีการเขียนโปรแกรมไลบรารีมาตรฐาน C , ไลบรารีเทมเพลตมาตรฐาน
ข้อมูลโปรโตคอลTCP/IP , Kermit , FTP , HTTP , SMTP
รูปแบบไฟล์HTML , XML , JPEG , MPEG , PNG
ส่วนติดต่อผู้ใช้ส่วนต่อประสานผู้ใช้แบบกราฟิก ( WIMP )Windows , GNOME , KDE , QNX Photon, CDE , GEM , Aqua
ส่วนติดต่อผู้ใช้แบบข้อความอินเทอร์เฟซบรรทัดคำสั่ง , อินเทอร์เฟซผู้ใช้แบบข้อความ
ซอฟต์แวร์ แอปพลิเคชันชุดโปรแกรมสำนักงานโปรแกรม ประมวลผลคำ , โปรแกรมจัดพิมพ์เอกสาร , โปรแกรมนำเสนอ , ระบบจัดการฐานข้อมูล , การจัดตารางเวลาและการบริหารเวลา, โปรแกรม สเปรดชีต , โปรแกรมบัญชี
การเข้าถึงอินเทอร์เน็ตเบราว์เซอร์ , โปรแกรมรับส่งอีเมล , เว็บเซิร์ฟเวอร์ , โปรแกรมรับส่งอีเมล , โปรแกรมส่ง ข้อความโต้ตอบแบบทันที
การออกแบบและการผลิตการออกแบบ โดยใช้คอมพิวเตอร์ช่วย การผลิตโดยใช้คอมพิวเตอร์ช่วยการจัดการโรงงาน การผลิตโดยใช้หุ่นยนต์ การจัดการห่วงโซ่อุปทาน
กราฟิกโปรแกรมแก้ไขภาพแรสเตอร์ , โปรแกรมแก้ไขภาพเวกเตอร์ , โปรแกรมสร้างแบบจำลอง 3 มิติ , โปรแกรมแก้ไขภาพเคลื่อนไหว , กราฟิกคอมพิวเตอร์ 3 มิติ , การตัดต่อวิดีโอ , การประมวลผลภาพ
เสียงโปรแกรมตัดต่อเสียงดิจิทัล , การเล่นเสียง , การผสมเสียง , การสังเคราะห์เสียง , ดนตรีคอมพิวเตอร์
วิศวกรรมซอฟต์แวร์คอมไพเลอร์ , แอส เซมเบลอร์ , อินเตอร์ พรีเตอร์ , ดีบักเกอร์ , โปรแกรมแก้ไขข้อความ , สภาพแวดล้อมการพัฒนาแบบบูรณาการ , การวิเคราะห์ประสิทธิภาพซอฟต์แวร์ , การควบคุมเวอร์ชัน , การจัดการการกำหนดค่าซอฟต์แวร์
การศึกษาเกมเพื่อการศึกษา , เกมฝึกทักษะ , เกมจำลองการบิน
เกมส์เกมวางแผน , เกมอาเขต , เกมปริศนา , เกมจำลองสถานการณ์ , เกมยิงมุมมองบุคคลที่หนึ่ง , เกมแพลตฟอร์ม , เกมผู้เล่นหลายคนขนาดใหญ่ , เกมนิยายเชิงโต้ตอบ
เบ็ดเตล็ดปัญญาประดิษฐ์ , ซอฟต์แวร์ป้องกันไวรัส , โปรแกรมสแกนมัลแวร์ , ระบบ ติดตั้ง / จัดการแพ็กเกจ , โปรแกรมจัดการไฟล์

โปรแกรม

คุณลักษณะเด่นของคอมพิวเตอร์สมัยใหม่ที่ทำให้มันแตกต่างจากเครื่องจักรอื่นๆ คือ มันสามารถตั้งโปรแกรมได้ เราสามารถป้อน คำสั่งบางประเภท( โปรแกรม ) ให้กับคอมพิวเตอร์ และมันจะประมวลผลคำสั่งเหล่านั้น คอมพิวเตอร์สมัยใหม่ที่ใช้สถาปัตยกรรมฟอน นอยมันน์ มักจะมีรหัสเครื่องในรูปแบบของภาษาโปรแกรมเชิง คำ สั่ง ในทางปฏิบัติ โปรแกรมคอมพิวเตอร์อาจมีคำสั่งเพียงไม่กี่คำสั่ง หรืออาจมีคำสั่งนับล้านคำสั่ง เช่นเดียวกับโปรแกรมประมวลผลคำและเว็บเบราว์ เซอร์ เป็นต้น คอมพิวเตอร์สมัยใหม่ทั่วไปสามารถประมวลผลคำสั่งได้หลายพันล้านคำสั่งต่อวินาที ( กิกะฟลอป ) และแทบจะไม่เกิดข้อผิดพลาดเลยตลอดการใช้งานหลายปี โปรแกรมคอมพิวเตอร์ขนาดใหญ่ที่ประกอบด้วยคำสั่งนับล้านคำสั่งอาจต้องใช้เวลาหลายปีในการเขียนโดยทีมโปรแกรมเมอร์และเนื่องจากความซับซ้อนของงาน จึงเกือบจะแน่นอนว่าจะต้องมีข้อผิดพลาด

สถาปัตยกรรมโปรแกรมที่จัดเก็บ

แบบจำลองของ " แมนเชสเตอร์ เบบี้" คอมพิวเตอร์แบบโปรแกรมเก็บข้อมูลอิเล็กทรอนิกส์เครื่องแรกของโลกจัดแสดงอยู่ที่พิพิธภัณฑ์วิทยาศาสตร์และอุตสาหกรรมในเมืองแมนเชสเตอร์ ประเทศอังกฤษ

ส่วนนี้ใช้ได้กับคอมพิวเตอร์ แบบใช้ RAM ทั่วไปส่วนใหญ่

โดยทั่วไป คำสั่งคอมพิวเตอร์นั้นง่าย เช่น การบวกตัวเลขหนึ่งกับอีกตัวเลขหนึ่ง การย้ายข้อมูลจากที่หนึ่งไปยังอีกที่หนึ่ง การส่งข้อความไปยังอุปกรณ์ภายนอก เป็นต้น คำสั่งเหล่านี้จะถูกอ่านจากหน่วยความจำ ของคอมพิวเตอร์ และโดยปกติจะถูกดำเนินการ ( ประมวลผล ) ตามลำดับที่ได้รับ อย่างไรก็ตาม มักจะมีคำสั่งพิเศษที่บอกให้คอมพิวเตอร์กระโดดไปข้างหน้าหรือข้างหลังไปยังตำแหน่งอื่นในโปรแกรมและดำเนินการต่อจากจุดนั้น คำสั่งเหล่านี้เรียกว่าคำสั่ง "กระโดด" (หรือสาขา ) นอกจากนี้ คำสั่งกระโดดอาจถูกกำหนดให้ทำงานแบบมีเงื่อนไขเพื่อให้ลำดับของคำสั่งที่แตกต่างกันอาจถูกใช้ขึ้นอยู่กับผลลัพธ์ของการคำนวณก่อนหน้าหรือเหตุการณ์ภายนอกบางอย่าง คอมพิวเตอร์หลายเครื่องรองรับซับรูทีน โดยตรง โดยการจัดเตรียมคำสั่งกระโดดประเภทหนึ่งที่ "จดจำ" ตำแหน่งที่กระโดดมาจาก และคำสั่งอื่นเพื่อกลับไปยังคำสั่งถัดจากคำสั่งกระโดดนั้น

การทำงานของโปรแกรมอาจเปรียบได้กับการอ่านหนังสือ ในขณะที่คนเราจะอ่านทุกคำและทุกบรรทัดตามลำดับ แต่บางครั้งอาจย้อนกลับไปยังส่วนก่อนหน้าหรือข้ามส่วนที่ไม่สนใจ ในทำนองเดียวกัน คอมพิวเตอร์อาจย้อนกลับไปทำซ้ำคำสั่งในบางส่วนของโปรแกรมซ้ำแล้วซ้ำเล่าจนกว่าจะตรงตามเงื่อนไขภายในบางอย่าง นี่เรียกว่าการควบคุมการทำงานภายในโปรแกรม และเป็นสิ่งที่ทำให้คอมพิวเตอร์สามารถทำงานซ้ำๆ ได้โดยไม่ต้องมีการแทรกแซงจากมนุษย์

เมื่อเปรียบเทียบกันแล้ว คนที่ใช้เครื่องคิดเลข พกพา สามารถทำการคำนวณทางคณิตศาสตร์พื้นฐาน เช่น การบวกเลขสองจำนวนได้ด้วยการกดปุ่มเพียงไม่กี่ครั้ง แต่การบวกเลขทั้งหมดตั้งแต่ 1 ถึง 1,000 จะต้องกดปุ่มหลายพันครั้งและใช้เวลานานมาก แถมยังมีโอกาสผิดพลาดสูงอีกด้วย ในทางกลับกัน คอมพิวเตอร์สามารถตั้งโปรแกรมให้ทำเช่นนี้ได้ด้วยคำสั่งง่ายๆ เพียงไม่กี่คำสั่ง ตัวอย่างต่อไปนี้เขียนด้วยภาษาแอสเซมบลี MIPS :

begin: addi $8 , $0 , 0 # กำหนดค่าเริ่มต้นของผลรวมเป็น 0 addi $9 , $0 , 1 # ตั้งค่าตัวเลขแรกที่จะบวกเป็น 1 loop: slti $10 , $9 , 1000 # ตรวจสอบว่าตัวเลขน้อยกว่า 1000 หรือไม่beq $10 , $0 , finish # ถ้าตัวเลขคี่มากกว่า n ให้จบลูปadd $8 , $8 , $9 # อัปเดตผลรวมaddi $9 , $9 , 1 # รับตัวเลขถัดไปj loop # ทำซ้ำกระบวนการบวกfinish: add $2 , $8 , $0 # ใส่ผลรวมลงในรีจิสเตอร์เอาต์พุต

เมื่อได้รับคำสั่งให้รันโปรแกรมนี้ คอมพิวเตอร์จะทำการบวกซ้ำๆ โดยไม่ต้องมีการแทรกแซงจากมนุษย์อีกต่อไป มันแทบจะไม่ผิดพลาดเลย และพีซีสมัยใหม่สามารถทำงานนี้ให้เสร็จได้ในเวลาเพียงเสี้ยววินาที

รหัสเครื่อง

ในคอมพิวเตอร์ส่วนใหญ่ คำสั่งแต่ละคำสั่งจะถูกจัดเก็บเป็นรหัสเครื่องโดยแต่ละคำสั่งจะได้รับหมายเลขเฉพาะ (รหัสการทำงานหรือ เรียกสั้นๆ ว่า opcode ) คำสั่งในการบวกตัวเลขสองตัวเข้าด้วยกันจะมี opcode หนึ่งตัว คำสั่งในการคูณตัวเลขสองตัวจะมี opcode ที่แตกต่างกัน และอื่นๆ คอมพิวเตอร์ที่ง่ายที่สุดสามารถดำเนินการคำสั่งต่างๆ ได้เพียงไม่กี่คำสั่ง ในขณะที่คอมพิวเตอร์ที่ซับซ้อนกว่านั้นมีคำสั่งให้เลือกหลายร้อยคำสั่ง โดยแต่ละคำสั่งจะมีรหัสตัวเลขเฉพาะ เนื่องจากหน่วยความจำของคอมพิวเตอร์สามารถจัดเก็บตัวเลขได้ จึงสามารถจัดเก็บรหัสคำสั่งได้เช่นกัน ซึ่งนำไปสู่ข้อเท็จจริงที่สำคัญว่า โปรแกรมทั้งหมด (ซึ่งเป็นเพียงรายการของคำสั่งเหล่านี้) สามารถแสดงเป็นรายการของตัวเลขได้ และสามารถจัดการภายในคอมพิวเตอร์ได้ในลักษณะเดียวกับข้อมูลตัวเลข แนวคิดพื้นฐานของการจัดเก็บโปรแกรมในหน่วยความจำของคอมพิวเตอร์ควบคู่ไปกับข้อมูลที่โปรแกรมทำงานด้วยนั้นเป็นหัวใจสำคัญของสถาปัตยกรรม von Neumann หรือสถาปัตยกรรมโปรแกรมที่จัดเก็บ[ 134 ] [ 135 ]ในบางกรณี คอมพิวเตอร์อาจจัดเก็บโปรแกรมบางส่วนหรือทั้งหมดไว้ในหน่วยความจำที่แยกจากข้อมูลที่ทำงานด้วย สถาปัตยกรรม นี้เรียกว่าสถาปัตยกรรมฮาร์วาร์ดตามชื่อ คอมพิวเตอร์ ฮาร์วาร์ด มาร์ค 1คอมพิวเตอร์ฟอนนอยมันน์รุ่นใหม่แสดงให้เห็นถึงลักษณะบางอย่างของสถาปัตยกรรมฮาร์วาร์ดในการออกแบบ เช่น ในแคชของซีพียู

แม้ว่าจะเป็นไปได้ที่จะเขียนโปรแกรมคอมพิวเตอร์เป็นรายการตัวเลขยาวๆ ( ภาษาเครื่อง ) และแม้ว่าเทคนิคนี้จะถูกใช้กับคอมพิวเตอร์ยุคแรกๆ หลายเครื่อง[ i ] แต่ ในทางปฏิบัติแล้ว การทำเช่นนั้นเป็นเรื่องที่น่าเบื่อหน่ายอย่างยิ่งและอาจเกิดข้อผิดพลาดได้ง่าย โดยเฉพาะอย่างยิ่งสำหรับโปรแกรมที่ซับซ้อน แทนที่จะเป็นเช่นนั้น คำสั่งพื้นฐานแต่ละคำสั่งสามารถตั้งชื่อสั้นๆ ที่บ่งบอกถึงหน้าที่ของมันและจำได้ง่าย – คำช่วยจำเช่น ADD, SUB, MULT หรือ JUMP คำช่วยจำเหล่านี้เรียกรวมกันว่าภาษาแอสเซมบลี ของคอมพิวเตอร์ การแปลงโปรแกรมที่เขียนด้วยภาษาแอสเซมบลีให้เป็นสิ่งที่คอมพิวเตอร์สามารถเข้าใจได้จริง (ภาษาเครื่อง) มักทำโดยโปรแกรมคอมพิวเตอร์ที่เรียกว่า แอสเซมเบลอร์

บัตรเจาะรูจากยุค 1970 ที่มีข้อความหนึ่งบรรทัดจาก โปรแกรม Fortranบัตรมีข้อความว่า "Z(1) = Y + W(1)" และมีป้ายกำกับว่า "PROJ039" เพื่อวัตถุประสงค์ในการระบุ

ภาษาโปรแกรม

ภาษาโปรแกรมคือระบบสัญลักษณ์สำหรับการเขียนรหัสต้นฉบับซึ่งใช้ในการสร้างโปรแกรมคอมพิวเตอร์ ภาษาโปรแกรมมีวิธีการต่างๆ ในการกำหนดโปรแกรมให้คอมพิวเตอร์ทำงาน แตกต่างจาก ภาษาธรรมชาติภาษาโปรแกรมถูกออกแบบมาเพื่อไม่ให้มีความคลุมเครือและกระชับ เป็นภาษาที่เขียนขึ้นล้วนๆ และมักอ่านออกเสียงได้ยาก โดยทั่วไปแล้ว ภาษาโปรแกรมจะถูกแปลงเป็นรหัสเครื่องโดยคอมไพเลอร์หรือแอสเซมเบลอร์ก่อนที่จะทำงาน หรือถูกแปลงโดยตรงในขณะทำงานโดยอินเตอร์พรีเตอร์บางครั้งโปรแกรมอาจถูกประมวลผลด้วยวิธีผสมผสานระหว่างสองเทคนิคนี้

มีภาษาโปรแกรมหลายพันภาษา บางภาษามีไว้สำหรับการเขียนโปรแกรม ทั่วไป ในขณะที่บางภาษามีประโยชน์เฉพาะสำหรับการใช้งานเฉพาะทางขั้นสูงเท่านั้น

ภาษาโปรแกรม
รายชื่อภาษาโปรแกรมลำดับเหตุการณ์ของภาษาโปรแกรม , รายชื่อภาษาโปรแกรมแบ่งตามหมวดหมู่ , รายชื่อภาษาโปรแกรมตามยุคสมัย , รายชื่อภาษาโปรแกรม , ภาษาโปรแกรมที่ไม่ใช้ภาษาอังกฤษเป็นพื้นฐาน
ภาษาแอสเซมบลีที่ใช้กันทั่วไปอาร์เอ็ม , ไมพีเอส , x86
ภาษาโปรแกรมระดับสูงที่ใช้กันทั่วไปAda , BASIC , C , C++ , C# , COBOL , Fortran , PL/I , REXX , Java , Lisp , Pascal , Object Pascal
ภาษาสคริปต์ที่ใช้กันทั่วไปสคริปต์ Bourne , JavaScript , Python , Ruby , PHP , Perl

การออกแบบโปรแกรม

การออกแบบโปรแกรมขนาดเล็กนั้นค่อนข้างง่ายและเกี่ยวข้องกับการวิเคราะห์ปัญหา การรวบรวมอินพุต การใช้โครงสร้างการเขียนโปรแกรมภายในภาษา การคิดค้นหรือใช้ขั้นตอนและอัลกอริธึมที่กำหนดไว้ การจัดเตรียมข้อมูลสำหรับอุปกรณ์เอาต์พุต และวิธีแก้ปัญหาตามความเหมาะสม[ 136 ]เมื่อปัญหาใหญ่ขึ้นและซับซ้อนมากขึ้น จะพบกับคุณสมบัติต่างๆ เช่น โปรแกรมย่อย โมดูล เอกสารอย่างเป็นทางการ และกระบวนทัศน์ใหม่ๆ เช่น การเขียนโปรแกรมเชิงวัตถุ[ 137 ]โปรแกรมขนาดใหญ่ที่มีโค้ดหลายพันบรรทัดขึ้นไป จำเป็นต้องใช้วิธีการทางซอฟต์แวร์ที่เป็นทางการ[ 138 ]งานในการพัฒนา ระบบ ซอฟต์แวร์ ขนาดใหญ่ เป็นความท้าทายทางปัญญาอย่างมาก[ 139 ]การผลิตซอฟต์แวร์ที่มีความน่าเชื่อถือสูงในระดับที่ยอมรับได้ภายในกำหนดการและงบประมาณที่คาดการณ์ได้นั้นเป็นเรื่องยากมาโดยตลอด[ 140 ]สาขาวิชาการและวิชาชีพด้านวิศวกรรมซอฟต์แวร์จึงมุ่งเน้นไปที่ความท้าทายนี้โดยเฉพาะ[ 141 ]

แมลง

ข้อผิดพลาดทางคอมพิวเตอร์ครั้งแรกสุดที่แท้จริง คือ ผีเสื้อกลางคืนที่พบว่าติดอยู่บนรีเลย์ของคอมพิวเตอร์Harvard Mark II

ข้อผิดพลาดในโปรแกรมคอมพิวเตอร์เรียกว่า " บั๊ก " บั๊กเหล่านี้อาจไม่เป็นอันตรายและไม่ส่งผลกระทบต่อประโยชน์ของโปรแกรม หรือมีผลกระทบเพียงเล็กน้อย อย่างไรก็ตาม ในบางกรณี บั๊กเหล่านี้อาจทำให้โปรแกรมหรือระบบทั้งหมด " ค้าง " ไม่ตอบสนองต่ออินพุต เช่น การคลิก เมาส์หรือการกดแป้นพิมพ์ ล้มเหลวโดยสิ้นเชิง หรือเกิดการขัดข้อง[ 142 ]บั๊กที่ไม่เป็นอันตรายบางครั้งอาจถูกนำไปใช้ในทางที่ผิดโดยผู้ใช้ที่ไม่ซื่อสัตย์ที่เขียนโค้ดโจมตีซึ่งเป็นโค้ดที่ออกแบบมาเพื่อใช้ประโยชน์จากบั๊กและขัดขวางการทำงานที่ถูกต้องของคอมพิวเตอร์ โดยปกติแล้ว บั๊กไม่ได้เกิดจากความผิดของคอมพิวเตอร์ เนื่องจากคอมพิวเตอร์เพียงแค่ดำเนินการตามคำสั่งที่ได้รับ บั๊กจึงมักเป็นผลมาจากข้อผิดพลาดของโปรแกรมเมอร์หรือการมองข้ามในการออกแบบโปรแกรม[ j ]พลเรือเอกเกรซ ฮอปเปอร์นักวิทยาศาสตร์คอมพิวเตอร์ชาวอเมริกันและผู้พัฒนาคอมไพเลอร์ ตัวแรก ได้รับการยกย่องว่าเป็นผู้ที่ใช้คำว่า "บั๊ก" ในการคำนวณเป็นครั้งแรก หลังจากพบผีเสื้อกลางคืนที่ตายแล้วทำให้รีเลย์ใน คอมพิวเตอร์ Harvard Mark II ลัดวงจร ในเดือนกันยายน พ.ศ. 2490 [ 143 ]

การเชื่อมต่อเครือข่ายและอินเทอร์เน็ต

ภาพแสดง เส้นทางบางส่วนบนอินเทอร์เน็ต

มีการใช้คอมพิวเตอร์เพื่อประสานงานข้อมูลระหว่างสถานที่ทางกายภาพหลายแห่งมาตั้งแต่ทศวรรษ 1950 ระบบ SAGE ของกองทัพสหรัฐฯ เป็นตัวอย่างขนาดใหญ่แรกของระบบดังกล่าว ซึ่งนำไปสู่ระบบเชิง พาณิชย์เฉพาะทางหลายระบบ เช่นSabre [ 144 ]

ในช่วงทศวรรษ 1970 วิศวกรคอมพิวเตอร์ในสถาบันวิจัยทั่วสหรัฐอเมริกาเริ่มเชื่อมโยงคอมพิวเตอร์เข้าด้วยกันโดยใช้เทคโนโลยีโทรคมนาคม ความพยายามนี้ได้รับทุนสนับสนุนจาก ARPA (ปัจจุบันคือ DARPA ) และเครือข่ายคอมพิวเตอร์ที่เกิดขึ้นเรียกว่าARPANET [ 145 ]เกตตรรกะเป็นนามธรรมทั่วไปที่สามารถนำไปใช้กับ กระบวนทัศน์ ดิจิทัลหรืออนาล็อก ข้างต้นส่วนใหญ่ ได้ ความสามารถในการจัดเก็บและดำเนินการรายการคำสั่งที่เรียกว่าโปรแกรมทำให้คอมพิวเตอร์มีความอเนกประสงค์อย่างมาก ซึ่งแตกต่างจากเครื่องคิดเลข วิทยานิพนธ์ ของChurch–Turingเป็นข้อความทางคณิตศาสตร์เกี่ยวกับความอเนกประสงค์นี้: คอมพิวเตอร์ใดๆ ที่มีความสามารถขั้นต่ำ (คือ Turing-complete)โดยหลักการแล้วสามารถทำงานเดียวกันกับที่คอมพิวเตอร์อื่นๆ สามารถทำได้ ดังนั้น คอมพิวเตอร์ทุกประเภท ( เน็ตบุ๊กซูเปอร์คอมพิวเตอร์ออโตมาตอนเซลลูลาร์ฯลฯ) สามารถทำงานคำนวณเดียวกันได้ หากมีเวลาและพื้นที่จัดเก็บข้อมูลเพียงพอ

ปัญญาประดิษฐ์

ในศตวรรษที่ 20 ระบบปัญญาประดิษฐ์ ส่วนใหญ่เป็น แบบสัญลักษณ์ กล่าวคือ พวกมันดำเนินการโค้ดที่นักพัฒนาซอฟต์แวร์เขียนโปรแกรมไว้อย่างชัดเจน[ 146 ] อย่างไรก็ตาม โมเดล การเรียนรู้ของเครื่องมีชุดพารามิเตอร์ที่ถูกปรับเปลี่ยนตลอดการฝึกอบรม เพื่อให้โมเดลเรียนรู้ที่จะทำงานให้สำเร็จตามข้อมูลที่ให้มา ประสิทธิภาพของการเรียนรู้ของเครื่อง (และโดยเฉพาะอย่างยิ่งเครือข่ายประสาทเทียม ) ได้รับการปรับปรุงอย่างรวดเร็วด้วยความก้าวหน้าของฮาร์ดแวร์สำหรับการประมวลผลแบบขนานโดยเฉพาะอย่างยิ่งหน่วยประมวลผลกราฟิก (GPU) [ 147 ]โมเดลภาษาขนาดใหญ่บาง โมเดล สามารถควบคุมคอมพิวเตอร์หรือหุ่นยนต์ได้[ 148 ] [ 149 ]ความก้าวหน้าของ AI อาจนำไปสู่การสร้างปัญญาประดิษฐ์ทั่วไป (AGI) ซึ่งเป็น AI ประเภทหนึ่งที่สามารถทำงานทางปัญญาได้แทบทุกอย่างอย่างน้อยก็ดีเท่ากับมนุษย์[ 150 ]

วิชาชีพและองค์กร

เนื่องจากการใช้คอมพิวเตอร์แพร่หลายไปทั่วสังคม จึงมีอาชีพที่เกี่ยวข้องกับคอมพิวเตอร์เพิ่มมากขึ้นเรื่อยๆ

อาชีพที่เกี่ยวข้องกับคอมพิวเตอร์
เกี่ยวกับฮาร์ดแวร์วิศวกรรมไฟฟ้า , วิศวกรรมอิเล็กทรอนิกส์ , วิศวกรรมคอมพิวเตอร์ , วิศวกรรมโทรคมนาคม , วิศวกรรมทัศนศาสตร์ , วิศวกรรมนาโน
ที่เกี่ยวข้องกับซอฟต์แวร์วิทยาการคอมพิวเตอร์ , วิศวกรรมคอมพิวเตอร์ , การจัดพิมพ์เอกสารบนเดสก์ท็อป , ปฏิสัมพันธ์ระหว่างมนุษย์กับคอมพิวเตอร์ , เทคโนโลยีสารสนเทศ, ระบบสารสนเทศ , วิทยาศาสตร์การคำนวณ , วิศวกรรมซอฟต์แวร์, อุตสาหกรรมวิดีโอเกม , การออกแบบเว็บไซต์

ความจำเป็นที่คอมพิวเตอร์จะต้องทำงานร่วมกันได้อย่างมีประสิทธิภาพและสามารถแลกเปลี่ยนข้อมูลได้นั้น ก่อให้เกิดความต้องการองค์กรมาตรฐาน ชมรม และสมาคมต่างๆ มากมาย ทั้งในรูปแบบที่เป็นทางการและไม่เป็นทางการ

องค์กรต่างๆ
กลุ่มมาตรฐานANSI , IEC , IEEE , IETF , ISO , W3C
สมาคมวิชาชีพACM , AIS , IET , IFIP , BCS
กลุ่มซอฟต์แวร์โอเพนซอร์ส / ฟรีมูลนิธิซอฟต์แวร์เสรี , มูลนิธิโมซิซาโก , มูลนิธิซอฟต์แวร์อาปาเช่

ดูเพิ่มเติม

หมายเหตุ

  1. ตามที่ Schmandt-Besserat กล่าวไว้ในปี 1981ภาชนะดินเผาเหล่านี้บรรจุโทเค็น ซึ่งผลรวมของโทเค็นเหล่านั้นคือจำนวนของวัตถุที่ถูกขนส่ง ภาชนะเหล่านี้จึงทำหน้าที่คล้ายกับใบตราส่งสินค้าหรือสมุดบัญชี เพื่อหลีกเลี่ยงการทุบภาชนะให้แตก ขั้นแรกจึงมีการประทับโทเค็นลงบนด้านนอกของภาชนะด้วยดินเหนียวเพื่อใช้เป็นตัวเลขนับจำนวน รูปทรงของรอยประทับถูกดัดแปลงเป็นเครื่องหมายแบบมีสไตล์ และในที่สุดเครื่องหมายแบบนามธรรมเหล่านั้นก็ถูกนำมาใช้เป็นตัวเลขอย่างเป็นระบบ ตัวเลขเหล่านี้จึงถูกกำหนดให้เป็นตัวเลขอย่างเป็นทางการ ในท้ายที่สุด เครื่องหมายบนด้านนอกของภาชนะก็เพียงพอที่จะสื่อถึงจำนวน และภาชนะดินเผาก็ได้วิวัฒนาการเป็นแผ่นดินเหนียวที่มีเครื่องหมายสำหรับนับจำนวน Schmandt-Besserat ในปี 1999ประมาณการว่าใช้เวลา 4000 ปี
  2. ^ชิป Intel 4004 (1971) มีขนาด 12 ตารางมิลลิเมตรประกอบด้วยทรานซิสเตอร์ 2,300 ตัว เมื่อเปรียบเทียบกันแล้ว Pentium Pro มีขนาด 306 ตารางมิลลิเมตรประกอบด้วยทรานซิสเตอร์ 5.5 ล้านตัว [ 116 ]
  3. ^ตามพจนานุกรม Shorter Oxford English Dictionary (ฉบับที่ 6, 2007) คำว่า computerมีที่มาตั้งแต่กลางศตวรรษที่ 17 โดยในสมัยนั้นหมายถึง "บุคคลที่ทำการคำนวณ โดยเฉพาะอย่างยิ่งบุคคลที่ได้รับการว่าจ้างให้ทำงานด้านนี้ในหอดูดาว เป็นต้น"
  4. ^ สถาปัตยกรรม ชุดคำสั่ง 64 บิตหลักส่วนใหญ่เป็นการต่อยอดจากการออกแบบก่อนหน้านี้ สถาปัตยกรรมทั้งหมดที่ระบุในตารางนี้ ยกเว้น Alpha เคยมีอยู่ในรูปแบบ 32 บิตมาก่อนที่จะนำเสนอเวอร์ชัน 64 บิต
  5. ^บทบาทของหน่วยควบคุมในการตีความคำสั่งนั้นแตกต่างกันไปบ้างในอดีต แม้ว่าในคอมพิวเตอร์สมัยใหม่ส่วนใหญ่ หน่วยควบคุมจะเป็นผู้รับผิดชอบแต่เพียงผู้เดียวในการตีความคำสั่ง แต่ก็ไม่ใช่เช่นนั้นเสมอไป คอมพิวเตอร์บางเครื่องมีคำสั่งที่หน่วยควบคุมตีความเพียงบางส่วน และมีอุปกรณ์อื่นทำการตีความเพิ่มเติม ตัวอย่างเช่น EDVACซึ่งเป็นหนึ่งในคอมพิวเตอร์แบบจัดเก็บโปรแกรมรุ่นแรกๆ ใช้หน่วยควบคุมส่วนกลางที่ตีความคำสั่งเพียงสี่คำสั่งเท่านั้น คำสั่งที่เกี่ยวข้องกับการคำนวณทั้งหมดจะถูกส่งต่อไปยังหน่วยคำนวณและถอดรหัสเพิ่มเติมที่นั่น
  6. ^คำสั่งต่างๆ มักใช้พื้นที่หน่วยความจำมากกว่าหนึ่งตำแหน่ง ดังนั้นตัวนับโปรแกรมจึงมักเพิ่มขึ้นตามจำนวนตำแหน่งหน่วยความจำที่จำเป็นในการจัดเก็บคำสั่งหนึ่งคำสั่ง
  7. ^หน่วยความจำแฟลชอาจเขียนซ้ำได้เพียงจำนวนครั้งที่จำกัดก่อนที่จะเสื่อมสภาพ ทำให้มีประโยชน์น้อยลงสำหรับการใช้งานการเข้าถึงแบบสุ่มอย่างหนัก [ 128 ]
  8. ^อย่างไรก็ตาม การสร้างซูเปอร์คอมพิวเตอร์จากฮาร์ดแวร์ราคาถูกจำนวนมากก็เป็นเรื่องปกติเช่นกัน โดยปกติแล้วจะเป็นคอมพิวเตอร์แต่ละเครื่องที่เชื่อมต่อกันด้วยเครือข่ายคอมพิวเตอร์คลัสเตอร์ เหล่านี้ มักจะให้ประสิทธิภาพระดับซูเปอร์คอมพิวเตอร์ในราคาที่ต่ำกว่าการออกแบบที่กำหนดเองมาก ในขณะที่สถาปัตยกรรมที่กำหนดเองยังคงถูกใช้สำหรับซูเปอร์คอมพิวเตอร์ที่ทรงพลังที่สุดส่วนใหญ่ แต่ในช่วงไม่กี่ปีที่ผ่านมามีการใช้งานคอมพิวเตอร์คลัสเตอร์เพิ่มมากขึ้น [ 133 ]
  9. ^แม้แต่คอมพิวเตอร์รุ่นหลังๆ บางรุ่นก็ยังนิยมตั้งโปรแกรมโดยตรงด้วยรหัสเครื่องมินิคอมพิวเตอร์ บางรุ่น เช่น DEC PDP-8สามารถตั้งโปรแกรมได้โดยตรงจากแผงสวิตช์ อย่างไรก็ตาม วิธีนี้มักใช้เฉพาะในขั้นตอนการบูต เท่านั้น คอมพิวเตอร์สมัยใหม่ส่วนใหญ่บูตโดยอัตโนมัติโดยการอ่านโปรแกรมบูตจากหน่วยความจำแบบไม่ลบเลือน
  10. ^ไม่ใช่เรื่องจริงเสมอไปที่ข้อผิดพลาดจะเกิดจากความประมาทของโปรแกรมเมอร์เพียงอย่างเดียว ฮาร์ดแวร์คอมพิวเตอร์อาจทำงานผิดพลาดหรืออาจมีปัญหาพื้นฐานที่ทำให้เกิดผลลัพธ์ที่ไม่คาดคิดในบางสถานการณ์ ตัวอย่างเช่นข้อผิดพลาด FDIV ใน Pentiumทำให้ ไมโครโปรเซสเซอร์ Intel บางรุ่น ในช่วงต้นทศวรรษ 1990 ให้ผลลัพธ์ที่ไม่ถูกต้องสำหรับ การคำนวณหาร เลขทศนิยม บางอย่าง ซึ่งเกิดจากข้อบกพร่องใน การออกแบบ ไมโครโปรเซสเซอร์และส่งผลให้มีการเรียกคืนอุปกรณ์ที่ได้รับผลกระทบบางส่วน

แหล่งที่มา

  • Bowden, BV (1953). เร็วกว่าความคิด . นิวยอร์ก, โตรอนโต, ลอนดอน: บริษัทสำนักพิมพ์พิตแมน.
  • เบิร์กลีย์, เอ็ดมันด์ (1949). สมองยักษ์ หรือเครื่องจักรที่คิดได้ . จอห์น ไวลีย์ แอนด์ ซันส์.
  • Bromley, Allan G. (1990). "เครื่องมือคำนวณเชิงผลต่างและเชิงวิเคราะห์". ใน Aspray, William (บรรณาธิการ). การคำนวณก่อนคอมพิวเตอร์ (PDF) . Ames: สำนักพิมพ์มหาวิทยาลัยรัฐไอโอวา. หน้า  59–98 . ISBN 978-0-8138-0047-9จัดเก็บในรูปแบบไฟล์ PDFจากต้นฉบับเมื่อวันที่ 9 ตุลาคม 2565
  • Cohen, I. Bernard; Brenner, Alfred E. (2000). " Howard Aiken: Portrait of a Computer Pioneer ". Physics Today . 53 (3): 74– 75. Bibcode : 2000PhT....53c..74C . doi : 10.1063/1.883007 .
  • คอลลิเออร์, บรูซ (1970). เครื่องจักรเล็ก ๆ ที่ทำได้: เครื่องคำนวณของชาร์ลส์ แบ็บเบจ . สำนักพิมพ์การ์แลนด์. ISBN 978-0-8240-0043-1เก็บถาวรจากต้นฉบับเมื่อวันที่ 20 มกราคม 2550 เรียกดูเมื่อวันที่ 24 ตุลาคม 2556
  • Couffignal, หลุยส์ (1933) Les machines à เครื่องคิดเลข; leurs Principes, วิวัฒนาการของ leur . ปารีส: Gauthier-Villars.
  • บริษัท ดิจิทัล อีควิปเมนท์ คอร์ปอเรชั่น (1972). คู่มือการใช้งานโปรเซสเซอร์ PDP-11/40 (PDF) . เมย์นาร์ด, แมสซา ชูเซตส์ : บริษัท ดิจิทัล อีควิปเมนท์ คอร์ปอเรชั่น. เก็บถาวร(PDF)จากต้นฉบับเมื่อวันที่ 1 ธันวาคม 2017. สืบค้นเมื่อ27 พฤศจิกายน 2017 .
  • Swade, Doron D. (กุมภาพันธ์ 1993). "การกู้คืนคอมพิวเตอร์เชิงกลของ Charles Babbage" Scientific American . 268 (2): 86– 91. Bibcode : 1993SciAm.268b..86S . doi : 10.1038/scientificamerican0293-86 . JSTOR  24941379 .
  • เอสซิงเกอร์, เจมส์ (2004). ใยแมงมุมของจาการ์ด: เครื่องทอผ้าด้วยมือนำไปสู่การกำเนิดของยุคข้อมูลข่าวสาร . สำนักพิมพ์มหาวิทยาลัยออกซ์ฟอร์ด. ISBN 978-0-19-280577-5.
  • อีแวนส์, แคลร์ แอล. (2018). บรอดแบนด์: เรื่องราวที่ไม่เคยเปิดเผยของสตรีผู้สร้างอินเทอร์เน็ต . นิวยอร์ก: พอร์ตโฟลิโอ/เพนกวิน. ISBN 978-0-7352-1175-9สืบค้นข้อมูลเมื่อวันที่ 9 พฤศจิกายน 2020
  • เฟลต์, ดอร์ อี. (1916). การคำนวณเชิงกล หรือ ประวัติศาสตร์ของเครื่องนับเลข . ชิคาโก: สถาบันวอชิงตัน.
  • อิฟราห์, จอร์จส์ (2001). ประวัติศาสตร์สากลของการคำนวณ: จากลูกคิดถึงคอมพิวเตอร์ควอนตัม . นิวยอร์ก: จอห์น ไวลีย์ แอนด์ ซันส์. ISBN 978-0-471-39671-0.
  • ลาวิงตัน, ไซมอน (1998). ประวัติศาสตร์ของคอมพิวเตอร์แมนเชสเตอร์ (ฉบับที่ 2). สวินดอน: สมาคมคอมพิวเตอร์แห่งอังกฤษ. ISBN 978-0-902505-01-8.
  • ลิกอนเนียร์, โรเบิร์ต (1987) Préhistoire และ Histoire des ordinateurs ปารีส: โรเบิร์ต ลาฟฟงต์. ไอเอสบีเอ็น 978-2-221-05261-7.
  • Light, Jennifer S. (1999). "เมื่อคอมพิวเตอร์เป็นผู้หญิง". เทคโนโลยีและวัฒนธรรม40 (3): 455– 483. doi : 10.1353/tech.1999.0128 . JSTOR  25147356 . S2CID  108407884 .
  • Meuer, Hans ; Strohmaier, Erich; Simon, Horst; Dongarra, Jack (13 พฤศจิกายน 2006). "สถาปัตยกรรมแบ่งปันกันเมื่อเวลาผ่านไป" . TOP500 . เก็บถาวรจากต้นฉบับเมื่อ 20 กุมภาพันธ์ 2007 . สืบค้นเมื่อ27 พฤศจิกายน 2006 .
  • Moseley, Maboth (1964). อัจฉริยะอารมณ์ฉุนเฉียว ชาร์ลส์ แบ็บเบจ นักประดิษฐ์ . ลอนดอน: Hutchinson.
  • Randell, Brian (1982). "จากเครื่องวิเคราะห์สู่คอมพิวเตอร์ดิจิทัลอิเล็กทรอนิกส์: ผลงานของ Ludgate, Torres และ Bush" (PDF) . เก็บถาวรจากต้นฉบับ(PDF)เมื่อวันที่ 21 กันยายน 2013 . สืบค้นเมื่อ29 ตุลาคม 2013 .
  • Schmandt-Besserat, Denise (1999). "โทเค็น: ความสำคัญทางปัญญา" . Documenta Praehistorica . XXVI . เก็บถาวรจากต้นฉบับเมื่อวันที่ 30 มกราคม 2012.
  • Schmandt-Besserat, Denise (1981). "การถอดรหัสแผ่นจารึกที่เก่าแก่ที่สุด". Science . 211 (4479): 283–285 . Bibcode : 1981Sci...211..283S . doi : 10.1126/science.211.4479.283 . PMID  17748027 .
  • Smith, Erika E. (2013). "การตระหนักถึงมรดกร่วมกันผ่านประวัติศาสตร์ของผู้หญิงในวงการคอมพิวเตอร์" . CLCWeb: วรรณกรรมเปรียบเทียบและวัฒนธรรม . 15 (1): 1– 9. doi : 10.7771/1481-4374.1972 .
  • Verma, G.; Mielke, N. (1988). ประสิทธิภาพความน่าเชื่อถือของหน่วยความจำแฟลชที่ใช้ ETOX . IEEE International Reliability Physics Symposium.
  • ซูส, คอนราด (1993) คอมพิวเตอร์--ชีวิตของฉัน . เบอร์ลิน: Pringler-Verlag. ไอเอสบีเอ็น 978-0-387-56453-1.
  • โลโก้ Wikimedia Commonsสื่อที่เกี่ยวข้องกับคอมพิวเตอร์ในวิกิมีเดียคอมมอนส์
  • โลโก้ Wikiversityเว็บไซต์ Wikiversity มีแบบทดสอบเกี่ยวกับบทความนี้

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Computer&oldid=1358555486 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ คอมพิวเตอร์

คอมพิวเตอร์คือ เครื่องจักร ที่สามารถ ตั้งโปรแกรม ให้ ดำเนินการ ตามลำดับ การ คำนวณ ทางคณิตศาสตร์ หรือ ตรรกะ ได้ โดย อัตโนมัติ คอมพิวเตอร์ ดิจิทัลอิเล็กทรอนิกส์...

นิรุกติศาสตร์

จนกระทั่งช่วงกลางศตวรรษที่ 20 คำนี้จึงได้รับความหมายสมัยใหม่ ตาม พจนานุกรมภาษาอังกฤษของออกซ์ฟอร์ด การใช้คำว่า คอมพิวเตอร์ ครั้งแรกที่รู้จักกัน นั้นอยู่ในความหมายที่แตกต่างออกไป ในหนังสือปี 1613 ชื่อ The Yong Mans Gleanings โดยนักเขียนชาวอังกฤษ Richard...

ก่อนศตวรรษที่ 20

มีการใช้อุปกรณ์เพื่อช่วยในการคำนวณมาเป็นเวลาหลายพันปีแล้ว โดยส่วนใหญ่ใช้ การจับคู่แบบหนึ่งต่อหนึ่ง กับ นิ้วมือ อุปกรณ์นับที่เก่าแก่ที่สุดน่าจะเป็น แท่งนับ จำนวน ต่อมาอุปกรณ์ช่วยบันทึกข้อมูลทั่ว ดินแดนพระจันทร์เสี้ยว อันอุดมสมบูรณ์ได้ รวมถึง calculi...

คอมพิวเตอร์เครื่องแรก

ชาร์ลส์ แบ็บเบจ วิศวกรเครื่องกลชาวอังกฤษและ นักปราชญ์รอบรู้ เป็นผู้ริเริ่มแนวคิดของคอมพิวเตอร์ที่ตั้งโปรแกรมได้ เขาได้รับการยกย่องว่าเป็น " บิดาแห่งคอมพิวเตอร์ " [ 23 ] โดยเขาได้คิดค้นและประดิษฐ์ คอมพิวเตอร์เชิงกลเครื่อง แรก ในช่วงต้นศตวรรษที่ 19