Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CPU IPC is very low. Implement ZP cache to speed up ZP addressing modes #12

Open
gardners opened this issue Jan 28, 2014 · 1 comment
Open

Comments

@gardners
Copy link
Owner

Currently CPU is about 1/2 the speed of a similarly clocked 6502, largely due to a single wait state on reading from chipram. This is incurred for each read, even if multiple reads are required in an instruction, and the reads could therefore be pipelined.

Implement a ZP cache for odd and even ZP addresses that can be used to resolve ZP indirect addresses in a single cycle.

gardners added a commit that referenced this issue Jan 28, 2014
@gardners
Copy link
Owner Author

The 4510 B register makes this a bit trickier, as ZP can be anywhere in the address space.
It should be possible to make a small indirect-ZP cache that we invalidate whenever ZP is written to (including $01, and also $D030), since B could be mapping ZP to some where that has just been banked in or out), B is changed or MAP instruction is executed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant