กลับไปหน้าบทความ

อ่าน 12 นาที

อินเทล 8080

Intel 8080 เป็น ไมโครโปรเซสเซอร์ 8 บิตตัว ที่สองของ Intel เปิดตัวในเดือนเมษายน พ.ศ.

อินเทล 8080

อินเทล 8080
โปรเซสเซอร์ Intel 8080 แบบปิดและแบบเปิด
ข้อมูลทั่วไป
เปิดตัวเมษายน พ.ศ. 2517 ( เมษายน 1974 )
เลิกผลิตแล้ว1990 [ 1 ] ( 1990 )
ทำการตลาดโดยอินเทล
ออกแบบโดยอินเทล
ผู้ผลิตทั่วไป
  • อินเทล
ผลงาน
ความเร็วสัญญาณนาฬิกาCPU สูงสุด2 เมกะเฮิร์ตซ์ ถึง 3.125 เมกะเฮิร์ตซ์
ความกว้างของข้อมูล8 บิต
ความกว้างของที่อยู่16 บิต
ข้อกำหนดทางกายภาพ
ทรานซิสเตอร์
  • 4,500 หรือ 6,000 [ 2 ]
แกนกลาง
  • 1
บรรจุุภัณฑ์
ซ็อกเก็ต
สถาปัตยกรรมและการจำแนกประเภท
โหนดเทคโนโลยี6 ไมโครเมตร
ชุดคำสั่ง8080
ประวัติศาสตร์
ผู้มาก่อนอินเทล 8008
ผู้สืบทอดอินเทล 8085
สถานะการสนับสนุน
ไม่ได้รับการสนับสนุน

Intel 8080เป็น ไมโครโปรเซสเซอร์ 8 บิตตัวที่สองของIntelเปิดตัวในเดือนเมษายน พ.ศ. 2517 โดย 8080 เป็น รุ่นต่อ ยอด จาก ไมโครโปรเซสเซอร์Intel 8008รุ่นก่อนหน้าที่เข้ากันได้กับ ระบบไบนารีที่ได้รับการปรับปรุง [ 3 ]เดิมทีตั้งใจให้ใช้ในระบบฝังตัวเช่นเครื่องคิดเลขเครื่องบันทึกเงินสดเทอร์มินัลคอมพิวเตอร์และหุ่นยนต์อุตสาหกรรม[ 4 ]ประสิทธิภาพของมันในไม่ช้าก็ทำให้มีการนำไปใช้ในระบบที่หลากหลายมากขึ้น ซึ่งในที่สุดก็ก่อให้เกิดอุตสาหกรรม ไมโครคอมพิวเตอร์

การออกแบบที่สำคัญหลายประการมีส่วนทำให้ 8080 ประสบความสำเร็จ แพ็คเกจ 40 พินช่วยลดความซับซ้อนของการเชื่อมต่อเมื่อเทียบกับการออกแบบ 18 พินของ 8008 ทำให้บัสข้อมูล มีประสิทธิภาพมากขึ้น การเปลี่ยนไปใช้ เทคโนโลยี NMOS ทำให้ความเร็วของทรานซิสเตอร์เร็วกว่า PMOSของ 8008 และยังทำให้ สามารถใช้งานร่วมกับ TTL ได้ด้วย ชุดคำสั่งที่ขยายใหญ่ขึ้นและ บัสแอดเดรส 16 บิต เต็มรูปแบบ ทำให้ 8080 สามารถเข้าถึงหน่วยความจำได้มากถึง 64 KB ซึ่งเพิ่มความจุเป็นสี่เท่าของรุ่นก่อนหน้า การมีชิปสนับสนุนที่หลากหลายมากขึ้นช่วยเพิ่มฟังก์ชันการทำงานให้ดียิ่งขึ้น การปรับปรุงเหล่านี้ส่วนใหญ่มาจากการรับฟังความคิดเห็นของลูกค้า โดยนักออกแบบFederico Fagginและคนอื่นๆ ที่ Intel ได้รับฟังข้อบกพร่องในสถาปัตยกรรม 8008 จากภาคอุตสาหกรรม

โปรเซสเซอร์ 8080 ได้ถูกนำไปใช้ในคอมพิวเตอร์ส่วนบุคคล รุ่นแรกๆ เช่นAltair 8800และระบบบัส S-100 รุ่นต่อมา และยังทำหน้าที่เป็น CPU เป้าหมายดั้งเดิมสำหรับระบบปฏิบัติการ CP/M อีกด้วย โปรเซสเซอร์นี้มีอิทธิพลโดยตรงต่อ สถาปัตยกรรม x86ในภายหลังซึ่งได้รับการออกแบบเพื่อให้ภาษาแอสเซมบลี ของมัน คล้ายคลึงกับภาษาของ 8080 อย่างมาก ทำให้สามารถแมปคำสั่งต่างๆ จากภาษาหนึ่งไปยังอีกภาษาหนึ่งได้โดยตรง[ 5 ]

เดิมทีโปรเซสเซอร์ 8080 ทำงานที่ความเร็วสัญญาณนาฬิกาMHzโดยคำสั่งทั่วไปใช้เวลาประมาณ 4 ถึง 11 รอบสัญญาณนาฬิกา ทำให้สามารถประมวลผลคำสั่งได้หลายแสนคำสั่งต่อวินาทีต่อมาได้มีการพัฒนาโปรเซสเซอร์รุ่นที่เร็วกว่าสองรุ่น คือ 8080A-1 และ 8080A-2 ซึ่งมีความเร็วสัญญาณนาฬิกาเพิ่มขึ้นเป็น 3.125 MHz และ 2.63 MHz ตามลำดับ[ 6 ]ในแอปพลิเคชันส่วนใหญ่ โปรเซสเซอร์จะจับคู่กับชิปสนับสนุนสองตัว คือ ตัวสร้าง/ขับสัญญาณนาฬิกา 8224 และตัวควบคุมบัส 8228 เพื่อจัดการจังหวะเวลาและการไหลของข้อมูล

ประวัติศาสตร์

ลูกค้าไมโครโปรเซสเซอร์ไม่เต็มใจที่จะนำ 8008 มาใช้เนื่องจากข้อจำกัดต่างๆ เช่น โหมดการกำหนดแอดเดรสแบบเดี่ยว ความเร็วสัญญาณนาฬิกาต่ำ จำนวนพินต่ำ และสแต็กบนชิปขนาดเล็ก ซึ่งจำกัดขนาดและความซับซ้อนของซอฟต์แวร์ มีการออกแบบที่เสนอสำหรับ 8080 หลายแบบ ตั้งแต่การเพิ่มคำสั่งสแต็กให้กับ 8008 ไปจนถึงการเปลี่ยนแปลงอย่างสิ้นเชิงจากสถาปัตยกรรม Intel ก่อนหน้านี้ทั้งหมด[ 7 ]การออกแบบขั้นสุดท้ายเป็นการประนีประนอมระหว่างข้อเสนอต่างๆ

แนวคิดของ 8080 เริ่มขึ้นในช่วงฤดูร้อนปี 1971 เมื่อIntelเสร็จสิ้นการพัฒนา4004และยังคงทำงานเกี่ยวกับ8008อยู่ หลังจากมีข่าวลือเกี่ยวกับ "CPU บนชิป" ออกมา Intel ก็เริ่มเห็นความสนใจในไมโครโปรเซสเซอร์จากลูกค้าทุกประเภท ในขณะเดียวกันFederico Fagginซึ่งเป็นผู้นำในการออกแบบ 4004 และกลายเป็นสถาปนิกหลักของ 8080 ได้จัดสัมมนาทางเทคนิคเกี่ยวกับไมโครโปรเซสเซอร์ทั้งสองรุ่นดังกล่าวและไปเยี่ยมลูกค้า เขาพบว่าลูกค้าบ่นเกี่ยวกับสถาปัตยกรรมและประสิทธิภาพของไมโครโปรเซสเซอร์ดังกล่าว โดยเฉพาะอย่างยิ่ง 8008 เนื่องจากความเร็วที่ 0.5 MHz นั้น "ไม่เพียงพอ" [ 7 ]

