2 คะแนน โดย GN⁺ 2023-10-16 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Intel 386 ขยาย x86 ไปสู่ สถาปัตยกรรม 32 บิต รองรับเซกเมนต์ขนาด 4GB และหน่วยความจำเสมือน และกลายเป็นจุดเปลี่ยนที่ทำให้สถานะของ x86 และ Intel แข็งแกร่งในอุตสาหกรรมพีซีหลังจากนั้น
  • ภาพถ่ายไดแสดงให้เห็นว่า 386 ไม่ได้เป็นเพียงการย่อขนาดจาก CHMOS-III 1.5µm ไปเป็น CHMOS-IV 1µm แบบตรงไปตรงมา แต่ยังเปลี่ยนไปมากถึงระดับทิศทางของยูนิตถอดรหัสคำสั่ง ความหนาแน่นของ standard cell และการจัดวาง bond pad
  • 386 SX ยังคงโครงสร้างภายในแบบ 32 บิตไว้ แต่ใช้ บัส 16 บิต และจำนวนขาที่น้อยลง ทำให้ใช้แพ็กเกจต้นทุนต่ำได้ และในปี 1988 Intel ขายรุ่น SX ที่ราคา 219 ดอลลาร์ ซึ่งต่ำกว่ารุ่น DX อย่างน้อย 100 ดอลลาร์
  • 386 SL เป็นการขยายแบบ SuperSet สำหรับโน้ตบุ๊กพีซี โดยรวมตัวควบคุมบัส ISA การจัดการพลังงาน ตัวควบคุมแคชภายนอก และตัวควบคุมหน่วยความจำ เข้ากับคอร์ 386 และมีทรานซิสเตอร์รวม 855,000 ตัว
  • 386 ถูกออกแบบโดยใช้ทั้ง CAD แบบอัตโนมัติ การจำลอง RTL, standard cell และ datapath ที่วางด้วยมือ และผ่านทั้งความล้มเหลวของซิลิคอนรุ่นแรกกับบั๊กการคูณ 32 บิต ก่อนจะพา Intel ผ่านการเปลี่ยนผ่านทั้งด้านเทคโนโลยีและตลาด

เหตุใด 386 จึงเป็นจุดเปลี่ยนของการประมวลผลสมัยใหม่

  • Intel 386 ที่เปิดตัวในปี 1985 ไม่ได้เป็นแค่ก้าวถัดไปของตระกูล x86 แต่เป็น ชิปที่เปลี่ยนโครงสร้าง ของอุตสาหกรรมพีซีสมัยใหม่
    • มันพา x86 ไปสู่ 32 บิต และกำหนดสถาปัตยกรรมการประมวลผลที่ครองโลกในช่วงปลายศตวรรษที่ 20
    • ตอกย้ำความสำคัญของ x86 ไม่ใช่แค่กับ Intel แต่กับอุตสาหกรรมคอมพิวเตอร์ทั้งหมด
    • เป็นจุดเริ่มให้การควบคุมตลาดพีซีของ IBM สิ้นสุดลง และทำให้ Compaq กลายเป็นผู้นำด้านสถาปัตยกรรม
  • 80386 ก้าวกระโดดครั้งใหญ่จาก 286
    • ใช้งานสถาปัตยกรรม 32 บิต
    • เพิ่มชุดคำสั่งมากขึ้น
    • รองรับเซกเมนต์ขนาด 4GB
    • มีทรานซิสเตอร์ 285,000 ตัว หรือราว 10 เท่าของ 8086 ดั้งเดิม
  • โครงสร้างภายในถือว่าซับซ้อนมากตามมาตรฐานยุค 1980
    • มี 8 หน่วยลอจิกที่ทำงานแบบไปป์ไลน์และทำงานได้อย่างอิสระเป็นส่วนใหญ่
    • datapath ประกอบด้วย ALU, barrel shifter และรีจิสเตอร์ เป็นบล็อกสี่เหลี่ยมผืนผ้าที่เป็นระเบียบกว้าง 32 บิต
    • microcode ROM แยกคำสั่งภาษาเครื่องออกเป็น micro-instruction ระดับต่ำ
    • Control Unit ประกอบด้วย microcode ROM และวงจรเอนจินไมโครโค้ด

บล็อกฟังก์ชันหลักที่มองเห็นได้บนได

  • Data Unit ที่มุมล่างซ้ายรับหน้าที่คำนวณเลขคณิต/ตรรกะและการย้ายข้อมูล
    • ALU ทำงานคำนวณเลขคณิตและตรรกะ
    • barrel shifter ใช้เลื่อนข้อมูล
    • รีจิสเตอร์ใช้เก็บข้อมูล
    • datapath และวงจรด้านซ้ายที่ควบคุมมันรวมกันเป็น Data Unit
  • Instruction Decode Unit แยกรูปแบบคำสั่งที่ซับซ้อนของ 386
    • แยกองค์ประกอบของคำสั่ง
    • สร้างตัวชี้ไมโครโค้ดที่ใช้ทำงานตามคำสั่งนั้น
    • instruction queue เก็บคำสั่งที่ถอดรหัสแล้วได้ 3 คำสั่ง
  • เพื่อเพิ่มประสิทธิภาพ Prefetch Unit จะอ่านคำสั่งจากหน่วยความจำล่วงหน้าก่อนถึงเวลาที่ต้องใช้
    • คำสั่งที่อ่านมาจะถูกเก็บใน prefetch queue ขนาด 16 ไบต์
  • การจัดการหน่วยความจำรองรับทั้ง segmented memory และ virtual memory
    • Segment Unit แปลง logical address เป็น linear address
    • Paging Unit แปลง linear address เป็น physical address
    • segment descriptor cache และ page cache (TLB) เก็บข้อมูลของเซกเมนต์และเพจ
    • 386 ไม่มี instruction cache หรือ data cache บนชิป
  • Bus Interface Unit ที่มุมขวาบนรับหน้าที่สื่อสารระหว่าง 386 กับหน่วยความจำและอุปกรณ์ภายนอก
  • บนไดของ 386 DX มีอักษรย่อของผู้ออกแบบอยู่มากผิดสังเกต
    • ดูเหมือนว่าอักษรย่อเหล่านี้ถูกวางไว้ข้างยูนิตที่แต่ละคนรับผิดชอบ แต่ชื่อส่วนใหญ่ไม่สามารถระบุได้

เลย์เอาต์ที่เปลี่ยนไปเมื่อย่อจาก 1.5µm เป็น 1µm

  • เดิม 386 ผลิตด้วยกระบวนการ CHMOS-III ที่มีขนาดฟีเจอร์ 1.5µm
    • ในที่นี้ขนาดฟีเจอร์หมายถึง gate channel length ของทรานซิสเตอร์โดยเฉพาะ
  • ราวปี 1987 Intel ย้ายไปใช้กระบวนการ CHMOS-IV ที่มีขนาดฟีเจอร์ 1µm
    • การเปลี่ยนนี้ทำให้ขนาดไดของ 386 เล็กลงอย่างมาก
    • ขนาดไดลดลง 60%
    • ผลิตไดได้มากขึ้นต่อเวเฟอร์ จึงลดต้นทุนการผลิตลงมาก
  • การย่อกระบวนการผลิตไม่ใช่แค่การสเกลเชิงกลแบบตรง ๆ
    • บนไดขนาดเล็ก Instruction Decode Unit และ Protection Unit ตรงกลางด้านขวาถูกวางในแนวนอนแทนแนวตั้ง
    • ลอจิกแบบ standard cell มีความหนาแน่นสูงขึ้นมาก และน่าจะเป็นผลจากอัลกอริทึมการจัดวางที่ดีขึ้น
    • datapath ที่เดิมก็ถูกปรับแต่งมาอย่างมากอยู่แล้ว จึงยังคงรูปแบบเดิมเป็นหลักแต่มีขนาดเล็กลง
  • bond pad กลายเป็นข้อจำกัดระหว่างการย่อขนาด
    • pad ตามขอบต้องคงขนาดเดิมไว้เพื่อให้ต่อ bond wire ได้
    • เพื่อให้ pad พอดีกับไดที่เล็กลง จึงต้องจัดวาง pad จำนวนมากแบบสลับเหลื่อมกัน
    • เมื่อแต่ละส่วนของไดถูกย่อด้วยสัดส่วนที่ต่างกัน บล็อกต่าง ๆ จึงไม่แนบแน่นเหมือนเดิม และเกิดพื้นที่สูญเปล่าที่ด้านล่างของได
  • ไดรุ่นใหม่มีสลัก 80C386I และมีปีลิขสิทธิ์ 1985, 1987
    • ยังไม่ชัดเจนว่า C และ I หมายถึงอะไร
    • อักษรย่อจำนวนมากที่มีอยู่บนได 386 เดิมถูกตัดออก
  • แนวทางการย่อโปรเซสเซอร์ไปสู่กระบวนการผลิตใหม่ แล้วออกแบบไมโครสถาปัตยกรรมใหม่ให้เหมาะกับกระบวนการนั้น กลายเป็นกลยุทธ์ tick-tock ของ Intel ในเวลาต่อมา

386 SX: 386 ราคาประหยัดที่ลดลงด้วยบัส 16 บิต

  • Intel เปิดตัว 386 SX ซึ่งเป็น 386 รุ่นราคาประหยัดในปี 1988
    • 386 SX ใช้บัส 16 บิตแทนบัส 32 บิต
    • สิ่งนี้ชวนให้นึกถึงความสัมพันธ์ระหว่าง 8086 ที่มีบัส 16 บิตกับ 8088 ที่มีบัส 8 บิต
  • เมื่อค่าใช้จ่ายของได 386 เดิมลดลง ต้นทุนแพ็กเกจก็ขึ้นมาใกล้เคียงกับต้นทุนได
    • การลดจำนวนขาทำให้สามารถใส่ 386 SX ลงในแพ็กเกจพลาสติกราคา 1 ดอลลาร์ได้
    • ส่งผลให้ขายได้ในราคาที่ต่ำลงมาก
  • SX กลายเป็นเครื่องมือของ Intel สำหรับ แบ่งตลาด
    • ย้ายลูกค้าราคาประหยัดจาก 286 ไปสู่ 386 SX
    • 386 เดิมถูกเรียกว่า DX และยังคงราคาขายที่สูงกว่าไว้
    • ในปี 1988 Intel ขาย 386 SX ที่ 219 ดอลลาร์ ซึ่งต่ำกว่า 386 DX อย่างน้อย 100 ดอลลาร์
    • คอมพิวเตอร์สำเร็จรูปที่ใช้ SX อาจถูกกว่ารุ่น DX ที่ใกล้เคียงกันถึง 1,000 ดอลลาร์
  • เดิม 386 ถูกออกแบบให้รองรับทั้งบัส 16 บิตและ 32 บิตแบบผสม เพื่อให้เข้ากันได้กับอุปกรณ์ต่อพ่วง 16 บิตรุ่นเก่า
    • หากจำเป็น มันสามารถสลับได้แบบไดนามิกในแต่ละไซเคิล
    • เพราะมีการรองรับ 16 บิตอยู่แล้ว จึงแทบไม่ต้องออกแบบเพิ่มมากนักสำหรับ 386 SX
    • ต่างจาก 8088 ที่ต้องออกแบบ bus interface unit ของ 8086 ใหม่
  • 386 SX ก็ผลิตทั้งบนกระบวนการ 1.5µm และ 1µm
    • เนื่องจากมีขาน้อยลง จึงมี bond pad น้อยลงด้วย และ pad แบบสลับเหลื่อมที่เห็นใน 386 DX รุ่นย่อขนาดก็หายไป
    • ด้านล่างของชิปยังต่างออกไป เพราะมีการเดินสายเข้าไปในพื้นที่สูญเปล่าจำนวนมากที่มีบน 386 DX
    • ไดขนาดใหญ่มีสลัก 80P9 ซึ่งสะท้อนชื่อภายในของ Intel คือ P9
    • ไดรุ่นย่อขนาดใช้สลัก 80386SX ซึ่งเข้าใจได้ง่ายกว่า

386 SL: 386 แบบบูรณาการที่มุ่งสู่โน้ตบุ๊ก

  • 386 SL เป็นรุ่นขยายขนาดใหญ่ของ 386 ที่เปิดตัวในปี 1990
    • รวมคอร์ 386 เข้ากับฟังก์ชันอื่น ๆ ไว้ในชิปเดียว เพื่อประหยัดพลังงานและพื้นที่
    • มุ่งเป้าไปที่ตลาดโน้ตบุ๊กพีซีภายใต้ชื่อ SuperSet
  • 386 SL รวมฟังก์ชันรอบข้างไว้หลายอย่าง
    • ตัวควบคุมบัส ISA
    • ลอจิกจัดการพลังงาน
    • ตัวควบคุมแคชสำหรับแคชภายนอก
    • ตัวควบคุมหน่วยความจำหลัก
  • บนได คอร์ 386 เองกินพื้นที่ประมาณ 1/4 ของไดทั้งหมดของ SL
    • คอร์ 386 ใกล้เคียงกับ 386 DX มาตรฐานมาก แต่มีความต่างที่มองเห็นได้บางจุด
    • bond pad และ pin driver ถูกเอาออกจากคอร์
    • วงจรบางส่วนก็ถูกเปลี่ยนด้วย
  • คอร์ของ 386 SL รองรับ System Management Mode
    • หยุดการทำงานปกติชั่วคราว
    • ทำให้สามารถจัดการพลังงานและงานฮาร์ดแวร์ระดับต่ำอื่น ๆ ได้นอกเหนือจากระบบปฏิบัติการปกติ
    • ปัจจุบัน System Management Mode เป็นองค์ประกอบมาตรฐานของตระกูล x86 แต่ถูกนำมาใช้ครั้งแรกใน 386 SL
  • 386 SL มีทรานซิสเตอร์รวมทั้งสิ้น 855,000 ตัว
    • มากกว่า 386 DX ปกติถึงกว่า 3 เท่า
    • cache tag RAM ใช้พื้นที่และทรานซิสเตอร์จำนวนมาก
    • ตัวข้อมูลแคชจริงอยู่ภายนอก ส่วนวงจรบนชิปมีหน้าที่จัดการแคช
    • องค์ประกอบใหม่จำนวนมากถูกสร้างด้วยลอจิกแบบ standard cell ซึ่งมองเห็นได้ชัดจากแถบวงจรที่สม่ำเสมอในตัวควบคุมบัส ISA

ภูมิทัศน์อุตสาหกรรมพีซีก่อนและหลัง 386

  • ตอนนี้การที่ Intel ขยาย x86 จาก 286 ไปเป็น 386 พร้อมคงความเข้ากันได้แบบย้อนหลังอาจดูเป็นเรื่องธรรมดา แต่ในเวลานั้นไม่ได้เป็นเส้นทางที่ชัดเจน
  • ช่วงปลายทศวรรษ 1970 Intel ตัดสินใจสร้างโปรเซสเซอร์ micromainframe
    • เป็นโปรเซสเซอร์ 32 บิตระดับสูงสำหรับการเขียนโปรแกรมเชิงวัตถุ
    • พยายามนำวัตถุ การสื่อสารระหว่างโปรเซส และการป้องกันหน่วยความจำไปไว้ใน CPU
    • โครงการมีความทะเยอทะยานมากเกินไปจนกำหนดการล่าช้า
    • Intel จึงสร้าง 8086 แบบ 16 บิตในปี 1978 เป็นโปรเซสเซอร์ชั่วคราวสำหรับขายระหว่างรอโปรเซสเซอร์ตัวนั้นพร้อม
  • IBM เลือกใช้ Intel 8088 ใน IBM PC ปี 1981
    • ตอนนั้น Intel ไม่ได้ตระหนักถึงความสำคัญของการตัดสินใจนี้
    • Intel กำลังมุ่งความสนใจไปที่ iAPX 432 ซึ่งเป็นโปรเซสเซอร์ micromainframe ที่เปิดตัวในปี 1981
    • iAPX 432 กลายเป็นผลงานล้มเหลวที่ New York Times เรียกว่า “หนึ่งในกรณีหายนะครั้งใหญ่ของคอมพิวเตอร์สมัยใหม่”
    • ต่อมา Intel นำแนวคิดของ iAPX 432 ไปสร้างใหม่บนสถาปัตยกรรม RISC และพัฒนาเป็น i960
  • โครงการ 386 ซึ่งเป็นรุ่นถัดจาก 286 มีลำดับความสำคัญต่ำภายใน Intel
    • Bill Gates และคนอื่น ๆ เรียกการออกแบบ 286 ว่า “brain-damaged”
    • IBM เองก็ไม่ได้กระตือรือร้นกับ 286
    • ทีม 386 รู้สึกว่าโครงการนี้เหมือน stepchild และภายในองค์กรก็ถูกเสนอให้เป็นเพียงมาตรการชั่วคราวอีกตัว ไม่ใช่โปรเซสเซอร์ 32 บิต “ทางการ” ของ Intel
  • ทีม 386 เสนอแนวทางขยาย 286 ไปเป็นสถาปัตยกรรม 32 บิตสองแบบ
    • แบบแรกเป็นแนวทางขั้นต่ำ โดยขยายรีจิสเตอร์และพื้นที่แอดเดรสเดิมให้เป็น 32 บิต
    • แบบที่สองทะเยอทะยานกว่า โดยเพิ่มรีจิสเตอร์มากขึ้นและเพิ่มชุดคำสั่ง 32 บิตที่แตกต่างจากชุดคำสั่ง 16 บิตของ 8086 อย่างมาก
    • ในเวลานั้น IBM PC ยังถือว่าใหม่พอสมควร และความสำคัญของฐานซอฟต์แวร์ที่ติดตั้งอยู่แล้วยังไม่ชัดเจน
    • ความเข้ากันได้ของซอฟต์แวร์ถูกมองว่าไม่ใช่สิ่งจำเป็น แต่เป็นคุณสมบัติที่มีก็ดี
    • หลังการถกเถียงมากมายราวปลายปี 1982 จึงเลือกแนวทางขั้นต่ำที่ยังคงความเข้ากันได้กับ 286 และรองรับทั้ง segmentation และ flat addressing
  • ในปี 1984 อุตสาหกรรมพีซีเติบโตอย่างรวดเร็ว และ 286 ก็พิสูจน์แล้วว่าประสบความสำเร็จ
    • สถานะของโครงการ 386 ภายในองค์กรเปลี่ยนจาก stepchild เป็น king
    • Intel เปิดตัว 386 ในปี 1985
    • ปีเดียวกันนั้น ภาวะซบเซาทั่วอุตสาหกรรมเซมิคอนดักเตอร์ทำให้กำไรสุทธิของ Intel “แทบหายไป”
    • ท่ามกลางการแข่งขันกับญี่ปุ่น Intel ถอนตัวจากธุรกิจ DRAM
    • หลังจากนั้น 386 ก็กลายเป็นผลิตภัณฑ์ที่เปลี่ยนสถานการณ์ของ Intel

Compaq กับ IBM และการเปลี่ยนของมาตรฐานพีซี

  • IBM ไม่ได้แสดงความสนใจต่อโปรเซสเซอร์ 386 และเลือกใช้กลยุทธ์ของตนเอง
    • เมื่อผู้ผลิตพีซีโคลนเพิ่มขึ้น IBM พยายามทวงคืนสถาปัตยกรรมพีซีและการควบคุมตลาด
    • ในปี 1987 IBM เปิดตัวสายผลิตภัณฑ์ PS/2
    • PS/2 ใช้ OS/2 แทน Windows และใช้สถาปัตยกรรม Micro Channel แบบกรรมสิทธิ์
    • IBM ใช้ทั้งกลยุทธ์ด้านวิศวกรรมและกฎหมายเพื่อทำให้การสร้างโคลน PS/2 ช้า แพง และเสี่ยง
  • Compaq ไม่ได้เดินตาม IBM แต่เลือกทิศทางสถาปัตยกรรมของตนเอง
    • ในเดือนกันยายน 1986 บริษัทเปิดตัวสายผลิตภัณฑ์ระดับไฮเอนด์ Deskpro 386
    • กลายเป็นบริษัทใหญ่รายแรกที่ผลิตคอมพิวเตอร์บนพื้นฐาน 386
    • Deskpro 386 model 40 มาพร้อมฮาร์ดไดรฟ์ 40MB และวางขายที่ราคา 6,449 ดอลลาร์
    • คิดเป็นมูลค่าปัจจุบันมากกว่า 15,000 ดอลลาร์
    • การตัดสินใจของ Compaq ประสบความสำเร็จ และ Deskpro 386 ก็ได้รับความนิยมอย่างมาก
  • โดยรวมแล้วสายผลิตภัณฑ์ PS/2 ของ IBM ไม่ประสบความสำเร็จและไม่ได้กลายเป็นมาตรฐาน
    • แทนที่จะทวงคืนการควบคุมพีซี IBM กลับสูญเสียการควบคุมมาตรฐานพีซีพร้อมกับการเปิดตัวสายระบบ PS/2 ในปี 1987
    • IBM ถอนตัวจากตลาดพีซีในปี 2004 โดยขายธุรกิจพีซีให้ Lenovo
  • 386 สร้างผลกำไรมหาศาลให้ Intel
    • นำไปสู่รายได้รายไตรมาสแตะ 1 พันล้านดอลลาร์เป็นครั้งแรกของ Intel ในปี 1990
    • ตอกย้ำความสำคัญของสถาปัตยกรรม x86 ไม่เพียงต่อ Intel แต่ต่ออุตสาหกรรมคอมพิวเตอร์ทั้งหมด
    • x86 ครองตลาดมาจนถึงปัจจุบัน

วิธีออกแบบ 386: การผสานระหว่างระบบอัตโนมัติกับงานทำมือ

  • กระบวนการออกแบบ 386 แสดงให้เห็นช่วงเวลาที่ Intel กำลังขยายการใช้ ระบบออกแบบอัตโนมัติ และการจำลอง
    • ตอนนั้น Intel ตามหลังอุตสาหกรรมในด้านการใช้เครื่องมือ
    • ผู้นำโครงการ 386 เห็นว่าหากจะสร้างชิปซับซ้อนอย่าง 386 ให้เสร็จตามกำหนด จำเป็นต้องเพิ่มระบบอัตโนมัติมากขึ้น
    • จากการลงทุนอย่างมากในเครื่องมืออัตโนมัติ ทีม 386 จึงออกแบบเสร็จเร็วกว่ากำหนด
    • นอกจากเครื่องมือ CAD แบบกรรมสิทธิ์แล้ว ยังใช้เครื่องมือ Unix มาตรฐานอย่าง sed, awk, grep, make อย่างมากในการจัดการฐานข้อมูลการออกแบบ
  • 386 มีโจทย์การออกแบบใหม่มากกว่า 286
    • เป็นชิปที่ซับซ้อนกว่ามาก โดยมีจำนวนทรานซิสเตอร์เพิ่มเป็นสองเท่า
    • 286 และโปรเซสเซอร์ก่อนหน้านั้นใช้ทรานซิสเตอร์ NMOS แต่ 386 เปลี่ยนมาใช้ CMOS ซึ่งยังใช้อยู่ในปัจจุบัน
    • กระบวนการ CMOS ของ Intel คือ CHMOS-III และมีขนาดฟีเจอร์ 1.5µm
    • CHMOS-III เป็นกระบวนการที่ขยาย HMOS-III ซึ่งใช้กับ 286 ให้เป็นแบบ CMOS
    • CHMOS มีชั้นโลหะให้ 2 ชั้นแทน 1 ชั้น จึงเปลี่ยนวิธีเดินสายสัญญาณภายในชิปและเทคนิคการออกแบบ
  • CHMOS-III มีปัญหา forbidden gap
    • ชั้นโลหะที่สอง M2 สามารถอยู่ใกล้หรือไกลจากชั้นโลหะแรก M1 ได้มาก
    • แต่หากอยู่ที่ระยะกึ่งกลางจะเกิดปัญหา และช่วงนี้เรียกว่า forbidden gap
    • หากชั้นโลหะตัดกันใน forbidden gap โลหะอาจแตกร้าวหรือเกิด metal whisker จนสัมผัสกัน ทำให้ชิปล้มเหลวได้
    • ปัญหานี้ทำให้ผลผลิตของ 386 ลดลง

RTL, ไมโครโค้ด, standard cell และ datapath

  • การออกแบบ 386 ดำเนินไปพร้อมกันทั้งแบบจากบนลงล่างและจากล่างขึ้นบน
    • จากด้านบน เริ่มต้นจากการกำหนดสถาปัตยกรรม
    • จากด้านล่าง ออกแบบ standard cell และวงจรพื้นฐานในระดับทรานซิสเตอร์
  • ไมโครโค้ดเป็นองค์ประกอบพื้นฐานที่ใช้ควบคุมชิป
    • ออกแบบด้วยเครื่องมือ CAD สองตัวคือแอสเซมเบลอร์และตัวตรวจสอบกฎไมโครโค้ด
  • การออกแบบชิประดับสูงสร้างด้วย RTL
    • ถูกปรับแต่งจนสามารถแสดงจังหวะเวลาแบบ clock-by-clock และ phase-by-phase ได้
    • RTL เขียนด้วย MAINSAIL ซึ่งเป็นภาษาในตระกูล Algol แบบพกพาที่อิงกับ SAIL
    • Intel จำลอง RTL ด้วยซิมูเลเตอร์เฉพาะของตนชื่อ Microsim
    • Intel มองว่าการจำลอง RTL ของทั้งชิปเป็น “แบบจำลองการจำลองที่สำคัญที่สุดเพียงหนึ่งเดียวของ 80386”
  • ในขั้นถัดไป การออกแบบระดับสูงจะถูกแปลงเป็นการออกแบบลอจิกแบบละเอียด
    • ใช้ระบบ schematic capture เฉพาะชื่อ Eden เพื่อกำหนดเกตและวงจร
    • การจำลองการออกแบบลอจิกต้องใช้เมนเฟรม IBM 3083 โดยเฉพาะ และนำผลไปเปรียบเทียบกับการจำลอง RTL
    • จากนั้นในขั้นการออกแบบวงจรจึงสร้างการออกแบบระดับทรานซิสเตอร์
  • เลย์เอาต์ของชิปทำบนระบบกราฟิก Applicon และ Eden
    • เริ่มจากบล็อกสำคัญอย่าง ALU และ barrel shifter
    • TLB ของกลไก paging ต้องอาศัยการออกแบบอย่างสร้างสรรค์เพื่อให้ตรงตามข้อกำหนดด้านประสิทธิภาพ
    • binary adder ก็ต้องใช้การออกแบบอย่างสร้างสรรค์เช่นกัน
  • random logic ที่ไม่มีโครงสร้างถูกสร้างด้วย standard cell แทนการออกแบบทีละทรานซิสเตอร์เหมือนโปรเซสเซอร์รุ่นก่อน
    • standard cell ให้บล็อกวงจรคงที่สำหรับลอจิกเกต ฟลิปฟลอป และฟังก์ชันพื้นฐาน
    • ซอฟต์แวร์จะจัดวางเซลล์เป็นแถวเพื่อทำให้คำอธิบายลอจิกที่กำหนดขึ้นมาเป็นจริง
    • พื้นที่ระหว่างแถวใช้เป็นช่องทางเดินสายสำหรับเชื่อมต่อระหว่างเซลล์
    • เลย์เอาต์ standard cell โดยทั่วไปใช้พื้นที่มากกว่าเลย์เอาต์ที่ออกแบบด้วยมือและปรับให้เหมาะที่สุด แต่สร้างได้เร็วและแก้ไขได้ง่ายกว่า
  • Intel ใช้แพ็กเกจวางและเดินสายอัตโนมัติ TimberWolf
    • TimberWolf ปรับตำแหน่งเซลล์ให้เหมาะที่สุดด้วย simulated annealing
    • วิศวกร 386 คนหนึ่งกล่าวว่า ถ้าฝ่ายบริหารรู้ว่าเครื่องมือหลักของวิธีการนี้ถูกสร้างโดยนักศึกษาปริญญาโท ก็คงไม่อนุญาตให้ใช้
    • การทำเลย์เอาต์อัตโนมัติเป็นเรื่องใหม่สำหรับ Intel และช่วยให้กำหนดการดีขึ้น
    • แต่ก็ทำให้เกิดความเสี่ยงว่าชิปจะใหญ่เกินไปเพราะความหนาแน่นต่ำ
  • datapath ที่สำคัญต่อประสิทธิภาพถูกสร้างด้วย เลย์เอาต์แบบทำมือ
    • รีจิสเตอร์, ALU, barrel shifter และหน่วยคูณ/หาร จัดการข้อมูล 32 บิต
    • วางเลย์เอาต์ด้วยระบบ CALMA
    • ผู้ออกแบบใช้ประโยชน์จากความเป็นระเบียบของวงจรเพื่อปรับรูปร่างและขนาดของทรานซิสเตอร์ให้เหมาะสม และประกอบเข้าหากันเหมือนชิ้นส่วนจิ๊กซอว์
    • datapath ทางซ้ายของไดจึงเป็นสี่เหลี่ยมผืนผ้ากว้าง 32 บิตที่เป็นระเบียบ ต่างจากลอจิกซับซ้อนที่อยู่ติดกัน

tapeout, ความล้มเหลวช่วงแรก และบั๊กการคูณ

  • หลังจากเลย์เอาต์ระดับทรานซิสเตอร์เสร็จ ระบบ Hierarchical Connectivity Verification System ของ Intel จะตรวจสอบเลย์เอาต์สุดท้าย
    • ตรวจว่าตรงกับ schematic หรือไม่
    • ตรวจว่าปฏิบัติตามกฎการออกแบบกระบวนการผลิตหรือไม่
  • 386 ใช้เวลาเพียง 11 วันจากเลย์เอาต์เสร็จจนถึง tapeout สร้างสถิติความเร็วของ Intel
    • tapeout คือขั้นตอนนำข้อมูลชิปบันทึกลงเทปแม่เหล็กและส่งให้บริษัทผู้ผลิตมาสก์
    • ทีม tapeout นำโดย Pat Gelsinger ซึ่งต่อมากลายเป็น CEO ของ Intel
  • มาสก์แก้วถูกสร้างด้วยกระบวนการลำอิเล็กตรอน
    • Fab 3 ของ Intel ที่ Livermore ผลิตเวเฟอร์ซิลิคอนของ 386
  • ซิลิคอนชุดแรกไม่ได้ทำงานถูกต้องตั้งแต่ครั้งแรก
    • ทีมลองรันโปรแกรมทดสอบง่าย ๆ ชื่อ NoOp, NoOp, Halt แต่ล้มเหลว
    • พวกเขาพบจุดแก้ไขเล็ก ๆ ใน PLA
    • โดยไม่ต้องสร้างมาสก์ใหม่ พวกเขาแพตช์มาสก์เดิมด้วย ion milling เพื่อให้ได้เวเฟอร์ชุดใหม่อย่างรวดเร็ว
    • เวเฟอร์ชุดนี้ทำงานได้มากพอที่จะเริ่มวงจรยาวของการดีบักและการแก้ไข
  • แม้หลังเปิดตัวก็ยังมีปัญหาเหลืออยู่
    • โปรเซสเซอร์ 386 รุ่นแรกบางส่วนมี ปัญหาการคูณ 32 บิต
    • ภายใต้เงื่อนไขอุณหภูมิ แรงดันไฟ และความถี่บางแบบ ตัวถูกคูณบางค่าจะให้ผลลัพธ์ผิดแบบคาดเดาไม่ได้
    • ปัญหานี้ไม่เกี่ยวข้องกับบั๊ก Pentium FDIV อันโด่งดังที่ทำให้ Intel เสียค่าใช้จ่าย 475 ล้านดอลลาร์
  • สาเหตุของปัญหาการคูณไม่ได้อยู่ที่ลอจิก แต่อยู่ที่เลย์เอาต์
    • การออกแบบไม่ได้เผื่อ margin ไว้มากพอสำหรับกรณีที่ข้อมูลแย่ที่สุด กระบวนการผลิต และปัจจัยแวดล้อมเกิดพร้อมกัน
    • ปัญหานี้ไม่ปรากฏในการจำลองหรือการตรวจสอบชิป แต่ถูกพบจากการทดสอบภายใต้สภาวะกดดันเท่านั้น
  • Intel ขายโปรเซสเซอร์ที่มีข้อบกพร่องต่อไป แต่ระบุว่าใช้ได้กับซอฟต์แวร์ 16 บิตเท่านั้น
    • โปรเซสเซอร์ปกติจะทำเครื่องหมายด้วย sigma คู่
    • ปัญหานี้นำไปสู่พาดหัวน่าอึดอัดอย่าง “Some 386 Systems Won't Run 32-Bit Software, Intel Says”
    • ระหว่างที่ Intel ออกแบบชิปใหม่เพื่อแก้บั๊ก ก็ยังเกิดภาวะขาดแคลนชิป 386 ในปี 1987 และ 1988
    • โดยรวมแล้ว ปัญหาของ 386 ไม่ได้เลวร้ายกว่าโปรเซสเซอร์ตัวอื่น และไม่นานก็ถูกลืม

บทสรุป: ชิปที่เปลี่ยน Intel และอุตสาหกรรมพีซี

  • 386 กลายเป็นจุดเปลี่ยนสำคัญของ Intel
    • โปรเซสเซอร์ Intel รุ่นก่อนหน้าก็ขายดี แต่ส่วนใหญ่เป็นผลจากการตลาดที่แข็งแกร่งและโชคดีที่ถูกเลือกใช้ใน IBM PC
    • Intel โดยเฉพาะเมื่อเทียบกับ Motorola นั้นตามหลังในเชิงเทคนิค
  • Motorola เปิดตัว 68000 ในปี 1979 จุดเริ่มต้นของตระกูลโปรเซสเซอร์กึ่ง 32 บิตที่ทรงพลัง
    • Intel ยิ่งตามหลังด้วย 286 แบบ 16 บิตที่ “brain-damaged” ในปี 1982
    • การเปลี่ยนไปใช้ CMOS ก็ช้าเช่นกัน ขณะที่ Motorola ย้ายสู่ CMOS ด้วย 68020 ในปี 1984
  • 386 มอบการก้าวกระโดดทางเทคนิคที่ Intel ต้องการ
    • เปลี่ยนไปสู่สถาปัตยกรรม 32 บิต
    • เปลี่ยนไปใช้ CMOS
    • แก้ข้อจำกัดของโมเดลหน่วยความจำและการทำงานหลายงานของ 286
    • ยังคงความเข้ากันได้กับโปรเซสเซอร์ x86 รุ่นก่อนหน้า
  • ความสำเร็จของ 386 ทำให้ความเป็นเจ้าตลาดของ x86 และ Intel แข็งแกร่งขึ้น
    • ผู้ผลิตโปรเซสเซอร์รายอื่นตกอยู่ในสถานะตั้งรับ
    • Compaq ใช้ 386 เพื่อชิงบทบาทผู้นำสถาปัตยกรรมพีซีจาก IBM
    • สิ่งนี้นำไปสู่ความสำเร็จของบริษัทอย่าง Compaq และ Dell
    • ท้ายที่สุด IBM ก็ถอนตัวออกจากตลาดพีซีโดยสิ้นเชิง
  • 386 ทิ้งอิทธิพลไว้อย่างมหาศาล จนกำหนดทั้งผู้ชนะและผู้แพ้ในอุตสาหกรรมคอมพิวเตอร์ไปอีกหลายทศวรรษ

