metastability คืออะไร


15

จากบทความ Wikipedia ความสามารถในการแพร่กระจายในอุปกรณ์อิเล็กทรอนิกส์ :

ความสามารถในการแพร่กระจายของอุปกรณ์อิเล็กทรอนิกส์คือความสามารถของระบบอิเล็กทรอนิกส์ดิจิทัลที่จะคงอยู่เป็นเวลานานในสภาวะสมดุลหรือสภาวะที่ไม่เสถียร ในสถานะ metastable วงจรอาจไม่สามารถตั้งค่าให้อยู่ในระดับตรรกะ '0' หรือ '1' ที่มีเสถียรภาพภายในเวลาที่ต้องการสำหรับการทำงานของวงจรที่เหมาะสม เป็นผลให้วงจรสามารถทำงานในลักษณะที่ไม่แน่นอนและอาจนำไปสู่ความล้มเหลวของระบบ

ดูเหมือนว่าจะเป็นคำจำกัดความที่ดี แต่มันมีความหมายในแอพพลิเคชันอย่างไร

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

มีคำจำกัดความที่ใช้ในทางปฏิบัติหรือนำไปใช้มากขึ้นหรือไม่ - บางคำในคำที่เจาะจงกว่านี้?


2
Leslie Lamport (เขาจาก $ \ LaTeX $ fame) เขียนคำอธิบายที่ดีเกี่ยวกับ metastability ในบทความนี้: research.microsoft.com/users/lamport/pubs/buridan.pdf
markrages

@markrages Brilliant นอกจากนี้ยังสามารถเกิดขึ้นกับแมวตกและขนมปังปิ้งทาเนย
สนิม

คำตอบ:


15

คำตอบด่วน: หากคุณละเมิดการตั้งค่าและกดค้างไว้ที่อินพุตของฟล็อปฟล็อปดังนั้นเอาต์พุตจะไม่สามารถคาดเดาได้ในระยะเวลาหนึ่ง เอาต์พุตที่ไม่สามารถคาดการณ์ได้นั้นเรียกว่า meta-stable (หรือ metastability)

คำตอบยาว: เมื่อผลลัพธ์ไม่แน่นอนฉันหมายถึงว่ามันไม่แน่นอน มันอาจจะสูงหรือต่ำหรืออาจอยู่ระหว่างนั้นหรือแกว่งไปมาก็ได้ หลังจากระยะเวลาการแพร่กระจายนี้ผลผลิตจะสูงหรือต่ำ แต่เราไม่รู้ว่าจะไปทางไหนจนกว่าจะเกิดขึ้น

อย่างไรก็ตามระยะเวลาที่คาดเดาไม่ได้นั้นค่อนข้างคาดเดาได้ มีสองปัจจัยหลักที่กำหนดความยาวของระยะเวลา metastable: ความเร็วของ flip-flop และวิธี "ใกล้กับขอบ" คุณมีเวลา

เวลา metastable ส่วนใหญ่ค่อนข้างสั้นแม้ว่าความน่าจะเป็นที่จะมีเวลานานนั้นไม่ใช่ศูนย์ ในทางทฤษฎีคุณอาจมีเวลา metastable ตามลำดับวินาทีแม้ว่าโอกาสที่เกิดขึ้นนั้นจะหายากอย่างไม่น่าเชื่อ เมื่อความเร็วของ flip-flop เพิ่มขึ้นเวลา metastable เฉลี่ยจะลดลง - สิ่งอื่น ๆ ทั้งหมดเท่ากัน

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

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

วิธีการปกติจะเป็น "สองนาฬิกา" ข้อมูล หมายถึงมี Flip-Flop D สองชุดในชุดที่มีเอาต์พุตของการป้อนข้อมูลแรกของอินพุตที่สอง ความหวังก็คือถ้าหากฟลิปฟล็อปแรกไปสู่การแพร่กระจายแล้วระยะเวลาการแพร่กระจายจะสิ้นสุดลงก่อนที่จะละเมิดเวลาตั้งค่า / พักของวินาที ในทางปฏิบัติงานนี้ค่อนข้างดี ในแอปพลิเคชั่นที่สำคัญสุด ๆ อาจมี "การทำงานแบบสามทาง" เกิดขึ้น


