ข้าม​ไป​ยัง​เนื้อหา

Moore’s Law

จำนวน​ทรานซิสเตอร์​บน​ชิป​เพิ่ม​เป็น​สอง​เท่า​ราว​ทุก​สอง​ปี

Moore’s Law เป็น​ข้อสังเกต​พื้นฐาน​ด้าน​อุตสาหกรรม​เซมิ​คอนดักเตอร์​ที่ Gordon Moore ผู้​ร่วม​ก่อตั้ง Intel เสนอ​ไว้​ใน​บทความ “Cramming More Components onto Integrated Circuits” ที่​ตี​พิมพ์​ใน​นิตยสาร Electronics ฉบับ​วัน​ที่ 19 เมษายน 1965 ขณะ​นั้น Moore ดำรง​ตำแหน่ง​ผู้​อำนวย​การ​ฝ่าย​วิจัย​และ​พัฒนา​ของ Fairchild Semiconductor และ​ถูก​ขอ​ให้​คาด​การณ์​อนาคต​ของ​อุตสาหกรรม​ชิ้น​ส่วน​เซมิ​คอนดักเตอร์​ใน​อีก​สิบ​ปี​ข้าง​หน้า

ใน​บทความ​ต้นฉบับ Moore ลาก​เส้น​ผ่าน​จุด​ข้อมูล​ห้า​จุด​ที่​แสดง​จำนวน​ส่วนประกอบ​ต่อ​วงจร​รวม​หนึ่ง​ชิ้น​ใน​ช่วง​ปี 1959-1964 (นับ​ที่​ต้นทุน​ต่อ​ส่วนประกอบ​ต่ำ​ที่สุด) แล้ว​ต่อ​เส้น​แนวโน้ม​นั้น​ไป​ถึง​ปี 1975 เขา​คาด​การณ์​ว่า​จำนวน​ส่วนประกอบ​ต่อ​ชิป​จะ​เพิ่ม​เป็น​สอง​เท่า​ทุก​ปี จนถึง​ราว 65,000 ชิ้น​ภายใน​ปี 1975 ต่อ​มา​ใน​ปี 1975 Moore ได้​ปรับ​คาด​การณ์​ใหม่​เป็น “เพิ่ม​เป็น​สอง​เท่า​ทุก​สอง​ปี” ซึ่ง​เทียบเท่า​อัตรา​เติบโต​ทบ​ต้น​ราว 41% ต่อ​ปี และ​คำ​ว่า “Moore’s Law” เอง​ก็​ถูก​ตั้ง​ชื่อ​ขึ้น​ภายหลัง​โดย Carver Mead ศาสตราจารย์​จาก Caltech ไม่ใช่​โดย Moore เอง

ที่​น่า​สนใจ​คือ Moore’s Law ไม่ใช่​กฎ​ทาง​ฟิสิกส์​แต่​อย่าง​ใด มัน​คือ​การ​คาด​การณ์​เชิง​เศรษฐศาสตร์​และ​วิศวกรรม​ที่​อาศัย​การ​ปรับปรุง​กระบวนการ​ผลิต​อย่าง​ต่อ​เนื่อง และ​ใน​เวลา​ต่อ​มา​มัน​ได้​กลาย​เป็น “คำ​ทำนาย​ที่​ทำให้​ตัว​มัน​เอง​เป็น​จริง” (self-fulfilling prophecy) เพราะ​ทั้ง​อุตสาหกรรม​ใช้​มัน​เป็น​เป้าหมาย​ใน​การ​วางแผน​วิจัย​และ​พัฒนา รวม​ถึง​กำ​หนดโรด map การ​ผลิต​ของ​ตนเอง​ให้​สอดคล้อง​กับ​มัน

แม้​จะ​เริ่มต้น​เป็น​ข้อสังเกต​ด้าน​ฮาร์ดแวร์​ล้วน ๆ แต่ Moore’s Law ก็​ส่ง​ผล​สะเทือน​อย่าง​ลึกซึ้ง​ต่อ​วิธี​คิด​และ​วิธี​ทำงาน​ของ​วงการ​ซอฟต์แวร์​มา​หลาย​ทศวรรษ:

  • พลัง​ประมวล​ผล​ราคา​ถูก​ลง​เรื่อย ๆ — เมื่อ​ทรานซิสเตอร์​เพิ่ม​ขึ้น​เป็น​สอง​เท่า​โดย​ต้นทุน​ใกล้​เคียง​เดิม นัก​พัฒนา​ก็ได้​รับ “งบประมาณ” ด้าน​ประสิทธิภาพ​เพิ่ม​ขึ้น​ทุก​ปี​โดย​แทบ​ไม่​ต้อง​ทำ​อะไร​เลย สิ่ง​นี้​ทำให้ application ที่​ซับซ้อน​ขึ้น​เรื่อย ๆ (graph ิก 3 มิติ, machine learning, big data analytics) กลาย​เป็น​ไป​ได้​ใน​ทาง​ปฏิบัติ ทั้ง​ที่​เมื่อ​สิบ​ปี​ก่อนหน้า​ยัง​ทำ​ไม่​ได้​ด้วย​ฮาร์ดแวร์​ยุค​นั้น
  • Dennard scaling ที่มา​คู่​กัน — ข้อสังเกต​ของ Robert Dennard ในปี 1974 ระบุ​ว่า​เมื่อ​ทรานซิสเตอร์​เล็ก​ลง ความ​หนาแน่น​ของ​พลังงาน (power density) จะ​คงที่ ทำให้​ความเร็ว​สัญญาณ​นาฬิกา (clock speed) เพิ่ม​ได้​โดย​ไม่​ต้อง​เพิ่ม​การ​ใช้​พลังงาน​ตาม​สัดส่วน นี่​คือ​กลไก​ที่​ทำให้​ซีพียู​เร็ว​ขึ้น​ปี​ต่อ​ปี​ใน​ยุค 1990-ต้น 2000 โดย​ซอฟต์แวร์​ไม่​ต้อง​เปลี่ยนแปลง​อะไร​เลย​ก็​เร็ว​ขึ้น​ตาม
  • จุด​หักเห​ปี 2004-2005 — เมื่อ Dennard scaling เริ่ม​พัง​ทลาย​ลง​เพราะ​กระแส​ไฟ​รั่ว (leakage current) ที่​ระดับ​นาโน​เมตร​เล็ก​ลง​เรื่อย ๆ ผู้​ผลิต​ซีพียู​ไม่​สามารถ​เพิ่ม​ความเร็ว​สัญญาณ​นาฬิกา​ต่อ​ไป​ได้​โดย​ไม่​เกิด​ความ​ร้อน​สะสม​เกิน​ขีด​จำกัด อุตสาหกรรม​จึง​หัน​ไป​เพิ่ม​จำนวน​แกน​ประมวล​ผล (multicore) แทนที่​จะ​เพิ่ม​ความเร็ว​ต่อ​แกน Herb Sutter เรียก​ปรากฏการณ์​นี้​ว่า “The Free Lunch Is Over” — นัก​พัฒนา​ซอฟต์แวร์​ไม่​สามารถ​พึ่งพา​ฮาร์ดแวร์​ที่​เร็ว​ขึ้น​เอง​ได้​อีก​ต่อ​ไป แต่​ต้อง​เขียน code ที่​รองรับ concurrency และ parallelism อย่าง​จริงจัง​เพื่อ​ดึง​ประโยชน์​จาก​แกน​ที่​เพิ่ม​ขึ้น
  • ขีด​จำกัด​ทาง​ฟิสิกส์ — เมื่อ​ทรานซิสเตอร์​เข้า​ใกล้​ขนาด​ระดับ​อะตอม (ปัจจุบัน​เล็ก​ที่สุด​ใน​เชิง​พาณิชย์​อยู่​ที่​ราว 3 นาโน​เมตร) ปรากฏการณ์ควอนตัม​และ​ข้อ​จำกัด​ทาง​ความ​ร้อน​ทำให้การ​รักษา​อัตรา​เร่ง​แบบ​ทวีคูณ​นี้​ยาก​ขึ้น​เรื่อย ๆ แม้​เทคโนโลยี​ใหม่ ๆ เช่น 3D stacking, chiplet, หรือ specialized hardware (GPU, TPU) จะ​ยัง​คง​เพิ่ม​พลัง​ประมวล​ผล​โดย​รวม​ได้ แต่​รูปแบบ​การ​เติบโต​แบบ “double ทุก​สอง​ปี​ใน​ต้นทุน​ต่อ​ชิป​เท่า​เดิม” นั้น​ได้​ชะลอ​ตัว​ลง​อย่าง​ชัดเจน​ตั้งแต่​ราว​ปี 2010

สำหรับ​สถาปนิก​ซอฟต์แวร์ นัย​ยะ​สำคัญ​คือ Moore’s Law เคย​เป็น​เหตุผล​ให้ “รอ​ฮาร์ดแวร์​แก้​ปัญหา​ประสิทธิภาพ​ให้” แต่​เมื่อ free lunch หมด​ลง การ​ออกแบบ​ซอฟต์แวร์​ที่​ดี, algorithm ที่​มี​ประสิทธิภาพ, และ​สถาปัตยกรรม​ที่​รองรับ​การ scale แนว​นอน (horizontal scaling) จึง​กลับ​มา​สำคัญ​กว่า​ที่​เคย​เป็น​มา

code ตัวอย่าง​ด้าน​ล่าง​ไม่​ได้​แสดง Moore’s Law โดยตรง (เพราะ​มัน​เป็น​ข้อสังเกต​ด้าน​ฮาร์ดแวร์) แต่​แสดง​ให้​เห็น​ผล​สะเทือน​ของ​มัน​ต่อ​การ​ออกแบบ​ซอฟต์แวร์​ใน​ทาง​ปฏิบัติ: เมื่อ clock speed หยุด​โต นัก​พัฒนา​ต้อง​เปลี่ยน​จาก code แบบ sequential ไป​เป็น code ที่​ใช้​ประโยชน์​จาก​หลาย​แกน​ประมวล​ผล

// ก่อนปี 2005: พึ่งพา Moore's Law + Dennard scaling
// ให้ซีพียูรุ่นถัดไปรัน code sequential นี้ได้เร็วขึ้นเองโดยไม่ต้องแก้ code
foreach (var item in items)
{
Process(item);
}
// หลังปี 2005: "free lunch is over" ต้องออกแบบให้ใช้หลายแกนเอง
// เพราะความเร็วต่อแกนไม่เพิ่มขึ้นตามที่เคยเป็น
Parallel.ForEach(items, item =>
{
Process(item);
});