ต่อมา Faggin ได้เสนอชิปดังกล่าวต่อฝ่ายบริหารของ Intel และผลักดันให้มีการนำไปใช้งานในช่วงฤดูใบไม้ผลิปี 1972 เนื่องจากการพัฒนาชิป 8008 ใกล้จะเสร็จสมบูรณ์แล้ว อย่างไรก็ตาม เขาประหลาดใจและผิดหวังอย่างมากที่ Intel ไม่ได้อนุมัติโครงการนี้ Faggin กล่าวว่า Intel ต้องการดูว่าตลาดจะตอบสนองต่อชิป 4004 และ 8008 อย่างไรก่อน ในขณะที่คนอื่นๆ สังเกตเห็นปัญหาที่ Intel กำลังประสบอยู่ในการนำชิปหน่วยความจำรุ่นล่าสุดออกสู่ตลาด และต้องการมุ่งเน้นไปที่เรื่องนั้น ด้วยเหตุนี้ Intel จึงไม่ได้อนุมัติโครงการนี้จนกระทั่งฤดูใบไม้ร่วงของปีนั้น[ 7 ] Faggin ได้ว่าจ้างMasatoshi Shimaจากญี่ปุ่นในเดือนพฤศจิกายนปี 1972 ซึ่งเขาได้ช่วยออกแบบตรรกะของชิป 4004 ร่วมกับเขา Shima ได้ทำการออกแบบโดยละเอียดภายใต้การกำกับดูแลของ Faggin [ 8 ]โดยใช้วิธีการออกแบบตรรกะแบบสุ่มด้วยเกตซิลิคอนที่ Faggin ได้สร้างขึ้นสำหรับตระกูล 4000 และ 8008

ไมโครโปรเซสเซอร์ 8080 ถูกออกแบบมาโดยเฉพาะให้เป็นไมโครโปรเซสเซอร์อเนกประสงค์สำหรับลูกค้าจำนวนมาก ความพยายามในการพัฒนาส่วนใหญ่จึงมุ่งเน้นไปที่การรวมฟังก์ชันการทำงานของชิปเสริมของ 8008 เข้าไว้ในแพ็คเกจเดียว ในช่วงเริ่มต้นของการพัฒนา ได้มีการตัดสินใจว่า 8080 จะไม่ให้สามารถใช้งานร่วมกับ 8008 ได้โดยตรงในระดับไบนารี แต่จะเลือกใช้การใช้งานร่วมกับซอร์สโค้ดหลังจากผ่านตัวแปลงโค้ด (transpiler) เพื่อให้ซอฟต์แวร์ใหม่ไม่ตกอยู่ภายใต้ข้อจำกัดเดียวกับ 8008 ด้วยเหตุผลเดียวกันนี้ รวมถึงเพื่อขยายขีดความสามารถของรูทีนแบบสแต็กและการขัดจังหวะ จึงได้ย้ายสแต็กไปยังหน่วยความจำภายนอก

เมื่อสังเกตเห็นการใช้งานรีจิสเตอร์อเนกประสงค์เฉพาะทางโดยโปรแกรมเมอร์ในระบบเมนเฟรม Faggin ร่วมกับ Shima และStanley Mazorจึงตัดสินใจว่ารีจิสเตอร์ของ 8080 จะต้องมีความเฉพาะทาง โดยรีจิสเตอร์แต่ละคู่จะมีชุดการใช้งานที่แตกต่างกัน[ 9 ]ซึ่งทำให้วิศวกรสามารถใช้ทรานซิสเตอร์เพื่อวัตถุประสงค์อื่นได้อย่างมีประสิทธิภาพมากขึ้น

ชิมะออกแบบเลย์เอาต์เสร็จสิ้นในเดือนสิงหาคม พ.ศ. 2516 การผลิตชิปเริ่มขึ้นในเดือนธันวาคมของปีนั้น[ 7 ]หลังจากการพัฒนาการ ผลิต ลอจิก NMOSต้นแบบของ 8080 ก็เสร็จสมบูรณ์ในเดือนมกราคม พ.ศ. 2517 ต้นแบบนี้มีข้อบกพร่องตรงที่การขับเคลื่อนด้วยอุปกรณ์ TTL มาตรฐานทำให้แรงดันกราวด์เพิ่มขึ้นเนื่องจากกระแสสูงไหลเข้าสู่สายแคบ อินเทลได้ผลิต 8080 จำนวน 40,000 หน่วยตามคำสั่งของฝ่ายขายก่อนที่ชิมะจะตรวจสอบคุณสมบัติของต้นแบบ หลังจากแก้ไขปัญหาในนาทีสุดท้ายตามปกติแล้ว อินเทลได้เปิดตัวผลิตภัณฑ์ในเดือนมีนาคม พ.ศ. 2517 [ 7 ]วางจำหน่ายในอีกหนึ่งเดือนต่อมาโดยต้องใช้อุปกรณ์ Schottky TTL พลังงานต่ำ (LS TTL) 8080A ได้แก้ไขข้อบกพร่องนี้[ 10 ]

Intel เสนอโปรแกรมจำลองชุดคำสั่งสำหรับ 8080 ที่ชื่อ INTERP/80 เพื่อรัน โปรแกรม PL/M ที่คอมไพล์แล้ว โปรแกรมนี้เขียนด้วยภาษาFORTRAN IVโดยGary Kildallในขณะที่เขาทำงานเป็นที่ปรึกษาให้กับ Intel [ 11 ] [ 12 ]

มีสิทธิบัตรเพียงฉบับเดียวสำหรับชิป 8080 โดยมีชื่อผู้ถือสิทธิบัตรดังนี้: Federico Faggin, Masatoshi Shima, Stanley Mazor

คำอธิบาย

แบบจำลองการเขียนโปรแกรม

สถาปัตยกรรมไมโคร i8080
รีจิสเตอร์ Intel 8080
1 51 41 31 21 11 00 90 80 70 60 50 40 30 20 10 0(ตำแหน่งบิต)
รีจิสเตอร์หลัก
เอ ธง คำสถานะโปรแกรม
บี ซี บี
ดี อี ดี
ชม แอล H (ที่อยู่ทางอ้อม)
ดัชนีลงทะเบียน
เอสพี ตัวชี้แต็
ตัวนับโปรแกรม
พีซี โปรแกรมเคาน์เตอร์​​
ทะเบียนสถานะ
  เอส0 เอซี0 พี1 ซีธง[ 13 ]

Intel 8080 เป็นรุ่นต่อจาก8008 มันใช้ ชุดคำสั่ง พื้นฐาน และ โมเดล รีจิสเตอร์แบบเดียวกันกับ 8008 แม้ว่าจะไม่สามารถใช้งานร่วมกันได้ทั้งในระดับซอร์สโค้ดและไบนารีโค้ด ก็ตาม ทุกคำสั่งใน 8008 มีคำสั่งที่เทียบเท่ากันใน 8080 นอกจากนี้ 8080 ยังเพิ่มการทำงานแบบ 16 บิตในชุดคำสั่ง ในขณะที่ 8008 ต้องใช้คู่รีจิสเตอร์ HL เพื่อเข้าถึงพื้นที่หน่วยความจำ 14 บิตโดยอ้อม 8080 มีโหมดการกำหนดแอดเดรสเพื่อเข้าถึงพื้นที่หน่วยความจำ 16 บิตทั้งหมดโดยตรงสแต็กการเรียกแบบ พุชดาวน์ 7 ระดับภายในของ 8008 ถูกแทนที่ด้วยรีจิสเตอร์ตัวชี้สแต็ก (SP) 16 บิตโดยเฉพาะ แพ็คเกจ DIP 40 พินของ 8080 ให้ บัสแอดเดรส 16 บิต และ บัสข้อมูล 8 บิตที่เข้าถึง  หน่วยความจำ 64 KiB ( 2¹⁶ ไบต์) ได้อย่างมีประสิทธิภาพมากขึ้น