3
การพึ่งพาสัตว์ประเภทใดที่ต้องเสียสละ
สนิม

11

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

สมดุลที่เสถียรถูกนำมาใช้ในระบบไฟฟ้าเพื่อสร้างองค์ประกอบการจัดเก็บ equlibria ที่ไม่เสถียรไม่ได้สร้างองค์ประกอบการจัดเก็บที่ดี (เนื่องจากสูญเสียสถานะได้ง่าย) แต่มักมีสถานะเป็นกาฝาก

องค์ประกอบที่จัดเก็บข้อมูลดิจิทัลทั่วไปคืออินเวอร์เตอร์แบบ cross-coupled คู่:

อินเวอร์เตอร์สองตัวเชื่อมต่อในลูปเอาท์พุทเป็นอินพุท

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

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

ฟังก์ชั่นการถ่ายโอนอินเวอร์เตอร์

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

ฟังก์ชั่นการถ่ายโอนซ้อนทับสำหรับอินเวอร์เตอร์กลับไปด้านหลัง

มีจุดตัดสามจุด: หนึ่งที่ (0, Vs), หนึ่งที่ (Vs, 0) และอีกหนึ่งที่ (Vs / 2, Vs / 2) สถานะ (Vs / 2, Vs / 2) สามารถแพร่กระจายได้ หลังจากการก่อกวนเล็ก ๆ ของโหนดใดโหนดหนึ่งวงจรจะเกือบจะอยู่ในสถานะเสถียรใด ๆ แทนที่จะกลับไปที่ (Vs / 2, Vs / 2)

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

อินเวอร์เตอร์แบบ cross-coupled พร้อม pass transistor

ถ้าคุณเชื่อมต่อเกทของทรานซิสเตอร์พาสกับนาฬิกาคุณจะมี D แลตช์ (ฉันกำลังออกโครงสร้างเอาท์พุท) เมื่อนาฬิกาสูงเปิดใช้งานทรานซิสเตอร์พาสสลักจะโปร่งใส - อินพุตจะส่งผ่านไปยังเอาต์พุตโดยตรง เมื่อนาฬิกาอยู่ในระดับต่ำสลักจะเก็บค่าก่อนหน้า การแพร่กระจายเกิดขึ้นในขณะที่ตัวอย่างสลัก หากอินพุตเป็นแรงดันไฟฟ้าสูงหรือต่ำที่มีเสถียรภาพเมื่อสลักตัวอย่างแล้วมันจะทำงานได้อย่างถูกต้อง อย่างไรก็ตามหากอินพุตอยู่รอบจุด Vs / 2 เมื่อตัวอย่างสลักมีความเป็นไปได้ที่สลักจะสิ้นสุดในสถานะ metastable (Vs / 2, Vs / 2) เมื่อมันอยู่ในสถานะ metastable มันสามารถอยู่ที่นั่นอย่างไม่มีกำหนด (สมมติว่าสลักไม่ได้โอเวอร์คล็อกอีกครั้ง) แต่เนื่องจากมันเป็นสภาวะที่ไม่เสถียร

เมื่อใดที่ต้องกังวลเกี่ยวกับการแพร่กระจาย

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

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

