‹

04 · สถาปัตยกรรมคอมพิวเตอร์

04 · ​สถาปัตยกรรม​คอมพิวเตอร์

​บท​นี้​คือ​ชั้น​ที่​ฟิสิกส์​กลายเป็น​ตรรกะ — ​ชั้นล่าง​สุด​ที่​หนังสือ​เล่ม​นี้​ลง​ไป​ถึง ​และ​เป็น​ชั้น​ที่​ทุก​ชั้น​เหนือ​ขึ้นไป​ยืน​อยู่​บน

​ดึง​เลขคณิต​ออกมา​จาก​ไฟฟ้า​ได้​อย่างไร

​โปรเซสเซอร์ Nvidia Blackwell B200 ​ตัว​เดียว​มี​ทรานซิสเตอร์ (transistor) 208 billion ​ตัว ​ทรานซิสเตอร์​ทำได้​อย่าง​เดียว ​คือ​นำ​ไฟฟ้า ​หรือไม่​นำ ​มัน​บวก​เลข​ไม่​เป็น ​ไม่​มี​ความคิด​เรื่อง​ตัวเลข​หรือ​ปริมาณ​อยู่​ใน​ตัว​เลย​สักนิด ​แต่​ระหว่าง​สวิตช์​ตัว​นั้น​กับ​เลขคณิต​ที่ทำงาน​อยู่​ใต้​ประโยค​นี้ ​ความหมาย​กลับ​โผล่​ขึ้น​มา ​และ​มัน​ไม่​ได้​อยู่​ใน​ชิ้นส่วน​ไหน​เลย​สัก​ชิ้น ​บท​นี้​ว่าด้วย​ว่า​มัน​อยู่​ตรงไหน​กัน​แน่

​คำตอบ​คือ​การประกอบ​กัน (composition) ​และ​มัน​เก่าแก่​กว่า​คอมพิวเตอร์ ​ใน​วิทยานิพนธ์​ปริญญาโท​ที่ Claude Shannon ​ยื่น​ให้ MIT ​ใน​ปี 1937 ​เขา​แสดงว่า​พีชคณิต​สอง​ค่าที่ George Boole ​สร้าง​ขึ้น​เพื่อ​ทำให้​ตรรกะ​เป็น​รูป​นัย ​อธิบาย​พฤติกรรม​ของ​วงจร​ที่​สร้าง​จาก​สวิตช์​ได้​ตรง​เป๊ะ (​ต้นฉบับ​ของ MIT) ​สวิตช์​สอง​ตัวต่อ​อนุกรม​คือ AND ​ต่อ​ขนาน​คือ OR ​ความสอดคล้อง​นี้​คือ​บานพับ​ของ​หอคอย (tower) ​ทั้ง​หลัง ​วงจร​ถูก ​ออกแบบ ​ขึ้น​ใน​ฐานะ​ข้อโต้แย้ง​หนึ่ง​ได้ ​แทนที่จะ​ลองผิดลองถูก​จน​ใช้งาน​ได้ ​หลังจากนั้น​ทางขึ้น​ก็​สั้น​และ​เป็น​กลไก​ล้วนๆ ​เกต​ตรรกะ (logic gate) ​ห้า​ตัว — XOR ​สอง​ตัว AND ​สอง​ตัว OR ​หนึ่ง​ตัว — ​ประกอบ​กัน​เป็น​วงจร​บวก​แบบ​เต็ม (full adder) ​หนึ่ง​ตัว ​บวก​บิต​สอง​ตัว​กับ​ตัว​ทด​อีก​หนึ่ง​ตัว ​ต่อกัน​เข้าไป 64 ​ตัว ​เครื่อง​ก็​บวก​จำนวนเต็ม 64 ​บิต​ได้ ​ระหว่างทาง​ไม่​มี​อะไร​ถูก​เติม​เข้ามา​นอกจาก​การจัดเรียง ​เลขคณิต​ไม่​ได้​อยู่​ใน​ไฟฟ้า ​มัน​อยู่​ใน​รูปทรง