ทะเบียน

โปรเซสเซอร์มี รีจิสเตอร์ 8 บิตเจ็ดตัว(A, B, C, D, E, H และ L) โดยที่ A เป็นตัวสะสมหลักขนาด 8 บิต รีจิสเตอร์อีกหกตัวสามารถใช้เป็นรีจิสเตอร์ 8 บิตแต่ละตัว หรือเป็นคู่รีจิสเตอร์ 16 บิตสามคู่ (BC, DE และ HL ซึ่งในเอกสารของ Intel เรียกว่า B, D และ H) ขึ้นอยู่กับคำสั่งเฉพาะนั้นๆ คำสั่งบางคำสั่งยังสามารถใช้คู่รีจิสเตอร์ HL เป็นตัวสะสมขนาด 16 บิต (แบบจำกัด) ได้อีกด้วย รีจิสเตอร์เสมือน M ซึ่งอ้างอิงถึงตำแหน่งหน่วยความจำที่ถูกอ้างอิงโดย HL สามารถใช้งานได้เกือบทุกที่ที่รีจิสเตอร์อื่นๆ สามารถใช้งานได้ โปรเซสเซอร์ 8080 มีตัวชี้สแต็ก ไปยังหน่วยความจำขนาด 16 บิต แทนที่ สแต็กภายในของ 8008 และ ตัวนับโปรแกรมขนาด 16 บิต

ธง

โปรเซสเซอร์จะเก็บค่าบิตสถานะ ภายใน ( รีจิสเตอร์สถานะ ) ซึ่งบ่งชี้ผลลัพธ์ของคำสั่งทางคณิตศาสตร์และตรรกะ มีเพียงบางคำสั่งเท่านั้นที่จะส่งผลต่อค่าสถานะเหล่านี้ ค่าสถานะเหล่านั้นได้แก่:

บิตทด (carry bit) สามารถตั้งค่าหรือเติมเต็มได้ด้วยคำสั่งเฉพาะ คำสั่งแยกสาขาแบบมีเงื่อนไขจะทดสอบบิตสถานะแฟล็กต่างๆ ตัวสะสมและแฟล็กทั้งหมดเรียกว่า PSW หรือคำสถานะโปรแกรม PSW สามารถผลักเข้าหรือดึงออกจากสแต็กได้

คำสั่ง คำแนะนำ

เช่นเดียวกับโปรเซสเซอร์ 8 บิตอื่นๆ คำสั่งทั้งหมดจะถูกเข้ารหัสในหนึ่งไบต์ (รวมถึงหมายเลขรีจิสเตอร์ แต่ไม่รวมข้อมูลคงที่) เพื่อความเรียบง่าย บางคำสั่งอาจตามด้วยข้อมูลหนึ่งหรือสองไบต์ ซึ่งอาจเป็นตัวถูกดำเนินการคงที่ ที่อยู่หน่วยความจำ หรือหมายเลขพอร์ต เช่นเดียวกับโปรเซสเซอร์ขั้นสูงกว่า โปรเซสเซอร์นี้มีคำสั่ง CALL และ RET อัตโนมัติสำหรับการเรียกและส่งคืนค่าในกระบวนการหลายระดับ (ซึ่งสามารถดำเนินการแบบมีเงื่อนไขได้ เช่นเดียวกับการกระโดด) และคำสั่งในการบันทึกและกู้คืนคู่รีจิสเตอร์ 16 บิตใดๆ บนสแต็กของเครื่อง มีคำสั่งเรียกหนึ่งไบต์แปดคำสั่ง ( RST) สำหรับซับรูทีนอยู่ที่ที่อยู่คงที่ 00h, 08h, 10h, ..., 38h คำสั่งเหล่านี้มีไว้สำหรับฮาร์ดแวร์ภายนอกเพื่อเรียกใช้รูทีนบริการขัดจังหวะ ที่เกี่ยวข้อง แต่ก็มักถูกใช้เป็นการเรียกระบบ ที่รวดเร็วด้วย คำสั่งที่ช้าที่สุดคือXTHLซึ่งจะแลกเปลี่ยนคู่รีจิสเตอร์ HL กับรายการสุดท้ายที่ถูกผลักลงบนสแต็ก

คำสั่ง 8 บิต

การดำเนินการ ALU 8 บิตทั้งหมดที่มีตัวถูกดำเนินการสองตัว สามารถดำเนินการได้เฉพาะกับตัวสะสม 8 บิต (รีจิสเตอร์ A) เท่านั้น ตัวถูกดำเนินการอีกตัวหนึ่งอาจเป็นค่าคงที่ รีจิสเตอร์ 8 บิตอีกตัว หรือไบต์หน่วยความจำที่ระบุโดยคู่รีจิสเตอร์ 16 บิต HL การเพิ่มและการลดค่าสามารถทำได้กับรีจิสเตอร์ 8 บิตใดๆ หรือไบต์หน่วยความจำที่ระบุโดย HL การคัดลอกโดยตรงสามารถทำได้ระหว่างรีจิสเตอร์ 8 บิตสองตัวใดๆ และระหว่างรีจิสเตอร์ 8 บิตใดๆ กับไบต์หน่วยความจำที่ระบุโดย HL เนื่องจากการเข้ารหัสคำMOVสั่งแบบปกติ (โดยใช้พื้นที่โอเปอเรเตอร์โค้ดหนึ่งในสี่ของพื้นที่ที่มีอยู่) จึงมีโค้ดที่ซ้ำซ้อนสำหรับการคัดลอกรีจิสเตอร์ไปยังตัวมันเอง ( MOV B,Bเช่น ) ซึ่งมีประโยชน์น้อย ยกเว้นสำหรับการหน่วงเวลา โอเปอเรเตอร์โค้ดแบบเป็นระบบสำหรับMOV M,Mจะถูกใช้เพื่อเข้ารหัสคำสั่งหยุด (halt HLT) แทน ซึ่งจะหยุดการทำงานจนกว่าจะมีการรีเซ็ตภายนอกหรือการขัดจังหวะเกิดขึ้น

การดำเนินการ 16 บิต

แม้ว่า 8080 โดยทั่วไปจะเป็นโปรเซสเซอร์ 8 บิต แต่ก็มีความสามารถในการดำเนินการ 16 บิตอย่างจำกัด สามารถโหลดค่า 16 บิตทันที (โดยใช้LXI) เพิ่มหรือลดค่า (โดย ใช้ INXและ ) หรือบวกค่า HL (โดยใช้ ) ลงในรีจิสเตอร์ 16 บิตทั้งสามคู่ (BC, DE หรือ HL ซึ่งในเอกสารของ Intel เรียกว่า B, D, H DCX) หรือ SP ได้ DADโดยการบวกค่า HL เข้ากับตัวเอง จะสามารถได้ผลลัพธ์เช่นเดียวกับการเลื่อนบิตซ้ายแบบเลขคณิต 16 บิตด้วยคำสั่งเดียว คำสั่ง 16 บิตเพียงคำสั่งเดียวที่มีผลต่อแฟล็กใดๆ คือDADซึ่งจะตั้งค่าแฟล็ก CY (carry) เพื่อให้สามารถคำนวณเลขคณิต 24 บิตหรือ 32 บิต (หรือใหญ่กว่า) ที่จำเป็นสำหรับการคำนวณเลขทศนิยม ได้ สามารถคัดลอก BC, DE, HL หรือ PSW ไปและกลับจากสแต็กได้โดยใช้PUSHและPOPสามารถจัดสรรเฟรมสแต็กได้โดยใช้DAD SPและSPHLสามารถดำเนินการกระโดดไปยังตัวชี้ที่คำนวณได้ด้วยPCHL. LHLDโหลด HL จากหน่วยความจำที่อยู่โดยตรงและSHLDจัดเก็บ HL ในทำนองเดียวกัน คำสั่ง XCHG[ 14 ]แลกเปลี่ยนค่าของคู่รีจิสเตอร์ HL และ DE XTHLแลกเปลี่ยนรายการสุดท้ายที่ถูกผลักบนสแต็กกับ HL การดำเนินการ 16 บิตเหล่านี้ไม่ได้รับการสนับสนุนบน Intel 8008 รุ่นก่อนหน้า

