ประวัติการคำนวณน่าจะเริ่มมาตั้งแต่สมัยมนุษย์ยุคหิน ที่ใช้ก้อนกรวดเพื่อคำนวณผลรวมของจำนวนสองจำนวน Marshack (of Harvard) พบว่ารอยขีดบนกระดูกโบราณ ซึ่งเคยถูกคิดว่าเป็นแค่รอยขีดธรรมดา แท้จริงแล้วเป็นเส้นที่จารึกอย่างระมัดระวังและดูเหมือนเกี่ยวข้องกับวัฏจักรของดวงจันทร์ Stonehenge บน Salisbury Plain ในอังกฤษถูกสร้างขึ้นเป็นสามช่วง (1900–1700, 1700–1500, 1500–1400 ก่อนคริสตกาล) และดูเหมือนเชื่อมโยงกับการสังเกตการณ์ทางดาราศาสตร์ แสดงให้เห็นถึงความรู้ทางดาราศาสตร์ที่ค่อนข้างกว้าง งานด้าน archeoastronomy เผยให้เห็นว่าชนเผ่ายุคโบราณหลายแห่งมีความรู้เกี่ยวกับเหตุการณ์ทางดาราศาสตร์ ประเทศอย่าง จีน อินเดีย และ เม็กซิโก มีบทบาทสำคัญ และเรายังมีโครงสร้างของพวกเขาซึ่งเรามักเรียกว่า observatories ถึงกระนั้นเรายังเข้าใจการใช้งานของโครงสร้างเหล่านี้ไม่มากนัก ในที่ราบตะวันตกของเราเองยังมีร่องรอยของสถานที่สังเกตการณ์ทางดาราศาสตร์ที่ชนพื้นเมืองใช้

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

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

ในทศวรรษ 1930 และ 1940 slide rule เป็นอุปกรณ์มาตรฐานของวิศวกร มักพกไว้ในซองหนังติดเข็มขัดเป็นสัญลักษณ์ของกลุ่มคนบนแคมปัส Slide rule มาตรฐานของวิศวกรคือ “ten-inch log log decitrig slide rule” ซึ่งหมายถึงสเกลยาวสิบนิ้ว มีสเกล log log, สเกลกำลังสองและกำลังสาม รวมทั้งสเกลตรีโกณมิติเป็นส่วนย่อยขององศา ใครหลายคนเลิกผลิตกันไปแล้ว

ตามแนวทางแอนะล็อก ก้าวสำคัญถัดมาคือ differential analyzer ซึ่งในตอนแรกใช้ตัวอินทิเกรเตอร์เชิงกลของรูปแบบแอนะล็อก รุ่นที่ประสบความสำเร็จครั้งแรกถูกสร้างราวปี 1930 โดย Vannevar Bush แห่ง MIT รุ่นต่อมาที่ชื่อ rda #2 แม้จะยังเป็นแอนะล็อกและพื้นฐานเป็นเครื่องกล แต่มีการเชื่อมต่อเชิงอิเล็กทรอนิกส์มากมาย ผมใช้มันชั่วระยะหนึ่ง (1947–1948) เพื่อคำนวณวิถีกระสุนขับเคลื่อนของขีปนาวุธนำวิถี Nike ในขั้นตอนการออกแบบเริ่มแรก

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

เมื่อต้องกลับสู่คอมพิวเตอร์ดิจิทัล Napier ยังออกแบบ “Napier’s bones” ซึ่งมักเป็นแท่งงาช้างที่มีตัวเลข ช่วยให้คูณตัวเลขได้ง่ายขึ้น; อันนี้เป็นดิจิทัลและไม่ควรสับสนกับ slide rule ซึ่งเป็นแอนะล็อก

