ทำไมใน 8085 ไมโครโปรเซสเซอร์ความถี่สัญญาณนาฬิกาจึงถูกหารด้วยสอง?


16

ทำไมความถี่สัญญาณนาฬิกาที่ผลิตได้คือ 6.144 MHz แต่ภายใน (โปรเซสเซอร์ 8085) ใช้เพียง 3.072 MHz นอกจากนี้สิ่งที่นำไปสู่ค่าเฉพาะ 6.144 ในนาฬิกา

ฉันพบคำตอบที่ yahoo .... http://answers.yahoo.com/question/index?qid=20080810090119AAurr2i

แต่ฉันต้องยอมรับว่าฉันยังไม่ได้รับมันดี พวกคุณคนไหนที่จะสามารถทิ้งเรื่องนี้ได้ไหม


2
คำตอบ yahoo นั้นแย่มาก ๆ โปรดยกโทษให้ฉันถ้าคุณรู้จักนักเขียน
Kortuk

อืมเพิ่งเอาไมโครโปรเซสเซอร์มาปิดเทอมนี้ดังนั้นฉันไม่รู้เลยว่ามันผิด ฉันเดาว่าฉันได้รับคำตอบที่นี่ ... ขอบคุณ
loxxy

1
MC6800 นั้นมีความต้องการมากกว่าเดิม มันมีอินพุตสัญญาณนาฬิกาสองค่า (phi1, phi2, ca. 180 Deg phase shifted) ที่จำเป็นต้องมีการซ้อนทับกันไม่ได้เช่นหนึ่งเฟสจะต้องมีค่าต่ำสำหรับบาง ns ก่อนที่จะได้รับอนุญาตให้เพิ่มขึ้น มีไอซีออสซิลเลเตอร์พิเศษ (MC6810?) เพื่อสร้างสัญญาณนาฬิกาเหล่านั้น
นมเปรี้ยว

1
@ เวลาที่น่ารังเกียจของเคิร์ตและมันต้องแกว่งใกล้กับทั้งทางรถไฟอุปทาน (หายากในสมัยนั้น) pdf.datsheetarchive.com/indexerfiles/Scans-000/… MC6871 MC6810 เป็นชิปแรมแบบคงที่ 128 x 8 (!)
Spehro Pefhany

คำตอบ:


15

เหตุผลหนึ่งที่จะแบ่งนาฬิกาสองอันคือการได้รับคลื่นสี่เหลี่ยมวัฏจักรหน้าที่ 50% อาจเป็นได้ว่า 8085 ใช้ขอบนาฬิกาทั้งสองภายในและจะไม่ทำงานหากครึ่งหนึ่งของรอบเกิดขึ้นจะสั้นกว่าอีกมาก

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

สำหรับ 6.144MHz คุณจะพบว่ามันสามารถหารด้วยจำนวนเต็มเพื่อรับค่าอัตรา baud ทั่วไปอย่างน้อยสูงสุด 38400


ติดตาม ...

ดูแผ่นข้อมูล Intel สำหรับ 8085 มีข้อความที่น่าสนใจสามข้อ

  1. 8085 ได้รวมเอาคุณสมบัติทั้งหมดไว้ที่เครื่องกำเนิดสัญญาณนาฬิกา 8224 และตัวควบคุมระบบ 8228 ที่มีให้สำหรับ 8080A

  2. X1 และ X2: เชื่อมต่อกับเครือข่าย crystal, LC หรือ RC เพื่อขับเคลื่อนตัวกำเนิดสัญญาณนาฬิกาภายใน ความถี่อินพุทจะถูกหารด้วย 2 เพื่อให้ความถี่การทำงานภายในของโปรเซสเซอร์

  3. CLK: เอาต์พุตนาฬิกาสำหรับใช้เป็นนาฬิการะบบ ระยะเวลาของ CLK เป็นสองเท่าของระยะเวลาการป้อน X1, X2