ชุดคำสั่ง
รหัสปฏิบัติการตัวถูกดำเนินการตัวช่วยจำนาฬิกาคำอธิบาย
76543210บี2บี3
00000000โนป4ไม่มีการดำเนินการใดๆ
00อาร์พี0001ดาตโลดาธีLXI rp,data10RP ← ข้อมูล
00อาร์พี0010STAX rp7(RP) ← A [เฉพาะ BC หรือ DE เท่านั้น]
00อาร์พี0011อินเอ็กซ์ อาร์พี5RP ← RP + 1
00ดีดีดี100INR ddd5/10ดีดีดี ← ดีดีดี + 1
00ดีดีดี101ดีซีอาร์ ดดด5/10ดีดีดี ← ดีดีดี - 1
00ดีดีดี110ข้อมูลMVI ddd,data7/10DDD ← ข้อมูล
00อาร์พี1001พ่อเล่นบทบาทสมมติ10HL ← HL + RP
00อาร์พี1010LDAX rp7A ← (RP) [เฉพาะ BC หรือ DE เท่านั้น]
00อาร์พี1011ดีซีเอ็กซ์ อาร์พี5RP ← RP - 1
00000111อาร์แอลซี4A 1-7 ← A 0-6 ; A 0 ← Cy ← A 7
00001111อาร์อาร์ซี4A 0-6 ← A 1-7 ; A 7 ← Cy ← A 0
00010111ราล4A 1-7 ← A 0-6 ; Cy ← A 7 ; A 0 ← Cy
00011111อาร์อาร์4A 0-6 ← A 1-7 ; Cy ← A 0 ; A 7 ← Cy
00100010แอดโลอัดฮีควรเพิ่ม16(เพิ่ม) ← HL
00100111ดีเอเอ4ถ้า A 0-3 > 9 หรือ AC = 1 แล้ว A ← A + 6;

ถ้า A 4-7 > 9 หรือ Cy = 1 แล้ว A ← A + 0x60

00101010แอดโลอัดฮีLHLD เพิ่ม16HL ← (เพิ่ม)
00101111ซีเอ็มเอ4A ← ¬A
00110010แอดโลอัดฮีSTA เพิ่ม13(เพิ่ม) ← A
00110111เอสทีซี4ไซ ← 1
00111010แอดโลอัดฮีLDA เพิ่ม13A ← (เพิ่ม)
00111111ซีเอ็มซี4ไซ ← ¬ไซ
01ดีดีดีเอสเอสเอสMOV ddd,sss5/7DDD ← SSS
01110110เอชแอลที7หยุด
10อลูเอสเอสเอสเพิ่ม ADC SUB SBB ANA XRA ORA CMP sss4/7A ← A [การดำเนินการ ALU] SSS
11ซีซี000Rcc (เงื่อนไข RET)5/11ถ้า cc เป็นจริง PC ← (SP), SP ← SP + 2
11อาร์พี0001ป๊อป อาร์พี10RP ← (SP), SP ← SP + 2
11ซีซี010แอดโลอัดฮีJcc add (JMP conditional)10ถ้า cc เป็นจริง PC ← เพิ่ม
11000011แอดโลอัดฮีJMP เพิ่ม10พีซี ← เพิ่ม
11ซีซี100แอดโลอัดฮีCcc add (CALL conditional)11/17ถ้า cc เป็นจริง, SP ← SP - 2, (SP) ← PC, PC ← add
11อาร์พี0101ดันrp11SP ← SP - 2, (SP) ← RP
11อลู110ข้อมูลข้อมูล ADI ACI SUI SBI ANI XRI ORI CPI7ข้อมูล A ← A [การดำเนินการ ALU]
11เอ็น111อาร์เอสทีเอ็น11SP ← SP - 2, (SP) ← PC, PC ← N x 8
11001001เรท10PC ← (SP), SP ← SP + 2
11001101แอดโลอัดฮีโทรเพิ่ม17SP ← SP - 2, (SP) ← PC, PC ← เพิ่ม
11010011ท่าเรือพอร์ต OUT10ท่าเรือ ← A
11011011ท่าเรือพอร์ต IN10A ← พอร์ต
11100011เอ็กซ์ทีแอลแอล18HL ↔ (SP)
11101001พีซีเอชแอล5พีซี ← เอชแอล
11101011XCHG4HL ↔ DE
11110011ดีไอ4ปิดใช้งานการขัดจังหวะ
11111001สปห์ล5SP ← HL
11111011อีไอ4เปิดใช้งานการขัดจังหวะ
76543210บี2บี3ตัวช่วยจำนาฬิกาคำอธิบาย
เอสเอสเอส ดีดีดี210ซีซีอลูอาร์พี
บี000นิวซีแลนด์เพิ่ม ADI (A ← A + arg)บีซี
ซี001ADC ACI (A ← A + arg + Cy)ดีอี
ดี010เอ็นซีSUB SUI (A ← A - arg)เอชแอล
อี011ซีSBB SBI (A ← A - arg - Cy)SP หรือ PSW
ชม100พีโอANA ANI (A ← A ∧ arg)
แอล101พีอีXRA XRI (A ← A ⊻ arg)
เอ็ม110พีORA ORI (A ← A ∨ arg)
เอ111เอ็นCMP CPI (A - arg)
เอสเอสเอส ดีดีดี210ซีซีอลู

แผนผังอินพุต/เอาต์พุต

พื้นที่พอร์ตอินพุตเอาต์พุต

8080 รองรับ พอร์ต อินพุต/เอาต์พุต (I/O) 256 พอร์ต [ 15 ]ซึ่งเข้าถึงได้ผ่านคำสั่ง I/O เฉพาะที่ใช้ที่อยู่พอร์ตเป็นตัวดำเนินการ[ 16 ]การสร้างสัญญาณควบคุมสำหรับการเลือกระหว่าง RAM และ I/O มักจะได้รับความช่วยเหลือจากชิปสนับสนุน (8212 หรือ 8228) รูปแบบการแมป I/O นี้ถือเป็นข้อดี เนื่องจากช่วยปลดปล่อยพื้นที่แอดเดรสที่จำกัดของโปรเซสเซอร์ สถาปัตยกรรม CPU จำนวนมากใช้I/O แบบแมปหน่วยความจำ (MMIO) แทน ซึ่งใช้พื้นที่แอดเดรสร่วมกันสำหรับทั้ง RAM และชิปอุปกรณ์ต่อพ่วง วิธีนี้ช่วยขจัดความจำเป็นในการใช้คำสั่ง I/O เฉพาะ แม้ว่าข้อเสียในการออกแบบดังกล่าวอาจอยู่ที่ต้องใช้ฮาร์ดแวร์พิเศษเพื่อแทรกสถานะรอ เนื่องจากอุปกรณ์ต่อพ่วงมักจะช้ากว่าหน่วยความจำ อย่างไรก็ตาม ในคอมพิวเตอร์ 8080 บางเครื่อง I/O จะถูกระบุแอดเดรสราวกับว่าเป็นเซลล์หน่วยความจำ "แมปหน่วยความจำ" ทำให้ไม่ได้ใช้คำสั่ง I/O การกำหนดแอดเดรส I/O บางครั้งอาจใช้ประโยชน์จากข้อเท็จจริงที่ว่าโปรเซสเซอร์ส่งแอดเดรสพอร์ต 8 บิตเดียวกันไปยังทั้งไบต์แอดเดรสต่ำและสูง (เช่นIN 05hจะกำหนดแอดเดรส 0505h บนบัสแอดเดรส 16 บิต) รูปแบบการกำหนดพอร์ต I/O ที่คล้ายกันนี้ถูกใช้ใน Zilog Z80 และ Intel 8085 ซึ่งสามารถใช้งานร่วมกับรุ่นก่อนหน้าได้ รวมถึงตระกูลไมโครโปรเซสเซอร์ x86 ที่มีความเกี่ยวข้องอย่างใกล้ชิด