จาก Napier’s bones น่าจะก่อให้เกิดเครื่องคิดเลขตั้งโต๊ะสมัยใหม่ Schickard เขียน (20 ธ.ค. 1623) ถึง Kepler ว่ากองไฟในห้องทดลองของเขาเผาเครื่องที่เขากำลังสร้างให้ Kepler บันทึกและภาพร่างของเขาชี้ว่าเครื่องนั้นจะทำการสี่ปฏิบัติการพื้นฐานของคณิตศาสตร์—ถ้าคุณยอมความหมายของการคูณและการหารในเครื่องแบบนั้น Pascal (1623–1662) ซึ่งเกิดปีเดียวกัน มักถูกยกให้เป็นผู้คิดค้นเครื่องคิดเลขตั้งโต๊ะ แต่ของเขาทำได้เพียงบวกและลบ—ซึ่งเพียงพอสำหรับช่วยพ่อของเขาที่ประเมินภาษี Leibnitz (ผู้มีชื่อเสียงด้านแคลคูลัส) ก็ทดลองทำเครื่องคิดเลขเช่นกัน โดยรวมการคูณและการหารไว้ด้วย แม้เครื่องของเขาจะยังไม่เชื่อถือได้

Babbage (1791–1871) เป็นชื่อต่อไปที่สำคัญในด้านดิจิทัล และมักถูกมองว่าเป็นบิดาแห่งการคำนวณสมัยใหม่ ออกแบบครั้งแรกคือ difference engine โดยอาศัยไอเดียง่ายๆ ว่าสมการพหุนามสามารถประเมินค่าที่จุดต่อเนื่องซึ่งห่างเท่าๆ กันโดยใช้เพียงลำดับของการบวกและลบ และเนื่องจากฟังก์ชันส่วนใหญ่ในท้องถิ่นสามารถแทนด้วยพหุนาม วิธีนี้จึงสามารถให้ “ตารางที่เครื่องทำได้” (Babbage ยืนยันว่าการพิมพ์ต้องทำโดยเครื่องเพื่อป้องกันข้อผิดพลาดจากมนุษย์) รัฐบาลอังกฤษให้การสนับสนุนทางการเงินแก่เขา แต่เขาไม่เคยทำให้เสร็จ ชายชาวนอร์เวย์คู่หนึ่ง (Scheutz) ทำเครื่องที่ใช้งานได้หลายเครื่อง และ Babbage ก็แสดงความยินดีกับความสำเร็จของพวกเขา หนึ่งในเครื่องของพวกเขาถูกขายให้กับ Albany Observatory, New York และถูกใช้ในการสร้างตารางดาราศาสตร์บางส่วน

เหมือนที่เกิดขึ้นบ่อยในสาขาการคำนวณ Babbage ยังไม่ทันเสร็จ difference engine ก็คิดค้น analytical engine ที่ทรงพลังกว่ามาก ซึ่งไม่ต่างจากการออกแบบคอมพิวเตอร์แบบ von Neumann ในปัจจุบัน เขาไม่เคยทำให้มันทำงานได้จริง แต่กลุ่มหนึ่งในอังกฤษได้สร้างเครื่องตามแบบร่างการทำงานของเขาในปี 1992 และสามารถทำงานได้สำเร็จตามที่เขาออกแบบไว้!

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

จากนั้นเกิดลำดับของเครื่องคิดเลขตั้งโต๊ะสมัยใหม่ขึ้น เช่น Millionaire, Marchant, Friden และ Monroe ตอนแรกยังคุมด้วยมือและใช้แรงมือ แต่ค่อยๆ มีการใส่ระบบควบคุมเข้าไป โดยหลักคือคันโยกเชิงกล เริ่มตั้งแต่ราวปี 1937 เครื่องเหล่านี้เริ่มมีมอเตอร์ไฟฟ้ามาช่วยงานหลักของการคำนวณ ก่อนปี 1944 อย่างน้อยมีเครื่องหนึ่งที่รวมการคำนวณรากที่สองไว้ในเครื่อง (ยังคงเป็นคันโยกกลที่จัดวางอย่างซับซ้อน) เครื่องมือเหล่านี้เป็นฐานของกลุ่มคนที่ทำงานคำนวณเป็นทีม ตัวอย่างเช่น เมื่อผมมาที่ Bell Telephone Laboratories ในปี 1946 มีสี่กลุ่มดังกล่าวในห้องปฏิบัติการ โดยทั่วไปมีผู้หญิงประมาณหกถึงสิบคนต่อกลุ่ม: กลุ่มเล็กในภาควิชาคณิตศาสตร์ กลุ่มใหญ่ในภาคเครือข่าย หนึ่งกลุ่มในส่วนสวิตช์ และหนึ่งกลุ่มในควบคุมคุณภาพ