ดังนั้นการคาดเดาเกี่ยวกับการใช้ขอบแปลก ๆ ของนาฬิกาเพื่อเคลื่อนย้ายสิ่งต่างๆรอบ ๆ ภายในมันจะเห็นได้ชัดว่าเมื่อพวกเขาออกแบบ 8085 นั้น Intel ได้เปลี่ยนความต้องการตัวควบคุมสัญญาณนาฬิกาเป็นพิเศษโดยการรวมคุณสมบัตินั้นไว้ในชิป แบ่งระยะฐานเวลา X1-X2 ครึ่งก่อนที่จะส่งออกเป็น CLK ทำให้มั่นใจได้ว่าระบบได้รับรอบการทำงานที่ดีแม้ในกรณีที่ไม่มีอะไรอื่น


1
บ่อยครั้งที่สเตจที่แตกต่างในไมโครคอนโทรลเลอร์จำเป็นต้องอยู่นอกเฟสเนื่องจากลอจิกล่าช้า การใช้ออสซิลเลเตอร์ความเร็วสูงและการแบ่งและการใช้สองขอบที่แตกต่างกันสำหรับชุดตรรกะที่แตกต่างกันสามารถลดค่าใช้จ่ายของอุปกรณ์ลงได้อย่างมาก JustJeff เป็นจุดที่ใช้ oscillator ซึ่งเป็นอัตรานาฬิกามาตรฐานหลายเท่า มันสามารถทำการถ่ายโอนความเร็วสูงได้ง่ายมาก
Kortuk

2
คุณแน่ใจเกี่ยวกับคำสั่งรอบการทำงานหรือไม่? ฉันรู้สึกว่าวงจรการเรียนการสอนอาจต้องใช้รอบสัญญาณนาฬิกาหลายรอบ (เช่นหนึ่งรอบการเรียนการสอนที่ประกอบด้วยรอบการดึงข้อมูลและรอบการดำเนินการ) ฉันค่อนข้างมั่นใจว่าปิคนิคสมัยใหม่จะมีวงจรการเรียนการสอน 4 ขั้นตอนซึ่งเป็นสาเหตุที่มี Fosc / 4 ทั้งหมดในแผ่นข้อมูล
ajs410

1
@ ajs410 - 8085 จะใช้เวลาหลายรอบในการเรียนการสอน ไมโครวินาทีทั้งหมด 8 บิตจากเวลานั้น (ที่ฉันรู้) ใช้เวลาอย่างน้อยสองนาฬิกาในการทำอะไร สิ่งที่ฉันอ้างถึงที่นี่คือภายในหมดจดกับชิป หากคุณดูแผนภาพบล็อกสำหรับสัตว์เก่าเหล่านี้คุณจะเห็นว่าพวกมันมีรถเมล์ภายในทะเบียนชั่วคราวและอื่น ๆ และนี่คือสิ่งที่ฉันคาดเดาอาจใช้ขอบทั้งสอง รอบบัสภายนอกใด ๆ จะทำงานระหว่างขอบของขั้วเดียวกัน
JustJeff

6

ในขณะที่ชิปนี้ได้รับการออกแบบผู้คนใช้ทรานซิสเตอร์น้อยที่สุดเท่าที่จะเป็นไปได้ในซีพียูเพื่อให้มีขนาดเล็กพอที่จะพอดีกับชิปที่มีอยู่

ฉันสงสัยว่าจริง ๆ แล้ว "register" (ทั้งชุดโปรแกรมคำสั่งที่มองเห็นได้และลงทะเบียน microar Architecture ภายใน) ในซีพียูของยุคนั้นเก็บข้อมูลไว้ในD latch gatedโปร่งใสหรืออะไรทำนองนั้น ทุกวันนี้มีทรานซิสเตอร์จำนวนมากบนชิปดังนั้นจึงเป็นเรื่องง่ายกว่าที่จะใช้ flip-flop master-slave D แบบเต็มแม้ว่าพวกเขาจะใช้ทรานซิสเตอร์เป็นสองเท่าก็ตาม