สถานการณ์ทั่วไปบางอย่างที่ความกังวลเกี่ยวกับการแพร่กระจายคือ:

  • ลอจิกสุ่มตัวอย่างอินพุตภายนอกเช่นสวิตช์ที่แผงด้านหน้าหรือเอาต์พุตของวงจรจอภาพที่อาจเปลี่ยนแปลงได้ตลอดเวลา (undervoltage, overtemp)
  • ลอจิกที่ใช้นาฬิกาหลายเรือนที่ไม่มีความสัมพันธ์แบบซิงโครนัส สิ่งนี้มักเกิดขึ้นกับอินเตอร์เฟส I / O ที่มีความต้องการนาฬิกาโดยเฉพาะ แต่ยังเกิดขึ้นภายในเมื่อส่วนต่าง ๆ ของชิปมีข้อกำหนดด้านประสิทธิภาพที่แตกต่างกัน ตัวอย่างเช่นตรรกะบางอย่างใน CPU 3 GHz ของคุณนั้นใช้งานที่ความเร็ว 3 GHz (ซีพียูไม่ใช่ตัวอย่างที่ยอดเยี่ยมเนื่องจากนาฬิกาหลายตัวในซีพียูเป็นทวีคูณแบบซิงโครนัสซึ่งกันและกัน)

คำตอบที่ดีส่วนใหญ่ แต่อีกสิ่งหนึ่งที่ต้องพูดถึงก็คือเนื่องจากความล่าช้าในการแพร่กระจายไม่มีสถานะ metastable เดียว แต่เป็นทั้งครอบครัวของพวกเขาและไม่มีวิธีใดที่จะระบุสถานะ metastable เราอาจออกแบบวงจรที่มีเอาต์พุตสามสถานะ (สูง / ต่ำ / metastable) และจัดเรียงสิ่งต่าง ๆ เพื่อไม่ให้มีการรายงาน "สูง" หากเอาต์พุตอาจจบลงต่ำหรือกลับกัน แต่ไม่มีการรับประกันผลลัพธ์ จะไม่เด้งระหว่าง 'สูง' และ 'metastable' (ลงท้ายด้วย 'สูง') หรือระหว่าง 'ต่ำ' และ 'metastable' (สิ้นสุดที่ 'ต่ำ')
supercat

+1 นี่คือสิ่งที่ดี แต่มันสมเหตุสมผลมากกว่าหลังจากอ่านคำตอบของ @David Kessner +2 สำหรับกราฟิก
สนิม

3

สัญญาณ metastable เป็นสัญญาณที่อาจมีค่าสูงหรือต่ำในรูปแบบใดก็ได้ตามอำเภอใจตามระยะเวลาที่กำหนด หากสัญญาณส่งผ่านประตูหลายทางไม่ว่าทางตรงหรือทางอ้อมอาจเป็นไปได้ว่าประตูบางส่วนจะ "เห็น" มันสูงในขณะที่คนอื่นมองว่ามันต่ำ สิ่งที่น่ารังเกียจ

สำหรับระบบที่มีนาฬิกาเดียวสัญญาณ metastable สามารถจัดการได้โดยการผ่านสองแลตช์ ปัญหาที่ยากขึ้นมาเมื่อ gating นาฬิกา มีวงจรจำนวนมาก (โดยเฉพาะการใช้สลัก RS) ซึ่งจะทำงานได้อย่างน่าพิศวงหากการแพร่กระจายไม่สามารถทำได้ แต่หากการแพร่กระจายเกิดขึ้นให้ลงเอยด้วยการสร้างสัญญาณนาฬิการันไทม์

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


2