การคำนวณด้วยบัตรเจาะเริ่มขึ้นเพราะมีคนหนึ่งมองการณ์ไกลว่าการสำมะโนประชากรของรัฐบาล ซึ่งตามกฎหมายต้องทำทุก 10 ปี กำลังใช้เวลามากจนการสำมะโนครั้งถัดไป (1890) จะไม่เสร็จก่อนการสำมะโนครั้งต่อไปจะเริ่มขึ้น ถ้าไม่ หันไปใช้วิธีการทางเครื่อง Hollerith รับงานนี้และสร้างเครื่องบัตรเจาะตัวแรก และในการสำมะโนถัดๆ มาเขาสร้างเครื่องที่ทรงพลังขึ้นเพื่อให้ทันทั้งจำนวนประชากรที่เพิ่มขึ้นและจำนวนคำถามที่มากขึ้นเกี่ยวกับสำมะโน Powers ซึ่งออกจากกลุ่มสำมะโนด้วยก็ยังคงใช้รูปแบบบัตรที่มีรูทรงกลม ถูกออกแบบมาให้ตรวจจับด้วยแท่งกลไกที่เรียกว่า “fingers” ขณะที่ ibm ในปี 1928 เริ่มใช้บัตรที่มีรูสี่เหลี่ยมที่อ่านได้ด้วยแปรงไฟฟ้าได้ง่าย

ราวปี 1935 ibm สร้าง 601 mechanical punch ซึ่งทำการคูณได้และสามารถรวมการบวกสองครั้งเข้ากับผลคูณได้พร้อมกัน มันกลายเป็นหนึ่งในเสาหลักของการคำนวณ—มีประมาณ 1,500 เครื่องให้เช่าและเฉลี่ยอาจทำการคูณได้ประมาณหนึ่งครั้งทุกสองหรือสามวินาที เครื่องพวกนี้ พร้อมกับเครื่องคูณสามผลพิเศษและเครื่องหาร ถูกนำไปใช้ที่ Los Alamos เพื่อคำนวณการออกแบบสำหรับระเบิดปรมาณูครั้งแรก

ในด้านเครื่องกลแบบรีเลย์ George Stibitz สร้าง (1939) Complex Number Computer และแสดงที่ Dartmouth (1940) ขณะที่ตัวเมนเฟรมหลักอยู่ที่นิวยอร์ก จึงถือเป็นเครื่องเทอร์มินัลระยะไกลยุคแรก และเนื่องจากปกติจะมีสถานีอินพุตสามสถานีในตำแหน่งต่างกัน ใน Labs มันจึงเป็นที่เรียกว่า “time-shared machine” ถ้าจะอธิบายอย่างสุภาพ

Konrad Zuse ในเยอรมนีและ Howard Aitken ที่ Harvard เช่นเดียวกับ Stibitz ต่างก็ผลิตคอมพิวเตอร์รีเลย์หลายรุ่นที่มีความซับซ้อนมากขึ้น Stibitz’s Model 5 มีสองเครื่องในเครื่องเดียวและสามารถแชร์งานเมื่อจำเป็น เป็นเครื่อง multiprocessor ถ้าจะเรียกว่าอย่างนั้น ในสามคนนั้น Zuse อาจเป็นคนที่ยิ่งใหญ่ที่สุด ทั้งจากความยากลำบากที่เขาต้องเผชิญและผลงานในด้านซอฟต์แวร์ในภายหลัง

โดยทั่วไปถือกันว่ายุคคอมพิวเตอร์อิเล็กทรอนิกส์เริ่มต้นด้วย ENIAC ซึ่งถูกสร้างให้กับกองทัพบกสหรัฐและส่งมอบในปี 1946 มันมีหลอดสุญญากาศประมาณ 18,000 หลอด ขนาดใหญ่ทางกายภาพมาก และตามการออกแบบเริ่มแรกมันถูกเดินสายคล้ายกับแผงปลั๊กของ ibm แต่การเชื่อมต่อเพื่อบรรยายปัญหาเฉพาะอาจครอบคลุมรอบห้องเครื่อง! ตราบใดที่มันถูกใช้ตามที่ตั้งใจไว้ คือคำนวณวิถากระสุน นี่ไม่เป็นปัญหาใหญ่ สุดท้าย มันถูกปรับแต่งโดยผู้ใช้ให้ทำงานเหมือนถูกโปรแกรมจากคำสั่ง มากกว่าจะจากการเดินสายเชื่อมต่อ

