Re: How does the ZIP chip work?



Eric <englere.geo@xxxxxxxxx> wrote:

> I've been wondoring how the ZIP chip can speed up an Apple IIe. I
> understand it has a 4 Mhz 65C02 and it plugs into the original 6502
> socket.
>
> But, the original 6502 only has half of each 1 Mhz interval (I'm
> rounding to 1 Mhz to make it easier to discuss) to access memory
> because the video refresh circuit uses the other half. So, the orig
> 6502 has a 500ns cycle to access memory.
>
> If the ZIP chip does not have it's own memory (does it?), then it can
> only speed up that part of the 1 Mhz cycle that is not used for video
> refresh. Assuming main memory could run 4X faster (which it can't),
> then it could bring that 500ns down to maybe 125ns. This means the
> overall processing (including the obligatory video cycles) would go
> from 1000ns to about 625ns, which is less that a 50% speedup.
>
> But main memory can't run any faster, so the zip chip must have some
> kind of cache? What am I missing here?

Yes, the zipchip has internal ram. It caches as much as it can. Once in
the cache, it does not need to access the mainboard ram for
reading/fetching/executing, only for writes and only if the write goes
to the screen buffers ot the i/o addresses (of course i/o addresses are
always read from the a2 mainboard). Also, there's a potential problem
with ram expansion cards (whose "pages" overlap the rom addresses) which
are activated using different addresses/schemes so you can tell the
zipchip to enable/disable caching for rom addresses($D000-FFFF). It
seems to me that the $c800-cfff range is also never cached as my videx
does not speed up much. The same goes individually for each slot's rom
addresses because some cards use the slot's rom address for i/o (the
videx screen buffer is a good example of this, starting at $cc00). To
deal with critical timing loops as is the case with diskII i/o, you can
configure it to switch to normal (1MHz) speed for "a while" when
accessing whichever slot (you usually set this only for slot 6). The
last zipchips ran at 8MHz internally..! and it looks like there were
even 10MHz rocketchips (I've never seen one).


--
Jorge Chamorro Bieling
.



Relevant Pages

  • Re: Pin budgeting
    ... inductance to a low enough level that the on chip and off chip switching ... I/O buses, intraprocessor busses, and specialized I/O. ... The commodity memory interface unfortunately has relatively low per- ... Interprocessor interfaces can be customized, ...
    (comp.arch)
  • Re: No POST when more than 3.5GB memory installed?
    ... Windows instability due to using a mismatched chip but it does POST. ... but I/O has to go somewhere in memory. ... The 512MB issue sounds like the same sort of thing with ...
    (comp.sys.ibm.pc.hardware.chips)
  • [RFC] page replacement requirements
    ... Submitting too much I/O at once can kill latency and even lead to deadlocks when bounce buffers are involved. ... Must be able to deal with multiple memory zones efficiently. ... When on completion of the write to their backing-store the reference bit is still unset a callback is invoked to place them so that they are immediate candidates for reclaim again. ... For traditional page replacement algorithms this is not a big issue since we just implement per zone page replacement; ...
    (Linux-Kernel)
  • RFC: CONFIG_PAGE_SHIFT (aka software PAGE_SIZE)
    ... answered I disliked the dependency on defrag for reliable I/O and I ... all the memory allocations are ... the moment you need to relay on order> 0 allocations ... printf("%d usecn", usec); ...
    (Linux-Kernel)
  • Re: Forth as an operating system
    ... service to I/O events or the lowest OS overhead in general. ... We say that an interrupt cannot be the fastest because it ... We say that multiple memory operations cannot ... ISR are the fastest solution possible. ...
    (comp.lang.forth)