กรณีคลาสสิกคือถ้าคุณละเมิดเวลาเซ็ตอัพ / ค้างสำหรับล็อคแบบซิงโครนัสและเป็นปัญหาที่คุณต้องระวังเมื่อออกแบบ FPGAs (ฉันแน่ใจว่า Xilinx และ Altera จะมีหน้าตาแบบนี้) หากสัญญาณสามารถมาพร้อมกันในเวลาสุ่มใด ๆ คุณจะไม่สามารถมั่นใจได้ว่าเมื่อคุณดูสัญญาณมันจะไม่เปลี่ยนแปลงภายในข้อมูลจำเพาะหน้าต่างการตั้งค่า / เวลาค้าง สิ่งที่สามารถเกิดขึ้นได้คือแทนที่จะเอาท์พุทสลักไปสูงหรือต่ำในเวลาที่กำหนดหลังจากขอบนาฬิกามันสามารถอยู่สักครู่หนึ่งก่อนที่จะปักหลักในสถานะที่มั่นคง วิธีปกติในการป้องกันสิ่งนี้คือการใช้สลักแบบ 2 ระดับไม่ว่าจะเป็นนาฬิกาเดียวกันหรือนาฬิกาล่าช้าหรืออยู่นอกเฟสขึ้นอยู่กับความสมดุลระหว่างข้อกำหนดด้านความล่าช้าและความน่าจะเป็นของการแพร่กระจาย สิ่งนี้ช่วยให้เวลาในการสลักครั้งแรกมีเสถียรภาพก่อนที่สลักอันที่สองจะทำให้สถานะเสถียร อนึ่ง นี่คือสิ่งที่ไมโครคอนโทรลเลอร์ต้องจัดการกับภายในเนื่องจากสัญญาณ I / O ภายนอกมักจะไม่ตรงกันกับนาฬิกา CPU ดังนั้นพอร์ต I / O มักจะมีการจัดเรียงแบบล็อคคู่เพื่อหลีกเลี่ยงปัญหาและซอฟต์แวร์ไม่จำเป็นต้องกังวลเกี่ยวกับมัน . การเรียกคืนการอ่านอย่างคลุมเครือเมื่อหลายปีก่อนเกี่ยวกับปัญหาของ 6502 ซึ่งการอ่านข้อมูลที่เปลี่ยนแปลงนอกเวลาการตั้งค่า / พักอาจทำให้สาขาไปยังที่อยู่ที่ไม่ใช่เป้าหมายของสาขาหรือคำสั่งถัดไป รัฐไป metastable วิดีโอนี้แสดงตัวอย่าง: การเรียกคืนการอ่านอย่างคลุมเครือเมื่อหลายปีก่อนเกี่ยวกับปัญหาของ 6502 ซึ่งการอ่านข้อมูลที่เปลี่ยนแปลงนอกเวลาการตั้งค่า / พักอาจทำให้สาขาไปยังที่อยู่ที่ไม่ใช่เป้าหมายของสาขาหรือคำสั่งถัดไป รัฐไป metastable วิดีโอนี้แสดงตัวอย่าง: การเรียกคืนการอ่านอย่างคลุมเครือเมื่อหลายปีก่อนเกี่ยวกับปัญหาของ 6502 ที่การอ่านข้อมูลที่เปลี่ยนแปลงนอกเวลาการตั้งค่า / พักอาจทำให้สาขาไปยังที่อยู่ที่ไม่ใช่เป้าหมายของสาขาหรือคำสั่งถัดไป รัฐไป metastable วิดีโอนี้แสดงตัวอย่าง:http://www.youtube.com/watch?v=tKHCwjWMMyg

การเปรียบเทียบคือถ้าคุณโยนลูกบอลให้ใครบางคน - พวกเขาส่วนใหญ่จับมันหรือวาง / พลาดมันดังนั้นหลังจากเวลาที่กำหนดจากการโยนพวกเขาจะถือมันหรือไม่ แต่บางครั้งพวกเขาจะคลำหาสักพักก่อนที่จะจับหรือปล่อยมันดังนั้นสถานะของพวกเขาจึงไม่ถือหรือลดลง - นี่คือสถานะ metastable!


ฉันยังทำงานกับระบบที่ใช้ 6502 เป็นงานอดิเรก เป็นเรื่องดีหากได้ทราบปัญหาบางอย่างเกี่ยวกับการแพร่กระจายของข้อมูลบัส ฉันสามารถจินตนาการได้ว่าหากตัวสะสมมีค่า $ FF และหนึ่งค่าที่อ่านได้คือ $ 00 หรือ $ 01 ตัวสะสมอาจจบลงด้วยค่าที่เป็นไปได้ ก่อนที่จะสามารถยึดสาขาใด ๆ ได้ฉันคาดว่าจะมีอีกสองรอบที่จะต้องผ่านไปในระหว่างที่ธงจะได้รับการบรรจุซ้ำสองครั้ง ฉันไม่สามารถจินตนาการสถานะ metastable ที่เหลืออยู่นาน
supercat

