The Z8 core has a pipelined architecture which means fetch and instruction cycles overlap.
The first instruction gets fetched and executed. LDX here for example takes 3 cycles to fetch and 4 to execute. The first instruction takes 7 cycles because there were no bytes pre-fetched. When another LDX comes after that it already fetched the instruction while the other LDX was still executing. Fetch and instruction cycles overlap. The fetch unit cannot fetch a new instruction while the last instruction is still loading though. Only while the previous instruction has loaded the next one can be loaded in the cpu. Same with the instruction cycles. The next instruction cannot execute unless the previous one finished executing.
When a branch occurs (a jp instruction for example) the pipeline is flushed. Flushing the pipeline takes an addition clock cycle. After a jump occured there are no instructions pre-fetched. Keep this in mind when counting clockcycles.
Please submit corrections, suggestions, and new documentation here: Submit a ticket
← Return to Main Site
This is not an official Zilog website. Zilog nor 8times8 are liable for any damage done to equipment. Tutorial and reference copyright ©8times8 Creative Commons CC-0 License (public domain.) This reference uses content from Zilog's technical datasheets. Fair use only. Datasheets copyright © 2013 Zilog®, Inc. Z8, Z8 Encore!, Z8 Encore! XP and Z8 Encore! MC are trademarks or registered trademarks of Zilog, Inc. Read Zilog's terms at zilog.com
Website design by Koen van Vliet. Hosted by sourceforge.net