พื้นที่จัดเก็บแยกต่างหาก

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

คำแสดงสถานะ

สำหรับระบบที่ซับซ้อนกว่านั้น ในช่วงเริ่มต้นของแต่ละรอบการทำงานของเครื่อง โปรเซสเซอร์จะวางคำสถานะขนาด 8 บิตลงบนบัสข้อมูล ไบต์นี้ประกอบด้วยแฟล็กที่กำหนดว่ามีการเข้าถึงหน่วยความจำหรือพอร์ต I/O หรือไม่ และจำเป็นต้องจัดการกับการขัดจังหวะหรือไม่

สถานะของระบบขัดจังหวะ (เปิดใช้งานหรือปิดใช้งาน) จะถูกส่งออกไปยังขาแยกต่างหาก สำหรับระบบที่เรียบง่ายซึ่งไม่ได้ใช้ระบบขัดจังหวะ อาจพบกรณีที่ใช้ขานี้เป็นพอร์ตเอาต์พุตแบบบิตเดียวเพิ่มเติม (เช่น คอมพิวเตอร์Radio-86RKที่ได้รับความนิยมในสหภาพโซเวียต )

การขัดจังหวะ

การขัดจังหวะฮาร์ดแวร์เริ่มต้นโดยการส่งสัญญาณไปยังขาคำขอขัดจังหวะ (INT) ในรอบการดึงรหัสคำสั่งครั้งถัดไป (M1 )การขัดจังหวะจะได้รับการยืนยันด้วยรหัสสถานะ INTA ในเวลานี้ คำสั่งจะถูก "แทรก" (คำศัพท์ของ Intel) โดยฮาร์ดแวร์ภายนอกบนบัสข้อมูล ซึ่งอาจเป็นRSTคำสั่งขนาดหนึ่งไบต์ หรือหากใช้Intel 8259 อาจเป็น คำCALLสั่งขนาดใหญ่ การขัดจังหวะสามารถเปิดและปิดใช้งานได้ด้วย คำสั่ง `interrupt` EIและDI`interrupt` ตามลำดับ การขัดจังหวะจะถูกปิดใช้งานหลังจาก INTA และต้องเปิดใช้งานอีกครั้งอย่างชัดเจนโดยรูทีนบริการการขัดจังหวะ โปรเซสเซอร์ 8080 ไม่รองรับการขัดจังหวะที่ไม่สามารถปิดกั้นได้

ตัวอย่างโค้ด

ต่อไปนี้เป็นซอร์สโค้ดแอสเซมเบลอร์memcpy 8080/8085 สำหรับซับรูทีนชื่อ ที่คัดลอกบล็อกข้อมูลขนาดที่กำหนดจากตำแหน่งหนึ่งไปยังอีกตำแหน่งหนึ่ง บล็อกข้อมูลจะถูกคัดลอกทีละไบต์ และตรรกะการเคลื่อนย้ายข้อมูลและการวนซ้ำใช้การดำเนินการ 16 บิต

 1000 1000 1000 1A 1001 77 1002 13 1003 23 1004 0B 1005 78 1006 บี1 1007 C2 00 10 100A C9 
; memcpy -- ; คัดลอกบล็อกหน่วยความจำจากตำแหน่งหนึ่งไปยังอีกตำแหน่งหนึ่ง; ; รีจิสเตอร์ขาเข้า; BC - จำนวนไบต์ที่จะคัดลอก; DE - ที่อยู่ของบล็อกข้อมูลต้นทาง; HL - ที่อยู่ของบล็อกข้อมูลปลายทาง; ; รีจิสเตอร์ขาออก; BC - ศูนย์org 1000h ;จุดเริ่มต้นที่ 1000h memcpy public loop: ldax d ;โหลด A จากที่อยู่ชี้โดย DE mov m , a ;เก็บ A ลงในที่อยู่ชี้โดย HL inx d ;เพิ่มค่า DE inx h ;เพิ่มค่า HL dcx b ;ลดค่า BC (ไม่มีผลต่อแฟล็ก) mov a , b ;คัดลอก B ไปยัง A (เพื่อเปรียบเทียบ BC กับศูนย์) ora c ;A = A | C (B และ C เป็นศูนย์ทั้งคู่หรือไม่?) jnz loop ;กระโดดไปยัง 'loop:' ถ้าแฟล็กศูนย์ไม่ได้ถูกตั้งค่า ret ;กลับ

การใช้พิน

แผนผังขา 8080

บัสแอดเดรสมีพินของตัวเอง 16 พิน และบัสดาต้ามี 8 พินที่สามารถใช้งานได้โดยไม่ต้องใช้มัลติเพล็กซ์ การใช้พินเพิ่มเติมอีกสองพิน (สัญญาณอ่านและเขียน) ทำให้สามารถประกอบอุปกรณ์ไมโครโปรเซสเซอร์อย่างง่ายได้อย่างง่ายดาย เฉพาะส่วนของพอร์ตอินพุต/เอาต์พุต (IO space) การขัดจังหวะ (interrupts) และ DMA เท่านั้นที่ต้องเพิ่มชิปเพื่อถอดรหัสสัญญาณพินของโปรเซสเซอร์ อย่างไรก็ตาม ความสามารถในการรับโหลดของพินมีจำกัด แม้แต่คอมพิวเตอร์อย่างง่ายก็มักต้องการตัวขยายสัญญาณบัส

โปรเซสเซอร์ต้องการแหล่งจ่ายไฟสามแหล่ง (−5, +5 และ +12 V) และสัญญาณซิงโครไนซ์ที่มีแอมพลิจูดสูงสองสัญญาณที่ไม่ทับซ้อนกัน อย่างไรก็ตาม อย่างน้อยรุ่น КР580ВМ80А ของโซเวียตในยุคหลังก็สามารถทำงานได้ด้วยแหล่งจ่ายไฟ +5 V เพียงแหล่งเดียว โดยต่อขา +12 V เข้ากับ +5 V และขา −5 V เข้ากับกราวด์

ตารางแสดงการเชื่อมต่อขาของชิป ซึ่งมาจากเอกสารประกอบที่แนบมาด้วย อธิบายการเชื่อมต่อขาต่างๆ ดังนี้:

หมายเลข PIN สัญญาณ พิมพ์ ความคิดเห็น
1เอ10 เอาต์พุตที่อยู่รถบัสหมายเลข 10
2ก.น. พื้น
3ดี4 สองทิศทาง บัสข้อมูลแบบสองทิศทาง โปรเซสเซอร์ยังส่ง "สถานะของโปรเซสเซอร์" ชั่วขณะระหว่าง SYNC^φ1 ซึ่งให้ข้อมูลเกี่ยวกับสิ่งที่โปรเซสเซอร์กำลังทำอยู่ในขณะนั้น:
  • D0 (INTA) คือคำสั่งขัดจังหวะการอ่าน เมื่อได้รับสัญญาณขัดจังหวะ โปรเซสเซอร์จะอ่านและประมวลผลคำสั่งใดๆ ก็ได้เพียงคำสั่งเดียวโดยที่แฟล็กนี้ถูกยกขึ้น โดยปกติแล้วชิปสนับสนุนจะให้คำสั่งเรียกใช้ซับรูทีน (CALL หรือ RST) เพื่อถ่ายโอนการควบคุมไปยังโค้ดจัดการขัดจังหวะ
  • D1 (WO-) ต่ำจริง เขียนลงหน่วยความจำหรือส่งออกไปยังพอร์ต
  • D2 (STACK) เข้าถึงสแต็ก (อาจมีการวางแผนพื้นที่หน่วยความจำสแต็กแยกต่างหากไว้ตั้งแต่แรก)
  • D3 (HLTA) ไม่ได้ทำอะไรเลย เนื่องจากถูกระงับโดยคำสั่งHLT
  • D4 (OUT) เขียนข้อมูลไปยังพอร์ตเอาต์พุต
  • D5 (M 1 ) อ่านไบต์แรกของคำสั่ง
  • D6 (IN) อ่านข้อมูลจากพอร์ตอินพุต
  • D7 (MEMR) อ่านข้อมูลจากหน่วยความจำ
4ดี5
5ดี6
6ดี7
7ดี3
8ดี2
9ดี1
10ดี0
11-5 โวลต์ แหล่งจ่ายไฟ −5 V ต้องเป็นแหล่งจ่ายไฟแรกที่เชื่อมต่อและแหล่งจ่ายไฟสุดท้ายที่ถอดออก มิเช่นนั้นโปรเซสเซอร์จะเสียหาย
12รีเซ็ต ป้อนข้อมูลรีเซ็ต สัญญาณแอคทีฟต่ำนี้จะบังคับให้ดำเนินการคำสั่งที่อยู่ในตำแหน่งแอดเดรส 0000 เนื้อหาของรีจิสเตอร์อื่นๆ ในโปรเซสเซอร์จะไม่ถูกแก้ไข
13ถือ ป้อนข้อมูลคำขอเข้าถึงหน่วยความจำโดยตรง โปรเซสเซอร์ได้รับคำขอให้สลับบัสข้อมูลและบัสที่อยู่ไปยังสถานะความต้านทานสูง ("ตัดการเชื่อมต่อ")
14อินท์ ป้อนข้อมูลคำขอขัดจังหวะ
15φ2 ป้อนข้อมูลเฟสที่สองของสัญญาณเครื่องกำเนิดนาฬิกา
16อินเต้ เอาต์พุตโปรเซสเซอร์มีคำสั่งสองคำสั่งสำหรับตั้งค่าระดับ 0 หรือ 1 บนขาพินนี้ โดยปกติแล้วขาพินนี้ควรใช้สำหรับการควบคุมการขัดจังหวะ อย่างไรก็ตาม ในคอมพิวเตอร์แบบง่ายๆ บางครั้งก็ใช้เป็นพอร์ตเอาต์พุตบิตเดียวสำหรับวัตถุประสงค์ต่างๆ
17ดีบีไอเอ็น เอาต์พุตอ่าน (โปรเซสเซอร์อ่านข้อมูลจากหน่วยความจำหรือพอร์ตอินพุต)
18ดับเบิลยูอาร์- เอาต์พุตการเขียน (โปรเซสเซอร์เขียนข้อมูลไปยังหน่วยความจำหรือพอร์ตเอาต์พุต) นี่คือเอาต์พุตแบบแอคทีฟต่ำ
19ซิงค์ เอาต์พุตระดับแอคทีฟบ่งชี้ว่าโปรเซสเซอร์ได้ส่ง "คำสถานะ" ไปยังบัสข้อมูลแล้ว บิตต่างๆ ของคำสถานะนี้ให้ข้อมูลเพิ่มเติมเพื่อรองรับพื้นที่แอดเดรสและหน่วยความจำที่แยกจากกัน การขัดจังหวะ และการเข้าถึงหน่วยความจำโดยตรง สัญญาณนี้จำเป็นต้องผ่านตรรกะเพิ่มเติมก่อนที่จะสามารถใช้เขียนคำสถานะของโปรเซสเซอร์จากบัสข้อมูลไปยังรีจิสเตอร์ภายนอกบางตัว เช่น8238 ( เก็บถาวรเมื่อวันที่ 18 กันยายน 2023 ที่Wayback Machine - ตัวควบคุมระบบและไดรเวอร์บัส)
20+5 โวลต์แหล่งจ่ายไฟ +5 โวลต์
21HLDA เอาต์พุตการยืนยันการเข้าถึงหน่วยความจำโดยตรง โปรเซสเซอร์จะเปลี่ยนขาข้อมูลและขาแอดเดรสไปเป็นสถานะความต้านทานสูง ทำให้สามารถอนุญาตให้อุปกรณ์อื่นจัดการบัสได้
22φ1 ป้อนข้อมูลเฟสแรกของสัญญาณตัวสร้างนาฬิกา
23พร้อม ป้อนข้อมูลรอสักครู่ สัญญาณนี้ใช้ระงับการทำงานของโปรเซสเซอร์ชั่วคราว นอกจากนี้ยังใช้เพื่อรองรับโหมดการดีบักแบบทีละขั้นตอนโดยใช้ฮาร์ดแวร์อีกด้วย
24รอ เอาต์พุตรอ (แสดงว่าโปรเซสเซอร์อยู่ในสถานะรอ)
25เอ0 เอาต์พุต รถบัสที่อยู่
26เอ1
27เอ2
2812 โวลต์ แหล่งจ่ายไฟ +12 โวลต์ นี่ต้องเป็น แหล่งจ่ายไฟที่เชื่อมต่อเป็น ตัวสุดท้ายและถอดออกเป็นตัวแรก
29เอ3 เอาต์พุต บัสแอดเดรสสามารถเปลี่ยนเป็นสถานะความต้านทานสูงได้ตามต้องการ
30เอ4
31เอ5
32เอ6
33เอ7
34เอ8
35เอ9
36เอ15
37เอ12
38เอ13
39เอ14
40เอ11

ชิปสนับสนุน

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

การนำไปใช้จริง

วงจรรวม 8080 มี การออกแบบ NMOSซึ่งใช้ทรานซิสเตอร์โหมดเสริม ที่ไม่อิ่มตัวเป็นโหลด [ 18 ] [ 19 ]ซึ่งต้องการระดับแรงดันไฟฟ้าเสริม (+12  Vและ −5 V) นอกเหนือจาก+5 V ที่เข้า กันได้กับ TTL มาตรฐาน

ผลิตขึ้นโดยใช้ กระบวนการ เกตซิลิคอนโดยใช้ขนาดคุณสมบัติขั้นต่ำ 6 μm ใช้โลหะชั้นเดียวในการเชื่อมต่อทรานซิสเตอร์ประมาณ 4,500 ตัว[ 20 ]ในการออกแบบ แต่ ชั้นโพ ลีซิลิคอน ที่ มีความต้านทาน สูงกว่า ซึ่งต้องใช้แรงดันไฟฟ้าสูงกว่าสำหรับการเชื่อมต่อบางส่วนนั้น สร้างขึ้นโดยใช้เกตทรานซิสเตอร์ ขนาด ของไดมีขนาดประมาณ 20 มม. ²

ผลกระทบเชิงพาณิชย์

ใบสมัครและผู้สืบทอด