Mauchly และ Eckert ผู้สร้าง ENIAC พบว่า เช่นเดียวกับ Babbage ก่อนหน้านั้น ก่อนที่พวกเขาจะทำเครื่องแรกเสร็จ พวกเขาก็คิดถึงเครื่องที่ใหญ่กว่าและโปรแกรมภายในได้ คือ EDVAC Von Neumann ในฐานะที่ปรึกษาเขียนรายงาน และผลก็คือการโปรแกรมภายในมักถูกให้เครดิตกับเขา แม้ผมไม่ทราบว่าเขาเคยยืนยันหรือปฏิเสธการให้เครดิตนั้นหรือไม่ ในฤดูร้อนปี 1946 Mauchly และ Eckert เปิดคอร์ส "open to all" เกี่ยวกับการออกแบบและสร้างคอมพิวเตอร์อิเล็กทรอนิกส์ และเป็นผลให้ผู้เข้าร่วมหลายคนกลับไปสร้างเครื่องของตัวเอง; Wilkes แห่ง Cambridge เป็นคนแรกที่ทำให้เครื่องทำงานได้ใช้ประโยชน์จริงๆ คือ EDSAC

ในตอนแรกแต่ละเครื่องเป็นแบบหนึ่งเดียวที่แตกต่างกัน แม้หลายเครื่องจะถูกคัดลอกจาก (แต่บ่อยครั้งเสร็จก่อน) เครื่องของ Institute for Advanced Studies ภายใต้การกำกับของ von Neumann เนื่องจากการวิศวกรรมของเครื่องนั้นถูกเลื่อนออกไป ผลที่ได้คือหลายเครื่องที่ถูกเรียกว่าเป็นสำเนา เช่น MANIAC-I (1952) ซึ่งถูกตั้งชื่อเพื่อลบการตั้งชื่อที่ไร้สาระของเครื่อง และสร้างภายใต้การกำกับของ N.C. Metropolis กลับเสร็จก่อนเครื่องของ Institute มันและ MANIAC-II (1955) ถูกสร้างที่ Los Alamos ขณะที่ MANIAC-III (1959) ถูกสร้างที่ University of Chicago รัฐบาลสหรัฐ โดยเฉพาะอย่างยิ่งผ่านกองทัพ สนับสนุนเครื่องยุคแรกจำนวนมาก และสมควรได้รับเครดิตอย่างมากที่ช่วยจุดประกายปฏิวัติคอมพิวเตอร์

การผลิตคอมพิวเตอร์อิเล็กทรอนิกส์เชิงพาณิชย์ครั้งแรกอยู่ภายใต้ Mauchly และ Eckert อีกครั้ง และเนื่องจากบริษัทที่พวกเขาก่อตั้งรวมกับบริษัทอื่น เครื่องของพวกเขาจึงถูกเรียกว่า UNIVAC โดยเฉพาะรุ่นสำหรับ Census Bureau IBM เข้ามาช้าเล็กน้อยด้วย IBM 701 จำนวน 18 เครื่อง (20 ถ้านับผู้ใช้ลับทางการเข้ารหัส) ผมจำได้ดีว่ากลุ่มคนของเราหลังจากเซสชันเกี่ยวกับ IBM 701 ที่การประชุม เมื่อพวกเขาพูดถึงเครื่องที่เสนอ 18 เครื่อง พวกเราทุกคนเชื่อว่านี่จะอิ่มตลาดไปหลายปี! ข้อผิดพลาดของเราคือเราคิดแค่มุมที่เราทำอยู่ในขณะนั้น และไม่คิดไปถึงทิศทางของการใช้งานใหม่ทั้งหมด ผู้เชี่ยวชาญชั้นยอดในเวลานั้นผิดอย่างสิ้นเชิง และไม่ใช่น้อยๆ ด้วย! และไม่ใช่ครั้งสุดท้ายด้วย!

ขอเปรียบเทียบบางอย่าง:

เครื่องคิดเลขแบบใช้มือ 1/20 ops. per sec.
เครื่องรีเลย์ 1 op. per sec. typically
เครื่องที่ใช้ดรัมแม่เหล็ก 15–1,000, ขึ้นอยู่กับ fixed หรือ floating point
ประเภท 701 1,000 ops. per sec.
ปัจจุบัน (1990) 109 (around the fastest of the von Neumann type)