ตัวอย่าง​ที่​เป็น​รูปธรรม​อื่น ๆ ของ​ผลกระทบ​จาก Moore’s Law:

  • graph ิก​และ​เกม — จำนวน​ทรานซิสเตอร์​ที่​เพิ่ม​ขึ้น​ทำให้ GPU สมัย​ใหม่​มี​คอร์นับ​พัน ทำให้ render ภาพ 3 มิติ​แบบ​เรียลไทม์​และ​การ​ฝึก neural network ขนาด​ใหญ่​เป็น​ไป​ได้
  • มือถือ​และ IoT — ชิป​ที่​เล็ก​ลง​และ​ถูก​ลง​ตาม Moore’s Law ทำให้​คอมพิวเตอร์​ทรง​พลัง​พอที่​จะ​ใส่​ใน​อุปกรณ์​ขนาด​เท่า​ฝ่ามือ​หรือ​เล็ก​กว่า​นั้น
  • cloud computing — ต้นทุน​ต่อ​หน่วย​ประมวล​ผล​ที่​ลด​ลง​ต่อ​เนื่อง​เป็น​ปัจจัย​หนึ่ง​ที่​ทำให้ model ธุรกิจ​แบบ pay-per-use ของ​ผู้​ให้​บริการ cloud เป็น​ไป​ได้​ใน​เชิง​เศรษฐศาสตร์
  • การ​เปลี่ยน​ผ่าน​สู่ multicore — ภาษา​โปรแกรม​และ runtime สมัย​ใหม่ (เช่น async/await ใน C#, goroutine ใน Go, actor model) ล้วน​เกิด​ขึ้น​เพื่อ​ตอบ​สนอง​ต่อ​โลก​หลัง​ปี 2005 ที่​การ​เพิ่ม​ประสิทธิภาพ​ต้อง​มา​จาก parallelism ไม่ใช่ clock speed อีก​ต่อ​ไป
  • อย่า​พึ่งพา​ฮาร์ดแวร์​ใน​อนาคต​มา​ชดเชย code ที่​ไม่มี​ประสิทธิภาพ — ยุค​ที่ “รอ​รุ่น​หน้า​ซีพียู​เร็ว​ขึ้น​เอง” ได้​จบ​ลง​แล้ว​ตั้งแต่​กลาง​ทศวรรษ 2000 การ​ออกแบบ algorithm และ​โครงสร้าง​ข้อมูล​ที่​ดี​ยัง​คง​สำคัญ​เสมอ (ดู Wirth’s Law ด้าน​ล่าง)
  • ออกแบบ​ให้​รองรับ concurrency ตั้งแต่​ต้น — เมื่อ​การ​เพิ่ม​ประสิทธิภาพ​มา​จาก​จำนวน​แกน​ที่​มาก​ขึ้น​แทนที่​จะ​เป็น​ความเร็ว​ต่อ​แกน ระบบ​ที่​ออกแบบ​มา​ให้​ทำงาน​แบบ​ขนาน​ได้ (parallelizable) จะ​ได้​ประโยชน์​จาก​ฮาร์ดแวร์​ใหม่​มากกว่า​ระบบ​ที่​ล็อก​ตัวเอง​ไว้​กับ​การ​ทำงาน​แบบ sequential
  • เข้าใจ​ว่า “กฎ” นี้​คือ​แนวโน้ม​ทาง​เศรษฐศาสตร์ ไม่ใช่​กฎ​ธรรมชาติ​ที่​แน่นอน — เมื่อ​ใช้ Moore’s Law เป็น​สมมติฐาน​ใน​การ​วางแผน​ความ​จุ​ระบบ​หรือ capacity planning ระยะ​ยาว ควร​ตระหนัก​ว่า​อัตรา​เร่ง​แบบ​ทวีคูณ​นี้​ชะลอ​ตัว​ลง​แล้ว และ​การ​วางแผน​ควร​อิง​ข้อมูล​ฮาร์ดแวร์​จริง​มากกว่า​อิง​กฎ​ที่​เป็น​ที่​นิยม
  • มอง​หา​การ​เติบโต​ของ​ประสิทธิภาพ​จาก​ที่​อื่น​เมื่อ Moore’s Law ชะลอ​ตัว — เช่น specialized hardware (GPU/TPU), การ scale แนว​นอน​ใน cloud, หรือ​การ​ปรับปรุง algorithm และ​สถาปัตยกรรม​ซอฟต์แวร์​เอง ล้วน​เป็น​แหล่ง​เพิ่ม​ประสิทธิภาพ​ที่​ไม่​ต้อง​พึ่ง​จำนวน​ทรานซิสเตอร์​อย่าง​เดียว
  • Wirth’s Law — ข้อสังเกต​ที่​ว่า​ซอฟต์แวร์​ช้า​ลง​เร็ว​กว่า​ที่​ฮาร์ดแวร์​จะ​เร็ว​ขึ้น ซึ่ง​มัก​ถูก​อ้าง​ถึง​คู่​กับ Moore’s Law เพื่อ​เตือน​ว่า​อย่า​ใช้​พลัง​ประมวล​ผล​ที่​เพิ่ม​ขึ้น​เป็น​ข้อ​อ้าง​ให้​ซอฟต์แวร์​อืด​ลง
  • Amdahl’s Law — กฎ​ที่​อธิบาย​ขีด​จำกัด​ของ​การ​เร่ง​ความเร็ว​ด้วย​การ​ประมวล​ผล​แบบ​ขนาน ซึ่ง​สัมพันธ์​โดยตรง​กับ​ยุค​หลัง Moore’s Law ที่​ต้อง​พึ่ง multicore
  • Conway’s Law — ข้อสังเกต​ด้าน​องค์กร​และ​สถาปัตยกรรม​ซอฟต์แวร์ ที่​มัก​ถูก​จัด​กลุ่ม​ร่วม​กับ Moore’s Law ใน​ฐานะ “กฎ” ที่​มี​อิทธิพล​ต่อ​วงการ​ซอฟต์แวร์
  • Brooks’s Law — อีก​หนึ่ง​ข้อสังเกต​คลาสสิกด้านวิศวกรรม​ซอฟต์แวร์​ที่​เตือน​ว่า​ทรัพยากร​เพิ่มเติม (ไม่​ว่า​จะ​เป็น​คน​หรือ​ฮาร์ดแวร์) ไม่​ได้​แก้​ปัญหา​ทุก​อย่าง​เสมอ​ไป
  • Law of Diminishing Returns — แนวคิด​ที่​อธิบาย​ว่า​ทำไม​การ​ลงทุน​เพิ่ม​ขึ้น​เรื่อย ๆ (ใน​ที่​นี้​คือ​การ​ย่อ​ทรานซิสเตอร์​ให้​เล็ก​ลง) จึง​ให้​ผล​ตอบแทน​ที่​ลด​ลง​เมื่อ​เข้า​ใกล้​ขีด​จำกัด​ทาง​กายภาพ