โปรเซสเซอร์ 8080 ถูกนำไปใช้ในไมโครคอมพิวเตอร์รุ่นแรกๆ หลายรุ่น เช่น คอมพิวเตอร์ MITS Altair 8800 , คอมพิวเตอร์เทอร์มินัลProcessor Technology SOL-20 และไมโครคอมพิวเตอร์ IMSAI 8080ซึ่งเป็นพื้นฐานสำหรับเครื่องที่ใช้ ระบบปฏิบัติการ CP/M (โปรเซสเซอร์ Zilog Z80ในภายหลัง ซึ่งเข้ากันได้เกือบสมบูรณ์และมีความสามารถมากกว่าจะใช้ประโยชน์จากสิ่งนี้ โดย Z80 และ CP/M กลายเป็นชุด CPU และระบบปฏิบัติการที่โดดเด่นในช่วงปีค.ศ. 1976ถึง 1983 เช่นเดียวกับx86และMS-DOSในอีกสิบปีต่อมา)

ในปี พ.ศ. 2522 แม้หลังจากการเปิดตัวโปรเซสเซอร์ Z80 และ 8085 แล้ว ผู้ผลิต 8080 จำนวน 5 รายยังคงขายได้ประมาณ 500,000 หน่วยต่อเดือนในราคาประมาณ 3 ถึง 4 ดอลลาร์ต่อหน่วย[ 21 ]

ไมโครคอมพิวเตอร์แบบแผงวงจรเดี่ยวรุ่นแรกๆเช่นMYCRO-1และdyna-micro /MMD-1 (ดู: คอมพิวเตอร์แบบแผงวงจรเดี่ยว ) นั้นใช้ชิปประมวลผล Intel 8080 หนึ่งในตัวอย่างการใช้งาน 8080 ในยุคแรกๆ คือการใช้งานโดย Cubic-Western Data แห่งเมืองซานดิเอโก รัฐแคลิฟอร์เนีย ในช่วงปลายทศวรรษ 1970 ในระบบเก็บค่าโดยสารอัตโนมัติที่ออกแบบมาเป็นพิเศษสำหรับระบบขนส่งมวลชนทั่วโลก การใช้งานในอุตสาหกรรมยุคแรกๆ ของ 8080 คือการใช้เป็น "สมอง" ของผลิตภัณฑ์ DatagraphiX Auto-COM (Computer Output Microfiche) ซึ่งรับข้อมูลจำนวนมากจากผู้ใช้จากเทปแบบรีลและแปลงเป็นภาพไมโครฟิช เครื่องมือ Auto-COM ยังมีระบบย่อยการตัด การประมวลผล การล้าง และการอบแห้งฟิล์มแบบอัตโนมัติครบวงจรอีกด้วย