การเปลี่ยนแปลงด้านความเร็วและความจุหน่วยความจำที่ผมต้องผ่านมาควรให้คุณเห็นภาพว่าคุณจะต้องทนต่ออะไรบ้างในสายอาชีพของคุณ แม้แต่สำหรับเครื่องแบบ von Neumann ก็น่าจะยังมีปัจจัยความเร็วอีกประมาณ 100 เท่าก่อนจะถึงจุดอิ่มตัว

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

สรุป: | | | | | | --- | --- | --- | --- | | milli (m) | 10–3 | kilo (k) | 103 | | micro (µ) | 10–6 | mega (M) | 106 | | nano (n) | 10–9 | giga (G) | 109 | | pico (p) | 10–12 | terra (T) | 1012 | | femto (f) | 10–15 | | | | atto (a) | 10–18 | | |

ตอนนี้มาสู่มิติเชิงมนุษย์ ในหนึ่งวันมี 60 × 60 × 24 = 86,400 วินาที ในหนึ่งปีมีใกล้เคียงกับ 3.15 × 107 วินาที และใน 100 ปี ซึ่งน่าจะยืนยาวกว่าชีวิตของคุณ มีประมาณ 3.15 × 109 วินาที ดังนั้นในสามวินาที เครื่องที่ทำการลอยตัวจุดทศนิยมได้ 109 การดำเนินการต่อวินาที (flops) จะทำการมากกว่าจำนวนวินาทีทั้งหมดในชีวิตคุณ และแทบจะมั่นใจว่าจะได้ผลที่ถูกต้องทั้งหมด!

อีกแนวทางเพื่อให้เห็นมิติในเชิงมนุษย์คือ ความเร็วของแสงในสุญญากาศประมาณ 3 × 1010 ซม./วินาที (บนสายไฟจะประมาณ 7/10 ของค่านี้) ดังนั้นในหนึ่งนาโนวินาที แสงจะเดินทางได้ประมาณ 30 ซม. ประมาณหนึ่งฟุต ในหนึ่งพิโควินาที ระยะทางจะประมาณ 1/100 นิ้ว ระยะเหล่านี้แสดงระยะทางที่สัญญาณสามารถเดินทางได้ (ในสภาวะดีที่สุด) ใน IC ดังนั้นที่อัตราพัลส์บางค่าที่เราใช้ ตอนนี้ชิ้นส่วนต้องอยู่ใกล้กันมาก—ใกล้ในมิติของมนุษย์—หากไม่เช่นนั้นความเร็วที่เป็นไปได้มากจะสูญเสียไปในการส่งระหว่างชิ้นส่วน นอกจากนี้เราไม่สามารถใช้การวิเคราะห์วงจรรวม (lumped circuit analysis) ได้อีกต่อไป

ถ้าคุณคิดถึงมิติทางธรรมชาติของความยาวแทนมิติของมนุษย์ อะตอมมีขนาดทั่วไปประมาณ 1 ถึง 3 อังสตรอม (1 อังสตรอม = 10-8 ซม.) ในผลึกอะตอมมีช่องว่างประมาณ 10 อังสตรอมเป็นส่วนใหญ่ ใน 1 femtosecond แสงเดินทางได้ข้ามประมาณ 300 อะตอม ดังนั้นชิ้นส่วนในคอมพิวเตอร์ที่เร็วมากต้องมีขนาดเล็กและอยู่ใกล้กันมาก!

ถ้าคุณคิดถึงทรานซิสเตอร์ที่ใช้การเติมสิ่งเจือปน (impurities) ซึ่งปกติแล้วมีสัดส่วนประมาณหนึ่งในล้านโดยทั่วไป คุณอาจไม่เชื่อว่าทรานซิสเตอร์ที่มีอะตอมหนึ่งอะตอมที่ไม่บริสุทธิ์จะทำงานได้ แต่ถ้าคุณลดอุณหภูมิเพื่อลดเสียงรบกวนพื้นหลัง 1,000 สิ่งเจือปนอาจอยู่ในจินตนาการของคุณ—จึงทำให้ตัวอุปกรณ์แบบแข็ง (solid-state device) มีขนาดอย่างน้อยประมาณ 1,000 อะตอมด้านหนึ่ง เมื่อการเชื่อมต่อในเวลาเดินทางอย่างน้อยสิบครั้งของระยะทางอุปกรณ์ คุณจะเห็นว่าการลดให้ต่ำกว่า 100,000 อะตอมระหว่างอุปกรณ์บางตัวจริงๆ แล้วเป็นการผลักดันขีดจำกัด (ประมาณ 3 พิโควินาที)