​ไอเดีย​ที่สอง​มาจาก​เอกสาร​ที่​ไม่​มี​ใคร​เขียน​จบ ​เดือน​มิถุนายน 1945 Herman Goldstine ​แจกจ่าย​สำเนา 24 ​ชุด​ของ​ร่าง 101 ​หน้าที่ John von Neumann ​เขียน ​ชื่อ First Draft of a Report on the EDVAC (​สแกน​ต้นฉบับ) ​แกนกลาง​ของ​มัน​คือ​โปรแกรม​ที่เก็บ​ใน​หน่วยความจำ (stored program) — ​เก็บ​คำสั่ง​เครื่อง​ไว้​ใน​หน่วยความจำ​ก้อน​เดียว​กับ​ข้อมูล ​ฟัง​ดูเหมือน​แค่​การตัดสินใจ​เรื่อง​จัดเก็บ​เอกสาร ​แต่​มัน​คือ​เหตุผล​ที่​หอคอย​ชั้นบน​ทั้งหมด​มี​อยู่​ได้ ​ถ้า​โปรแกรม​เป็น​แค่​ตัวเลข​ใน​หน่วยความจำ ​โปรแกรม​ก็​อ่าน ​เขียน ​และ​สร้าง​โปรแกรม​อื่น​ได้ ​ซึ่ง​คือ​สิ่ง​ที่​เครื่องมือ​ทุก​ชิ้น​ใน​บท​ที่ 06 ​ทำ ​เอกสาร​นี้​ลงชื่อ von Neumann ​อยู่​คนเดียว ​และ​ก่อการ​โต้เถียง​ยาว 60 ​ปี J. Presper Eckert ​และ John Mauchly ​ยืนยัน​ว่า​ไอเดีย​นี้​ออกมา​จาก​การประชุม​กลุ่ม​ที่ Moore School ​และ​การแจกจ่าย​เอกสาร​ใน​วงกว้าง​ต่อมา​ก็​ถูก​นับ​เป็นหลัก​ฐาน​สิ่ง​ที่​มี​มา​ก่อน (prior art) ​ที่​ช่วย​ให้​สิทธิบัตร ENIAC ​เป็น​โมฆะ​ใน​ปี 1973 ​บทเรียน​รอด​จาก​การทะเลาะ​กัน​มา​ได้ ​คุณสมบัติ​ที่​สำคัญ​ที่สุด​ของ​เครื่อง​คือ​การตัดสินใจ​ว่า​จะ ​ไม่ ​แยก​อะไร​ออกจาก​กัน

​ไอเดีย​ที่สาม​คือ​ไอเดีย​ที่​ให้​ชื่อ​กับ​ชั้นนี้ ​วันที่ 7 ​เมษายน 1964 IBM ​ประกาศ​เปิดตัว System/360 ​ตระกูล​เครื่อง​ที่​ขนาด ​ความเร็ว ​และ​ราคา​ต่างกัน ​แต่​สร้าง​มา​ให้​รัน​โปรแกรม​ชุด​เดียวกัน​ได้ Gene Amdahl, Gerrit Blaauw ​และ Frederick Brooks ​นิยาม architecture ​ว่า​คือ "​คุณลักษณะ​ของ​ระบบ​ตามที่​โปรแกรมเมอร์​มองเห็น ​กล่าวคือ​โครงสร้าง​เชิง​แนวคิด​และ​พฤติกรรม​เชิง​หน้าที่ ​ต่าง​จาก​การจัดการ data flow ​และ​การควบคุม ​การออกแบบ​เชิง​ตรรกะ ​และ​การนำ​ไป​ปฏิบัติ​จริง​ทางกายภาพ" (Amdahl, Blaauw & Brooks, 1964) ​ความต่าง​นั้น​คือ​ผิว (surface) ​ของ​ชั้นนี้ ​ชุดคำสั่ง (instruction set) ​หนึ่ง​ชุด​คือ ​สัญญา ​ฮาร์ดแวร์​สัญญา​ว่า​คำสั่ง​เครื่อง​แต่ละ​ตัว​หมายถึง​อะไร ​และ​ไม่​สัญญา​สัก​คำ​ว่า​จะ​รักษา​สัญญา​นั้น​ด้วย​วิธี​ไหน ​หลัง​สัญญา​ที่​ไม่​เคย​เปลี่ยน​ฉบับ​นั้น ​วิศวกร​เปลี่ยน​แทบ​ทุกอย่าง — ​ทำ pipelining ​ให้​คำสั่ง​เครื่อง​หลาย​ตัว​อยู่​ระหว่าง​ดำเนินการ​พร้อมกัน ​สั่งทำ​งาน​นอก​ลำดับ ​เดา​ทางแยก​ของ​โปรแกรม​และ​ย้อนกลับ​เมื่อ​เดา​ผิด ​ฝั่ง​โปรแกรมเมอร์​ของ​สัญญา​ไม่​เอ่ยถึง​เรื่อง​พวก​นี้​เลย​สัก​คำ ​นี่​คือ​เหตุผล​ที่​ซอฟต์แวร์​อยู่​ได้​นาน​กว่า​ฮาร์ดแวร์​ที่​มัน​ถูก​เขียน​ขึ้น​มา​ให้

