วันอาทิตย์ที่ 14 สิงหาคม พ.ศ. 2554

ไมโครโปรเซสเซอร์ Z-80
1. ทำไมต้องเป็น Z-80
Z-80 เป็นไมโครโปรเซสเซอร์ที่มีโครงสร้างง่ายต่อการเรียนรู้และการจัดวงจรแต่ละขาของตัวไมโครโปรเซสเซอร์ มีหน้าที่เดียว ไม่ซับซ้อน ผู้ที่เริ่มต้นศึกษา Z-80 จะเกิดความรู้สึกว่า การเรียนรู้ไมโครโปรเซสเซอร์ ไม่ใช่เรื่องยาก
2. โครงสร้างและตำแหน่งขาของZ-80

Z-80 เป็นไอซี 40 ขา แบบ DIP (Dual Inline package) ดังแสดงในรูป 1 โครงสร้างภายในของ Z-80 อาจศึกษาได้จากเอกสารอ้างอิงท้ายข้อความนี้

หน้าที่ของขาสัญญาณบน Z80

CLOCK เป็นสัญญาณนาฬิกาจากภายนอกที่ป้อนให้ซีพียู เป็นตัวให้จังหวะใน การทำงานของซีพียู Z80 ใช้ความถี่ สัญญาณ CLOCK ได้สูงสุด 2 MHZ. 4 MHZ. สำหรับ Z80A และ 6MHZ. สำหรับZ80B เอาท์พุทของสัญญาณ CLOCK ควรมีตัวต้านทาน 330 โอห์ม ต่อพูลอัพ (Pull up) กับไฟเลี้ยง 5 โวลท์ ก่อนต่อเข้าซีพียู

A0-A15 บัสแอดเดรส (Address Bus) มี 16 เส้น ชนิด Output เป็นตัวกำหนด ตำแหน่งที่ต้องการติดต่อในหน่วยความจำ สามารถกำหนดตำแหน่งได้ 2E16 หรือ 65535 หรือ 64k ตำแหน่ง และใช้ A0-A7 เป็นตัวกำหนดตำแหน่งของอุปกรณ์ Input/Output จะกำหนดได้ 2E08 หรือ 256 ตำแหน่ง

D0-D7 บัสข้อมูล (Data Bus) มี 8 เส้น เป็นสายสัญญาณชนิด 2 ทิศทาง ใช้ส่งผ่านข้อมูลระหว่างซีพียูกับหน่วยความจำ หรือระหว่าง ซีพียูกับ อุปกรณ์ Input/Output

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

IORQ (Inputt/OutputReQuest)เป็นเอาท์พุทแบบ3สถานะให้ลอจิกแอคตีพที่ "0" เป็นสัญญาณแจ้งระบบว่า ซีพียูต้องการส่งค่า ที่ปรากฏบนบัสข้อมูลให้กับอุปกรณ์เอาท์พุท หรือต้องการอ่านค่าจากอุปกรณ์อินพุท ในตำแหน่งที่ปรากฏบนบัสแอดเดรส A0-A7

RD เอาท์พุทแบบ 3 สถานะ ให้ลอจิกแอคตีพที่ "0" เป็นสัญญาณ แจ้งระบบว่า ซีพียูต้องการอ่านค่าในหน่วยความจำในตำแหน่งที่ปรากฏ บนบัสแอดเดรส A0-A15 หรืออ่านค่าจากอุปกรณ์อินพุทในตำแหน่งที่ปรากฏบนบัสแอดเดรสA0-A7

WR เป็นเอาท์พุทแบบ 3 สถานะ ให้ลอจิกแอคตีพท ี่ "0" เป็นสัญญาณ แจ้งระบบว่า ซีพียูต้องการเขียนค่าลงหน่วยความจำ ในตำแหน่งที่ปรากฏ บนบัสแอดเดรส A0-A15 หรือส่งข้อมูล 8 บิท ไปยังอุปกรณ์เอาท์พุทในตำแหน่งที่ปรากฏบนบัสแอดเดรส A0-A7

RFSH (ReFreSH) เป็นเอาท์พุท ให้ลอจิกแอคตีพที่ "0" สัญญาณบนบัสแอดเดรส A0-A6ใช้รีเฟรส (Refresh)หน่วยความจำชนิดไดนามิค A7 เป็น "0" ขณะนั้ A8-A15 แสดงค่ารีจิสเตอร์