นี่เป็นสิ่งที่ฉันได้ยินมาว่ามือสองหรือมือสองอาจจะ 20 ปีที่แล้ว แต่มันมาจากคนที่รู้ว่าพวกเขากำลังทำอะไรอยู่ - จะทำอย่างไรกับอินเทอร์เฟซ Tube บนโปรเซสเซอร์ 6502 วินาทีสำหรับ BBC Micro และการอ่านสถานะ ติดธงและเป็นเหตุการณ์ครั้งหนึ่งที่เคยเกิดขึ้น แต่บ่อยครั้งมากพอที่จะทำให้การเปิดตัวผลิตภัณฑ์ล่าช้า มันไม่จำเป็นที่จะต้องใช้ใน 2 รอบสุดท้ายเนื่องจากสัญญาณอาจถูกสลักไว้ภายในในขั้นตอนต่าง ๆ ของไปป์ไลน์ ฉันคิดว่ามันเป็นตัวแปรที่เร็วที่สุด 6502 รายการในเวลานั้น - 3MHz 65C02 ISTR
mikeselectricstuff

น่าสนใจ [BTW มีวิธีการใช้เครื่องหมายวรรคตอนโดยไม่มี StackExchange munging หรือไม่] ในพฤติกรรมปกติของเช่น "ADC 0xD000" ที่อยู่จะถูกส่งออกในระยะที่ 1 ของรอบที่สี่และข้อมูลจะถูก latched เมื่อสิ้นสุดระยะ 2 ของรอบนั้น ข้อมูลจะป้อนเข้าสู่ ALU ในระยะที่ 1 ของรอบถัดไป (ซึ่งจะเป็น opcode fetch สำหรับคำสั่งต่อไปนี้) รอบหลังจากนั้นจะถูกเรียกตัวถูกดำเนินการ หากสิ่งต่าง ๆ ยังคงแพร่กระจายได้ ณ จุดนั้นระบบสามารถละลายลงได้ แต่ดูเหมือนจะไม่น่าเป็นไปได้เนื่องจากการลงทะเบียนแบบไดนามิกจะถูกเชื่อมโยงสองครั้ง
supercat

ฉันไม่ต้องการที่จะบอกว่ามันเป็นไปไม่ได้สำหรับ metastability บัสข้อมูลที่จะส่งผลกระทบต่อ 6502 เพราะฉันรู้ว่ามีพฤติกรรมแปลก ๆ ที่ฉันไม่สามารถอธิบายได้ ตัวอย่างเช่นดาต้าบัสบัสจะถูกสลักในช่วงระยะที่ 2 ของนาฬิกาและจะดำเนินการในช่วงระยะที่ 1 ดังต่อไปนี้ดังนั้นจึงไม่สำคัญว่าจะมีการเปลี่ยนแปลงระหว่างเฟส 2 หรือไม่หากว่าเสถียรในตอนท้าย มีคำแนะนำที่ไม่มีเอกสารสองสามอย่างซึ่งพฤติกรรมของมันได้รับผลกระทบจากเนื้อหาของบัสข้อมูลในช่วงส่วนก่อนหน้าของวัฏจักร (สาธิตได้บนเครื่องเช่น C64 และ Apple ที่ดึงวิดีโอในช่วงที่ 1) ฉันไม่รู้ว่า ...
supercat

... พฤติกรรมของคำแนะนำเหล่านั้นจริง ๆ แล้วได้รับผลกระทบจากพฤติกรรมบัสข้อมูลก่อนหน้านี้ แต่ฉันคิดว่ามันเป็นสภาพการแข่งขันแปลก ๆ IIRC หนึ่งใน opcode ตรงกับรูปแบบการถอดรหัสสำหรับ LDA #imm, LDX #imm และ TAX ดังนั้นผลลัพธ์ของ ALU จะถูกแมปกลับไปที่อินพุต แปลก.
supercat
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.