8085 CPU มีการลงทะเบียนเพิ่มเติมภายใน ALU หรือไม่


11

จากสถาปัตยกรรมซีพียู 8085 เมื่อ ALU ทำการคำนวณเสร็จผลลัพธ์จะถูกโอเวอร์คล็อกกลับไปที่ตัวสะสม A บนขอบนาฬิกาถัดไป แต่แอคคิวมูเลเตอร์ A นั้นเชื่อมต่อโดยตรงกับอินพุต ALU จะเกิดอะไรขึ้นถ้าขอบนาฬิกาไม่เพิ่มขึ้นอย่างรวดเร็วพอที่จะทำให้ A ถูกเพิ่มเข้าไปสองครั้งหรือมากกว่านั้นมันจะยากมากที่จะตรวจจับข้อผิดพลาด เปราะบาง "สำหรับฉัน

เว้นแต่มีการลงทะเบียนพิเศษภายใน ALU เพื่อบันทึกผลลัพธ์ ALU ชั่วคราวหรือไม่

https://en.wikipedia.org/wiki/Intel_8085#/media/File:Intel_8085_arch.svg

https://en.wikipedia.org/wiki/Intel_8085


2
นี่ดูเหมือนคำถามสำหรับ @ KenShirriff …
duskwuff -inactive-

1
ทำไมคุณคิดว่าการตอกบัตร ALU ส่งผลให้การลงทะเบียนระดับกลางจะไม่มีปัญหาเช่นเดียวกับการตอกบัตรลงในตัวสะสม ไม่ว่าจะด้วยวิธีใดคุณควรรู้ว่า ALU ของคุณให้ผลลัพธ์ที่ถูกต้องด้วยการตั้งค่าที่เพียงพอและถือเวลาสัมพันธ์กับนาฬิกา
โฟตอน

คำตอบ:


17

ตามที่ @duskwuff สงสัยว่าฉันได้ดูเรื่องนี้ เพื่อตอบคำถาม 8085 มีการลงทะเบียนพิเศษสองรายการใน ALU

8085 มีการลงทะเบียนแบบ "ซ่อน" หลายตัว: คู่ WZ แบบ 16 บิตและตัวช่วย ALU แบบ 8 บิตสองรายการ: ACT และ TMP WZ เป็นส่วนหนึ่งของไฟล์ register ในขณะที่ ACT, A (accumulator) และ TMP อยู่ในวงจร ALU เอง

นี่คือแผนภาพแสดงการทำงานของ ALU:

โครงสร้างการลงทะเบียนของ ALU ของ 8085

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

ผลลัพธ์ที่น่าสนใจอย่างหนึ่งของการตั้งค่า ALU ของ 8085 คือสามารถโหลดค่าลงในตัวสะสมได้หลังจากผ่าน ALU เท่านั้น

รายละเอียดเกี่ยวกับการลงทะเบียนชุด 8085 อยู่ที่นี่และรายละเอียดของ ALU อยู่ที่นี่


1
อย่างใดฉันรู้ว่าคุณจะมีสิ่งที่จะพูดเกี่ยวกับเรื่องนี้ : 3
duskwuff -inactive-

2
ยอดเยี่ยม ~ (ทั้งบล็อกของ Ken Shirriff และ 8085)!
starx

5

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

ในกรณีของคุณ ALU มีความล่าช้าในการแพร่กระจายและเพื่อเพิ่ม A สองครั้งควรมีเวลาจนกว่าจะมีการเพิ่ม A ใหม่ไปยัง A ก่อนหน้าภายใน Adder และผลลัพธ์จะปรากฏขึ้นที่เอาต์พุต ส่วนใหญ่อาจเป็นการจำลองและคำนวณว่าสิ่งดังกล่าวจะไม่เกิดขึ้นภายในช่วงความถี่สัญญาณนาฬิกาที่กำหนดไว้สำหรับอุปกรณ์ นั่นเป็นสาเหตุที่แผ่นข้อมูลมีการจัดอันดับนาฬิกาน้อยที่สุดและสูงสุดอย่างชัดเจน สำหรับ 8085A-2 มันบอกว่า:

  • รอบระยะเวลา CLK ที่น้อยที่สุด: 320 ns
  • รอบระยะเวลา CLK สูงสุด: 2000 ns

5

ตัวสะสมคือการลงทะเบียนเอาต์พุตของ ALU

8085 มีนาฬิกาสองเฟส ในกรณีที่คำสั่งนาฬิกาเดียวเช่น NOP ใช้เวลา 2 รอบ เช่นเดียวกับ 8088 ที่ใช้ในพีซี IBM ดั้งเดิมเครื่อง 8088 นั้นมีนาฬิกาแบบ 4 เฟสและทำการประมวลผลคำสั่งในอัตรา 1Mhz

ด้วยนาฬิกาสองเฟสคุณจะมีวงจรออสซิลเลเตอร์สองรอบสำหรับแต่ละรอบคำสั่ง

ภายในสำหรับการกำหนดเวลาสามารถใช้ขอบของนาฬิกาใดก็ได้ นาฬิกากลับด้านกลับด้านเพื่อให้มีเวลาจริงสี่นาฬิกา

จากนั้นคุณมีสลักโปร่งใสที่สลักบนขอบตกและ D-Flip Flops ที่สลักบนขอบนาฬิกาที่เพิ่มขึ้น

Latch แบบโปร่งใสช่วยให้ข้อมูลอินพุตแพร่กระจายไปยังเอาต์พุตเริ่มต้นที่ขอบที่เพิ่มขึ้นของนาฬิกาและค่าจะถูกสลักบนขอบตกของนาฬิกา

8085 มีตัวเลือกมากมายเมื่อหลีกเลี่ยงสภาพการแข่งขันที่แพร่กระจาย

ป้อนคำอธิบายรูปภาพที่นี่


"8088 มีนาฬิกาสี่เฟส 4Mhz และดำเนินการคำสั่งในอัตรา 1Mhz" - 8088 มีขาอินพุตนาฬิกาเดียว (แม้ว่ามันจะคาดหวังว่านาฬิกาที่ไม่สมมาตรกับสถานะสูงยาวนานประมาณสองเท่า สถานะต่ำซึ่งบ่งชี้ว่าภายในเป็นการทำสิ่งที่แตกต่างกันอย่างชัดเจนในรัฐเหล่านี้ซึ่งแตกต่างจากโปรเซสเซอร์ที่ทันสมัยที่สุดที่มักจะทุกอย่างนาฬิกาขอบนาฬิกาเดียวกัน) ดังนั้นนาฬิกา 4 เฟสนี้สร้างขึ้นภายในอย่างใด? มีคำอธิบายบางอย่างเกี่ยวกับวิธีการทำงานนี้หรือไม่?
จูลส์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.