จากนั้นเราจึงเพิ่มหน่วยคำนวณเป็นสอง สี่ และมากกว่านั้นในคอมพิวเตอร์เดียวกัน และยังออกแบบ pipelines และ cache memories ขึ้นมา สิ่งเหล่านี้ล้วนเป็นก้าวเล็กๆ สู่คอมพิวเตอร์ที่มีการขนานสูง

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

จากแผนภูมิที่ Los Alamos สร้างขึ้นนานมาแล้วโดยใช้ข้อมูลของคอมพิวเตอร์ที่เร็วที่สุดในตลาด ณ เวลานั้น พวกเขาพบสมการสำหรับจำนวนการดำเนินการต่อวินาทีว่า

สรุป: From a chart drawn up long ago by Los Alamos (lanl) using the data of the fastest current computer on the market at a given time, they found the equation for the number of operations per second was

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

อีกครั้ง เพื่อให้ลดให้เป็นขนาดมนุษย์ เมื่อผมเริ่มทำให้การคำนวณดิจิทัลเริ่มจริงจังใน Bell Telephone Laboratories ผมเริ่มจากการเช่าเครื่องจากภายนอกเป็นชั่วโมงๆ หัวหน้าภาควิชาคณิตศาสตร์คำนวณเองว่าถ้าเป็นเช่นนั้นจะถูกกว่าให้ผมมีเครื่องในห้องปฏิบัติการ—เป็นกลยุทธ์ที่ตั้งใจของผมเพื่อหลีกเลี่ยงการโต้แย้งกับเขา เพราะผมคิดว่าจะเสียเวลาและจะทำให้ได้ การต่อต้าน มากขึ้นเมื่อต้องคัดค้านหัวหน้า แล้วมันยากมากที่จะเปลี่ยนใจหัวหน้าถ้าเขาพูดว่า “ไม่!” ดังนั้นอย่าให้พวกเขาพูดว่า “ไม่!” กับข้อเสนอของคุณ ในช่วงปีแรกๆ ผมพบว่าผมกำลังเพิ่มจำนวนการคำนวณเป็นสองเท่าทุกๆ ประมาณ 15 เดือน ต่อมาผมถูกจำกัดให้เพิ่มเป็นสองเท่าประมาณทุก 18 เดือน หัวหน้าภาควิชาบอกผมว่าผมไม่สามารถทำอย่างนั้นต่อไปได้ตลอดไป และคำตอบสุภาพของผมก็มักจะเป็น “คุณพูดถูกแน่นอน แต่คุณจะได้เห็นผมเพิ่มการคำนวณเป็นสองเท่าทุก 18–20 เดือน!” เพราะเครื่องที่มีอยู่ตามทันอัตรานั้น นี่ทำให้ผมและผู้สืบทอดของผมเป็นเวลาหลายปีสามารถเพิ่มการคำนวณที่ทำได้เป็นสองเท่า เราอาศัยอยู่บนส่วนที่เกือบเป็นเส้นตรงของกราฟ S ตลอดหลายปีนั้น

อย่างไรก็ตาม ให้ผมสังเกตอย่างตรงไปตรงมาต่อหัวหน้าภาควิชา คำพูดของเขาทำให้ผมตระหนักว่าไม่ใช่จำนวนการดำเนินการที่สำคัญ แต่เป็น จำนวน micro-Nobel prizes ที่ผมคำนวณได้ต่างหากจึงสำคัญ นั่นคือคติของหนังสือที่ผมตีพิมพ์ในปี 1961:

วัตถุประสงค์ของการคำนวณคือความเข้าใจ ไม่ใช่ตัวเลข.

เพื่อนคนหนึ่งของผมปรับคำกล่าวนี้เป็น:

เป้าหมายของการคำนวณตัวเลขยังไม่อยู่ในสายตา.

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