HALT (Halt State) เป็นเอาท์พุท ให้ลอจิกแอคตีพที่ "0" เมื่อซีพียู ได้รับคำสั่ง HALT และจะหยุดรอจนกว่าจะ ได้รับสัญญาณ RESET หรือ สัญญาณ INTERRUPT ในขณะนั้จะมีสภาวะเสมือนทำคำสั่ง NOP (No Operation) และยังรีเฟรส หน่วยความจำชนิดไดนามิค

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

NMI NonMaskable Interrupt) เป็นขาสัญญาณอินพุท ใช้ทริกซีพียูที่ขอบ พัลส์ขาลงเพื่อให้ทำงานพิเศษที่กำหนดไว้แล้วล่วงหน้า เมื่อไดัรับ สัญญาณ Interrupt ซีพียูจะเก็บค่าในรีจิสเตอร์PCลงSTACKแล้วไปทำงานที่ตำแหน่ง0066Hหลังจากเสร็จงานพิเศษนี้แล้วจะกลับไปทำงานปกติต่อจากขั้น ตอนเดิมก่อนมาทำงานพิเศษนี้ไม่มีวิธีการใดที่ จำห้ามซีพียูทำงานพิเศษดังกล่าวเมื่อได้รับสัญญาณ NMI

INT (INTerrupt request) เป็นสัญญาณอินพุท ให้ลอจิกแอคตีพที่ "0" อุปกรณ์อินพุทหรือเอาท์พุทจะสร้างสัญญาณนี้เพื่อร้องขอการทำงาน บริการจากซีพียูเป็นกรณีพิเศษ หากมีอุปกรณ์ที่จะต้องให้บริการมาก จะต้องมีตัวจัดลำดับบริการก่อนหลังตามความสำคัญของอุปกรณ์ที่ผู้ออกแบบระบบจัดไว้ การบริการพิเศษจากซีพียูด้วยสัญญาณ INTมีได้ 3 โหมด คือ 0 1 และ 2 ซึ่งมีวิธีบริการที่แตกต่างกัน และ สามารถห้ามซีพียูให้บริการได้ด้วยคำสั่ง DI และสั่งให้ บริการต่อได้ด้วยคำสั่ง EI ในขณะที่ซีพียูให้บริการอยู่นั้น สัญญาณ BUSRQ จะต้องไม่ Active

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

BUSAK (BUS AcKnowledge) เป็นสัญญาณเอาท์พุทจากซีพียูให้ลอจิกแอคตีพที่ "0" แจ้งอุปกรณ์ภายนอกที่ร้องขอใช้บัสด้วยสัญญาณ BUSRQ ว่า ซีพียูถอนตัวจากบัสแล้ว

RESET เป็นสัญญาณอินพุท ต้องการลอจิกแอคตีพที่ "0" เมื่อซีพียูได้สัญญาณ RESET จะมีสภาวะเริ่มต้น ดังนี้
1. รีจิสเตอร์ PC (Program Counter) มีค่าเป็น 0
2. disable Interrupt FlipFlop(IFF)
3. โหมดการ Interrupt อยู่ที่ 0
4. ค่าในรีจิสเตอร์ I เป็น 0
5. ค่าในรีจิสเตอร์ R เป็น 0
6. บัสข้อมูลและบัสแอดเดรส มีสภาวะควมต้านทานอนันต์ (High Impedance)
7. สัญญาณควบคุมทุกสัญญาณไม่ active
8. ไม่รีเฟรชหน่วยความจำ
M1 Machine cycle one) เป็นเอาท์พุท ให้ลอจิกแอคตีพที่ "0" M1 เกิดตามหลังวงรอบการเฟทช์คำสั่ง(OP code fetch cycle) ของการประมวลผลคำสั่ง(instruction execution) ในการ ประมวลผลคำสั่ง 2 ไบท์ Z80 จะส่งสัญญาณ M1 เมื่อเฟทช์คำสั่ง แต่ละไบท์ คำสั่ง 2 ไบท์ มักจะเริ่มต้นด้วย CBH EDH หรือ FDH Z80 จะส่งสัญญาณ M1 พร้อมกับ IORQ เพื่อแสดงวงรอบการตอบรับ สัญญาณอินเทอร์รัพท์ (interrupt acknowledge cycle)

1 ความคิดเห็น: