อ่าน 7 นาที
เอเอ็มดี เอเอ็ม29000
AMD Am29000หรือเรียกสั้นๆ ว่า29kเป็นตระกูลไมโครโปรเซสเซอร์และไมโครคอนโทรลเลอร์RISC 32 บิต ที่พัฒนาและผลิตโดยAdvanced Micro Devices (AMD) โดยอิงจากBerkeley RISC รุ่นบุกเบิก 29k...
เอเอ็มดี เอเอ็ม29000


AMD Am29000หรือเรียกสั้นๆ ว่า29kเป็นตระกูลไมโครโปรเซสเซอร์และไมโครคอนโทรลเลอร์RISC 32 บิต ที่พัฒนาและผลิตโดยAdvanced Micro Devices (AMD) โดยอิงจากBerkeley RISC รุ่นบุกเบิก 29k ได้เพิ่มการปรับปรุงที่สำคัญหลายประการ มีการใช้งานอย่างแพร่หลายในเครื่องพิมพ์เลเซอร์ จากผู้ผลิตหลายรายในยุคนั้น และมีเอกสารยืนยันอย่างชัดเจนว่าถูกใช้ในเครื่องพิมพ์ เลเซอร์สีระดับไฮเอนด์ ของ HP ตั้งแต่รุ่นแรก Color LaserJet (Am29030) จนถึง HP Color LaserJet 5 ซึ่งใช้ Am29040
พัฒนาขึ้นตั้งแต่ปี 1984–1985 ประกาศในเดือนมีนาคม 1987 และวางจำหน่ายในเดือนพฤษภาคม 1988 [ 1 ] [ 2 ] [ 3 ] Am29000 รุ่นแรกตามมาด้วยหลายเวอร์ชัน โดยสิ้นสุดที่ Am29040 ในปี 1995 [ 4 ] 29050 โดดเด่นตรงที่เป็นรุ่นแรกๆ ที่มีหน่วยประมวลผลจุดลอยตัวที่สามารถดำเนินการคูณและบวก ได้หนึ่งครั้ง ต่อรอบ
AMD ออกแบบ โปรเซสเซอร์แบบ superscalar มา จนถึงปลายปี 1995 เมื่อ AMD ยุติการพัฒนา 29k เนื่องจากทีมออกแบบถูกย้ายไปสนับสนุนธุรกิจด้าน พีซี ( x86 ) ส่วนที่เหลือของธุรกิจ ด้านระบบฝังตัว ของ AMD ถูกปรับทิศทางใหม่ไปสู่ตระกูลโปรเซสเซอร์ 186 สำหรับระบบฝังตัว ซึ่งเป็นอนุพันธ์ของ80186ในขณะนั้น ทรัพยากรส่วนใหญ่ของ AMD มุ่งเน้นไปที่โปรเซสเซอร์ x86 ประสิทธิภาพสูงสำหรับพีซีเดสก์ท็อป โดยใช้แนวคิดและชิ้นส่วนต่างๆ จากการออกแบบ 29k มาผลิตAMD K5
ออกแบบ
ชิป 29k พัฒนามาจากดีไซน์ RISC ของ Berkeleyซึ่งเป็นดีไซน์เดียว กับที่ใช้ในการพัฒนา Sun SPARC , Intel i960 , ARMและRISC- V
องค์ประกอบการออกแบบอย่างหนึ่งที่ใช้ในบางดีไซน์ที่พัฒนามาจาก RISC ของเบิร์กลีย์ คือแนวคิดของหน้าต่างรีจิสเตอร์ (register windows)ซึ่งเป็นเทคนิคที่ใช้เพื่อเร่งความเร็วในการเรียกใช้โปรแกรมย่อยอย่างมีนัยสำคัญ แนวคิดคือการใช้ชุดรีจิสเตอร์ ขนาดใหญ่ เป็นสแต็ก โหลดข้อมูลภายในลงในชุดรีจิสเตอร์ระหว่างการเรียกใช้ และทำเครื่องหมายว่า "ตายแล้ว" (dead) เมื่อโปรแกรมย่อยส่งค่ากลับ ค่าที่ส่งกลับจากรูทีนจะถูกวางไว้ใน "หน้าส่วนกลาง" (global page) ซึ่งเป็นรีจิสเตอร์แปดตัวบนสุดใน SPARC (เป็นต้น) ดีไซน์ RISC ยุคแรกๆ ที่แข่งขันกันจากมหาวิทยาลัยสแตนฟอร์ดคือStanford MIPSก็ได้พิจารณาแนวคิดนี้เช่นกัน แต่ตัดสินใจว่าคอมไพเลอร์ที่ได้รับการปรับปรุงแล้วสามารถใช้รีจิสเตอร์อเนกประสงค์ได้อย่างมีประสิทธิภาพมากกว่าหน้าต่างที่กำหนดไว้ตายตัว
ในการออกแบบดั้งเดิมของ Berkeley, SPARC และ i960 นั้น ขนาดของหน้าต่างถูกกำหนดไว้ตายตัว รูทีนที่ใช้ตัวแปรโลคอลเพียงตัวเดียวก็ยังคงใช้รีจิสเตอร์ถึงแปดตัวบน SPARC ซึ่งเป็นการสิ้นเปลืองทรัพยากรที่มีราคาแพง นี่คือจุดที่ 29k แตกต่างจากการออกแบบก่อนหน้านี้ โดยใช้ขนาดหน้าต่างที่เปลี่ยนแปลงได้ ในตัวอย่างนี้จะใช้รีจิสเตอร์เพียงสองตัวเท่านั้น ตัวหนึ่งสำหรับตัวแปรโลคอล และอีกตัวสำหรับที่อยู่ส่งคืน นอกจากนี้ ยังเพิ่มรีจิสเตอร์มากขึ้น รวมถึงรีจิสเตอร์ 128 ตัวเท่าเดิมสำหรับสแต็กของโปรซีเดอร์ แต่เพิ่มอีก 64 ตัวสำหรับการเข้าถึงส่วนกลาง เมื่อเปรียบเทียบกันแล้ว SPARC มีรีจิสเตอร์ทั้งหมด 128 ตัว และชุดส่วนกลางเป็นหน้าต่างมาตรฐานขนาดแปด การเปลี่ยนแปลงนี้ส่งผลให้การใช้รีจิสเตอร์ใน 29000 ดีขึ้นมากภายใต้ภาระงานที่หลากหลาย
นอกจากนี้ 29k ยังขยายสแต็กหน้าต่างรีจิสเตอร์ด้วยสแต็กในหน่วยความจำ (และในทางทฤษฎีคือในแคช) เมื่อหน้าต่างเต็ม การเรียกใช้จะถูกผลักออกจากส่วนท้ายของสแต็กรีจิสเตอร์ไปยังหน่วยความจำ และจะถูกเรียกคืนเมื่อจำเป็นเมื่อรูทีนส่งค่ากลับ โดยทั่วไปแล้ว การใช้งานรีจิสเตอร์ของ 29k นั้นล้ำหน้ากว่าการออกแบบของคู่แข่งที่ใช้แนวคิดของเบิร์กลีย์อย่างมาก

ความแตกต่างอีกประการหนึ่งจากการออกแบบของเบิร์กลีย์คือ 29k หลีกเลี่ยงการใช้รหัสเงื่อนไข แม้ว่า 29k จะสร้างแฟล็ก NZVC มาตรฐานหลังจากดำเนินการทางคณิตศาสตร์และตรรกะ แต่การใช้งาน เพียงอย่างเดียว คือคำสั่งบวกและลบที่มีตัวทด การกระโดดแบบมีเงื่อนไขจำกัดอยู่ที่การกระโดดบนบิตที่มีนัยสำคัญที่สุด (บิตเครื่องหมาย) ของรีจิสเตอร์อเนกประสงค์ ซึ่งสามารถตั้งค่าได้โดยชุดคำสั่งเปรียบเทียบ (เช่น "มากกว่าแบบมีเครื่องหมาย" หรือ "เท่ากับ") รีจิสเตอร์ใดก็ได้สามารถใช้เพื่อจุดประสงค์นี้ ทำให้สามารถบันทึกเงื่อนไขได้ง่ายโดยแลกกับการทำให้โค้ดบางส่วนซับซ้อนขึ้น แคชเป้าหมายการกระโดด (512 ไบต์ใน 29000 และ 1024 ไบต์ใน 29050) จัดเก็บชุดคำสั่ง 4 หรือ 2 คำสั่งตามลำดับที่พบในที่อยู่เป้าหมายการกระโดด ลดความหน่วงในการดึงคำสั่งระหว่างการกระโดด—29000 ไม่มีระบบทำนายการกระโดดดังนั้นจึงมีความล่าช้าหากมีการกระโดดเกิดขึ้น หมายความว่า 29000 มีช่องหน่วงเวลาการแยก สาขา เพียง ช่องเดียว [ 5 ]บัฟเฟอร์ช่วยลดปัญหานี้โดยการจัดเก็บคำสั่งสี่หรือสองคำสั่งจากที่อยู่เป้าหมายของการแยกสาขา ซึ่งสามารถดำเนินการได้ทันทีในขณะที่บัฟเฟอร์การดึงข้อมูลถูกเติมด้วยคำสั่งใหม่จากหน่วยความจำ[ 6 ]
การสนับสนุนการแปลที่อยู่เสมือนใช้วิธีการที่คล้ายคลึงกับสถาปัตยกรรม MIPS บัฟเฟอร์ค้นหาการแปล (TLB) 64 รายการจะเก็บการแมปจากที่อยู่เสมือนไปยังที่อยู่ทางกายภาพ และเมื่อพบที่อยู่ที่ไม่ได้แปล TLB "พลาด" ที่เกิดขึ้นจะทำให้โปรเซสเซอร์หยุดทำงานและเรียกใช้รูทีนซอฟต์แวร์ที่รับผิดชอบในการให้การแมปที่เหมาะสมกับหน่วยความจำทางกายภาพ ในทางตรงกันข้ามกับวิธีการของ MIPS ซึ่งใช้ รีจิสเตอร์ แบบสุ่มเพื่อเลือกรายการ TLB ที่จะถูกแทนที่เมื่อเกิดเหตุการณ์ TLB พลาด 29000 มี รีจิสเตอร์ lru (ใช้งานล่าสุดน้อยที่สุด) โดยเฉพาะ[ 7 ]ผลิตภัณฑ์บางอย่างในตระกูล 29000 มีรายการ TLB เพียง 16 รายการเพื่อให้สามารถจัดสรรส่วนหนึ่งของซิลิคอนให้กับอุปกรณ์ต่อพ่วง เพื่อชดเชย ขนาด หน้า สูงสุด ที่ใช้โดยการแมปจึงเพิ่มขึ้นจาก 8 KB เป็น 16 MB [ 8 ] : 305–306
เวอร์ชัน
Am29000 รุ่นแรกวางจำหน่ายในปี พ.ศ. 2531 โดยมี MMUในตัวแต่ การรองรับ จุดลอยตัวถูกถ่ายโอนไปยังFPU Am29027 หน่วยที่มี MMU หรือ Branch Target Cache ล้มเหลว จะถูกขายในชื่อAm29005 [ 6 ]
ในปี พ.ศ. 2534 ได้มีการขยายสายผลิตภัณฑ์ด้วยAm29030และAm29035ซึ่งมี แคชคำสั่งขนาด 8 KB หรือ 4 KB ตามลำดับ[ 9 ] ในขณะนั้น [ 10 ] Am29050 ก็ได้วางจำหน่ายแล้วโดยไม่มีแคชในตัวชิป แต่มีหน่วยประมวลผลจุดลอยตัว ที่มี การดำเนินการคูณและสะสมแบบไปป์ไลน์เต็มรูปแบบแคชเป้าหมายสาขาขนาดใหญ่ขึ้น 1 KB ที่มีอัตราการเข้าถึง 80% และการดำเนินการโหลดแบบไปป์ไลน์ที่ดีขึ้นซึ่งเร่งความเร็วโดยแคชที่อยู่ทาง กายภาพแบบ TLB 4 รายการ แม้ว่าจะไม่ใช่ โปรเซสเซอร์ แบบซูเปอร์สเกลาร์แต่ก็อนุญาตให้การดำเนินการจุดลอยตัวและการดำเนินการจำนวนเต็มเสร็จสมบูรณ์ในรอบเดียวกัน ด้านจำนวนเต็มและจุดลอยตัวแต่ละด้านมีพอร์ตการเขียนของตัวเองไปยังรีจิสเตอร์[ 11 ]ประกอบด้วยทรานซิสเตอร์ 428,000 ตัว [ 12 ]บนกระบวนการผลิต 1 ไมครอน[ 13 ]โดยมีความยาวช่องสัญญาณที่มีประสิทธิภาพ 0.8 ไมครอน[ 11 ]และมีให้เลือกใช้งานที่ความถี่ 20, 25, 33 และ 40 MHz ต่อมาได้ มีการวางจำหน่าย Am29040ที่ความถี่ 33, 40 และ 50 MHz ซึ่งมีลักษณะคล้ายกับ Am29030 ยกเว้นมีแคชข้อมูล 4 KB หน่วยการคูณ และการปรับปรุงอื่นๆ อีกเล็กน้อย[ 14 ] Am29040 ขนาด 119 ตารางมิลลิเมตรประกอบด้วยทรานซิสเตอร์ 1.2 ล้านตัว บนกระบวนการผลิต 0.7 ไมครอน[ 15 ] [ 16 ]
เวอร์ชันsuperscalarของ 29K กำลังได้รับการออกแบบ แต่ถูกยกเลิกเพื่อเลือกใช้ x86 แทน มีชื่อรหัสว่าJaguar [ 3 ] และได้รับการอธิบายในเดือนพฤศจิกายน 1994 และสิงหาคม 1995 [ 17 ] [ 18 ]เป็นการออกแบบขั้นสูง สามารถส่ง คำสั่งแบบสี่ทางไปยัง สถานีสำรองหก สถานี และดำเนินการคำสั่งแบบไม่เรียงลำดับ โดย คาดการณ์ล่วงหน้า พร้อมการรีไทร์แบบสี่ทาง ไฟล์รีจิสเตอร์อนุญาตให้มีการอ่านสี่ครั้งและการเขียนสองครั้งพร้อมกัน แคชสำหรับคำสั่งและข้อมูลมีขนาด 8 KB การโหลดจากแคชสามารถข้ามการจัดเก็บได้ไม่มี FPU บนชิปเนื่องจากเหตุผลด้านต้นทุนและตลาดเป้าหมาย คาดว่าจะบรรลุความถี่ 100 MHz บนกระบวนการ 0.4 ไมครอน[ 17 ] [ 19 ]
AMD ใช้สถาปัตยกรรมไมโคร 29K ที่ยังไม่เปิดตัวเป็นพื้นฐานของ โปรเซสเซอร์ที่เข้ากันได้กับ x86ซีรีส์K5 ALU ถูกนำมาใช้ต่อ รวมถึงบัฟเฟอร์การเรียงลำดับใหม่ที่มีการดัดแปลงเล็กน้อยFPUนำมาจาก 29050 แต่ขยายความแม่นยำเป็น 80 บิต K5 แปลงคำสั่ง x86 เป็น "RISC-OPs" เมื่อถอดรหัส โดยอาศัยข้อมูลการถอดรหัสล่วงหน้าของคำสั่งที่แคชไว้ AMD อ้างว่า 29K แบบ superscalar จะมีประสิทธิภาพต่ำกว่า K5 เพียงเล็กน้อย แต่มีต้นทุนต่ำกว่ามากเนื่องจากขนาดที่แตกต่างกัน[ 20 ] [ 17 ]
Honeywell 29KII เป็นซีพียูที่ใช้พื้นฐานจาก AMD 29050 และถูกนำไปใช้อย่างแพร่หลายในระบบอิเล็กทรอนิกส์การบิน แบบเรียลไท ม์
- รูปถ่าย
- แอม29000
- แอม29030
- แอม29040
- แอม29050
ผลิตภัณฑ์และการใช้งาน
ชิป 29000 ถูกวางตำแหน่งให้เป็นผลิตภัณฑ์สำหรับ "แอปพลิเคชันฝังตัวที่มีประสิทธิภาพปานกลางถึงสูง" โดยมีศักยภาพในการใช้งานในเวิร์กสเตชันUnix [ 7 ] และ ถูกนำไปใช้ในผลิตภัณฑ์หลากหลายประเภท เช่น เท อร์มินัล Xการ์ดควบคุมเครื่องพิมพ์เลเซอร์การ์ดเร่งกราฟิก โซลูชัน การรู้จำอักขระด้วยแสงและบริดจ์เครือข่าย [ 21 ] สถาปัตยกรรมหน่วยความจำของชิป 29000 เป็นจุดดึงดูดใจเป็นพิเศษสำหรับนักออกแบบผลิตภัณฑ์ ทำให้พวกเขาสามารถละเว้นหน่วยความจำแคชภายนอกและใช้RAM แบบไดนามิกโดยตรงในขณะที่ยังคงรักษาประสิทธิภาพที่ยอมรับได้[ 21 ] : 1ซึ่งช่วยให้มีความยืดหยุ่นในระดับหนึ่งในการเลือกเทคโนโลยีหน่วยความจำที่ใช้ในการเก็บคำสั่งโปรแกรมและข้อมูล[ 22 ]
29k ถูกนำมาใช้เป็นตัวเร่งการคำนวณหรือตัวประมวลผลร่วม โดยเฉพาะอย่างยิ่งบนแพลตฟอร์ม Macintosh และ IBM PC ที่เข้ากันได้ ตัวอย่างเช่น Yarc Systems Corporation ผลิตการ์ด "RISC coprocessor" ที่ใช้ 29k สำหรับระบบMacintosh IIและPC AT ควบคู่ไปกับการ์ด " CISC coprocessor" อื่นๆ ที่มี โปรเซสเซอร์ Motorola 68020และ68030และการ์ด "parallel coprocessor" ที่มีโปรเซสเซอร์transputer T800 [ 23 ]การ์ดNuSuper (เดิมชื่อMcCray [ 24 ] ) และAT-Superซึ่งใช้ CPU Am29000 และตัวเร่งการคำนวณจุดลอยตัว Am29027 [ 23 ]ตามมาด้วยMacRageousซึ่งอัปเกรด CPU เป็น Am29050 [ 25 ]การ์ดเร่งความเร็วเหล่านี้ให้ประสิทธิภาพมากกว่า Macintosh II หลายเท่า และมีประสิทธิภาพเทียบเท่ากับเวิร์กสเตชัน RISC เช่นDECstation 3100 นอกจากนี้ยังสามารถติดตั้งการ์ดหลายตัวในระบบได้ อย่างไรก็ตาม ต้นทุนของระบบ Macintosh II เมื่อรวมกับการ์ดดังกล่าวมีราคาใกล้เคียงกับเวิร์กสเตชัน RISC ที่ใช้ Unix อยู่แล้ว[ 26 ] AT-Super มีราคาประมาณ 4,600 ดอลลาร์ และมีรายงานว่าใช้ Unix ซึ่งแข่งขันกับผลิตภัณฑ์ที่คล้ายกันที่ใช้ โปรเซสเซอร์Intel i860 [ 27 ]
ผลิตภัณฑ์ที่โดดเด่นอย่างหนึ่งที่ใช้ 29k คือการ์ดแสดงผล Macintosh Display Card 8·24 GC ของ Apple สำหรับMacintosh IIfxซึ่งมีโปรเซสเซอร์ Am29000 ความเร็ว 30 MHz, แคช RAM แบบคงที่ 64 KB และRAM วิดีโอ 2 MB พร้อมตัวเลือก RAM แบบไดนามิกเพิ่มเติม 2 MB สำหรับใช้โดย ชุดเครื่องมือกราฟิก QuickDrawการรวม 29k ทำให้การ์ดเวอร์ชันนี้แตกต่างจากเวอร์ชันอื่น ๆ ที่ Apple จำหน่าย ซึ่งช่วยปรับปรุงประสิทธิภาพอย่างมากเมื่อจัดการกับภาพ24 บิตต่อพิกเซล[ 28 ]
ดูเพิ่มเติม
ลิงก์ภายนอก
- คู่มือระบุรุ่น AMD 29k (Streamlined Instruction Processor)
- Mann, Daniel (1995), การประเมินและการเขียนโปรแกรมตระกูล RISC 29K (PDF) , Advanced Micro Devices, เก็บถาวรจากต้นฉบับ(PDF)เมื่อวันที่ 27 กันยายน 2007หนังสือ PDF เกี่ยวกับครอบครัว 29,000 คน
- chipdb.orgรูปภาพของโปรเซสเซอร์ Am29000 รุ่นต่างๆ
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ เอเอ็มดี เอเอ็ม29000
AMD Am29000หรือเรียกสั้นๆ ว่า29kเป็นตระกูลไมโครโปรเซสเซอร์และไมโครคอนโทรลเลอร์RISC 32 บิต ที่พัฒนาและผลิตโดยAdvanced Micro Devices (AMD) โดยอิงจากBerkeley RISC รุ่นบุกเบิก 29k...
ออกแบบ
ชิป 29k พัฒนามาจากดีไซน์ RISC ของ Berkeley ซึ่งเป็นดีไซน์เดียว กับที่ใช้ในการพัฒนา Sun SPARC , Intel i960 , ARM และ RISC- V
เวอร์ชัน
Am29000 รุ่นแรกวางจำหน่ายในปี พ.ศ. 2531 โดยมี MMU ในตัวแต่ การรองรับ จุดลอยตัว ถูกถ่ายโอนไปยัง FPU Am29027 หน่วยที่มี MMU หรือ Branch Target Cache ล้มเหลว จะถูกขายในชื่อ Am29005 [ 6 ]
ผลิตภัณฑ์และการใช้งาน
ชิป 29000 ถูกวางตำแหน่งให้เป็นผลิตภัณฑ์สำหรับ "แอปพลิเคชันฝังตัวที่มีประสิทธิภาพปานกลางถึงสูง" โดยมีศักยภาพในการใช้งานใน เวิร์กสเตชัน Unix [ 7 ] และ ถูกนำไปใช้ในผลิตภัณฑ์หลากหลายประเภท เช่น เท อร์มินัล X การ์ดควบคุมเครื่องพิมพ์เลเซอร์การ์ด เร่งกราฟิก โซลูชัน...