​สัญญา​มี​ตัวหนังสือ​ตัวเล็ก ​และ​ตัวหนังสือ​ตัวเล็ก​นั้น​คือ​จุด​ที่​ชั้นนี้​รั่ว ​ใน​ปี 1995 William Wulf ​และ Sally McKee ​ตีพิมพ์​บันทึก​สั้น​สองหน้า​ชื่อ "Hitting the Memory Wall: Implications of the Obvious" ​เลขคณิต​ของ​พวกเขา​ใช้​ตัวเลข​ที่​ทุกคน​มี​อยู่แล้ว ​หน่วยความจำ​เร็ว​ขึ้น​ราว​ปี​ละ 7 ​เปอร์เซ็นต์ ​โปรเซสเซอร์​เร็ว​ขึ้น​ราว 80 ​เปอร์เซ็นต์ ​พอ​ทบต้น​กัน​ไป ​ช่องว่าง​นี้​ทำนาย​ว่า​ภายใน​ปี 2010 ​การเข้าถึง​หน่วยความจำ​โดยเฉลี่ย​จะ​กิน cycle ​ของ​โปรเซสเซอร์​ไป​ราว 99 cycle — ​เครื่อง​ที่​ใช้ชีวิต​ส่วนใหญ่​ไป​กับ​การรอ ​สิ่ง​ที่​กัน​กำแพง​นี้​ไว้​ไม่​ใช่​ทฤษฎีบท ​แต่​คือ​ความสม่ำเสมอ​เชิงประจักษ์​อย่างหนึ่ง ​คือ locality ​โปรแกรม​มัก​แตะ​ข้อมูล​เดิม​ซ้ำ​ใน​เวลา​ไม่​นาน ​และ​แตะ​ข้อมูล​ที่อยู่​ใกล้​กับ​สิ่ง​ที่​เพิ่ง​แตะ​ไป ​สถาปนิก​จึง​วาง​ลำดับชั้น​หน่วยความจำ (memory hierarchy) ​ที่​มี​หน่วยความจำ​เล็ก​เร็ว​อยู่​หน้า​หน่วยความจำ​ใหญ่​ช้า ​และ​พนัน​กับ​นิสัย​นั้น — ​ความสม่ำเสมอ​เชิงประจักษ์​ที่​ถูก​ใช้ประโยชน์​มาก​ที่สุด​ใน​วงการ​คอมพิวเตอร์ ​และ​มัน​มักจะ​ชนะ ​เมื่อ​มัน​แพ้ ​ลูป​สอง​ลูป​ที่​ตรรกะ​เหมือนกัน​เป๊ะ — ​ปฏิบัติการ​เดียวกัน ​ผลลัพธ์​เดียวกัน — ​อาจ​กินเวลา​ต่างกัน​มหาศาล ​ด้วย​เหตุผล​ที่ instruction set ​ไม่​พูดถึง ​และ​ซอร์ส​โค้ด​ไม่​แสดงให้เห็น ​การรู้​ว่า​ช่องว่าง​แบบ​นั้น​เป็นปัญหา​เรื่อง ​หน่วยความจำ ​ที่อยู่​ลึก​ลง​ไป​สามชั้น ​ไม่​ใช่​ปัญหา​เรื่อง​อัลกอริทึม ​คือ​ความเชี่ยวชาญ​เชิง​ปฏิบัติ​ส่วนใหญ่​ใน​วงการ​คอมพิวเตอร์