คำแนะนำจำนวนมากนำข้อมูลจากการลงทะเบียน A รวมเข้ากับข้อมูลอื่น ๆ กับ ALU และเก็บผลลัพธ์กลับมาในการลงทะเบียน A ซึ่งเป็นเรื่องง่ายที่จะทำหากการลงทะเบียน A นั้นถูกนำไปใช้กับมาสเตอร์ฟลิป Flop

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

ต้องใช้นาฬิกา 2 เฟส วิธีที่ง่ายที่สุดในการสร้างนาฬิกา 2 เฟสที่ไม่ได้ซ้อนทับกัน (ในสมัยนั้นเมื่อทรานซิสเตอร์มีน้อย) เป็นวงจรภายนอกขนาดเล็กที่ใช้นาฬิกาอินพุตและหารด้วยสอง

เมื่อเวลาผ่านไปผู้คนค้นพบวิธีที่จะบรรจุทรานซิสเตอร์มากขึ้นเรื่อย ๆ ลงใน IC ดังนั้นผู้คนที่ออกแบบซีพียูจึงรวมสิ่งต่าง ๆ รอบตัวซีพียูเข้าด้วยกันในระบบคอมพิวเตอร์เต็มรูปแบบบนชิปซีพียู

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

นั่นคือสาเหตุที่ความถี่สัญญาณนาฬิกาหารด้วยสอง คุณสามารถนึกถึงพัลส์นาฬิกาภายนอกครั้งแรกที่สร้างพัลส์ในสัญญาณนาฬิกาภายใน phase_one เพื่ออัปเดตผลการลงทะเบียนระดับกลางนั้นและพัลส์ที่สองจากนาฬิกาภายนอกที่สร้างพัลส์ในสัญญาณนาฬิกาภายใน phase_two


ถ้าสลักจะไม่ไปสองสามไมโครวินาทีโดยไม่ต้องโหลดใหม่ใครสามารถทำให้วงจรง่ายขึ้นเพื่อให้ "สลัก" นั้นไม่มีอะไรมากไปกว่า pass-gate ทรานซิสเตอร์และอินเวอร์เตอร์
supercat

1
นับตั้งแต่เขียนข้างต้นฉันมองเข้าไปในการออกแบบของ 6502; รถเมล์ภายในจำนวนมากถูกขับเคลื่อนอย่างไม่มีเงื่อนไขในช่วงเวลาหนึ่งจากนั้นในระหว่างช่วงเวลาอื่น ๆ การลงทะเบียนที่เลือกสามารถดึงบิตที่เหมาะสมได้ หากมีเช่นรีจิสเตอร์ห้าตัวที่สามารถส่งออกไปยังบัสหมายความว่าแทนที่จะต้องใช้อุปกรณ์แบบดึงขึ้นสำหรับเอาต์พุตของรีจิสเตอร์แต่ละตัวชิปก็สามารถใช้อุปกรณ์พูลอัพแบบสับสลับหนึ่งตัวและทรานซิสเตอร์แบบมีสายสองชุดสำหรับแต่ละรีจิสเตอร์ เพื่อดึงรถบัสลงตามความเหมาะสม ฉันคาดหวังว่า 8085 เกือบจะใช้เทคนิคที่คล้ายกันอย่างแน่นอน
supercat

2

มีเหตุผลมากมายที่จะแยกรอบการสอนออกเป็นหลายรอบนาฬิกา ตัวอย่างที่ดีคือการเข้าถึงบัสหน่วยความจำหลัก

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

การแก้ปัญหาคือการใช้วงจรการเรียนการสอนสองขั้นตอน ขั้นตอนแรกจะดึงคำแนะนำจากหน่วยความจำและขั้นตอนที่สองสามารถอ่าน (หรือเขียน!) ตัวแปรจากหน่วยความจำหลัก

ชิปรุ่นเก่าบางรุ่นก็ยิ่งพัฒนาต่อไป ย้อนกลับไปในวันนี้หากชิปของคุณมีหน่วยความจำที่สามารถกำหนดแอดเดรสได้ 16 บิต แต่บัสที่อยู่ภายนอกนั้นมีเพียง 8 บิตเท่านั้นดังนั้นคุณจะคุ้นเคยกับ Address Latch Enable หนึ่งรอบสัญญาณนาฬิกาส่ง 8 บิตบนของที่อยู่ 16 บิตและรอบสัญญาณถัดไปส่ง 8 บิตต่ำกว่า รอบที่สามสามารถอ่าน / เขียนตัวแปรจาก / ถึงหน่วยความจำได้

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


