[Coco] Coco 3 Memory Map Questions
Dave Philipsen
dave at davebiz.com
Mon Feb 8 15:32:29 EST 2016
I now see that from the schematic. So even though the GIME doesn't have
a 16-bit data path it is effectively getting 16-bit chunks on every
clock cycle. My assumption would be that there weren't enough pins on
the GIME to put a full 16-bit path on it and they didn't want to spend
more on an ASIC with a bigger footprint.
Dave
On 2016-02-08 13:28, RETRO Innovations wrote:
> On 2/8/2016 12:35 AM, Dave Philipsen wrote:
>> I know that the video memory must be constantly read by the GIME in
>> order to generate the display in real time. And, the CPU can access
>> the memory without any wait states or contention with the video
>> access. I think I've heard others explain that the GIME reads video
>> memory 16 bits at a time which effectively halves the number of
>> accesses compared to 8 bit reads. It does and it does not.
>
> Normally, when one says that, they are noting that a 16 bit channel
> will present twice as much data in the same amount of time.
>
> The Coco3 does that, except it doesn't.
>
> It splits the memory into 2 banks, so it can bring in the data in 16
> bit chunks.
>
> But, it constrains itself to 8 bits slices of data.
>
> So, to make the best of a non-optimal situation, it does the following.
>
> When E is low, it supplies the correct row and column address during
> RAS and CAS.
>
> As CAS goes high, the low byte of the 16 bit value is pushed into the
> GIME, and the upper 8 bits are latched into a '374 and then presented
> on the GIME data bus as soon as CAS reaches a high state.
>
> THat all has to happen while E is low.
>
> Then, when E is high, a different row and column is presented to the
> RAM. The same process is followed as above, but if the request is a
> read cycle, GIME decides whether the high or low byte should be sent
> to the CPU. If the request is a write cycle, GIME decides which bank
> to store the data, but the data is sent from the CPU to the RAM via
> some '244 buffers, the data is not sent through GIME, though it is
> presented to GIME via it's connection to the CPU data bus.
More information about the Coco
mailing list