​ไอเดีย​สุดท้าย​คือ​ชั้นนี้​เลิก​ฟรี​แล้ว ​บทความ​ใน​นิตยสาร​ปี 1965 ​ของ Gordon Moore ​สังเกตว่า​จำนวน​ชิ้นส่วน​บน​ชิป​เพิ่ม​เป็น​สองเท่า​ทุกปี ​อัตรา​ที่​เขา​แก้​เป็น​ทุก​สอง​ปี​ใน​ปี 1975 ​ส่วน​คำ​โด่งดัง​อย่าง "​สิบ​แปด​เดือน (eighteen months)" ​ไม่​ปรากฏ​ใน​ทั้งสอง​ฉบับ ​สิ่ง​ที่​ทำให้​การย่อ​ทรานซิสเตอร์ ​รู้สึก ​เหมือน​ฟรี ​คือ​กฎ​อีก​ข้อ​จาก Robert Dennard ​และ​เพื่อนร่วมงาน​ใน​ปี 1974 — ​ย่อ​ขนาด​และ​แรงดัน​ไฟ​ไป​พร้อมกัน ​ความหนาแน่น​ของ​กำลัง​ไฟ​จะ​คงที่ ​ทรานซิสเตอร์​ที่​เพิ่มขึ้น​จึง​ไม่​กินความ​ร้อน​เพิ่ม (Dennard et al., 1974) ​ราว​ปี 2005 ​กฎ​นี้​หยุด​ใช้ได้ — ​แรงดัน​ไฟ​ลด​ต่อไป​ไม่​ได้​อีก​โดย​ไม่​เกิด​การรั่วไหล​ของ​กระแส — ​และ​หอคอย​ทั้ง​หลัง​รู้สึก​ถึง​มัน ​เพราะ​ตลอด​สี่​ทศวรรษ ​ทุก​ชั้น​เหนือ​ขึ้นไป​เร็ว​ขึ้น​เรื่อยๆ ​โดย​ไม่ต้อง​ทำ​อะไร​เลย ​สถาปนิก​ตอบ​ด้วย​การใช้​ทรานซิสเตอร์​ไป​ใน​ทาง​อื่น ​ข้อ​แรก​คือ​เพิ่มจำนวน​คอร์ (core) ​จากนั้น​ไป​ที่​ชิป​ที่ทำงาน​ได้​น้อยลง​แต่​ทำได้​ดีขึ้น Tensor Processing Unit ​ตัว​แรก​ของ Google ​ที่​บรรยาย​ไว้​ใน​งาน ISCA ​ปี 2017 ​ตัด​แทบ​ทุกอย่าง​ที่​โปรเซสเซอร์​ทั่วไป​มี​ทิ้ง​ไป ​และ​รายงาน​ว่า ​บน​งาน​ที่ตั้ง​ใจ​ให้​มัน​ทำ ​มัน​ให้​จำนวน​ปฏิบัติการ​ต่อ​วัตต์​มากกว่า Nvidia K80 GPU ​ร่วมสมัย 25 ​ถึง 29 ​เท่า ​และ​มากกว่า Intel CPU ​ร่วมสมัย 41 ​ถึง 83 ​เท่า — ​ช่วง​ที่​ต่างกัน​ขึ้นอยู่กับ​วิธี​นับ​กำลัง​ไฟ (Jouppi et al., 2017) John Hennessy ​และ David Patterson ​ผู้รับ​รางวัล Turing Award ​ปี 2017 ​จาก​แนวทาง​เชิง​ปริมาณ​ที่​ทำให้​การเปรียบ​เทียบ​แบบนี้​เป็นไปได้ ​เรียก​ผลลัพธ์​นี้​ว่า​ยุคทอง​ใหม่​ของ​สถาปัตยกรรม​คอมพิวเตอร์ ​สังเกต​สิ่ง​ที่​เปลี่ยนไป — ​ความเร็ว​เคย​มาจาก​ชั้นล่าง​ใน​ฐานะ​ของขวัญ ​ตอนนี้​มัน​ต้อง​ต่อรอง​เอา