จากส่วนประกอบเหล่านี้เราสร้างการรวมซึ่งช่วยให้เราจัดเก็บอาเรย์ของบิตที่ยาวขึ้น อาเรย์เหล่านี้มักเรียกว่า number registers การควบคุมเชิงตรรกะก็เป็นการรวมของหน่วยเก็บข้อมูลรวมทั้งเกต เราสร้าง adder จากอุปกรณ์เช่นนี้ รวมทั้งหน่วยที่ใหญ่ขึ้นทุกหน่วยของคอมพิวเตอร์

เมื่อไปสู่หน่วยที่ใหญ่ขึ้น เรามีเครื่องที่ประกอบด้วย: (1) อุปกรณ์เก็บข้อมูล, (2) การควบคุมส่วนกลาง, (3) หน่วย ALU หมายถึง arithmetic and logic unit ในการควบคุมส่วนกลางมีรีจิสเตอร์ตัวเดียวซึ่งเราจะเรียกว่า Current Address Register (CAR) มันเก็บที่อยู่ของคำสั่งถัดไปที่จะพบ Figure 3.1.

Figure 3.1—โครงสร้างคอมพิวเตอร์

วงจรการทำงานของคอมพิวเตอร์คือ:

  1. ดึงที่อยู่ของคำสั่งถัดไปจาก CAR.
  2. ไปยังที่อยู่นั้นในหน่วยความจำและดึงคำสั่งนั้นมา.
  3. ถอดรหัสและปฏิบัติตามคำสั่งนั้น.
  4. บวก 1 เข้ากับที่อยู่ใน CAR แล้วเริ่มทำซ้ำ.

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

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

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

แต่ก่อนจะจบหัวข้อนี้ ขอให้ระลึกว่าในกรีกโบราณ Democritus (460–362 BC) สังเกตว่า “All is atoms and void.” เขาจึงแสดงมุมมองของนักฟิสิกส์ยุคใหม่หลายคน: โลก รวมทั้งคุณและผม ประกอบด้วยโมเลกุล และเราอยู่ในสนามพลังงาน เราไม่มีอะไรเพิ่มเติม! เราเป็นเครื่องหรือไม่? หลายคนไม่ต้องการสรุปเช่นนี้ และรู้สึกว่ามีบางอย่างมากกว่าเพียงโมเลกุลที่ชนกันไปมาอย่างไม่มีความหมาย ซึ่งเป็นมุมมองหนึ่งของคอมพิวเตอร์ เราจะกลับไปหารือเรื่องนี้ในบทที่ 6–8 ภายใต้หัวข้อ Artificial Intelligence (AI)

มีคุณค่าในมุมมองของเครื่องว่าคอมพิวเตอร์เป็นเพียงชุดของอุปกรณ์เก็บข้อมูลและเกตที่ประมวลผลบิต และไม่มีอะไรอื่น มุมมองนี้มีประโยชน์ในบางครั้งเมื่อต้อง debug (ค้นหาข้อผิดพลาด) ในโปรแกรม; แท้จริง มันคือสิ่งที่คุณต้องสมมุติเมื่อพยายาม debug คุณสมมุติว่าเครื่องปฏิบัติตามคำสั่งทีละคำสั่งและไม่ทำอะไรอื่น—มันไม่มี "เจตจำนงเสรี" หรือคุณสมบัติอื่นๆ เช่น self-awareness หรือ self-consciousness ที่เรามักเชื่อมโยงกับมนุษย์

เราแตกต่างจากเครื่องอย่างไรในทางปฏิบัติ? เราทุกคนอยากคิดว่าเราแตกต่างจากเครื่อง แต่เราจริงๆ แล้วแตกต่างหรือไม่? นี่เป็นประเด็นอ่อนไหวสำหรับคนส่วนใหญ่ และแง่มุมด้านอารมณ์และศาสนามักจะครอบงำการถกเถียงส่วนใหญ่ เราจะกลับไปที่ประเด็นนี้ในบทที่ 6–8 เกี่ยวกับ AI เมื่อเรามีพื้นฐานมากขึ้นเพื่ออภิปรายกันอย่างเหมาะสม

สรุป: How different are we in practice from the machines? We would all like to think we are different from machines, but are we essentially? It is a touchy point for most people, and the emotional and religious aspects tend to dominate most arguments. We will return to this point in Chapters 6–8 on ai when we have more background to discuss it reasonably.