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

Write buffer missing on PiStorm32-lite variant #212

Closed
michalsc opened this issue Apr 25, 2023 · 1 comment
Closed

Write buffer missing on PiStorm32-lite variant #212

michalsc opened this issue Apr 25, 2023 · 1 comment
Assignees
Labels
enhancement New feature or request wontfix This will not be worked on

Comments

@michalsc
Copy link
Owner

In contrast to 68040 or 68060 Emu68 in PiStorm32-lite variant does not provide any sort of write buffer which could merge single byte writes to chip memory into larger operations. This causes large slowdowns on configurations where both DMA and CPU are concurently trying to access the CHIP memory. The high pressure of DMA (e.g. by using 640x512x8bpp mode or larger) extends the wait states for write and read operations. When these are done on byte-basis, as it is the case in e.g. playing RLE-compressed ANIM files on RGB output, the Emu68 will crawl as it will perform single byte writes. Example bus timing during HAM8 anim playback:

Timing_write_byte

Please note this is not a bug of Emu68 or PiStorm32 as write buffers are not mandatory and can be disabled e.g. on 68060 (default mode of operation - whole address space is treated as precise uncached). This is rather an enhancement which can allow to use as much of the memory bandwidth as possible.

Related issue: PiStorm/pistorm32-lite-gateware#1

@michalsc michalsc added the enhancement New feature or request label Apr 25, 2023
@michalsc michalsc self-assigned this Apr 25, 2023
@michalsc michalsc added the wontfix This will not be worked on label Oct 30, 2023
@michalsc
Copy link
Owner Author

Write buffer turned out to be a nightmare with some software. Instead, 2-slot FPGA firmware is used. This solves the issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request wontfix This will not be worked on
Projects
None yet
Development

No branches or pull requests

1 participant