1 ความคิดเห็น

 
GN⁺ 2023-10-16
ความคิดเห็นจาก Hacker News
  • ผมเป็นผู้เขียน ช่วงนี้กำลังศึกษา 386 อยู่ ถ้ามีคำถามก็ถามมาได้
    บทความนี้ได้แรงบันดาลใจจากการถกเถียงเมื่อไม่กี่สัปดาห์ก่อนบน HN ที่ userbinator พูดถึงจำนวนทรานซิสเตอร์ของ 386
    • เป็นบทความที่ยอดเยี่ยมเช่นเคย แต่มีรายละเอียดหนึ่งอย่าง: คำอธิบายว่า “ตอนที่ข้อมูลชิปถูกส่งไปยังบริษัททำมาสก์ด้วยเทปแม่เหล็ก” นั้นโดยช่วงเวลาก็พอถูกอยู่ แต่ไม่ใช่ที่มาของคำว่า tapeout
      ต่อให้ส่งข้อมูลด้วยดิสก์ Winchester เหตุการณ์นั้นก็ยังถูกเรียกว่า tapeout อยู่ดี ในการผลิตแผงวงจรพิมพ์ (PCB) ยุคแรก ๆ จะใช้เทปสีดำวางวงจรจริง ๆ บนแผ่นบอร์ดสีขาว หรือ “tape out” โดยมักทำในขนาดขยาย
      ต่อมาคำว่า tapeout จึงหมายถึงจุดที่การเดินลายวงจรด้วยเทปเสร็จสมบูรณ์ พร้อมจะนำไปถ่ายภาพ ย่อขนาด และส่งต่อไปผลิตแผ่นวงจร ในกระบวนการนี้ไม่มี “ข้อมูล” ไม่ว่าจะเป็นแม่เหล็กหรือไม่ มีเพียงบอร์ดอาร์ตจริงที่ติดเทปไว้
      บทความ Wikipedia ก็ทำไว้ค่อนข้างดี: https://en.wikipedia.org/wiki/Tape-out
      ถ้าผู้อ่านรุ่นใหม่สงสัยว่า “Winchester disk คืออะไรกันแน่” ดูที่นี่ได้: https://www.pcmag.com/encyclopedia/term/winchester-disk
      ก่อนหน้านี้ผมเคยเล่าเรื่องที่ตัวเอง tapeout PCB แรกตอนราวปี 1960 สมัยอยู่ ป.3 ไว้ด้วย: https://news.ycombinator.com/item?id=32116169
    • ส่วนที่น่าสนใจที่สุดในบทความคือ 386SL มีความสำคัญทางประวัติศาสตร์พอสมควร
      เดิมทีผมนึกว่าเป็นแค่รุ่นย่อส่วนราคาถูกสำหรับตลาดโน้ตบุ๊กที่เพิ่งเริ่มเกิดขึ้น แต่จริง ๆ แล้วมันเป็นชิ้นส่วนที่ค่อนข้างซับซ้อน มีทรานซิสเตอร์มากกว่าถึง 3 เท่า และใกล้เคียงกับการเป็นบรรพบุรุษของ SoC สมัยใหม่
    • ในฐานะมือสมัครเล่นเต็มตัว ผมสงสัยว่า 386 มี การปรับแต่งอันชาญฉลาด แบบไหนบ้าง หรือโครงสร้างของมันเป็นแบบประมวลผลลำดับคำสั่งตามตัวอักษรทีละขั้น แล้วปรับรีจิสเตอร์กับหน่วยความจำไปตามนั้น
      ผมนึกถึงโปรเซสเซอร์ยุคนี้ที่ทำหลายอย่างในระดับไมโครโค้ด จนยากจะคาดเดาได้แน่ชัดว่าคำสั่งไหนถูกเรียกใช้ในลำดับใด
    • บทความดีมาก ลิงก์ DOI และ Bitsavers บางส่วนเสีย เช่นชี้ไปที่ righto.com หรือเจอ 404
      อีกอย่างคือสงสัยว่าจะหา “Automatic Place and Route Used on the 80386” ได้จากที่ไหน บน DDG เห็นมีแต่บทความนี้บทความเดียว
  • พ่อของผมเคยมีส่วนร่วมกับงานโปรเซสเซอร์ตัวนี้และอีกหลายตัว เห็น อักษรย่อ KF ของพ่อในภาพไดด้วย :)
    • อยากรู้ว่าในยุคนั้นพวกเขาสร้างโปรเซสเซอร์แบบนี้กันในชีวิตประจำวันอย่างไร พื้นที่ทำงานของ Intel สมัยนั้นโดยทั่วไปหน้าตาเป็นอย่างไร?
    • ผู้เขียนพูดถึงพ่อของคุณโดยตรงในหมายเหตุ คุณรู้ชื่อผู้ออกแบบคนอื่น ๆ ด้วยไหม?
  • สมัยยังเป็นเด็กเนิร์ดคอมพิวเตอร์ หนึ่งในสมบัติล้ำค่าที่สุดของผมคือชิปที่ดูเหมือน 386 แบบยังไม่ได้แพ็กเกจ ซึ่งได้มาจากการส่งคำขอตาม โฆษณา Intel ในนิตยสาร Byte
    แค่ตัดส่วนหนึ่งของหน้ากระดาษแล้วส่งไปรษณีย์ไป ไม่กี่เดือนต่อมาก็มีพัสดุมาถึง ข้างในเป็นโปรเซสเซอร์เปลือยที่ติดอยู่บนการ์ดแข็ง พร้อมแว่นขยายกำลังขยายต่ำ เสียดายมาก ถ้ายังเก็บไว้ได้ก็คงดีจริง ๆ
  • เรื่องเกี่ยวกับ (80)386 น่าสนใจเสมอ เพราะโปรเซสเซอร์ตัวนี้แทบจะเป็นจุดเริ่มต้นของ การปฏิวัติการประมวลผล 32 บิต ในคอมพิวเตอร์ที่ใช้งานกันแพร่หลาย
    ก่อนหน้านั้นก็มีโปรเซสเซอร์ 32 บิตอยู่แล้ว แต่ไม่มีตัวไหนประสบความสำเร็จเชิงพาณิชย์และถูกคนทั่วไปนำไปใช้เท่า (80)386
    บทความนี้ยอดเยี่ยมและมีข้อมูลเยอะมากเกี่ยวกับ 386 นอกจากคู่มือทางเทคนิคของ 386 หรือเศษเอกสารบางส่วนแล้ว ผมไม่เคยเห็นแหล่งข้อมูลบนอินเทอร์เน็ตที่ให้ข้อมูลมากกว่านี้ และเอกสารพวกนั้นก็อ่านยากสำหรับผู้อ่านทั่วไป น่าจะมีคุณค่าสูงสำหรับคนที่ต้องการศึกษา 386 และนักประวัติศาสตร์คอมพิวเตอร์ในอนาคต
    • ขอบคุณสำหรับคำชม ส่วนตัวผมมองว่า IBM System/360 (1964) เป็นสถาปัตยกรรม 32 บิตตัวแรกที่แพร่หลายและมีอิทธิพลมาก
      Motorola 68000 (1979) ก็น่าพูดถึง เพราะถูกใช้ใน Macintosh และผมสามารถเถียงกับคนที่บอกว่ามันไม่ใช่โปรเซสเซอร์ 32 บิตจริง ๆ ได้ :-) แต่ก็จริงที่ 386 เป็นจุดเริ่มต้นของสถาปัตยกรรม x86 แบบ 32 บิตที่ใช้ในคอมพิวเตอร์ส่วนใหญ่ที่ไม่ใช่โทรศัพท์ในปัจจุบัน
  • “ถ้าผู้บริหารรู้ว่าเราใช้เครื่องมือที่นักศึกษาปริญญาโทบางคนทำขึ้นเป็นแกนกลางของระเบียบวิธี คงไม่มีทางอนุญาตแน่”
    ดังนั้นผู้จัดการจึงไม่ควรไมโครแมเนจ การตัดสินใจทางเทคนิค แบบลงรายละเอียด
  • วันนี้เพิ่งรู้ว่า “s” ใน SX หมายถึง single และ “d” ใน DX หมายถึง double โดย DX มีความกว้างบัสข้อมูลเป็นสองเท่าของ SX (32 บิต เทียบกับ 16 บิต)
    • แต่ 486 DX มีหน่วยประมวลผลทศนิยมลอยตัว ส่วน 486 SX ไม่มี สุดท้าย Intel ก็ผลักภาพลักษณ์ว่า DX ดีกว่า SX ไปอย่างนั้นเอง
    • 386SX เป็นตัวแรกที่ผมลองโอเวอร์คล็อก โดยเปลี่ยน คริสตัลออสซิลเลเตอร์ บนบอร์ด
  • นึกถึงยุคที่เคสคอมพิวเตอร์มี ปุ่ม turbo กับจอ LCD แสดงความเร็วสัญญาณนาฬิกา พอ “66Mhz” เปลี่ยนเป็น “90” ก็รู้สึกว่าเครื่องวิ่งจริงจังแล้ว
    • เครื่อง 20/40MHz ของผมมีไฟแสดงผล LED พอเปิดเคสดูพบว่ามี จัมเปอร์ ที่ทำให้ตั้งค่าชุด LED ได้ทุกรูปแบบ และแสดงค่าอื่นที่ไม่ใช่ตัวเลขได้ด้วย
      ข้าง ๆ มีถุงจัมเปอร์ติดเทปไว้ ผมเคยตั้งให้แสดง HI/LO หรือ 01/99 หรือกลับค่ากันให้ turbo เป็น 20MHz และโหมดช้าเป็น 40MHz
  • page mode MMU ไม่ใช่ฟีเจอร์ใหม่ที่สำคัญที่สุดหรือ? ถ้าจำไม่ผิด สิ่งนี้ทำให้มีหน่วยความจำเสมือนที่ปกป้องอย่างสมบูรณ์ได้ แม้แต่กับแอปพลิเคชันเลกาซี
    • ผมว่ามันสำคัญพอ ๆ กับการเป็น 32 บิต ถ้าจะรัน BSD4.x/SystemV Unix หรือโคลนแบบจริงจัง จำเป็นต้องมีทั้งสองอย่าง
      286 เพียงพอสำหรับ UNIX สไตล์ PDP-11 และ 8088 ก็พอรัน UNIX ระดับงานอดิเรกได้พอไหว
  • ถ้า 386SX ไม่ได้ง่ายกว่ามากในเชิงอิเล็กทรอนิกส์เมื่อเทียบกับ 386DX แต่ต่างกันหลัก ๆ ที่แพ็กเกจจิง ก็น่าสนใจที่ไม่มี 386DL สำหรับโน้ตบุ๊กแบบไม่เกี่ยงราคา
    หน้าต่างตลาดคงแคบเกินไป ถ้าตอนนั้นต้องการสมรรถนะจริง ๆ ก็อาจยอมแลกแบตเตอรี่ไป ดังนั้นการใช้ CPU เดสก์ท็อปที่ไม่มีฟีเจอร์พิเศษด้านการจัดการพลังงานก็คงไม่ใช่ปัญหาใหญ่
  • “C” ใน 80C386I อาจหมายถึง CMOS ได้ไหม? เช่นเดียวกับแพตเทิร์นที่ใช้ใน 80C88 อะไรทำนองนั้นหรือเปล่า?
    • Intel 386 ทั้งหมดเป็น CMOS อยู่แล้ว ดังนั้นจึงดูยากที่ C ในรุ่นย่อไดจะหมายถึง CMOS
    • ดูใกล้เคียงกับ compact มากกว่า