เกมวิดีโออาร์เคดยุคแรกๆ หลายเกมถูกสร้างขึ้นโดยใช้ไมโครโปรเซสเซอร์ 8080 เกมวิดีโออาร์เคดเชิงพาณิชย์เกมแรกที่ใช้ไมโครโปรเซสเซอร์คือGun Fightซึ่ง เป็นเกมที่ Midway Gamesสร้างขึ้นใหม่โดยใช้ 8080 โดยดัดแปลงมาจากเกม Western GunของTaito ที่ใช้ตรรกะแบบแยกส่วน ซึ่งวางจำหน่ายในเดือนพฤศจิกายน พ.ศ. 2518 [ 22 ] [ 23 ] [ 24 ] [ 25 ] (เครื่องเล่นพินบอลที่ใช้โปรเซสเซอร์Motorola 6800 ชื่อ The Spirit of '76ได้วางจำหน่ายไปแล้วในเดือนก่อนหน้า[ 26 ] [ 27 ] ) ต่อมา 8080 ก็ถูกนำไปใช้ในเกมวิดีโออาร์เคดของ Midway ในภายหลัง[ 28 ] และในเกม Space Invadersของ Taito ในปี พ.ศ. 2521 ซึ่งเป็นหนึ่งในเกมวิดีโออาร์เคดที่ประสบความสำเร็จและเป็นที่รู้จักมากที่สุด[ 29 ] [ 30 ]

Zilogได้เปิดตัวZ80ซึ่งมี ชุดคำสั่ง ภาษาเครื่อง ที่เข้ากันได้ และในตอนแรกใช้ภาษาแอสเซมบลีเดียวกันกับ 8080 แต่ด้วยเหตุผลทางกฎหมาย Zilog จึงพัฒนาภาษาแอสเซมบลีทางเลือกที่มีไวยากรณ์แตกต่างกัน (แต่โค้ดเข้ากันได้) สำหรับ Z80 ที่ Intel นั้น 8080 ได้ถูกพัฒนาต่อยอดด้วย 8085ซึ่งเข้ากันได้และมีประสิทธิภาพทางไฟฟ้าที่ดีกว่า

ต่อมา อินเทลได้ออกหน่วยประมวลผล 8086แบบ 16 บิตที่เข้ากันได้กับภาษาแอสเซมบลี (แต่ไม่เข้ากันได้กับภาษาไบนารี) และจากนั้นก็ออกหน่วยประมวลผล 8088 แบบ 8/16 บิตซึ่งไอบีเอ็ม เลือกใช้ สำหรับพีซี รุ่นใหม่ ที่จะเปิดตัวในปี 1981 ต่อมาเอ็นอีซีได้ผลิตNEC V20 (หน่วยประมวลผล 8088 ที่ใช้ชุดคำสั่งเดียวกับIntel 80186 ) ซึ่งรองรับโหมดจำลองการทำงานของ 8080 ด้วยเช่นกัน และโหมดนี้ก็ได้รับการสนับสนุนโดย NEC V30 (หน่วยประมวลผล 8086 ที่ได้รับการปรับปรุงในลักษณะเดียวกัน) ดังนั้น หน่วยประมวลผล 8080 จึงสร้างผลกระทบอย่างยั่งยืนต่อประวัติศาสตร์ของคอมพิวเตอร์ ผ่านทางสถาปัตยกรรมชุดคำสั่ง (ISA) ของมัน

โปรเซสเซอร์จำนวนหนึ่งที่เข้ากันได้กับ Intel 8080A ได้รับการผลิตในกลุ่มประเทศตะวันออกได้แก่KR580VM80A (เดิมทีมีเครื่องหมายเป็น КР580ИК80) ในสหภาพโซเวียต , MCY7880 [ 31 ]ที่ผลิตโดย Unitra CEMI ในโปแลนด์ , MHB8080A [ 32 ]ที่ผลิตโดยTESLAในเชโกสโลวาเกีย , 8080APC [ 32 ]ที่ผลิตโดยTungsram / MEV ในฮังการีและ MMN8080 [ 32 ] ที่ ผลิต โดยMicroelectronica Bucharestในโรมาเนีย

ณ ปี 2017 ชิป 8080 ยังคงผลิตอยู่ที่ Lansdale Semiconductors [ 33 ]

การเปลี่ยนแปลงในอุตสาหกรรม

ชิป 8080 ยังเปลี่ยนวิธีการสร้างคอมพิวเตอร์อีกด้วย เมื่อชิป 8080 เปิดตัว ระบบคอมพิวเตอร์มักถูกสร้างขึ้นโดยผู้ผลิตคอมพิวเตอร์ เช่นDigital Equipment Corporation , Hewlett-PackardหรือIBMผู้ผลิตจะผลิตคอมพิวเตอร์ทั้งเครื่อง รวมถึงโปรเซสเซอร์ เทอร์มินัล และซอฟต์แวร์ระบบ เช่น คอมไพเลอร์และระบบปฏิบัติการ ชิป 8080 ถูกออกแบบมาสำหรับการใช้งานเกือบทุกอย่างยกเว้นระบบคอมพิวเตอร์ที่สมบูรณ์ Hewlett-Packard พัฒนาเทอร์มินัลอัจฉริยะซีรีส์HP 2640 โดยใช้ชิป 8080 เป็นหลัก HP 2647เป็นเทอร์มินัลที่ใช้ภาษาโปรแกรมBASICบนชิป 8080 ผลิตภัณฑ์แรกของMicrosoft อย่าง Microsoft BASICนั้น เดิมทีถูกเขียนโปรแกรมสำหรับชิป 8080

8080 และ8085ก่อให้เกิด 8086 ซึ่งได้รับการออกแบบให้เป็นส่วนขยายของ 8080 ที่เข้ากันได้กับซอร์สโค้ดแม้ว่าจะไม่เข้ากันได้กับไบนารี ก็ตาม [ 34 ]การออกแบบนี้ต่อมาได้ก่อให้เกิด ตระกูลชิป x86ซึ่งยังคงเป็นสายผลิตภัณฑ์หลักของโปรเซสเซอร์ของ Intel คำสั่งและแนวคิดหลักของเครื่อง 8080 จำนวนมากยังคงมีอยู่ในแพลตฟอร์ม x86 ที่แพร่หลาย ตัวอย่างเช่น รีจิสเตอร์ชื่อA , B , CและDและแฟล็กจำนวนมากที่ใช้ควบคุมการกระโดดแบบมีเงื่อนไข โค้ดแอสเซมบลีของ 8080 ยังคงสามารถแปลเป็นคำสั่ง x86 ได้โดยตรง เนื่องจากองค์ประกอบหลักทั้งหมดของมันยังคงมีอยู่

สิทธิบัตรของสหรัฐอเมริกา

สิทธิบัตรสหรัฐอเมริกาหมายเลข 4010449ของFederico Faggin , Masatoshi Shimaและ Stanley Mazor เรื่อง "คอมพิวเตอร์ MOS ที่ใช้ชิปแยกหลายตัว" ออกเมื่อวันที่ 1 มีนาคม 1977 สิทธิบัตรนี้มีข้อเรียกร้องสามข้อ ข้อแรกสองข้อเกี่ยวข้องกับคำสถานะที่ส่งผ่านไปยังบัสข้อมูล ข้อที่สามเป็นข้อเรียกร้องสำหรับRST 7คำสั่ง ซึ่งสามารถเรียกใช้ได้โดยการดึงบัสข้อมูลให้มีระดับสูงสิทธิบัตร 8008RST 7ต้องใช้วงจรการรบกวนคำสั่งที่ซับซ้อนกว่า

อิทธิพลทางวัฒนธรรม

  • ดาวเคราะห์น้อยดวงหนึ่งได้รับการตั้งชื่อว่า8080 Intelเพื่อเป็นการยกย่องบทบาทของชิปดังกล่าวในการปฏิวัติพีซี ซึ่งมีผลกระทบอย่างมากต่อวงการดาราศาสตร์[ 35 ]
  • หมายเลขโทรศัพท์ที่ Microsoft ประกาศใช้คือ 425-882-8080 เนื่องจากงานวิจัยในช่วงแรกส่วนใหญ่เกี่ยวข้องกับชิปตัวนี้
  • หมายเลขโทรศัพท์หลักหลายหมายเลขของ Intel ก็มีรูปแบบคล้ายกันคือ xxx-xxx-8080

ดูเพิ่มเติม

อ่านเพิ่มเติม

  • เลเวนธัล, แลนซ์ (1978). การเขียนโปรแกรมภาษาแอสเซมบลี 8080A/8085 (ฉบับพิมพ์ครั้งที่ 1). ออสบอร์น/แมคกรอว์-ฮิลล์ .495 หน้า
  • มิลเลอร์, อลัน (1981). ภาษาแอสเซมบลี 8080/Z80 – เทคนิคสำหรับการเขียนโปรแกรมที่ดีขึ้น (ฉบับพิมพ์ครั้งที่ 1). จอห์น ไวลีย์ แอนด์ ซันส์ . ISBN 978-0471081241.332 หน้า
  • Zaks, Rodnay; Lesea, Austin (1979). เทคนิคการเชื่อมต่อไมโครโปรเซสเซอร์ (ฉบับที่ 3). Sybex . ISBN 978-0-89588-029-1.466 หน้า
  • สแปรคเลน, แคธ (1979) การเขียนโปรแกรมภาษาแอสเซมบลี Z80 และ 8080 (ฉบับที่ 1) เฮย์เดน . ไอเอสบีเอ็น 978-0810451674.180 หน้า
  • รูปภาพและคำอธิบายของซีพียู Intel และผู้ผลิตรายอื่น ๆ รุ่น 8080 ที่ cpu-collection.de ถูกเก็บถาวรเมื่อวันที่ 11 ตุลาคม 2549 ที่Wayback Machine
  • ภาพสแกนจากเอกสารข้อมูลจำเพาะของ Intel 8080 ที่ DataSheetArchive.com
  • การออกแบบไมโครคอมพิวเตอร์ ฉบับพิมพ์ครั้งที่สอง ปี 1976 เก็บถาวรเมื่อวันที่ 11 มีนาคม 2012 ที่Wayback Machine
  • โปรแกรมจำลอง 8080 ที่เขียนด้วย JavaScript เก็บถาวรเมื่อวันที่ 17 มีนาคม 2010 ที่Wayback Machine
  • โปรแกรมจำลอง Intel 8080/KR580VM80A ใน JavaScript เก็บถาวรเมื่อวันที่ 11 มิถุนายน 2018 ที่Wayback Machine
  • คู่มือผู้ใช้ระบบไมโครคอมพิวเตอร์ Intel 8080 (กันยายน 1975, 262 หน้า) เก็บถาวรเมื่อวันที่ 10 มีนาคม 2018 ที่Wayback Machine
  • คู่มือผู้ใช้ระบบไมโครคอมพิวเตอร์ Intel 8080 (กันยายน 1975, 234 หน้า) เก็บถาวรเมื่อวันที่ 26 กุมภาพันธ์ 2013 ที่Wayback Machine
  • เอกสารอ้างอิงคำสั่ง Intel 8080/8085 ที่เก็บถาวรเมื่อวันที่ 10 สิงหาคม 2021 ในWayback Machine
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Intel_8080&oldid=1357308213 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ อินเทล 8080

Intel 8080 เป็น ไมโครโปรเซสเซอร์ 8 บิตตัว ที่สองของ Intel เปิดตัวในเดือนเมษายน พ.ศ.

ประวัติศาสตร์

ลูกค้าไมโครโปรเซสเซอร์ไม่เต็มใจที่จะนำ 8008 มาใช้เนื่องจากข้อจำกัดต่างๆ เช่น โหมดการกำหนดแอดเดรสแบบเดี่ยว ความเร็วสัญญาณนาฬิกาต่ำ จำนวนพินต่ำ และสแต็กบนชิปขนาดเล็ก ซึ่งจำกัดขนาดและความซับซ้อนของซอฟต์แวร์ มีการออกแบบที่เสนอสำหรับ 8080 หลายแบบ...

แบบจำลองการเขียนโปรแกรม

Intel 8080 เป็นรุ่นต่อจาก 8008 มันใช้ ชุดคำสั่ง พื้นฐาน และ โมเดล รีจิสเตอร์ แบบเดียวกันกับ 8008 แม้ว่าจะไม่ สามารถใช้งานร่วมกันได้ทั้งในระดับซอร์สโค้ด และ ไบนารีโค้ด ก็ตาม ทุกคำสั่งใน 8008 มีคำสั่งที่เทียบเท่ากันใน 8080 นอกจากนี้ 8080 ยังเพิ่มการทำงานแบบ 16...

แผนผังอินพุต/เอาต์พุต

8080 รองรับ พอร์ต อินพุต/เอาต์พุต (I/O) 256 พอร์ต [ 15 ] ซึ่งเข้าถึงได้ผ่านคำสั่ง I/O เฉพาะที่ใช้ที่อยู่พอร์ตเป็นตัวดำเนินการ [ 16 ] การสร้างสัญญาณควบคุมสำหรับการเลือกระหว่าง RAM และ I/O มักจะได้รับความช่วยเหลือจากชิปสนับสนุน (8212 หรือ 8228) รูปแบบการแมป I/O...