3
ฉันไม่คิดว่า OP จะถามว่าทำไมคุณถึงกระจายคำสั่งในหลาย ๆ นาฬิกา แต่ทำไม 8085 ได้รับการออกแบบมาเพื่อต้องการให้คุณป้อนมันเป็นนาฬิกา 2X (ซึ่งมันจะแบ่งภายใน) แทนที่จะตรงข้ามกับจุดประสงค์ ความถี่สัญญาณนาฬิกาโดยตรง
JustJeff

1
แม้ว่าทุกอย่างที่คุณพูดเกี่ยวกับคำแนะนำจะเปิดอยู่
JustJeff

1

ภายในแกนหลักของ 8085A ต้องใช้นาฬิกาสองเฟส ตรรกะภายในที่ได้จากเฟสนาฬิกาทั้งสองนั้นยังแบ่งนาฬิกาอินพุตด้วยสอง ตามที่ระบุไว้ก่อนหน้านี้เหตุผลในการใช้นาฬิกาอินพุท 6.144MHz นั้นมีวัตถุประสงค์เพื่ออัตราการรับส่งข้อมูลชิปจะทำงานได้ดีที่ 6MHz ชิปนั้นได้รับการจัดอันดับที่ 3MHz ซึ่งต้องการคริสตัล 6MHz แต่ทำงานอย่างมีความสุขด้วย 6.144MHz ที่ให้อัตราการรับส่งข้อมูลที่ง่ายขึ้น (Uart สามารถโอเวอร์คล็อกด้วย 6.144MHz จาก Oscillator ขับ 8085 หรือที่ 3.072MHz จากเอาต์พุต CLK 8085 ให้อัตราการรับส่งข้อมูลที่ใช้งานได้จำนวนมาก) ฉันยังคงใช้ชิปโบราณเหล่านี้เพื่อทำหน้าที่พิเศษในหุ่นยนต์ของฉัน ฉันจับสัญญาณ Uarts ด้วยออสซิลเลเตอร์ของตัวเองและฉันบันทึก 8085A ด้วยออสซิลเลเตอร์ 6.4MHz ซึ่งรันชิปที่ 3.2MHz 3 2MHz แบ่งออกเป็นอย่างดีเพื่อมอบนาฬิกา 40KHz สำหรับทรานสดิวเซอร์ล้ำเสียงของฉัน มันสมเหตุสมผลมากกว่าที่จะใช้อุปกรณ์ IC ที่ทันสมัยกว่าใน 'บ็อตของฉัน แต่ฉันมี 8085, Z80, 63C09 และ 63C09E, 68B09 และ 68B09E เป็นต้นซึ่งฉันชอบเล่นด้วย


0

นาฬิกาไม่มีอะไรเลยนอกจากเมื่อคุณต้องการให้เหตุการณ์เกิดขึ้น ตอนนี้เราไม่ต้องการระดับการกระตุ้นในวงจรดิจิตอลเพราะเมื่อมีเวลามากขึ้นการโต้ตอบอาจเกิดขึ้นระหว่างวงจรต่าง ๆ ภายในไมโครโปรเซสเซอร์ที่นำไปสู่การลัดวงจร ดังนั้นเราจึงไป EDGE TRIGGERING ตอนนี้ไมโครโปรเซสเซอร์ไม่ทราบว่าเมื่อมีการเรียกใช้ขอบเกิดขึ้น มันเข้าใจได้เพียง 1 หรือ 0 ดังนั้นฟลิปฟล็อปจึงจำเป็นต้องสร้าง 1 และ 0 ทุกครั้งที่ตรวจพบขอบนาฬิกา ดังนั้นจึงจำเป็นต้องใช้ flip flop ดังนั้นความถี่นาฬิกาจะถูกหารด้วยสอง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.