​ผู้คน​พัวพัน​กับ​ไอเดีย​เหล่านี้​อย่าง​ผิดปกติ Amdahl ​เป็น​สถาปนิก​ของ System/360 ​และ​ลาออก​จาก IBM ​ใน​ปี 1970 ​ไป​ตั้ง​บริษัท​สร้าง​เครื่อง​ที่​เข้ากันได้​โดยตรง (plug-compatible) ​กับ​สัญญา​ฉบับ​ที่​ตัวเอง​ร่าง​ไว้ — architecture ​อยู่​ได้​นาน​กว่า​การเป็น​พนักงาน​ของ​ผู้เขียน​มัน​เอง ​และ​นั่น​คือ​บทพิสูจน์​ที่​หนักแน่น​ที่สุด​ว่า​มัน​คือ​อินเทอร์เฟซ​ที่​มี​อยู่​จริง Dennard ​คิดค้น​เซลล์​หน่วยความจำ​แบบ​ทรานซิสเตอร์​เดียว​ใน​ปี 1966 (​สิทธิบัตร​ได้รับ​อนุมัติ​มิถุนายน 1968) ​และ​เขียน​กฎ​การย่อ​ขนาดที่​ทำให้​โปรเซสเซอร์​วิ่ง​แซง​หน้า​มัน​ไป ​คน​คนเดียว​รับผิดชอบ​ทั้ง​หน่วยความจำ​ที่​ช้า​เกินไป ​และ​เหตุผล​ที่​มัน​สำคัญ

​เชื่อมโยง

​ใต้​บท​นี้​ใน​หนังสือ​เล่ม​นี้​ไม่​มี​อะไร​อีกแล้ว — ​บท​ที่ 01 ​ถึง 03 ​ว่าด้วย​สิ่ง​ที่​คำนวณ​ได้​และ​สารสนเทศ​คือ​อะไร ​คำถาม​ที่​เป็นจริง​ไม่​ว่า​จะ​เป็น​เครื่อง​ไหน​หรือไม่​มี​เครื่อง​เลย ​เหนือ​ขึ้นไป ​บท​ที่ 05 ​เอา​เครื่อง​เดียว​นี้​มา​ทำให้​มัน​ทำตัว​เหมือน​มี​หลาย​เครื่อง ​โดย​ใช้​ฮาร์ดแวร์​ป้องกัน​และ​ตัว​จับเวลา​ที่​ชั้นนี้​ยื่น​ให้ ​บท​ที่ 06 ​เปลี่ยน​สัญญา instruction set ​ให้​เป็น​สิ่ง​ที่​คนเขียน​ได้ ​โมเดล​ต้นทุน​ของ​บท​ที่ 02 ​แอบ​สมมติ​ว่า​หน่วยความจำ​ตอบ​ด้วย​เวลา​คงที่ ​ซึ่ง​ชั้นนี้​ไม่​ได้​ให้ ​อ่าน​สอง​บท​เทียบ​กัน ​ความขัดแย้ง​นั้น​สอน​อะไร​ได้ ​บท​ที่ 12 ​คือ​จุด​ที่​การเฉพาะทาง​กำลัง​มุ่ง​ไป​ตอนนี้ ​และ​บท​ที่ 14 ​ถาม​ว่า​กำแพง​พลังงาน (energy wall) ​จะ​ทำ​อะไร​กับ​ทั้งหมด​นี้

​คำถาม​ที่​ยัง​เปิด​อยู่

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

​อ่าน​ต่อ

บทถัดไป · 6 / 1605 · ระบบปฏิบัติการ
Size
Page
Font

The Tower of Abstractions — An Encyclopedia of the Computing Disciplines

❦
100 · แผนที่201 · ทฤษฎีการคำนวณ302 · อัลกอริทึมและโครงสร้างข้อมูล403 · สารสนเทศและการเข้ารหัส504 · สถาปัตยกรรมคอมพิวเตอร์605 · ระบบปฏิบัติการ706 · ภาษาและคอมไพเลอร์807 · วิศวกรรมซอฟต์แวร์908 · ฐานข้อมูล1009 · เครือข่าย1110 · ระบบกระจาย1211 · ความปลอดภัยและวิทยาการรหัสลับ1312 · ปัญญาประดิษฐ์และการเรียนรู้ของเครื่อง1413 · ปฏิสัมพันธ์มนุษย์–คอมพิวเตอร์ และกราฟิกส์1514 · พรมแดน1699 · ปิดเล่ม — หอคอยเมื่อมองทั้งหลัง